/* * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) * Copyright (C) 2014 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.AlignmentPanel; import jalview.util.MessageManager; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Vector; import javax.swing.ButtonGroup; import javax.swing.JInternalFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JRadioButtonMenuItem; public abstract class GStructureViewer extends JInternalFrame implements JalviewStructureDisplayI { // private AAStructureBindingModel bindingModel; protected JMenu savemenu = new JMenu(); protected JMenu viewMenu = new JMenu(); protected JMenu chainMenu = new JMenu(); protected JMenu viewerActionMenu = new JMenu(); protected JMenuItem alignStructs = 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 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; /** * 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.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() { public void actionPerformed(ActionEvent actionEvent) { pdbFile_actionPerformed(actionEvent); } }); JMenuItem png = new JMenuItem(); png.setText("PNG"); png.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { png_actionPerformed(actionEvent); } }); JMenuItem eps = new JMenuItem(); eps.setText("EPS"); eps.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { eps_actionPerformed(actionEvent); } }); JMenuItem viewMapping = new JMenuItem(); viewMapping.setText(MessageManager.getString("label.view_mapping")); viewMapping.addActionListener(new ActionListener() { 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")); 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); } }); 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() { 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); 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); helpMenu.add(helpItem); viewerActionMenu.add(alignStructs); } protected void viewerColour_actionPerformed(ActionEvent actionEvent) { } protected void 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 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 showHelp_actionPerformed(ActionEvent actionEvent) { } // { // return bindingModel; // } // public void setBindingModel(AAStructureBindingModel bindingModel) // { // this.bindingModel = bindingModel; // } /** * * @param ap2 * @return true if this Jmol instance is linked with the given alignPanel */ public boolean isLinkedWith(AlignmentPanel ap2) { 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) { viewId = System.currentTimeMillis() + "." + this.hashCode(); } return viewId; } protected void setViewId(String viewId) { this.viewId = viewId; } public String getStateInfo() { return null; } }