X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fjmol%2FJalviewJmolBinding.java;h=eb13c3060859e84b3d6c122a6828c8018c2abdb6;hb=a5e22141bc3185284588761a69f023d527e7f18e;hp=11354780db60bcc46903a963149c18020442690e;hpb=9644afe3c10e90365290d4b249d32635bccfad7f;p=jalview.git diff --git a/src/jalview/ext/jmol/JalviewJmolBinding.java b/src/jalview/ext/jmol/JalviewJmolBinding.java index 1135478..eb13c30 100644 --- a/src/jalview/ext/jmol/JalviewJmolBinding.java +++ b/src/jalview/ext/jmol/JalviewJmolBinding.java @@ -22,7 +22,7 @@ package jalview.ext.jmol; import jalview.api.AlignmentViewPanel; import jalview.api.FeatureRenderer; -import jalview.api.SequenceRenderer; +import jalview.api.SequenceRendererI; import jalview.datamodel.AlignmentI; import jalview.datamodel.HiddenColumns; import jalview.datamodel.PDBEntry; @@ -175,7 +175,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel @Override public void colourByChain() { - colourBySequence = false; + super.colourByChain(); // TODO: colour by chain should colour each chain distinctly across all // visible models // TODO: http://issues.jalview.org/browse/JAL-628 @@ -185,7 +185,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel @Override public void colourByCharge() { - colourBySequence = false; + super.colourByCharge(); evalStateCommand("select *;color white;select ASP,GLU;color red;" + "select LYS,ARG;color blue;select CYS;color yellow"); } @@ -478,6 +478,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel lastCommand = command; } + Thread colourby = null; /** * Sends a set of colour commands to the structure viewer * @@ -485,15 +486,28 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel */ @Override protected void colourBySequence( - StructureMappingcommandSet[] colourBySequenceCommands) + final StructureMappingcommandSet[] colourBySequenceCommands) { - for (StructureMappingcommandSet cpdbbyseq : colourBySequenceCommands) + if (colourby != null) { - for (String cbyseq : cpdbbyseq.commands) + colourby.interrupt(); + colourby = null; + } + colourby = new Thread(new Runnable() + { + @Override + public void run() { - executeWhenReady(cbyseq); + for (StructureMappingcommandSet cpdbbyseq : colourBySequenceCommands) + { + for (String cbyseq : cpdbbyseq.commands) + { + executeWhenReady(cbyseq); + } + } } - } + }); + colourby.start(); } /** @@ -504,10 +518,10 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel */ @Override protected StructureMappingcommandSet[] getColourBySequenceCommands( - String[] files, SequenceRenderer sr, AlignmentViewPanel viewPanel) + String[] files, SequenceRendererI sr, AlignmentViewPanel viewPanel, boolean showFeatures) { return JmolCommands.getColourBySequenceCommand(getSsm(), files, - getSequence(), sr, viewPanel); + getSequence(), sr, viewPanel, showFeatures); } /** @@ -1282,29 +1296,23 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel } @Override - public void setJalviewColourScheme(ColourSchemeI cs) + public void setSimpleColourScheme(ColourSchemeI cs) { - colourBySequence = false; - - if (cs == null) - { - return; - } - jmolHistory(false); StringBuilder command = new StringBuilder(128); command.append("select *;color white;"); - List residueSet = ResidueProperties.getResidues(isNucleotide(), - false); - for (String resName : residueSet) - { - char res = resName.length() == 3 - ? ResidueProperties.getSingleCharacterCode(resName) - : resName.charAt(0); - Color col = cs.findColour(res, 0, null, null, 0f); - command.append("select " + resName + ";color[" + col.getRed() + "," - + col.getGreen() + "," + col.getBlue() + "];"); - } + if (cs != null) + { + List residueSet = ResidueProperties.getResidues(isNucleotide(), false); + for (String resName : residueSet) + { + char res = resName.length() == 3 ? ResidueProperties.getSingleCharacterCode(resName) + : resName.charAt(0); + Color col = cs.findColour(res); + command.append("select " + resName + ";color[" + col.getRed() + "," + col.getGreen() + "," + + col.getBlue() + "];"); + } + } evalStateCommand(command.toString()); jmolHistory(true);