mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
extract PackagePanel
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user