package aliview.gui;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JSeparator;
import aliview.AliViewWindow;
public class AlignmentPopupMenu extends JPopupMenu implements MouseListener {
private AliViewWindow aliViewWin;
private AliViewJMenuBar aliViewMenuBar;
private MouseEvent mouseActivationEvent;
public AlignmentPopupMenu(final AliViewWindow aliViewWin, final AliViewJMenuBar aliViewMenuBar){
this.aliViewWin = aliViewWin;
this.aliViewMenuBar = aliViewMenuBar;
JMenuItem setTraceSeq = new JMenuItem("Set this sequence as template when Highlighting difference");
setTraceSeq.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
aliViewWin.setDifferenceTraceSequence(mouseActivationEvent.getPoint());
}
});
add(setTraceSeq);
add(new JSeparator());
JMenuItem copyItem = new JMenuItem("Copy (as fasta)");
copyItem.setModel(aliViewMenuBar.getCopyAsFastaButtonModel());
add(copyItem);
JMenuItem copyNucItem = new JMenuItem("Copy (the characters only)");
copyNucItem.setModel(aliViewMenuBar.getCopyAsCharactersButtonModel());
add(copyNucItem);
JMenuItem copyNameItem = new JMenuItem("Copy name(s) only");
copyNameItem.setModel(aliViewMenuBar.getCopyNameButtonModel());
add(copyNameItem);
JMenuItem pasteItem = new JMenuItem("Paste sequence(s) from clipboard");
pasteItem.setModel(aliViewMenuBar.getPasteAsFastaButtonModel());
add(pasteItem);
JMenuItem addEmptyItem = new JMenuItem("Add new empty sequence");
addEmptyItem.setModel(aliViewMenuBar.getAddNewSequenceButtonModel());
add(addEmptyItem);
add(new JSeparator());
JMenuItem renameItem = new JMenuItem("Rename sequence");
renameItem.setModel(aliViewMenuBar.getRenameButtonModel());
add(renameItem);
add(new JSeparator());
JMenuItem alignBlock = new JMenuItem("Realign selected block");
alignBlock.setModel(aliViewMenuBar.getRealignSelectedBlock());
add(alignBlock);
JMenuItem alignSelectedSeq = new JMenuItem("Realign selected sequence(s)");
alignSelectedSeq.setModel(aliViewMenuBar.getRealignSelectedSequences());
add(alignSelectedSeq);
//add(new JSeparator());
/*
JMenuItem renameSeqItem = new JMenuItem("Rename sequence");
renameSeqItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
TextEditDialog editDialog = new TextEditDialog();
editDialog.showOKCancelTextEditor("this is seq", TextEditDialog.EDIT_SEQUENCE_NAME, aliViewWindow);
logger.info("done");
}
});
add(renameSeqItem);
*/
}
/*
*
* The mouse listener
*
*/
public void mousePressed(MouseEvent e){
if (e.isPopupTrigger())
showPopupMenu(e);
}
public void mouseReleased(MouseEvent e){
if (e.isPopupTrigger())
showPopupMenu(e);
}
private void showPopupMenu(MouseEvent e){
mouseActivationEvent = e;
this.show(e.getComponent(), e.getX(), e.getY());
}
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}