/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
*
* This file is part of Jalview.
*
if (links.size() < 1)
{
links = new java.util.Vector();
- links
- .addElement("SRS|http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-newId+(([uniprot-all:$SEQUENCE_ID$]))+-view+SwissEntry");
+ links.addElement("SRS|http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-newId+(([uniprot-all:$SEQUENCE_ID$]))+-view+SwissEntry");
}
}
// look for non-pos features
StringBuffer tooltiptext = new StringBuffer();
-
- if (sequence.getDescription() != null)
+ if (sequence != null)
{
- tooltiptext.append(sequence.getDescription());
- tooltiptext.append("\n");
- }
+ if (sequence.getDescription() != null)
+ {
+ tooltiptext.append(sequence.getDescription());
+ tooltiptext.append("\n");
+ }
- SequenceFeature sf[] = sequence.getSequenceFeatures();
- for (int sl = 0; sf != null && sl < sf.length; sl++)
- {
- if (sf[sl].begin == sf[sl].end && sf[sl].begin == 0)
+ SequenceFeature sf[] = sequence.getSequenceFeatures();
+ for (int sl = 0; sf != null && sl < sf.length; sl++)
{
- boolean nl = false;
- if (sf[sl].getFeatureGroup() != null)
- {
- tooltiptext.append(sf[sl].getFeatureGroup());
- nl = true;
- }
- ;
- if (sf[sl].getType() != null)
- {
- tooltiptext.append(" ");
- tooltiptext.append(sf[sl].getType());
- nl = true;
- }
- ;
- if (sf[sl].getDescription() != null)
- {
- tooltiptext.append(" ");
- tooltiptext.append(sf[sl].getDescription());
- nl = true;
- }
- ;
- if (sf[sl].getScore() != Float.NaN && sf[sl].getScore() != 0f)
- {
- tooltiptext.append(" Score = ");
- tooltiptext.append(sf[sl].getScore());
- nl = true;
- }
- ;
- if (sf[sl].getStatus() != null && sf[sl].getStatus().length() > 0)
- {
- tooltiptext.append(" (");
- tooltiptext.append(sf[sl].getStatus());
- tooltiptext.append(")");
- nl = true;
- }
- ;
- if (nl)
+ if (sf[sl].begin == sf[sl].end && sf[sl].begin == 0)
{
- tooltiptext.append("\n");
+ boolean nl = false;
+ if (sf[sl].getFeatureGroup() != null)
+ {
+ tooltiptext.append(sf[sl].getFeatureGroup());
+ nl = true;
+ }
+ ;
+ if (sf[sl].getType() != null)
+ {
+ tooltiptext.append(" ");
+ tooltiptext.append(sf[sl].getType());
+ nl = true;
+ }
+ ;
+ if (sf[sl].getDescription() != null)
+ {
+ tooltiptext.append(" ");
+ tooltiptext.append(sf[sl].getDescription());
+ nl = true;
+ }
+ ;
+ if (sf[sl].getScore() != Float.NaN && sf[sl].getScore() != 0f)
+ {
+ tooltiptext.append(" Score = ");
+ tooltiptext.append(sf[sl].getScore());
+ nl = true;
+ }
+ ;
+ if (sf[sl].getStatus() != null && sf[sl].getStatus().length() > 0)
+ {
+ tooltiptext.append(" (");
+ tooltiptext.append(sf[sl].getStatus());
+ tooltiptext.append(")");
+ nl = true;
+ }
+ ;
+ if (nl)
+ {
+ tooltiptext.append("\n");
+ }
}
}
}
-
if (tooltiptext.length() == 0)
{
// nothing to display - so clear tooltip if one is visible
// DEFAULT LINK IS FIRST IN THE LINK LIST
int seq = alignPanel.seqPanel.findSeq(e);
- String id = av.getAlignment().getSequenceAt(seq).getName();
+ SequenceI sq = av.getAlignment().getSequenceAt(seq);
+ if (sq==null)
+ {
+ return;
+ }
+ String id = sq.getName();
String target = null;
String url = null;
if ((e.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK)
{
Sequence sq = (Sequence) av.getAlignment().getSequenceAt(seq);
+
// build a new links menu based on the current links + any non-positional
// features
Vector nlinks = new Vector();
{
nlinks.addElement(links.elementAt(l));
}
- SequenceFeature sf[] = sq.getSequenceFeatures();
+ SequenceFeature sf[] = sq==null ? null:sq.getSequenceFeatures();
for (int sl = 0; sf != null && sl < sf.length; sl++)
{
if (sf[sl].begin == sf[sl].end && sf[sl].begin == 0)
end = tmp;
lastid = end;
}
-
+ if (av.getSelectionGroup() == null)
+ {
+ av.setSelectionGroup(new SequenceGroup());
+ }
for (int i = start; i <= end; i++)
{
av.getSelectionGroup().addSequence(
mouseDragging = false;
PaintRefresher.Refresh(this, av.getSequenceSetId());
+ // always send selection message when mouse is released
+ av.sendSelection();
}
public void highlightSearchResults(java.util.Vector found)