summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStas Negara <snegara@google.com>2015-03-06 13:44:52 -0800
committerStas Negara <snegara@google.com>2015-03-06 14:56:34 -0800
commit38ee9dd5c09913d7a4d7bc85ffa762005d400a3d (patch)
treebf75e13c1636f661207ac84887729de51c6a37ec
parentf610df544db517cb3b81fe1370ddcf84180c4301 (diff)
downloadtesting-38ee9dd5c09913d7a4d7bc85ffa762005d400a3d.tar.gz
Added 'Copy' button and repurposed 'Add' button in matrix configuration dialog. Also, a bit of cleanup.
Change-Id: Ie00ef486e17950aca9ab433f1bd2c04c60c7486a
-rw-r--r--src/com/google/gct/testing/CloudConfigurationChooserDialog.form4
-rw-r--r--src/com/google/gct/testing/CloudConfigurationChooserDialog.java67
2 files changed, 42 insertions, 29 deletions
diff --git a/src/com/google/gct/testing/CloudConfigurationChooserDialog.form b/src/com/google/gct/testing/CloudConfigurationChooserDialog.form
index dffb670..5a67a5c 100644
--- a/src/com/google/gct/testing/CloudConfigurationChooserDialog.form
+++ b/src/com/google/gct/testing/CloudConfigurationChooserDialog.form
@@ -12,7 +12,7 @@
<properties/>
<border type="none"/>
<children>
- <grid id="6aaaa" binding="myConfiguarationNamePanel" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+ <grid id="6aaaa" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints border-constraint="North"/>
<properties/>
@@ -45,7 +45,7 @@
</component>
</children>
</grid>
- <grid id="a2525" binding="myConfigurationDetailsPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
+ <grid id="a2525" layout-manager="BorderLayout" hgap="0" vgap="0">
<constraints border-constraint="Center"/>
<properties/>
<border type="none"/>
diff --git a/src/com/google/gct/testing/CloudConfigurationChooserDialog.java b/src/com/google/gct/testing/CloudConfigurationChooserDialog.java
index b4cbab9..5dbfa69 100644
--- a/src/com/google/gct/testing/CloudConfigurationChooserDialog.java
+++ b/src/com/google/gct/testing/CloudConfigurationChooserDialog.java
@@ -26,12 +26,11 @@ import com.intellij.icons.AllIcons;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.module.Module;
-import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.Splitter;
import com.intellij.ui.*;
import com.intellij.ui.treeStructure.Tree;
-import com.intellij.util.IconUtil;
+import com.intellij.util.PlatformIcons;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import icons.AndroidIcons;
@@ -45,7 +44,6 @@ import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
-import java.text.NumberFormat;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;
@@ -54,22 +52,17 @@ import static com.google.gct.testing.CloudTestingUtils.createConfigurationChoose
public class CloudConfigurationChooserDialog extends DialogWrapper implements ConfigurationChangeListener {
- public static final double COST_PER_COMBINATION = 0.3;
private final List<CloudTestConfigurationImpl> editableConfigurations;
private final List<CloudTestConfigurationImpl> defaultConfigurations;
private final MyAddAction myAddAction = new MyAddAction();
private final MyRemoveAction myRemoveAction = new MyRemoveAction();
+ private final MyCopyActionButton myCopyActionButton = new MyCopyActionButton();
private final MyMoveUpAction myMoveUpAction = new MyMoveUpAction();
private final MyMoveDownAction myMoveDownAction = new MyMoveDownAction();
- NumberFormat formatter = NumberFormat.getCurrencyInstance();
-
- private static final Icon ADD_ICON = IconUtil.getAddIcon();
- private static final Icon REMOVE_ICON = IconUtil.getRemoveIcon();
private final DefaultMutableTreeNode customRoot = new DefaultMutableTreeNode("Custom");
private final DefaultMutableTreeNode defaultsRoot = new DefaultMutableTreeNode("Defaults");
- private final Project myProject;
private JPanel myPanel;
private final Splitter mySplitter = new Splitter(false);
private JPanel myConfigurationPanel;
@@ -78,8 +71,6 @@ public class CloudConfigurationChooserDialog extends DialogWrapper implements Co
private JPanel myConfigurationTreePanel;
private JLabel myConfigurationNameLabel;
private JLabel myGroupDescriptionLabel;
- private JPanel myConfiguarationNamePanel;
- private JPanel myConfigurationDetailsPanel;
private JPanel myConfigurationEditorPanel;
private JPanel myConfigurationInfoPanel;
private JLabel myConfigurationInfoLabel;
@@ -110,8 +101,6 @@ public class CloudConfigurationChooserDialog extends DialogWrapper implements Co
setTitle("Matrix Configurations");
- myProject = facet.getModule().getProject();
-
getOKAction().setEnabled(true);
myConfigurationTree.addTreeSelectionListener(new TreeSelectionListener() {
@@ -287,7 +276,7 @@ public class CloudConfigurationChooserDialog extends DialogWrapper implements Co
ExecutionBundle.message("move.up.action.name"))
.setMoveDownAction(myMoveDownAction).setMoveDownActionUpdater(myMoveDownAction).setMoveDownActionName(
ExecutionBundle.message("move.down.action.name"))
- //.addExtraAction(AnActionButton.fromAction(new MyCopyAction()))
+ .addExtraAction(myCopyActionButton)
//.addExtraAction(AnActionButton.fromAction(new MySaveAction()))
.setButtonComparator(ExecutionBundle.message("add.new.run.configuration.acrtion.name"),
ExecutionBundle.message("remove.run.configuration.action.name"),
@@ -441,6 +430,30 @@ public class CloudConfigurationChooserDialog extends DialogWrapper implements Co
}
}
+ private class MyCopyActionButton extends AnActionButton implements AnActionButtonUpdater {
+
+ public MyCopyActionButton() {
+ super(ExecutionBundle.message("copy.configuration.action.name"), ExecutionBundle.message("copy.configuration.action.name"),
+ PlatformIcons.COPY_ICON);
+ addCustomUpdater(this);
+ }
+
+ @Override
+ public void actionPerformed(AnActionEvent e) {
+ // selectedConfiguration should not be null here, but handle this scenario just in case.
+ CloudTestConfigurationImpl newConfiguration = selectedConfiguration != null
+ ? selectedConfiguration.copy("Copy of ")
+ : new CloudTestConfigurationImpl(facet);
+
+ addNewConfiguration(newConfiguration);
+ }
+
+ @Override
+ public boolean isEnabled(AnActionEvent e) {
+ return selectedConfiguration != null;
+ }
+ }
+
private class MyAddAction extends AnAction implements AnActionButtonRunnable, AnActionButtonUpdater {
@Override
@@ -454,19 +467,7 @@ public class CloudConfigurationChooserDialog extends DialogWrapper implements Co
}
private void doAdd() {
- CloudTestConfigurationImpl newConfiguration = selectedConfiguration != null
- ? selectedConfiguration.copy("Copy of ")
- : new CloudTestConfigurationImpl(facet);
-
- newConfiguration.setIcon(CloudTestConfigurationProviderImpl.DEFAULT_ICON);
- int addIndex = selectedConfiguration == null
- ? editableConfigurations.size()
- : editableConfigurations.indexOf(selectedConfiguration) + 1;
- editableConfigurations.add(addIndex, newConfiguration);
- addConfigurationToTree(addIndex, newConfiguration, true);
- selectedConfiguration = newConfiguration;
-
- updateConfigurationTree();
+ addNewConfiguration(new CloudTestConfigurationImpl(facet));
}
@Override
@@ -475,6 +476,18 @@ public class CloudConfigurationChooserDialog extends DialogWrapper implements Co
}
}
+ private void addNewConfiguration(CloudTestConfigurationImpl newConfiguration) {
+ newConfiguration.setIcon(CloudTestConfigurationProviderImpl.DEFAULT_ICON);
+ int addIndex = selectedConfiguration == null
+ ? editableConfigurations.size()
+ : editableConfigurations.indexOf(selectedConfiguration) + 1;
+ editableConfigurations.add(addIndex, newConfiguration);
+ addConfigurationToTree(addIndex, newConfiguration, true);
+ selectedConfiguration = newConfiguration;
+
+ updateConfigurationTree();
+ }
+
private class MyMoveUpAction extends AnAction implements AnActionButtonRunnable, AnActionButtonUpdater {
@Override