/*
* 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;
}
}