X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fstructure%2FStructureCommandsBase.java;h=8c6ea4e69312966904cca953148c89f82930d0ef;hb=42f4227ed213d422a87d3b22fc9e85d14ffaf53f;hp=44764db439a872510de274500ccda446153ca556;hpb=09ec96d9ac0fd717d6cf32417d9916cca781d92c;p=jalview.git diff --git a/src/jalview/structure/StructureCommandsBase.java b/src/jalview/structure/StructureCommandsBase.java index 44764db..8c6ea4e 100644 --- a/src/jalview/structure/StructureCommandsBase.java +++ b/src/jalview/structure/StructureCommandsBase.java @@ -1,18 +1,10 @@ package jalview.structure; -import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; -import jalview.api.FeatureRenderer; -import jalview.api.SequenceRenderer; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.HiddenColumns; import jalview.datamodel.SequenceI; -import jalview.renderer.seqfeatures.FeatureColourFinder; -import jalview.util.Comparison; import java.awt.Color; import java.util.ArrayList; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -39,7 +31,8 @@ public abstract class StructureCommandsBase implements StructureCommandsI } @Override - public String[] setAttributesForFeatures(StructureSelectionManager ssm, + public List setAttributesForFeatures( + StructureSelectionManager ssm, String[] files, SequenceI[][] sequence, AlignmentViewPanel avp) { // default does nothing, override where this is implemented @@ -74,8 +67,8 @@ public abstract class StructureCommandsBase implements StructureCommandsI * @param chain */ public static final void addAtomSpecRange(Map map, - Object value, - int model, int startPos, int endPos, String chain) + Object value, String model, int startPos, int endPos, + String chain) { /* * Get/initialize map of data for the colour @@ -99,30 +92,22 @@ public abstract class StructureCommandsBase implements StructureCommandsI * @return */ @Override - public String[] colourBySequence(Map colourMap) + public List colourBySequence( + Map colourMap) { /* - * This version concatenates all commands into a single String (semi-colon - * delimited). If length limit issues arise, refactor to return one color - * command per colour. + * default implementation creates one command per colour; + * override to concatenate colour commands if wanted */ - List commands = new ArrayList<>(); - StringBuilder sb = new StringBuilder(256); - boolean firstColour = true; + List commands = new ArrayList<>(); for (Object key : colourMap.keySet()) { Color colour = (Color) key; - if (!firstColour) - { - sb.append(getCommandSeparator()).append(" "); - } - firstColour = false; final AtomSpecModel colourData = colourMap.get(colour); - sb.append(getColourCommand(colourData, colour)); + commands.add(getColourCommand(colourData, colour)); } - commands.add(sb.toString()); - return commands.toArray(new String[commands.size()]); + return commands; } /** @@ -133,7 +118,8 @@ public abstract class StructureCommandsBase implements StructureCommandsI * @param colour * @return */ - protected String getColourCommand(AtomSpecModel atomSpecModel, Color colour) + protected StructureCommandI getColourCommand(AtomSpecModel atomSpecModel, + Color colour) { String atomSpec = getAtomSpec(atomSpecModel, false); return getColourCommand(atomSpec, colour); @@ -147,21 +133,25 @@ public abstract class StructureCommandsBase implements StructureCommandsI * @param colour * @return */ - protected abstract String getColourCommand(String atomSpec, Color colour); + protected abstract StructureCommandI getColourCommand(String atomSpec, + Color colour); @Override - public String colourByResidues(Map colours) + public List colourByResidues( + Map colours) { - StringBuilder cmd = new StringBuilder(12 * colours.size()); - + List commands = new ArrayList<>(); for (Entry entry : colours.entrySet()) { - String residue = entry.getKey(); - String atomSpec = getResidueSpec(residue); - cmd.append(getColourCommand(atomSpec, entry.getValue())); - cmd.append(getCommandSeparator()); + commands.add(colourResidue(entry.getKey(), entry.getValue())); } - return cmd.toString(); + return commands; + } + + private StructureCommandI colourResidue(String resName, Color col) + { + String atomSpec = getResidueSpec(resName); + return getColourCommand(atomSpec, col); } /**