JAL-2422 temporary hacks removed; use hex colours for Chimera[X]
[jalview.git] / src / jalview / ext / rbvi / chimera / JalviewChimeraBinding.java
index 786fc6c..d0fa5ef 100644 (file)
@@ -41,6 +41,7 @@ import jalview.structure.AtomSpec;
 import jalview.structure.StructureMappingcommandSet;
 import jalview.structure.StructureSelectionManager;
 import jalview.structures.models.AAStructureBindingModel;
+import jalview.util.ColorUtils;
 import jalview.util.MessageManager;
 
 import java.awt.Color;
@@ -137,8 +138,7 @@ public abstract class JalviewChimeraBinding extends AAStructureBindingModel
     try
     {
       List<ChimeraModel> modelsToMap = new ArrayList<>();
-      List<ChimeraModel> oldList = viewer.isChimeraX() ? new ArrayList<>()
-              : viewer.getModelList();
+      List<ChimeraModel> oldList = viewer.getModelList();
       boolean alreadyOpen = false;
 
       /*
@@ -1025,8 +1025,8 @@ public abstract class JalviewChimeraBinding extends AAStructureBindingModel
 
     /*
      * concatenate colour commands, one per residue symbol
-     * Chimera format:  color 0.000000,0.372549,0.627451 ::VAL
-     * ChimeraX format: color :VAL rgb(73,73,182)
+     * Chimera format:  color colorCode ::VAL
+     * ChimeraX format: color :VAL colourCode
      */
     boolean chimeraX = viewer.isChimeraX();
     for (String resName : residueSet)
@@ -1036,7 +1036,7 @@ public abstract class JalviewChimeraBinding extends AAStructureBindingModel
               : resName.charAt(0);
       Color col = cs.findColour(res, 0, null, null, 0f);
       command.append("color ");
-      String colorSpec = getRgbDescriptor(col, chimeraX);
+      String colorSpec = ColorUtils.toTkCode(col);
       if (chimeraX)
       {
         command.append(":").append(resName).append(" ").append(colorSpec);
@@ -1100,40 +1100,12 @@ public abstract class JalviewChimeraBinding extends AAStructureBindingModel
   public void setBackgroundColour(Color col)
   {
     viewerCommandHistory(false);
-    String command = "set bgColor "
-            + getRgbDescriptor(col, viewer.isChimeraX());
+    String command = "set bgColor " + ColorUtils.toTkCode(col);
     viewer.sendChimeraCommand(command, false);
     viewerCommandHistory(true);
   }
 
   /**
-   * Answers the Chimera/X format for RGB values of the given colour.
-   * 
-   * <pre>
-   * Chimera: r,g,b with values scaled [0=1]
-   * ChimeraX: rgb(r,g,b) with values scaled 0-255
-   * </pre>
-   * 
-   * @param col
-   * @param chimeraX
-   * @return
-   */
-  private static String getRgbDescriptor(Color col, boolean chimeraX)
-  {
-    if (chimeraX)
-    {
-      return String.format("rgb(%d,%d,%d)", col.getRed(), col.getGreen(),
-              col.getBlue());
-    }
-    else
-    {
-      double scale = 255D;
-      return String.format("%f,%f,%f", col.getRed() / scale,
-              col.getGreen() / scale, col.getBlue() / scale);
-    }
-  }
-
-  /**
    * Ask Chimera to save its session to the given file. Returns true if
    * successful, else false.
    *