X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureViewerBase.java;h=af4809398028d931a7cc4874f50ca76c918aa8ad;hb=11fbdf6f34deffb5b179e23ffc3ca50dcae296dc;hp=20f5c1f390b5dfdcce585afcfbd318ce03bc8ef0;hpb=e06ef51ba3dd8cdae7632d71db162ff416b88256;p=jalview.git diff --git a/src/jalview/gui/StructureViewerBase.java b/src/jalview/gui/StructureViewerBase.java index 20f5c1f..af48093 100644 --- a/src/jalview/gui/StructureViewerBase.java +++ b/src/jalview/gui/StructureViewerBase.java @@ -27,6 +27,7 @@ import jalview.datamodel.AlignmentI; import jalview.datamodel.HiddenColumns; import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; +import jalview.gui.JalviewColourChooser.ColourChooserListener; import jalview.gui.StructureViewer.ViewerType; import jalview.gui.ViewSelectionMenu.ViewSetProvider; import jalview.io.DataSourceType; @@ -57,7 +58,6 @@ import java.util.Vector; import javax.swing.ButtonGroup; import javax.swing.JCheckBoxMenuItem; -import javax.swing.JColorChooser; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JRadioButtonMenuItem; @@ -407,38 +407,26 @@ public abstract class StructureViewerBase extends GStructureViewer */ protected List getViewersFor(AlignmentPanel alp) { - return Desktop.instance.getStructureViewers(alp, this.getClass()); + return Desktop.getInstance().getStructureViewers(alp, this.getClass()); } - - /** - * Check for any existing views involving this alignment and give user the - * option to add and align this molecule to one of them - * - * @param pdbentry - * @param seq - * @param chains - * @param apanel - * @param pdbId - * @return true if user adds to a view, or cancels entirely, else false - */ @Override - public boolean addToExistingViewer(PDBEntry pdbentry, SequenceI[] seq, + public void addToExistingViewer(PDBEntry pdbentry, SequenceI[] seq, String[] chains, final AlignmentViewPanel apanel, String pdbId) { /* * JAL-1742 exclude view with this structure already mapped (don't offer - * to align chain B to chain A of the same structure) + * to align chain B to chain A of the same structure); code may defend + * against this possibility before we reach here */ if (hasPdbId(pdbId)) { - return false; + return; } - AlignmentPanel ap = (AlignmentPanel) apanel; // Implementation error if this + AlignmentPanel alignPanel = (AlignmentPanel) apanel; // Implementation error if this // cast fails - useAlignmentPanelForSuperposition(ap); - addStructure(pdbentry, seq, chains, ap.alignFrame); - return true; + useAlignmentPanelForSuperposition(alignPanel); + addStructure(pdbentry, seq, chains, alignPanel.alignFrame); } /** @@ -502,33 +490,20 @@ public abstract class StructureViewerBase extends GStructureViewer } } - /** - * Check if the PDB file is already loaded, if so offer to add it to the - * existing viewer - * - * @param seq - * @param chains - * @param apanel - * @param pdbId - * @return true if the user chooses to add to a viewer, or to cancel entirely - */ @Override public boolean addAlreadyLoadedFile(SequenceI[] seq, String[] chains, final AlignmentViewPanel apanel, String pdbId) { - boolean finished = false; String alreadyMapped = apanel.getStructureSelectionManager() .alreadyMappedToFile(pdbId); - if (alreadyMapped != null) + if (alreadyMapped == null) { - /* - * the PDB file is already loaded - */ - addSequenceMappingsToStructure(seq, chains, apanel, alreadyMapped); - finished = true; + return false; } - return finished; + + addSequenceMappingsToStructure(seq, chains, apanel, alreadyMapped); + return true; } void setChainMenuItems(List chainNames) @@ -589,7 +564,8 @@ public abstract class StructureViewerBase extends GStructureViewer { AlignmentI al = getAlignmentPanel().av.getAlignment(); ColourSchemeI cs = ColourSchemes.getInstance() - .getColourScheme(colourSchemeName, al, null); + .getColourScheme(colourSchemeName, getAlignmentPanel().av, al, + null); getBinding().setJalviewColourScheme(cs); } @@ -808,11 +784,11 @@ public abstract class StructureViewerBase extends GStructureViewer int[] alm = new int[_alignwith.size()]; int a = 0; - for (AlignmentPanel ap : _alignwith) + for (AlignmentPanel alignPanel : _alignwith) { - als[a] = ap.av.getAlignment(); + als[a] = alignPanel.av.getAlignment(); alm[a] = -1; - alc[a++] = ap.av.getAlignment().getHiddenColumns(); + alc[a++] = alignPanel.av.getAlignment().getHiddenColumns(); } reply = getBinding().superposeStructures(als, alm, alc); if (reply != null) @@ -824,9 +800,9 @@ public abstract class StructureViewerBase extends GStructureViewer } catch (Exception e) { StringBuffer sp = new StringBuffer(); - for (AlignmentPanel ap : _alignwith) + for (AlignmentPanel alignPanel : _alignwith) { - sp.append("'" + ap.alignFrame.getTitle() + "' "); + sp.append("'" + alignPanel.alignFrame.getTitle() + "' "); } Cache.log.info("Couldn't align structures with the " + sp.toString() + "associated alignment panels.", e); @@ -834,16 +810,23 @@ public abstract class StructureViewerBase extends GStructureViewer return reply; } + /** + * Opens a colour chooser dialog, and applies the chosen colour to the + * background of the structure viewer + */ @Override public void background_actionPerformed(ActionEvent actionEvent) { - Color col = JColorChooser.showDialog(this, - MessageManager.getString("label.select_background_colour"), - null); - if (col != null) + String ttl = MessageManager.getString("label.select_background_colour"); + ColourChooserListener listener = new ColourChooserListener() { - getBinding().setBackgroundColour(col); - } + @Override + public void colourSelected(Color c) + { + getBinding().setBackgroundColour(c); + } + }; + JalviewColourChooser.showColourChooser(this, ttl, null, listener); } @Override @@ -890,9 +873,9 @@ public abstract class StructureViewerBase extends GStructureViewer } } // Set the colour using the current view for the associated alignframe - for (AlignmentPanel ap : _colourwith) + for (AlignmentPanel alignPanel : _colourwith) { - binding.colourBySequence(ap); + binding.colourBySequence(alignPanel); } seqColoursApplied = true; } @@ -901,6 +884,7 @@ public abstract class StructureViewerBase extends GStructureViewer @Override public void pdbFile_actionPerformed(ActionEvent actionEvent) { + // TODO: JAL-3048 not needed for Jalview-JS - save PDB file JalviewFileChooser chooser = new JalviewFileChooser( Cache.getProperty("LAST_DIRECTORY")); @@ -1059,4 +1043,10 @@ public abstract class StructureViewerBase extends GStructureViewer return seqColoursApplied; } + @Override + public void raiseViewer() + { + toFront(); + } + }