X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureViewer.java;h=b3b1962946161beecb342a75c706f03c96e1fdaf;hb=31f1b88951cc5ff3aea7ae0bc1a9d8fbdd264ea3;hp=ddcb214ae0f82c490a7962f5572098e598668c9d;hpb=1d9e1c80fb6c0e32313a976ae0065fd32639f2bc;p=jalview.git diff --git a/src/jalview/gui/StructureViewer.java b/src/jalview/gui/StructureViewer.java index ddcb214..b3b1962 100644 --- a/src/jalview/gui/StructureViewer.java +++ b/src/jalview/gui/StructureViewer.java @@ -20,15 +20,15 @@ */ package jalview.gui; -import java.awt.Rectangle; - import jalview.api.structures.JalviewStructureDisplayI; import jalview.bin.Cache; import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; -import jalview.gui.StructureViewer.Viewer; +import jalview.datamodel.ViewerData; import jalview.structure.StructureSelectionManager; +import java.awt.Rectangle; + /** * proxy for handling structure viewers. * @@ -42,20 +42,21 @@ public class StructureViewer { StructureSelectionManager ssm; - public enum Viewer + public enum ViewerType { JMOL, CHIMERA }; - public Viewer getViewerType() + public ViewerType getViewerType() { - String viewType = Cache.getDefault("STRUCTURE_DISPLAY", "JMOL"); - return Viewer.valueOf(viewType); + String viewType = Cache.getDefault(Preferences.STRUCTURE_DISPLAY, + ViewerType.JMOL.name()); + return ViewerType.valueOf(viewType); } - public void setViewerType(Viewer type) + public void setViewerType(ViewerType type) { - Cache.setProperty("STRUCTURE_DISPLAY", type.toString()); + Cache.setProperty(Preferences.STRUCTURE_DISPLAY, type.name()); } public StructureViewer(StructureSelectionManager structureSelectionManager) @@ -69,15 +70,15 @@ public class StructureViewer return viewStructures(getViewerType(), ap, pr, collateForPDB); } - public JalviewStructureDisplayI viewStructures(Viewer viewerType, + public JalviewStructureDisplayI viewStructures(ViewerType viewerType, AlignmentPanel ap, PDBEntry[] pr, SequenceI[][] collateForPDB) { JalviewStructureDisplayI sview = null; - if (viewerType.equals(Viewer.JMOL)) + if (viewerType.equals(ViewerType.JMOL)) { sview = new AppJmol(ap, pr, ap.av.collateForPDB(pr)); } - else if (viewerType.equals(Viewer.CHIMERA)) + else if (viewerType.equals(ViewerType.CHIMERA)) { sview = new ChimeraViewFrame(ap, pr, ap.av.collateForPDB(pr)); } @@ -89,15 +90,15 @@ public class StructureViewer return sview; } - public JalviewStructureDisplayI viewStructures(Viewer viewerType, + public JalviewStructureDisplayI viewStructures(ViewerType viewerType, AlignmentPanel ap, PDBEntry pr, SequenceI[] collateForPDB) { JalviewStructureDisplayI sview = null; - if (viewerType.equals(Viewer.JMOL)) + if (viewerType.equals(ViewerType.JMOL)) { sview = new AppJmol(pr, collateForPDB, null, ap); } - else if (viewerType.equals(Viewer.CHIMERA)) + else if (viewerType.equals(ViewerType.CHIMERA)) { sview = new ChimeraViewFrame(pr, collateForPDB, null, ap); } @@ -115,24 +116,42 @@ public class StructureViewer return viewStructures(getViewerType(), ap, pdb, sequenceIs); } - public JalviewStructureDisplayI createView(Viewer viewer, String[] pdbf, - String[] id, SequenceI[][] sq, AlignmentPanel alignPanel, - boolean useinJmolsuperpos, boolean usetoColourbyseq, - boolean jmolColouring, String fileloc, Rectangle rect, String vid) + /** + * Create a new panel controlling a structure viewer. + * + * @param type + * @param pdbf + * @param id + * @param sq + * @param alignPanel + * @param viewerData + * @param fileloc + * @param rect + * @param vid + * @return + */ + public JalviewStructureDisplayI createView(ViewerType type, + String[] pdbf, String[] id, SequenceI[][] sq, + AlignmentPanel alignPanel, ViewerData viewerData, String fileloc, + Rectangle rect, String vid) { + final boolean useinViewerSuperpos = viewerData.isAlignWithPanel(); + final boolean usetoColourbyseq = viewerData.isColourWithAlignPanel(); + final boolean viewerColouring = viewerData.isColourByViewer(); + JalviewStructureDisplayI sview = null; - switch (viewer) + switch (type) { case JMOL: - sview = new AppJmol(pdbf, id, sq, alignPanel, useinJmolsuperpos, - usetoColourbyseq, jmolColouring, fileloc, rect, vid); + sview = new AppJmol(pdbf, id, sq, alignPanel, usetoColourbyseq, + useinViewerSuperpos, viewerColouring, fileloc, rect, vid); break; case CHIMERA: Cache.log.error("Unsupported structure viewer type " - + viewer.toString()); + + type.toString()); break; default: - Cache.log.error("Unknown structure viewer type " + viewer.toString()); + Cache.log.error("Unknown structure viewer type " + type.toString()); } return sview; }