X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fjmol%2FJalviewJmolBinding.java;h=9187912d12ca05f25437280bc99979faf23cc912;hb=b5d61763044c1d72f06ce0e50da2171422a3774b;hp=72247371c250c1ce504b169a9948fa2634234361;hpb=a8f483d04205bb8273ee311c12968b7e86d205fa;p=jalview.git diff --git a/src/jalview/ext/jmol/JalviewJmolBinding.java b/src/jalview/ext/jmol/JalviewJmolBinding.java index 7224737..9187912 100644 --- a/src/jalview/ext/jmol/JalviewJmolBinding.java +++ b/src/jalview/ext/jmol/JalviewJmolBinding.java @@ -6,14 +6,16 @@ * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.ext.jmol; @@ -33,6 +35,8 @@ import jalview.schemes.ResidueProperties; import jalview.structure.StructureListener; import jalview.structure.StructureMapping; import jalview.structure.StructureSelectionManager; +import jalview.structures.models.SequenceStructureBindingModel; +import jalview.util.MessageManager; import java.awt.Color; import java.awt.Container; @@ -54,26 +58,13 @@ import org.jmol.api.JmolViewer; import org.jmol.constant.EnumCallback; import org.jmol.popup.JmolPopup; -public abstract class JalviewJmolBinding implements StructureListener, +public abstract class JalviewJmolBinding extends SequenceStructureBindingModel implements StructureListener, JmolStatusListener, SequenceStructureBinding, JmolSelectionListener, ComponentListener, StructureSelectionManagerProvider { /** - * set if Jmol state is being restored from some source - instructs binding - * not to apply default display style when structure set is updated for first - * time. - */ - private boolean loadingFromArchive = false; - - /** - * second flag to indicate if the jmol viewer should ignore sequence colouring - * events from the structure manager because the GUI is still setting up - */ - private boolean loadingFinished = true; - - /** * state flag used to check if the Jmol viewer's paint method can be called */ private boolean finishedInit = false; @@ -328,13 +319,15 @@ public abstract class JalviewJmolBinding implements StructureListener, String[] files = getPdbFile(); // check to see if we are still waiting for Jmol files - long starttime=System.currentTimeMillis(); - boolean waiting=true; - do { - waiting=false; - for (String file:files) + long starttime = System.currentTimeMillis(); + boolean waiting = true; + do + { + waiting = false; + for (String file : files) { - try { + try + { // HACK - in Jalview 2.8 this call may not be threadsafe so we catch // every possible exception StructureMapping[] sm = ssm.getMapping(file); @@ -351,10 +344,12 @@ public abstract class JalviewJmolBinding implements StructureListener, } } // we wait around for a reasonable time before we give up - } while (waiting && System.currentTimeMillis()<(10000+1000*files.length+starttime)); + } while (waiting + && System.currentTimeMillis() < (10000 + 1000 * files.length + starttime)); if (waiting) { - System.err.println("RUNTIME PROBLEM: Jmol seems to be taking a long time to process all the structures."); + System.err + .println("RUNTIME PROBLEM: Jmol seems to be taking a long time to process all the structures."); return; } StringBuffer selectioncom = new StringBuffer(); @@ -418,7 +413,7 @@ public abstract class JalviewJmolBinding implements StructureListener, // Jmol callback has completed. if (mapping == null || mapping.length < 1) { - throw new Error("Implementation error - Jmol seems to be still working on getting its data - report at http://issues.jalview.org/browse/JAL-1016"); + throw new Error(MessageManager.getString("error.implementation_error_jmol_getting_data")); } int lastPos = -1; for (int s = 0; s < sequence[pdbfnum].length; s++) @@ -484,7 +479,7 @@ public abstract class JalviewJmolBinding implements StructureListener, } } } - + // TODO: consider bailing if nmatched less than 4 because superposition // not // well defined. @@ -556,14 +551,17 @@ public abstract class JalviewJmolBinding implements StructureListener, { selectioncom.append("|"); } - } else { + } + else + { selcom[pdbfnum] = null; } } } for (int pdbfnum = 0; pdbfnum < files.length; pdbfnum++) { - if (pdbfnum == refStructure || selcom[pdbfnum]==null || selcom[refStructure]==null) + if (pdbfnum == refStructure || selcom[pdbfnum] == null + || selcom[refStructure] == null) { continue; } @@ -572,7 +570,7 @@ public abstract class JalviewJmolBinding implements StructureListener, command.append(chainNames[pdbfnum]); command.append(") against reference ("); command.append(chainNames[refStructure]); - command.append(")\";\ncompare "+nSeconds); + command.append(")\";\ncompare " + nSeconds); command.append("{"); command.append(1 + pdbfnum); command.append(".1} {"); @@ -631,7 +629,7 @@ public abstract class JalviewJmolBinding implements StructureListener, public void colourBySequence(boolean showFeatures, jalview.api.AlignmentViewPanel alignmentv) { - if (!colourBySequence || !loadingFinished) + if (!colourBySequence || !isLoadingFinished()) return; if (ssm == null) { @@ -1499,30 +1497,6 @@ public abstract class JalviewJmolBinding implements StructureListener, showConsole(false); } - public void setLoadingFromArchive(boolean loadingFromArchive) - { - this.loadingFromArchive = loadingFromArchive; - } - - /** - * - * @return true if Jmol is still restoring state or loading is still going on (see setFinsihedLoadingFromArchive) - */ - public boolean isLoadingFromArchive() - { - return loadingFromArchive && !loadingFinished; - } - - /** - * modify flag which controls if sequence colouring events are honoured by the binding. - * Should be true for normal operation - * @param finishedLoading - */ - public void setFinishedLoadingFromArchive(boolean finishedLoading) - { - loadingFinished = finishedLoading; - } - public void setBackgroundColour(java.awt.Color col) { jmolHistory(false); @@ -1600,9 +1574,7 @@ public abstract class JalviewJmolBinding implements StructureListener, { if (pe < 0 || pe >= pdbentry.length) { - throw new Error( - "Implementation error - no corresponding pdbentry (for index " - + pe + ") to add sequences mappings to"); + throw new Error(MessageManager.formatMessage("error.implementation_error_no_pdbentry_from_index", new String[]{Integer.valueOf(pe).toString()})); } final String nullChain = "TheNullChain"; Vector s = new Vector();