X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPopupMenu.java;h=fee47e555e5181dcaaa51741f26f54d3af5dd75b;hb=2447e0f9b158c45152803a91e3e17866bd676d4f;hp=1263b712e6395c2568e7331c63e8b5f0c81e51d6;hpb=be32c14cd8e48fe0a207cd7030cb9cd46f894678;p=jalview.git
diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java
index 1263b71..fee47e5 100644
--- a/src/jalview/gui/PopupMenu.java
+++ b/src/jalview/gui/PopupMenu.java
@@ -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,9 +204,9 @@ public class PopupMenu extends JPopupMenu
JMenu jMenu1 = new JMenu();
- JMenuItem structureMenu = new JMenuItem();
+ JMenuItem pdbStructureDialog = new JMenuItem();
- JMenu viewStructureMenu = new JMenu();
+ JMenu rnaStructureMenu = new JMenu();
JMenuItem editSequence = new JMenuItem();
@@ -317,115 +317,86 @@ 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"));
}
-
- if (seq.getDatasetSequence().getPDBId() != null
- && seq.getDatasetSequence().getPDBId().size() > 0)
+ else
{
- java.util.Enumeration e = seq.getDatasetSequence().getPDBId()
- .elements();
-
- while (e.hasMoreElements())
- {
- final PDBEntry pdb = (PDBEntry) e.nextElement();
-
- menuItem = new JMenuItem();
- menuItem.setText(pdb.getId());
- menuItem.addActionListener(new ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- // TODO re JAL-860: optionally open dialog or provide a menu entry
- // allowing user to open just one structure per sequence
- // new AppJmol(pdb, ap.av.collateForPDB(new PDBEntry[]
- // { pdb })[0], null, ap);
- new StructureViewer(ap.getStructureSelectionManager())
- .viewStructures(pdb,
- ap.av.collateForPDB(new PDBEntry[]
- { pdb })[0], null, ap);
- }
- });
- viewStructureMenu.add(menuItem);
-
- /*
- * menuItem = new JMenuItem(); menuItem.setText(pdb.getId());
- * menuItem.addActionListener(new java.awt.event.ActionListener() {
- * public void actionPerformed(ActionEvent e) {
- * colourByStructure(pdb.getId()); } });
- * colStructureMenu.add(menuItem);
- */
- }
+ makeReferenceSeq.setText(MessageManager
+ .getString("action.set_as_reference"));
}
- else
+
+ if (!ap.av.getAlignment().isNucleotide())
{
- if (ap.av.getAlignment().isNucleotide() == false)
- {
- structureMenu.remove(viewStructureMenu);
- }
+ remove(rnaStructureMenu);
}
- if (ap.av.getAlignment().isNucleotide() == true)
+ else
{
- AlignmentAnnotation[] aa = ap.av.getAlignment()
+ int origCount = rnaStructureMenu.getItemCount();
+ /*
+ * add menu items to 2D-render any alignment or sequence secondary
+ * structure annotation
+ */
+ AlignmentAnnotation[] aas = ap.av.getAlignment()
.getAlignmentAnnotation();
- for (int i = 0; aa != null && i < aa.length; i++)
+ if (aas != null)
{
- if (aa[i].isValidStruc() && aa[i].sequenceRef == null)
+ for (final AlignmentAnnotation aa : aas)
{
- final String rnastruc = aa[i].getRNAStruc();
- final String structureLine = aa[i].label + " (alignment)";
- menuItem = new JMenuItem();
- menuItem.setText(MessageManager.formatMessage(
- "label.2d_rna_structure_line", new Object[]
- { structureLine }));
- menuItem.addActionListener(new java.awt.event.ActionListener()
+ if (aa.isValidStruc() && aa.sequenceRef == null)
{
- @Override
- public void actionPerformed(ActionEvent e)
+ /*
+ * valid alignment RNA secondary structure annotation
+ */
+ menuItem = new JMenuItem();
+ menuItem.setText(MessageManager.formatMessage(
+ "label.2d_rna_structure_line",
+ new Object[] { aa.label }));
+ menuItem.addActionListener(new java.awt.event.ActionListener()
{
- new AppVarna(structureLine, seq, seq.getSequenceAsString(),
- rnastruc, seq.getName(), ap);
- System.out.println("end");
- }
- });
- viewStructureMenu.add(menuItem);
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ new AppVarna(seq, aa, ap);
+ }
+ });
+ rnaStructureMenu.add(menuItem);
+ }
}
}
-
if (seq.getAnnotation() != null)
{
- AlignmentAnnotation seqAnno[] = seq.getAnnotation();
- for (int i = 0; i < seqAnno.length; i++)
+ AlignmentAnnotation seqAnns[] = seq.getAnnotation();
+ for (final AlignmentAnnotation aa : seqAnns)
{
- if (seqAnno[i].isValidStruc())
+ if (aa.isValidStruc())
{
- final String rnastruc = seqAnno[i].getRNAStruc();
-
+ /*
+ * valid sequence RNA secondary structure annotation
+ */
// 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, seq
- .getSequenceAsString(), rnastruc, seq.getName(),
- ap);
+ new AppVarna(seq, aa, ap);
}
});
- viewStructureMenu.add(menuItem);
+ rnaStructureMenu.add(menuItem);
}
}
}
+ if (rnaStructureMenu.getItemCount() == origCount)
+ {
+ remove(rnaStructureMenu);
+ }
}
menuItem = new JMenuItem(
@@ -444,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
@@ -513,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"));
@@ -594,7 +564,7 @@ public class PopupMenu extends JPopupMenu
SequenceI sqass = null;
for (SequenceI sq : ap.av.getSequenceSelection())
{
- Vector
"); + new Object[] { seq.getDisplayId(true) }) + + "
"); new SequenceAnnotationReport(null) .createSequenceAnnotationReport( contents, @@ -1826,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("
"); } @@ -1835,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); } @@ -2343,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; } @@ -2383,8 +2349,7 @@ public class PopupMenu extends JPopupMenu if (sg != null) { List