/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, 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 <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * 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
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.setSelected(true);
- seqColour.setText("By Sequence");
+ 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.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.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.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.hydrophobicity"));
hydroColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
hydroColour_actionPerformed(actionEvent);
}
});
- strandColour.setText("Strand");
+ strandColour = new JRadioButtonMenuItem();
+ strandColour.setText(MessageManager
+ .getString("label.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.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.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.buried_index"));
buriedColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
buriedColour_actionPerformed(actionEvent);
}
});
- userColour.setText("User Defined ...");
- userColour.addActionListener(new ActionListener()
+ nucleotideColour = new JRadioButtonMenuItem();
+ nucleotideColour.setText(MessageManager.getString("label.nucleotide"));
+ nucleotideColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
- userColour_actionPerformed(actionEvent);
+ nucleotideColour_actionPerformed(actionEvent);
}
});
- helpMenu.setText("Help");
- jmolHelp.setText("Jmol Help");
- jmolHelp.addActionListener(new ActionListener()
+ purinePyrimidineColour = new JRadioButtonMenuItem();
+ purinePyrimidineColour.setText(MessageManager
+ .getString("label.purine_pyrimidine"));
+ purinePyrimidineColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
- jmolHelp_actionPerformed(actionEvent);
+ purinePyrimidineColour_actionPerformed(actionEvent);
}
});
- alignStructs.setText("Align structures");
- alignStructs.addActionListener(new ActionListener()
+ userColour = new JRadioButtonMenuItem();
+ userColour.setText(MessageManager.getString("action.user_defined"));
+ userColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
- alignStructs_actionPerformed(actionEvent);
+ userColour_actionPerformed(actionEvent);
+ }
+ });
+ 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)
+ {
+ 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);
colourMenu.add(strandColour);
colourMenu.add(turnColour);
colourMenu.add(buriedColour);
+ colourMenu.add(purinePyrimidineColour);
+
+ /*
+ * add any user-defined colours that are loaded
+ */
+ Map<String, UserColourScheme> 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);
colourButtons.add(seqColour);
colourButtons.add(strandColour);
colourButtons.add(turnColour);
colourButtons.add(buriedColour);
+ colourButtons.add(purinePyrimidineColour);
colourButtons.add(userColour);
-
- helpMenu.add(jmolHelp);
- jmolActionMenu.add(alignStructs);
+ colourButtons.add(viewerColour);
}
- protected void alignStructs_actionPerformed(ActionEvent actionEvent)
+ protected void fitToWindow_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();
-
- JMenu viewMenu = new JMenu();
-
- protected JMenu chainMenu = new JMenu();
-
- JMenu jMenu1 = new JMenu();
-
- JMenu colourMenu = new JMenu();
-
- protected JMenu jmolActionMenu = new JMenu();
-
- 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 userColour = new JRadioButtonMenuItem();
-
- protected ButtonGroup colourButtons = new ButtonGroup();
+ protected void highlightSelection_actionPerformed()
+ {
+ }
- 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)
{
}
+ public void nucleotideColour_actionPerformed(ActionEvent actionEvent)
+ {
+
+ }
+
+ public void purinePyrimidineColour_actionPerformed(ActionEvent actionEvent)
+ {
+
+ }
+
public void userColour_actionPerformed(ActionEvent actionEvent)
{
}
- public void jmolHelp_actionPerformed(ActionEvent actionEvent)
+ public void showHelp_actionPerformed(ActionEvent actionEvent)
{
}
+
+ // {
+ // return bindingModel;
+ // }
+
+ // public void setBindingModel(AAStructureBindingModel bindingModel)
+ // {
+ // this.bindingModel = bindingModel;
+ // }
+
}