*/\r
public class AlignmentAnnotation\r
{\r
+ public SequenceI sequenceRef;\r
+\r
+ /** This annotation is the original loaded annotation\r
+ * without any gaps. It is necessary to adjust the annotation\r
+ * if sequences are updated */\r
+ public AlignmentAnnotation datasetAnnotation;\r
+\r
/** DOCUMENT ME!! */\r
public String label;\r
\r
/** DOCUMENT ME!! */\r
public float graphMax;\r
\r
+ public GraphLine threshold;\r
\r
// Graphical hints and tips\r
\r
/** DOCUMENT ME!! */\r
public boolean visible = true;\r
\r
+ public int graphGroup = -1;\r
+\r
/** DOCUMENT ME!! */\r
public int height = 0;\r
\r
public int graph = 0;\r
\r
- public static int NO_GRAPH = 0;\r
+ public int graphHeight = 40;\r
\r
- public static int BAR_GRAPH = 1;\r
+ public static final int NO_GRAPH = 0;\r
\r
- public static int LINE_GRAPH = 2;\r
+ public static final int BAR_GRAPH = 1;\r
+\r
+ public static final int LINE_GRAPH = 2;\r
+\r
+ public static int getGraphValueFromString(String string)\r
+ {\r
+ if(string.equalsIgnoreCase("BAR_GRAPH"))\r
+ return BAR_GRAPH;\r
+ else if(string.equalsIgnoreCase("LINE_GRAPH"))\r
+ return LINE_GRAPH;\r
+ else\r
+ return NO_GRAPH;\r
+ }\r
\r
/**\r
* Creates a new AlignmentAnnotation object.\r
\r
if (min == max)\r
{\r
+ min = 999999999;\r
for (int i = 0; i < annotations.length; i++)\r
{\r
if (annotations[i] == null)\r
}\r
\r
return buffer.toString();\r
- }\r
+ }\r
+\r
+ public void setThreshold(GraphLine line)\r
+ {\r
+ threshold = line;\r
+ }\r
+\r
+ public GraphLine getThreshold()\r
+ {\r
+ return threshold;\r
+ }\r
+\r
+ public void adjustForAlignment()\r
+ {\r
+ int a=0, aSize = sequenceRef.getLength();\r
+\r
+ int index = 0;\r
+ Annotation[] temp = new Annotation[aSize];\r
+\r
+ for (a = 0; a < aSize; a++)\r
+ {\r
+ if (!jalview.util.Comparison.isGap(sequenceRef.getCharAt(a)))\r
+ {\r
+ index = sequenceRef.findPosition(a);\r
+ if(datasetAnnotation.annotations.length>index)\r
+ temp[a] = datasetAnnotation.annotations[index];\r
+ }\r
+ }\r
+\r
+ annotations = temp;\r
+ }\r
}\r
+\r
+\r