//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2019.06.07 at 02:21:15 PM BST 
//


package jalview.xml.binding.jalview;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlID;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>Java class for JalviewModel complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="JalviewModel">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="creationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
 *         &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="vamsasModel" type="{www.vamsas.ac.uk/jalview/version2}VAMSAS"/>
 *         &lt;sequence>
 *           &lt;element name="JSeq" maxOccurs="unbounded" minOccurs="0">
 *             &lt;complexType>
 *               &lt;complexContent>
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                   &lt;sequence>
 *                     &lt;element name="features" type="{www.jalview.org}feature" maxOccurs="unbounded" minOccurs="0"/>
 *                     &lt;element name="pdbids" maxOccurs="unbounded" minOccurs="0">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;extension base="{www.jalview.org}pdbentry">
 *                             &lt;sequence>
 *                               &lt;element name="structureState" maxOccurs="unbounded" minOccurs="0">
 *                                 &lt;complexType>
 *                                   &lt;simpleContent>
 *                                     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
 *                                       &lt;attGroup ref="{www.jalview.org}swingwindow"/>
 *                                       &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                                       &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                                       &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
 *                                       &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                                       &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
 *                                       &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                                     &lt;/extension>
 *                                   &lt;/simpleContent>
 *                                 &lt;/complexType>
 *                               &lt;/element>
 *                             &lt;/sequence>
 *                           &lt;/extension>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                     &lt;element name="hiddenSequences" type="{http://www.w3.org/2001/XMLSchema}int" maxOccurs="unbounded" minOccurs="0"/>
 *                     &lt;element name="rnaViewer" maxOccurs="unbounded" minOccurs="0">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                             &lt;sequence>
 *                               &lt;element name="secondaryStructure" maxOccurs="unbounded">
 *                                 &lt;complexType>
 *                                   &lt;complexContent>
 *                                     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                                       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                                       &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                                       &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                                       &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                                     &lt;/restriction>
 *                                   &lt;/complexContent>
 *                                 &lt;/complexType>
 *                               &lt;/element>
 *                             &lt;/sequence>
 *                             &lt;attGroup ref="{www.jalview.org}swingwindow"/>
 *                             &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                             &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                             &lt;attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                             &lt;attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                           &lt;/restriction>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                   &lt;/sequence>
 *                   &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="hidden" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="viewreference" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                 &lt;/restriction>
 *               &lt;/complexContent>
 *             &lt;/complexType>
 *           &lt;/element>
 *           &lt;element name="JGroup" maxOccurs="unbounded" minOccurs="0">
 *             &lt;complexType>
 *               &lt;complexContent>
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                   &lt;sequence>
 *                     &lt;element name="seq" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
 *                     &lt;element name="annotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/>
 *                   &lt;/sequence>
 *                   &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="outlineColour" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="displayBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="displayText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="colourText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
 *                   &lt;attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
 *                   &lt;attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                   &lt;attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                   &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                 &lt;/restriction>
 *               &lt;/complexContent>
 *             &lt;/complexType>
 *           &lt;/element>
 *           &lt;element name="Viewport" maxOccurs="unbounded" minOccurs="0">
 *             &lt;complexType>
 *               &lt;complexContent>
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                   &lt;sequence>
 *                     &lt;element name="AnnotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/>
 *                     &lt;element name="hiddenColumns" maxOccurs="unbounded" minOccurs="0">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                             &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                             &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                           &lt;/restriction>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                     &lt;element name="calcIdParam" maxOccurs="unbounded" minOccurs="0">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet">
 *                             &lt;attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                             &lt;attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                             &lt;attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                           &lt;/extension>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                   &lt;/sequence>
 *                   &lt;attGroup ref="{www.jalview.org}swingwindow"/>
 *                   &lt;attribute name="conservationSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="pidSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="showFullId" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="rightAlignIds" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="showText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="showColourText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                   &lt;attribute name="showBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="wrapAlignment" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="renderGaps" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="showSequenceFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="showNPfeatureTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="showDbRefTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="followHighlight" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
 *                   &lt;attribute name="followSelection" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
 *                   &lt;attribute name="showAnnotation" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="centreColumnLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                   &lt;attribute name="showGroupConservation" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                   &lt;attribute name="showGroupConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                   &lt;attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
 *                   &lt;attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                   &lt;attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                   &lt;attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
 *                   &lt;attribute name="startRes" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="startSeq" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="scaleProteinAsCdna" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
 *                   &lt;attribute name="viewName" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="sequenceSetId" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="gatheredViews" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
 *                   &lt;attribute name="complementId" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="showComplementFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                   &lt;attribute name="showComplementFeaturesOnTop" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                 &lt;/restriction>
 *               &lt;/complexContent>
 *             &lt;/complexType>
 *           &lt;/element>
 *           &lt;element name="UserColours" maxOccurs="unbounded" minOccurs="0">
 *             &lt;complexType>
 *               &lt;complexContent>
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                   &lt;sequence>
 *                     &lt;element name="UserColourScheme" type="{www.jalview.org/colours}JalviewUserColours"/>
 *                   &lt;/sequence>
 *                   &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                 &lt;/restriction>
 *               &lt;/complexContent>
 *             &lt;/complexType>
 *           &lt;/element>
 *           &lt;element name="tree" maxOccurs="unbounded" minOccurs="0">
 *             &lt;complexType>
 *               &lt;complexContent>
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                   &lt;sequence minOccurs="0">
 *                     &lt;element name="title" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                     &lt;element name="newick" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                   &lt;/sequence>
 *                   &lt;attGroup ref="{www.jalview.org}swingwindow"/>
 *                   &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
 *                   &lt;attribute name="showBootstrap" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="showDistances" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="markUnlinked" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="fitToWindow" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="currentTree" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
 *                   &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
 *                 &lt;/restriction>
 *               &lt;/complexContent>
 *             &lt;/complexType>
 *           &lt;/element>
 *           &lt;element name="PcaViewer" maxOccurs="unbounded" minOccurs="0">
 *             &lt;complexType>
 *               &lt;complexContent>
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                   &lt;sequence>
 *                     &lt;element name="sequencePoint" maxOccurs="unbounded">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                             &lt;attGroup ref="{www.jalview.org}position"/>
 *                             &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                           &lt;/restriction>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                     &lt;element name="axis" maxOccurs="3" minOccurs="3">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                             &lt;attGroup ref="{www.jalview.org}position"/>
 *                           &lt;/restriction>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                     &lt;element name="seqPointMin">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                             &lt;attGroup ref="{www.jalview.org}position"/>
 *                           &lt;/restriction>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                     &lt;element name="seqPointMax">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                             &lt;attGroup ref="{www.jalview.org}position"/>
 *                           &lt;/restriction>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                     &lt;element name="pcaData" type="{www.jalview.org}PcaDataType"/>
 *                   &lt;/sequence>
 *                   &lt;attGroup ref="{www.jalview.org}swingwindow"/>
 *                   &lt;attGroup ref="{www.jalview.org}SimilarityParams"/>
 *                   &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="scoreModelName" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                   &lt;attribute name="xDim" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="yDim" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="zDim" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                   &lt;attribute name="scaleFactor" type="{http://www.w3.org/2001/XMLSchema}float" />
 *                   &lt;attribute name="showLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                   &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                 &lt;/restriction>
 *               &lt;/complexContent>
 *             &lt;/complexType>
 *           &lt;/element>
 *           &lt;element name="FeatureSettings" minOccurs="0">
 *             &lt;complexType>
 *               &lt;complexContent>
 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                   &lt;sequence>
 *                     &lt;element name="setting" maxOccurs="unbounded" minOccurs="0">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                             &lt;sequence>
 *                               &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/>
 *                               &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/>
 *                             &lt;/sequence>
 *                             &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                             &lt;attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                             &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                             &lt;attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" />
 *                             &lt;attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                             &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" />
 *                             &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
 *                             &lt;attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" />
 *                             &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" />
 *                             &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" />
 *                             &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                             &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                           &lt;/restriction>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                     &lt;element name="group" maxOccurs="unbounded" minOccurs="0">
 *                       &lt;complexType>
 *                         &lt;complexContent>
 *                           &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                             &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                             &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
 *                           &lt;/restriction>
 *                         &lt;/complexContent>
 *                       &lt;/complexType>
 *                     &lt;/element>
 *                   &lt;/sequence>
 *                 &lt;/restriction>
 *               &lt;/complexContent>
 *             &lt;/complexType>
 *           &lt;/element>
 *         &lt;/sequence>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "JalviewModel", namespace = "www.jalview.org", propOrder = {
    "creationDate",
    "version",
    "vamsasModel",
    "jSeq",
    "jGroup",
    "viewport",
    "userColours",
    "tree",
    "pcaViewer",
    "featureSettings"
})
public class JalviewModel {

    @XmlElement(required = true)
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar creationDate;
    @XmlElement(required = true)
    protected String version;
    @XmlElement(required = true)
    protected VAMSAS vamsasModel;
    @XmlElement(name = "JSeq")
    protected List<JalviewModel.JSeq> jSeq;
    @XmlElement(name = "JGroup")
    protected List<JalviewModel.JGroup> jGroup;
    @XmlElement(name = "Viewport")
    protected List<JalviewModel.Viewport> viewport;
    @XmlElement(name = "UserColours")
    protected List<JalviewModel.UserColours> userColours;
    protected List<JalviewModel.Tree> tree;
    @XmlElement(name = "PcaViewer")
    protected List<JalviewModel.PcaViewer> pcaViewer;
    @XmlElement(name = "FeatureSettings")
    protected JalviewModel.FeatureSettings featureSettings;

    /**
     * Gets the value of the creationDate property.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getCreationDate() {
        return creationDate;
    }

    /**
     * Sets the value of the creationDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setCreationDate(XMLGregorianCalendar value) {
        this.creationDate = value;
    }

    /**
     * Gets the value of the version property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getVersion() {
        return version;
    }

    /**
     * Sets the value of the version property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setVersion(String value) {
        this.version = value;
    }

    /**
     * Gets the value of the vamsasModel property.
     * 
     * @return
     *     possible object is
     *     {@link VAMSAS }
     *     
     */
    public VAMSAS getVamsasModel() {
        return vamsasModel;
    }

    /**
     * Sets the value of the vamsasModel property.
     * 
     * @param value
     *     allowed object is
     *     {@link VAMSAS }
     *     
     */
    public void setVamsasModel(VAMSAS value) {
        this.vamsasModel = value;
    }

    /**
     * Gets the value of the jSeq property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the jSeq property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getJSeq().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JalviewModel.JSeq }
     * 
     * 
     */
    public List<JalviewModel.JSeq> getJSeq() {
        if (jSeq == null) {
            jSeq = new ArrayList<JalviewModel.JSeq>();
        }
        return this.jSeq;
    }

    /**
     * Gets the value of the jGroup property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the jGroup property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getJGroup().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JalviewModel.JGroup }
     * 
     * 
     */
    public List<JalviewModel.JGroup> getJGroup() {
        if (jGroup == null) {
            jGroup = new ArrayList<JalviewModel.JGroup>();
        }
        return this.jGroup;
    }

    /**
     * Gets the value of the viewport property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the viewport property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getViewport().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JalviewModel.Viewport }
     * 
     * 
     */
    public List<JalviewModel.Viewport> getViewport() {
        if (viewport == null) {
            viewport = new ArrayList<JalviewModel.Viewport>();
        }
        return this.viewport;
    }

