X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGStructureViewer.java;h=52f745d3e1375027b31df5c46a461b05b4a8eb87;hb=94379c810f9115b8564ee7bac46ed119218d5fd2;hp=c76fb23ee50140455d0baa5e34100d43f6feecb3;hpb=a576517d22220abb490437a02c9b37a1f4c2839e;p=jalview.git diff --git a/src/jalview/jbgui/GStructureViewer.java b/src/jalview/jbgui/GStructureViewer.java index c76fb23..52f745d 100644 --- a/src/jalview/jbgui/GStructureViewer.java +++ b/src/jalview/jbgui/GStructureViewer.java @@ -20,9 +20,16 @@ */ 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; @@ -33,57 +40,58 @@ import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; -import jalview.api.structures.JalviewStructureDisplayI; -import jalview.util.MessageManager; - public abstract class GStructureViewer extends JInternalFrame implements JalviewStructureDisplayI { // private AAStructureBindingModel bindingModel; - protected JMenu savemenu = new JMenu(); + protected JMenu savemenu; + + protected JMenu viewMenu; - protected JMenu viewMenu = new JMenu(); + protected JMenu colourMenu; - protected JMenu chainMenu = new JMenu(); + protected JMenu chainMenu; - protected JMenu viewerActionMenu = new JMenu(); + protected JMenu viewerActionMenu; - protected JMenuItem alignStructs = new JMenuItem(); + protected JMenuItem alignStructs; - protected JMenuItem fitToWindow = new JMenuItem(); + protected JMenuItem fitToWindow; - protected JRadioButtonMenuItem seqColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem seqColour; - protected JRadioButtonMenuItem chainColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem chainColour; - protected JRadioButtonMenuItem chargeColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem chargeColour; - protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem zappoColour; - protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem taylorColour; - protected JRadioButtonMenuItem hydroColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem hydroColour; - protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem strandColour; - protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem helixColour; - protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem turnColour; - protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem buriedColour; - protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem nucleotideColour; - protected JRadioButtonMenuItem userColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem purinePyrimidineColour; - protected JRadioButtonMenuItem viewerColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem userColour; - protected JMenuItem helpItem = new JMenuItem(); + protected JRadioButtonMenuItem viewerColour; - protected JLabel statusBar = new JLabel(); + protected JMenuItem helpItem; - protected JPanel statusPanel = new JPanel(); + 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")); @@ -114,6 +123,7 @@ public abstract class GStructureViewer extends JInternalFrame implements pdbFile.setText(MessageManager.getString("label.pdb_file")); pdbFile.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { pdbFile_actionPerformed(actionEvent); @@ -124,6 +134,7 @@ public abstract class GStructureViewer extends JInternalFrame implements png.setText("PNG"); png.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { png_actionPerformed(actionEvent); @@ -134,6 +145,7 @@ public abstract class GStructureViewer extends JInternalFrame implements eps.setText("EPS"); eps.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { eps_actionPerformed(actionEvent); @@ -144,137 +156,240 @@ 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 = 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() { + @Override public void actionPerformed(ActionEvent actionEvent) { fitToWindow_actionPerformed(); } }); - 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(); - backGround.setText(MessageManager.getString("label.background_colour") - + "..."); + backGround + .setText(MessageManager.getString("action.background_colour")); backGround.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { backGround_actionPerformed(actionEvent); } }); + seqColour = new JRadioButtonMenuItem(); seqColour.setSelected(false); seqColour.setText(MessageManager.getString("action.by_sequence")); seqColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { seqColour_actionPerformed(actionEvent); } }); + chainColour = new JRadioButtonMenuItem(); chainColour.setText(MessageManager.getString("action.by_chain")); chainColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { chainColour_actionPerformed(actionEvent); } }); + chargeColour = new JRadioButtonMenuItem(); chargeColour.setText(MessageManager.getString("label.charge_cysteine")); chargeColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { chargeColour_actionPerformed(actionEvent); } }); - zappoColour.setText(MessageManager.getString("label.zappo")); + zappoColour = new JRadioButtonMenuItem(); + zappoColour.setText(MessageManager + .getString("label.colourScheme_zappo")); zappoColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { zappoColour_actionPerformed(actionEvent); } }); - taylorColour.setText(MessageManager.getString("label.taylor")); + taylorColour = new JRadioButtonMenuItem(); + taylorColour.setText(MessageManager + .getString("label.colourScheme_taylor")); taylorColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { taylorColour_actionPerformed(actionEvent); } }); - hydroColour.setText(MessageManager.getString("label.hydrophobicity")); + hydroColour = new JRadioButtonMenuItem(); + hydroColour.setText(MessageManager + .getString("label.colourScheme_hydrophobic")); hydroColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { hydroColour_actionPerformed(actionEvent); } }); + strandColour = new JRadioButtonMenuItem(); strandColour.setText(MessageManager - .getString("label.strand_propensity")); + .getString("label.colourScheme_strand_propensity")); strandColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { strandColour_actionPerformed(actionEvent); } }); - helixColour.setText(MessageManager.getString("label.helix_propensity")); + helixColour = new JRadioButtonMenuItem(); + helixColour.setText(MessageManager + .getString("label.colourScheme_helix_propensity")); helixColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { helixColour_actionPerformed(actionEvent); } }); - turnColour.setText(MessageManager.getString("label.turn_propensity")); + turnColour = new JRadioButtonMenuItem(); + turnColour.setText(MessageManager + .getString("label.colourScheme_turn_propensity")); turnColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { turnColour_actionPerformed(actionEvent); } }); - buriedColour.setText(MessageManager.getString("label.buried_index")); + buriedColour = new JRadioButtonMenuItem(); + buriedColour.setText(MessageManager + .getString("label.colourScheme_buried_index")); buriedColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { buriedColour_actionPerformed(actionEvent); } }); + nucleotideColour = new JRadioButtonMenuItem(); + nucleotideColour.setText(MessageManager + .getString("label.colourScheme_nucleotide")); + nucleotideColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent actionEvent) + { + nucleotideColour_actionPerformed(actionEvent); + } + }); + purinePyrimidineColour = new JRadioButtonMenuItem(); purinePyrimidineColour.setText(MessageManager - .getString("label.purine_pyrimidine")); + .getString("label.colourScheme_purine/pyrimidine")); purinePyrimidineColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { purinePyrimidineColour_actionPerformed(actionEvent); } }); - + userColour = new JRadioButtonMenuItem(); userColour.setText(MessageManager.getString("action.user_defined")); userColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { userColour_actionPerformed(actionEvent); } }); + viewerColour = new JRadioButtonMenuItem(); viewerColour.setSelected(false); viewerColour .setText(MessageManager.getString("label.colour_with_jmol")); @@ -282,44 +397,18 @@ public abstract class GStructureViewer extends JInternalFrame implements .getString("label.let_jmol_manage_structure_colours")); viewerColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { viewerColour_actionPerformed(actionEvent); } }); - JMenu helpMenu = new JMenu(); - helpMenu.setText(MessageManager.getString("action.help")); - helpItem.setText(MessageManager.getString("label.jmol_help")); - helpItem.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - showHelp_actionPerformed(actionEvent); - } - }); - alignStructs - .setText(MessageManager.getString("label.align_structures")); - alignStructs.addActionListener(new ActionListener() - { - 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); @@ -332,12 +421,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); @@ -348,21 +459,19 @@ public abstract class GStructureViewer extends JInternalFrame implements colourButtons.add(strandColour); colourButtons.add(turnColour); colourButtons.add(buriedColour); + 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() { } + protected void highlightSelection_actionPerformed() + { + } + protected void viewerColour_actionPerformed(ActionEvent actionEvent) { } @@ -441,6 +550,11 @@ public abstract class GStructureViewer extends JInternalFrame implements } + public void nucleotideColour_actionPerformed(ActionEvent actionEvent) + { + + } + public void purinePyrimidineColour_actionPerformed(ActionEvent actionEvent) {