Cleanly distinguish three representations of a matrix configuration: encoded, configuration dialog display, results viewer display.

Change-Id: I5c0bd2517e1eaaf3803abcc8fd38b36a8c356de0
diff --git a/src/com/google/gct/testing/CloudResultsAdapter.java b/src/com/google/gct/testing/CloudResultsAdapter.java
index 979a6bd..18cbf1b 100644
--- a/src/com/google/gct/testing/CloudResultsAdapter.java
+++ b/src/com/google/gct/testing/CloudResultsAdapter.java
@@ -77,7 +77,7 @@
     for (ConfigurationResult result : results.values()) {
       if (!markedAsPendingConfigurations.contains(result)) {
         markedAsPendingConfigurations.add(result);
-        resultParser.getTestRunListener().testConfigurationStarted(result.getConfigurationInstance().getDisplayString());
+        resultParser.getTestRunListener().testConfigurationStarted(result.getConfigurationInstance().getResultsViewerDisplayString());
       }
     }
 
@@ -110,7 +110,7 @@
                                              : result.isInfrastructureFailure()
                                                ? ConfigurationStopReason.INFRASTRUCTURE_FAILURE
                                                : ConfigurationStopReason.TRIGGERING_ERROR;
-        resultParser.getTestRunListener().stopTestConfiguration(result.getConfigurationInstance().getDisplayString(), stopReason);
+        resultParser.getTestRunListener().stopTestConfiguration(result.getConfigurationInstance().getResultsViewerDisplayString(), stopReason);
       }
     }
 
@@ -128,7 +128,7 @@
       //for (ConfigurationResult result : results.values()) {
       //  if (!markedAsFinishedConfigurations.contains(result)) {
       //    resultParser.getTestRunListener()
-      //      .stopTestConfiguration(result.getConfigurationInstance().getDisplayString(), ConfigurationStopReason.TIMED_OUT);
+      //      .stopTestConfiguration(result.getConfigurationInstance().getResultsViewerDisplayString(), ConfigurationStopReason.TIMED_OUT);
       //  }
       //}
     }
@@ -138,7 +138,8 @@
   }
 
   private byte[] getParserInput(ConfigurationResult result) {
-    String configurationName = "\r\nINSTRUMENTATION_STATUS: configuration=" + result.getConfigurationInstance().getDisplayString() + "\r\n";
+    String configurationName = "\r\nINSTRUMENTATION_STATUS: configuration="
+                               + result.getConfigurationInstance().getResultsViewerDisplayString() + "\r\n";
     String classNamePrefix = "INSTRUMENTATION_STATUS: class=";
     //Make sure the input uses \r\n (Windows-style EOL) as line delimiter as this is what parser expects/produces.
     return result.getResult().replaceAll("\\n" + classNamePrefix, configurationName + classNamePrefix).getBytes();
diff --git a/src/com/google/gct/testing/CloudResultsLoader.java b/src/com/google/gct/testing/CloudResultsLoader.java
index eb9471c..4250e80 100644
--- a/src/com/google/gct/testing/CloudResultsLoader.java
+++ b/src/com/google/gct/testing/CloudResultsLoader.java
@@ -76,7 +76,7 @@
             newDataReceived = true;
             configurationProgress.put(encodedConfigurationInstance, progressLine);
             testRunListener.testConfigurationProgress(
-              ConfigurationInstance.parseFromEncodedString(encodedConfigurationInstance).getDisplayString(), progressLine);
+              ConfigurationInstance.parseFromEncodedString(encodedConfigurationInstance).getResultsViewerDisplayString(), progressLine);
           }
         }
       }
