X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGStructureViewer.java;h=418e4132178c295b016144e256db43fbdcd1a143;hb=e1a435a213f105bac3ea0258c6fe26f11df2a392;hp=4471bbb9c4c84b4efcd5edf8b2c3b22d41ed1430;hpb=c66902a9536b10a5477b58aaf7c2d75772890a5d;p=jalview.git diff --git a/src/jalview/jbgui/GStructureViewer.java b/src/jalview/jbgui/GStructureViewer.java index 4471bbb..418e413 100644 --- a/src/jalview/jbgui/GStructureViewer.java +++ b/src/jalview/jbgui/GStructureViewer.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. * @@ -21,81 +21,59 @@ package jalview.jbgui; import jalview.api.structures.JalviewStructureDisplayI; -import jalview.gui.AlignmentPanel; +import jalview.gui.ColourMenuHelper.ColourChangeListener; import jalview.util.MessageManager; +import java.awt.BorderLayout; +import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; -import java.util.Vector; +import java.util.List; -import javax.swing.ButtonGroup; +import javax.swing.JCheckBoxMenuItem; import javax.swing.JInternalFrame; +import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; +import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; -public abstract class GStructureViewer extends JInternalFrame implements - JalviewStructureDisplayI +public abstract class GStructureViewer extends JInternalFrame + implements JalviewStructureDisplayI, ColourChangeListener { // private AAStructureBindingModel bindingModel; - protected JMenu savemenu = new JMenu(); + protected JMenu savemenu; - protected JMenu viewMenu = new JMenu(); + protected JMenu viewMenu; - protected JMenu chainMenu = new JMenu(); + protected JMenu colourMenu; - protected JMenu viewerActionMenu = new JMenu(); + protected JMenu chainMenu; - protected JMenuItem alignStructs = new JMenuItem(); + protected JMenu viewerActionMenu; - protected JRadioButtonMenuItem seqColour = new JRadioButtonMenuItem(); + protected JMenuItem alignStructs; - protected JRadioButtonMenuItem chainColour = new JRadioButtonMenuItem(); + protected JCheckBoxMenuItem showAlignmentOnly; - protected JRadioButtonMenuItem chargeColour = new JRadioButtonMenuItem(); + protected JMenuItem fitToWindow; - protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem seqColour; - protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem chainColour; - protected JRadioButtonMenuItem hydroColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem chargeColour; - protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem viewerColour; - protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem(); + protected JMenuItem helpItem; - protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem(); + protected JLabel statusBar; - protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem userColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem viewerColour = new JRadioButtonMenuItem(); - - protected JMenuItem helpItem = new JMenuItem(); - - /** - * list of sequenceSet ids associated with the view - */ - protected ArrayList _aps = new ArrayList(); - - /** - * list of alignment panels to use for superposition - */ - protected Vector _alignwith = new Vector(); - - /** - * list of alignment panels that are used for colouring structures by aligned - * sequences - */ - protected Vector _colourwith = new Vector(); - - private String viewId = null; + protected JPanel statusPanel; /** * Constructor @@ -119,13 +97,16 @@ public abstract class GStructureViewer extends JInternalFrame implements JMenu fileMenu = new JMenu(); fileMenu.setText(MessageManager.getString("action.file")); - savemenu.setActionCommand(MessageManager.getString("action.save_image")); + savemenu = new JMenu(); + savemenu.setActionCommand( + MessageManager.getString("action.save_image")); savemenu.setText(MessageManager.getString("action.save_as")); JMenuItem pdbFile = new JMenuItem(); pdbFile.setText(MessageManager.getString("label.pdb_file")); pdbFile.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { pdbFile_actionPerformed(actionEvent); @@ -136,6 +117,7 @@ public abstract class GStructureViewer extends JInternalFrame implements png.setText("PNG"); png.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { png_actionPerformed(actionEvent); @@ -146,6 +128,7 @@ public abstract class GStructureViewer extends JInternalFrame implements eps.setText("EPS"); eps.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { eps_actionPerformed(actionEvent); @@ -156,215 +139,95 @@ public abstract class GStructureViewer extends JInternalFrame implements viewMapping.setText(MessageManager.getString("label.view_mapping")); viewMapping.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { viewMapping_actionPerformed(actionEvent); } }); - viewMenu.setText(MessageManager.getString("action.view")); - chainMenu.setText(MessageManager.getString("action.show_chain")); - JMenu colourMenu = new JMenu(); - colourMenu.setText(MessageManager.getString("label.colours")); + viewMenu = new JMenu(); + viewMenu.setText(MessageManager.getString("action.view")); - JMenuItem backGround = new JMenuItem(); - backGround.setText(MessageManager.getString("label.background_colour") - + "..."); - backGround.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - backGround_actionPerformed(actionEvent); - } - }); - seqColour.setSelected(false); - seqColour.setText(MessageManager.getString("action.by_sequence")); - seqColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - seqColour_actionPerformed(actionEvent); - } - }); - chainColour.setText(MessageManager.getString("action.by_chain")); - chainColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - chainColour_actionPerformed(actionEvent); - } - }); - chargeColour.setText(MessageManager.getString("label.charge_cysteine")); - chargeColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - chargeColour_actionPerformed(actionEvent); - } - }); - zappoColour.setText(MessageManager.getString("label.zappo")); - zappoColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - zappoColour_actionPerformed(actionEvent); - } - }); - taylorColour.setText(MessageManager.getString("label.taylor")); - taylorColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - taylorColour_actionPerformed(actionEvent); - } - }); - hydroColour.setText(MessageManager.getString("label.hydrophobicity")); - hydroColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - hydroColour_actionPerformed(actionEvent); - } - }); - strandColour.setText(MessageManager - .getString("label.strand_propensity")); - strandColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - strandColour_actionPerformed(actionEvent); - } - }); - helixColour.setText(MessageManager.getString("label.helix_propensity")); - helixColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - helixColour_actionPerformed(actionEvent); - } - }); - turnColour.setText(MessageManager.getString("label.turn_propensity")); - turnColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - turnColour_actionPerformed(actionEvent); - } - }); - buriedColour.setText(MessageManager.getString("label.buried_index")); - buriedColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - buriedColour_actionPerformed(actionEvent); - } - }); - purinePyrimidineColour.setText(MessageManager - .getString("label.purine_pyrimidine")); - purinePyrimidineColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - purinePyrimidineColour_actionPerformed(actionEvent); - } - }); + chainMenu = new JMenu(); + chainMenu.setText(MessageManager.getString("action.show_chain")); - userColour.setText(MessageManager.getString("action.user_defined")); - userColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - userColour_actionPerformed(actionEvent); - } - }); - viewerColour.setSelected(false); - viewerColour - .setText(MessageManager.getString("label.colour_with_jmol")); - viewerColour.setToolTipText(MessageManager - .getString("label.let_jmol_manage_structure_colours")); - viewerColour.addActionListener(new ActionListener() + fitToWindow = new JMenuItem(); + fitToWindow.setText(MessageManager.getString("label.fit_to_window")); + fitToWindow.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { - viewerColour_actionPerformed(actionEvent); + fitToWindow_actionPerformed(); } }); JMenu helpMenu = new JMenu(); helpMenu.setText(MessageManager.getString("action.help")); + helpItem = new JMenuItem(); helpItem.setText(MessageManager.getString("label.jmol_help")); helpItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { showHelp_actionPerformed(actionEvent); } }); - alignStructs - .setText(MessageManager.getString("label.align_structures")); + alignStructs = new JMenuItem(); + alignStructs.setText( + MessageManager.getString("label.superpose_structures")); alignStructs.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { alignStructs_actionPerformed(actionEvent); } }); - viewerActionMenu.setText(MessageManager.getString("label.jmol")); - menuBar.add(fileMenu); - menuBar.add(viewMenu); - menuBar.add(colourMenu); - menuBar.add(viewerActionMenu); + + viewerActionMenu = new JMenu(); // text set in sub-classes viewerActionMenu.setVisible(false); - menuBar.add(helpMenu); + viewerActionMenu.add(alignStructs); + colourMenu = new JMenu(); + colourMenu.setText(MessageManager.getString("label.colours")); fileMenu.add(savemenu); fileMenu.add(viewMapping); savemenu.add(pdbFile); savemenu.add(png); savemenu.add(eps); viewMenu.add(chainMenu); + helpMenu.add(helpItem); - colourMenu.add(seqColour); - colourMenu.add(chainColour); - colourMenu.add(chargeColour); - colourMenu.add(zappoColour); - colourMenu.add(taylorColour); - colourMenu.add(hydroColour); - colourMenu.add(helixColour); - colourMenu.add(strandColour); - colourMenu.add(turnColour); - colourMenu.add(buriedColour); - colourMenu.add(purinePyrimidineColour); - colourMenu.add(userColour); - colourMenu.add(viewerColour); - colourMenu.add(backGround); - - ButtonGroup colourButtons = new ButtonGroup(); - - colourButtons.add(seqColour); - colourButtons.add(chainColour); - colourButtons.add(chargeColour); - colourButtons.add(zappoColour); - colourButtons.add(taylorColour); - colourButtons.add(hydroColour); - colourButtons.add(helixColour); - colourButtons.add(strandColour); - colourButtons.add(turnColour); - colourButtons.add(buriedColour); - colourButtons.add(userColour); - colourButtons.add(viewerColour); + menuBar.add(fileMenu); + menuBar.add(viewMenu); + menuBar.add(colourMenu); + menuBar.add(viewerActionMenu); + menuBar.add(helpMenu); - helpMenu.add(helpItem); - viewerActionMenu.add(alignStructs); + statusPanel = new JPanel(); + statusPanel.setLayout(new GridLayout()); + this.getContentPane().add(statusPanel, BorderLayout.SOUTH); + statusBar = new JLabel(); + statusPanel.add(statusBar, null); } - protected void viewerColour_actionPerformed(ActionEvent actionEvent) + protected void fitToWindow_actionPerformed() + { + } + + protected void highlightSelection_actionPerformed() { } - protected void alignStructs_actionPerformed(ActionEvent actionEvent) + protected void viewerColour_actionPerformed(ActionEvent actionEvent) { } + protected abstract String alignStructs_actionPerformed( + ActionEvent actionEvent); + public void pdbFile_actionPerformed(ActionEvent actionEvent) { @@ -400,52 +263,7 @@ public abstract class GStructureViewer extends JInternalFrame implements } - public void zappoColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void taylorColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void hydroColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void helixColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void strandColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void turnColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void buriedColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void purinePyrimidineColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void userColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void backGround_actionPerformed(ActionEvent actionEvent) + public void background_actionPerformed(ActionEvent actionEvent) { } @@ -455,61 +273,26 @@ public abstract class GStructureViewer extends JInternalFrame implements } - // { - // return bindingModel; - // } - - // public void setBindingModel(AAStructureBindingModel bindingModel) - // { - // this.bindingModel = bindingModel; - // } - /** - * - * @param ap2 - * @return true if this Jmol instance is linked with the given alignPanel + * Saves the selected entries in the 'View Chain' menu into a list. Entries are + * formatted as "pdbid:chainid". Only the selected chains should be drawn in the + * structure display. */ - public boolean isLinkedWith(AlignmentPanel ap2) + protected void setSelectedChains() { - return _aps.contains(ap2.av.getSequenceSetId()); - } - - public boolean isUsedforaligment(AlignmentPanel ap2) - { - - return (_alignwith != null) && _alignwith.contains(ap2); - } - - public boolean isUsedforcolourby(AlignmentPanel ap2) - { - return (_colourwith != null) && _colourwith.contains(ap2); - } - - /** - * - * @return TRUE if the view is NOT being coloured by the alignment colours. - */ - public boolean isColouredByViewer() - { - return !getBinding().isColourBySequence(); - } - - public String getViewId() - { - if (viewId == null) + List chains = new ArrayList<>(); + for (int i = 0; i < chainMenu.getItemCount(); i++) { - viewId = System.currentTimeMillis() + "." + this.hashCode(); + JMenuItem menuItem = chainMenu.getItem(i); + if (menuItem instanceof JCheckBoxMenuItem) + { + JCheckBoxMenuItem item = (JCheckBoxMenuItem) menuItem; + if (item.isSelected()) + { + chains.add(item.getText()); + } + } } - return viewId; - } - - protected void setViewId(String viewId) - { - this.viewId = viewId; - } - - public String getStateInfo() - { - return null; + getBinding().setChainsToShow(chains); } }