diff options
author | Stas Negara <snegara@google.com> | 2015-03-06 13:44:52 -0800 |
---|---|---|
committer | Stas Negara <snegara@google.com> | 2015-03-06 14:56:34 -0800 |
commit | 38ee9dd5c09913d7a4d7bc85ffa762005d400a3d (patch) | |
tree | bf75e13c1636f661207ac84887729de51c6a37ec | |
parent | f610df544db517cb3b81fe1370ddcf84180c4301 (diff) | |
download | testing-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.form | 4 | ||||
-rw-r--r-- | src/com/google/gct/testing/CloudConfigurationChooserDialog.java | 67 |
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 |