From 904e525a0bf6b0044f696681f806b30ce76263ef Mon Sep 17 00:00:00 2001 From: Evgeny Zakrevsky Date: Thu, 1 Sep 2011 23:20:36 +0400 Subject: [PATCH] run configurations layout with anchors --- .../execution/applet/AppletConfigurable.form | 136 +++++++----------- .../execution/applet/AppletConfigurable.java | 29 +++- .../application/ApplicationConfigurable.form | 40 ++++-- .../application/ApplicationConfigurable.java | 12 +- .../execution/ui/AlternativeJREPanel.java | 27 ++-- .../ui/CommonJavaParametersPanel.java | 28 ++-- .../ConfigurationSettingsEditorWrapper.form | 5 +- .../ui/CommonProgramParametersPanel.java | 41 +++--- .../intellij/openapi/ui/LabeledComponent.java | 35 +++-- .../com/intellij/ui/ComponentWithAnchor.java | 12 ++ .../intellij/ui/components/JBCheckBox.java | 63 ++++++++ .../com/intellij/ui/components/JBLabel.java | 29 +++- .../src/messages/DiagnosticBundle.properties | 2 +- .../src/com/intellij/util/ui/FormBuilder.java | 4 +- .../run/AndroidRunConfigurationEditor.form | 4 +- .../run/AndroidRunConfigurationEditor.java | 18 ++- .../android/run/ApplicationRunParameters.java | 9 ++ .../run/ConfigurationSpecificEditor.java | 4 +- .../run/testing/TestRunParameters.form | 10 +- .../run/testing/TestRunParameters.java | 19 +++ .../src/run/PluginRunConfigurationEditor.java | 6 +- .../groovy/mvc/MvcRunConfigurationEditor.form | 7 +- .../groovy/mvc/MvcRunConfigurationEditor.java | 21 ++- .../runner/GroovyRunConfigurationEditor.form | 43 ++---- .../runner/GroovyRunConfigurationEditor.java | 20 ++- .../configuration/JUnitConfigurable.form | 41 +++--- .../configuration/JUnitConfigurable.java | 25 +++- .../execution/MavenRunnerConfigurable.java | 1 + .../MavenRunnerParametersConfigurable.form | 6 +- .../MavenRunnerParametersConfigurable.java | 19 ++- .../maven/project/MavenEnvironmentForm.form | 23 ++- .../maven/project/MavenEnvironmentForm.java | 19 ++- .../project/MavenGeneralConfigurable.form | 7 +- .../project/MavenGeneralConfigurable.java | 20 ++- .../TestNGConfigurationEditor.form | 26 ++-- .../TestNGConfigurationEditor.java | 25 +++- 36 files changed, 546 insertions(+), 290 deletions(-) create mode 100644 platform/platform-api/src/com/intellij/ui/ComponentWithAnchor.java create mode 100644 platform/platform-api/src/com/intellij/ui/components/JBCheckBox.java diff --git a/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurable.form b/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurable.form index 9912e3055820..7fc6ef3c8a42 100644 --- a/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurable.form +++ b/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurable.form @@ -43,7 +43,6 @@ - @@ -57,7 +56,6 @@ - @@ -67,9 +65,7 @@ - - @@ -92,7 +88,7 @@ - + @@ -110,7 +106,7 @@ - + @@ -123,58 +119,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -226,32 +174,58 @@ - - + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -271,9 +245,7 @@ - - - + diff --git a/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurable.java b/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurable.java index f115ee03a3d0..bc81bd910710 100644 --- a/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurable.java +++ b/java/execution/impl/src/com/intellij/execution/applet/AppletConfigurable.java @@ -27,8 +27,10 @@ import com.intellij.openapi.ui.LabeledComponent; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.EditorTextFieldWithBrowseButton; +import com.intellij.ui.ComponentWithAnchor; import com.intellij.ui.RawCommandLineEditor; import com.intellij.ui.ScrollPaneFactory; +import com.intellij.ui.components.JBLabel; import com.intellij.ui.table.TableView; import com.intellij.util.ui.ColumnInfo; import com.intellij.util.ui.ListTableModel; @@ -43,7 +45,8 @@ import java.io.File; import java.util.*; import java.util.List; -public class AppletConfigurable extends SettingsEditor implements CheckableRunConfigurationEditor{ +public class AppletConfigurable extends SettingsEditor implements CheckableRunConfigurationEditor, + ComponentWithAnchor { private JPanel myWholePanel; private JRadioButton myMainClass; private JRadioButton myURL; @@ -59,12 +62,13 @@ public class AppletConfigurable extends SettingsEditor impl private JPanel myTablePlace; private JButton myAddButton; private JButton myRemoveButton; - private JLabel myHtmlFileLabel; - private JLabel myClassNameLabel; - private JLabel myWidthLabel; + private JBLabel myHtmlFileLabel; + private JBLabel myClassNameLabel; + private JBLabel myWidthLabel; private JLabel myHeightLabel; private AlternativeJREPanel myAlternativeJREPanel; private final ButtonGroup myAppletRadioButtonGroup; + private JComponent anchor; private final Project myProject; private final ConfigurationModuleSelector myModuleSelector; @@ -153,6 +157,8 @@ public class AppletConfigurable extends SettingsEditor impl removeParameter(); } }); + + setAnchor(myModule.getLabel()); } private void removeParameter() { @@ -285,6 +291,21 @@ public class AppletConfigurable extends SettingsEditor impl myClassName = new EditorTextFieldWithBrowseButton(myProject, true); } + @Override + public JComponent getAnchor() { + return anchor; + } + + @Override + public void setAnchor(JComponent anchor) { + this.anchor = anchor; + myModule.setAnchor(anchor); + myPolicyFile.setAnchor(anchor); + myVMParameters.setAnchor(anchor); + myAlternativeJREPanel.setAnchor(anchor); + myHtmlFileLabel.setAnchor(anchor); + } + private static abstract class MyColumnInfo extends ColumnInfo { public MyColumnInfo(final String name) { super(name); diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.form b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.form index 7019f7c923a7..75c7ef537017 100644 --- a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.form +++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.form @@ -1,63 +1,73 @@
- + - + - + - - - + - + + + - - + - - + - - - + - + + + + + + + + + + + + + + + diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java index 56415a8feefa..0b63e7d13a4c 100644 --- a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java +++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java @@ -26,7 +26,6 @@ import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.LabeledComponent; -import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.psi.JavaCodeFragment; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; @@ -61,6 +60,17 @@ public class ApplicationConfigurable extends SettingsEditor myPathField; - private final JCheckBox myCbEnabled; + private final JBCheckBox myCbEnabled; final TextFieldWithHistory myFieldWithHistory; public AlternativeJREPanel() { super(new GridBagLayout()); - myCbEnabled = new JCheckBox(ExecutionBundle.message("run.configuration.use.alternate.jre.checkbox")); + myCbEnabled = new JBCheckBox(ExecutionBundle.message("run.configuration.use.alternate.jre.checkbox")); final GridBagConstraints gc = new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0); add(myCbEnabled, gc); @@ -77,6 +79,7 @@ public class AlternativeJREPanel extends JPanel { } }); enabledChanged(); + updateUI(); } private void enabledChanged() { @@ -106,12 +109,18 @@ public class AlternativeJREPanel extends JPanel { setPathEnabled(isEnabled); setPath(path); } - - public void setCheckBoxPreferredSize(Dimension d) { - myCbEnabled.setPreferredSize(d); + + @Override + public JComponent getAnchor() { + return myCbEnabled.getAnchor(); } - - public Dimension getCheckBoxPreferredSize() { - return myCbEnabled.getPreferredSize(); + + @Override + public void setAnchor(JComponent anchor) { + myCbEnabled.setAnchor(anchor); + } + + public JBCheckBox getCbEnabled() { + return myCbEnabled; } } diff --git a/java/execution/impl/src/com/intellij/execution/ui/CommonJavaParametersPanel.java b/java/execution/impl/src/com/intellij/execution/ui/CommonJavaParametersPanel.java index de2122fdaae2..608bc40c832e 100644 --- a/java/execution/impl/src/com/intellij/execution/ui/CommonJavaParametersPanel.java +++ b/java/execution/impl/src/com/intellij/execution/ui/CommonJavaParametersPanel.java @@ -19,12 +19,12 @@ import com.intellij.execution.CommonJavaRunConfigurationParameters; import com.intellij.execution.ExecutionBundle; import com.intellij.openapi.ui.LabeledComponent; import com.intellij.ui.RawCommandLineEditor; -import org.jetbrains.annotations.Nullable; +import javax.swing.*; import java.awt.*; public class CommonJavaParametersPanel extends CommonProgramParametersPanel { - private LabeledComponent myVMParameters; + private LabeledComponent myVMParametersComponent; public CommonJavaParametersPanel() { super(); @@ -32,28 +32,28 @@ public class CommonJavaParametersPanel extends CommonProgramParametersPanel { @Override protected void addComponents() { - myVMParameters = LabeledComponent.create(new RawCommandLineEditor(), + myVMParametersComponent = LabeledComponent.create(new RawCommandLineEditor(), ExecutionBundle.message("run.configuration.java.vm.parameters.label")); - copyDialogCaption(myVMParameters); + copyDialogCaption(myVMParametersComponent); - myVMParameters.setLabelLocation(BorderLayout.WEST); + myVMParametersComponent.setLabelLocation(BorderLayout.WEST); - add(myVMParameters); + add(myVMParametersComponent); super.addComponents(); } - @Override - public void setLabelsPreferredSize(Dimension d) { - super.setLabelsPreferredSize(d); - myVMParameters.setLabelPreferredSize(d); - } - public void setVMParameters(String text) { - myVMParameters.getComponent().setText(text); + myVMParametersComponent.getComponent().setText(text); } public String getVMParameters() { - return myVMParameters.getComponent().getText(); + return myVMParametersComponent.getComponent().getText(); + } + + @Override + public void setAnchor(JComponent labelAnchor) { + super.setAnchor(labelAnchor); + myVMParametersComponent.setAnchor(labelAnchor); } public void applyTo(CommonJavaRunConfigurationParameters configuration) { diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.form b/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.form index 32ab9fd3e939..68bfe0870f66 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.form +++ b/platform/lang-impl/src/com/intellij/execution/impl/ConfigurationSettingsEditorWrapper.form @@ -44,8 +44,9 @@ - - + + + diff --git a/platform/lang-impl/src/com/intellij/execution/ui/CommonProgramParametersPanel.java b/platform/lang-impl/src/com/intellij/execution/ui/CommonProgramParametersPanel.java index d783d2a7899b..a0c742cb5047 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/CommonProgramParametersPanel.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/CommonProgramParametersPanel.java @@ -32,11 +32,10 @@ import com.intellij.openapi.ui.popup.JBPopup; import com.intellij.openapi.ui.popup.JBPopupFactory; import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.ui.ComponentWithAnchor; import com.intellij.ui.RawCommandLineEditor; import com.intellij.ui.components.JBList; import com.intellij.util.ArrayUtil; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.*; @@ -45,19 +44,18 @@ import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; -public class CommonProgramParametersPanel extends JPanel { +public class CommonProgramParametersPanel extends JPanel implements ComponentWithAnchor { private static final Icon ICON = IconLoader.getIcon("/runConfigurations/variables.png"); private LabeledComponent myProgramParametersComponent; private LabeledComponent myWorkingDirectoryComponent; private TextFieldWithBrowseButton myWorkingDirectoryField; private EnvironmentVariablesComponent myEnvVariablesComponent; + protected JComponent anchor; private Module myModuleContext = null; private boolean myHaveModuleContext = false; - protected static final Dimension notSpecifiedSize = new Dimension(-1, -1); - protected Dimension labelsPreferredSize = notSpecifiedSize; public CommonProgramParametersPanel() { super(); @@ -65,6 +63,7 @@ public class CommonProgramParametersPanel extends JPanel { initComponents(); copyDialogCaption(myProgramParametersComponent); + updateUI(); } protected void initComponents() { @@ -116,6 +115,8 @@ public class CommonProgramParametersPanel extends JPanel { addComponents(); setPreferredSize(new Dimension(10, 10)); + + setAnchor(myEnvVariablesComponent.getLabel()); } protected void addComponents() { @@ -135,10 +136,6 @@ public class CommonProgramParametersPanel extends JPanel { copyDialogCaption(myProgramParametersComponent); } - public String getProgramParametersLabel() { - return myProgramParametersComponent.getText(); - } - public void setProgramParameters(String params) { myProgramParametersComponent.getComponent().setText(params); } @@ -156,6 +153,17 @@ public class CommonProgramParametersPanel extends JPanel { return myProgramParametersComponent; } + public JComponent getAnchor() { + return anchor; + } + + public void setAnchor(JComponent anchor) { + this.anchor = anchor; + myProgramParametersComponent.setAnchor(anchor); + myWorkingDirectoryComponent.setAnchor(anchor); + myEnvVariablesComponent.setAnchor(anchor); + } + public void applyTo(CommonProgramRunConfigurationParameters configuration) { configuration.setProgramParameters(myProgramParametersComponent.getComponent().getText()); configuration.setWorkingDirectory(myWorkingDirectoryField.getText()); @@ -171,19 +179,4 @@ public class CommonProgramParametersPanel extends JPanel { myEnvVariablesComponent.setEnvs(configuration.getEnvs()); myEnvVariablesComponent.setPassParentEnvs(configuration.isPassParentEnvs()); } - - public void setLabelsPreferredSize(Dimension d) { - if (notSpecifiedSize.equals(d)) { - d = null; - } - labelsPreferredSize = d; - myEnvVariablesComponent.setLabelPreferredSize(d); - myProgramParametersComponent.setLabelPreferredSize(d); - myWorkingDirectoryComponent.setLabelPreferredSize(d); - } - - @Nullable - public Dimension getLabelsPreferredSize() { - return labelsPreferredSize; - } } diff --git a/platform/platform-api/src/com/intellij/openapi/ui/LabeledComponent.java b/platform/platform-api/src/com/intellij/openapi/ui/LabeledComponent.java index dbdd2fe79cd7..0c40b315ead9 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/LabeledComponent.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/LabeledComponent.java @@ -18,22 +18,20 @@ package com.intellij.openapi.ui; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.IdeBorderFactory; +import com.intellij.ui.ComponentWithAnchor; +import com.intellij.ui.components.JBLabel; import com.intellij.uiDesigner.core.AbstractLayout; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import javax.swing.*; -import javax.swing.text.JTextComponent; import java.awt.*; -public class LabeledComponent extends JPanel { - private final JLabel myLabel = new JLabel(); +public class LabeledComponent extends JPanel implements ComponentWithAnchor { + private final JBLabel myLabel = new JBLabel(); private Comp myComponent; private String myLabelConstraints = BorderLayout.NORTH; - private static final Dimension notSpecifiedSize = new Dimension(-1, -1); - private Dimension labelPreferredSize = notSpecifiedSize; - public LabeledComponent() { super(new BorderLayout(AbstractLayout.DEFAULT_HGAP, AbstractLayout.DEFAULT_VGAP)); insertLabel(); @@ -52,18 +50,6 @@ public class LabeledComponent extends JPanel { add(myLabel, myLabelConstraints); } - public void setLabelPreferredSize(Dimension d) { - if (notSpecifiedSize.equals(d)) { - d = null; - } - labelPreferredSize = d; - myLabel.setPreferredSize(d); - } - - public Dimension getLabelPreferredSize() { - return labelPreferredSize; - } - public void setText(String textWithMnemonic) { if (!StringUtil.endsWithChar(textWithMnemonic, ':')) textWithMnemonic += ":"; TextWithMnemonic withMnemonic = TextWithMnemonic.fromTextWithMnemonic(textWithMnemonic); @@ -109,6 +95,7 @@ public class LabeledComponent extends JPanel { return myComponent; } + @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); if (myComponent != null) myComponent.setEnabled(enabled); @@ -148,10 +135,20 @@ public class LabeledComponent extends JPanel { return myLabel.getText().replace("\u001B", ""); } - public JLabel getLabel() { + public JBLabel getLabel() { return myLabel; } + @Override + public JComponent getAnchor() { + return myLabel.getAnchor(); + } + + @Override + public void setAnchor(JComponent labelAnchor) { + myLabel.setAnchor(labelAnchor); + } + public static class TextWithMnemonic { private final String myText; private final int myMnemoniIndex; diff --git a/platform/platform-api/src/com/intellij/ui/ComponentWithAnchor.java b/platform/platform-api/src/com/intellij/ui/ComponentWithAnchor.java new file mode 100644 index 000000000000..53a18064102d --- /dev/null +++ b/platform/platform-api/src/com/intellij/ui/ComponentWithAnchor.java @@ -0,0 +1,12 @@ +package com.intellij.ui; + +import javax.swing.*; + +/** + * @author evgeny.zakrevsky + */ + +public interface ComponentWithAnchor { + JComponent getAnchor(); + void setAnchor(JComponent anchor); +} diff --git a/platform/platform-api/src/com/intellij/ui/components/JBCheckBox.java b/platform/platform-api/src/com/intellij/ui/components/JBCheckBox.java new file mode 100644 index 000000000000..2ca142ebd24c --- /dev/null +++ b/platform/platform-api/src/com/intellij/ui/components/JBCheckBox.java @@ -0,0 +1,63 @@ +package com.intellij.ui.components; + +import com.intellij.ui.ComponentWithAnchor; + +import javax.swing.*; +import java.awt.*; + +/** + * @author evgeny.zakrevsky + */ +public class JBCheckBox extends JCheckBox implements ComponentWithAnchor { + private JComponent anchor; + + public JBCheckBox() { + super(); + } + + public JBCheckBox(Icon icon) { + super(icon); + } + + public JBCheckBox(Icon icon, boolean selected) { + super(icon, selected); + } + + public JBCheckBox(String text) { + super(text); + } + + public JBCheckBox(Action a) { + super(a); + } + + public JBCheckBox(String text, boolean selected) { + super(text, selected); + } + + public JBCheckBox(String text, Icon icon) { + super(text, icon); + } + + public JBCheckBox(String text, Icon icon, boolean selected) { + super(text, icon, selected); + } + + + @Override + public JComponent getAnchor() { + return anchor; + } + + @Override + public void setAnchor(JComponent anchor) { + if (anchor != this) { + this.anchor = anchor; + } + } + + @Override + public Dimension getPreferredSize() { + return anchor == null ? super.getPreferredSize() : anchor.getPreferredSize(); + } +} diff --git a/platform/platform-api/src/com/intellij/ui/components/JBLabel.java b/platform/platform-api/src/com/intellij/ui/components/JBLabel.java index ee69cf36d76a..c55ee3129d01 100644 --- a/platform/platform-api/src/com/intellij/ui/components/JBLabel.java +++ b/platform/platform-api/src/com/intellij/ui/components/JBLabel.java @@ -15,6 +15,7 @@ */ package com.intellij.ui.components; +import com.intellij.ui.ComponentWithAnchor; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -22,9 +23,10 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.*; -public class JBLabel extends JLabel { +public class JBLabel extends JLabel implements ComponentWithAnchor { private UIUtil.ComponentStyle myComponentStyle = UIUtil.ComponentStyle.REGULAR; private UIUtil.FontColor myFontColor = UIUtil.FontColor.NORMAL; + private JComponent anchor; public JBLabel() { } @@ -58,6 +60,14 @@ public class JBLabel extends JLabel { super(text, icon, horizontalAlignment); } + @Override + public void updateUI() { + super.updateUI(); + if (myComponentStyle != null) { + UIUtil.applyStyle(myComponentStyle, this); + } + } + public void setComponentStyle(@NotNull UIUtil.ComponentStyle componentStyle) { myComponentStyle = componentStyle; UIUtil.applyStyle(componentStyle, this); @@ -80,4 +90,21 @@ public class JBLabel extends JLabel { public void setForeground(Color fg) { super.setForeground(UIUtil.getLabelFontColor(myFontColor)); } + + @Override + public void setAnchor(JComponent anchor) { + if (anchor != this) { + this.anchor = anchor; + } + } + + @Override + public JComponent getAnchor() { + return anchor; + } + + @Override + public Dimension getPreferredSize() { + return anchor == null ? super.getPreferredSize() : anchor.getPreferredSize(); + } } diff --git a/platform/platform-resources-en/src/messages/DiagnosticBundle.properties b/platform/platform-resources-en/src/messages/DiagnosticBundle.properties index 0c3987825cfc..9b3fe2e4f42f 100644 --- a/platform/platform-resources-en/src/messages/DiagnosticBundle.properties +++ b/platform/platform-resources-en/src/messages/DiagnosticBundle.properties @@ -56,7 +56,7 @@ error.report.title=Error Report log.monitor.no.files=No log files attached log.monitor.remove.button=&Remove log.monitor.add.button=A&dd -log.monitor.group=Log Files To Be Shown In Console +log.monitor.group=Log Files to Be Shown in Console log.monitor.log.file.column=Log File Entry log.monitor.is.active.column=Is Active log.monitor.is.skipped.column=Skip Content diff --git a/platform/util/src/com/intellij/util/ui/FormBuilder.java b/platform/util/src/com/intellij/util/ui/FormBuilder.java index 6cdb80e6a657..99a50ea92792 100644 --- a/platform/util/src/com/intellij/util/ui/FormBuilder.java +++ b/platform/util/src/com/intellij/util/ui/FormBuilder.java @@ -19,13 +19,11 @@ */ package com.intellij.util.ui; -import com.intellij.openapi.util.SystemInfo; - import javax.swing.*; import java.awt.*; public class FormBuilder { - private static final boolean ALIGN_LABELS_TO_RIGHT = SystemInfo.isMac; + private static final boolean ALIGN_LABELS_TO_RIGHT = UIUtil.isUnderAquaLookAndFeel(); private int line = 0; private int indent; diff --git a/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationEditor.form b/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationEditor.form index 72830af20906..12a9b35429a1 100644 --- a/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationEditor.form +++ b/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationEditor.form @@ -32,7 +32,7 @@ - + @@ -62,7 +62,7 @@ - + diff --git a/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationEditor.java b/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationEditor.java index bf4159826120..62e35d0b322f 100644 --- a/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationEditor.java +++ b/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationEditor.java @@ -29,7 +29,9 @@ import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.LabeledComponent; import com.intellij.openapi.ui.Messages; import com.intellij.ui.ComboboxWithBrowseButton; +import com.intellij.ui.ComponentWithAnchor; import com.intellij.ui.RawCommandLineEditor; +import com.intellij.ui.components.JBLabel; import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.android.facet.AvdsNotSupportedException; import org.jetbrains.android.util.AndroidBundle; @@ -43,7 +45,7 @@ import java.awt.event.ActionListener; /** * @author yole */ -public class AndroidRunConfigurationEditor extends SettingsEditor { +public class AndroidRunConfigurationEditor extends SettingsEditor implements ComponentWithAnchor { private JPanel myPanel; private JComboBox myModulesComboBox; private JCheckBox myChooseDeviceManually; @@ -56,9 +58,11 @@ public class AndroidRunConfigurationEditor configurationSpecificEditor) { myConfigurationSpecificEditor = configurationSpecificEditor; myConfigurationSpecificPanel.add(configurationSpecificEditor.getComponent()); + setAnchor(myConfigurationSpecificEditor.getAnchor()); } public AndroidRunConfigurationEditor(final Project project) { @@ -144,6 +149,17 @@ public class AndroidRunConfigurationEditor { +public interface ConfigurationSpecificEditor extends ComponentWithAnchor { void applyTo(T t); void resetFrom(T t); Component getComponent(); diff --git a/plugins/android/src/org/jetbrains/android/run/testing/TestRunParameters.form b/plugins/android/src/org/jetbrains/android/run/testing/TestRunParameters.form index 36c9e94c2b74..e7cd04d90a5c 100644 --- a/plugins/android/src/org/jetbrains/android/run/testing/TestRunParameters.form +++ b/plugins/android/src/org/jetbrains/android/run/testing/TestRunParameters.form @@ -3,7 +3,7 @@ - + @@ -38,11 +38,9 @@ - + - - - + @@ -81,7 +79,6 @@ - @@ -92,7 +89,6 @@ - diff --git a/plugins/android/src/org/jetbrains/android/run/testing/TestRunParameters.java b/plugins/android/src/org/jetbrains/android/run/testing/TestRunParameters.java index 3c2897314779..f444085fef63 100644 --- a/plugins/android/src/org/jetbrains/android/run/testing/TestRunParameters.java +++ b/plugins/android/src/org/jetbrains/android/run/testing/TestRunParameters.java @@ -30,6 +30,7 @@ import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiPackage; +import com.intellij.ui.components.JBLabel; import org.jetbrains.android.run.AndroidClassBrowser; import org.jetbrains.android.run.ConfigurationSpecificEditor; import org.jetbrains.android.util.AndroidBundle; @@ -61,10 +62,12 @@ class TestRunParameters implements ConfigurationSpecificEditor myMethodComponent; private JPanel myPanel; private LabeledComponent myRunnerComponent; + private JBLabel myLabelTest; private final JRadioButton[] myTestingType2RadioButton = new JRadioButton[4]; private final Project myProject; private final ConfigurationModuleSelector myModuleSelector; + private JComponent anchor; TestRunParameters(Project project, ConfigurationModuleSelector moduleSelector) { myProject = project; @@ -81,6 +84,8 @@ class TestRunParameters implements ConfigurationSpecificEditor labeledComponent, BrowseModuleValueActionListener browser) { browser.setField(labeledComponent.getComponent()); } diff --git a/plugins/devkit/src/run/PluginRunConfigurationEditor.java b/plugins/devkit/src/run/PluginRunConfigurationEditor.java index 0bcbfb99be04..fb0792009526 100644 --- a/plugins/devkit/src/run/PluginRunConfigurationEditor.java +++ b/plugins/devkit/src/run/PluginRunConfigurationEditor.java @@ -136,16 +136,13 @@ public class PluginRunConfigurationEditor extends SettingsEditor - + @@ -18,9 +18,7 @@ - - - + @@ -79,7 +77,6 @@ - diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.java index dfe620ea5337..1c23e2479a9e 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.java @@ -21,8 +21,10 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.ui.ComponentWithAnchor; import com.intellij.ui.DocumentAdapter; import com.intellij.ui.RawCommandLineEditor; +import com.intellij.ui.components.JBLabel; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.mvc.util.ModuleCellRenderer; @@ -32,17 +34,18 @@ import java.awt.*; import java.io.File; import java.util.HashMap; -public class MvcRunConfigurationEditor extends SettingsEditor { +public class MvcRunConfigurationEditor extends SettingsEditor implements ComponentWithAnchor { private DefaultComboBoxModel myModulesModel; protected JComboBox myModulesBox; private JPanel myMainPanel; private RawCommandLineEditor myVMParameters; private JTextField myCommandLine; - private JLabel myVMParamsLabel; + private JBLabel myVMParamsLabel; private JPanel myExtensionPanel; protected JCheckBox myDepsClasspath; private EnvironmentVariablesComponent myEnvVariablesComponent; private MvcFramework myFramework; + private JComponent anchor; public MvcRunConfigurationEditor() { myCommandLine.getDocument().addDocumentListener(new DocumentAdapter() { @@ -51,6 +54,8 @@ public class MvcRunConfigurationEditor extends Se commandLineChanged(getCommandLine()); } }); + + setAnchor(myEnvVariablesComponent.getLabel()); } protected void resetEditorFrom(T configuration) { @@ -95,6 +100,18 @@ public class MvcRunConfigurationEditor extends Se myDepsClasspath.setToolTipText(" " + StringUtil.replace(depsClasspath, File.pathSeparator, "
 ") + ""); } + @Override + public JComponent getAnchor() { + return anchor; + } + + @Override + public void setAnchor(JComponent anchor) { + this.anchor = anchor; + myVMParamsLabel.setAnchor(anchor); + myEnvVariablesComponent.setAnchor(anchor); + } + protected static void setCBEnabled(boolean enabled, final JCheckBox checkBox) { final boolean wasEnabled = checkBox.isEnabled(); checkBox.setEnabled(enabled); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.form b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.form index 0d54583af6a3..050eff6dfc4b 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.form +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.form @@ -35,45 +35,21 @@
- + - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -106,9 +82,7 @@ - - - + @@ -116,12 +90,21 @@ - + + + + + + + + + + diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.java index 7eb93093acc3..3536df608921 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.java @@ -27,8 +27,10 @@ import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.roots.ui.configuration.ModulesAlphaComparator; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.ComboboxSpeedSearch; +import com.intellij.ui.ComponentWithAnchor; import com.intellij.ui.FieldPanel; import com.intellij.ui.RawCommandLineEditor; +import com.intellij.ui.components.JBLabel; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.GroovyFileType; @@ -37,7 +39,7 @@ import java.awt.*; import java.util.*; import java.util.List; -public class GroovyRunConfigurationEditor extends SettingsEditor { +public class GroovyRunConfigurationEditor extends SettingsEditor implements ComponentWithAnchor { private DefaultComboBoxModel myModulesModel; private JComboBox myModulesBox; private JPanel myMainPanel; @@ -47,8 +49,10 @@ public class GroovyRunConfigurationEditor extends SettingsEditor
- + @@ -45,7 +45,7 @@ - + @@ -97,7 +97,6 @@ - @@ -121,12 +120,11 @@ - - + @@ -166,6 +164,11 @@ + + + + + @@ -177,7 +180,6 @@ - @@ -188,7 +190,6 @@ - @@ -199,7 +200,6 @@ - @@ -212,8 +212,8 @@ - - + + @@ -224,31 +224,32 @@ - - - + - + - - - + - - - + + + + + + + + diff --git a/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.java b/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.java index 7ad219bc97fe..45ece6d2fd27 100644 --- a/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.java +++ b/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.java @@ -46,9 +46,11 @@ import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; +import com.intellij.ui.ComponentWithAnchor; import com.intellij.ui.EditorTextField; import com.intellij.ui.EditorTextFieldWithBrowseButton; import com.intellij.ui.InsertPathAction; +import com.intellij.ui.components.JBLabel; import com.intellij.util.PlatformIcons; import com.intellij.util.TextFieldCompletionProvider; import gnu.trove.TIntArrayList; @@ -66,7 +68,7 @@ import java.awt.event.ActionListener; import java.util.Arrays; import java.util.List; -public class JUnitConfigurable extends SettingsEditor { +public class JUnitConfigurable extends SettingsEditor implements ComponentWithAnchor { private static final List ourEnabledFields = Arrays.asList( new TIntArrayList(new int[]{0}), new TIntArrayList(new int[]{1}), @@ -105,12 +107,14 @@ public class JUnitConfigurable extends SettingsEditor { private final BrowseModuleValueActionListener[] myBrowsers; private AlternativeJREPanel myAlternativeJREPanel; private JComboBox myForkCb; + private JBLabel myTestLabel; @NonNls private static final String NONE = "none"; @NonNls private static final String METHOD = "method"; @NonNls private static final String KLASS = "class"; private static final String[] FORK_MODE_ALL = {NONE, METHOD, KLASS}; private static final String[] FORK_MODE = {NONE, METHOD}; private Project myProject; + private JComponent anchor; public JUnitConfigurable(final Project project) { myProject = project; @@ -197,6 +201,9 @@ public class JUnitConfigurable extends SettingsEditor { }); myCommonJavaParameters.getProgramParametersComponent().setVisible(false); + + setAnchor(myDir.getLabel()); + myAlternativeJREPanel.setAnchor(myModule.getLabel()); } public void applyEditorTo(final JUnitConfiguration configuration) { @@ -372,6 +379,22 @@ public class JUnitConfigurable extends SettingsEditor { myMethod.setComponent(textFieldWithBrowseButton); } + @Override + public JComponent getAnchor() { + return anchor; + } + + @Override + public void setAnchor(JComponent anchor) { + this.anchor = anchor; + myTestLabel.setAnchor(anchor); + myClass.setAnchor(anchor); + myDir.setAnchor(anchor); + myMethod.setAnchor(anchor); + myPattern.setAnchor(anchor); + myPackage.setAnchor(anchor); + } + private static void addRadioButtonsListeners(final JRadioButton[] radioButtons, ChangeListener listener) { final ButtonGroup group = new ButtonGroup(); for (final JRadioButton radioButton : radioButtons) { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerConfigurable.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerConfigurable.java index 637544bcb9ba..d92d54e6399c 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerConfigurable.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerConfigurable.java @@ -63,6 +63,7 @@ public abstract class MavenRunnerConfigurable implements SearchableConfigurable GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.WEST; + c.insets.bottom = 5; myRunInBackgroundCheckbox = new JCheckBox("Run in background"); myRunInBackgroundCheckbox.setMnemonic('b'); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerParametersConfigurable.form b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerParametersConfigurable.form index d7e726d7c145..2e8b84dafd92 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerParametersConfigurable.form +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerParametersConfigurable.form @@ -15,7 +15,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -43,7 +43,7 @@ - + diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerParametersConfigurable.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerParametersConfigurable.java index 74022438407d..e9b72e586170 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerParametersConfigurable.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerParametersConfigurable.java @@ -21,6 +21,7 @@ import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.ui.LabeledComponent; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.ui.ComponentWithAnchor; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.maven.model.MavenConstants; @@ -31,11 +32,12 @@ import javax.swing.*; /** * @author Vladislav.Kaznacheev */ -public abstract class MavenRunnerParametersConfigurable implements Configurable { +public abstract class MavenRunnerParametersConfigurable implements Configurable, ComponentWithAnchor { private JPanel panel; protected LabeledComponent workingDirComponent; protected LabeledComponent goalsComponent; private LabeledComponent profilesComponent; + private JComponent anchor; public MavenRunnerParametersConfigurable() { workingDirComponent.getComponent().addBrowseFolderListener( @@ -47,6 +49,8 @@ public abstract class MavenRunnerParametersConfigurable implements Configurable return file.findChild(MavenConstants.POM_XML) != null; } }); + + setAnchor(profilesComponent.getLabel()); } public JComponent createComponent() { @@ -98,4 +102,17 @@ public abstract class MavenRunnerParametersConfigurable implements Configurable } protected abstract MavenRunnerParameters getParameters(); + + @Override + public JComponent getAnchor() { + return anchor; + } + + @Override + public void setAnchor(JComponent anchor) { + this.anchor = anchor; + workingDirComponent.setAnchor(anchor); + goalsComponent.setAnchor(anchor); + profilesComponent.setAnchor(anchor); + } } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenEnvironmentForm.form b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenEnvironmentForm.form index 8b85c839ece1..b2ff269036d6 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenEnvironmentForm.form +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenEnvironmentForm.form @@ -15,7 +15,6 @@ - @@ -27,14 +26,6 @@ - - - - - - - - @@ -47,7 +38,6 @@ - @@ -59,10 +49,10 @@ - + - + @@ -74,7 +64,6 @@ - @@ -90,6 +79,14 @@ + + + + + + + + diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenEnvironmentForm.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenEnvironmentForm.java index 82dede18014b..8b155d25cd6d 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenEnvironmentForm.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenEnvironmentForm.java @@ -22,6 +22,7 @@ import com.intellij.openapi.ui.LabeledComponent; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.ui.ComponentWithAnchor; import com.intellij.ui.DocumentAdapter; import com.intellij.util.Alarm; import com.intellij.util.ui.UIUtil; @@ -35,7 +36,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; -public class MavenEnvironmentForm { +public class MavenEnvironmentForm implements ComponentWithAnchor { private JPanel panel; private LabeledComponent mavenHomeComponent; private LabeledComponent settingsFileComponent; @@ -43,6 +44,7 @@ public class MavenEnvironmentForm { private JCheckBox mavenHomeOverrideCheckBox; private JCheckBox settingsOverrideCheckBox; private JCheckBox localRepositoryOverrideCheckBox; + private JComponent anchor; private final PathOverrider mavenHomeOverrider; private final PathOverrider userSettingsFileOverrider; @@ -95,6 +97,8 @@ public class MavenEnvironmentForm { settingsFileComponent.getComponent().getText()); } }); + + setAnchor(mavenHomeComponent.getLabel()); } public boolean isModified(MavenGeneralSettings data) { @@ -126,6 +130,19 @@ public class MavenEnvironmentForm { return panel; } + @Override + public JComponent getAnchor() { + return anchor; + } + + @Override + public void setAnchor(JComponent anchor) { + this.anchor = anchor; + mavenHomeComponent.setAnchor(anchor); + settingsFileComponent.setAnchor(anchor); + localRepositoryComponent.setAnchor(anchor); + } + private static abstract class PathProvider { public String getPath() { final File file = getFile(); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.form b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.form index 0de2154e7246..be990e83b828 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.form +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.form @@ -40,12 +40,9 @@ - + - - - - + diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.java index 02aadaa438d3..c63b85e15f93 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.java @@ -19,6 +19,8 @@ package org.jetbrains.idea.maven.project; import com.intellij.openapi.options.SearchableConfigurable; import com.intellij.openapi.util.Pair; +import com.intellij.ui.ComponentWithAnchor; +import com.intellij.ui.components.JBLabel; import com.intellij.util.Function; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NonNls; @@ -33,7 +35,7 @@ import java.util.Arrays; /** * @author Ralf Quebbemann (ralfq@codehaus.org) */ -public abstract class MavenGeneralConfigurable implements SearchableConfigurable { +public abstract class MavenGeneralConfigurable implements SearchableConfigurable, ComponentWithAnchor { private JCheckBox checkboxWorkOffline; private JPanel panel; private JComboBox outputLevelCombo; @@ -45,11 +47,13 @@ public abstract class MavenGeneralConfigurable implements SearchableConfigurable private JCheckBox checkboxRecursive; private MavenEnvironmentForm mavenPathsForm; private JComboBox snapshotUpdatePolicyCombo; + private JBLabel myMultiprojectBuildFailPolicyLabel; private final DefaultComboBoxModel outputLevelComboModel = new DefaultComboBoxModel(); private final DefaultComboBoxModel checksumPolicyComboModel = new DefaultComboBoxModel(); private final DefaultComboBoxModel failPolicyComboModel = new DefaultComboBoxModel(); private final DefaultComboBoxModel snapshotUpdatePolicyComboModel = new DefaultComboBoxModel(); private final DefaultComboBoxModel pluginUpdatePolicyComboModel = new DefaultComboBoxModel(); + private JComponent anchor; protected abstract MavenGeneralSettings getState(); @@ -59,6 +63,8 @@ public abstract class MavenGeneralConfigurable implements SearchableConfigurable fillFailureBehaviorCombobox(); fillPluginUpdatePolicyCombobox(); fillSnapshotUpdatePolicyCombobox(); + + setAnchor(myMultiprojectBuildFailPolicyLabel); } private void fillOutputLevelCombobox() { @@ -192,4 +198,16 @@ public abstract class MavenGeneralConfigurable implements SearchableConfigurable public Runnable enableSearch(String option) { return null; } + + @Override + public JComponent getAnchor() { + return anchor; + } + + @Override + public void setAnchor(JComponent anchor) { + this.anchor = anchor; + myMultiprojectBuildFailPolicyLabel.setAnchor(anchor); + mavenPathsForm.setAnchor(anchor); + } } \ No newline at end of file diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.form b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.form index b6084c839371..4fc7d0565b48 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.form +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.form @@ -49,7 +49,6 @@ - @@ -59,7 +58,6 @@ - @@ -85,7 +83,6 @@ - @@ -124,7 +121,6 @@ - @@ -134,7 +130,6 @@ - @@ -144,7 +139,6 @@ - @@ -159,7 +153,7 @@ - + @@ -169,21 +163,18 @@ - + - - + - - - + @@ -195,7 +186,14 @@ - + + + + + + + + diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.java b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.java index 23c3f9194df3..7da1bd322d57 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.java +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.java @@ -48,6 +48,7 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiMethod; import com.intellij.psi.search.GlobalSearchScope; +import com.intellij.ui.ComponentWithAnchor; import com.intellij.ui.EditorTextFieldWithBrowseButton; import com.intellij.ui.table.TableView; import com.intellij.util.TextFieldCompletionProvider; @@ -68,8 +69,7 @@ import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Map; -public class TestNGConfigurationEditor extends SettingsEditor -{ +public class TestNGConfigurationEditor extends SettingsEditor implements ComponentWithAnchor { //private static final Logger LOGGER = Logger.getInstance("TestNG Runner"); private final Project project; @@ -89,6 +89,7 @@ public class TestNGConfigurationEditor extends SettingsEditor packageField; private LabeledComponent groupField; private LabeledComponent suiteField; + private JComponent anchor; private JRadioButton packagesInProject; private JRadioButton packagesInModule; private JRadioButton packagesAcrossModules; @@ -119,7 +120,6 @@ public class TestNGConfigurationEditor extends SettingsEditor