X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPopupMenu.java;h=64e8d6746b8a0d041e855216b9bd5fceb4a50807;hb=25348635f6c655180aa796107613f13b0bd30969;hp=36811c7849d783b25abe55f5a17f7b1dedc1f64c;hpb=a16e1965f87dc25c9d6bc6672fbf3a8ad703357e;p=jalview.git
diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java
index 36811c7..64e8d67 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 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
@@ -25,8 +25,11 @@ import jalview.analysis.AlignmentAnnotationUtils;
import jalview.analysis.Conservation;
import jalview.commands.ChangeCaseCommand;
import jalview.commands.EditCommand;
+import jalview.commands.EditCommand.Action;
import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
import jalview.datamodel.Annotation;
+import jalview.datamodel.ColumnSelection;
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.Sequence;
@@ -138,6 +141,8 @@ public class PopupMenu extends JPopupMenu
JMenuItem sequenceDetails = new JMenuItem();
JMenuItem sequenceSelDetails = new JMenuItem();
+
+ JMenuItem makeReferenceSeq = new JMenuItem();
JMenuItem chooseAnnotations = new JMenuItem();
@@ -218,6 +223,8 @@ public class PopupMenu extends JPopupMenu
JMenu groupLinksMenu;
+ JMenuItem hideInsertions = new JMenuItem();
+
/**
* Creates a new PopupMenu object.
*
@@ -320,6 +327,12 @@ public class PopupMenu extends JPopupMenu
if (seq != null)
{
sequenceMenu.setText(sequence.getName());
+ if (seq == ap.av.getAlignment().getSeqrep())
+ {
+ makeReferenceSeq.setText("Unmark representative");
+ } else {
+ makeReferenceSeq.setText("Mark as representative");
+ }
if (seq.getDatasetSequence().getPDBId() != null
&& seq.getDatasetSequence().getPDBId().size() > 0)
@@ -367,12 +380,11 @@ public class PopupMenu extends JPopupMenu
}
// structureMenu.remove(colStructureMenu);
}
-
if (ap.av.getAlignment().isNucleotide() == true)
{
AlignmentAnnotation[] aa = ap.av.getAlignment()
.getAlignmentAnnotation();
- for (int i = 0; i < aa.length; i++)
+ for (int i = 0; aa != null && i < aa.length; i++)
{
if (aa[i].isValidStruc() && aa[i].sequenceRef == null)
{
@@ -380,22 +392,22 @@ public class PopupMenu extends JPopupMenu
final String structureLine = aa[i].label + " (alignment)";
menuItem = new JMenuItem();
menuItem.setText(MessageManager.formatMessage(
- "label.2d_rna_structure_line", new String[]
+ "label.2d_rna_structure_line", new Object[]
{ structureLine }));
menuItem.addActionListener(new java.awt.event.ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
- // System.out.println("1:"+structureLine);
- System.out.println("1:sname" + seq.getName());
- System.out.println("2:seq" + seq);
-
- // System.out.println("3:"+seq.getSequenceAsString());
- System.out.println("3:strucseq" + rnastruc);
- // System.out.println("4:struc"+seq.getRNA());
- System.out.println("5:name" + seq.getName());
- System.out.println("6:ap" + ap);
+ // // System.out.println("1:"+structureLine);
+ // System.out.println("1:sname" + seq.getName());
+ // System.out.println("2:seq" + seq);
+ //
+ // // System.out.println("3:"+seq.getSequenceAsString());
+ // System.out.println("3:strucseq" + rnastruc);
+ // // System.out.println("4:struc"+seq.getRNA());
+ // System.out.println("5:name" + seq.getName());
+ // System.out.println("6:ap" + ap);
new AppVarna(structureLine, seq, seq.getSequenceAsString(),
rnastruc, seq.getName(), ap);
// new AppVarna(seq.getName(),seq,rnastruc,seq.getRNA(),
@@ -421,7 +433,7 @@ 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 String[]
+ "label.2d_rna_sequence_name", new Object[]
{ seq.getName() }));
menuItem.addActionListener(new java.awt.event.ActionListener()
{
@@ -439,7 +451,6 @@ public class PopupMenu extends JPopupMenu
}
}
}
-
}
menuItem = new JMenuItem(
@@ -458,7 +469,7 @@ public class PopupMenu extends JPopupMenu
&& ap.av.getSelectionGroup().getSize() > 1)
{
menuItem = new JMenuItem(MessageManager.formatMessage(
- "label.represent_group_with", new String[]
+ "label.represent_group_with", new Object[]
{ seq.getName() }));
menuItem.addActionListener(new java.awt.event.ActionListener()
{
@@ -527,7 +538,7 @@ public class PopupMenu extends JPopupMenu
if (sg != null && sg.getSize() > 0)
{
groupName.setText(MessageManager.formatMessage("label.name_param",
- new String[]
+ new Object[]
{ sg.getName() }));
groupName.setText(MessageManager
.getString("label.edit_name_and_description_current_group"));
@@ -631,13 +642,13 @@ public class PopupMenu extends JPopupMenu
if (pdbe.size() == 1)
{
structureMenu.add(gpdbview = new JMenuItem(MessageManager
- .formatMessage("label.view_structure_for", new String[]
+ .formatMessage("label.view_structure_for", new Object[]
{ sqass.getDisplayId(false) })));
}
else
{
structureMenu.add(gpdbview = new JMenuItem(MessageManager
- .formatMessage("label.view_all_structures", new String[]
+ .formatMessage("label.view_all_structures", new Object[]
{ new Integer(pdbe.size()).toString() })));
}
gpdbview.setToolTipText(MessageManager
@@ -657,7 +668,7 @@ public class PopupMenu extends JPopupMenu
structureMenu.add(rpdbview = new JMenuItem(MessageManager
.formatMessage(
"label.view_all_representative_structures",
- new String[]
+ new Object[]
{ new Integer(reppdb.size()).toString() })));
rpdbview.setToolTipText(MessageManager
.getString("label.open_new_jmol_view_with_all_representative_structures_associated_current_selection_superimpose_using_alignment"));
@@ -1146,7 +1157,7 @@ public class PopupMenu extends JPopupMenu
{
JMenuItem item = new JMenuItem(label);
item.setToolTipText(MessageManager.formatMessage(
- "label.open_url_param", new String[]
+ "label.open_url_param", new Object[]
{ url }));
item.addActionListener(new java.awt.event.ActionListener()
{
@@ -1505,7 +1516,28 @@ public class PopupMenu extends JPopupMenu
editSequence_actionPerformed(actionEvent);
}
});
+ makeReferenceSeq.setText(MessageManager
+ .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.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ hideInsertions_actionPerformed(e);
+ }
+ });
/*
* annotationMenuItem.setText("By Annotation");
* annotationMenuItem.addActionListener(new ActionListener() { public void
@@ -1515,7 +1547,11 @@ public class PopupMenu extends JPopupMenu
groupMenu.add(sequenceSelDetails);
add(groupMenu);
add(sequenceMenu);
- this.add(structureMenu);
+ add(structureMenu);
+ if (sequence!=null)
+ {
+ add(hideInsertions);
+ }
// annotations configuration panel suppressed for now
// groupMenu.add(chooseAnnotations);
@@ -1537,6 +1573,7 @@ public class PopupMenu extends JPopupMenu
groupMenu.add(jMenu1);
sequenceMenu.add(sequenceName);
sequenceMenu.add(sequenceDetails);
+ sequenceMenu.add(makeReferenceSeq);
colourMenu.add(textColour);
colourMenu.add(noColourmenuItem);
colourMenu.add(clustalColour);
@@ -1764,12 +1801,13 @@ public class PopupMenu extends JPopupMenu
/**
* Check for any annotations on the underlying dataset sequences (for the
- * current selection group) which are not on the alignment annotations for the
- * sequence. If any are found, enable the option to add them to the alignment.
- * The criteria for 'on the alignment' is finding an alignment annotation on
- * the sequence, that matches on calcId and label. A tooltip is also
- * constructed that displays the source (calcId) and type (label) of the
- * annotations that can be added.
+ * current selection group) which are not 'on the alignment'.If any are found,
+ * enable the option to add them to the alignment. The criteria for 'on the
+ * alignment' is finding an alignment annotation on the alignment, matched on
+ * calcId, label and sequenceRef.
+ *
+ * A tooltip is also constructed that displays the source (calcId) and type
+ * (label) of the annotations that can be added.
*
* @param menuItem
* @param forSequences
@@ -1796,10 +1834,11 @@ public class PopupMenu extends JPopupMenu
/*
* For each sequence selected in the alignment, make a list of any
* annotations on the underlying dataset sequence which are not already on
- * the sequence in the alignment.
+ * the alignment.
*
* Build a map of { alignmentSequence, }
*/
+ AlignmentI al = this.ap.av.getAlignment();
final Map
"); new SequenceAnnotationReport(null) .createSequenceAnnotationReport( @@ -1932,16 +2015,18 @@ public class PopupMenu extends JPopupMenu true, true, false, - (ap.seqPanel.seqCanvas.fr != null) ? ap.seqPanel.seqCanvas.fr.minmax + (ap.getSeqPanel().seqCanvas.fr != null) ? ap + .getSeqPanel().seqCanvas.fr + .getMinMax() : null); contents.append("
"); } cap.setText("" + contents.toString() + ""); Desktop.instance.addInternalFrame(cap, MessageManager.formatMessage( - "label.sequece_details_for", - (sequences.length == 1 ? new String[] - { sequences[0].getDisplayId(true) } : new String[] + "label.sequence_details_for", + (sequences.length == 1 ? new Object[] + { sequences[0].getDisplayId(true) } : new Object[] { MessageManager.getString("label.selection") })), 500, 400); } @@ -2105,14 +2190,14 @@ public class PopupMenu extends JPopupMenu int threshold = SliderPanel.setPIDSliderSource(ap, sg.cs, getGroup() .getName()); - sg.cs.setThreshold(threshold, ap.av.getIgnoreGapsConsensus()); + sg.cs.setThreshold(threshold, ap.av.isIgnoreGapsConsensus()); SliderPanel.showPIDSlider(); } else // remove PIDColouring { - sg.cs.setThreshold(0, ap.av.getIgnoreGapsConsensus()); + sg.cs.setThreshold(0, ap.av.isIgnoreGapsConsensus()); } refresh(); @@ -2463,15 +2548,7 @@ public class PopupMenu extends JPopupMenu } int gsize = sg.getSize(); - SequenceI[] hseqs; - - hseqs = new SequenceI[gsize]; - - int index = 0; - for (int i = 0; i < gsize; i++) - { - hseqs[index++] = sg.getSequenceAt(i); - } + SequenceI[] hseqs = sg.getSequences().toArray(new SequenceI[gsize]); ap.av.hideSequence(hseqs); // refresh(); TODO: ? needed ? @@ -2495,7 +2572,8 @@ public class PopupMenu extends JPopupMenu if (sg != null) { - int[][] startEnd = ap.av.getVisibleRegionBoundaries(sg.getStartRes(), + List