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