X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGStructureViewer.java;h=418e4132178c295b016144e256db43fbdcd1a143;hb=e1a435a213f105bac3ea0258c6fe26f11df2a392;hp=10e0b9bd98cedda35ff6da000fb4b6e1fd0f1a21;hpb=47a7fd640a4723ed192715704e5f029c0d9e02f9;p=jalview.git diff --git a/src/jalview/jbgui/GStructureViewer.java b/src/jalview/jbgui/GStructureViewer.java index 10e0b9b..418e413 100644 --- a/src/jalview/jbgui/GStructureViewer.java +++ b/src/jalview/jbgui/GStructureViewer.java @@ -1,322 +1,298 @@ -/* - * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle - * - * This program 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 2 - * of the License, or (at your option) any later version. - * - * This program 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 this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -package jalview.jbgui; - -import javax.swing.*; -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; - -public class GStructureViewer extends JInternalFrame -{ - public GStructureViewer() - { - try - { - jbInit(); - } - catch (Exception ex) - { - ex.printStackTrace(); - } - } - - private void jbInit() - throws Exception - { - this.setJMenuBar(menuBar); - fileMenu.setText("File"); - savemenu.setActionCommand("Save Image"); - savemenu.setText("Save As"); - pdbFile.setText("PDB File"); - pdbFile.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - pdbFile_actionPerformed(actionEvent); - } - }); - png.setText("PNG"); - png.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - png_actionPerformed(actionEvent); - } - }); - eps.setText("EPS"); - eps.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - eps_actionPerformed(actionEvent); - } - }); - viewMapping.setText("View Mapping"); - viewMapping.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - viewMapping_actionPerformed(actionEvent); - } - }); - viewMenu.setText("View"); - chainMenu.setText("Show Chain"); - colourMenu.setText("Colours"); - backGround.setText("Background Colour..."); - backGround.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - backGround_actionPerformed(actionEvent); - } - }); - seqColour.setSelected(true); - seqColour.setText("By Sequence"); - seqColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - seqColour_actionPerformed(actionEvent); - } - }); - chainColour.setText("By Chain"); - chainColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - chainColour_actionPerformed(actionEvent); - } - }); - chargeColour.setText("Charge & Cysteine"); - chargeColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - chargeColour_actionPerformed(actionEvent); - } - }); - zappoColour.setText("Zappo"); - zappoColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - zappoColour_actionPerformed(actionEvent); - } - }); - taylorColour.setText("Taylor"); - taylorColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - taylorColour_actionPerformed(actionEvent); - } - }); - hydroColour.setText("Hydro"); - hydroColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - hydroColour_actionPerformed(actionEvent); - } - }); - strandColour.setText("Strand"); - strandColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - strandColour_actionPerformed(actionEvent); - } - }); - helixColour.setText("Helix Propensity"); - helixColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - helixColour_actionPerformed(actionEvent); - } - }); - turnColour.setText("Turn Propensity"); - turnColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - turnColour_actionPerformed(actionEvent); - } - }); - buriedColour.setText("Buried Index"); - buriedColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - buriedColour_actionPerformed(actionEvent); - } - }); - userColour.setText("User Defined ..."); - userColour.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - userColour_actionPerformed(actionEvent); - } - }); - helpMenu.setText("Help"); - jmolHelp.setText("Jmol Help"); - jmolHelp.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent actionEvent) - { - jmolHelp_actionPerformed(actionEvent); - } - }); - menuBar.add(fileMenu); - menuBar.add(viewMenu); - menuBar.add(colourMenu); - menuBar.add(helpMenu); - fileMenu.add(savemenu); - fileMenu.add(viewMapping); - savemenu.add(pdbFile); - savemenu.add(png); - savemenu.add(eps); - viewMenu.add(chainMenu); - 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(userColour); - colourMenu.add(backGround); - helpMenu.add(jmolHelp); - } - - 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(); - JMenu viewMenu = new JMenu(); - protected JMenu chainMenu = new JMenu(); - JMenu jMenu1 = new JMenu(); - JMenu colourMenu = new JMenu(); - JMenuItem backGround = new JMenuItem(); - protected JCheckBoxMenuItem seqColour = new JCheckBoxMenuItem(); - JMenuItem chainColour = new JMenuItem(); - JMenuItem chargeColour = new JMenuItem(); - JMenuItem zappoColour = new JMenuItem(); - JMenuItem taylorColour = new JMenuItem(); - JMenuItem hydroColour = new JMenuItem(); - JMenuItem strandColour = new JMenuItem(); - JMenuItem helixColour = new JMenuItem(); - JMenuItem turnColour = new JMenuItem(); - JMenuItem buriedColour = new JMenuItem(); - JMenuItem userColour = new JMenuItem(); - JMenu helpMenu = new JMenu(); - JMenuItem jmolHelp = new JMenuItem(); - public void pdbFile_actionPerformed(ActionEvent actionEvent) - { - - } - - public void png_actionPerformed(ActionEvent actionEvent) - { - - } - - public void eps_actionPerformed(ActionEvent actionEvent) - { - - } - - public void viewMapping_actionPerformed(ActionEvent actionEvent) - { - - } - - public void seqColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void chainColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void chargeColour_actionPerformed(ActionEvent actionEvent) - { - - } - - 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 userColour_actionPerformed(ActionEvent actionEvent) - { - - } - - public void backGround_actionPerformed(ActionEvent actionEvent) - { - - } - - public void jmolHelp_actionPerformed(ActionEvent actionEvent) - { - - } -} +/* + * 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. + * + * 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ +package jalview.jbgui; + +import jalview.api.structures.JalviewStructureDisplayI; +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.List; + +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, ColourChangeListener +{ + // private AAStructureBindingModel bindingModel; + + protected JMenu savemenu; + + protected JMenu viewMenu; + + protected JMenu colourMenu; + + protected JMenu chainMenu; + + protected JMenu viewerActionMenu; + + protected JMenuItem alignStructs; + + protected JCheckBoxMenuItem showAlignmentOnly; + + protected JMenuItem fitToWindow; + + protected JRadioButtonMenuItem seqColour; + + protected JRadioButtonMenuItem chainColour; + + protected JRadioButtonMenuItem chargeColour; + + protected JRadioButtonMenuItem viewerColour; + + protected JMenuItem helpItem; + + protected JLabel statusBar; + + protected JPanel statusPanel; + + /** + * Constructor + */ + public GStructureViewer() + { + try + { + jbInit(); + } catch (Exception ex) + { + ex.printStackTrace(); + } + } + + private void jbInit() throws Exception + { + JMenuBar menuBar = new JMenuBar(); + this.setJMenuBar(menuBar); + + 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); + } + }); + + 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 = 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.superpose_structures")); + alignStructs.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent actionEvent) + { + alignStructs_actionPerformed(actionEvent); + } + }); + + viewerActionMenu = new JMenu(); // text set in sub-classes + viewerActionMenu.setVisible(false); + 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); + + 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); + } + + protected void fitToWindow_actionPerformed() + { + } + + protected void highlightSelection_actionPerformed() + { + } + + protected void viewerColour_actionPerformed(ActionEvent actionEvent) + { + } + + protected abstract String alignStructs_actionPerformed( + ActionEvent actionEvent); + + public void pdbFile_actionPerformed(ActionEvent actionEvent) + { + + } + + public void png_actionPerformed(ActionEvent actionEvent) + { + + } + + public void eps_actionPerformed(ActionEvent actionEvent) + { + + } + + public void viewMapping_actionPerformed(ActionEvent actionEvent) + { + + } + + public void seqColour_actionPerformed(ActionEvent actionEvent) + { + + } + + public void chainColour_actionPerformed(ActionEvent actionEvent) + { + + } + + public void chargeColour_actionPerformed(ActionEvent actionEvent) + { + + } + + public void background_actionPerformed(ActionEvent actionEvent) + { + + } + + public void showHelp_actionPerformed(ActionEvent actionEvent) + { + + } + + /** + * 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. + */ + protected void setSelectedChains() + { + List chains = new ArrayList<>(); + for (int i = 0; i < chainMenu.getItemCount(); i++) + { + JMenuItem menuItem = chainMenu.getItem(i); + if (menuItem instanceof JCheckBoxMenuItem) + { + JCheckBoxMenuItem item = (JCheckBoxMenuItem) menuItem; + if (item.isSelected()) + { + chains.add(item.getText()); + } + } + } + getBinding().setChainsToShow(chains); + } +}