    /**
     * Gets the value of the userColours property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the userColours property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getUserColours().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JalviewModel.UserColours }
     * 
     * 
     */
    public List<JalviewModel.UserColours> getUserColours() {
        if (userColours == null) {
            userColours = new ArrayList<JalviewModel.UserColours>();
        }
        return this.userColours;
    }

    /**
     * Gets the value of the tree property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the tree property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getTree().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JalviewModel.Tree }
     * 
     * 
     */
    public List<JalviewModel.Tree> getTree() {
        if (tree == null) {
            tree = new ArrayList<JalviewModel.Tree>();
        }
        return this.tree;
    }

    /**
     * Gets the value of the pcaViewer property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the pcaViewer property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPcaViewer().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JalviewModel.PcaViewer }
     * 
     * 
     */
    public List<JalviewModel.PcaViewer> getPcaViewer() {
        if (pcaViewer == null) {
            pcaViewer = new ArrayList<JalviewModel.PcaViewer>();
        }
        return this.pcaViewer;
    }

    /**
     * Gets the value of the featureSettings property.
     * 
     * @return
     *     possible object is
     *     {@link JalviewModel.FeatureSettings }
     *     
     */
    public JalviewModel.FeatureSettings getFeatureSettings() {
        return featureSettings;
    }

    /**
     * Sets the value of the featureSettings property.
     * 
     * @param value
     *     allowed object is
     *     {@link JalviewModel.FeatureSettings }
     *     
     */
    public void setFeatureSettings(JalviewModel.FeatureSettings value) {
        this.featureSettings = value;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="setting" maxOccurs="unbounded" minOccurs="0">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;sequence>
     *                   &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/>
     *                   &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/>
     *                 &lt;/sequence>
     *                 &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                 &lt;attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
     *                 &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *                 &lt;attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" />
     *                 &lt;attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" />
     *                 &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" />
     *                 &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
     *                 &lt;attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" />
     *                 &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" />
     *                 &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" />
     *                 &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *                 &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *         &lt;element name="group" maxOccurs="unbounded" minOccurs="0">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                 &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "setting",
        "group"
    })
    public static class FeatureSettings {

        @XmlElement(namespace = "www.jalview.org")
        protected List<JalviewModel.FeatureSettings.Setting> setting;
        @XmlElement(namespace = "www.jalview.org")
        protected List<JalviewModel.FeatureSettings.Group> group;

        /**
         * Gets the value of the setting property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the setting property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getSetting().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link JalviewModel.FeatureSettings.Setting }
         * 
         * 
         */
        public List<JalviewModel.FeatureSettings.Setting> getSetting() {
            if (setting == null) {
                setting = new ArrayList<JalviewModel.FeatureSettings.Setting>();
            }
            return this.setting;
        }

        /**
         * Gets the value of the group property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the group property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getGroup().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link JalviewModel.FeatureSettings.Group }
         * 
         * 
         */
        public List<JalviewModel.FeatureSettings.Group> getGroup() {
            if (group == null) {
                group = new ArrayList<JalviewModel.FeatureSettings.Group>();
            }
            return this.group;
        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
         *       &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "")
        public static class Group {

            @XmlAttribute(name = "name", required = true)
            protected String name;
            @XmlAttribute(name = "display", required = true)
            protected boolean display;

            /**
             * Gets the value of the name property.
             * 
             * @return
             *     possible object is
             *     {@link String }
             *     
             */
            public String getName() {
                return name;
            }

            /**
             * Sets the value of the name property.
             * 
             * @param value
             *     allowed object is
             *     {@link String }
             *     
             */
            public void setName(String value) {
                this.name = value;
            }

            /**
             * Gets the value of the display property.
             * 
             */
            public boolean isDisplay() {
                return display;
            }

            /**
             * Sets the value of the display property.
             * 
             */
            public void setDisplay(boolean value) {
                this.display = value;
            }

        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;sequence>
         *         &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/>
         *         &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/>
         *       &lt;/sequence>
         *       &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
         *       &lt;attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
         *       &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
         *       &lt;attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" />
         *       &lt;attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" />
         *       &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" />
         *       &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
         *       &lt;attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" />
         *       &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" />
         *       &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" />
         *       &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" />
         *       &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" />
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {
            "attributeName",
            "matcherSet"
        })
        public static class Setting {

            @XmlElement(namespace = "www.jalview.org")
            protected List<String> attributeName;
            @XmlElement(namespace = "www.jalview.org")
            protected FeatureMatcherSet matcherSet;
            @XmlAttribute(name = "type", required = true)
            protected String type;
            @XmlAttribute(name = "colour", required = true)
            protected int colour;
            @XmlAttribute(name = "display", required = true)
            protected boolean display;
            @XmlAttribute(name = "order")
            protected Float order;
            @XmlAttribute(name = "mincolour")
            protected Integer mincolour;
            @XmlAttribute(name = "noValueColour")
            protected NoValueColour noValueColour;
            @XmlAttribute(name = "threshold")
            protected Float threshold;
            @XmlAttribute(name = "threshstate")
            protected Integer threshstate;
            @XmlAttribute(name = "max")
            protected Float max;
            @XmlAttribute(name = "min")
            protected Float min;
            @XmlAttribute(name = "colourByLabel")
            protected Boolean colourByLabel;
            @XmlAttribute(name = "autoScale")
            protected Boolean autoScale;

            /**
             * Gets the value of the attributeName property.
             * 
             * <p>
             * This accessor method returns a reference to the live list,
             * not a snapshot. Therefore any modification you make to the
             * returned list will be present inside the JAXB object.
             * This is why there is not a <CODE>set</CODE> method for the attributeName property.
             * 
             * <p>
             * For example, to add a new item, do as follows:
             * <pre>
             *    getAttributeName().add(newItem);
             * </pre>
             * 
             * 
             * <p>
             * Objects of the following type(s) are allowed in the list
             * {@link String }
             * 
             * 
             */
            public List<String> getAttributeName() {
                if (attributeName == null) {
                    attributeName = new ArrayList<String>();
                }
                return this.attributeName;
            }

            /**
             * Gets the value of the matcherSet property.
             * 
             * @return
             *     possible object is
             *     {@link FeatureMatcherSet }
             *     
             */
            public FeatureMatcherSet getMatcherSet() {
                return matcherSet;
            }

            /**
             * Sets the value of the matcherSet property.
             * 
             * @param value
             *     allowed object is
             *     {@link FeatureMatcherSet }
             *     
             */
            public void setMatcherSet(FeatureMatcherSet value) {
                this.matcherSet = value;
            }

            /**
             * Gets the value of the type property.
             * 
             * @return
             *     possible object is
             *     {@link String }
             *     
             */
            public String getType() {
                return type;
            }

            /**
             * Sets the value of the type property.
             * 
             * @param value
             *     allowed object is
             *     {@link String }
             *     
             */
            public void setType(String value) {
                this.type = value;
            }

            /**
             * Gets the value of the colour property.
             * 
             */
            public int getColour() {
                return colour;
            }

            /**
             * Sets the value of the colour property.
             * 
             */
            public void setColour(int value) {
                this.colour = value;
            }

            /**
             * Gets the value of the display property.
             * 
             */
            public boolean isDisplay() {
                return display;
            }

            /**
             * Sets the value of the display property.
             * 
             */
            public void setDisplay(boolean value) {
                this.display = value;
            }

            /**
             * Gets the value of the order property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getOrder() {
                return order;
            }

            /**
             * Sets the value of the order property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setOrder(Float value) {
                this.order = value;
            }

            /**
             * Gets the value of the mincolour property.
             * 
             * @return
             *     possible object is
             *     {@link Integer }
             *     
             */
            public Integer getMincolour() {
                return mincolour;
            }

            /**
             * Sets the value of the mincolour property.
             * 
             * @param value
             *     allowed object is
             *     {@link Integer }
             *     
             */
            public void setMincolour(Integer value) {
                this.mincolour = value;
            }

            /**
             * Gets the value of the noValueColour property.
             * 
             * @return
             *     possible object is
             *     {@link NoValueColour }
             *     
             */
            public NoValueColour getNoValueColour() {
                if (noValueColour == null) {
                    return NoValueColour.MIN;
                } else {
                    return noValueColour;
                }
            }

            /**
             * Sets the value of the noValueColour property.
             * 
             * @param value
             *     allowed object is
             *     {@link NoValueColour }
             *     
             */
            public void setNoValueColour(NoValueColour value) {
                this.noValueColour = value;
            }

            /**
             * Gets the value of the threshold property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getThreshold() {
                return threshold;
            }

            /**
             * Sets the value of the threshold property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setThreshold(Float value) {
                this.threshold = value;
            }

            /**
             * Gets the value of the threshstate property.
             * 
             * @return
             *     possible object is
             *     {@link Integer }
             *     
             */
            public Integer getThreshstate() {
                return threshstate;
            }

            /**
             * Sets the value of the threshstate property.
             * 
             * @param value
             *     allowed object is
             *     {@link Integer }
             *     
             */
            public void setThreshstate(Integer value) {
                this.threshstate = value;
            }

            /**
             * Gets the value of the max property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getMax() {
                return max;
            }

            /**
             * Sets the value of the max property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setMax(Float value) {
                this.max = value;
            }

            /**
             * Gets the value of the min property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getMin() {
                return min;
            }

            /**
             * Sets the value of the min property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setMin(Float value) {
                this.min = value;
            }

            /**
             * Gets the value of the colourByLabel property.
             * 
             * @return
             *     possible object is
             *     {@link Boolean }
             *     
             */
            public Boolean isColourByLabel() {
                return colourByLabel;
            }

            /**
             * Sets the value of the colourByLabel property.
             * 
             * @param value
             *     allowed object is
             *     {@link Boolean }
             *     
             */
            public void setColourByLabel(Boolean value) {
                this.colourByLabel = value;
            }

            /**
             * Gets the value of the autoScale property.
             * 
             * @return
             *     possible object is
             *     {@link Boolean }
             *     
             */
            public Boolean isAutoScale() {
                return autoScale;
            }

            /**
             * Sets the value of the autoScale property.
             * 
             * @param value
             *     allowed object is
             *     {@link Boolean }
             *     
             */
            public void setAutoScale(Boolean value) {
                this.autoScale = value;
            }

        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="seq" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
     *         &lt;element name="annotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/>
     *       &lt;/sequence>
     *       &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="outlineColour" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="displayBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="displayText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="colourText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
     *       &lt;attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
     *       &lt;attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *       &lt;attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "seq",
        "annotationColours"
    })
    public static class JGroup {

        @XmlElement(namespace = "www.jalview.org", required = true)
        protected List<String> seq;
        @XmlElement(namespace = "www.jalview.org")
        protected AnnotationColourScheme annotationColours;
        @XmlAttribute(name = "start")
        protected Integer start;
        @XmlAttribute(name = "end")
        protected Integer end;
        @XmlAttribute(name = "name")
        protected String name;
        @XmlAttribute(name = "colour")
        protected String colour;
        @XmlAttribute(name = "consThreshold")
        protected Integer consThreshold;
        @XmlAttribute(name = "pidThreshold")
        protected Integer pidThreshold;
        @XmlAttribute(name = "outlineColour")
        protected Integer outlineColour;
        @XmlAttribute(name = "displayBoxes")
        protected Boolean displayBoxes;
        @XmlAttribute(name = "displayText")
        protected Boolean displayText;
        @XmlAttribute(name = "colourText")
        protected Boolean colourText;
        @XmlAttribute(name = "textCol1")
        protected Integer textCol1;
        @XmlAttribute(name = "textCol2")
        protected Integer textCol2;
        @XmlAttribute(name = "textColThreshold")
        protected Integer textColThreshold;
        @XmlAttribute(name = "showUnconserved")
        protected Boolean showUnconserved;
        @XmlAttribute(name = "ignoreGapsinConsensus")
        protected Boolean ignoreGapsinConsensus;
        @XmlAttribute(name = "showConsensusHistogram")
        protected Boolean showConsensusHistogram;
        @XmlAttribute(name = "showSequenceLogo")
        protected Boolean showSequenceLogo;
        @XmlAttribute(name = "normaliseSequenceLogo")
        protected Boolean normaliseSequenceLogo;
        @XmlAttribute(name = "id")
        protected String id;

        /**
         * Gets the value of the seq property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the seq property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getSeq().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link String }
         * 
         * 
         */
        public List<String> getSeq() {
            if (seq == null) {
                seq = new ArrayList<String>();
            }
            return this.seq;
        }

        /**
         * Gets the value of the annotationColours property.
         * 
         * @return
         *     possible object is
         *     {@link AnnotationColourScheme }
         *     
         */
        public AnnotationColourScheme getAnnotationColours() {
            return annotationColours;
        }

        /**
         * Sets the value of the annotationColours property.
         * 
         * @param value
         *     allowed object is
         *     {@link AnnotationColourScheme }
         *     
         */
        public void setAnnotationColours(AnnotationColourScheme value) {
            this.annotationColours = value;
        }

        /**
         * Gets the value of the start property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getStart() {
            return start;
        }

        /**
         * Sets the value of the start property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setStart(Integer value) {
            this.start = value;
        }

        /**
         * Gets the value of the end property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getEnd() {
            return end;
        }

        /**
         * Sets the value of the end property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setEnd(Integer value) {
            this.end = value;
        }

        /**
         * Gets the value of the name property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getName() {
            return name;
        }

        /**
         * Sets the value of the name property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setName(String value) {
            this.name = value;
        }

        /**
         * Gets the value of the colour property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getColour() {
            return colour;
        }

        /**
         * Sets the value of the colour property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setColour(String value) {
            this.colour = value;
        }

        /**
         * Gets the value of the consThreshold property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getConsThreshold() {
            return consThreshold;
        }

        /**
         * Sets the value of the consThreshold property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setConsThreshold(Integer value) {
            this.consThreshold = value;
        }

        /**
         * Gets the value of the pidThreshold property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getPidThreshold() {
            return pidThreshold;
        }

        /**
         * Sets the value of the pidThreshold property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setPidThreshold(Integer value) {
            this.pidThreshold = value;
        }

        /**
         * Gets the value of the outlineColour property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getOutlineColour() {
            return outlineColour;
        }

        /**
         * Sets the value of the outlineColour property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setOutlineColour(Integer value) {
            this.outlineColour = value;
        }

        /**
         * Gets the value of the displayBoxes property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isDisplayBoxes() {
            return displayBoxes;
        }

        /**
         * Sets the value of the displayBoxes property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setDisplayBoxes(Boolean value) {
            this.displayBoxes = value;
        }

        /**
         * Gets the value of the displayText property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isDisplayText() {
            return displayText;
        }

        /**
         * Sets the value of the displayText property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setDisplayText(Boolean value) {
            this.displayText = value;
        }

        /**
         * Gets the value of the colourText property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isColourText() {
            return colourText;
        }

        /**
         * Sets the value of the colourText property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setColourText(Boolean value) {
            this.colourText = value;
        }

        /**
         * Gets the value of the textCol1 property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getTextCol1() {
            return textCol1;
        }

        /**
         * Sets the value of the textCol1 property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setTextCol1(Integer value) {
            this.textCol1 = value;
        }

        /**
         * Gets the value of the textCol2 property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getTextCol2() {
            return textCol2;
        }

        /**
         * Sets the value of the textCol2 property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setTextCol2(Integer value) {
            this.textCol2 = value;
        }

        /**
         * Gets the value of the textColThreshold property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getTextColThreshold() {
            return textColThreshold;
        }

        /**
         * Sets the value of the textColThreshold property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setTextColThreshold(Integer value) {
            this.textColThreshold = value;
        }

        /**
         * Gets the value of the showUnconserved property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowUnconserved() {
            return showUnconserved;
        }

        /**
         * Sets the value of the showUnconserved property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowUnconserved(Boolean value) {
            this.showUnconserved = value;
        }

        /**
         * Gets the value of the ignoreGapsinConsensus property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isIgnoreGapsinConsensus() {
            if (ignoreGapsinConsensus == null) {
                return true;
            } else {
                return ignoreGapsinConsensus;
            }
        }

        /**
         * Sets the value of the ignoreGapsinConsensus property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setIgnoreGapsinConsensus(Boolean value) {
            this.ignoreGapsinConsensus = value;
        }

        /**
         * Gets the value of the showConsensusHistogram property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isShowConsensusHistogram() {
            if (showConsensusHistogram == null) {
                return true;
            } else {
                return showConsensusHistogram;
            }
        }

        /**
         * Sets the value of the showConsensusHistogram property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowConsensusHistogram(Boolean value) {
            this.showConsensusHistogram = value;
        }

        /**
         * Gets the value of the showSequenceLogo property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isShowSequenceLogo() {
            if (showSequenceLogo == null) {
                return false;
            } else {
                return showSequenceLogo;
            }
        }

        /**
         * Sets the value of the showSequenceLogo property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowSequenceLogo(Boolean value) {
            this.showSequenceLogo = value;
        }

        /**
         * Gets the value of the normaliseSequenceLogo property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isNormaliseSequenceLogo() {
            if (normaliseSequenceLogo == null) {
                return false;
            } else {
                return normaliseSequenceLogo;
            }
        }

        /**
         * Sets the value of the normaliseSequenceLogo property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setNormaliseSequenceLogo(Boolean value) {
            this.normaliseSequenceLogo = value;
        }

        /**
         * Gets the value of the id property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getId() {
            return id;
        }

        /**
         * Sets the value of the id property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setId(String value) {
            this.id = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="features" type="{www.jalview.org}feature" maxOccurs="unbounded" minOccurs="0"/>
     *         &lt;element name="pdbids" maxOccurs="unbounded" minOccurs="0">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;extension base="{www.jalview.org}pdbentry">
     *                 &lt;sequence>
     *                   &lt;element name="structureState" maxOccurs="unbounded" minOccurs="0">
     *                     &lt;complexType>
     *                       &lt;simpleContent>
     *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
     *                           &lt;attGroup ref="{www.jalview.org}swingwindow"/>
     *                           &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *                           &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                           &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
     *                           &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *                           &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
     *                           &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                         &lt;/extension>
     *                       &lt;/simpleContent>
     *                     &lt;/complexType>
     *                   &lt;/element>
     *                 &lt;/sequence>
     *               &lt;/extension>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *         &lt;element name="hiddenSequences" type="{http://www.w3.org/2001/XMLSchema}int" maxOccurs="unbounded" minOccurs="0"/>
     *         &lt;element name="rnaViewer" maxOccurs="unbounded" minOccurs="0">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;sequence>
     *                   &lt;element name="secondaryStructure" maxOccurs="unbounded">
     *                     &lt;complexType>
     *                       &lt;complexContent>
     *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                           &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                           &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                           &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *                           &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                         &lt;/restriction>
     *                       &lt;/complexContent>
     *                     &lt;/complexType>
     *                   &lt;/element>
     *                 &lt;/sequence>
     *                 &lt;attGroup ref="{www.jalview.org}swingwindow"/>
     *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                 &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                 &lt;attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" />
     *                 &lt;attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" />
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *       &lt;/sequence>
     *       &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="hidden" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="viewreference" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "features",
        "pdbids",
        "hiddenSequences",
        "rnaViewer"
    })
    public static class JSeq {

        @XmlElement(namespace = "www.jalview.org")
        protected List<Feature> features;
        @XmlElement(namespace = "www.jalview.org")
        protected List<JalviewModel.JSeq.Pdbids> pdbids;
        @XmlElement(namespace = "www.jalview.org", type = Integer.class)
        protected List<Integer> hiddenSequences;
        @XmlElement(namespace = "www.jalview.org")
        protected List<JalviewModel.JSeq.RnaViewer> rnaViewer;
        @XmlAttribute(name = "colour")
        protected Integer colour;
        @XmlAttribute(name = "start", required = true)
        protected int start;
        @XmlAttribute(name = "end", required = true)
        protected int end;
        @XmlAttribute(name = "id", required = true)
        protected String id;
        @XmlAttribute(name = "hidden")
        protected Boolean hidden;
        @XmlAttribute(name = "viewreference")
        protected Boolean viewreference;

        /**
         * Gets the value of the features property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the features property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getFeatures().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link Feature }
         * 
         * 
         */
        public List<Feature> getFeatures() {
            if (features == null) {
                features = new ArrayList<Feature>();
            }
            return this.features;
        }

        /**
         * Gets the value of the pdbids property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the pdbids property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getPdbids().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link JalviewModel.JSeq.Pdbids }
         * 
         * 
         */
        public List<JalviewModel.JSeq.Pdbids> getPdbids() {
            if (pdbids == null) {
                pdbids = new ArrayList<JalviewModel.JSeq.Pdbids>();
            }
            return this.pdbids;
        }

        /**
         * Gets the value of the hiddenSequences property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the hiddenSequences property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getHiddenSequences().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link Integer }
         * 
         * 
         */
        public List<Integer> getHiddenSequences() {
            if (hiddenSequences == null) {
                hiddenSequences = new ArrayList<Integer>();
            }
            return this.hiddenSequences;
        }

        /**
         * Gets the value of the rnaViewer property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the rnaViewer property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getRnaViewer().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link JalviewModel.JSeq.RnaViewer }
         * 
         * 
         */
        public List<JalviewModel.JSeq.RnaViewer> getRnaViewer() {
            if (rnaViewer == null) {
                rnaViewer = new ArrayList<JalviewModel.JSeq.RnaViewer>();
            }
            return this.rnaViewer;
        }

        /**
         * Gets the value of the colour property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getColour() {
            return colour;
        }

        /**
         * Sets the value of the colour property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setColour(Integer value) {
            this.colour = value;
        }

        /**
         * Gets the value of the start property.
         * 
         */
        public int getStart() {
            return start;
        }

        /**
         * Sets the value of the start property.
         * 
         */
        public void setStart(int value) {
            this.start = value;
        }

        /**
         * Gets the value of the end property.
         * 
         */
        public int getEnd() {
            return end;
        }

        /**
         * Sets the value of the end property.
         * 
         */
        public void setEnd(int value) {
            this.end = value;
        }

        /**
         * Gets the value of the id property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getId() {
            return id;
        }

        /**
         * Sets the value of the id property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setId(String value) {
            this.id = value;
        }

        /**
         * Gets the value of the hidden property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isHidden() {
            return hidden;
        }

        /**
         * Sets the value of the hidden property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setHidden(Boolean value) {
            this.hidden = value;
        }

        /**
         * Gets the value of the viewreference property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isViewreference() {
            return viewreference;
        }

        /**
         * Sets the value of the viewreference property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setViewreference(Boolean value) {
            this.viewreference = value;
        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;extension base="{www.jalview.org}pdbentry">
         *       &lt;sequence>
         *         &lt;element name="structureState" maxOccurs="unbounded" minOccurs="0">
         *           &lt;complexType>
         *             &lt;simpleContent>
         *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
         *                 &lt;attGroup ref="{www.jalview.org}swingwindow"/>
         *                 &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" />
         *                 &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
         *                 &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
         *                 &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
         *                 &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
         *                 &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
         *               &lt;/extension>
         *             &lt;/simpleContent>
         *           &lt;/complexType>
         *         &lt;/element>
         *       &lt;/sequence>
         *     &lt;/extension>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {
            "structureState"
        })
        public static class Pdbids
            extends Pdbentry
        {

            @XmlElement(namespace = "www.jalview.org")
            protected List<JalviewModel.JSeq.Pdbids.StructureState> structureState;

            /**
             * Gets the value of the structureState property.
             * 
             * <p>
             * This accessor method returns a reference to the live list,
             * not a snapshot. Therefore any modification you make to the
             * returned list will be present inside the JAXB object.
             * This is why there is not a <CODE>set</CODE> method for the structureState property.
             * 
             * <p>
             * For example, to add a new item, do as follows:
             * <pre>
             *    getStructureState().add(newItem);
             * </pre>
             * 
             * 
             * <p>
             * Objects of the following type(s) are allowed in the list
             * {@link JalviewModel.JSeq.Pdbids.StructureState }
             * 
             * 
             */
            public List<JalviewModel.JSeq.Pdbids.StructureState> getStructureState() {
                if (structureState == null) {
                    structureState = new ArrayList<JalviewModel.JSeq.Pdbids.StructureState>();
                }
                return this.structureState;
            }


            /**
             * <p>Java class for anonymous complex type.
             * 
             * <p>The following schema fragment specifies the expected content contained within this class.
             * 
             * <pre>
             * &lt;complexType>
             *   &lt;simpleContent>
             *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
             *       &lt;attGroup ref="{www.jalview.org}swingwindow"/>
             *       &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" />
             *       &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
             *       &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
             *       &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
             *       &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
             *       &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
             *     &lt;/extension>
             *   &lt;/simpleContent>
             * &lt;/complexType>
             * </pre>
             * 
             * 
             */
            @XmlAccessorType(XmlAccessType.FIELD)
            @XmlType(name = "", propOrder = {
                "value"
            })
            public static class StructureState {

                @XmlValue
                protected String value;
                @XmlAttribute(name = "visible")
                protected Boolean visible;
                @XmlAttribute(name = "viewId")
                protected String viewId;
                @XmlAttribute(name = "alignwithAlignPanel")
                protected Boolean alignwithAlignPanel;
                @XmlAttribute(name = "colourwithAlignPanel")
                protected Boolean colourwithAlignPanel;
                @XmlAttribute(name = "colourByJmol")
                protected Boolean colourByJmol;
                @XmlAttribute(name = "type")
                protected String type;
                @XmlAttribute(name = "width")
                protected Integer width;
                @XmlAttribute(name = "height")
                protected Integer height;
                @XmlAttribute(name = "xpos")
                protected Integer xpos;
                @XmlAttribute(name = "ypos")
                protected Integer ypos;

                /**
                 * Gets the value of the value property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link String }
                 *     
                 */
                public String getValue() {
                    return value;
                }

                /**
                 * Sets the value of the value property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link String }
                 *     
                 */
                public void setValue(String value) {
                    this.value = value;
                }

                /**
                 * Gets the value of the visible property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link Boolean }
                 *     
                 */
                public Boolean isVisible() {
                    return visible;
                }

                /**
                 * Sets the value of the visible property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link Boolean }
                 *     
                 */
                public void setVisible(Boolean value) {
                    this.visible = value;
                }

                /**
                 * Gets the value of the viewId property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link String }
                 *     
                 */
                public String getViewId() {
                    return viewId;
                }

                /**
                 * Sets the value of the viewId property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link String }
                 *     
                 */
                public void setViewId(String value) {
                    this.viewId = value;
                }

                /**
                 * Gets the value of the alignwithAlignPanel property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link Boolean }
                 *     
                 */
                public boolean isAlignwithAlignPanel() {
                    if (alignwithAlignPanel == null) {
                        return true;
                    } else {
                        return alignwithAlignPanel;
                    }
                }

                /**
                 * Sets the value of the alignwithAlignPanel property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link Boolean }
                 *     
                 */
                public void setAlignwithAlignPanel(Boolean value) {
                    this.alignwithAlignPanel = value;
                }

                /**
                 * Gets the value of the colourwithAlignPanel property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link Boolean }
                 *     
                 */
                public boolean isColourwithAlignPanel() {
                    if (colourwithAlignPanel == null) {
                        return false;
                    } else {
                        return colourwithAlignPanel;
                    }
                }

                /**
                 * Sets the value of the colourwithAlignPanel property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link Boolean }
                 *     
                 */
                public void setColourwithAlignPanel(Boolean value) {
                    this.colourwithAlignPanel = value;
                }

                /**
                 * Gets the value of the colourByJmol property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link Boolean }
                 *     
                 */
                public boolean isColourByJmol() {
                    if (colourByJmol == null) {
                        return true;
                    } else {
                        return colourByJmol;
                    }
                }

                /**
                 * Sets the value of the colourByJmol property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link Boolean }
                 *     
                 */
                public void setColourByJmol(Boolean value) {
                    this.colourByJmol = value;
                }

                /**
                 * Gets the value of the type property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link String }
                 *     
                 */
                public String getType() {
                    return type;
                }

                /**
                 * Sets the value of the type property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link String }
                 *     
                 */
                public void setType(String value) {
                    this.type = value;
                }

                /**
                 * Gets the value of the width property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link Integer }
                 *     
                 */
                public Integer getWidth() {
                    return width;
                }

                /**
                 * Sets the value of the width property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link Integer }
                 *     
                 */
                public void setWidth(Integer value) {
                    this.width = value;
                }

                /**
                 * Gets the value of the height property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link Integer }
                 *     
                 */
                public Integer getHeight() {
                    return height;
                }

                /**
                 * Sets the value of the height property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link Integer }
                 *     
                 */
                public void setHeight(Integer value) {
                    this.height = value;
                }

                /**
                 * Gets the value of the xpos property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link Integer }
                 *     
                 */
                public Integer getXpos() {
                    return xpos;
                }

                /**
                 * Sets the value of the xpos property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link Integer }
                 *     
                 */
                public void setXpos(Integer value) {
                    this.xpos = value;
                }

                /**
                 * Gets the value of the ypos property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link Integer }
                 *     
                 */
                public Integer getYpos() {
                    return ypos;
                }

                /**
                 * Sets the value of the ypos property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link Integer }
                 *     
                 */
                public void setYpos(Integer value) {
                    this.ypos = value;
                }

            }

        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;sequence>
         *         &lt;element name="secondaryStructure" maxOccurs="unbounded">
         *           &lt;complexType>
         *             &lt;complexContent>
         *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *                 &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
         *                 &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
         *                 &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" />
         *                 &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" />
         *               &lt;/restriction>
         *             &lt;/complexContent>
         *           &lt;/complexType>
         *         &lt;/element>
         *       &lt;/sequence>
         *       &lt;attGroup ref="{www.jalview.org}swingwindow"/>
         *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
         *       &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
         *       &lt;attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" />
         *       &lt;attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" />
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {
            "secondaryStructure"
        })
        public static class RnaViewer {

            @XmlElement(namespace = "www.jalview.org", required = true)
            protected List<JalviewModel.JSeq.RnaViewer.SecondaryStructure> secondaryStructure;
            @XmlAttribute(name = "title")
            protected String title;
            @XmlAttribute(name = "viewId")
            protected String viewId;
            @XmlAttribute(name = "dividerLocation")
            protected Integer dividerLocation;
            @XmlAttribute(name = "selectedRna")
            protected Integer selectedRna;
            @XmlAttribute(name = "width")
            protected Integer width;
            @XmlAttribute(name = "height")
            protected Integer height;
            @XmlAttribute(name = "xpos")
            protected Integer xpos;
            @XmlAttribute(name = "ypos")
            protected Integer ypos;

            /**
             * Gets the value of the secondaryStructure property.
             * 
             * <p>
             * This accessor method returns a reference to the live list,
             * not a snapshot. Therefore any modification you make to the
             * returned list will be present inside the JAXB object.
             * This is why there is not a <CODE>set</CODE> method for the secondaryStructure property.
             * 
             * <p>
             * For example, to add a new item, do as follows:
             * <pre>
             *    getSecondaryStructure().add(newItem);
             * </pre>
             * 
             * 
             * <p>
             * Objects of the following type(s) are allowed in the list
             * {@link JalviewModel.JSeq.RnaViewer.SecondaryStructure }
             * 
             * 
             */
            public List<JalviewModel.JSeq.RnaViewer.SecondaryStructure> getSecondaryStructure() {
                if (secondaryStructure == null) {
                    secondaryStructure = new ArrayList<JalviewModel.JSeq.RnaViewer.SecondaryStructure>();
                }
                return this.secondaryStructure;
            }

            /**
             * Gets the value of the title property.
             * 
             * @return
             *     possible object is
             *     {@link String }
             *     
             */
            public String getTitle() {
                return title;
            }

            /**
             * Sets the value of the title property.
             * 
             * @param value
             *     allowed object is
             *     {@link String }
             *     
             */
            public void setTitle(String value) {
                this.title = value;
            }

            /**
             * Gets the value of the viewId property.
             * 
             * @return
             *     possible object is
             *     {@link String }
             *     
             */
            public String getViewId() {
                return viewId;
            }

            /**
             * Sets the value of the viewId property.
             * 
             * @param value
             *     allowed object is
             *     {@link String }
             *     
             */
            public void setViewId(String value) {
                this.viewId = value;
            }

            /**
             * Gets the value of the dividerLocation property.
             * 
             * @return
             *     possible object is
             *     {@link Integer }
             *     
             */
            public Integer getDividerLocation() {
                return dividerLocation;
            }

            /**
             * Sets the value of the dividerLocation property.
             * 
             * @param value
             *     allowed object is
             *     {@link Integer }
             *     
             */
            public void setDividerLocation(Integer value) {
                this.dividerLocation = value;
            }

            /**
             * Gets the value of the selectedRna property.
             * 
             * @return
             *     possible object is
             *     {@link Integer }
             *     
             */
            public Integer getSelectedRna() {
                return selectedRna;
            }

            /**
             * Sets the value of the selectedRna property.
             * 
             * @param value
             *     allowed object is
             *     {@link Integer }
             *     
             */
            public void setSelectedRna(Integer value) {
                this.selectedRna = value;
            }

            /**
             * Gets the value of the width property.
             * 
             * @return
             *     possible object is
             *     {@link Integer }
             *     
             */
            public Integer getWidth() {
                return width;
            }

            /**
             * Sets the value of the width property.
             * 
             * @param value
             *     allowed object is
             *     {@link Integer }
             *     
             */
            public void setWidth(Integer value) {
                this.width = value;
            }

            /**
             * Gets the value of the height property.
             * 
             * @return
             *     possible object is
             *     {@link Integer }
             *     
             */
            public Integer getHeight() {
                return height;
            }

            /**
             * Sets the value of the height property.
             * 
             * @param value
             *     allowed object is
             *     {@link Integer }
             *     
             */
            public void setHeight(Integer value) {
                this.height = value;
            }

            /**
             * Gets the value of the xpos property.
             * 
             * @return
             *     possible object is
             *     {@link Integer }
             *     
             */
            public Integer getXpos() {
                return xpos;
            }

            /**
             * Sets the value of the xpos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Integer }
             *     
             */
            public void setXpos(Integer value) {
                this.xpos = value;
            }

            /**
             * Gets the value of the ypos property.
             * 
             * @return
             *     possible object is
             *     {@link Integer }
             *     
             */
            public Integer getYpos() {
                return ypos;
            }

            /**
             * Sets the value of the ypos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Integer }
             *     
             */
            public void setYpos(Integer value) {
                this.ypos = value;
            }


            /**
             * <p>Java class for anonymous complex type.
             * 
             * <p>The following schema fragment specifies the expected content contained within this class.
             * 
             * <pre>
             * &lt;complexType>
             *   &lt;complexContent>
             *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
             *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
             *       &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
             *       &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" />
             *       &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" />
             *     &lt;/restriction>
             *   &lt;/complexContent>
             * &lt;/complexType>
             * </pre>
             * 
             * 
             */
            @XmlAccessorType(XmlAccessType.FIELD)
            @XmlType(name = "")
            public static class SecondaryStructure {

                @XmlAttribute(name = "title")
                protected String title;
                @XmlAttribute(name = "annotationId", required = true)
                protected String annotationId;
                @XmlAttribute(name = "gapped")
                protected Boolean gapped;
                @XmlAttribute(name = "viewerState")
                protected String viewerState;

                /**
                 * Gets the value of the title property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link String }
                 *     
                 */
                public String getTitle() {
                    return title;
                }

                /**
                 * Sets the value of the title property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link String }
                 *     
                 */
                public void setTitle(String value) {
                    this.title = value;
                }

                /**
                 * Gets the value of the annotationId property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link String }
                 *     
                 */
                public String getAnnotationId() {
                    return annotationId;
                }

                /**
                 * Sets the value of the annotationId property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link String }
                 *     
                 */
                public void setAnnotationId(String value) {
                    this.annotationId = value;
                }

                /**
                 * Gets the value of the gapped property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link Boolean }
                 *     
                 */
                public Boolean isGapped() {
                    return gapped;
                }

                /**
                 * Sets the value of the gapped property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link Boolean }
                 *     
                 */
                public void setGapped(Boolean value) {
                    this.gapped = value;
                }

                /**
                 * Gets the value of the viewerState property.
                 * 
                 * @return
                 *     possible object is
                 *     {@link String }
                 *     
                 */
                public String getViewerState() {
                    return viewerState;
                }

                /**
                 * Sets the value of the viewerState property.
                 * 
                 * @param value
                 *     allowed object is
                 *     {@link String }
                 *     
                 */
                public void setViewerState(String value) {
                    this.viewerState = value;
                }

            }

        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="sequencePoint" maxOccurs="unbounded">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;attGroup ref="{www.jalview.org}position"/>
     *                 &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" />
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *         &lt;element name="axis" maxOccurs="3" minOccurs="3">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;attGroup ref="{www.jalview.org}position"/>
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *         &lt;element name="seqPointMin">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;attGroup ref="{www.jalview.org}position"/>
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *         &lt;element name="seqPointMax">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;attGroup ref="{www.jalview.org}position"/>
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *         &lt;element name="pcaData" type="{www.jalview.org}PcaDataType"/>
     *       &lt;/sequence>
     *       &lt;attGroup ref="{www.jalview.org}swingwindow"/>
     *       &lt;attGroup ref="{www.jalview.org}SimilarityParams"/>
     *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="scoreModelName" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="xDim" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="yDim" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="zDim" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="scaleFactor" type="{http://www.w3.org/2001/XMLSchema}float" />
     *       &lt;attribute name="showLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "sequencePoint",
        "axis",
        "seqPointMin",
        "seqPointMax",
        "pcaData"
    })
    public static class PcaViewer {

        @XmlElement(namespace = "www.jalview.org", required = true)
        protected List<JalviewModel.PcaViewer.SequencePoint> sequencePoint;
        @XmlElement(namespace = "www.jalview.org", required = true)
        protected List<JalviewModel.PcaViewer.Axis> axis;
        @XmlElement(namespace = "www.jalview.org", required = true)
        protected JalviewModel.PcaViewer.SeqPointMin seqPointMin;
        @XmlElement(namespace = "www.jalview.org", required = true)
        protected JalviewModel.PcaViewer.SeqPointMax seqPointMax;
        @XmlElement(namespace = "www.jalview.org", required = true)
        protected PcaDataType pcaData;
        @XmlAttribute(name = "title")
        protected String title;
        @XmlAttribute(name = "scoreModelName")
        protected String scoreModelName;
        @XmlAttribute(name = "xDim")
        protected Integer xDim;
        @XmlAttribute(name = "yDim")
        protected Integer yDim;
        @XmlAttribute(name = "zDim")
        protected Integer zDim;
        @XmlAttribute(name = "bgColour")
        protected Integer bgColour;
        @XmlAttribute(name = "scaleFactor")
        protected Float scaleFactor;
        @XmlAttribute(name = "showLabels")
        protected Boolean showLabels;
        @XmlAttribute(name = "linkToAllViews")
        protected Boolean linkToAllViews;
        @XmlAttribute(name = "width")
        protected Integer width;
        @XmlAttribute(name = "height")
        protected Integer height;
        @XmlAttribute(name = "xpos")
        protected Integer xpos;
        @XmlAttribute(name = "ypos")
        protected Integer ypos;
        @XmlAttribute(name = "includeGaps")
        protected Boolean includeGaps;
        @XmlAttribute(name = "matchGaps")
        protected Boolean matchGaps;
        @XmlAttribute(name = "includeGappedColumns")
        protected Boolean includeGappedColumns;
        @XmlAttribute(name = "denominateByShortestLength")
        protected Boolean denominateByShortestLength;

        /**
         * Gets the value of the sequencePoint property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the sequencePoint property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getSequencePoint().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link JalviewModel.PcaViewer.SequencePoint }
         * 
         * 
         */
        public List<JalviewModel.PcaViewer.SequencePoint> getSequencePoint() {
            if (sequencePoint == null) {
                sequencePoint = new ArrayList<JalviewModel.PcaViewer.SequencePoint>();
            }
            return this.sequencePoint;
        }

        /**
         * Gets the value of the axis property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the axis property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getAxis().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link JalviewModel.PcaViewer.Axis }
         * 
         * 
         */
        public List<JalviewModel.PcaViewer.Axis> getAxis() {
            if (axis == null) {
                axis = new ArrayList<JalviewModel.PcaViewer.Axis>();
            }
            return this.axis;
        }

        /**
         * Gets the value of the seqPointMin property.
         * 
         * @return
         *     possible object is
         *     {@link JalviewModel.PcaViewer.SeqPointMin }
         *     
         */
        public JalviewModel.PcaViewer.SeqPointMin getSeqPointMin() {
            return seqPointMin;
        }

        /**
         * Sets the value of the seqPointMin property.
         * 
         * @param value
         *     allowed object is
         *     {@link JalviewModel.PcaViewer.SeqPointMin }
         *     
         */
        public void setSeqPointMin(JalviewModel.PcaViewer.SeqPointMin value) {
            this.seqPointMin = value;
        }

        /**
         * Gets the value of the seqPointMax property.
         * 
         * @return
         *     possible object is
         *     {@link JalviewModel.PcaViewer.SeqPointMax }
         *     
         */
        public JalviewModel.PcaViewer.SeqPointMax getSeqPointMax() {
            return seqPointMax;
        }

        /**
         * Sets the value of the seqPointMax property.
         * 
         * @param value
         *     allowed object is
         *     {@link JalviewModel.PcaViewer.SeqPointMax }
         *     
         */
        public void setSeqPointMax(JalviewModel.PcaViewer.SeqPointMax value) {
            this.seqPointMax = value;
        }

        /**
         * Gets the value of the pcaData property.
         * 
         * @return
         *     possible object is
         *     {@link PcaDataType }
         *     
         */
        public PcaDataType getPcaData() {
            return pcaData;
        }

        /**
         * Sets the value of the pcaData property.
         * 
         * @param value
         *     allowed object is
         *     {@link PcaDataType }
         *     
         */
        public void setPcaData(PcaDataType value) {
            this.pcaData = value;
        }

        /**
         * Gets the value of the title property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getTitle() {
            return title;
        }

        /**
         * Sets the value of the title property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setTitle(String value) {
            this.title = value;
        }

        /**
         * Gets the value of the scoreModelName property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getScoreModelName() {
            return scoreModelName;
        }

        /**
         * Sets the value of the scoreModelName property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setScoreModelName(String value) {
            this.scoreModelName = value;
        }

        /**
         * Gets the value of the xDim property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getXDim() {
            return xDim;
        }

        /**
         * Sets the value of the xDim property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setXDim(Integer value) {
            this.xDim = value;
        }

        /**
         * Gets the value of the yDim property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getYDim() {
            return yDim;
        }

        /**
         * Sets the value of the yDim property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setYDim(Integer value) {
            this.yDim = value;
        }

        /**
         * Gets the value of the zDim property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getZDim() {
            return zDim;
        }

        /**
         * Sets the value of the zDim property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setZDim(Integer value) {
            this.zDim = value;
        }

        /**
         * Gets the value of the bgColour property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getBgColour() {
            return bgColour;
        }

        /**
         * Sets the value of the bgColour property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setBgColour(Integer value) {
            this.bgColour = value;
        }

        /**
         * Gets the value of the scaleFactor property.
         * 
         * @return
         *     possible object is
         *     {@link Float }
         *     
         */
        public Float getScaleFactor() {
            return scaleFactor;
        }

        /**
         * Sets the value of the scaleFactor property.
         * 
         * @param value
         *     allowed object is
         *     {@link Float }
         *     
         */
        public void setScaleFactor(Float value) {
            this.scaleFactor = value;
        }

        /**
         * Gets the value of the showLabels property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowLabels() {
            return showLabels;
        }

        /**
         * Sets the value of the showLabels property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowLabels(Boolean value) {
            this.showLabels = value;
        }

        /**
         * Gets the value of the linkToAllViews property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isLinkToAllViews() {
            return linkToAllViews;
        }

        /**
         * Sets the value of the linkToAllViews property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setLinkToAllViews(Boolean value) {
            this.linkToAllViews = value;
        }

        /**
         * Gets the value of the width property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getWidth() {
            return width;
        }

        /**
         * Sets the value of the width property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setWidth(Integer value) {
            this.width = value;
        }

        /**
         * Gets the value of the height property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getHeight() {
            return height;
        }

        /**
         * Sets the value of the height property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setHeight(Integer value) {
            this.height = value;
        }

        /**
         * Gets the value of the xpos property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getXpos() {
            return xpos;
        }

        /**
         * Sets the value of the xpos property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setXpos(Integer value) {
            this.xpos = value;
        }

        /**
         * Gets the value of the ypos property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getYpos() {
            return ypos;
        }

        /**
         * Sets the value of the ypos property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setYpos(Integer value) {
            this.ypos = value;
        }

        /**
         * Gets the value of the includeGaps property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isIncludeGaps() {
            return includeGaps;
        }

        /**
         * Sets the value of the includeGaps property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setIncludeGaps(Boolean value) {
            this.includeGaps = value;
        }

        /**
         * Gets the value of the matchGaps property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isMatchGaps() {
            return matchGaps;
        }

        /**
         * Sets the value of the matchGaps property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setMatchGaps(Boolean value) {
            this.matchGaps = value;
        }

        /**
         * Gets the value of the includeGappedColumns property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isIncludeGappedColumns() {
            return includeGappedColumns;
        }

        /**
         * Sets the value of the includeGappedColumns property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setIncludeGappedColumns(Boolean value) {
            this.includeGappedColumns = value;
        }

        /**
         * Gets the value of the denominateByShortestLength property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isDenominateByShortestLength() {
            return denominateByShortestLength;
        }

        /**
         * Sets the value of the denominateByShortestLength property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setDenominateByShortestLength(Boolean value) {
            this.denominateByShortestLength = value;
        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;attGroup ref="{www.jalview.org}position"/>
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "")
        public static class Axis {

            @XmlAttribute(name = "xPos")
            protected Float xPos;
            @XmlAttribute(name = "yPos")
            protected Float yPos;
            @XmlAttribute(name = "zPos")
            protected Float zPos;

            /**
             * Gets the value of the xPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getXPos() {
                return xPos;
            }

            /**
             * Sets the value of the xPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setXPos(Float value) {
                this.xPos = value;
            }

            /**
             * Gets the value of the yPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getYPos() {
                return yPos;
            }

            /**
             * Sets the value of the yPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setYPos(Float value) {
                this.yPos = value;
            }

            /**
             * Gets the value of the zPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getZPos() {
                return zPos;
            }

            /**
             * Sets the value of the zPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setZPos(Float value) {
                this.zPos = value;
            }

        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;attGroup ref="{www.jalview.org}position"/>
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "")
        public static class SeqPointMax {

            @XmlAttribute(name = "xPos")
            protected Float xPos;
            @XmlAttribute(name = "yPos")
            protected Float yPos;
            @XmlAttribute(name = "zPos")
            protected Float zPos;

            /**
             * Gets the value of the xPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getXPos() {
                return xPos;
            }

            /**
             * Sets the value of the xPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setXPos(Float value) {
                this.xPos = value;
            }

            /**
             * Gets the value of the yPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getYPos() {
                return yPos;
            }

            /**
             * Sets the value of the yPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setYPos(Float value) {
                this.yPos = value;
            }

            /**
             * Gets the value of the zPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getZPos() {
                return zPos;
            }

            /**
             * Sets the value of the zPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setZPos(Float value) {
                this.zPos = value;
            }

        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;attGroup ref="{www.jalview.org}position"/>
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "")
        public static class SeqPointMin {

            @XmlAttribute(name = "xPos")
            protected Float xPos;
            @XmlAttribute(name = "yPos")
            protected Float yPos;
            @XmlAttribute(name = "zPos")
            protected Float zPos;

            /**
             * Gets the value of the xPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getXPos() {
                return xPos;
            }

            /**
             * Sets the value of the xPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setXPos(Float value) {
                this.xPos = value;
            }

            /**
             * Gets the value of the yPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getYPos() {
                return yPos;
            }

            /**
             * Sets the value of the yPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setYPos(Float value) {
                this.yPos = value;
            }

            /**
             * Gets the value of the zPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getZPos() {
                return zPos;
            }

            /**
             * Sets the value of the zPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setZPos(Float value) {
                this.zPos = value;
            }

        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;attGroup ref="{www.jalview.org}position"/>
         *       &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" />
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "")
        public static class SequencePoint {

            @XmlAttribute(name = "sequenceRef")
            protected String sequenceRef;
            @XmlAttribute(name = "xPos")
            protected Float xPos;
            @XmlAttribute(name = "yPos")
            protected Float yPos;
            @XmlAttribute(name = "zPos")
            protected Float zPos;

            /**
             * Gets the value of the sequenceRef property.
             * 
             * @return
             *     possible object is
             *     {@link String }
             *     
             */
            public String getSequenceRef() {
                return sequenceRef;
            }

            /**
             * Sets the value of the sequenceRef property.
             * 
             * @param value
             *     allowed object is
             *     {@link String }
             *     
             */
            public void setSequenceRef(String value) {
                this.sequenceRef = value;
            }

            /**
             * Gets the value of the xPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getXPos() {
                return xPos;
            }

            /**
             * Sets the value of the xPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setXPos(Float value) {
                this.xPos = value;
            }

            /**
             * Gets the value of the yPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getYPos() {
                return yPos;
            }

            /**
             * Sets the value of the yPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setYPos(Float value) {
                this.yPos = value;
            }

            /**
             * Gets the value of the zPos property.
             * 
             * @return
             *     possible object is
             *     {@link Float }
             *     
             */
            public Float getZPos() {
                return zPos;
            }

            /**
             * Sets the value of the zPos property.
             * 
             * @param value
             *     allowed object is
             *     {@link Float }
             *     
             */
            public void setZPos(Float value) {
                this.zPos = value;
            }

        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence minOccurs="0">
     *         &lt;element name="title" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *         &lt;element name="newick" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *       &lt;/sequence>
     *       &lt;attGroup ref="{www.jalview.org}swingwindow"/>
     *       &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
     *       &lt;attribute name="showBootstrap" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="showDistances" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="markUnlinked" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="fitToWindow" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="currentTree" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
     *       &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "title",
        "newick"
    })
    public static class Tree {

        @XmlElement(namespace = "www.jalview.org")
        protected String title;
        @XmlElement(namespace = "www.jalview.org")
        protected String newick;
        @XmlAttribute(name = "fontName")
        protected String fontName;
        @XmlAttribute(name = "fontSize")
        protected Integer fontSize;
        @XmlAttribute(name = "fontStyle")
        protected Integer fontStyle;
        @XmlAttribute(name = "threshold")
        protected Float threshold;
        @XmlAttribute(name = "showBootstrap")
        protected Boolean showBootstrap;
        @XmlAttribute(name = "showDistances")
        protected Boolean showDistances;
        @XmlAttribute(name = "markUnlinked")
        protected Boolean markUnlinked;
        @XmlAttribute(name = "fitToWindow")
        protected Boolean fitToWindow;
        @XmlAttribute(name = "currentTree")
        protected Boolean currentTree;
        @XmlAttribute(name = "id")
        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
        @XmlID
        @XmlSchemaType(name = "ID")
        protected String id;
        @XmlAttribute(name = "linkToAllViews")
        protected Boolean linkToAllViews;
        @XmlAttribute(name = "width")
        protected Integer width;
        @XmlAttribute(name = "height")
        protected Integer height;
        @XmlAttribute(name = "xpos")
        protected Integer xpos;
        @XmlAttribute(name = "ypos")
        protected Integer ypos;

        /**
         * Gets the value of the title property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getTitle() {
            return title;
        }

        /**
         * Sets the value of the title property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setTitle(String value) {
            this.title = value;
        }

        /**
         * Gets the value of the newick property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getNewick() {
            return newick;
        }

        /**
         * Sets the value of the newick property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setNewick(String value) {
            this.newick = value;
        }

        /**
         * Gets the value of the fontName property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getFontName() {
            return fontName;
        }

        /**
         * Sets the value of the fontName property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setFontName(String value) {
            this.fontName = value;
        }

        /**
         * Gets the value of the fontSize property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getFontSize() {
            return fontSize;
        }

        /**
         * Sets the value of the fontSize property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setFontSize(Integer value) {
            this.fontSize = value;
        }

        /**
         * Gets the value of the fontStyle property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getFontStyle() {
            return fontStyle;
        }

        /**
         * Sets the value of the fontStyle property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setFontStyle(Integer value) {
            this.fontStyle = value;
        }

        /**
         * Gets the value of the threshold property.
         * 
         * @return
         *     possible object is
         *     {@link Float }
         *     
         */
        public Float getThreshold() {
            return threshold;
        }

        /**
         * Sets the value of the threshold property.
         * 
         * @param value
         *     allowed object is
         *     {@link Float }
         *     
         */
        public void setThreshold(Float value) {
            this.threshold = value;
        }

        /**
         * Gets the value of the showBootstrap property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowBootstrap() {
            return showBootstrap;
        }

        /**
         * Sets the value of the showBootstrap property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowBootstrap(Boolean value) {
            this.showBootstrap = value;
        }

        /**
         * Gets the value of the showDistances property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowDistances() {
            return showDistances;
        }

        /**
         * Sets the value of the showDistances property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowDistances(Boolean value) {
            this.showDistances = value;
        }

        /**
         * Gets the value of the markUnlinked property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isMarkUnlinked() {
            return markUnlinked;
        }

        /**
         * Sets the value of the markUnlinked property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setMarkUnlinked(Boolean value) {
            this.markUnlinked = value;
        }

        /**
         * Gets the value of the fitToWindow property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isFitToWindow() {
            return fitToWindow;
        }

        /**
         * Sets the value of the fitToWindow property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setFitToWindow(Boolean value) {
            this.fitToWindow = value;
        }

        /**
         * Gets the value of the currentTree property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isCurrentTree() {
            return currentTree;
        }

        /**
         * Sets the value of the currentTree property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setCurrentTree(Boolean value) {
            this.currentTree = value;
        }

        /**
         * Gets the value of the id property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getId() {
            return id;
        }

        /**
         * Sets the value of the id property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setId(String value) {
            this.id = value;
        }

        /**
         * Gets the value of the linkToAllViews property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isLinkToAllViews() {
            if (linkToAllViews == null) {
                return false;
            } else {
                return linkToAllViews;
            }
        }

        /**
         * Sets the value of the linkToAllViews property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setLinkToAllViews(Boolean value) {
            this.linkToAllViews = value;
        }

        /**
         * Gets the value of the width property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getWidth() {
            return width;
        }

        /**
         * Sets the value of the width property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setWidth(Integer value) {
            this.width = value;
        }

        /**
         * Gets the value of the height property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getHeight() {
            return height;
        }

        /**
         * Sets the value of the height property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setHeight(Integer value) {
            this.height = value;
        }

        /**
         * Gets the value of the xpos property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getXpos() {
            return xpos;
        }

        /**
         * Sets the value of the xpos property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setXpos(Integer value) {
            this.xpos = value;
        }

        /**
         * Gets the value of the ypos property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getYpos() {
            return ypos;
        }

        /**
         * Sets the value of the ypos property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setYpos(Integer value) {
            this.ypos = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="UserColourScheme" type="{www.jalview.org/colours}JalviewUserColours"/>
     *       &lt;/sequence>
     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "userColourScheme"
    })
    public static class UserColours {

        @XmlElement(name = "UserColourScheme", namespace = "www.jalview.org", required = true)
        protected JalviewUserColours userColourScheme;
        @XmlAttribute(name = "id")
        protected String id;

        /**
         * Gets the value of the userColourScheme property.
         * 
         * @return
         *     possible object is
         *     {@link JalviewUserColours }
         *     
         */
        public JalviewUserColours getUserColourScheme() {
            return userColourScheme;
        }

        /**
         * Sets the value of the userColourScheme property.
         * 
         * @param value
         *     allowed object is
         *     {@link JalviewUserColours }
         *     
         */
        public void setUserColourScheme(JalviewUserColours value) {
            this.userColourScheme = value;
        }

        /**
         * Gets the value of the id property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getId() {
            return id;
        }

        /**
         * Sets the value of the id property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setId(String value) {
            this.id = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="AnnotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/>
     *         &lt;element name="hiddenColumns" maxOccurs="unbounded" minOccurs="0">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *                 &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" />
     *                 &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" />
     *               &lt;/restriction>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *         &lt;element name="calcIdParam" maxOccurs="unbounded" minOccurs="0">
     *           &lt;complexType>
     *             &lt;complexContent>
     *               &lt;extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet">
     *                 &lt;attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
     *                 &lt;attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *                 &lt;attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *               &lt;/extension>
     *             &lt;/complexContent>
     *           &lt;/complexType>
     *         &lt;/element>
     *       &lt;/sequence>
     *       &lt;attGroup ref="{www.jalview.org}swingwindow"/>
     *       &lt;attribute name="conservationSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="pidSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="showFullId" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="rightAlignIds" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="showText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="showColourText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *       &lt;attribute name="showBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="wrapAlignment" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="renderGaps" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="showSequenceFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="showNPfeatureTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="showDbRefTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="followHighlight" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
     *       &lt;attribute name="followSelection" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
     *       &lt;attribute name="showAnnotation" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="centreColumnLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *       &lt;attribute name="showGroupConservation" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *       &lt;attribute name="showGroupConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *       &lt;attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
     *       &lt;attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *       &lt;attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *       &lt;attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
     *       &lt;attribute name="startRes" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="startSeq" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="scaleProteinAsCdna" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
     *       &lt;attribute name="viewName" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="sequenceSetId" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="gatheredViews" type="{http://www.w3.org/2001/XMLSchema}boolean" />
     *       &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
     *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
     *       &lt;attribute name="complementId" type="{http://www.w3.org/2001/XMLSchema}string" />
     *       &lt;attribute name="showComplementFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *       &lt;attribute name="showComplementFeaturesOnTop" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "annotationColours",
        "hiddenColumns",
        "calcIdParam"
    })
    public static class Viewport {

        @XmlElement(name = "AnnotationColours", namespace = "www.jalview.org")
        protected AnnotationColourScheme annotationColours;
        @XmlElement(namespace = "www.jalview.org")
        protected List<JalviewModel.Viewport.HiddenColumns> hiddenColumns;
        @XmlElement(namespace = "www.jalview.org")
        protected List<JalviewModel.Viewport.CalcIdParam> calcIdParam;
        @XmlAttribute(name = "conservationSelected")
        protected Boolean conservationSelected;
        @XmlAttribute(name = "pidSelected")
        protected Boolean pidSelected;
        @XmlAttribute(name = "bgColour")
        protected String bgColour;
        @XmlAttribute(name = "consThreshold")
        protected Integer consThreshold;
        @XmlAttribute(name = "pidThreshold")
        protected Integer pidThreshold;
        @XmlAttribute(name = "title")
        protected String title;
        @XmlAttribute(name = "showFullId")
        protected Boolean showFullId;
        @XmlAttribute(name = "rightAlignIds")
        protected Boolean rightAlignIds;
        @XmlAttribute(name = "showText")
        protected Boolean showText;
        @XmlAttribute(name = "showColourText")
        protected Boolean showColourText;
        @XmlAttribute(name = "showUnconserved")
        protected Boolean showUnconserved;
        @XmlAttribute(name = "showBoxes")
        protected Boolean showBoxes;
        @XmlAttribute(name = "wrapAlignment")
        protected Boolean wrapAlignment;
        @XmlAttribute(name = "renderGaps")
        protected Boolean renderGaps;
        @XmlAttribute(name = "showSequenceFeatures")
        protected Boolean showSequenceFeatures;
        @XmlAttribute(name = "showNPfeatureTooltip")
        protected Boolean showNPfeatureTooltip;
        @XmlAttribute(name = "showDbRefTooltip")
        protected Boolean showDbRefTooltip;
        @XmlAttribute(name = "followHighlight")
        protected Boolean followHighlight;
        @XmlAttribute(name = "followSelection")
        protected Boolean followSelection;
        @XmlAttribute(name = "showAnnotation")
        protected Boolean showAnnotation;
        @XmlAttribute(name = "centreColumnLabels")
        protected Boolean centreColumnLabels;
        @XmlAttribute(name = "showGroupConservation")
        protected Boolean showGroupConservation;
        @XmlAttribute(name = "showGroupConsensus")
        protected Boolean showGroupConsensus;
        @XmlAttribute(name = "showConsensusHistogram")
        protected Boolean showConsensusHistogram;
        @XmlAttribute(name = "showSequenceLogo")
        protected Boolean showSequenceLogo;
        @XmlAttribute(name = "normaliseSequenceLogo")
        protected Boolean normaliseSequenceLogo;
        @XmlAttribute(name = "ignoreGapsinConsensus")
        protected Boolean ignoreGapsinConsensus;
        @XmlAttribute(name = "startRes")
        protected Integer startRes;
        @XmlAttribute(name = "startSeq")
        protected Integer startSeq;
        @XmlAttribute(name = "fontName")
        protected String fontName;
        @XmlAttribute(name = "fontSize")
        protected Integer fontSize;
        @XmlAttribute(name = "fontStyle")
        protected Integer fontStyle;
        @XmlAttribute(name = "scaleProteinAsCdna")
        protected Boolean scaleProteinAsCdna;
        @XmlAttribute(name = "viewName")
        protected String viewName;
        @XmlAttribute(name = "sequenceSetId")
        protected String sequenceSetId;
        @XmlAttribute(name = "gatheredViews")
        protected Boolean gatheredViews;
        @XmlAttribute(name = "textCol1")
        protected Integer textCol1;
        @XmlAttribute(name = "textCol2")
        protected Integer textCol2;
        @XmlAttribute(name = "textColThreshold")
        protected Integer textColThreshold;
        @XmlAttribute(name = "id")
        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
        @XmlID
        @XmlSchemaType(name = "ID")
        protected String id;
        @XmlAttribute(name = "complementId")
        protected String complementId;
        @XmlAttribute(name = "showComplementFeatures")
        protected Boolean showComplementFeatures;
        @XmlAttribute(name = "showComplementFeaturesOnTop")
        protected Boolean showComplementFeaturesOnTop;
        @XmlAttribute(name = "width")
        protected Integer width;
        @XmlAttribute(name = "height")
        protected Integer height;
        @XmlAttribute(name = "xpos")
        protected Integer xpos;
        @XmlAttribute(name = "ypos")
        protected Integer ypos;

        /**
         * Gets the value of the annotationColours property.
         * 
         * @return
         *     possible object is
         *     {@link AnnotationColourScheme }
         *     
         */
        public AnnotationColourScheme getAnnotationColours() {
            return annotationColours;
        }

        /**
         * Sets the value of the annotationColours property.
         * 
         * @param value
         *     allowed object is
         *     {@link AnnotationColourScheme }
         *     
         */
        public void setAnnotationColours(AnnotationColourScheme value) {
            this.annotationColours = value;
        }

        /**
         * Gets the value of the hiddenColumns property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the hiddenColumns property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getHiddenColumns().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link JalviewModel.Viewport.HiddenColumns }
         * 
         * 
         */
        public List<JalviewModel.Viewport.HiddenColumns> getHiddenColumns() {
            if (hiddenColumns == null) {
                hiddenColumns = new ArrayList<JalviewModel.Viewport.HiddenColumns>();
            }
            return this.hiddenColumns;
        }

        /**
         * Gets the value of the calcIdParam property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the calcIdParam property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getCalcIdParam().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link JalviewModel.Viewport.CalcIdParam }
         * 
         * 
         */
        public List<JalviewModel.Viewport.CalcIdParam> getCalcIdParam() {
            if (calcIdParam == null) {
                calcIdParam = new ArrayList<JalviewModel.Viewport.CalcIdParam>();
            }
            return this.calcIdParam;
        }

        /**
         * Gets the value of the conservationSelected property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isConservationSelected() {
            return conservationSelected;
        }

        /**
         * Sets the value of the conservationSelected property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setConservationSelected(Boolean value) {
            this.conservationSelected = value;
        }

        /**
         * Gets the value of the pidSelected property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isPidSelected() {
            return pidSelected;
        }

        /**
         * Sets the value of the pidSelected property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setPidSelected(Boolean value) {
            this.pidSelected = value;
        }

        /**
         * Gets the value of the bgColour property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getBgColour() {
            return bgColour;
        }

        /**
         * Sets the value of the bgColour property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setBgColour(String value) {
            this.bgColour = value;
        }

        /**
         * Gets the value of the consThreshold property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getConsThreshold() {
            return consThreshold;
        }

        /**
         * Sets the value of the consThreshold property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setConsThreshold(Integer value) {
            this.consThreshold = value;
        }

        /**
         * Gets the value of the pidThreshold property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getPidThreshold() {
            return pidThreshold;
        }

        /**
         * Sets the value of the pidThreshold property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setPidThreshold(Integer value) {
            this.pidThreshold = value;
        }

        /**
         * Gets the value of the title property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getTitle() {
            return title;
        }

        /**
         * Sets the value of the title property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setTitle(String value) {
            this.title = value;
        }

        /**
         * Gets the value of the showFullId property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowFullId() {
            return showFullId;
        }

        /**
         * Sets the value of the showFullId property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowFullId(Boolean value) {
            this.showFullId = value;
        }

        /**
         * Gets the value of the rightAlignIds property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isRightAlignIds() {
            return rightAlignIds;
        }

        /**
         * Sets the value of the rightAlignIds property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setRightAlignIds(Boolean value) {
            this.rightAlignIds = value;
        }

        /**
         * Gets the value of the showText property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowText() {
            return showText;
        }

        /**
         * Sets the value of the showText property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowText(Boolean value) {
            this.showText = value;
        }

        /**
         * Gets the value of the showColourText property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowColourText() {
            return showColourText;
        }

        /**
         * Sets the value of the showColourText property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowColourText(Boolean value) {
            this.showColourText = value;
        }

        /**
         * Gets the value of the showUnconserved property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isShowUnconserved() {
            if (showUnconserved == null) {
                return false;
            } else {
                return showUnconserved;
            }
        }

        /**
         * Sets the value of the showUnconserved property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowUnconserved(Boolean value) {
            this.showUnconserved = value;
        }

        /**
         * Gets the value of the showBoxes property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowBoxes() {
            return showBoxes;
        }

        /**
         * Sets the value of the showBoxes property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowBoxes(Boolean value) {
            this.showBoxes = value;
        }

        /**
         * Gets the value of the wrapAlignment property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isWrapAlignment() {
            return wrapAlignment;
        }

        /**
         * Sets the value of the wrapAlignment property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setWrapAlignment(Boolean value) {
            this.wrapAlignment = value;
        }

        /**
         * Gets the value of the renderGaps property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isRenderGaps() {
            return renderGaps;
        }

        /**
         * Sets the value of the renderGaps property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setRenderGaps(Boolean value) {
            this.renderGaps = value;
        }

        /**
         * Gets the value of the showSequenceFeatures property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowSequenceFeatures() {
            return showSequenceFeatures;
        }

        /**
         * Sets the value of the showSequenceFeatures property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowSequenceFeatures(Boolean value) {
            this.showSequenceFeatures = value;
        }

        /**
         * Gets the value of the showNPfeatureTooltip property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowNPfeatureTooltip() {
            return showNPfeatureTooltip;
        }

        /**
         * Sets the value of the showNPfeatureTooltip property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowNPfeatureTooltip(Boolean value) {
            this.showNPfeatureTooltip = value;
        }

        /**
         * Gets the value of the showDbRefTooltip property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowDbRefTooltip() {
            return showDbRefTooltip;
        }

        /**
         * Sets the value of the showDbRefTooltip property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowDbRefTooltip(Boolean value) {
            this.showDbRefTooltip = value;
        }

        /**
         * Gets the value of the followHighlight property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isFollowHighlight() {
            if (followHighlight == null) {
                return true;
            } else {
                return followHighlight;
            }
        }

        /**
         * Sets the value of the followHighlight property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setFollowHighlight(Boolean value) {
            this.followHighlight = value;
        }

        /**
         * Gets the value of the followSelection property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isFollowSelection() {
            if (followSelection == null) {
                return true;
            } else {
                return followSelection;
            }
        }

        /**
         * Sets the value of the followSelection property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setFollowSelection(Boolean value) {
            this.followSelection = value;
        }

        /**
         * Gets the value of the showAnnotation property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isShowAnnotation() {
            return showAnnotation;
        }

        /**
         * Sets the value of the showAnnotation property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowAnnotation(Boolean value) {
            this.showAnnotation = value;
        }

        /**
         * Gets the value of the centreColumnLabels property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isCentreColumnLabels() {
            if (centreColumnLabels == null) {
                return false;
            } else {
                return centreColumnLabels;
            }
        }

        /**
         * Sets the value of the centreColumnLabels property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setCentreColumnLabels(Boolean value) {
            this.centreColumnLabels = value;
        }

        /**
         * Gets the value of the showGroupConservation property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isShowGroupConservation() {
            if (showGroupConservation == null) {
                return false;
            } else {
                return showGroupConservation;
            }
        }

        /**
         * Sets the value of the showGroupConservation property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowGroupConservation(Boolean value) {
            this.showGroupConservation = value;
        }

        /**
         * Gets the value of the showGroupConsensus property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isShowGroupConsensus() {
            if (showGroupConsensus == null) {
                return false;
            } else {
                return showGroupConsensus;
            }
        }

        /**
         * Sets the value of the showGroupConsensus property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowGroupConsensus(Boolean value) {
            this.showGroupConsensus = value;
        }

        /**
         * Gets the value of the showConsensusHistogram property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isShowConsensusHistogram() {
            if (showConsensusHistogram == null) {
                return true;
            } else {
                return showConsensusHistogram;
            }
        }

        /**
         * Sets the value of the showConsensusHistogram property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowConsensusHistogram(Boolean value) {
            this.showConsensusHistogram = value;
        }

        /**
         * Gets the value of the showSequenceLogo property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isShowSequenceLogo() {
            if (showSequenceLogo == null) {
                return false;
            } else {
                return showSequenceLogo;
            }
        }

        /**
         * Sets the value of the showSequenceLogo property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowSequenceLogo(Boolean value) {
            this.showSequenceLogo = value;
        }

        /**
         * Gets the value of the normaliseSequenceLogo property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isNormaliseSequenceLogo() {
            if (normaliseSequenceLogo == null) {
                return false;
            } else {
                return normaliseSequenceLogo;
            }
        }

        /**
         * Sets the value of the normaliseSequenceLogo property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setNormaliseSequenceLogo(Boolean value) {
            this.normaliseSequenceLogo = value;
        }

        /**
         * Gets the value of the ignoreGapsinConsensus property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isIgnoreGapsinConsensus() {
            if (ignoreGapsinConsensus == null) {
                return true;
            } else {
                return ignoreGapsinConsensus;
            }
        }

        /**
         * Sets the value of the ignoreGapsinConsensus property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setIgnoreGapsinConsensus(Boolean value) {
            this.ignoreGapsinConsensus = value;
        }

        /**
         * Gets the value of the startRes property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getStartRes() {
            return startRes;
        }

        /**
         * Sets the value of the startRes property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setStartRes(Integer value) {
            this.startRes = value;
        }

        /**
         * Gets the value of the startSeq property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getStartSeq() {
            return startSeq;
        }

        /**
         * Sets the value of the startSeq property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setStartSeq(Integer value) {
            this.startSeq = value;
        }

        /**
         * Gets the value of the fontName property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getFontName() {
            return fontName;
        }

        /**
         * Sets the value of the fontName property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setFontName(String value) {
            this.fontName = value;
        }

        /**
         * Gets the value of the fontSize property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getFontSize() {
            return fontSize;
        }

        /**
         * Sets the value of the fontSize property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setFontSize(Integer value) {
            this.fontSize = value;
        }

        /**
         * Gets the value of the fontStyle property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getFontStyle() {
            return fontStyle;
        }

        /**
         * Sets the value of the fontStyle property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setFontStyle(Integer value) {
            this.fontStyle = value;
        }

        /**
         * Gets the value of the scaleProteinAsCdna property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isScaleProteinAsCdna() {
            if (scaleProteinAsCdna == null) {
                return true;
            } else {
                return scaleProteinAsCdna;
            }
        }

        /**
         * Sets the value of the scaleProteinAsCdna property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setScaleProteinAsCdna(Boolean value) {
            this.scaleProteinAsCdna = value;
        }

        /**
         * Gets the value of the viewName property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getViewName() {
            return viewName;
        }

        /**
         * Sets the value of the viewName property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setViewName(String value) {
            this.viewName = value;
        }

        /**
         * Gets the value of the sequenceSetId property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getSequenceSetId() {
            return sequenceSetId;
        }

        /**
         * Sets the value of the sequenceSetId property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setSequenceSetId(String value) {
            this.sequenceSetId = value;
        }

        /**
         * Gets the value of the gatheredViews property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public Boolean isGatheredViews() {
            return gatheredViews;
        }

        /**
         * Sets the value of the gatheredViews property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setGatheredViews(Boolean value) {
            this.gatheredViews = value;
        }

        /**
         * Gets the value of the textCol1 property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getTextCol1() {
            return textCol1;
        }

        /**
         * Sets the value of the textCol1 property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setTextCol1(Integer value) {
            this.textCol1 = value;
        }

        /**
         * Gets the value of the textCol2 property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getTextCol2() {
            return textCol2;
        }

        /**
         * Sets the value of the textCol2 property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setTextCol2(Integer value) {
            this.textCol2 = value;
        }

        /**
         * Gets the value of the textColThreshold property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getTextColThreshold() {
            return textColThreshold;
        }

        /**
         * Sets the value of the textColThreshold property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setTextColThreshold(Integer value) {
            this.textColThreshold = value;
        }

        /**
         * Gets the value of the id property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getId() {
            return id;
        }

        /**
         * Sets the value of the id property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setId(String value) {
            this.id = value;
        }

        /**
         * Gets the value of the complementId property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getComplementId() {
            return complementId;
        }

        /**
         * Sets the value of the complementId property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setComplementId(String value) {
            this.complementId = value;
        }

        /**
         * Gets the value of the showComplementFeatures property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isShowComplementFeatures() {
            if (showComplementFeatures == null) {
                return false;
            } else {
                return showComplementFeatures;
            }
        }

        /**
         * Sets the value of the showComplementFeatures property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowComplementFeatures(Boolean value) {
            this.showComplementFeatures = value;
        }

        /**
         * Gets the value of the showComplementFeaturesOnTop property.
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isShowComplementFeaturesOnTop() {
            if (showComplementFeaturesOnTop == null) {
                return false;
            } else {
                return showComplementFeaturesOnTop;
            }
        }

        /**
         * Sets the value of the showComplementFeaturesOnTop property.
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setShowComplementFeaturesOnTop(Boolean value) {
            this.showComplementFeaturesOnTop = value;
        }

        /**
         * Gets the value of the width property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getWidth() {
            return width;
        }

        /**
         * Sets the value of the width property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setWidth(Integer value) {
            this.width = value;
        }

        /**
         * Gets the value of the height property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getHeight() {
            return height;
        }

        /**
         * Sets the value of the height property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setHeight(Integer value) {
            this.height = value;
        }

        /**
         * Gets the value of the xpos property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getXpos() {
            return xpos;
        }

        /**
         * Sets the value of the xpos property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setXpos(Integer value) {
            this.xpos = value;
        }

        /**
         * Gets the value of the ypos property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getYpos() {
            return ypos;
        }

        /**
         * Sets the value of the ypos property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setYpos(Integer value) {
            this.ypos = value;
        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet">
         *       &lt;attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
         *       &lt;attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
         *       &lt;attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
         *     &lt;/extension>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "")
        public static class CalcIdParam
            extends WebServiceParameterSet
        {

            @XmlAttribute(name = "calcId", required = true)
            protected String calcId;
            @XmlAttribute(name = "needsUpdate")
            protected Boolean needsUpdate;
            @XmlAttribute(name = "autoUpdate", required = true)
            protected boolean autoUpdate;

            /**
             * Gets the value of the calcId property.
             * 
             * @return
             *     possible object is
             *     {@link String }
             *     
             */
            public String getCalcId() {
                return calcId;
            }

            /**
             * Sets the value of the calcId property.
             * 
             * @param value
             *     allowed object is
             *     {@link String }
             *     
             */
            public void setCalcId(String value) {
                this.calcId = value;
            }

            /**
             * Gets the value of the needsUpdate property.
             * 
             * @return
             *     possible object is
             *     {@link Boolean }
             *     
             */
            public boolean isNeedsUpdate() {
                if (needsUpdate == null) {
                    return false;
                } else {
                    return needsUpdate;
                }
            }

            /**
             * Sets the value of the needsUpdate property.
             * 
             * @param value
             *     allowed object is
             *     {@link Boolean }
             *     
             */
            public void setNeedsUpdate(Boolean value) {
                this.needsUpdate = value;
            }

            /**
             * Gets the value of the autoUpdate property.
             * 
             */
            public boolean isAutoUpdate() {
                return autoUpdate;
            }

            /**
             * Sets the value of the autoUpdate property.
             * 
             */
            public void setAutoUpdate(boolean value) {
                this.autoUpdate = value;
            }

        }


        /**
         * <p>Java class for anonymous complex type.
         * 
         * <p>The following schema fragment specifies the expected content contained within this class.
         * 
         * <pre>
         * &lt;complexType>
         *   &lt;complexContent>
         *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
         *       &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" />
         *       &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" />
         *     &lt;/restriction>
         *   &lt;/complexContent>
         * &lt;/complexType>
         * </pre>
         * 
         * 
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "")
        public static class HiddenColumns {

            @XmlAttribute(name = "start")
            protected Integer start;
            @XmlAttribute(name = "end")
            protected Integer end;

            /**
             * Gets the value of the start property.
             * 
             * @return
             *     possible object is
             *     {@link Integer }
             *     
             */
            public Integer getStart() {
                return start;
            }

            /**
             * Sets the value of the start property.
             * 
             * @param value
             *     allowed object is
             *     {@link Integer }
             *     
             */
            public void setStart(Integer value) {
                this.start = value;
            }

            /**
             * Gets the value of the end property.
             * 
             * @return
             *     possible object is
             *     {@link Integer }
             *     
             */
            public Integer getEnd() {
                return end;
            }

            /**
             * Sets the value of the end property.
             * 
             * @param value
             *     allowed object is
             *     {@link Integer }
             *     
             */
            public void setEnd(Integer value) {
                this.end = value;
            }

        }

    }

}
