package jalview.jbgui;
import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
+import jalview.analysis.GeneticCodeI;
+import jalview.analysis.GeneticCodes;
import jalview.api.SplitContainerI;
import jalview.bin.Cache;
import jalview.gui.JvSwingUtils;
import jalview.gui.Preferences;
import jalview.io.FileFormats;
+import jalview.schemes.ResidueColourScheme;
import jalview.util.MessageManager;
import jalview.util.Platform;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
-import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
+@SuppressWarnings("serial")
public class GAlignFrame extends JInternalFrame
{
protected JMenuBar alignFrameMenuBar = new JMenuBar();
protected JMenuItem closeMenuItem = new JMenuItem();
- protected JMenu webService = new JMenu();
+ public JMenu webService = new JMenu();// BH 2019 was protected, but not
+ // sufficient for AlignFrame thread run
- protected JMenuItem webServiceNoServices;
+ public JMenuItem webServiceNoServices;// BH 2019 was protected, but not
+ // sufficient for AlignFrame thread run
protected JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem();
protected JMenu sortByAnnotScore = new JMenu();
- public JLabel statusBar = new JLabel();
+ public JLabel statusBar = new JLabel(); // BH 2019 was protected, but not
+ // sufficient for
+ // AlignFrame.printWriter
protected JMenu outputTextboxMenu = new JMenu();
protected JMenuItem modifyPID;
- protected JMenuItem annotationColour;
+ protected JRadioButtonMenuItem annotationColour;
protected JMenu sortByTreeMenu = new JMenu();
protected JCheckBoxMenuItem showDbRefsMenuitem = new JCheckBoxMenuItem();
- protected JMenuItem showTranslation = new JMenuItem();
+ protected JMenu showTranslation = new JMenu();
protected JMenuItem showReverse = new JMenuItem();
protected JCheckBoxMenuItem hiddenMarkers = new JCheckBoxMenuItem();
- protected JTabbedPane tabbedPane = jalview.jbgui.GDesktop.createTabbedPane();
+ protected JTabbedPane tabbedPane = new JTabbedPane();
protected JMenuItem reload = new JMenuItem();
protected JCheckBoxMenuItem normaliseSequenceLogo = new JCheckBoxMenuItem();
protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem();
-
+
protected JMenuItem openFeatureSettings;
private SequenceAnnotationOrder annotationSortOrder;
private boolean showAutoCalculatedAbove = false;
- private Map<KeyStroke, JMenuItem> accelerators = new HashMap<KeyStroke, JMenuItem>();
+ private Map<KeyStroke, JMenuItem> accelerators = new HashMap<>();
private SplitContainerI splitFrame;
{
try
{
+
+ // for Web-page embedding using id=align-frame-div
+ setName("jalview-alignment");
+
jbInit();
setJMenuBar(alignFrameMenuBar);
// FIXME getDefaultToolkit throws an exception in Headless mode
KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
- | KeyEvent.SHIFT_MASK,
+ jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+ | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
false);
addMenuActionAndAccelerator(keyStroke, saveAs, al);
closeMenuItem.setText(MessageManager.getString("action.close"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem selectAllSequenceMenuItem = new JMenuItem(
MessageManager.getString("action.select_all"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem invertSequenceMenuItem = new JMenuItem(
MessageManager.getString("action.invert_sequence_selection"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem remove2LeftMenuItem = new JMenuItem(
MessageManager.getString("action.remove_left"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem remove2RightMenuItem = new JMenuItem(
MessageManager.getString("action.remove_right"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem removeGappedColumnMenuItem = new JMenuItem(
MessageManager.getString("action.remove_empty_columns"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem removeAllGapsMenuItem = new JMenuItem(
MessageManager.getString("action.remove_all_gaps"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
- | KeyEvent.SHIFT_MASK,
+ jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+ | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
false);
al = new ActionListener()
{
JMenuItem removeRedundancyMenuItem = new JMenuItem(
MessageManager.getString("action.remove_redundancy"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
undoMenuItem.setEnabled(false);
undoMenuItem.setText(MessageManager.getString("action.undo"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
redoMenuItem.setEnabled(false);
redoMenuItem.setText(MessageManager.getString("action.redo"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem printMenuItem = new JMenuItem(
MessageManager.getString("action.print"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem findMenuItem = new JMenuItem(
MessageManager.getString("action.find"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true,
MessageManager.getString("label.find_tip")));
al = new ActionListener()
JMenuItem deleteGroups = new JMenuItem(
MessageManager.getString("action.undefine_groups"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem createGroup = new JMenuItem(
MessageManager.getString("action.create_group"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem unGroup = new JMenuItem(
MessageManager.getString("action.remove_group"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
- | KeyEvent.SHIFT_MASK,
+ jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+ | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
false);
al = new ActionListener()
{
copy.setText(MessageManager.getString("action.copy"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
cut.setText(MessageManager.getString("action.cut"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem pasteNew = new JMenuItem(
MessageManager.getString("label.to_new_alignment"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
- | KeyEvent.SHIFT_MASK,
+ jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+ | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
false);
al = new ActionListener()
{
JMenuItem pasteThis = new JMenuItem(
MessageManager.getString("label.to_this_alignment"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
});
seqLimits.setText(
MessageManager.getString("label.show_sequence_limits"));
- seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true));
+ seqLimits.setState(Cache.getDefault("SHOW_JVSUFFIX", true));
seqLimits.addActionListener(new ActionListener()
{
@Override
}
});
- JMenuItem loadTreeMenuItem = new JMenuItem(
- MessageManager.getString("label.load_associated_tree"));
- loadTreeMenuItem.setActionCommand(
- MessageManager.getString("label.load_tree_for_sequence_set"));
- loadTreeMenuItem.addActionListener(new ActionListener()
+ JMenuItem loadTreeFile = new JMenuItem(
+ MessageManager.getString("label.from_file"));
+
+ loadTreeFile.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
}
});
+ JMenuItem loadTreeUrl = new JMenuItem(
+ MessageManager.getString("label.from_url"));
+ loadTreeUrl.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ loadTreeUrlItem_actionPerformed(e);
+ }
+ });
+
+
+
+ JMenuItem loadTreeBaseStudy = new JMenuItem(
+ MessageManager.getString("label.treebase_study"));
+ loadTreeBaseStudy.addActionListener(new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ loadTreeBaseStudy_actionPerformed(e);
+
+ } });
+
+
+
+ JMenuItem loadTreeBase = new JMenuItem(
+ MessageManager.getString("label.treebase"));
+ loadTreeBase.addActionListener(new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ loadTreeBase_actionPerformed(e);
+
+ }
+
+
+ });
+ JMenuItem loadTreePfam = new JMenuItem(
+ MessageManager.getString("label.pfam"));
+ loadTreePfam.addActionListener(new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ loadTreePfam_actionPerformed(e);
+
+ }
+
+ });
+ JMenuItem loadTreeFam = new JMenuItem(
+ MessageManager.getString("label.treefam"));
+ loadTreeFam.addActionListener(new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ loadTreeFam_actionPerformed(e);
+
+ }
+
+ });
+
+ JMenuItem loadTreeOfLife = new JMenuItem(
+ MessageManager.getString("label.tree_of_life"));
+ loadTreeOfLife.addActionListener(new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ loadTreeOfLife_actionPerformed(e);
+
+ }
+
+
+ });
+
scaleAbove.setVisible(false);
scaleAbove.setText(MessageManager.getString("action.scale_above"));
scaleAbove.addActionListener(new ActionListener()
.setText(MessageManager.getString("action.calculate_tree_pca"));
padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps"));
- padGapsMenuitem
- .setState(jalview.bin.Cache.getDefault("PAD_GAPS", false));
+ padGapsMenuitem.setState(Cache.getDefault("PAD_GAPS", false));
padGapsMenuitem.addActionListener(new ActionListener()
{
@Override
vamsasStore_actionPerformed(e);
}
});
+
+ /*
+ * Translate as cDNA with sub-menu of translation tables
+ */
showTranslation
.setText(MessageManager.getString("label.translate_cDNA"));
- showTranslation.addActionListener(new ActionListener()
+ boolean first = true;
+ for (final GeneticCodeI table : GeneticCodes.getInstance()
+ .getCodeTables())
{
- @Override
- public void actionPerformed(ActionEvent e)
+ JMenuItem item = new JMenuItem(table.getId() + " " + table.getName());
+ showTranslation.add(item);
+ item.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ showTranslation_actionPerformed(table);
+ }
+ });
+ if (first)
{
- showTranslation_actionPerformed(e);
+ showTranslation.addSeparator();
}
- });
+ first = false;
+ }
+
showReverse.setText(MessageManager.getString("label.reverse"));
showReverse.addActionListener(new ActionListener()
{
associatedData_actionPerformed(e);
}
});
- loadVcf = new JMenuItem(MessageManager.getString("label.load_vcf_file"));
+ loadVcf = new JMenuItem(
+ MessageManager.getString("label.load_vcf_file"));
loadVcf.setToolTipText(MessageManager.getString("label.load_vcf"));
loadVcf.addActionListener(new ActionListener()
{
});
autoCalculate.setText(
MessageManager.getString("label.autocalculate_consensus"));
- autoCalculate.setState(
- jalview.bin.Cache.getDefault("AUTO_CALC_CONSENSUS", true));
+ autoCalculate.setState(Cache.getDefault("AUTO_CALC_CONSENSUS", true));
autoCalculate.addActionListener(new ActionListener()
{
@Override
MessageManager.getString("label.sort_alignment_new_tree"));
sortByTree.setToolTipText("<html>" + MessageManager.getString(
"label.enable_automatically_sort_alignment_when_open_new_tree"));
- sortByTree
- .setState(jalview.bin.Cache.getDefault("SORT_BY_TREE", false));
+ sortByTree.setState(Cache.getDefault("SORT_BY_TREE", false));
sortByTree.addActionListener(new ActionListener()
{
@Override
JMenuItem invertColSel = new JMenuItem(
MessageManager.getString("action.invert_column_selection"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
- | KeyEvent.ALT_MASK,
+ jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+ | jalview.util.ShortcutKeyMaskExWrapper.ALT_DOWN_MASK,
false);
al = new ActionListener()
{
JMenuItem save = new JMenuItem(MessageManager.getString("action.save"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenuItem newView = new JMenuItem(
MessageManager.getString("action.new_view"));
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T,
- Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+ jalview.util.ShortcutKeyMaskExWrapper
+ .getMenuShortcutKeyMaskEx(),
+ false);
al = new ActionListener()
{
@Override
JMenu exportImageMenu = new JMenu(
MessageManager.getString("label.export_image"));
+
+ JMenu loadTreeDb = new JMenu(
+ MessageManager.getString("label.from_database"));
+
+ JMenu loadTreeMenu = new JMenu(
+ MessageManager.getString("label.load_associated_tree"));
+ // loadTreeMenu.setToolTipText(
+ // MessageManager.getString("label.load_tree_for_sequence_set"));
+
JMenu fileMenu = new JMenu(MessageManager.getString("action.file"));
+
+ loadTreeDb.add(loadTreeBaseStudy);
+ loadTreeDb.add(loadTreeBase);
+ loadTreeDb.add(loadTreePfam);
+ loadTreeDb.add(loadTreeFam);
+ loadTreeDb.add(loadTreeOfLife);
+
+ loadTreeMenu.add(loadTreeFile);
+ loadTreeMenu.add(loadTreeUrl);
+ loadTreeMenu.add(loadTreeDb);
+
alignFrameMenuBar.add(fileMenu);
alignFrameMenuBar.add(editMenu);
alignFrameMenuBar.add(selectMenu);
fileMenu.add(exportImageMenu);
fileMenu.add(exportFeatures);
fileMenu.add(exportAnnotations);
- fileMenu.add(loadTreeMenuItem);
+ fileMenu.add(loadTreeMenu);
fileMenu.add(associatedData);
if (!Platform.isJS())
{
// JAL-574
// selectMenu.addSeparator();
// selectMenu.add(listenToViewSelections);
+
+
+ }
+
+ protected void loadTreeOfLife_actionPerformed(ActionEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ protected void loadTreeFam_actionPerformed(ActionEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ protected void loadTreePfam_actionPerformed(ActionEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ protected void loadTreeBase_actionPerformed(ActionEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ protected void loadTreeBaseStudy_actionPerformed(ActionEvent e)
+ {
+ // TODO Auto-generated method stub
+
}
protected void loadVcf_actionPerformed()
}
});
- annotationColour = new JMenuItem(
+ annotationColour = new JRadioButtonMenuItem(
MessageManager.getString("action.by_annotation"));
+ annotationColour.setName(ResidueColourScheme.ANNOTATION_COLOUR);
annotationColour.addActionListener(new ActionListener()
{
@Override
}
+ protected void loadTreeUrlItem_actionPerformed(ActionEvent e)
+ {
+
+ }
+
+
+
/**
* Template method to handle the 'load T-Coffee scores' menu event.
* <p>
}
- public void showTranslation_actionPerformed(ActionEvent e)
+ public void showTranslation_actionPerformed(GeneticCodeI codeTable)
{
}