X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAppJmol.java;h=c2a7299d66a176a36d722a794166421d507c21e9;hb=59bcebdf52d535ff621840b2d836ecfc0f605ec1;hp=90d3b153c190c99fd9e8c008c96071ae0c195f75;hpb=c66902a9536b10a5477b58aaf7c2d75772890a5d;p=jalview.git diff --git a/src/jalview/gui/AppJmol.java b/src/jalview/gui/AppJmol.java index 90d3b15..c2a7299 100644 --- a/src/jalview/gui/AppJmol.java +++ b/src/jalview/gui/AppJmol.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,33 +20,8 @@ */ package jalview.gui; -import jalview.bin.Cache; -import jalview.datamodel.Alignment; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.ColumnSelection; -import jalview.datamodel.PDBEntry; -import jalview.datamodel.SequenceI; -import jalview.gui.ViewSelectionMenu.ViewSetProvider; -import jalview.io.AppletFormatAdapter; -import jalview.io.JalviewFileChooser; -import jalview.io.JalviewFileView; -import jalview.jbgui.GStructureViewer; -import jalview.schemes.BuriedColourScheme; -import jalview.schemes.ColourSchemeI; -import jalview.schemes.HelixColourScheme; -import jalview.schemes.HydrophobicColourScheme; -import jalview.schemes.PurinePyrimidineColourScheme; -import jalview.schemes.StrandColourScheme; -import jalview.schemes.TaylorColourScheme; -import jalview.schemes.TurnColourScheme; -import jalview.schemes.ZappoColourScheme; -import jalview.structures.models.AAStructureBindingModel; -import jalview.util.MessageManager; -import jalview.util.Platform; - import java.awt.BorderLayout; import java.awt.Color; -import java.awt.Component; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; @@ -76,9 +51,30 @@ import javax.swing.event.InternalFrameEvent; import javax.swing.event.MenuEvent; import javax.swing.event.MenuListener; -public class AppJmol extends GStructureViewer implements Runnable, - ViewSetProvider +import jalview.bin.Cache; +import jalview.datamodel.Alignment; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.ColumnSelection; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.SequenceI; +import jalview.gui.StructureViewer.ViewerType; +import jalview.io.AppletFormatAdapter; +import jalview.io.JalviewFileChooser; +import jalview.io.JalviewFileView; +import jalview.schemes.BuriedColourScheme; +import jalview.schemes.ColourSchemeI; +import jalview.schemes.HelixColourScheme; +import jalview.schemes.HydrophobicColourScheme; +import jalview.schemes.PurinePyrimidineColourScheme; +import jalview.schemes.StrandColourScheme; +import jalview.schemes.TaylorColourScheme; +import jalview.schemes.TurnColourScheme; +import jalview.schemes.ZappoColourScheme; +import jalview.structures.models.AAStructureBindingModel; +import jalview.util.MessageManager; +import jalview.util.Platform; +public class AppJmol extends StructureViewerBase { AppJmolBinding jmb; @@ -88,8 +84,6 @@ public class AppJmol extends GStructureViewer implements Runnable, RenderPanel renderPanel; - AlignmentPanel ap; - Vector atomsPicked = new Vector(); private boolean addingStructures = false; @@ -154,9 +148,9 @@ public class AppJmol extends GStructureViewer implements Runnable, PDBEntry[] pdbentrys = new PDBEntry[files.length]; for (int i = 0; i < pdbentrys.length; i++) { - PDBEntry pdbentry = new PDBEntry(); - pdbentry.setFile(files[i]); - pdbentry.setId(ids[i]); + // PDBEntry pdbentry = new PDBEntry(files[i], ids[i]); + PDBEntry pdbentry = new PDBEntry(ids[i], null, PDBEntry.Type.PDB, + files[i]); pdbentrys[i] = pdbentry; } // / TODO: check if protocol is needed to be set, and if chains are @@ -176,7 +170,7 @@ public class AppJmol extends GStructureViewer implements Runnable, seqColour.setSelected(false); viewerColour.setSelected(true); } - if (usetoColour) + else if (usetoColour) { useAlignmentPanelForColourbyseq(ap); jmb.setColourBySequence(true); @@ -193,7 +187,7 @@ public class AppJmol extends GStructureViewer implements Runnable, { public void internalFrameClosing(InternalFrameEvent internalFrameEvent) { - closeViewer(); + closeViewer(false); } }); initJmol(loadStatus); // pdbentry, seq, JBPCHECK! @@ -339,7 +333,7 @@ public class AppJmol extends GStructureViewer implements Runnable, topJmol.addAlignmentPanel(ap); // add it to the set used for colouring topJmol.useAlignmentPanelForColourbyseq(ap); - topJmol.buildJmolActionMenu(); + topJmol.buildActionMenu(); ap.getStructureSelectionManager() .sequenceColoursChanged(ap); break; @@ -415,7 +409,7 @@ public class AppJmol extends GStructureViewer implements Runnable, { public void internalFrameClosing(InternalFrameEvent internalFrameEvent) { - closeViewer(); + closeViewer(false); } }); @@ -434,117 +428,6 @@ public class AppJmol extends GStructureViewer implements Runnable, openNewJmol(ap, pe, seqs); } - public AlignmentPanel[] getAllAlignmentPanels() - { - AlignmentPanel[] t, list = new AlignmentPanel[0]; - for (String setid : _aps) - { - AlignmentPanel[] panels = PaintRefresher.getAssociatedPanels(setid); - if (panels != null) - { - t = new AlignmentPanel[list.length + panels.length]; - System.arraycopy(list, 0, t, 0, list.length); - System.arraycopy(panels, 0, t, list.length, panels.length); - list = t; - } - } - - return list; - } - - /** - * set the primary alignmentPanel reference and add another alignPanel to the - * list of ones to use for colouring and aligning - * - * @param nap - */ - public void addAlignmentPanel(AlignmentPanel nap) - { - if (ap == null) - { - ap = nap; - } - if (!_aps.contains(nap.av.getSequenceSetId())) - { - _aps.add(nap.av.getSequenceSetId()); - } - } - - /** - * remove any references held to the given alignment panel - * - * @param nap - */ - public void removeAlignmentPanel(AlignmentPanel nap) - { - try - { - _alignwith.remove(nap); - _colourwith.remove(nap); - if (ap == nap) - { - ap = null; - for (AlignmentPanel aps : getAllAlignmentPanels()) - { - if (aps != nap) - { - ap = aps; - break; - } - } - } - } catch (Exception ex) - { - } - if (ap != null) - { - buildJmolActionMenu(); - } - } - - public void useAlignmentPanelForSuperposition(AlignmentPanel nap) - { - addAlignmentPanel(nap); - if (!_alignwith.contains(nap)) - { - _alignwith.add(nap); - } - } - - public void excludeAlignmentPanelForSuperposition(AlignmentPanel nap) - { - if (_alignwith.contains(nap)) - { - _alignwith.remove(nap); - } - } - - public void useAlignmentPanelForColourbyseq(AlignmentPanel nap, - boolean enableColourBySeq) - { - useAlignmentPanelForColourbyseq(nap); - jmb.setColourBySequence(enableColourBySeq); - seqColour.setSelected(enableColourBySeq); - viewerColour.setSelected(!enableColourBySeq); - } - - public void useAlignmentPanelForColourbyseq(AlignmentPanel nap) - { - addAlignmentPanel(nap); - if (!_colourwith.contains(nap)) - { - _colourwith.add(nap); - } - } - - public void excludeAlignmentPanelForColourbyseq(AlignmentPanel nap) - { - if (_colourwith.contains(nap)) - { - _colourwith.remove(nap); - } - } - /** * pdb retrieval thread. */ @@ -615,7 +498,7 @@ public class AppJmol extends GStructureViewer implements Runnable, { if (frame instanceof AppJmol) { - if (((GStructureViewer) frame).isLinkedWith(apanel)) + if (((StructureViewerBase) frame).isLinkedWith(apanel)) { result.addElement(frame); } @@ -722,10 +605,11 @@ public class AppJmol extends GStructureViewer implements Runnable, jmb.centerViewer(toshow); } - public void closeViewer() + public void closeViewer(boolean closeExternalViewer) { + // JMol does not use an external viewer jmb.closeViewer(); - ap = null; + setAlignmentPanel(null); _aps.clear(); _alignwith.clear(); _colourwith.clear(); @@ -766,9 +650,7 @@ public class AppJmol extends GStructureViewer implements Runnable, } try { - pdbseq = pdbclient.getSequenceRecords(pdbid = jmb.getPdbEntry( - pi) - .getId()); + pdbseq = pdbclient.getSequenceRecords(pdbid); } catch (OutOfMemoryError oomerror) { new OOMWarning("Retrieving PDB id " + pdbid, oomerror); @@ -785,8 +667,8 @@ public class AppJmol extends GStructureViewer implements Runnable, { // just transfer the file name from the first sequence's first // PDBEntry - file = new File(((PDBEntry) pdbseq.getSequenceAt(0).getPDBId() - .elementAt(0)).getFile()).getAbsolutePath(); + file = new File(pdbseq.getSequenceAt(0).getPDBId() + .elementAt(0).getFile()).getAbsolutePath(); jmb.getPdbEntry(pi).setFile(file); files.append(" \"" + Platform.escapeString(file) + "\""); @@ -961,11 +843,7 @@ public class AppJmol extends GStructureViewer implements Runnable, jalview.gui.CutAndPasteTransfer cap = new jalview.gui.CutAndPasteTransfer(); try { - for (int pdbe = 0; pdbe < jmb.getPdbCount(); pdbe++) - { - cap.appendText(jmb.printMapping(jmb.getPdbEntry(pdbe).getFile())); - cap.appendText("\n"); - } + cap.appendText(jmb.printMappings()); } catch (OutOfMemoryError e) { new OOMWarning( @@ -1049,16 +927,16 @@ public class AppJmol extends GStructureViewer implements Runnable, { if (!jmb.isLoadingFromArchive()) { - if (_colourwith.size() == 0 && ap != null) + if (_colourwith.size() == 0 && getAlignmentPanel() != null) { // Make the currently displayed alignment panel the associated view - _colourwith.add(ap.alignFrame.alignPanel); + _colourwith.add(getAlignmentPanel().alignFrame.alignPanel); } } // Set the colour using the current view for the associated alignframe for (AlignmentPanel ap : _colourwith) { - jmb.colourBySequence(ap.av.showSequenceFeatures, ap); + jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap); } } } @@ -1206,7 +1084,7 @@ public class AppJmol extends GStructureViewer implements Runnable, getSize(currentSize); g.getClipBounds(rectClip); - if (jmb.fileLoadingError != null) + if (jmb != null && jmb.fileLoadingError != null) { g.setColor(Color.black); g.fillRect(0, 0, currentSize.width, currentSize.height); @@ -1268,27 +1146,6 @@ public class AppJmol extends GStructureViewer implements Runnable, } } - protected void buildJmolActionMenu() - { - if (_alignwith == null) - { - _alignwith = new Vector(); - } - if (_alignwith.size() == 0 && ap != null) - { - _alignwith.add(ap); - } - ; - for (Component c : viewerActionMenu.getMenuComponents()) - { - if (c != alignStructs) - { - viewerActionMenu.remove((JMenuItem) c); - } - } - final ItemListener handler; - } - /* * (non-Javadoc) * @@ -1304,14 +1161,14 @@ public class AppJmol extends GStructureViewer implements Runnable, private void alignStructs_withAllAlignPanels() { - if (ap == null) + if (getAlignmentPanel() == null) { return; } ; if (_alignwith.size() == 0) { - _alignwith.add(ap); + _alignwith.add(getAlignmentPanel()); } ; try @@ -1363,7 +1220,7 @@ public class AppJmol extends GStructureViewer implements Runnable, return ap; } } - return ap; + return getAlignmentPanel(); } @Override @@ -1378,4 +1235,10 @@ public class AppJmol extends GStructureViewer implements Runnable, return jmb == null ? null : jmb.viewer.getStateInfo(); } + @Override + public ViewerType getViewerType() + { + return ViewerType.JMOL; + } + }