From e44be626602c6af5a66e0ea6c417c70f8f64c3f5 Mon Sep 17 00:00:00 2001 From: Evgeny Zakrevsky Date: Mon, 12 Mar 2012 15:48:46 +0400 Subject: [PATCH] XsltRunSettingsEditor. Toolbar decorator. --- .../xpath/xslt/run/RunSettingsEditor.form | 33 ++-------- .../xpath/xslt/run/XsltRunSettingsEditor.java | 60 ++++++------------- 2 files changed, 22 insertions(+), 71 deletions(-) diff --git a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/RunSettingsEditor.form b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/RunSettingsEditor.form index a2b9afbfe133..d18c6be99153 100644 --- a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/RunSettingsEditor.form +++ b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/RunSettingsEditor.form @@ -148,41 +148,18 @@ - - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/XsltRunSettingsEditor.java b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/XsltRunSettingsEditor.java index ed0116fd38fb..5a863bb91185 100644 --- a/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/XsltRunSettingsEditor.java +++ b/plugins/xpath/xpath-lang/src/org/intellij/lang/xpath/xslt/run/XsltRunSettingsEditor.java @@ -45,10 +45,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; -import com.intellij.ui.ComboboxWithBrowseButton; -import com.intellij.ui.DocumentAdapter; -import com.intellij.ui.PanelWithAnchor; -import com.intellij.ui.RawCommandLineEditor; +import com.intellij.ui.*; import com.intellij.ui.components.JBLabel; import com.intellij.ui.components.JBRadioButton; import com.intellij.ui.table.JBTable; @@ -79,36 +76,6 @@ class XsltRunSettingsEditor extends SettingsEditor { private Editor myEditor; - static class AddParameterAction extends AnAction { - private final JTable myParams; - - public AddParameterAction(JTable params) { - super("Add", "Add Parameter", IconLoader.getIcon("/general/add.png")); - myParams = params; - } - - public void actionPerformed(AnActionEvent e) { - ((Editor.ParamTableModel)myParams.getModel()).addParam(); - } - } - - static class RemoveParameterAction extends AnAction { - private final JTable myParams; - - public RemoveParameterAction(JBTable paramModel) { - super("Remove", "Remove Parameter", IconLoader.getIcon("/general/remove.png")); - myParams = paramModel; - } - - public void update(AnActionEvent e) { - e.getPresentation().setEnabled(myParams.getRowCount() > 0 && myParams.getSelectedRow() != -1); - } - - public void actionPerformed(AnActionEvent e) { - ((Editor.ParamTableModel)myParams.getModel()).removeParam(myParams.getSelectedRow()); - } - } - static class Editor implements PanelWithAnchor { private JTabbedPane myComponent; @@ -117,7 +84,6 @@ class XsltRunSettingsEditor extends SettingsEditor { private TextFieldWithBrowseButton myOutputFile; private JCheckBox myOpenOutputFile; private JCheckBox myOpenInBrowser; - private JPanel myParamsToolbar; private JBTable myParameters; private ButtonGroup myOutputOptions; @@ -139,6 +105,7 @@ class XsltRunSettingsEditor extends SettingsEditor { private JPanel myPanelSettings; private JPanel myPanelAdvanced; private JBLabel myXSLTScriptFileLabel; + private JPanel myParametersPanel; private JComponent anchor; private final AnyXMLDescriptor myXmlDescriptor; @@ -264,7 +231,7 @@ class XsltRunSettingsEditor extends SettingsEditor { }); myFileType.setModel(new DefaultComboBoxModel(getFileTypes(project))); - myParameters.setModel(new ParamTableModel()); + myParameters = new JBTable(new ParamTableModel()); myParameters.setDefaultRenderer(String.class, new DefaultTableCellRenderer() { public Component getTableCellRendererComponent(JTable table, Object value, @@ -287,6 +254,20 @@ class XsltRunSettingsEditor extends SettingsEditor { } }); + myParametersPanel.add( + ToolbarDecorator.createDecorator(myParameters) + .setAddAction(new AnActionButtonRunnable() { + @Override + public void run(AnActionButton button) { + ((Editor.ParamTableModel)myParameters.getModel()).addParam(); + } + }).setRemoveAction(new AnActionButtonRunnable() { + @Override + public void run(AnActionButton button) { + ((Editor.ParamTableModel)myParameters.getModel()).removeParam(myParameters.getSelectedRow()); + } + }).createPanel(), BorderLayout.CENTER); + final Module[] modules = ModuleManager.getInstance(project).getModules(); myModule.setModel(new DefaultComboBoxModel(ArrayUtil.mergeArrays(new Object[]{""}, modules))); myModule.setRenderer(new ListCellRendererWrapper(myModule) { @@ -347,13 +328,6 @@ class XsltRunSettingsEditor extends SettingsEditor { myWorkingDirectory .addBrowseFolderListener("Working Directory", null, project, FileChooserDescriptorFactory.createSingleFolderDescriptor()); - final DefaultActionGroup group = new DefaultActionGroup(); - group.add(new AddParameterAction(myParameters)); - group.add(new RemoveParameterAction(myParameters)); - final ActionToolbar actionToolbar = ActionManager.getInstance().createActionToolbar("XsltRunSettingsEditor", group, true); - myParamsToolbar.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0)); - myParamsToolbar.add(actionToolbar.getComponent()); - myVmArguments.setDialogCaption("VM Arguments"); myPanelSettings.setBorder(new EmptyBorder(UIUtil.PANEL_SMALL_INSETS));