/*
* 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.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.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
{
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.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(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"));
viewerColour.setToolTipText(MessageManager
.getString("label.let_jmol_manage_structure_colours"));
viewerColour.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent actionEvent)
{
viewerColour_actionPerformed(actionEvent);
}
});
/*
* add colour buttons to a group so their selection
* is mutually exclusive
*/
ButtonGroup colourButtons = new ButtonGroup();
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);
/*
* 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(viewerColour);
colourMenu.add(backGround);
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(purinePyrimidineColour);
colourButtons.add(userColour);
colourButtons.add(viewerColour);
}
protected void fitToWindow_actionPerformed()
{
}
protected void highlightSelection_actionPerformed()
{
}
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 nucleotideColour_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;
// }
}