X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureViewerBase.java;h=a0b199bb3431a2106aab331c51addd8a9e64d497;hb=0a2ec403c08a1747b7e876f00f468867f8329d36;hp=9b6fd619646a41f6e5fb5eca8f7f5a57d7a6a86c;hpb=d85a2741994c169e1b81db8f9166f5214ff1f561;p=jalview.git diff --git a/src/jalview/gui/StructureViewerBase.java b/src/jalview/gui/StructureViewerBase.java index 9b6fd61..a0b199b 100644 --- a/src/jalview/gui/StructureViewerBase.java +++ b/src/jalview/gui/StructureViewerBase.java @@ -39,7 +39,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; @@ -51,6 +50,7 @@ import jalview.bin.Cache; import jalview.datamodel.AlignmentI; 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; @@ -61,6 +61,7 @@ import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemes; import jalview.structure.StructureMapping; import jalview.structures.models.AAStructureBindingModel; +import jalview.util.BrowserLauncher; import jalview.util.MessageManager; import jalview.ws.dbsources.Pdb; @@ -706,7 +707,7 @@ public abstract class StructureViewerBase extends GStructureViewer } else { - // update the Chimera display now. + // update the viewer display now. seqColour_actionPerformed(); } } @@ -756,6 +757,10 @@ public abstract class StructureViewerBase extends GStructureViewer } }); + viewerActionMenu.setText(getViewerName()); + helpItem.setText(MessageManager.formatMessage("label.viewer_help", + getViewerName())); + buildColourMenu(); } @@ -800,16 +805,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() { - 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 @@ -867,6 +879,7 @@ public abstract class StructureViewerBase extends GStructureViewer @Override public void pdbFile_actionPerformed() { + // TODO: JAL-3048 not needed for Jalview-JS - save PDB file JalviewFileChooser chooser = new JalviewFileChooser( Cache.getProperty("LAST_DIRECTORY")); @@ -957,7 +970,7 @@ public abstract class StructureViewerBase extends GStructureViewer * enable 'Superpose with' if more than one mapped structure */ viewSelectionMenu.setEnabled(false); - if (getBinding().getStructureFiles().length > 1 + if (getBinding().getMappedStructureCount() > 1 && getBinding().getSequence().length > 1) { viewSelectionMenu.setEnabled(true); @@ -1196,6 +1209,9 @@ public abstract class StructureViewerBase extends GStructureViewer } forceClose = confirm == JvOptionPane.YES_OPTION; } + } + if (binding != null) + { binding.closeViewer(forceClose); } setAlignmentPanel(null); @@ -1208,4 +1224,22 @@ public abstract class StructureViewerBase extends GStructureViewer dispose(); } + @Override + public void showHelp_actionPerformed() + { + try + { + String url = getBinding().getHelpURL(); + if (url != null) + { + BrowserLauncher.openURL(url); + } + } catch (IOException ex) + { + System.err + .println("Show " + getViewerName() + " failed with: " + + ex.getMessage()); + } + } + }