X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPopupMenu.java;h=2bf5933153e75aef0e7c6bb5ea6891c9d0cec41e;hb=c19d2a91ca05e052e3408bf5852d88eb5d0608f1;hp=2ba442782495212d2079ff20a51e70eea12d9119;hpb=7aef14d879f7bfb8af464a6b7700a99413eab0c6;p=jalview.git diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java index 2ba4427..2bf5933 100644 --- a/src/jalview/gui/PopupMenu.java +++ b/src/jalview/gui/PopupMenu.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) - * Copyright (C) $$Year-Rel$$ The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * @@ -20,27 +20,6 @@ */ package jalview.gui; -import java.awt.Color; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.Arrays; -import java.util.Collections; -import java.util.Hashtable; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; -import java.util.Vector; - -import javax.swing.ButtonGroup; -import javax.swing.JCheckBoxMenuItem; -import javax.swing.JColorChooser; -import javax.swing.JMenu; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.JPopupMenu; -import javax.swing.JRadioButtonMenuItem; - import jalview.analysis.AAFrequency; import jalview.analysis.AlignmentAnnotationUtils; import jalview.analysis.AlignmentUtils; @@ -80,6 +59,27 @@ import jalview.util.GroupUrlLink.UrlStringTooLongException; import jalview.util.MessageManager; import jalview.util.UrlLink; +import java.awt.Color; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Arrays; +import java.util.Collections; +import java.util.Hashtable; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.Vector; + +import javax.swing.ButtonGroup; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JColorChooser; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPopupMenu; +import javax.swing.JRadioButtonMenuItem; + /** * DOCUMENT ME! * @@ -137,7 +137,7 @@ public class PopupMenu extends JPopupMenu JMenuItem sequenceDetails = new JMenuItem(); JMenuItem sequenceSelDetails = new JMenuItem(); - + JMenuItem makeReferenceSeq = new JMenuItem(); JMenuItem chooseAnnotations = new JMenuItem(); @@ -204,7 +204,7 @@ public class PopupMenu extends JPopupMenu JMenu jMenu1 = new JMenu(); - JMenuItem proteinStructureMenu = new JMenuItem(); + JMenuItem pdbStructureDialog = new JMenuItem(); JMenu rnaStructureMenu = new JMenu(); @@ -317,9 +317,13 @@ public class PopupMenu extends JPopupMenu sequenceMenu.setText(sequence.getName()); if (seq == ap.av.getAlignment().getSeqrep()) { - makeReferenceSeq.setText("Unmark representative"); - } else { - makeReferenceSeq.setText("Mark as representative"); + makeReferenceSeq.setText(MessageManager + .getString("action.unmark_as_reference")); + } + else + { + makeReferenceSeq.setText(MessageManager + .getString("action.set_as_reference")); } if (!ap.av.getAlignment().isNucleotide()) @@ -328,6 +332,7 @@ public class PopupMenu extends JPopupMenu } else { + int origCount = rnaStructureMenu.getItemCount(); /* * add menu items to 2D-render any alignment or sequence secondary * structure annotation @@ -343,17 +348,16 @@ public class PopupMenu extends JPopupMenu /* * valid alignment RNA secondary structure annotation */ - final String structureLine = aa.label + " (alignment)"; menuItem = new JMenuItem(); menuItem.setText(MessageManager.formatMessage( - "label.2d_rna_structure_line", new Object[] - { structureLine })); + "label.2d_rna_structure_line", + new Object[] { aa.label })); menuItem.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(ActionEvent e) { - new AppVarna(structureLine, seq, aa, ap); + new AppVarna(seq, aa, ap); } }); rnaStructureMenu.add(menuItem); @@ -361,7 +365,6 @@ public class PopupMenu extends JPopupMenu } } - if (seq.getAnnotation() != null) { AlignmentAnnotation seqAnns[] = seq.getAnnotation(); @@ -375,23 +378,25 @@ public class PopupMenu extends JPopupMenu // TODO: make rnastrucF a bit more nice menuItem = new JMenuItem(); menuItem.setText(MessageManager.formatMessage( - "label.2d_rna_sequence_name", new Object[] - { seq.getName() })); + "label.2d_rna_sequence_name", + new Object[] { seq.getName() })); menuItem.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO: VARNA does'nt print gaps in the sequence - - new AppVarna(seq.getName() + " structure", seq, aa, - ap); + new AppVarna(seq, aa, ap); } }); rnaStructureMenu.add(menuItem); } } } + if (rnaStructureMenu.getItemCount() == origCount) + { + remove(rnaStructureMenu); + } } menuItem = new JMenuItem( @@ -410,8 +415,8 @@ public class PopupMenu extends JPopupMenu && ap.av.getSelectionGroup().getSize() > 1) { menuItem = new JMenuItem(MessageManager.formatMessage( - "label.represent_group_with", new Object[] - { seq.getName() })); + "label.represent_group_with", + new Object[] { seq.getName() })); menuItem.addActionListener(new java.awt.event.ActionListener() { @Override @@ -479,8 +484,7 @@ public class PopupMenu extends JPopupMenu if (sg != null && sg.getSize() > 0) { groupName.setText(MessageManager.formatMessage("label.name_param", - new Object[] - { sg.getName() })); + new Object[] { sg.getName() })); groupName.setText(MessageManager .getString("label.edit_name_and_description_current_group")); @@ -560,7 +564,7 @@ public class PopupMenu extends JPopupMenu SequenceI sqass = null; for (SequenceI sq : ap.av.getSequenceSelection()) { - Vector pes = sq.getDatasetSequence().getPDBId(); + Vector pes = sq.getDatasetSequence().getAllPDBEntries(); if (pes != null && pes.size() > 0) { reppdb.put(pes.get(0).getId(), pes.get(0)); @@ -604,7 +608,7 @@ public class PopupMenu extends JPopupMenu if (seq == null) { sequenceMenu.setVisible(false); - proteinStructureMenu.setVisible(false); + pdbStructureDialog.setVisible(false); rnaStructureMenu.setVisible(false); } @@ -638,8 +642,7 @@ public class PopupMenu extends JPopupMenu // collect matching db-refs DBRefEntry[] dbr = jalview.util.DBRefUtils.selectRefs( - seq.getDBRef(), new String[] - { urlLink.getTarget() }); + seq.getDBRef(), new String[] { urlLink.getTarget() }); // collect id string too String id = seq.getName(); String descr = seq.getDescription(); @@ -770,17 +773,15 @@ public class PopupMenu extends JPopupMenu */ Map>> shownTypes = new LinkedHashMap>>(); Map>> hiddenTypes = new LinkedHashMap>>(); - AlignmentAnnotationUtils.getShownHiddenTypes(shownTypes, - hiddenTypes, - AlignmentAnnotationUtils.asList(annotations), - forSequences); + AlignmentAnnotationUtils.getShownHiddenTypes(shownTypes, hiddenTypes, + AlignmentAnnotationUtils.asList(annotations), forSequences); for (String calcId : hiddenTypes.keySet()) { for (List type : hiddenTypes.get(calcId)) { - addAnnotationTypeToShowHide(showMenu, forSequences, - calcId, type, false, true); + addAnnotationTypeToShowHide(showMenu, forSequences, calcId, type, + false, true); } } // grey out 'show annotations' if none are hidden @@ -790,8 +791,8 @@ public class PopupMenu extends JPopupMenu { for (List type : shownTypes.get(calcId)) { - addAnnotationTypeToShowHide(hideMenu, forSequences, - calcId, type, false, false); + addAnnotationTypeToShowHide(hideMenu, forSequences, calcId, type, + false, false); } } // grey out 'hide annotations' if none are shown @@ -852,8 +853,8 @@ public class PopupMenu extends JPopupMenu @Override public void actionPerformed(ActionEvent e) { - AlignmentUtils.showOrHideSequenceAnnotations(ap.getAlignment(), types, - forSequences, allTypes, actionIsShow); + AlignmentUtils.showOrHideSequenceAnnotations(ap.getAlignment(), + types, forSequences, allTypes, actionIsShow); refresh(); } }); @@ -869,8 +870,8 @@ public class PopupMenu extends JPopupMenu // ID/regex match URLs groupLinksMenu = new JMenu( MessageManager.getString("action.group_link")); - JMenu[] linkMenus = new JMenu[] - { null, new JMenu(MessageManager.getString("action.ids")), + JMenu[] linkMenus = new JMenu[] { null, + new JMenu(MessageManager.getString("action.ids")), new JMenu(MessageManager.getString("action.sequences")), new JMenu(MessageManager.getString("action.ids_sequences")) }; // three // types @@ -905,8 +906,7 @@ public class PopupMenu extends JPopupMenu if (sarray == null) { sarray = new Object[2]; - sarray[0] = new int[] - { 0 }; + sarray[0] = new int[] { 0 }; sarray[1] = new String[seqs.length]; commonDbrefs.put(src, sarray); @@ -1026,8 +1026,7 @@ public class PopupMenu extends JPopupMenu { JMenuItem item = new JMenuItem(label); item.setToolTipText(MessageManager.formatMessage( - "label.open_url_param", new Object[] - { url })); + "label.open_url_param", new Object[] { url })); item.addActionListener(new java.awt.event.ActionListener() { @Override @@ -1066,8 +1065,7 @@ public class PopupMenu extends JPopupMenu JMenuItem item = new JMenuItem(label); item.setToolTipText(MessageManager.formatMessage( "label.open_url_seqs_param", - new Object[] - { urlgenerator.getUrl_prefix(), + new Object[] { urlgenerator.getUrl_prefix(), urlgenerator.getNumberInvolved(urlstub) })); // TODO: put in info about what is being sent. item.addActionListener(new java.awt.event.ActionListener() @@ -1127,7 +1125,7 @@ public class PopupMenu extends JPopupMenu } }); chooseAnnotations.setText(MessageManager - .getString("label.choose_annotations") + "..."); + .getString("action.choose_annotations")); chooseAnnotations.addActionListener(new java.awt.event.ActionListener() { @Override @@ -1137,7 +1135,7 @@ public class PopupMenu extends JPopupMenu } }); sequenceDetails.setText(MessageManager - .getString("label.sequence_details") + "..."); + .getString("label.sequence_details")); sequenceDetails.addActionListener(new java.awt.event.ActionListener() { @Override @@ -1147,7 +1145,7 @@ public class PopupMenu extends JPopupMenu } }); sequenceSelDetails.setText(MessageManager - .getString("label.sequence_details") + "..."); + .getString("label.sequence_details")); sequenceSelDetails .addActionListener(new java.awt.event.ActionListener() { @@ -1346,15 +1344,14 @@ public class PopupMenu extends JPopupMenu } }); jMenu1.setText(MessageManager.getString("label.group")); - proteinStructureMenu.setText(MessageManager - .getString("label.view_protein_structure")); - proteinStructureMenu.addActionListener(new ActionListener() + pdbStructureDialog.setText(MessageManager + .getString("label.show_pdbstruct_dialog")); + pdbStructureDialog.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { - SequenceI[] selectedSeqs = new SequenceI[] - { sequence }; + SequenceI[] selectedSeqs = new SequenceI[] { sequence }; if (ap.av.getSelectionGroup() != null) { selectedSeqs = ap.av.getSequenceSelection(); @@ -1381,15 +1378,16 @@ public class PopupMenu extends JPopupMenu .getString("label.mark_as_representative")); makeReferenceSeq.addActionListener(new ActionListener() { - + @Override public void actionPerformed(ActionEvent actionEvent) { makeReferenceSeq_actionPerformed(actionEvent); - + } }); - hideInsertions.setText(MessageManager.getString("label.hide_insertions")); + hideInsertions.setText(MessageManager + .getString("label.hide_insertions")); hideInsertions.addActionListener(new ActionListener() { @@ -1409,8 +1407,8 @@ public class PopupMenu extends JPopupMenu add(groupMenu); add(sequenceMenu); add(rnaStructureMenu); - add(proteinStructureMenu); - if (sequence!=null) + add(pdbStructureDialog); + if (sequence != null) { add(hideInsertions); } @@ -1668,8 +1666,8 @@ public class PopupMenu extends JPopupMenu * @param menuItem * @param forSequences */ - protected void configureReferenceAnnotationsMenu( - JMenuItem menuItem, List forSequences) + protected void configureReferenceAnnotationsMenu(JMenuItem menuItem, + List forSequences) { menuItem.setEnabled(false); @@ -1765,6 +1763,7 @@ public class PopupMenu extends JPopupMenu } refresh(); } + protected void sequenceSelectionDetails_actionPerformed() { createSequenceDetailsReport(ap.av.getSequenceSelection()); @@ -1772,8 +1771,7 @@ public class PopupMenu extends JPopupMenu protected void sequenceDetails_actionPerformed() { - createSequenceDetailsReport(new SequenceI[] - { sequence }); + createSequenceDetailsReport(new SequenceI[] { sequence }); } public void createSequenceDetailsReport(SequenceI[] sequences) @@ -1786,8 +1784,8 @@ public class PopupMenu extends JPopupMenu + MessageManager .formatMessage( "label.create_sequence_details_report_annotation_for", - new Object[] - { seq.getDisplayId(true) }) + "

"); + new Object[] { seq.getDisplayId(true) }) + + "

"); new SequenceAnnotationReport(null) .createSequenceAnnotationReport( contents, @@ -1796,8 +1794,7 @@ public class PopupMenu extends JPopupMenu true, false, (ap.getSeqPanel().seqCanvas.fr != null) ? ap - .getSeqPanel().seqCanvas.fr - .getMinMax() + .getSeqPanel().seqCanvas.fr.getMinMax() : null); contents.append("

"); } @@ -1805,9 +1802,9 @@ public class PopupMenu extends JPopupMenu Desktop.addInternalFrame(cap, MessageManager.formatMessage( "label.sequence_details_for", - (sequences.length == 1 ? new Object[] - { sequences[0].getDisplayId(true) } : new Object[] - { MessageManager.getString("label.selection") })), 500, 400); + (sequences.length == 1 ? new Object[] { sequences[0] + .getDisplayId(true) } : new Object[] { MessageManager + .getString("label.selection") })), 500, 400); } @@ -2313,8 +2310,7 @@ public class PopupMenu extends JPopupMenu SequenceGroup sg = ap.av.getSelectionGroup(); if (sg == null || sg.getSize() < 1) { - ap.av.hideSequence(new SequenceI[] - { sequence }); + ap.av.hideSequence(new SequenceI[] { sequence }); return; } @@ -2353,8 +2349,7 @@ public class PopupMenu extends JPopupMenu if (sg != null) { List startEnd = ap.av.getVisibleRegionBoundaries( - sg.getStartRes(), - sg.getEndRes() + 1); + sg.getStartRes(), sg.getEndRes() + 1); String description; int caseChange; @@ -2392,8 +2387,8 @@ public class PopupMenu extends JPopupMenu CutAndPasteTransfer cap = new CutAndPasteTransfer(); cap.setForInput(null); Desktop.addInternalFrame(cap, MessageManager.formatMessage( - "label.alignment_output_command", new Object[] - { e.getActionCommand() }), 600, 500); + "label.alignment_output_command", + new Object[] { e.getActionCommand() }), 600, 500); String[] omitHidden = null; @@ -2401,8 +2396,8 @@ public class PopupMenu extends JPopupMenu // or we simply trust the user wants // wysiwig behaviour - cap.setText(new FormatAdapter().formatSequences(e.getActionCommand(), - ap.av, true)); + cap.setText(new FormatAdapter(ap).formatSequences(e.getActionCommand(), + ap, true)); } public void pdbFromFile_actionPerformed() @@ -2411,11 +2406,11 @@ public class PopupMenu extends JPopupMenu jalview.bin.Cache.getProperty("LAST_DIRECTORY")); chooser.setFileView(new jalview.io.JalviewFileView()); chooser.setDialogTitle(MessageManager.formatMessage( - "label.select_pdb_file_for", new Object[] - { sequence.getDisplayId(false) })); + "label.select_pdb_file_for", + new Object[] { sequence.getDisplayId(false) })); chooser.setToolTipText(MessageManager.formatMessage( - "label.load_pdb_file_associate_with_sequence", new Object[] - { sequence.getDisplayId(false) })); + "label.load_pdb_file_associate_with_sequence", + new Object[] { sequence.getDisplayId(false) })); int value = chooser.showOpenDialog(null); @@ -2430,7 +2425,6 @@ public class PopupMenu extends JPopupMenu } - public void enterPDB_actionPerformed() { String id = JOptionPane.showInternalInputDialog(Desktop.desktop,