XsltRunSettingsEditor. Toolbar decorator.

This commit is contained in:
Evgeny Zakrevsky
2012-03-12 15:57:06 +04:00
parent 2205f88698
commit e44be62660
2 changed files with 22 additions and 71 deletions
@@ -148,41 +148,18 @@
</component>
</children>
</grid>
<grid id="30b22" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<grid id="30b22" binding="myParametersPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="1" fill="3" indent="0" use-parent-layout="false"/>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="3" anchor="1" fill="3" indent="0" use-parent-layout="false">
<preferred-size width="-1" height="150"/>
</grid>
</constraints>
<properties/>
<clientProperties>
<BorderFactoryClass class="java.lang.String" value="com.intellij.ui.IdeBorderFactory$PlainSmallWithoutIndent"/>
</clientProperties>
<border type="none" title="Parameters"/>
<children>
<scrollpane id="fabc7" class="com.intellij.ui.components.JBScrollPane">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<opaque value="true"/>
</properties>
<border type="none"/>
<children>
<component id="3ff92" class="com.intellij.util.ui.Table" binding="myParameters">
<constraints/>
<properties>
<preferredScrollableViewportSize width="350" height="80"/>
</properties>
</component>
</children>
</scrollpane>
<component id="ddf85" class="javax.swing.JPanel" binding="myParamsToolbar">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
</component>
</children>
<children/>
</grid>
</children>
</grid>
@@ -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<XsltRunConfiguration> {
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<XsltRunConfiguration> {
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<XsltRunConfiguration> {
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<XsltRunConfiguration> {
});
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<XsltRunConfiguration> {
}
});
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[]{"<default>"}, modules)));
myModule.setRenderer(new ListCellRendererWrapper(myModule) {
@@ -347,13 +328,6 @@ class XsltRunSettingsEditor extends SettingsEditor<XsltRunConfiguration> {
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));