X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGStructureViewer.java;h=daba59248b290944ca70a57b293bfe6c586707db;hb=36c0eac11fb0d0ac6df2d971fabf524325db5e97;hp=bd0f1de5f098c57b85a76a0dbbade4192c85d176;hpb=90add82a33c05e218a92eb1cdb2c345da05465f8;p=jalview.git diff --git a/src/jalview/jbgui/GStructureViewer.java b/src/jalview/jbgui/GStructureViewer.java index bd0f1de..daba592 100644 --- a/src/jalview/jbgui/GStructureViewer.java +++ b/src/jalview/jbgui/GStructureViewer.java @@ -21,11 +21,15 @@ package jalview.jbgui; import jalview.api.structures.JalviewStructureDisplayI; +import jalview.gui.UserDefinedColours; +import jalview.schemes.UserColourScheme; 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.Map; import javax.swing.ButtonGroup; import javax.swing.JInternalFrame; @@ -41,49 +45,53 @@ public abstract class GStructureViewer extends JInternalFrame implements { // 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 JMenuItem fitToWindow = new JMenuItem(); + protected JMenuItem alignStructs; - protected JRadioButtonMenuItem seqColour = new JRadioButtonMenuItem(); + protected JMenuItem fitToWindow; - protected JRadioButtonMenuItem chainColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem seqColour; - protected JRadioButtonMenuItem chargeColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem chainColour; - protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem chargeColour; - protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem zappoColour; - protected JRadioButtonMenuItem hydroColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem taylorColour; - protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem hydroColour; - protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem strandColour; - protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem helixColour; - protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem turnColour; - protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem buriedColour; - protected JRadioButtonMenuItem userColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem nucleotideColour; - protected JRadioButtonMenuItem viewerColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem purinePyrimidineColour; - protected JMenuItem helpItem = new JMenuItem(); + protected JRadioButtonMenuItem userColour; - protected JLabel statusBar = new JLabel(); + protected JRadioButtonMenuItem viewerColour; - protected JPanel statusPanel = new JPanel(); + protected JMenuItem helpItem; + + protected JLabel statusBar; + + protected JPanel statusPanel; /** * Constructor @@ -107,6 +115,7 @@ public abstract class GStructureViewer extends JInternalFrame implements JMenu fileMenu = new JMenu(); fileMenu.setText(MessageManager.getString("action.file")); + savemenu = new JMenu(); savemenu.setActionCommand(MessageManager.getString("action.save_image")); savemenu.setText(MessageManager.getString("action.save_as")); @@ -153,10 +162,14 @@ public abstract class GStructureViewer extends JInternalFrame implements viewMapping_actionPerformed(actionEvent); } }); + + viewMenu = new JMenu(); viewMenu.setText(MessageManager.getString("action.view")); + chainMenu = new JMenu(); chainMenu.setText(MessageManager.getString("action.show_chain")); + fitToWindow = new JMenuItem(); fitToWindow.setText(MessageManager.getString("label.fit_to_window")); fitToWindow.addActionListener(new ActionListener() { @@ -167,7 +180,62 @@ public abstract class GStructureViewer extends JInternalFrame implements } }); - JMenu colourMenu = new JMenu(); + 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 = new JMenuItem(); + alignStructs + .setText(MessageManager.getString("label.align_structures")); + alignStructs.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent actionEvent) + { + alignStructs_actionPerformed(actionEvent); + } + }); + + viewerActionMenu = new JMenu(MessageManager.getString("label.jmol")); + viewerActionMenu.setVisible(false); + viewerActionMenu.add(alignStructs); + colourMenu = new JMenu(); + buildColourMenu(); + fileMenu.add(savemenu); + fileMenu.add(viewMapping); + savemenu.add(pdbFile); + savemenu.add(png); + savemenu.add(eps); + viewMenu.add(chainMenu); + helpMenu.add(helpItem); + + menuBar.add(fileMenu); + menuBar.add(viewMenu); + menuBar.add(colourMenu); + menuBar.add(viewerActionMenu); + menuBar.add(helpMenu); + + statusPanel = new JPanel(); + statusPanel.setLayout(new GridLayout()); + this.getContentPane().add(statusPanel, BorderLayout.SOUTH); + statusBar = new JLabel(); + statusPanel.add(statusBar, null); + } + + /** + * Builds the colour menu + */ + protected void buildColourMenu() + { + colourMenu.removeAll(); colourMenu.setText(MessageManager.getString("label.colours")); JMenuItem backGround = new JMenuItem(); @@ -181,6 +249,7 @@ public abstract class GStructureViewer extends JInternalFrame implements backGround_actionPerformed(actionEvent); } }); + seqColour = new JRadioButtonMenuItem(); seqColour.setSelected(false); seqColour.setText(MessageManager.getString("action.by_sequence")); seqColour.addActionListener(new ActionListener() @@ -191,6 +260,7 @@ public abstract class GStructureViewer extends JInternalFrame implements seqColour_actionPerformed(actionEvent); } }); + chainColour = new JRadioButtonMenuItem(); chainColour.setText(MessageManager.getString("action.by_chain")); chainColour.addActionListener(new ActionListener() { @@ -200,6 +270,7 @@ public abstract class GStructureViewer extends JInternalFrame implements chainColour_actionPerformed(actionEvent); } }); + chargeColour = new JRadioButtonMenuItem(); chargeColour.setText(MessageManager.getString("label.charge_cysteine")); chargeColour.addActionListener(new ActionListener() { @@ -209,6 +280,7 @@ public abstract class GStructureViewer extends JInternalFrame implements chargeColour_actionPerformed(actionEvent); } }); + zappoColour = new JRadioButtonMenuItem(); zappoColour.setText(MessageManager.getString("label.zappo")); zappoColour.addActionListener(new ActionListener() { @@ -218,6 +290,7 @@ public abstract class GStructureViewer extends JInternalFrame implements zappoColour_actionPerformed(actionEvent); } }); + taylorColour = new JRadioButtonMenuItem(); taylorColour.setText(MessageManager.getString("label.taylor")); taylorColour.addActionListener(new ActionListener() { @@ -227,6 +300,7 @@ public abstract class GStructureViewer extends JInternalFrame implements taylorColour_actionPerformed(actionEvent); } }); + hydroColour = new JRadioButtonMenuItem(); hydroColour.setText(MessageManager.getString("label.hydrophobicity")); hydroColour.addActionListener(new ActionListener() { @@ -236,6 +310,7 @@ public abstract class GStructureViewer extends JInternalFrame implements hydroColour_actionPerformed(actionEvent); } }); + strandColour = new JRadioButtonMenuItem(); strandColour.setText(MessageManager .getString("label.strand_propensity")); strandColour.addActionListener(new ActionListener() @@ -246,6 +321,7 @@ public abstract class GStructureViewer extends JInternalFrame implements strandColour_actionPerformed(actionEvent); } }); + helixColour = new JRadioButtonMenuItem(); helixColour.setText(MessageManager.getString("label.helix_propensity")); helixColour.addActionListener(new ActionListener() { @@ -255,6 +331,7 @@ public abstract class GStructureViewer extends JInternalFrame implements helixColour_actionPerformed(actionEvent); } }); + turnColour = new JRadioButtonMenuItem(); turnColour.setText(MessageManager.getString("label.turn_propensity")); turnColour.addActionListener(new ActionListener() { @@ -264,6 +341,7 @@ public abstract class GStructureViewer extends JInternalFrame implements turnColour_actionPerformed(actionEvent); } }); + buriedColour = new JRadioButtonMenuItem(); buriedColour.setText(MessageManager.getString("label.buried_index")); buriedColour.addActionListener(new ActionListener() { @@ -273,6 +351,17 @@ public abstract class GStructureViewer extends JInternalFrame implements buriedColour_actionPerformed(actionEvent); } }); + nucleotideColour = new JRadioButtonMenuItem(); + nucleotideColour.setText(MessageManager.getString("label.nucleotide")); + nucleotideColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent actionEvent) + { + nucleotideColour_actionPerformed(actionEvent); + } + }); + purinePyrimidineColour = new JRadioButtonMenuItem(); purinePyrimidineColour.setText(MessageManager .getString("label.purine_pyrimidine")); purinePyrimidineColour.addActionListener(new ActionListener() @@ -283,7 +372,7 @@ public abstract class GStructureViewer extends JInternalFrame implements purinePyrimidineColour_actionPerformed(actionEvent); } }); - + userColour = new JRadioButtonMenuItem(); userColour.setText(MessageManager.getString("action.user_defined")); userColour.addActionListener(new ActionListener() { @@ -293,6 +382,7 @@ public abstract class GStructureViewer extends JInternalFrame implements userColour_actionPerformed(actionEvent); } }); + viewerColour = new JRadioButtonMenuItem(); viewerColour.setSelected(false); viewerColour .setText(MessageManager.getString("label.colour_with_jmol")); @@ -307,40 +397,11 @@ public abstract class GStructureViewer extends JInternalFrame implements } }); - JMenu helpMenu = new JMenu(); - helpMenu.setText(MessageManager.getString("action.help")); - 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.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.setVisible(false); - menuBar.add(helpMenu); - fileMenu.add(savemenu); - fileMenu.add(viewMapping); - savemenu.add(pdbFile); - savemenu.add(png); - savemenu.add(eps); - viewMenu.add(chainMenu); + /* + * add colour buttons to a group so their selection + * is mutually exclusive + */ + ButtonGroup colourButtons = new ButtonGroup(); colourMenu.add(seqColour); colourMenu.add(chainColour); @@ -353,12 +414,34 @@ public abstract class GStructureViewer extends JInternalFrame implements colourMenu.add(turnColour); colourMenu.add(buriedColour); colourMenu.add(purinePyrimidineColour); + + /* + * add any user-defined colours that are loaded + */ + Map userColourSchemes = UserDefinedColours + .getUserColourSchemes(); + if (userColourSchemes != null) + { + for (String schemeName : userColourSchemes.keySet()) + { + final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem( + schemeName); + radioItem.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent evt) + { + userColour_actionPerformed(evt); + } + }); + colourMenu.add(radioItem); + colourButtons.add(radioItem); + } + } colourMenu.add(userColour); colourMenu.add(viewerColour); colourMenu.add(backGround); - ButtonGroup colourButtons = new ButtonGroup(); - colourButtons.add(seqColour); colourButtons.add(chainColour); colourButtons.add(chargeColour); @@ -372,13 +455,6 @@ public abstract class GStructureViewer extends JInternalFrame implements colourButtons.add(purinePyrimidineColour); colourButtons.add(userColour); colourButtons.add(viewerColour); - - helpMenu.add(helpItem); - viewerActionMenu.add(alignStructs); - - statusPanel.setLayout(new GridLayout()); - this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH); - statusPanel.add(statusBar, null); } protected void fitToWindow_actionPerformed() @@ -467,6 +543,11 @@ public abstract class GStructureViewer extends JInternalFrame implements } + public void nucleotideColour_actionPerformed(ActionEvent actionEvent) + { + + } + public void purinePyrimidineColour_actionPerformed(ActionEvent actionEvent) {