*/
package jalview.datamodel;
-import java.awt.*;
-import java.util.ArrayList;
-
-import fr.orsay.lri.varna.models.rna.RNA;
+import java.awt.Color;
/**
- * DOCUMENT ME!
+ * Holds all annotation values for a position in an AlignmentAnnotation row
*
* @author $author$
* @version $Revision$
*/
public class Annotation
{
- /** DOCUMENT ME!! */
+ /** Character label - also shown below histogram */
public String displayCharacter = "";
- /** DOCUMENT ME!! */
- public String description = ""; // currently used as mouse over
+ /**
+ * Text label for position: shown in mouse over and displayed on secondary
+ * structure glyphs
+ */
+ public String description = "";
- /** DOCUMENT ME!! */
- public char secondaryStructure = ' '; // recognises H, E and S(?)
+ /**
+ * Secondary structure symbol: Protein symbols are H, E and S(?), RNA are
+ * WUSS/Vienna plus extended pseudoknot symbols
+ */
+ public char secondaryStructure = ' ';
- /** DOCUMENT ME!! */
+ /** Score for the position - used in histograms, line graphs and for shading */
public float value;
-
-
- // add visual cues here
-
- /** DOCUMENT ME!! */
+ /** Colour for position */
public Color colour;
/**
{
this(null, null, ' ', val,null);
}
-
-
-
-
+
+ /**
+ * human readable representation of an annotation row element.
+ *
+ * Format is 'display Char','secondary Structure
+ * Char',"description",score,[colourstring]
+ *
+ * fields may be missing if they are null, whitespace, or equivalent to
+ * Float.NaN
+ */
+ @Override
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+ if (displayCharacter != null)
+ {
+ sb.append("\'");
+ sb.append(displayCharacter);
+ sb.append("\'");
+ }
+ {
+ sb.append(",");
+ }
+ if (secondaryStructure != 0
+ && !("" + displayCharacter).equals("" + secondaryStructure))
+ {
+ sb.append("\'");
+ sb.append(secondaryStructure);
+ sb.append("\'");
+ }
+ {
+ sb.append(",");
+ }
+ if (description != null && description.length() > 0)
+ {
+ sb.append("\"");
+ sb.append(description);
+ sb.append("\"");
+ }
+ {
+ sb.append(",");
+ }
+ if (value != Float.NaN)
+ {
+ sb.append(value);
+ }
+ if (colour != null)
+ {
+ if (sb.length() > 0)
+ {
+ sb.append(",");
+ }
+ sb.append("[");
+ sb.append(colour.getRed());
+ sb.append(",");
+ sb.append(colour.getGreen());
+ sb.append(",");
+ sb.append(colour.getBlue());
+ sb.append("]");
+ }
+ return sb.toString();
+ }
}