X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGStructureViewer.java;h=52f745d3e1375027b31df5c46a461b05b4a8eb87;hb=94379c810f9115b8564ee7bac46ed119218d5fd2;hp=b1b5200a249c4f19838ef482af31f4a6b3868515;hpb=797df64fa2a0a30773d0f48f5494d4155e5a8be3;p=jalview.git diff --git a/src/jalview/jbgui/GStructureViewer.java b/src/jalview/jbgui/GStructureViewer.java index b1b5200..52f745d 100644 --- a/src/jalview/jbgui/GStructureViewer.java +++ b/src/jalview/jbgui/GStructureViewer.java @@ -1,28 +1,101 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.jbgui; -import javax.swing.*; -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; +import jalview.api.structures.JalviewStructureDisplayI; +import jalview.gui.UserDefinedColours; +import jalview.schemes.UserColourScheme; +import jalview.util.MessageManager; -public class GStructureViewer extends JInternalFrame +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; +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 { + // private AAStructureBindingModel bindingModel; + + protected JMenu savemenu; + + protected JMenu viewMenu; + + protected JMenu colourMenu; + + protected JMenu chainMenu; + + protected JMenu viewerActionMenu; + + protected JMenuItem alignStructs; + + protected JMenuItem fitToWindow; + + protected JRadioButtonMenuItem seqColour; + + protected JRadioButtonMenuItem chainColour; + + protected JRadioButtonMenuItem chargeColour; + + protected JRadioButtonMenuItem zappoColour; + + protected JRadioButtonMenuItem taylorColour; + + protected JRadioButtonMenuItem hydroColour; + + protected JRadioButtonMenuItem strandColour; + + protected JRadioButtonMenuItem helixColour; + + protected JRadioButtonMenuItem turnColour; + + protected JRadioButtonMenuItem buriedColour; + + protected JRadioButtonMenuItem nucleotideColour; + + protected JRadioButtonMenuItem purinePyrimidineColour; + + protected JRadioButtonMenuItem userColour; + + protected JRadioButtonMenuItem viewerColour; + + protected JMenuItem helpItem; + + protected JLabel statusBar; + + protected JPanel statusPanel; + + /** + * Constructor + */ public GStructureViewer() { try @@ -36,192 +109,306 @@ public class GStructureViewer extends JInternalFrame private void jbInit() throws Exception { + JMenuBar menuBar = new JMenuBar(); this.setJMenuBar(menuBar); - fileMenu.setText("File"); - savemenu.setActionCommand("Save Image"); - savemenu.setText("Save As"); - pdbFile.setText("PDB File"); + + 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")); + + JMenuItem pdbFile = new JMenuItem(); + pdbFile.setText(MessageManager.getString("label.pdb_file")); pdbFile.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { pdbFile_actionPerformed(actionEvent); } }); + + JMenuItem png = new JMenuItem(); png.setText("PNG"); png.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { png_actionPerformed(actionEvent); } }); + + JMenuItem eps = new JMenuItem(); eps.setText("EPS"); eps.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { eps_actionPerformed(actionEvent); } }); - viewMapping.setText("View Mapping"); + + JMenuItem viewMapping = new JMenuItem(); + viewMapping.setText(MessageManager.getString("label.view_mapping")); viewMapping.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { viewMapping_actionPerformed(actionEvent); } }); - viewMenu.setText("View"); - chainMenu.setText("Show Chain"); - colourMenu.setText("Colours"); - backGround.setText("Background Colour..."); + + 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 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("action.background_colour")); backGround.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { backGround_actionPerformed(actionEvent); } }); + seqColour = new JRadioButtonMenuItem(); seqColour.setSelected(false); - seqColour.setText("By Sequence"); + seqColour.setText(MessageManager.getString("action.by_sequence")); seqColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { seqColour_actionPerformed(actionEvent); } }); - chainColour.setText("By Chain"); + chainColour = new JRadioButtonMenuItem(); + chainColour.setText(MessageManager.getString("action.by_chain")); chainColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { chainColour_actionPerformed(actionEvent); } }); - chargeColour.setText("Charge & Cysteine"); + 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("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("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("Hydro"); + hydroColour = new JRadioButtonMenuItem(); + hydroColour.setText(MessageManager + .getString("label.colourScheme_hydrophobic")); hydroColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { hydroColour_actionPerformed(actionEvent); } }); - strandColour.setText("Strand"); + strandColour = new JRadioButtonMenuItem(); + strandColour.setText(MessageManager + .getString("label.colourScheme_strand_propensity")); strandColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { strandColour_actionPerformed(actionEvent); } }); - helixColour.setText("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("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("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); } }); - purinePyrimidineColour.setText("Purine/Pyrimidine"); - purinePyrimidineColour.addActionListener(new ActionListener() + nucleotideColour = new JRadioButtonMenuItem(); + nucleotideColour.setText(MessageManager + .getString("label.colourScheme_nucleotide")); + nucleotideColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { - purinePyrimidineColour_actionPerformed(actionEvent); + nucleotideColour_actionPerformed(actionEvent); } }); - - userColour.setText("User Defined ..."); - userColour.addActionListener(new ActionListener() + purinePyrimidineColour = new JRadioButtonMenuItem(); + purinePyrimidineColour.setText(MessageManager + .getString("label.colourScheme_purine/pyrimidine")); + purinePyrimidineColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { - userColour_actionPerformed(actionEvent); + purinePyrimidineColour_actionPerformed(actionEvent); } }); - jmolColour.setSelected(false); - jmolColour.setText("Colour with Jmol"); - jmolColour.setToolTipText("Let Jmol manage structure colours."); - jmolColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - jmolColour_actionPerformed(actionEvent); - } - } - ); - helpMenu.setText("Help"); - jmolHelp.setText("Jmol Help"); - jmolHelp.addActionListener(new ActionListener() + userColour = new JRadioButtonMenuItem(); + userColour.setText(MessageManager.getString("action.user_defined")); + userColour.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { - jmolHelp_actionPerformed(actionEvent); + userColour_actionPerformed(actionEvent); } }); - alignStructs.setText("Align structures"); - alignStructs.addActionListener(new ActionListener() + viewerColour = new JRadioButtonMenuItem(); + 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() { + @Override public void actionPerformed(ActionEvent actionEvent) { - alignStructs_actionPerformed(actionEvent); + viewerColour_actionPerformed(actionEvent); } }); - jmolActionMenu.setText("Jmol"); - menuBar.add(fileMenu); - menuBar.add(viewMenu); - menuBar.add(colourMenu); - menuBar.add(jmolActionMenu); - jmolActionMenu.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); @@ -234,8 +421,32 @@ public class GStructureViewer extends JInternalFrame 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(jmolColour); + colourMenu.add(viewerColour); colourMenu.add(backGround); colourButtons.add(seqColour); @@ -248,81 +459,26 @@ public class GStructureViewer extends JInternalFrame colourButtons.add(strandColour); colourButtons.add(turnColour); colourButtons.add(buriedColour); + colourButtons.add(purinePyrimidineColour); colourButtons.add(userColour); - colourButtons.add(jmolColour); - - helpMenu.add(jmolHelp); - jmolActionMenu.add(alignStructs); + colourButtons.add(viewerColour); } - protected void jmolColour_actionPerformed(ActionEvent actionEvent) + protected void fitToWindow_actionPerformed() { } - protected void alignStructs_actionPerformed(ActionEvent actionEvent) + protected void highlightSelection_actionPerformed() { } - JMenuBar menuBar = new JMenuBar(); - - JMenu fileMenu = new JMenu(); - - JMenu savemenu = new JMenu(); - - JMenuItem pdbFile = new JMenuItem(); - - JMenuItem png = new JMenuItem(); - - JMenuItem eps = new JMenuItem(); - - JMenuItem viewMapping = new JMenuItem(); - - protected JMenu viewMenu = new JMenu(); - - protected JMenu chainMenu = new JMenu(); - - JMenu jMenu1 = new JMenu(); - - protected JMenu colourMenu = new JMenu(); - - protected JMenu jmolActionMenu = new JMenu(); - - protected JMenuItem alignStructs = new JMenuItem(); - - JMenuItem backGround = new JMenuItem(); - - protected JRadioButtonMenuItem seqColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem chainColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem chargeColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem hydroColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem(); - - - protected JRadioButtonMenuItem userColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem jmolColour = new JRadioButtonMenuItem(); - - protected ButtonGroup colourButtons = new ButtonGroup(); - - JMenu helpMenu = new JMenu(); + protected void viewerColour_actionPerformed(ActionEvent actionEvent) + { + } - JMenuItem jmolHelp = new JMenuItem(); + protected void alignStructs_actionPerformed(ActionEvent actionEvent) + { + } public void pdbFile_actionPerformed(ActionEvent actionEvent) { @@ -393,7 +549,12 @@ public class GStructureViewer extends JInternalFrame { } - + + public void nucleotideColour_actionPerformed(ActionEvent actionEvent) + { + + } + public void purinePyrimidineColour_actionPerformed(ActionEvent actionEvent) { @@ -409,8 +570,18 @@ public class GStructureViewer extends JInternalFrame } - public void jmolHelp_actionPerformed(ActionEvent actionEvent) + public void showHelp_actionPerformed(ActionEvent actionEvent) { } + + // { + // return bindingModel; + // } + + // public void setBindingModel(AAStructureBindingModel bindingModel) + // { + // this.bindingModel = bindingModel; + // } + }