diff --git a/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/AntClasspathEditorPanel.form b/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/AntClasspathEditorPanel.form index d68af3e02d70..0acb741d97e5 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/AntClasspathEditorPanel.form +++ b/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/AntClasspathEditorPanel.form @@ -1,18 +1,16 @@
- + - - - + @@ -20,8 +18,7 @@ - - + @@ -29,8 +26,7 @@ - - + @@ -38,8 +34,7 @@ - - + @@ -47,14 +42,12 @@ - - + - + - - + @@ -65,19 +58,9 @@ - - - - - - - - - - - + diff --git a/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/AntClasspathEditorPanel.java b/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/AntClasspathEditorPanel.java index c71c6b5f0e37..53fded553a8a 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/AntClasspathEditorPanel.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/AntClasspathEditorPanel.java @@ -18,7 +18,6 @@ package com.intellij.lang.ant.config.impl.configuration; import com.intellij.lang.ant.config.impl.AllJarsUnderDirEntry; import com.intellij.lang.ant.config.impl.AntClasspathEntry; import com.intellij.lang.ant.config.impl.SinglePathEntry; -import com.intellij.openapi.ui.LabeledComponent; import com.intellij.ui.ListUtil; import com.intellij.util.config.AbstractProperty; import com.intellij.util.config.ListProperty; @@ -68,19 +67,17 @@ public class AntClasspathEditorPanel extends JPanel { return myBinding; } - private static class Form { + public static class Form { private JButton myAddButton; private JButton myAddAllInDir; private JButton myRemoveButton; private JButton myMoveUpButton; private JButton myMoveDownButton; private JPanel myWholePanel; - private JLabel myClasspathLabel; private JList myClasspathList; private final ArrayList myUpdatables = new ArrayList(); public Form() { - myClasspathLabel.setLabelFor(myClasspathList); myClasspathList.setCellRenderer(new AntUIUtil.ClasspathRenderer()); myUpdatables.add(ListUtil.addRemoveListener(myRemoveButton, myClasspathList)); @@ -96,14 +93,6 @@ public class AntClasspathEditorPanel extends JPanel { } } - public void setClasspathLabel(String textWithMnemonic) { - LabeledComponent.TextWithMnemonic.fromTextWithMnemonic(textWithMnemonic).setToLabel(myForm.myClasspathLabel); - } - - public String getClasspathLabel() { - return LabeledComponent.TextWithMnemonic.fromLabel(myForm.myClasspathLabel).getTextWithMnemonic(); - } - public JComponent getPreferedFocusComponent() { return myForm.myClasspathList; } diff --git a/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/BuildFilePropertiesPanel.java b/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/BuildFilePropertiesPanel.java index 9cbb98c13ce2..e2ad3ac39e05 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/BuildFilePropertiesPanel.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/BuildFilePropertiesPanel.java @@ -28,16 +28,13 @@ import com.intellij.openapi.projectRoots.ui.ProjectJdksEditor; import com.intellij.openapi.ui.ComponentWithBrowseButton; import com.intellij.openapi.ui.DialogBuilder; import com.intellij.openapi.ui.DialogWrapper; -import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Disposer; -import com.intellij.ui.ComboboxWithBrowseButton; -import com.intellij.ui.RawCommandLineEditor; -import com.intellij.ui.SimpleColoredComponent; -import com.intellij.ui.TabbedPaneWrapper; -import com.intellij.util.NewInstanceFactory; +import com.intellij.ui.*; +import com.intellij.ui.table.JBTable; import com.intellij.util.config.AbstractProperty; import com.intellij.util.containers.Convertor; import com.intellij.util.ui.ColumnInfo; +import com.intellij.util.ui.ListTableModel; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -197,8 +194,6 @@ public class BuildFilePropertiesPanel { } private static class PropertiesTab extends Tab { - private JButton myAddButton; - private JButton myRemoveButton; private JTable myPropertiesTable; private JPanel myWholePanel; @@ -237,11 +232,41 @@ public class BuildFilePropertiesPanel { private static final ColumnInfo[] PROPERTY_COLUMNS = new ColumnInfo[]{NAME_COLUMN, VALUE_COLUMN}; public PropertiesTab() { + myPropertiesTable = new JBTable(); UIPropertyBinding.TableListBinding tableListBinding = getBinding().bindList(myPropertiesTable, PROPERTY_COLUMNS, - AntBuildFileImpl.ANT_PROPERTIES); + AntBuildFileImpl.ANT_PROPERTIES); tableListBinding.setColumnWidths(GlobalAntConfiguration.PROPERTIES_TABLE_LAYOUT); - tableListBinding.addAddFacility(myAddButton, NewInstanceFactory.fromClass(BuildFileProperty.class)); - tableListBinding.addRemoveFacility(myRemoveButton, Condition.TRUE); + + myWholePanel = ToolbarDecorator.createDecorator(myPropertiesTable) + .setAddAction(new AnActionButtonRunnable() { + + + @Override + public void run(AnActionButton button) { + if (myPropertiesTable.isEditing() && !myPropertiesTable.getCellEditor().stopCellEditing()) { + return; + } + BuildFileProperty item = new BuildFileProperty(); + ListTableModel model = (ListTableModel)myPropertiesTable.getModel(); + ArrayList items = new ArrayList(model.getItems()); + items.add(item); + model.setItems(items); + int newIndex = model.indexOf(item); + ListSelectionModel selectionModel = myPropertiesTable.getSelectionModel(); + selectionModel.clearSelection(); + selectionModel.setSelectionInterval(newIndex, newIndex); + ColumnInfo[] columns = model.getColumnInfos(); + for (int i = 0; i < columns.length; i++) { + ColumnInfo column = columns[i]; + if (column.isCellEditable(item)) { + myPropertiesTable.requestFocusInWindow(); + myPropertiesTable.editCellAt(newIndex, i); + break; + } + } + } + }).disableUpDownActions().createPanel(); + myWholePanel.setBorder(null); } public JComponent getComponent() { @@ -288,9 +313,9 @@ public class BuildFilePropertiesPanel { private static final Comparator NAME_COMPARATOR = new Comparator() { public int compare(TargetFilter o1, TargetFilter o2) { final String name1 = o1.getTargetName(); - if(name1 == null) return -1; + if (name1 == null) return -1; final String name2 = o2.getTargetName(); - if(name2 == null) return 1; + if (name2 == null) return 1; return name1.compareToIgnoreCase(name2); } }; @@ -482,5 +507,4 @@ public class BuildFilePropertiesPanel { private static void setLabelFor(JLabel label, ComponentWithBrowseButton component) { label.setLabelFor(component.getChildComponent()); } - } diff --git a/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/FiltersTab.form b/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/FiltersTab.form index 33932c1f1244..5083f5d7a604 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/FiltersTab.form +++ b/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/FiltersTab.form @@ -1,24 +1,16 @@ - - + + - - - - - - - - - + diff --git a/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/PropertiesTab.form b/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/PropertiesTab.form deleted file mode 100644 index 77e09e903231..000000000000 --- a/plugins/ant/src/com/intellij/lang/ant/config/impl/configuration/PropertiesTab.form +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -