JAL-892 schema changes (rnaViewer) for save Varna to project
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Thu, 18 Jun 2015 16:05:17 +0000 (17:05 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Thu, 18 Jun 2015 16:05:17 +0000 (17:05 +0100)
schemas/jalview.xsd
src/jalview/schemabinding/version2/.castor.cdr
src/jalview/schemabinding/version2/JSeq.java
src/jalview/schemabinding/version2/RnaViewer.java [new file with mode: 0644]
src/jalview/schemabinding/version2/SecondaryStructure.java [new file with mode: 0644]
src/jalview/schemabinding/version2/descriptors/JSeqDescriptor.java
src/jalview/schemabinding/version2/descriptors/RnaViewerDescriptor.java [new file with mode: 0644]
src/jalview/schemabinding/version2/descriptors/SecondaryStructureDescriptor.java [new file with mode: 0644]

index eab6500..f60bb6a 100755 (executable)
@@ -1,26 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- *  
- * Jalview is distributed in the hope that it will be useful, but 
- * WITHOUT ANY WARRANTY; without even the implied warranty 
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
- * PURPOSE.  See the GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" xmlns:jalview="www.jalview.org/colours" xmlns:jv="www.jalview.org" xmlns:jvws="www.jalview.org/xml/wsparamset" targetNamespace="www.jalview.org" elementFormDefault="qualified" attributeFormDefault="unqualified">
-               <xs:import namespace="www.vamsas.ac.uk/jalview/version2" schemaLocation="vamsas.xsd"/>
-       <xs:import namespace="www.jalview.org/colours" schemaLocation="JalviewUserColours.xsd"/>
-       <xs:import namespace="www.jalview.org/xml/wsparamset" schemaLocation="JalviewWsParamSet.xsd"/>
+<!-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) 
+       * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of 
+       Jalview. * * Jalview is free software: you can redistribute it and/or * modify 
+       it under the terms of the GNU General Public License * as published by the 
+       Free Software Foundation, either version 3 of the License, or (at your option) 
+       any later version. * * Jalview is distributed in the hope that it will be 
+       useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of 
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General 
+       Public License for more details. * * You should have received a copy of the 
+       GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>. 
+       * The Jalview Authors are detailed in the 'AUTHORS' file. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+       xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" xmlns:jalview="www.jalview.org/colours"
+       xmlns:jv="www.jalview.org" xmlns:jvws="www.jalview.org/xml/wsparamset"
+       targetNamespace="www.jalview.org" elementFormDefault="qualified"
+       attributeFormDefault="unqualified">
+       <xs:import namespace="www.vamsas.ac.uk/jalview/version2"
+               schemaLocation="vamsas.xsd" />
+       <xs:import namespace="www.jalview.org/colours"
+               schemaLocation="JalviewUserColours.xsd" />
+       <xs:import namespace="www.jalview.org/xml/wsparamset"
+               schemaLocation="JalviewWsParamSet.xsd" />
        <xs:complexType name="JalviewModel">
                <xs:sequence>
                        <xs:element name="creationDate" type="xs:dateTime" />
                                <xs:element name="JSeq" maxOccurs="unbounded" minOccurs="0">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element name="features"
-                                                               type="jv:feature" minOccurs="0" maxOccurs="unbounded" />
-                                                       <xs:element name="pdbids" minOccurs="0"
-                                                               maxOccurs="unbounded">
+                                                       <xs:element name="features" type="jv:feature"
+                                                               minOccurs="0" maxOccurs="unbounded" />
+                                                       <xs:element name="pdbids" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:complexType>
                                                                        <xs:complexContent>
-                                                                               <xs:extension
-                                                                                       base="jv:pdbentry">
+                                                                               <xs:extension base="jv:pdbentry">
                                                                                        <xs:sequence>
-                                                                                               <xs:element
-                                                                                                       name="structureState" minOccurs="0"
+                                                                                               <xs:element name="structureState" minOccurs="0"
                                                                                                        maxOccurs="unbounded">
                                                                                                        <xs:complexType>
                                                                                                                <xs:simpleContent>
-                                                                                                                       <xs:extension
-                                                                                                                               base="xs:string">
-                                                                                                                               <xs:attributeGroup
-                                                                                                                                       ref="jv:swingwindow" />
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="visible" type="xs:boolean" />
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="viewId" type="xs:string" use="optional">
+                                                                                                                       <xs:extension base="xs:string">
+                                                                                                                               <xs:attributeGroup ref="jv:swingwindow" />
+                                                                                                                               <xs:attribute name="visible" type="xs:boolean" />
+                                                                                                                               <xs:attribute name="viewId" type="xs:string"
+                                                                                                                                       use="optional">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
                                                                                                                                                        additional
                                                                                                                                                </xs:documentation>
                                                                                                                                        </xs:annotation>
                                                                                                                                </xs:attribute>
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="alignwithAlignPanel" type="xs:boolean"
-                                                                                                                                       use="optional" default="true">
+                                                                                                                               <xs:attribute name="alignwithAlignPanel"
+                                                                                                                                       type="xs:boolean" use="optional" default="true">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
                                                                                                                                                        Flag
                                                                                                                                                </xs:documentation>
                                                                                                                                        </xs:annotation>
                                                                                                                                </xs:attribute>
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="colourwithAlignPanel" type="xs:boolean"
-                                                                                                                                       use="optional" default="false">
+                                                                                                                               <xs:attribute name="colourwithAlignPanel"
+                                                                                                                                       type="xs:boolean" use="optional" default="false">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
                                                                                                                                                        Flag
                                                                                                                                                </xs:documentation>
                                                                                                                                        </xs:annotation>
                                                                                                                                </xs:attribute>
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="colourByJmol" type="xs:boolean" use="optional"
-                                                                                                                                       default="true">
+                                                                                                                               <xs:attribute name="colourByJmol" type="xs:boolean"
+                                                                                                                                       use="optional" default="true">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
                                                                                                                                                        Flag
                                                                                                                                        use="optional">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
-                                                                                                                                                       An identifier for the viewer type, currently either
-                                                                                                                                                       JMOL or CHIMERA
+                                                                                                                                                       An
+                                                                                                                                                       identifier
+                                                                                                                                                       for
+                                                                                                                                                       the
+                                                                                                                                                       viewer
+                                                                                                                                                       type,
+                                                                                                                                                       currently
+                                                                                                                                                       either
+                                                                                                                                                       JMOL
+                                                                                                                                                       or
+                                                                                                                                                       CHIMERA
                                                                                                                                                </xs:documentation>
                                                                                                                                        </xs:annotation>
                                                                                                                                </xs:attribute>
                                                                        </xs:complexContent>
                                                                </xs:complexType>
                                                        </xs:element>
-                                                       <xs:element name="hiddenSequences"
-                                                               type="xs:int" minOccurs="0" maxOccurs="unbounded" />
+                                                       <xs:element name="hiddenSequences" type="xs:int"
+                                                               minOccurs="0" maxOccurs="unbounded" />
+                                                       <xs:element name="rnaViewer" minOccurs="0" maxOccurs="unbounded">
+                                                               <xs:annotation>
+                                                                       <xs:documentation>Reference to a viewer showing RNA structure
+                                                                               for this sequence. Schema supports one viewer showing multiple
+                                                                               annotations for multiple sequences, though currently only one
+                                                                               annotation for one sequence (gapped or trimmed) is used
+                                                                       </xs:documentation>
+                                                               </xs:annotation>
+                                                               <xs:complexType>
+                                                                       <xs:sequence>
+                                                                               <xs:element name="secondaryStructure" minOccurs="1"
+                                                                                       maxOccurs="unbounded">
+                                                                                       <xs:complexType>
+                                                                                               <xs:attribute name="title" type="xs:string" />
+                                                                                               <xs:attribute name="annotationId" type="xs:string"
+                                                                                                       use="required">
+                                                                                                       <xs:annotation>
+                                                                                                               <xs:documentation>id attribute of Annotation in
+                                                                                                                       vamsasModel for
+                                                                                                                       the secondary structure annotation shown
+                                                                                                                       in the viewer
+                                                                                                               </xs:documentation>
+                                                                                                       </xs:annotation>
+                                                                                               </xs:attribute>
+                                                                                               <xs:attribute name="gapped" type="xs:boolean">
+                                                                                                       <xs:annotation>
+                                                                                                               <xs:documentation>if true the RNA structure is shown with gaps, if false without
+                                                                                                               </xs:documentation>
+                                                                                                       </xs:annotation>
+                                                                                               </xs:attribute>
+                                                                                               <xs:attribute name="viewerState" type="xs:string">
+                                                                                                       <xs:annotation>
+                                                                                                               <xs:documentation>name of the project jar entry that holds
+                                                                                                                       the VARNA viewer state for the structure
+                                                                                                               </xs:documentation>
+                                                                                                       </xs:annotation>
+                                                                                               </xs:attribute>
+                                                                                       </xs:complexType>
+                                                                               </xs:element>
+                                                                       </xs:sequence>
+                                                                       <xs:attributeGroup ref="jv:swingwindow" />
+                                                                       <xs:attribute name="title" type="xs:string" />
+                                                                       <xs:attribute name="viewId" type="xs:string">
+                                                                               <xs:annotation>
+                                                                                       <xs:documentation>An id unique to the RNA viewer panel
+                                                                                       </xs:documentation>
+                                                                               </xs:annotation>
+                                                                       </xs:attribute>
+                                                                       <xs:attribute name="dividerLocation" type="xs:int">
+                                                                               <xs:annotation>
+                                                                                       <xs:documentation>horizontal position of split pane divider
+                                                                                       </xs:documentation>
+                                                                               </xs:annotation>
+                                                                       </xs:attribute>
+                                                                       <xs:attribute name="selectedRna" type="xs:int">
+                                                                               <xs:annotation>
+                                                                                       <xs:documentation>Index of the selected structure in the
+                                                                                               viewer panel
+                                                                                       </xs:documentation>
+                                                                               </xs:annotation>
+                                                                       </xs:attribute>
+                                                               </xs:complexType>
+                                                       </xs:element>
                                                </xs:sequence>
-                                               <xs:attribute name="colour" type="xs:int"
-                                                       use="optional" />
-                                               <xs:attribute name="start" type="xs:int"
-                                                       use="required" />
-                                               <xs:attribute name="end" type="xs:int"
-                                                       use="required" />
-                                               <xs:attribute name="id" type="xs:string"
-                                                       use="required" />
+                                               <xs:attribute name="colour" type="xs:int" use="optional" />
+                                               <xs:attribute name="start" type="xs:int" use="required" />
+                                               <xs:attribute name="end" type="xs:int" use="required" />
+                                               <xs:attribute name="id" type="xs:string" use="required" />
                                                <xs:attribute name="hidden" type="xs:boolean" />
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="JGroup" minOccurs="0"
-                                       maxOccurs="unbounded">
+                               <xs:element name="JGroup" minOccurs="0" maxOccurs="unbounded">
                                        <xs:complexType>
-            <xs:sequence>
+                                               <xs:sequence>
                                                        <xs:element name="seq" type="xs:string" maxOccurs="unbounded" />
                                                        <xs:element name="annotationColours" type="jv:AnnotationColourScheme"
                                                                minOccurs="0" maxOccurs="1" />
                                                <xs:attribute name="end" type="xs:int" />
                                                <xs:attribute name="name" type="xs:string" />
                                                <xs:attribute name="colour" type="xs:string" />
-                                               <xs:attribute name="consThreshold"
-                                                       type="xs:int" />
+                                               <xs:attribute name="consThreshold" type="xs:int" />
                                                <xs:attribute name="pidThreshold" type="xs:int" />
-                                               <xs:attribute name="outlineColour"
-                                                       type="xs:int" />
-                                               <xs:attribute name="displayBoxes"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="displayText"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="colourText"
-                                                       type="xs:boolean" />
+                                               <xs:attribute name="outlineColour" type="xs:int" />
+                                               <xs:attribute name="displayBoxes" type="xs:boolean" />
+                                               <xs:attribute name="displayText" type="xs:boolean" />
+                                               <xs:attribute name="colourText" type="xs:boolean" />
                                                <xs:attribute name="textCol1" type="xs:int" />
                                                <xs:attribute name="textCol2" type="xs:int" />
-                                               <xs:attribute name="textColThreshold"
-                                                       type="xs:int" />
-                                               <xs:attribute name="showUnconserved"
-                                                       type="xs:boolean" use="optional" />
-                                               <xs:attribute name="ignoreGapsinConsensus"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                               <xs:attribute name="showConsensusHistogram"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                               <xs:attribute name="showSequenceLogo"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="normaliseSequenceLogo"
-              type="xs:boolean" use="optional" default="false" />
-            <xs:attribute name="id" type="xs:string"
-                                                       use="optional">
+                                               <xs:attribute name="textColThreshold" type="xs:int" />
+                                               <xs:attribute name="showUnconserved" type="xs:boolean"
+                                                       use="optional" />
+                                               <xs:attribute name="ignoreGapsinConsensus" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="showConsensusHistogram" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="showSequenceLogo" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="normaliseSequenceLogo" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="id" type="xs:string" use="optional">
                                                        <xs:annotation>
                                                                <xs:documentation>
                                                                        Optional sequence group ID (only
-                                                                       needs to be unique for this
+                                                                       needs to be
+                                                                       unique for this
                                                                        alignment)
                                                                </xs:documentation>
                                                        </xs:annotation>
                                                </xs:attribute>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="Viewport" maxOccurs="unbounded" minOccurs="0">
+                               <xs:element name="Viewport" maxOccurs="unbounded"
+                                       minOccurs="0">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element name="AnnotationColours" type="jv:AnnotationColourScheme" 
+                                                       <xs:element name="AnnotationColours" type="jv:AnnotationColourScheme"
                                                                minOccurs="0" maxOccurs="1">
                                                        </xs:element>
-                                                       <xs:element name="hiddenColumns"
-                                                               minOccurs="0" maxOccurs="unbounded">
+                                                       <xs:element name="hiddenColumns" minOccurs="0"
+                                                               maxOccurs="unbounded">
                                                                <xs:complexType>
-                                                                       <xs:attribute name="start"
-                                                                               type="xs:int" />
-                                                                       <xs:attribute name="end"
-                                                                               type="xs:int" />
+                                                                       <xs:attribute name="start" type="xs:int" />
+                                                                       <xs:attribute name="end" type="xs:int" />
                                                                </xs:complexType>
                                                        </xs:element>
-                                                       <xs:element name="calcIdParam" 
-                                                        
-                                                       minOccurs="0" maxOccurs="unbounded">
-                                                       <xs:complexType>
-                                                       <xs:complexContent>
-                                                       <xs:extension base="jvws:WebServiceParameterSet">
-                                                       <xs:attribute name="calcId" type="xs:string" use="required">
-                                                       <xs:annotation>
-                                                       <xs:documentation>handle for the calculation which uses this parameter set</xs:documentation></xs:annotation>
-                                                       </xs:attribute>
-                                                       <xs:attribute name="needsUpdate" type="xs:boolean" use="optional" default="false">
-                                                       <xs:annotation><xs:documentation>should the calculation be performed immediately after loading in order to refresh results</xs:documentation></xs:annotation>
-                                                       </xs:attribute>
-                                                       <xs:attribute name="autoUpdate" type="xs:boolean" use="required">
-                                                       <xs:annotation><xs:documentation>should the calculation be automatically performed on edits</xs:documentation></xs:annotation>
-                                                       </xs:attribute>
-                                                       </xs:extension>
-                                                       </xs:complexContent>
-                                                       </xs:complexType>
+                                                       <xs:element name="calcIdParam" minOccurs="0"
+                                                               maxOccurs="unbounded">
+                                                               <xs:complexType>
+                                                                       <xs:complexContent>
+                                                                               <xs:extension base="jvws:WebServiceParameterSet">
+                                                                                       <xs:attribute name="calcId" type="xs:string"
+                                                                                               use="required">
+                                                                                               <xs:annotation>
+                                                                                                       <xs:documentation>handle for the calculation which uses
+                                                                                                               this parameter set
+                                                                                                       </xs:documentation>
+                                                                                               </xs:annotation>
+                                                                                       </xs:attribute>
+                                                                                       <xs:attribute name="needsUpdate" type="xs:boolean"
+                                                                                               use="optional" default="false">
+                                                                                               <xs:annotation>
+                                                                                                       <xs:documentation>should the calculation be performed
+                                                                                                               immediately after loading in order to refresh results
+                                                                                                       </xs:documentation>
+                                                                                               </xs:annotation>
+                                                                                       </xs:attribute>
+                                                                                       <xs:attribute name="autoUpdate" type="xs:boolean"
+                                                                                               use="required">
+                                                                                               <xs:annotation>
+                                                                                                       <xs:documentation>should the calculation be automatically
+                                                                                                               performed on edits
+                                                                                                       </xs:documentation>
+                                                                                               </xs:annotation>
+                                                                                       </xs:attribute>
+                                                                               </xs:extension>
+                                                                       </xs:complexContent>
+                                                               </xs:complexType>
                                                        </xs:element>
                                                </xs:sequence>
                                                <xs:attributeGroup ref="jv:swingwindow" />
-                                               <xs:attribute name="conservationSelected"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="pidSelected"
-                                                       type="xs:boolean" />
+                                               <xs:attribute name="conservationSelected" type="xs:boolean" />
+                                               <xs:attribute name="pidSelected" type="xs:boolean" />
                                                <xs:attribute name="bgColour" type="xs:string" />
-                                               <xs:attribute name="consThreshold"
-                                                       type="xs:int" />
+                                               <xs:attribute name="consThreshold" type="xs:int" />
                                                <xs:attribute name="pidThreshold" type="xs:int" />
                                                <xs:attribute name="title" type="xs:string" />
-                                               <xs:attribute name="showFullId"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="rightAlignIds"
-                                                       type="xs:boolean" />
+                                               <xs:attribute name="showFullId" type="xs:boolean" />
+                                               <xs:attribute name="rightAlignIds" type="xs:boolean" />
                                                <xs:attribute name="showText" type="xs:boolean" />
-                                               <xs:attribute name="showColourText"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="showUnconserved"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="showBoxes"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="wrapAlignment"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="renderGaps"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="showSequenceFeatures"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="showNPfeatureTooltip"
-                                                       type="xs:boolean" use="optional" />
-                                               <xs:attribute name="showDbRefTooltip"
-                                                       type="xs:boolean" use="optional" />
-                                               <xs:attribute name="followHighlight"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                               <xs:attribute name="followSelection"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                               <xs:attribute name="showAnnotation"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="centreColumnLabels"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="showGroupConservation"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="showGroupConsensus"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="showConsensusHistogram"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                               <xs:attribute name="showSequenceLogo"
-                                                       type="xs:boolean" use="optional" default="false" />
-                                   <xs:attribute name="normaliseSequenceLogo"
-                                     type="xs:boolean" use="optional" default="false" />
-                                               <xs:attribute name="ignoreGapsinConsensus"
-                                                       type="xs:boolean" use="optional" default="true" />
-                                                       <xs:attribute name="startRes" type="xs:int" />
+                                               <xs:attribute name="showColourText" type="xs:boolean" />
+                                               <xs:attribute name="showUnconserved" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="showBoxes" type="xs:boolean" />
+                                               <xs:attribute name="wrapAlignment" type="xs:boolean" />
+                                               <xs:attribute name="renderGaps" type="xs:boolean" />
+                                               <xs:attribute name="showSequenceFeatures" type="xs:boolean" />
+                                               <xs:attribute name="showNPfeatureTooltip" type="xs:boolean"
+                                                       use="optional" />
+                                               <xs:attribute name="showDbRefTooltip" type="xs:boolean"
+                                                       use="optional" />
+                                               <xs:attribute name="followHighlight" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="followSelection" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="showAnnotation" type="xs:boolean" />
+                                               <xs:attribute name="centreColumnLabels" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="showGroupConservation" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="showGroupConsensus" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="showConsensusHistogram" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="showSequenceLogo" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="normaliseSequenceLogo" type="xs:boolean"
+                                                       use="optional" default="false" />
+                                               <xs:attribute name="ignoreGapsinConsensus" type="xs:boolean"
+                                                       use="optional" default="true" />
+                                               <xs:attribute name="startRes" type="xs:int" />
                                                <xs:attribute name="startSeq" type="xs:int" />
                                                <xs:attribute name="fontName" type="xs:string" />
                                                <xs:attribute name="fontSize" type="xs:int" />
                                                <xs:attribute name="fontStyle" type="xs:int" />
                                                <xs:attribute name="viewName" type="xs:string" />
-                                               <xs:attribute name="sequenceSetId"
-                                                       type="xs:string" />
-                                               <xs:attribute name="gatheredViews"
-                                                       type="xs:boolean" />
+                                               <xs:attribute name="sequenceSetId" type="xs:string" />
+                                               <xs:attribute name="gatheredViews" type="xs:boolean" />
                                                <xs:attribute name="textCol1" type="xs:int" />
                                                <xs:attribute name="textCol2" type="xs:int" />
-                                               <xs:attribute name="textColThreshold"
-                                                       type="xs:int" />
-                                               <xs:attribute name="id" type="xs:ID"
-                                                       use="optional">
+                                               <xs:attribute name="textColThreshold" type="xs:int" />
+                                               <xs:attribute name="id" type="xs:ID" use="optional">
                                                        <xs:annotation>
                                                                <xs:documentation>
                                                                        unique id used by jalview to
-                                                                       synchronize between stored and
+                                                                       synchronize
+                                                                       between stored and
                                                                        instantiated views
                                                                </xs:documentation>
                                                        </xs:annotation>
                                                        use="optional">
                                                        <xs:annotation>
                                                                <xs:documentation>
-                                                                       The viewport id of this viewport's (cdna/protein) coding complement, if any
+                                                                       The viewport id of this viewport's
+                                                                       (cdna/protein) coding complement, if any
                                                                </xs:documentation>
                                                        </xs:annotation>
                                                </xs:attribute>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="UserColours" minOccurs="0"
-                                       maxOccurs="unbounded">
+                               <xs:element name="UserColours" minOccurs="0" maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element name="UserColourScheme"
-                                                               type="jalview:JalviewUserColours" />
+                                                       <xs:element name="UserColourScheme" type="jalview:JalviewUserColours" />
                                                </xs:sequence>
                                                <xs:attribute name="id" type="xs:string" />
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="tree" minOccurs="0"
-                                       maxOccurs="unbounded">
+                               <xs:element name="tree" minOccurs="0" maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:sequence minOccurs="0">
                                                        <xs:element name="title" type="xs:string" />
                                                <xs:attribute name="fontSize" type="xs:int" />
                                                <xs:attribute name="fontStyle" type="xs:int" />
                                                <xs:attribute name="threshold" type="xs:float" />
-                                               <xs:attribute name="showBootstrap"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="showDistances"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="markUnlinked"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="fitToWindow"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="currentTree"
-                                                       type="xs:boolean" />
-                                               <xs:attribute name="id" type="xs:ID"
-                                                       use="optional">
+                                               <xs:attribute name="showBootstrap" type="xs:boolean" />
+                                               <xs:attribute name="showDistances" type="xs:boolean" />
+                                               <xs:attribute name="markUnlinked" type="xs:boolean" />
+                                               <xs:attribute name="fitToWindow" type="xs:boolean" />
+                                               <xs:attribute name="currentTree" type="xs:boolean" />
+                                               <xs:attribute name="id" type="xs:ID" use="optional">
                                                        <xs:annotation>
                                                                <xs:documentation>
                                                                        Tree ID added for binding tree
-                                                                       visualization settings to vamsas
+                                                                       visualization
+                                                                       settings to vamsas
                                                                        document trees in jalview 2.4.1
                                                                </xs:documentation>
                                                        </xs:annotation>
                                <xs:element name="FeatureSettings" minOccurs="0">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element name="setting" minOccurs="0"
-                                                               maxOccurs="unbounded">
+                                                       <xs:element name="setting" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:complexType>
-                                                                       <xs:attribute name="type"
-                                                                               type="xs:string" use="required" />
-                                                                       <xs:attribute name="colour"
-                                                                               type="xs:int" use="required" />
-                                                                       <xs:attribute name="display"
-                                                                               type="xs:boolean" use="required" />
-                                                                       <xs:attribute name="order"
-                                                                               type="xs:float" use="optional" />
-                                                                       <xs:attribute name="mincolour"
-                                                                               type="xs:int" use="optional">
+                                                                       <xs:attribute name="type" type="xs:string" use="required" />
+                                                                       <xs:attribute name="colour" type="xs:int" use="required" />
+                                                                       <xs:attribute name="display" type="xs:boolean"
+                                                                               use="required" />
+                                                                       <xs:attribute name="order" type="xs:float" use="optional" />
+                                                                       <xs:attribute name="mincolour" type="xs:int" use="optional">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>
                                                                                                Optional minimum colour
-                                                                                               for graduated feature
+                                                                                               for graduated
+                                                                                               feature
                                                                                                colour
                                                                                        </xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:attribute>
-                                                                       <xs:attribute name="threshold"
-                                                                               type="xs:float" use="optional">
+                                                                       <xs:attribute name="threshold" type="xs:float"
+                                                                               use="optional">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>
                                                                                                threshold value for
                                                                                        </xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:attribute>
-                                                                       <xs:attribute name="threshstate"
-                                                                               type="xs:int" use="optional">
+                                                                       <xs:attribute name="threshstate" type="xs:int"
+                                                                               use="optional">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>
                                                                                                threshold type for
                                                                                        </xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:attribute>
-                                                                       <xs:attribute name="max"
-                                                                               type="xs:float" use="optional" />
-                                                                       <xs:attribute name="min"
-                                                                               type="xs:float" use="optional" />
-                                                                       <xs:attribute name="colourByLabel"
-                                                                               type="xs:boolean" use="optional" />
-                                                                       <xs:attribute name="autoScale"
-                                                                               type="xs:boolean" use="optional" />
+                                                                       <xs:attribute name="max" type="xs:float" use="optional" />
+                                                                       <xs:attribute name="min" type="xs:float" use="optional" />
+                                                                       <xs:attribute name="colourByLabel" type="xs:boolean"
+                                                                               use="optional" />
+                                                                       <xs:attribute name="autoScale" type="xs:boolean"
+                                                                               use="optional" />
                                                                </xs:complexType>
                                                        </xs:element>
-                                                       <xs:element name="group" minOccurs="0"
-                                                               maxOccurs="unbounded">
+                                                       <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:complexType>
-                                                                       <xs:attribute name="name"
-                                                                               type="xs:string" use="required" />
-                                                                       <xs:attribute name="display"
-                                                                               type="xs:boolean" use="required" />
+                                                                       <xs:attribute name="name" type="xs:string" use="required" />
+                                                                       <xs:attribute name="display" type="xs:boolean"
+                                                                               use="required" />
                                                                </xs:complexType>
                                                        </xs:element>
                                                </xs:sequence>
                <xs:sequence>
                        <xs:element name="otherData" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>
-                                       <xs:attribute name="key" type="xs:string" use="required"/>
-                                       <xs:attribute name="value" type="xs:string" use="required"/>
+                                       <xs:attribute name="key" type="xs:string" use="required" />
+                                       <xs:attribute name="value" type="xs:string" use="required" />
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
-               <xs:attribute name="begin" type="xs:int" use="required"/>
-               <xs:attribute name="end" type="xs:int" use="required"/>
-               <xs:attribute name="type" type="xs:string" use="required"/>
-               <xs:attribute name="description" type="xs:string" use="optional"/>
-               <xs:attribute name="status" type="xs:string" use="optional"/>
-               <xs:attribute name="featureGroup" type="xs:string" use="optional"/>
-               <xs:attribute name="score" type="xs:float" use="optional"/>
+               <xs:attribute name="begin" type="xs:int" use="required" />
+               <xs:attribute name="end" type="xs:int" use="required" />
+               <xs:attribute name="type" type="xs:string" use="required" />
+               <xs:attribute name="description" type="xs:string" use="optional" />
+               <xs:attribute name="status" type="xs:string" use="optional" />
+               <xs:attribute name="featureGroup" type="xs:string" use="optional" />
+               <xs:attribute name="score" type="xs:float" use="optional" />
        </xs:complexType>
        <xs:complexType name="pdbentry">
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:element name="property" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>
-                                       <xs:attribute name="name" type="xs:string" use="required"/>
-                                       <xs:attribute name="value" type="xs:string" use="required"/>
+                                       <xs:attribute name="name" type="xs:string" use="required" />
+                                       <xs:attribute name="value" type="xs:string" use="required" />
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
-               <xs:attribute name="id" type="xs:string" use="required"/>
-               <xs:attribute name="type" type="xs:string" use="optional"/>
-               <xs:attribute name="file" type="xs:string"/>
+               <xs:attribute name="id" type="xs:string" use="required" />
+               <xs:attribute name="type" type="xs:string" use="optional" />
+               <xs:attribute name="file" type="xs:string" />
        </xs:complexType>
