From 6d90a3016244ab29330d37458203fb54ad698221 Mon Sep 17 00:00:00 2001 From: "Maxim.Medvedev" Date: Fri, 13 Jul 2012 12:41:00 +0400 Subject: [PATCH] extract PackagePanel --- .../options/CodeStyleImportsPanel.java | 59 +++----------- .../application/options/PackagePanel.java | 77 +++++++++++++++++++ 2 files changed, 88 insertions(+), 48 deletions(-) create mode 100644 java/java-impl/src/com/intellij/application/options/PackagePanel.java diff --git a/java/java-impl/src/com/intellij/application/options/CodeStyleImportsPanel.java b/java/java-impl/src/com/intellij/application/options/CodeStyleImportsPanel.java index 092e6db1cf4f..fb4cd20ad65b 100644 --- a/java/java-impl/src/com/intellij/application/options/CodeStyleImportsPanel.java +++ b/java/java-impl/src/com/intellij/application/options/CodeStyleImportsPanel.java @@ -22,7 +22,6 @@ import com.intellij.psi.codeStyle.PackageEntry; import com.intellij.psi.codeStyle.PackageEntryTable; import com.intellij.ui.*; import com.intellij.ui.table.JBTable; -import com.intellij.util.ui.UIUtil; import javax.swing.*; import javax.swing.table.AbstractTableModel; @@ -49,7 +48,7 @@ public class CodeStyleImportsPanel extends JPanel { private JPanel myPackagesPanel; private JPanel myImportsLayoutPanel; private JPanel myWholePanel; - private final ImportLayoutPanel myImportLayoutPanel; + private ImportLayoutPanel myImportLayoutPanel; public CodeStyleImportsPanel(CodeStyleSettings settings) { mySettings = settings; @@ -59,6 +58,11 @@ public class CodeStyleImportsPanel extends JPanel { myGeneralPanel.add(createGeneralOptionsPanel(), BorderLayout.CENTER); myJSPPanel.add(createJspImportLayoutPanel(), BorderLayout.CENTER); + createImportPanel(); + createPackagePanel(); + } + + private void createImportPanel() { myImportLayoutPanel = new ImportLayoutPanel() { @Override public void refresh() { @@ -67,7 +71,11 @@ public class CodeStyleImportsPanel extends JPanel { } }; myImportsLayoutPanel.add(myImportLayoutPanel, BorderLayout.CENTER); - myPackagesPanel.add(createPackagesPanel(), BorderLayout.CENTER); + } + + private void createPackagePanel() { + myPackageTable = ImportLayoutPanel.createTableForPackageEntries(myPackageList, myImportLayoutPanel); + myPackagesPanel.add(PackagePanel.createPackagesPanel(myPackageTable, myPackageList), BorderLayout.CENTER); } private JPanel createJspImportLayoutPanel() { @@ -145,26 +153,6 @@ public class CodeStyleImportsPanel extends JPanel { return group.createPanel(); } - private JPanel createPackagesPanel() { - myPackageTable = ImportLayoutPanel.createTableForPackageEntries(myPackageList, myImportLayoutPanel); - JPanel panel = ToolbarDecorator.createDecorator(myPackageTable) - .setAddAction(new AnActionButtonRunnable() { - @Override - public void run(AnActionButton button) { - addPackageToPackages(); - } - }).setRemoveAction(new AnActionButtonRunnable() { - @Override - public void run(AnActionButton button) { - removeEntryFromPackages(); - } - }).disableUpDownActions().setPreferredSize(new Dimension(-1, 150)).createPanel(); - - UIUtil.addBorder(panel, IdeBorderFactory.createTitledBorder(ApplicationBundle.message("title.packages.to.use.import.with"), false)); - - return panel; - } - private void refreshTable(final JBTable table, final PackageEntryTable packageTable) { AbstractTableModel model = (AbstractTableModel)table.getModel(); table.createDefaultColumnsFromModel(); @@ -172,31 +160,6 @@ public class CodeStyleImportsPanel extends JPanel { ImportLayoutPanel.resizeColumns(packageTable, table, myImportLayoutPanel.areStaticImportsEnabled()); } - private void addPackageToPackages() { - int selected = myPackageTable.getSelectedRow() + 1; - if (selected < 0) { - selected = myPackageList.getEntryCount(); - } - PackageEntry entry = new PackageEntry(false, "", true); - myPackageList.insertEntryAt(entry, selected); - ImportLayoutPanel.refreshTableModel(selected, myPackageTable); - } - - private void removeEntryFromPackages() { - int selected = myPackageTable.getSelectedRow(); - if (selected < 0) return; - TableUtil.stopEditing(myPackageTable); - myPackageList.removeEntryAt(selected); - AbstractTableModel model = (AbstractTableModel)myPackageTable.getModel(); - model.fireTableRowsDeleted(selected, selected); - if (selected >= myPackageList.getEntryCount()) { - selected--; - } - if (selected >= 0) { - myPackageTable.setRowSelectionInterval(selected, selected); - } - } - public void reset(CodeStyleSettings settings) { myCbUseFQClassNames.setSelected(settings.USE_FQ_CLASS_NAMES); myCbUseFQClassNamesInJavaDoc.setSelected(settings.USE_FQ_CLASS_NAMES_IN_JAVADOC); diff --git a/java/java-impl/src/com/intellij/application/options/PackagePanel.java b/java/java-impl/src/com/intellij/application/options/PackagePanel.java new file mode 100644 index 000000000000..9aca2bd136f8 --- /dev/null +++ b/java/java-impl/src/com/intellij/application/options/PackagePanel.java @@ -0,0 +1,77 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.application.options; + +import com.intellij.openapi.application.ApplicationBundle; +import com.intellij.psi.codeStyle.PackageEntry; +import com.intellij.psi.codeStyle.PackageEntryTable; +import com.intellij.ui.*; +import com.intellij.ui.table.JBTable; +import com.intellij.util.ui.UIUtil; + +import javax.swing.*; +import javax.swing.table.AbstractTableModel; +import java.awt.*; + +/** + * @author Max Medvedev + */ +public class PackagePanel { + + private static void addPackageToPackages(JBTable table, PackageEntryTable list) { + int selected = table.getSelectedRow() + 1; + if (selected < 0) { + selected = list.getEntryCount(); + } + PackageEntry entry = new PackageEntry(false, "", true); + list.insertEntryAt(entry, selected); + ImportLayoutPanel.refreshTableModel(selected, table); + } + + private static void removeEntryFromPackages(JBTable table, PackageEntryTable list) { + int selected = table.getSelectedRow(); + if (selected < 0) return; + TableUtil.stopEditing(table); + list.removeEntryAt(selected); + AbstractTableModel model = (AbstractTableModel)table.getModel(); + model.fireTableRowsDeleted(selected, selected); + if (selected >= list.getEntryCount()) { + selected--; + } + if (selected >= 0) { + table.setRowSelectionInterval(selected, selected); + } + } + + public static JPanel createPackagesPanel(final JBTable packageTable, final PackageEntryTable packageList) { + JPanel panel = ToolbarDecorator.createDecorator(packageTable) + .setAddAction(new AnActionButtonRunnable() { + @Override + public void run(AnActionButton button) { + addPackageToPackages(packageTable, packageList); + } + }).setRemoveAction(new AnActionButtonRunnable() { + @Override + public void run(AnActionButton button) { + removeEntryFromPackages(packageTable, packageList); + } + }).disableUpDownActions().setPreferredSize(new Dimension(-1, 150)).createPanel(); + + UIUtil.addBorder(panel, IdeBorderFactory.createTitledBorder(ApplicationBundle.message("title.packages.to.use.import.with"), false)); + + return panel; + } +}