Save annotation colours, hideConsevation etc, graphGroups
authoramwaterhouse <Andrew Waterhouse>
Tue, 16 May 2006 13:04:56 +0000 (13:04 +0000)
committeramwaterhouse <Andrew Waterhouse>
Tue, 16 May 2006 13:04:56 +0000 (13:04 +0000)
src/jalview/gui/Jalview2XML.java
src/jalview/schemabinding/version2/Annotation.java
src/jalview/schemabinding/version2/AnnotationDescriptor.java
src/jalview/schemabinding/version2/AnnotationElement.java
src/jalview/schemabinding/version2/AnnotationElementDescriptor.java

index 227cb49..f34a764 100755 (executable)
@@ -307,14 +307,19 @@ public class Jalview2XML
 \r
             for (int i = 0; i < aa.length; i++)\r
             {\r
+                Annotation an = new Annotation();\r
+\r
                 if (aa[i].label.equals("Quality") ||\r
                         aa[i].label.equals("Conservation") ||\r
                         aa[i].label.equals("Consensus"))\r
                 {\r
+                    an.setLabel(aa[i].label);\r
+                    an.setGraph(true);\r
+                    vamsasSet.addAnnotation(an);\r
                     continue;\r
                 }\r
 \r
-                Annotation an = new Annotation();\r
+\r
                 an.setDescription(aa[i].description);\r
 \r
                 if(aa[i].sequenceRef!=null)\r
@@ -326,6 +331,7 @@ public class Jalview2XML
                 {\r
                   an.setGraph(true);\r
                   an.setGraphType(aa[i].graph);\r
+                  an.setGraphGroup(aa[i].graphGroup);\r
                   if(aa[i].getThreshold()!=null)\r
                   {\r
                     ThresholdLine line = new ThresholdLine();\r
@@ -356,6 +362,10 @@ public class Jalview2XML
                     ae.setPosition(a);\r
                     ae.setSecondaryStructure(aa[i].annotations[a].secondaryStructure +\r
                         "");\r
+\r
+                    if(aa[i].annotations[a].colour!=java.awt.Color.black)\r
+                      ae.setColour(aa[i].annotations[a].colour.getRGB());\r
+\r
                     an.addAnnotationElement(ae);\r
                 }\r
 \r
@@ -777,15 +787,36 @@ public class Jalview2XML
           }\r
         }\r
 \r
+\r
          /////////////////////////////////\r
         //////////////////////////////////\r
         //LOAD ANNOTATIONS\r
+        boolean hideQuality = true,\r
+            hideConservation = true,\r
+            hideConsensus = true;\r
+\r
         if (vamsasSet.getAnnotation() != null)\r
         {\r
             Annotation[] an = vamsasSet.getAnnotation();\r
 \r
             for (int i = 0; i < an.length; i++)\r
             {\r
+               if (an[i].getLabel().equals("Quality"))\r
+                {\r
+                 hideQuality = false;\r
+                 continue;\r
+                }\r
+               else if(an[i].getLabel().equals("Conservation"))\r
+               {\r
+                 hideConservation = false;\r
+                 continue;\r
+               }\r
+               else if(an[i].getLabel().equals("Consensus"))\r
+               {\r
+                 hideConsensus = false;\r
+                 continue;\r
+               }\r
+\r
                 AnnotationElement[] ae = an[i].getAnnotationElement();\r
                 jalview.datamodel.Annotation[] anot = new jalview.datamodel.Annotation[al.getWidth()];\r
 \r
@@ -795,6 +826,7 @@ public class Jalview2XML
                             ae[aa].getDescription(),\r
                             ae[aa].getSecondaryStructure().length()==0?' ':ae[aa].getSecondaryStructure().charAt(0),\r
                             ae[aa].getValue());\r
+                    anot[ae[aa].getPosition()].colour = new java.awt.Color( ae[aa].getColour() );\r
                 }\r
 \r
                 jalview.datamodel.AlignmentAnnotation jaa = null;\r
@@ -805,6 +837,8 @@ public class Jalview2XML
                       an[i].getDescription(), anot, 0, 0,\r
                       an[i].getGraphType());\r
 \r
