X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Frbvi%2Fchimera%2FChimeraCommands.java;fp=src%2Fjalview%2Fext%2Frbvi%2Fchimera%2FChimeraCommands.java;h=c9dbc1d7664b3ffd6b3fd55ac0687c8627de2f8d;hb=27f24d1f14b8e8704d72797286f7a6e5f60b2119;hp=c355abed0db9cc01e6478e948aebfdd28075e9cb;hpb=aa643d0f2f5f506df2771e216af1618549d32050;p=jalview.git diff --git a/src/jalview/ext/rbvi/chimera/ChimeraCommands.java b/src/jalview/ext/rbvi/chimera/ChimeraCommands.java index c355abe..c9dbc1d 100644 --- a/src/jalview/ext/rbvi/chimera/ChimeraCommands.java +++ b/src/jalview/ext/rbvi/chimera/ChimeraCommands.java @@ -20,6 +20,14 @@ */ package jalview.ext.rbvi.chimera; +import java.awt.Color; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; import jalview.api.FeatureRenderer; @@ -36,14 +44,6 @@ import jalview.structure.StructureMapping; import jalview.structure.StructureSelectionManager; import jalview.util.ColorUtils; -import java.awt.Color; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - /** * Routines for generating Chimera commands for Jalview/Chimera binding * @@ -641,4 +641,31 @@ public class ChimeraCommands extends StructureCommandsBase return new StructureCommand("open " + file); } + /** + * Overrides the default method to concatenate colour commands into one + */ + @Override + public List colourBySequence( + Map colourMap) + { + List commands = new ArrayList<>(); + StringBuilder sb = new StringBuilder(colourMap.size() * 20); + boolean first = true; + for (Object key : colourMap.keySet()) + { + Color colour = (Color) key; + final AtomSpecModel colourData = colourMap.get(colour); + StructureCommandI command = getColourCommand(colourData, colour); + if (!first) + { + sb.append(getCommandSeparator()); + } + first = false; + sb.append(command.getCommand()); + } + + commands.add(new StructureCommand(sb.toString())); + return commands; + } + }