-       <!-- 
-       <xs:complexType name="reportWindow">
-       <xs:annotation>
-       <xs:documentation>Generic type for windows containing mime-typed data associated with other jalview windows</xs:documentation>
-       </xs:annotation>
-       <xs:sequence>
-       </xs:sequence>
-    <xs:attribute name="id" type="xs:string" use="required"/>
-    <xs:attribute name="type" type="xs:string" use="optional"/>
-    <xs:attribute name="file" type="xs:string" use="optional"/>
+       <!-- <xs:complexType name="reportWindow"> <xs:annotation> <xs:documentation>Generic 
+               type for windows containing mime-typed data associated with other jalview 
+               windows</xs:documentation> </xs:annotation> <xs:sequence> </xs:sequence> 
+               <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="type" 
+               type="xs:string" use="optional"/> <xs:attribute name="file" type="xs:string" 
+               use="optional"/> </xs:complexType> -->
+       <xs:attributeGroup name="swingwindow">
+               <xs:annotation>
+                       <xs:documentation>
+                               base attributes for windows displayed in Jalview
+                               desktop.
+                       </xs:documentation>
+               </xs:annotation>
+               <xs:attribute name="width" type="xs:int" />
+               <xs:attribute name="height" type="xs:int" />
+               <xs:attribute name="xpos" type="xs:int" />
+               <xs:attribute name="ypos" type="xs:int" />
+       </xs:attributeGroup>
+       <xs:complexType name="AnnotationColourScheme">
+               <xs:attribute name="aboveThreshold" type="xs:int" />
+               <xs:attribute name="annotation" type="xs:string" />
+               <xs:attribute name="minColour" type="xs:int" />
+               <xs:attribute name="maxColour" type="xs:int" />
+               <xs:attribute name="colourScheme" type="xs:string" />
+               <xs:attribute name="threshold" type="xs:float" />
+               <xs:attribute name="perSequence" type="xs:boolean" use="optional" />
+               <xs:attribute name="predefinedColours" type="xs:boolean"
+                       use="optional" />
        </xs:complexType>
- -->
-    <xs:attributeGroup name="swingwindow">
-    <xs:annotation>
-    <xs:documentation>
-      base attributes for windows displayed in Jalview desktop.
-    </xs:documentation>
-    </xs:annotation>
-      <xs:attribute name="width" type="xs:int"/>
-      <xs:attribute name="height" type="xs:int"/>
-      <xs:attribute name="xpos" type="xs:int"/>
-      <xs:attribute name="ypos" type="xs:int"/>
-    </xs:attributeGroup>
-  <xs:complexType name="AnnotationColourScheme">
-       <xs:attribute name="aboveThreshold" type="xs:int" />
-       <xs:attribute name="annotation" type="xs:string" />
-       <xs:attribute name="minColour" type="xs:int" />
-       <xs:attribute name="maxColour" type="xs:int" />
-       <xs:attribute name="colourScheme" type="xs:string" />
-       <xs:attribute name="threshold" type="xs:float" />
-       <xs:attribute name="perSequence" type="xs:boolean" use="optional" />
-       <xs:attribute name="predefinedColours" type="xs:boolean"
-               use="optional" />
-  </xs:complexType>
-  
+
 </xs:schema>
index 65150f6..2b8e4b5 100644 (file)
@@ -1,4 +1,4 @@
-#Wed Jun 10 11:15:53 BST 2015
+#Wed Jun 17 15:04:02 BST 2015
 jalview.schemabinding.version2.ThresholdLine=jalview.schemabinding.version2.descriptors.ThresholdLineDescriptor
 jalview.schemabinding.version2.SequenceSetProperties=jalview.schemabinding.version2.descriptors.SequenceSetPropertiesDescriptor
 jalview.schemabinding.version2.StructureState=jalview.schemabinding.version2.descriptors.StructureStateDescriptor
@@ -10,8 +10,10 @@ jalview.schemabinding.version2.OtherData=jalview.schemabinding.version2.descript
 jalview.schemabinding.version2.Setting=jalview.schemabinding.version2.descriptors.SettingDescriptor
 jalview.schemabinding.version2.AlcodonFrame=jalview.schemabinding.version2.descriptors.AlcodonFrameDescriptor
 jalview.schemabinding.version2.AnnotationElement=jalview.schemabinding.version2.descriptors.AnnotationElementDescriptor
+jalview.schemabinding.version2.SecondaryStructure=jalview.schemabinding.version2.descriptors.SecondaryStructureDescriptor
 jalview.schemabinding.version2.SequenceSet=jalview.schemabinding.version2.descriptors.SequenceSetDescriptor
 jalview.schemabinding.version2.Viewport=jalview.schemabinding.version2.descriptors.ViewportDescriptor
+jalview.schemabinding.version2.RnaViewer=jalview.schemabinding.version2.descriptors.RnaViewerDescriptor
 jalview.schemabinding.version2.MapListType=jalview.schemabinding.version2.descriptors.MapListTypeDescriptor
 jalview.schemabinding.version2.Property=jalview.schemabinding.version2.descriptors.PropertyDescriptor
 jalview.schemabinding.version2.UserColourScheme=jalview.schemabinding.version2.descriptors.UserColourSchemeDescriptor