@@ -248,7 +248,7 @@
     configurationProgress.put(encodedConfigurationInstance, newProgress);
     String diffProgress = newProgress.substring(previousProgress.length());
     testRunListener.testConfigurationProgress(
-      ConfigurationInstance.parseFromEncodedString(encodedConfigurationInstance).getDisplayString(), diffProgress);
+      ConfigurationInstance.parseFromEncodedString(encodedConfigurationInstance).getResultsViewerDisplayString(), diffProgress);
   }
 
   private ConfigurationResult getOrCreateConfigurationResult(String encodedConfigurationInstance,
diff --git a/src/com/google/gct/testing/ConfigurationInstance.java b/src/com/google/gct/testing/ConfigurationInstance.java
index dc74cab..04b2e00 100644
--- a/src/com/google/gct/testing/ConfigurationInstance.java
+++ b/src/com/google/gct/testing/ConfigurationInstance.java
@@ -28,12 +28,20 @@
 
 public class ConfigurationInstance {
 
-  public static final Function<GoogleCloudTestingType,String> GET_DISPLAY_NAME = new Function<GoogleCloudTestingType, String>() {
-    @Override
-    public String apply(GoogleCloudTestingType input) {
-      return input.getConfigurationDialogDisplayName();
-    }
-  };
+  //public static final Function<GoogleCloudTestingType,String> GET_CONFIGURATION_DIALOG_DISPLAY_NAME =
+  //  new Function<GoogleCloudTestingType, String>() {
+  //    @Override
+  //    public String apply(GoogleCloudTestingType input) {
+  //      return input.getConfigurationDialogDisplayName();
+  //    }
+  //  };
+  public static final Function<GoogleCloudTestingType,String> GET_RESULTS_VIEWER_DISPLAY_NAME =
+    new Function<GoogleCloudTestingType, String>() {
+      @Override
+      public String apply(GoogleCloudTestingType input) {
+        return input.getResultsViewerDisplayName();
+      }
+    };
   public static final Function<GoogleCloudTestingType,String> GET_ENCODED_NAME = new Function<GoogleCloudTestingType, String>() {
     @Override
     public String apply(GoogleCloudTestingType input) {
@@ -52,8 +60,8 @@
     return parse(GET_ENCODED_NAME, ENCODED_NAME_DELIMITER, configurationInstance);
   }
 
-  public static ConfigurationInstance parseFromDisplayString(String configurationInstance) {
-    return parse(GET_DISPLAY_NAME, DISPLAY_NAME_DELIMITER, configurationInstance);
+  public static ConfigurationInstance parseFromResultsViewerDisplayString(String configurationInstance) {
+    return parse(GET_RESULTS_VIEWER_DISPLAY_NAME, DISPLAY_NAME_DELIMITER, configurationInstance);
   }
 
   private static ConfigurationInstance parse(Function<GoogleCloudTestingType, String> typeToNameFunction, String delimiter, String input) {
@@ -78,7 +86,7 @@
       }
     }
     if (dimensionName == null) {
-      throw new NoSuchElementException("Could not find the corresponding dimension for type: " + type.getConfigurationDialogDisplayName());
+      throw new NoSuchElementException("Could not find the corresponding dimension for type: " + type.getResultsViewerDisplayName());
     }
     result.typesByDimensionName.put(dimensionName, type);
   }
@@ -97,8 +105,12 @@
     return getRepresentationString(GET_ENCODED_NAME, ENCODED_NAME_DELIMITER);
   }
 
-  public String getDisplayString() {
-    return getRepresentationString(GET_DISPLAY_NAME, DISPLAY_NAME_DELIMITER);
+  //public String getConfigurationDialogDisplayString() {
+  //  return getRepresentationString(GET_CONFIGURATION_DIALOG_DISPLAY_NAME, DISPLAY_NAME_DELIMITER);
+  //}
+  //
+  public String getResultsViewerDisplayString() {
+    return getRepresentationString(GET_RESULTS_VIEWER_DISPLAY_NAME, DISPLAY_NAME_DELIMITER);
   }
 
   private String getRepresentationString(Function<GoogleCloudTestingType,String> typeToNameFunction, String delimiter) {
diff --git a/src/com/google/gct/testing/ConfigurationResult.java b/src/com/google/gct/testing/ConfigurationResult.java
index e002fff..208719f 100644
--- a/src/com/google/gct/testing/ConfigurationResult.java
+++ b/src/com/google/gct/testing/ConfigurationResult.java
@@ -221,7 +221,7 @@
   @Override
   public String toString() {
     return "ConfigurationResult{" +
-           "configurationInstance='" + configurationInstance.getDisplayString() + '\'' +
+           "configurationInstance='" + configurationInstance.getResultsViewerDisplayString() + '\'' +
            ", result=" + result +
            ", isComplete=" + isComplete +
            '}';
diff --git a/src/com/google/gct/testing/ScreenshotComparisonPanel.java b/src/com/google/gct/testing/ScreenshotComparisonPanel.java
index 49f4756..c0c4fa3 100644
--- a/src/com/google/gct/testing/ScreenshotComparisonPanel.java
+++ b/src/com/google/gct/testing/ScreenshotComparisonPanel.java
@@ -136,7 +136,7 @@
         if (value instanceof GoogleCloudTestingType) {
           final GoogleCloudTestingType type = (GoogleCloudTestingType) value;
 
-          label.setText(type.getConfigurationDialogDisplayName());
+          label.setText(type.getResultsViewerDisplayName());
           //label.setIcon(type.getIcon());
           //label.setIconTextGap(2);
         }
@@ -196,7 +196,7 @@
         });
       } else {
         final GoogleCloudTestingType type = Iterables.getOnlyElement(dimension.getEnabledTypes());
-        myConfigurationChooserPanel.add(new JLabel(" " + type.getConfigurationDialogDisplayName()), bagConstraints);
+        myConfigurationChooserPanel.add(new JLabel(" " + type.getResultsViewerDisplayName()), bagConstraints);
         myTypeSelections.add(new GoogleCloudTestingTypeSelection() {
           @Override
           public GoogleCloudTestingType getType() {
@@ -260,7 +260,7 @@
   }
 
   private void updateHeaderBar() {
-    String configurationInstanceName = selectedConfigurationInstance.getDisplayString();
+    String configurationInstanceName = selectedConfigurationInstance.getResultsViewerDisplayString();
     GoogleCloudTestProxy testNode;
     try {
       testNode = (GoogleCloudTestProxy) getChild(getChild(getChild(testTreeRoot, configurationInstanceName), currentTest.getClassName()), currentTest.getMethodName());
@@ -319,7 +319,7 @@
 
         ConfigurationInstance configurationInstance = selectedConfigurationResult.getConfigurationInstance();
         String proposedFileName = configurationInstance.getEncodedString();
-        String description = "Save screenshot of " + configurationInstance.getDisplayString();
+        String description = "Save screenshot of " + configurationInstance.getResultsViewerDisplayString();
 
         FileSaverDescriptor descriptor = new FileSaverDescriptor("Save Screenshot", description, "png");
         FileSaverDialogImpl fileSaverDialog = new FileSaverDialogImpl(descriptor, parent.getWindow());
diff --git a/src/com/google/gct/testing/ShowScreenshotsAction.java b/src/com/google/gct/testing/ShowScreenshotsAction.java
index 185bf64..751eed9 100644
--- a/src/com/google/gct/testing/ShowScreenshotsAction.java
+++ b/src/com/google/gct/testing/ShowScreenshotsAction.java
@@ -73,7 +73,8 @@
     }
 
     AbstractTestProxy selectedConfigurationNode = selectedLeaf.getParent().getParent();
-    ConfigurationInstance configurationInstance = ConfigurationInstance.parseFromDisplayString(selectedConfigurationNode.getName());
+    ConfigurationInstance configurationInstance =
+      ConfigurationInstance.parseFromResultsViewerDisplayString(selectedConfigurationNode.getName());
     Map<String,ConfigurationResult> results =
       CloudTestConfigurationProviderImpl.getCloudResultsAdapter(rootNode.getTestRunId()).getResults();
 
@@ -84,7 +85,9 @@
 
     AbstractTestProxy anotherConfigurationNode = findClosestNeighborWithResults(selectedConfigurationNode);
     ConfigurationInstance anotherConfigurationInstance =
-      anotherConfigurationNode == null ? null : ConfigurationInstance.parseFromDisplayString(anotherConfigurationNode.getName());
+      anotherConfigurationNode == null
+      ? null
+      : ConfigurationInstance.parseFromResultsViewerDisplayString(anotherConfigurationNode.getName());
 
     ArrayList<TestName> allTests = Lists.newArrayList(Iterables.transform(selectedLeaf.getParent().getChildren(), TO_TEST_NAMES));