/*
- * 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.0b1)
+ * Copyright (C) 2015 The Jalview Authors
*
* This file is part of Jalview.
*
*/
package jalview.appletgui;
-import java.awt.BorderLayout;
-import java.awt.Font;
-import java.awt.FontMetrics;
-import java.awt.Panel;
-import java.awt.Point;
-import java.awt.event.InputEvent;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.util.List;
-import java.util.Vector;
-
import jalview.api.AlignViewportI;
import jalview.commands.EditCommand;
import jalview.commands.EditCommand.Action;
+import jalview.datamodel.AlignmentI;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.SearchResults;
import jalview.datamodel.SearchResults.Match;
import jalview.util.MessageManager;
import jalview.viewmodel.AlignmentViewport;
+import java.awt.BorderLayout;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Panel;
+import java.awt.Point;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.util.Vector;
+
public class SeqPanel extends Panel implements MouseMotionListener,
MouseListener, SequenceListener, SelectionListener
{
}
else
{
- residue = "X".equalsIgnoreCase(displayChar) ? "X"
- : ResidueProperties.aa2Triplet.get(displayChar);
+ residue = "X".equalsIgnoreCase(displayChar) ? "X" : ("*"
+ .equals(displayChar) ? "STOP" : ResidueProperties.aa2Triplet
+ .get(displayChar));
if (residue != null)
{
text.append(" Residue: ").append(residue);
pos = sequence.findPosition(res);
text.append(" (").append(Integer.toString(pos)).append(")");
}
- // Object obj = null;
- // if (av.getAlignment().isNucleotide())
- // {
- // obj = ResidueProperties.nucleotideName.get(sequence.getCharAt(res)
- // + "");
- // if (obj != null)
- // {
- // text.append(" Nucleotide: ");
- // }
- // }
- // else
- // {
- // obj = ResidueProperties.aa2Triplet.get(sequence.getCharAt(res) + "");
- // if (obj != null)
- // {
- // text.append(" Residue: ");
- // }
- // }
- //
- // if (obj != null)
- // {
- //
- // if (obj != "")
- // {
- // text.append(obj + " (" + sequence.findPosition(res) + ")");
- // }
- // }
ap.alignFrame.statusBar.setText(text.toString());
-
}
/**
* search results.
*
* @param results
+ * @return true if results were matched, false if not
*/
- private void setStatusMessage(SearchResults results)
+ private boolean setStatusMessage(SearchResults results)
{
- List<Match> matches = results.getResults();
- if (!matches.isEmpty())
+ AlignmentI al = this.av.getAlignment();
+ int sequenceIndex = al.findIndex(results);
+ if (sequenceIndex == -1)
+ {
+ return false;
+ }
+ SequenceI ds = al.getSequenceAt(sequenceIndex).getDatasetSequence();
+ for (Match m : results.getResults())
{
- Match m = matches.get(0);
SequenceI seq = m.getSequence();
- int sequenceIndex = this.av.getAlignment().findIndex(seq);
+ if (seq.getDatasetSequence() != null)
+ {
+ seq = seq.getDatasetSequence();
+ }
- /*
- * Convert position in sequence (base 1) to sequence character array index
- * (base 0)
- */
- int start = m.getStart() - 1;
- setStatusMessage(seq, start, sequenceIndex);
+ if (seq == ds)
+ {
+ /*
+ * Convert position in sequence (base 1) to sequence character array
+ * index (base 0)
+ */
+ int start = m.getStart() - m.getSequence().getStart();
+ setStatusMessage(seq, start, sequenceIndex);
+ return true;
+ }
}
+ return false;
}
public void mousePressed(MouseEvent evt)
}
if (features != null && features.length > 0)
{
- seqCanvas.getFeatureRenderer().amendFeatures(new SequenceI[]
- { sequence }, features, false, ap);
+ seqCanvas.getFeatureRenderer().amendFeatures(
+ new SequenceI[] { sequence }, features, false, ap);
seqCanvas.highlightSearchResults(null);
}
}
int cHeight = av.getAlignment().getHeight() * av.getCharHeight()
- + hgap
- + seqCanvas.getAnnotationHeight();
+ + hgap + seqCanvas.getAnnotationHeight();
int y = evt.getY();
y -= hgap;
}
int cHeight = av.getAlignment().getHeight() * av.getCharHeight()
- + hgap
- + seqCanvas.getAnnotationHeight();
+ + hgap + seqCanvas.getAnnotationHeight();
y -= hgap;
}
else
{
- obj = "X".equalsIgnoreCase(ch) ? "X"
- : ResidueProperties.aa2Triplet.get(ch);
+ obj = "X".equalsIgnoreCase(ch) ? "X" : ResidueProperties.aa2Triplet
+ .get(ch);
if (obj != null)
{
text.append(" Residue: ").append(obj);
for (int i = 0; i < features.length; i++)
{
if (av.getFeaturesDisplayed() == null
- || !av.getFeaturesDisplayed().isVisible(features[i].getType()))
+ || !av.getFeaturesDisplayed().isVisible(
+ features[i].getType()))
{
continue;
}
if (features[i].featureGroup != null
- && !seqCanvas.fr.checkGroupVisibility(features[i].featureGroup,false))
+ && !seqCanvas.fr.checkGroupVisibility(
+ features[i].featureGroup, false))
{
continue;
}
if (editCommand == null)
{
editCommand = new EditCommand(MessageManager.formatMessage(
- "label.edit_params", new String[]
- { label }));
+ "label.edit_params", new String[] { label }));
}
}
{
for (int j = lastres; j < startres; j++)
{
- insertChar(j, new SequenceI[]
- { seq }, fixedRight);
+ insertChar(j, new SequenceI[] { seq }, fixedRight);
}
}
else
{
- editCommand.appendEdit(Action.INSERT_GAP, new SequenceI[]
- { seq }, lastres, startres - lastres, av.getAlignment(), true);
+ editCommand.appendEdit(Action.INSERT_GAP,
+ new SequenceI[] { seq }, lastres, startres - lastres,
+ av.getAlignment(), true);
}
}
else
endEditing();
break;
}
- deleteChar(startres, new SequenceI[]
- { seq }, fixedRight);
+ deleteChar(startres, new SequenceI[] { seq }, fixedRight);
}
}
else
if (max > 0)
{
- editCommand.appendEdit(Action.DELETE_GAP, new SequenceI[]
- { seq }, startres, max, av.getAlignment(), true);
+ editCommand.appendEdit(Action.DELETE_GAP,
+ new SequenceI[] { seq }, startres, max,
+ av.getAlignment(), true);
}
}
}
protected boolean selectionFromTranslation(SequenceGroup seqsel,
ColumnSelection colsel, SelectionSource source)
{
- if (!(source instanceof AlignViewportI)) {
+ if (!(source instanceof AlignViewportI))
+ {
return false;
}
final AlignViewportI sourceAv = (AlignViewportI) source;
- if (sourceAv.getCodingComplement() != av && av.getCodingComplement() != sourceAv)
+ if (sourceAv.getCodingComplement() != av
+ && av.getCodingComplement() != sourceAv)
{
return false;
}
-
+
/*
* Map sequence selection
*/
SequenceGroup sg = MappingUtils.mapSequenceGroup(seqsel, sourceAv, av);
av.setSelectionGroup(sg);
av.isSelectionGroupChanged(true);
-
+
/*
* Map column selection
*/
av);
av.setColumnSelection(cs);
av.isColSelChanged(true);
-
+
ap.scalePanelHolder.repaint();
ap.repaint();
-
+
return true;
}