index d5eda07..193b005 100644 (file)
@@ -86,6 +86,17 @@ public class JSeq implements java.io.Serializable {
      */
     private java.util.Vector _hiddenSequencesList;
 
+    /**
+     * Reference to a viewer showing RNA structure
+     *  for this sequence. Schema supports one viewer showing
+     * multiple
+     *  annotations for multiple sequences, though currently only
+     * one
+     *  annotation for one sequence (gapped or trimmed) is used
+     *  
+     */
+    private java.util.Vector _rnaViewerList;
+
 
       //----------------/
      //- Constructors -/
@@ -96,6 +107,7 @@ public class JSeq implements java.io.Serializable {
         this._featuresList = new java.util.Vector();
         this._pdbidsList = new java.util.Vector();
         this._hiddenSequencesList = new java.util.Vector();
+        this._rnaViewerList = new java.util.Vector();
     }
 
 
@@ -188,6 +200,34 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     * 
+     * 
+     * @param vRnaViewer
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addRnaViewer(
+            final jalview.schemabinding.version2.RnaViewer vRnaViewer)
+    throws java.lang.IndexOutOfBoundsException {
+        this._rnaViewerList.addElement(vRnaViewer);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vRnaViewer
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addRnaViewer(
+            final int index,
+            final jalview.schemabinding.version2.RnaViewer vRnaViewer)
+    throws java.lang.IndexOutOfBoundsException {
+        this._rnaViewerList.add(index, vRnaViewer);
+    }
+
+    /**
      */
     public void deleteColour(
     ) {
@@ -248,6 +288,17 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     * Method enumerateRnaViewer.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.RnaViewer elements
+     */
+    public java.util.Enumeration enumerateRnaViewer(
+    ) {
+        return this._rnaViewerList.elements();
+    }
+
+    /**
      * Returns the value of field 'colour'.
      * 
      * @return the value of field 'Colour'.
@@ -424,6 +475,51 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     * Method getRnaViewer.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.RnaViewer at the given index
+     */
+    public jalview.schemabinding.version2.RnaViewer getRnaViewer(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._rnaViewerList.size()) {
+            throw new IndexOutOfBoundsException("getRnaViewer: Index value '" + index + "' not in range [0.." + (this._rnaViewerList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.RnaViewer) _rnaViewerList.get(index);
+    }
+
+    /**
+     * Method getRnaViewer.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.RnaViewer[] getRnaViewer(
+    ) {
+        jalview.schemabinding.version2.RnaViewer[] array = new jalview.schemabinding.version2.RnaViewer[0];
+        return (jalview.schemabinding.version2.RnaViewer[]) this._rnaViewerList.toArray(array);
+    }
+
+    /**
+     * Method getRnaViewerCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getRnaViewerCount(
+    ) {
+        return this._rnaViewerList.size();
+    }
+
+    /**
      * Returns the value of field 'start'.
      * 
      * @return the value of field 'Start'.
@@ -552,6 +648,13 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     */
+    public void removeAllRnaViewer(
+    ) {
+        this._rnaViewerList.clear();
+    }
+
+    /**
      * Method removeFeatures.
      * 
      * @param vFeatures
@@ -624,6 +727,30 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     * Method removeRnaViewer.
+     * 
+     * @param vRnaViewer
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeRnaViewer(
+            final jalview.schemabinding.version2.RnaViewer vRnaViewer) {
+        boolean removed = _rnaViewerList.remove(vRnaViewer);
+        return removed;
+    }
+
+    /**
+     * Method removeRnaViewerAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.RnaViewer removeRnaViewerAt(
+            final int index) {
+        java.lang.Object obj = this._rnaViewerList.remove(index);
+        return (jalview.schemabinding.version2.RnaViewer) obj;
+    }
+
+    /**
      * Sets the value of field 'colour'.
      * 
      * @param colour the value of field 'colour'.
@@ -772,6 +899,41 @@ public class JSeq implements java.io.Serializable {
     }
 
     /**
+     * 
+     * 
+     * @param index
+     * @param vRnaViewer
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setRnaViewer(
+            final int index,
+            final jalview.schemabinding.version2.RnaViewer vRnaViewer)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._rnaViewerList.size()) {
+            throw new IndexOutOfBoundsException("setRnaViewer: Index value '" + index + "' not in range [0.." + (this._rnaViewerList.size() - 1) + "]");
+        }
+        
+        this._rnaViewerList.set(index, vRnaViewer);
+    }
+
+    /**
+     * 
+     * 
+     * @param vRnaViewerArray
+     */
+    public void setRnaViewer(
+            final jalview.schemabinding.version2.RnaViewer[] vRnaViewerArray) {
+        //-- copy array
+        _rnaViewerList.clear();
+        
+        for (int i = 0; i < vRnaViewerArray.length; i++) {
+                this._rnaViewerList.add(vRnaViewerArray[i]);
+        }
+    }
+
+    /**
      * Sets the value of field 'start'.
      * 
      * @param start the value of field 'start'.
diff --git a/src/jalview/schemabinding/version2/RnaViewer.java b/src/jalview/schemabinding/version2/RnaViewer.java
new file mode 100644 (file)
index 0000000..96c4195
--- /dev/null
@@ -0,0 +1,643 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.Unmarshaller;
+
+/**
+ * Reference to a viewer showing RNA structure
+ *  for this sequence. Schema supports one viewer showing multiple
+ *  annotations for multiple sequences, though currently only one
+ *  annotation for one sequence (gapped or trimmed) is used
+ *  
+ * 
+ * @version $Revision$ $Date$
+ */
+public class RnaViewer implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _title.
+     */
+    private java.lang.String _title;
+
+    /**
+     * An id unique to the RNA viewer panel
+     *  
+     */
+    private java.lang.String _viewId;
+
+    /**
+     * horizontal position of split pane divider
+     *  
+     */
+    private int _dividerLocation;
+
+    /**
+     * keeps track of state for field: _dividerLocation
+     */
+    private boolean _has_dividerLocation;
+
+    /**
+     * Index of the selected structure in the
+     *  viewer panel
+     *  
+     */
+    private int _selectedRna;
+
+    /**
+     * keeps track of state for field: _selectedRna
+     */
+    private boolean _has_selectedRna;
+
+    /**
+     * Field _width.
+     */
+    private int _width;
+
+    /**
+     * keeps track of state for field: _width
+     */
+    private boolean _has_width;
+
+    /**
+     * Field _height.
+     */
+    private int _height;
+
+    /**
+     * keeps track of state for field: _height
+     */
+    private boolean _has_height;
+
+    /**
+     * Field _xpos.
+     */
+    private int _xpos;
+
+    /**
+     * keeps track of state for field: _xpos
+     */
+    private boolean _has_xpos;
+
+    /**
+     * Field _ypos.
+     */
+    private int _ypos;
+
+    /**
+     * keeps track of state for field: _ypos
+     */
+    private boolean _has_ypos;
+
+    /**
+     * Field _secondaryStructureList.
+     */
+    private java.util.Vector _secondaryStructureList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public RnaViewer() {
+        super();
+        this._secondaryStructureList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vSecondaryStructure
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSecondaryStructure(
+            final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure)
+    throws java.lang.IndexOutOfBoundsException {
+        this._secondaryStructureList.addElement(vSecondaryStructure);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSecondaryStructure
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSecondaryStructure(
+            final int index,
+            final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure)
+    throws java.lang.IndexOutOfBoundsException {
+        this._secondaryStructureList.add(index, vSecondaryStructure);
+    }
+
+    /**
+     */
+    public void deleteDividerLocation(
+    ) {
+        this._has_dividerLocation= false;
+    }
+
+    /**
+     */
+    public void deleteHeight(
+    ) {
+        this._has_height= false;
+    }
+
+    /**
+     */
+    public void deleteSelectedRna(
+    ) {
+        this._has_selectedRna= false;
+    }
+
+    /**
+     */
+    public void deleteWidth(
+    ) {
+        this._has_width= false;
+    }
+
+    /**
+     */
+    public void deleteXpos(
+    ) {
+        this._has_xpos= false;
+    }
+
+    /**
+     */
+    public void deleteYpos(
+    ) {
+        this._has_ypos= false;
+    }
+
+    /**
+     * Method enumerateSecondaryStructure.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.SecondaryStructure elements
+     */
+    public java.util.Enumeration enumerateSecondaryStructure(
+    ) {
+        return this._secondaryStructureList.elements();
+    }
+
+    /**
+     * Returns the value of field 'dividerLocation'. The field
+     * 'dividerLocation' has the following description: horizontal
+     * position of split pane divider
+     *  
+     * 
+     * @return the value of field 'DividerLocation'.
+     */
+    public int getDividerLocation(
+    ) {
+        return this._dividerLocation;
+    }
+
+    /**
+     * Returns the value of field 'height'.
+     * 
+     * @return the value of field 'Height'.
+     */
+    public int getHeight(
+    ) {
+        return this._height;
+    }
+
+    /**
+     * Method getSecondaryStructure.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.SecondaryStructure at the
+     * given index
+     */
+    public jalview.schemabinding.version2.SecondaryStructure getSecondaryStructure(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._secondaryStructureList.size()) {
+            throw new IndexOutOfBoundsException("getSecondaryStructure: Index value '" + index + "' not in range [0.." + (this._secondaryStructureList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.SecondaryStructure) _secondaryStructureList.get(index);
+    }
+
+    /**
+     * Method getSecondaryStructure.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.SecondaryStructure[] getSecondaryStructure(
+    ) {
+        jalview.schemabinding.version2.SecondaryStructure[] array = new jalview.schemabinding.version2.SecondaryStructure[0];
+        return (jalview.schemabinding.version2.SecondaryStructure[]) this._secondaryStructureList.toArray(array);
+    }
+
+    /**
+     * Method getSecondaryStructureCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSecondaryStructureCount(
+    ) {
+        return this._secondaryStructureList.size();
+    }
+
+    /**
+     * Returns the value of field 'selectedRna'. The field
+     * 'selectedRna' has the following description: Index of the
+     * selected structure in the
+     *  viewer panel
+     *  
+     * 
+     * @return the value of field 'SelectedRna'.
+     */
+    public int getSelectedRna(
+    ) {
+        return this._selectedRna;
+    }
+
+    /**
+     * Returns the value of field 'title'.
+     * 
+     * @return the value of field 'Title'.
+     */
+    public java.lang.String getTitle(
+    ) {
+        return this._title;
+    }
+
+    /**
+     * Returns the value of field 'viewId'. The field 'viewId' has
+     * the following description: An id unique to the RNA viewer
+     * panel
+     *  
+     * 
+     * @return the value of field 'ViewId'.
+     */
+    public java.lang.String getViewId(
+    ) {
+        return this._viewId;
+    }
+
+    /**
+     * Returns the value of field 'width'.
+     * 
+     * @return the value of field 'Width'.
+     */
+    public int getWidth(
+    ) {
+        return this._width;
+    }
+
+    /**
+     * Returns the value of field 'xpos'.
+     * 
+     * @return the value of field 'Xpos'.
+     */
+    public int getXpos(
+    ) {
+        return this._xpos;
+    }
+
+    /**
+     * Returns the value of field 'ypos'.
+     * 
+     * @return the value of field 'Ypos'.
+     */
+    public int getYpos(
+    ) {
+        return this._ypos;
+    }
+
+    /**
+     * Method hasDividerLocation.
+     * 
+     * @return true if at least one DividerLocation has been added
+     */
+    public boolean hasDividerLocation(
+    ) {
+        return this._has_dividerLocation;
+    }
+
+    /**
+     * Method hasHeight.
+     * 
+     * @return true if at least one Height has been added
+     */
+    public boolean hasHeight(
+    ) {
+        return this._has_height;
+    }
+
+    /**
+     * Method hasSelectedRna.
+     * 
+     * @return true if at least one SelectedRna has been added
+     */
+    public boolean hasSelectedRna(
+    ) {
+        return this._has_selectedRna;
+    }
+
+    /**
+     * Method hasWidth.
+     * 
+     * @return true if at least one Width has been added
+     */
+    public boolean hasWidth(
+    ) {
+        return this._has_width;
+    }
+
+    /**
+     * Method hasXpos.
+     * 
+     * @return true if at least one Xpos has been added
+     */
+    public boolean hasXpos(
+    ) {
+        return this._has_xpos;
+    }
+
+    /**
+     * Method hasYpos.
+     * 
+     * @return true if at least one Ypos has been added
+     */
+    public boolean hasYpos(
+    ) {
+        return this._has_ypos;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllSecondaryStructure(
+    ) {
+        this._secondaryStructureList.clear();
+    }
+
+    /**
+     * Method removeSecondaryStructure.
+     * 
+     * @param vSecondaryStructure
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSecondaryStructure(
+            final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure) {
+        boolean removed = _secondaryStructureList.remove(vSecondaryStructure);
+        return removed;
+    }
+
+    /**
+     * Method removeSecondaryStructureAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.SecondaryStructure removeSecondaryStructureAt(
+            final int index) {
+        java.lang.Object obj = this._secondaryStructureList.remove(index);
+        return (jalview.schemabinding.version2.SecondaryStructure) obj;
+    }
+
+    /**
+     * Sets the value of field 'dividerLocation'. The field
+     * 'dividerLocation' has the following description: horizontal
+     * position of split pane divider
+     *  
+     * 
+     * @param dividerLocation the value of field 'dividerLocation'.
+     */
+    public void setDividerLocation(
+            final int dividerLocation) {
+        this._dividerLocation = dividerLocation;
+        this._has_dividerLocation = true;
+    }
+
+    /**
+     * Sets the value of field 'height'.
+     * 
+     * @param height the value of field 'height'.
+     */
+    public void setHeight(
+            final int height) {
+        this._height = height;
+        this._has_height = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSecondaryStructure
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSecondaryStructure(
+            final int index,
+            final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._secondaryStructureList.size()) {
+            throw new IndexOutOfBoundsException("setSecondaryStructure: Index value '" + index + "' not in range [0.." + (this._secondaryStructureList.size() - 1) + "]");
+        }
+        
+        this._secondaryStructureList.set(index, vSecondaryStructure);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSecondaryStructureArray
+     */
+    public void setSecondaryStructure(
+            final jalview.schemabinding.version2.SecondaryStructure[] vSecondaryStructureArray) {
+        //-- copy array
+        _secondaryStructureList.clear();
+        
+        for (int i = 0; i < vSecondaryStructureArray.length; i++) {
+                this._secondaryStructureList.add(vSecondaryStructureArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'selectedRna'. The field
+     * 'selectedRna' has the following description: Index of the
+     * selected structure in the
+     *  viewer panel
+     *  
+     * 
+     * @param selectedRna the value of field 'selectedRna'.
+     */
+    public void setSelectedRna(
+            final int selectedRna) {
+        this._selectedRna = selectedRna;
+        this._has_selectedRna = true;
+    }
+
+    /**
+     * Sets the value of field 'title'.
+     * 
+     * @param title the value of field 'title'.
+     */
+    public void setTitle(
+            final java.lang.String title) {
+        this._title = title;
+    }
+
+    /**
+     * Sets the value of field 'viewId'. The field 'viewId' has the
+     * following description: An id unique to the RNA viewer panel
+     *  
+     * 
+     * @param viewId the value of field 'viewId'.
+     */
+    public void setViewId(
+            final java.lang.String viewId) {
+        this._viewId = viewId;
+    }
+
+    /**
+     * Sets the value of field 'width'.
+     * 
+     * @param width the value of field 'width'.
+     */
+    public void setWidth(
+            final int width) {
+        this._width = width;
+        this._has_width = true;
+    }
+
+    /**
+     * Sets the value of field 'xpos'.
+     * 
+     * @param xpos the value of field 'xpos'.
+     */
+    public void setXpos(
+            final int xpos) {
+        this._xpos = xpos;
+        this._has_xpos = true;
+    }
+
+    /**
+     * Sets the value of field 'ypos'.
+     * 
+     * @param ypos the value of field 'ypos'.
+     */
+    public void setYpos(
+            final int ypos) {
+        this._ypos = ypos;
+        this._has_ypos = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.RnaViewer
+     */
+    public static jalview.schemabinding.version2.RnaViewer unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.RnaViewer) Unmarshaller.unmarshal(jalview.schemabinding.version2.RnaViewer.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
+
+}
diff --git a/src/jalview/schemabinding/version2/SecondaryStructure.java b/src/jalview/schemabinding/version2/SecondaryStructure.java
new file mode 100644 (file)
index 0000000..d2f97fb
--- /dev/null
@@ -0,0 +1,290 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.Unmarshaller;
+
+/**
+ * Class SecondaryStructure.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class SecondaryStructure implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _title.
+     */
+    private java.lang.String _title;
+
+    /**
+     * id attribute of Annotation in
+     *  vamsasModel for
+     *  the secondary structure annotation shown
+     *  in the viewer
+     *  
+     */
+    private java.lang.String _annotationId;
+
+    /**
+     * if true the RNA structure is shown with gaps, if false
+     * without
+     *  
+     */
+    private boolean _gapped;
+
+    /**
+     * keeps track of state for field: _gapped
+     */
+    private boolean _has_gapped;
+
+    /**
+     * name of the project jar entry that holds
+     *  the VARNA viewer state for the structure
+     *  
+     */
+    private java.lang.String _viewerState;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SecondaryStructure() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteGapped(
+    ) {
+        this._has_gapped= false;
+    }
+
+    /**
+     * Returns the value of field 'annotationId'. The field
+     * 'annotationId' has the following description: id attribute
+     * of Annotation in
+     *  vamsasModel for
+     *  the secondary structure annotation shown
+     *  in the viewer
+     *  
+     * 
+     * @return the value of field 'AnnotationId'.
+     */
+    public java.lang.String getAnnotationId(
+    ) {
+        return this._annotationId;
+    }
+
+    /**
+     * Returns the value of field 'gapped'. The field 'gapped' has
+     * the following description: if true the RNA structure is
+     * shown with gaps, if false without
+     *  
+     * 
+     * @return the value of field 'Gapped'.
+     */
+    public boolean getGapped(
+    ) {
+        return this._gapped;
+    }
+
+    /**
+     * Returns the value of field 'title'.
+     * 
+     * @return the value of field 'Title'.
+     */
+    public java.lang.String getTitle(
+    ) {
+        return this._title;
+    }
+
+    /**
+     * Returns the value of field 'viewerState'. The field
+     * 'viewerState' has the following description: name of the
+     * project jar entry that holds
+     *  the VARNA viewer state for the structure
+     *  
+     * 
+     * @return the value of field 'ViewerState'.
+     */
+    public java.lang.String getViewerState(
+    ) {
+        return this._viewerState;
+    }
+
+    /**
+     * Method hasGapped.
+     * 
+     * @return true if at least one Gapped has been added
+     */
+    public boolean hasGapped(
+    ) {
+        return this._has_gapped;
+    }
+
+    /**
+     * Returns the value of field 'gapped'. The field 'gapped' has
+     * the following description: if true the RNA structure is
+     * shown with gaps, if false without
+     *  
+     * 
+     * @return the value of field 'Gapped'.
+     */
+    public boolean isGapped(
+    ) {
+        return this._gapped;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'annotationId'. The field
+     * 'annotationId' has the following description: id attribute
+     * of Annotation in
+     *  vamsasModel for
+     *  the secondary structure annotation shown
+     *  in the viewer
+     *  
+     * 
+     * @param annotationId the value of field 'annotationId'.
+     */
+    public void setAnnotationId(
+            final java.lang.String annotationId) {
+        this._annotationId = annotationId;
+    }
+
+    /**
+     * Sets the value of field 'gapped'. The field 'gapped' has the
+     * following description: if true the RNA structure is shown
+     * with gaps, if false without
+     *  
+     * 
+     * @param gapped the value of field 'gapped'.
+     */
+    public void setGapped(
+            final boolean gapped) {
+        this._gapped = gapped;
+        this._has_gapped = true;
+    }
+
+    /**
+     * Sets the value of field 'title'.
+     * 
+     * @param title the value of field 'title'.
+     */
+    public void setTitle(
+            final java.lang.String title) {
+        this._title = title;
+    }
+
+    /**
+     * Sets the value of field 'viewerState'. The field
+     * 'viewerState' has the following description: name of the
+     * project jar entry that holds
+     *  the VARNA viewer state for the structure
+     *  
+     * 
+     * @param viewerState the value of field 'viewerState'.
+     */
+    public void setViewerState(
+            final java.lang.String viewerState) {
+        this._viewerState = viewerState;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.SecondaryStructure
+     */
+    public static jalview.schemabinding.version2.SecondaryStructure unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.SecondaryStructure) Unmarshaller.unmarshal(jalview.schemabinding.version2.SecondaryStructure.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
+
+}
index ab0eaaf..44c8caf 100644 (file)
@@ -408,6 +408,48 @@ public class JSeqDescriptor extends org.exolab.castor.xml.util.XMLClassDescripto
             typeValidator.setMaxInclusive(2147483647);
         }
         desc.setValidator(fieldValidator);
+        //-- _rnaViewerList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.RnaViewer.class, "_rnaViewerList", "rnaViewer", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JSeq target = (JSeq) object;
+                return target.getRnaViewer();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JSeq target = (JSeq) object;
+                    target.addRnaViewer( (jalview.schemabinding.version2.RnaViewer) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JSeq target = (JSeq) object;
+                    target.removeAllRnaViewer();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.RnaViewer();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _rnaViewerList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
+        }
+        desc.setValidator(fieldValidator);
     }
 
 
diff --git a/src/jalview/schemabinding/version2/descriptors/RnaViewerDescriptor.java b/src/jalview/schemabinding/version2/descriptors/RnaViewerDescriptor.java
new file mode 100644 (file)
index 0000000..fd824a1
--- /dev/null
@@ -0,0 +1,535 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2.descriptors;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import jalview.schemabinding.version2.RnaViewer;
+
+/**
+ * Class RnaViewerDescriptor.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class RnaViewerDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public RnaViewerDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "rnaViewer";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _title
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_title", "title", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                return target.getTitle();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    target.setTitle( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _title
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- _viewId
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_viewId", "viewId", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                return target.getViewId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    target.setViewId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _viewId
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- _dividerLocation
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_dividerLocation", "dividerLocation", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasDividerLocation()) { return null; }
+                return new java.lang.Integer(target.getDividerLocation());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteDividerLocation();
+                        return;
+                    }
+                    target.setDividerLocation( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _dividerLocation
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _selectedRna
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_selectedRna", "selectedRna", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasSelectedRna()) { return null; }
+                return new java.lang.Integer(target.getSelectedRna());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteSelectedRna();
+                        return;
+                    }
+                    target.setSelectedRna( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _selectedRna
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _width
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_width", "width", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasWidth()) { return null; }
+                return new java.lang.Integer(target.getWidth());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteWidth();
+                        return;
+                    }
+                    target.setWidth( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _width
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _height
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_height", "height", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasHeight()) { return null; }
+                return new java.lang.Integer(target.getHeight());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteHeight();
+                        return;
+                    }
+                    target.setHeight( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _height
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _xpos
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_xpos", "xpos", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasXpos()) { return null; }
+                return new java.lang.Integer(target.getXpos());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteXpos();
+                        return;
+                    }
+                    target.setXpos( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _xpos
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _ypos
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_ypos", "ypos", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                if (!target.hasYpos()) { return null; }
+                return new java.lang.Integer(target.getYpos());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteYpos();
+                        return;
+                    }
+                    target.setYpos( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _ypos
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
+        }
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _secondaryStructureList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.SecondaryStructure.class, "_secondaryStructureList", "secondaryStructure", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                RnaViewer target = (RnaViewer) object;
+                return target.getSecondaryStructure();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    target.addSecondaryStructure( (jalview.schemabinding.version2.SecondaryStructure) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    RnaViewer target = (RnaViewer) object;
+                    target.removeAllSecondaryStructure();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.SecondaryStructure();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setRequired(true);
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _secondaryStructureList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+        }
+        desc.setValidator(fieldValidator);
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.RnaViewer.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
+
+}
diff --git a/src/jalview/schemabinding/version2/descriptors/SecondaryStructureDescriptor.java b/src/jalview/schemabinding/version2/descriptors/SecondaryStructureDescriptor.java
new file mode 100644 (file)
index 0000000..bc7e4ac
--- /dev/null
@@ -0,0 +1,311 @@
+/*
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2.descriptors;
+
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import jalview.schemabinding.version2.SecondaryStructure;
+
+/**
+ * Class SecondaryStructureDescriptor.
+ * 
+ * @version $Revision$ $Date$
+ */
+public class SecondaryStructureDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SecondaryStructureDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "secondaryStructure";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _title
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_title", "title", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SecondaryStructure target = (SecondaryStructure) object;
+                return target.getTitle();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SecondaryStructure target = (SecondaryStructure) object;
+                    target.setTitle( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _title
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- _annotationId
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_annotationId", "annotationId", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SecondaryStructure target = (SecondaryStructure) object;
+                return target.getAnnotationId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SecondaryStructure target = (SecondaryStructure) object;
+                    target.setAnnotationId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _annotationId
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- _gapped
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_gapped", "gapped", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SecondaryStructure target = (SecondaryStructure) object;
+                if (!target.hasGapped()) { return null; }
+                return (target.getGapped() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SecondaryStructure target = (SecondaryStructure) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteGapped();
+                        return;
+                    }
+                    target.setGapped( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _gapped
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _viewerState
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_viewerState", "viewerState", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SecondaryStructure target = (SecondaryStructure) object;
+                return target.getViewerState();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SecondaryStructure target = (SecondaryStructure) object;
+                    target.setViewerState( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _viewerState
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.SecondaryStructure.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
+
+}