IDEADEV-41762 Run Configurations: Replace Working directory textfield with combobox with $MODULE_DIR$ macro predefined

This commit is contained in:
Alexey Pegov
2009-12-28 18:26:03 +03:00
parent 39427c81ea
commit 7eeede6bb4
2 changed files with 23 additions and 18 deletions
@@ -1,18 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.intellij.execution.junit2.configuration.CommonJavaParameters">
<grid id="d88e6" binding="myWholePanel" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="10">
<grid id="d88e6" binding="myWholePanel" layout-manager="GridLayoutManager" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="10">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<xy x="64" y="62" width="431" height="137"/>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3"/>
<xy x="64" y="62" width="431" height="161"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="6e486" class="com.intellij.openapi.ui.LabeledComponent" binding="myVMParameters">
<constraints>
<xy x="0" y="9" width="431" height="16"/>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1">
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
<minimum-size width="0" height="-1"/>
<preferred-size width="400" height="-1"/>
</grid>
@@ -24,8 +22,7 @@
</component>
<component id="acecf" class="com.intellij.openapi.ui.LabeledComponent" binding="myProgramParameters">
<constraints>
<xy x="0" y="53" width="431" height="16"/>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1">
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
<minimum-size width="0" height="-1"/>
<preferred-size width="400" height="-1"/>
</grid>
@@ -35,16 +32,13 @@
<text resource-bundle="messages/ExecutionBundle" key="junit.configuration.test.runner.parameters.label"/>
</properties>
</component>
<component id="8c18f" class="com.intellij.openapi.ui.LabeledComponent" binding="myWorkingDirectory">
<component id="2c8fa" class="com.intellij.openapi.ui.LabeledComponent" binding="myWorkingDirectoryCombo">
<constraints>
<xy x="0" y="94" width="431" height="36"/>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1">
<minimum-size width="0" height="-1"/>
</grid>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<componentClass value="com.intellij.openapi.ui.TextFieldWithBrowseButton"/>
<opaque value="true"/>
<componentClass value="com.intellij.ui.ComboboxWithBrowseButton"/>
<enabled value="true"/>
<text resource-bundle="messages/ExecutionBundle" key="junit.configuration.working.directory.label"/>
</properties>
</component>
@@ -26,6 +26,7 @@ import com.intellij.openapi.module.Module;
import com.intellij.openapi.ui.LabeledComponent;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.ui.ComboboxWithBrowseButton;
import com.intellij.ui.RawCommandLineEditor;
import javax.swing.*;
@@ -42,9 +43,9 @@ public class CommonJavaParameters extends JPanel {
};
private JPanel myWholePanel;
private LabeledComponent<TextFieldWithBrowseButton> myWorkingDirectory;
private LabeledComponent<RawCommandLineEditor> myProgramParameters;
private LabeledComponent<RawCommandLineEditor> myVMParameters;
private LabeledComponent<ComboboxWithBrowseButton> myWorkingDirectoryCombo;
private final LabeledComponent[] myFields = new LabeledComponent[3];
private Module myModule = null;
@@ -54,21 +55,27 @@ public class CommonJavaParameters extends JPanel {
add(myWholePanel, BorderLayout.CENTER);
copyDialogCaption(myProgramParameters);
copyDialogCaption(myVMParameters);
myWorkingDirectory.getComponent()
final JComboBox comboBox = myWorkingDirectoryCombo.getComponent().getChildComponent();
comboBox.setEditable(true);
comboBox.setModel(new DefaultComboBoxModel(new String[] {"$MODULE_DIR$"}));
myWorkingDirectoryCombo.getComponent()
.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileChooserDescriptor fileChooserDescriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
fileChooserDescriptor.setTitle(ExecutionBundle.message("select.working.directory.message"));
fileChooserDescriptor.putUserData(LangDataKeys.MODULE_CONTEXT, myModule);
VirtualFile[] files = FileChooser.chooseFiles(myWorkingDirectory, fileChooserDescriptor);
VirtualFile[] files = FileChooser.chooseFiles(myWorkingDirectoryCombo, fileChooserDescriptor);
if (files.length != 0) {
setText(RunJavaConfiguration.WORKING_DIRECTORY_PROPERTY, files[0].getPresentableUrl());
}
}
});
myFields[RunJavaConfiguration.PROGRAM_PARAMETERS_PROPERTY] = myProgramParameters;
myFields[RunJavaConfiguration.VM_PARAMETERS_PROPERTY] = myVMParameters;
myFields[RunJavaConfiguration.WORKING_DIRECTORY_PROPERTY] = myWorkingDirectory;
myFields[RunJavaConfiguration.WORKING_DIRECTORY_PROPERTY] = myWorkingDirectoryCombo;
}
private static void copyDialogCaption(final LabeledComponent<RawCommandLineEditor> component) {
@@ -104,6 +111,8 @@ public class CommonJavaParameters extends JPanel {
((TextFieldWithBrowseButton)component).setText(value);
else if (component instanceof RawCommandLineEditor)
((RawCommandLineEditor)component).setText(value);
else if (component instanceof ComboboxWithBrowseButton)
((ComboboxWithBrowseButton)component).getChildComponent().setSelectedItem(value);
else LOG.error(component.getClass().getName());
}
@@ -113,6 +122,8 @@ public class CommonJavaParameters extends JPanel {
return ((TextFieldWithBrowseButton)component).getText();
else if (component instanceof RawCommandLineEditor)
return ((RawCommandLineEditor)component).getText();
else if (component instanceof ComboboxWithBrowseButton)
return (String) ((ComboboxWithBrowseButton)component).getComboBox().getSelectedItem();
else LOG.error(component.getClass().getName());
return "";
}