MouseMotionListener, ActionListener
{
static String ADDNEW = "Add New Row";
+ static String EDITNAME="Edit Label/Description";
static String HIDE = "Hide This Row";
static String DELETE = "Delete This Row";
static String SHOWALL = "Show All Hidden Rows";
{
this.ap = ap;
av = ap.av;
+ ToolTipManager.sharedInstance().registerComponent(this);
java.net.URL url = getClass().getResource("/images/idwidth.gif");
Image temp = null;
if (evt.getActionCommand().equals(ADDNEW))
{
- String label = JOptionPane.showInputDialog(this,
- "Label for annotation");
-
- if (label == null)
- {
- label = "";
- }
-
- AlignmentAnnotation newAnnotation = new AlignmentAnnotation(label,
- "New description",
+ AlignmentAnnotation newAnnotation = new AlignmentAnnotation(null,
+ null,
new Annotation[ap.av.alignment.getWidth()]);
+ if(!editLabelDescription(newAnnotation))
+ return;
+
ap.av.alignment.addAnnotation(newAnnotation);
ap.av.alignment.setAnnotationIndex(newAnnotation, 0);
if (aa != null)
dif = aa[aa.length - 1].height;
}
+ else if(evt.getActionCommand().equals(EDITNAME))
+ {
+ editLabelDescription(aa[selectedRow]);
+ repaint();
+ }
else if (evt.getActionCommand().equals(HIDE))
{
aa[selectedRow].visible = false;
- if (aa[selectedRow].label.equals("Conservation"))
- {
- ap.av.showConservation = false;
- }
-
if (aa[selectedRow].label.equals("Quality"))
{
- ap.av.showQuality = false;
- }
-
- if (aa[selectedRow].label.equals("Consensus"))
- {
- ap.av.showIdentity = false;
+ ap.av.quality = null;
}
dif = aa[selectedRow].height * -1;
new AnnotationExporter().exportAnnotations(
ap,
new AlignmentAnnotation[]
- {aa[selectedRow]}
+ {aa[selectedRow]},
+ null
);
}
else if (evt.getActionCommand().equals(COPYCONS_SEQ))
SequenceI cons=av.getConsensusSeq();
if (cons!=null)
copy_annotseqtoclipboard(cons);
-
+
}
ap.annotationPanel.adjustPanelHeight();
ap.repaint();
}
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param e DOCUMENT ME!
+ */
+ boolean editLabelDescription(AlignmentAnnotation annotation)
+ {
+ EditNameDialog dialog = new EditNameDialog(annotation.label,
+ annotation.description,
+ " Annotation Name ",
+ "Annotation Description ",
+ "Edit Annotation Name/Description");
+
+ if (!dialog.accept)
+ {
+ return false;
+ }
+
+ annotation.label = dialog.getName();
+
+ String text = dialog.getDescription();
+ if(text.length()==0)
+ text = null;
+ annotation.description = text;
+
+ return true;
+ }
+
/**
* DOCUMENT ME!
*
{
resizePanel = evt.getY()<10;
+ getSelectedRow(evt.getY() - scrollOffset);
+
+ if(selectedRow>-1
+ && ap.av.alignment.getAlignmentAnnotation().length>selectedRow)
+ {
+ String desc = ap.av.alignment.
+ getAlignmentAnnotation()[selectedRow].description;
+
+ if (desc != null && !desc.equals("New description"))
+ setToolTipText(ap.av.alignment.
+ getAlignmentAnnotation()[selectedRow].description);
+
+ }
repaint();
}
JMenuItem item = new JMenuItem(ADDNEW);
item.addActionListener(this);
pop.add(item);
+ item = new JMenuItem(EDITNAME);
+ item.addActionListener(this);
+ pop.add(item);
item = new JMenuItem(HIDE);
item.addActionListener(this);
pop.add(item);
item.addActionListener(this);
pop.add(item);
// annotation object should be typed
- if (aa[selectedRow].label.equals("Consensus"))
+ if (aa[selectedRow]==ap.av.consensus)
{
pop.addSeparator();
final JCheckBoxMenuItem cbmi = new JCheckBoxMenuItem(
cbmi.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
- ap.av.setIgnoreGapsConsensus(cbmi.getState());
- ap.repaint();
+ ap.av.setIgnoreGapsConsensus(cbmi.getState(), ap);
}
});
pop.add(cbmi);
SequenceI [] dseqs=new SequenceI[] { sq.getDatasetSequence()};
if (dseqs[0]==null) {
dseqs[0] = new Sequence(sq);
- dseqs[0].setSequence(jalview.analysis.AlignSeq.extractGaps(jalview.util.Comparison.GapChars, sq.getSequence()));
+ dseqs[0].setSequence(
+ jalview.analysis.AlignSeq.extractGaps(
+ jalview.util.Comparison.GapChars,
+ sq.getSequenceAsString()));
+
sq.setDatasetSequence(dseqs[0]);
}
Alignment ds=new Alignment(dseqs);
region[1]});
}
}
-
+
Desktop.jalviewClipboard = new Object[]{ seqs,
ds, // what is the dataset of a consensus sequence ? need to flag sequence as special.
hiddenColumns};