/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
package jalview.jbgui;
import jalview.api.structures.JalviewStructureDisplayI;
-import jalview.gui.AlignmentPanel;
+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.ArrayList;
-import java.util.Vector;
+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
{
// private AAStructureBindingModel bindingModel;
- protected JMenu savemenu = new JMenu();
+ protected JMenu savemenu;
- protected JMenu viewMenu = new JMenu();
+ protected JMenu viewMenu;
- protected JMenu chainMenu = new JMenu();
+ protected JMenu colourMenu;
- protected JMenu viewerActionMenu = new JMenu();
+ protected JMenu chainMenu;
- protected JMenuItem alignStructs = new JMenuItem();
+ protected JMenu viewerActionMenu;
- protected JRadioButtonMenuItem seqColour = new JRadioButtonMenuItem();
+ protected JMenuItem alignStructs;
- protected JRadioButtonMenuItem chainColour = new JRadioButtonMenuItem();
+ protected JMenuItem fitToWindow;
- protected JRadioButtonMenuItem chargeColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem seqColour;
- protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem chainColour;
- protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem chargeColour;
- protected JRadioButtonMenuItem hydroColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem zappoColour;
- protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem taylorColour;
- protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem hydroColour;
- protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem strandColour;
- protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem helixColour;
- protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem turnColour;
- protected JRadioButtonMenuItem userColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem buriedColour;
- protected JRadioButtonMenuItem viewerColour = new JRadioButtonMenuItem();
+ protected JRadioButtonMenuItem nucleotideColour;
- protected JMenuItem helpItem = new JMenuItem();
+ protected JRadioButtonMenuItem purinePyrimidineColour;
- /**
- * list of sequenceSet ids associated with the view
- */
- protected ArrayList<String> _aps = new ArrayList<String>();
+ protected JRadioButtonMenuItem userColour;
- /**
- * list of alignment panels to use for superposition
- */
- protected Vector<AlignmentPanel> _alignwith = new Vector<AlignmentPanel>();
+ protected JRadioButtonMenuItem viewerColour;
- /**
- * list of alignment panels that are used for colouring structures by aligned
- * sequences
- */
- protected Vector<AlignmentPanel> _colourwith = new Vector<AlignmentPanel>();
+ protected JMenuItem helpItem;
+
+ protected JLabel statusBar;
- private String viewId = null;
+ protected JPanel statusPanel;
/**
* Constructor
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"));
pdbFile.setText(MessageManager.getString("label.pdb_file"));
pdbFile.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
pdbFile_actionPerformed(actionEvent);
png.setText("PNG");
png.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
png_actionPerformed(actionEvent);
eps.setText("EPS");
eps.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
eps_actionPerformed(actionEvent);
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"));
- JMenu colourMenu = new JMenu();
+ 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("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 = new JRadioButtonMenuItem();
zappoColour.setText(MessageManager.getString("label.zappo"));
zappoColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
zappoColour_actionPerformed(actionEvent);
}
});
+ taylorColour = new JRadioButtonMenuItem();
taylorColour.setText(MessageManager.getString("label.taylor"));
taylorColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
taylorColour_actionPerformed(actionEvent);
}
});
+ hydroColour = new JRadioButtonMenuItem();
hydroColour.setText(MessageManager.getString("label.hydrophobicity"));
hydroColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
hydroColour_actionPerformed(actionEvent);
}
});
+ strandColour = new JRadioButtonMenuItem();
strandColour.setText(MessageManager
.getString("label.strand_propensity"));
strandColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
strandColour_actionPerformed(actionEvent);
}
});
+ helixColour = new JRadioButtonMenuItem();
helixColour.setText(MessageManager.getString("label.helix_propensity"));
helixColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
helixColour_actionPerformed(actionEvent);
}
});
+ turnColour = new JRadioButtonMenuItem();
turnColour.setText(MessageManager.getString("label.turn_propensity"));
turnColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
turnColour_actionPerformed(actionEvent);
}
});
+ buriedColour = new JRadioButtonMenuItem();
buriedColour.setText(MessageManager.getString("label.buried_index"));
buriedColour.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent actionEvent)
{
buriedColour_actionPerformed(actionEvent);
}
});
+ nucleotideColour = new JRadioButtonMenuItem();
+ nucleotideColour.setText(MessageManager.getString("label.nucleotide"));
+ nucleotideColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent actionEvent)
+ {
+ nucleotideColour_actionPerformed(actionEvent);
+ }
+ });
+ purinePyrimidineColour = new JRadioButtonMenuItem();
purinePyrimidineColour.setText(MessageManager
.getString("label.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"));
.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);
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);
- ButtonGroup colourButtons = new ButtonGroup();
-
colourButtons.add(seqColour);
colourButtons.add(chainColour);
colourButtons.add(chargeColour);
colourButtons.add(strandColour);
colourButtons.add(turnColour);
colourButtons.add(buriedColour);
+ colourButtons.add(purinePyrimidineColour);
colourButtons.add(userColour);
colourButtons.add(viewerColour);
+ }
- helpMenu.add(helpItem);
- viewerActionMenu.add(alignStructs);
+ protected void fitToWindow_actionPerformed()
+ {
+ }
+
+ protected void highlightSelection_actionPerformed()
+ {
}
protected void viewerColour_actionPerformed(ActionEvent actionEvent)
}
+ public void nucleotideColour_actionPerformed(ActionEvent actionEvent)
+ {
+
+ }
+
public void purinePyrimidineColour_actionPerformed(ActionEvent actionEvent)
{
// 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;
- }
}