+                  jaa.graphGroup = an[i].getGraphGroup();\r
+\r
                   if (an[i].getThresholdLine() != null)\r
                   {\r
                     jaa.setThreshold(new jalview.datamodel.GraphLine(\r
@@ -835,14 +869,6 @@ public class Jalview2XML
         }\r
 \r
 \r
-        /////////////////////////////////\r
-        // LOAD VIEWPORT\r
-        Viewport[] views = jms.getViewport();\r
-        Viewport view = views[0]; // DEAL WITH MULTIPLE VIEWPORTS LATER\r
-\r
-        AlignFrame af = new AlignFrame(al);\r
-\r
-\r
         //  af.changeColour() );\r
         /////////////////////////\r
         //LOAD GROUPS\r
@@ -902,6 +928,29 @@ public class Jalview2XML
         }\r
 \r
 \r
+        /////////////////////////////////\r
+        // LOAD VIEWPORT\r
+        Viewport[] views = jms.getViewport();\r
+        Viewport view = views[0]; // DEAL WITH MULTIPLE VIEWPORTS LATER\r
+\r
+        AlignFrame af = new AlignFrame(al);\r
+        int hSize = al.getAlignmentAnnotation().length;\r
+        for (int h = 0; h < hSize; h++)\r
+        {\r
+          if (\r
+              (hideConsensus &&\r
+               al.getAlignmentAnnotation()[h].label.equals("Consensus"))\r
+              ||\r
+              (hideQuality && al.getAlignmentAnnotation()[h].label.equals("Quality"))\r
+              ||\r
+              (hideConservation &&\r
+               al.getAlignmentAnnotation()[h].label.equals("Conservation")))\r
+          {\r
+            al.deleteAnnotation(al.getAlignmentAnnotation()[h]);\r
+            hSize --;\r
+            h--;\r
+          }\r
+        }\r
 \r
         af.setBounds(view.getXpos(), view.getYpos(), view.getWidth(),\r
             view.getHeight());\r
index e6c8e5a..ec9b84c 100755 (executable)
@@ -61,6 +61,26 @@ public class Annotation implements java.io.Serializable {
     private java.lang.String _sequenceRef;\r
 \r
     /**\r
+     * Field _graphColour\r
+     */\r
+    private int _graphColour;\r
+\r
+    /**\r
+     * keeps track of state for field: _graphColour\r
+     */\r
+    private boolean _has_graphColour;\r
+\r
+    /**\r
+     * Field _graphGroup\r
+     */\r
+    private int _graphGroup;\r
+\r
+    /**\r
+     * keeps track of state for field: _graphGroup\r
+     */\r
+    private boolean _has_graphGroup;\r
+\r
+    /**\r
      * Field _annotationElementList\r
      */\r
     private java.util.Vector _annotationElementList;\r
@@ -132,6 +152,24 @@ public class Annotation implements java.io.Serializable {
     } //-- void deleteGraph() \r
 \r
     /**\r
+     * Method deleteGraphColour\r
+     * \r
+     */\r
+    public void deleteGraphColour()\r
+    {\r
+        this._has_graphColour= false;\r
+    } //-- void deleteGraphColour() \r
+\r
+    /**\r
+     * Method deleteGraphGroup\r
+     * \r
+     */\r
+    public void deleteGraphGroup()\r
+    {\r
+        this._has_graphGroup= false;\r
+    } //-- void deleteGraphGroup() \r
+\r
+    /**\r
      * Method deleteGraphType\r
      * \r
      */\r
@@ -223,6 +261,28 @@ public class Annotation implements java.io.Serializable {
     } //-- boolean getGraph() \r
 \r
     /**\r
+     * Returns the value of field 'graphColour'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'graphColour'.\r
+     */\r
+    public int getGraphColour()\r
+    {\r
+        return this._graphColour;\r
+    } //-- int getGraphColour() \r
+\r
+    /**\r
+     * Returns the value of field 'graphGroup'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'graphGroup'.\r
+     */\r
+    public int getGraphGroup()\r
+    {\r
+        return this._graphGroup;\r
+    } //-- int getGraphGroup() \r
+\r
+    /**\r
      * Returns the value of field 'graphType'.\r
      * \r
      * @return int\r
@@ -279,6 +339,30 @@ public class Annotation implements java.io.Serializable {
     } //-- boolean hasGraph() \r
 \r
     /**\r
+     * Method hasGraphColour\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasGraphColour()\r
+    {\r
+        return this._has_graphColour;\r
+    } //-- boolean hasGraphColour() \r
+\r
+    /**\r
+     * Method hasGraphGroup\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasGraphGroup()\r
+    {\r
+        return this._has_graphGroup;\r
+    } //-- boolean hasGraphGroup() \r
+\r
+    /**\r
      * Method hasGraphType\r
      * \r
      * \r
@@ -416,6 +500,28 @@ public class Annotation implements java.io.Serializable {
     } //-- void setGraph(boolean) \r
 \r
     /**\r
+     * Sets the value of field 'graphColour'.\r
+     * \r
+     * @param graphColour the value of field 'graphColour'.\r
+     */\r
+    public void setGraphColour(int graphColour)\r
+    {\r
+        this._graphColour = graphColour;\r
+        this._has_graphColour = true;\r
+    } //-- void setGraphColour(int) \r
+\r
+    /**\r
+     * Sets the value of field 'graphGroup'.\r
+     * \r
+     * @param graphGroup the value of field 'graphGroup'.\r
+     */\r
+    public void setGraphGroup(int graphGroup)\r
+    {\r
+        this._graphGroup = graphGroup;\r
+        this._has_graphGroup = true;\r
+    } //-- void setGraphGroup(int) \r
+\r
+    /**\r
      * Sets the value of field 'graphType'.\r
      * \r
      * @param graphType the value of field 'graphType'.\r
index b3125c3..b2290fe 100755 (executable)
@@ -183,6 +183,88 @@ public class AnnotationDescriptor extends org.exolab.castor.xml.util.XMLClassDes
             fieldValidator.setValidator(typeValidator);\r
         }\r
         desc.setValidator(fieldValidator);\r
+        //-- _graphColour\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_graphColour", "graphColour", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Annotation target = (Annotation) object;\r
+                if(!target.hasGraphColour())\r
+                    return null;\r
+                return new java.lang.Integer(target.getGraphColour());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Annotation target = (Annotation) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteGraphColour();\r
+                        return;\r
+                    }\r
+                    target.setGraphColour( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _graphColour\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _graphGroup\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_graphGroup", "graphGroup", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Annotation target = (Annotation) object;\r
+                if(!target.hasGraphGroup())\r
+                    return null;\r
+                return new java.lang.Integer(target.getGraphGroup());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Annotation target = (Annotation) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteGraphGroup();\r
+                        return;\r
+                    }\r
+                    target.setGraphGroup( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _graphGroup\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
         //-- initialize element descriptors\r
         \r
         //-- _annotationElementList\r
@@ -211,13 +293,12 @@ public class AnnotationDescriptor extends org.exolab.castor.xml.util.XMLClassDes
         } );\r
         desc.setHandler(handler);\r
         desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
-        desc.setRequired(true);\r
         desc.setMultivalued(true);\r
         addFieldDescriptor(desc);\r
         \r
         //-- validation code for: _annotationElementList\r
         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-        fieldValidator.setMinOccurs(1);\r
+        fieldValidator.setMinOccurs(0);\r
         { //-- local scope\r
         }\r
         desc.setValidator(fieldValidator);\r
@@ -288,13 +369,11 @@ public class AnnotationDescriptor extends org.exolab.castor.xml.util.XMLClassDes
         } );\r
         desc.setHandler(handler);\r
         desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
-        desc.setRequired(true);\r
         desc.setMultivalued(false);\r
         addFieldDescriptor(desc);\r
         \r
         //-- validation code for: _description\r
         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-        fieldValidator.setMinOccurs(1);\r
         { //-- local scope\r
             StringValidator typeValidator = new StringValidator();\r
             typeValidator.setWhiteSpace("preserve");\r
index 8c91439..2507197 100755 (executable)
@@ -44,6 +44,16 @@ public class AnnotationElement implements java.io.Serializable {
     private boolean _has_position;\r
 \r
     /**\r
+     * Field _colour\r
+     */\r
+    private int _colour;\r
+\r
+    /**\r
+     * keeps track of state for field: _colour\r
+     */\r
+    private boolean _has_colour;\r
+\r
+    /**\r
      * Field _displayCharacter\r
      */\r
     private java.lang.String _displayCharacter;\r
@@ -83,6 +93,15 @@ public class AnnotationElement implements java.io.Serializable {
     //-----------/\r
 \r
     /**\r
+     * Method deleteColour\r
+     * \r
+     */\r
+    public void deleteColour()\r
+    {\r
+        this._has_colour= false;\r
+    } //-- void deleteColour() \r
+\r
+    /**\r
      * Method deletePosition\r
      * \r
      */\r
@@ -101,6 +120,17 @@ public class AnnotationElement implements java.io.Serializable {
     } //-- void deleteValue() \r
 \r
     /**\r
+     * Returns the value of field 'colour'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'colour'.\r
+     */\r
+    public int getColour()\r
+    {\r
+        return this._colour;\r
+    } //-- int getColour() \r
+\r
+    /**\r
      * Returns the value of field 'description'.\r
      * \r
      * @return String\r
@@ -156,6 +186,18 @@ public class AnnotationElement implements java.io.Serializable {
     } //-- float getValue() \r
 \r
     /**\r
+     * Method hasColour\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasColour()\r
+    {\r
+        return this._has_colour;\r
+    } //-- boolean hasColour() \r
+\r
+    /**\r
      * Method hasPosition\r
      * \r
      * \r
@@ -226,6 +268,17 @@ public class AnnotationElement implements java.io.Serializable {
     } //-- void marshal(org.xml.sax.ContentHandler) \r
 \r
     /**\r
+     * Sets the value of field 'colour'.\r
+     * \r
+     * @param colour the value of field 'colour'.\r
+     */\r
+    public void setColour(int colour)\r
+    {\r
+        this._colour = colour;\r
+        this._has_colour = true;\r
+    } //-- void setColour(int) \r
+\r
+    /**\r
      * Sets the value of field 'description'.\r
      * \r
      * @param description the value of field 'description'.\r
index 4034755..0eab95b 100755 (executable)
@@ -106,6 +106,47 @@ public class AnnotationElementDescriptor extends org.exolab.castor.xml.util.XMLC
             fieldValidator.setValidator(typeValidator);\r
         }\r
         desc.setValidator(fieldValidator);\r
+        //-- _colour\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_colour", "colour", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                AnnotationElement target = (AnnotationElement) object;\r
+                if(!target.hasColour())\r
+                    return null;\r
+                return new java.lang.Integer(target.getColour());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    AnnotationElement target = (AnnotationElement) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteColour();\r
+                        return;\r
+                    }\r
+                    target.setColour( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _colour\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
         //-- initialize element descriptors\r
         \r
         //-- _displayCharacter\r
@@ -135,13 +176,11 @@ public class AnnotationElementDescriptor extends org.exolab.castor.xml.util.XMLC
         } );\r
         desc.setHandler(handler);\r
         desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
-        desc.setRequired(true);\r
         desc.setMultivalued(false);\r
         addFieldDescriptor(desc);\r
         \r
         //-- validation code for: _displayCharacter\r
         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-        fieldValidator.setMinOccurs(1);\r
         { //-- local scope\r
             StringValidator typeValidator = new StringValidator();\r
             typeValidator.setWhiteSpace("preserve");\r
@@ -175,13 +214,11 @@ public class AnnotationElementDescriptor extends org.exolab.castor.xml.util.XMLC
         } );\r
         desc.setHandler(handler);\r
         desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
-        desc.setRequired(true);\r
         desc.setMultivalued(false);\r
         addFieldDescriptor(desc);\r
         \r
         //-- validation code for: _description\r
         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-        fieldValidator.setMinOccurs(1);\r
         { //-- local scope\r
             StringValidator typeValidator = new StringValidator();\r
             typeValidator.setWhiteSpace("preserve");\r
@@ -215,13 +252,11 @@ public class AnnotationElementDescriptor extends org.exolab.castor.xml.util.XMLC
         } );\r
         desc.setHandler(handler);\r
         desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
-        desc.setRequired(true);\r
         desc.setMultivalued(false);\r
         addFieldDescriptor(desc);\r
         \r
         //-- validation code for: _secondaryStructure\r
         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-        fieldValidator.setMinOccurs(1);\r
         { //-- local scope\r
             StringValidator typeValidator = new StringValidator();\r
             typeValidator.setLength(1);\r
@@ -245,9 +280,11 @@ public class AnnotationElementDescriptor extends org.exolab.castor.xml.util.XMLC
             {\r
                 try {\r
                     AnnotationElement target = (AnnotationElement) object;\r
-                    // ignore null values for non optional primitives\r
-                    if (value == null) return;\r
-                    \r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteValue();\r
+                        return;\r
+                    }\r
                     target.setValue( ((java.lang.Float)value).floatValue());\r
                 }\r
                 catch (java.lang.Exception ex) {\r
@@ -260,13 +297,11 @@ public class AnnotationElementDescriptor extends org.exolab.castor.xml.util.XMLC
         } );\r
         desc.setHandler(handler);\r
         desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
-        desc.setRequired(true);\r
         desc.setMultivalued(false);\r
         addFieldDescriptor(desc);\r
         \r
         //-- validation code for: _value\r
         fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
-        fieldValidator.setMinOccurs(1);\r
         { //-- local scope\r
             FloatValidator typeValidator = new FloatValidator();\r
             fieldValidator.setValidator(typeValidator);\r