Merge branch 'develop' into features/JAL-1759jmolUpdate
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Fri, 26 Jun 2015 13:37:19 +0000 (14:37 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Fri, 26 Jun 2015 13:37:19 +0000 (14:37 +0100)
Conflicts:
.classpath
src/jalview/appletgui/AlignFrame.java
test/jalview/io/NewickFileTests.java

40 files changed:
1  2 
.classpath
build.xml
src/jalview/appletgui/AlignFrame.java
src/jalview/binding/Alignment.java
src/jalview/binding/Annotation.java
src/jalview/binding/AnnotationElement.java
src/jalview/binding/Colour.java
src/jalview/binding/Feature.java
src/jalview/binding/FeatureSettings.java
src/jalview/binding/Features.java
src/jalview/binding/JGroup.java
src/jalview/binding/JSeq.java
src/jalview/binding/JalviewModel.java
src/jalview/binding/JalviewModelSequence.java
src/jalview/binding/JalviewUserColours.java
src/jalview/binding/Pdbentry.java
src/jalview/binding/PdbentryItem.java
src/jalview/binding/Pdbids.java
src/jalview/binding/Property.java
src/jalview/binding/Sequence.java
src/jalview/binding/SequenceSet.java
src/jalview/binding/SequenceType.java
src/jalview/binding/Setting.java
src/jalview/binding/Tree.java
src/jalview/binding/UserColourScheme.java
src/jalview/binding/UserColours.java
src/jalview/binding/VAMSAS.java
src/jalview/binding/VamsasModel.java
src/jalview/binding/Viewport.java
src/jalview/gui/AlignFrame.java
src/jalview/gui/AlignViewport.java
src/jalview/gui/AppJmol.java
src/jalview/gui/PopupMenu.java
src/jalview/schemabinding/version2/.castor.cdr
src/jalview/schemabinding/version2/CalcIdParam.java
src/jalview/schemabinding/version2/JGroup.java
src/jalview/schemabinding/version2/Setting.java
src/jalview/schemabinding/version2/StructureState.java
src/jalview/schemabinding/version2/Tree.java
src/jalview/schemabinding/version2/Viewport.java

diff --cc .classpath
@@@ -64,6 -66,6 +64,7 @@@
        <classpathentry kind="lib" path="lib/jetty-http-9.2.10.v20150310.jar"/>
        <classpathentry kind="lib" path="lib/jetty-io-9.2.10.v20150310.jar"/>
        <classpathentry kind="lib" path="lib/java-json.jar"/>
 +      <classpathentry kind="lib" path="lib/Jmol-14.2.14_2015.06.11.jar"/>
+       <classpathentry kind="con" path="org.testng.TESTNG_CONTAINER"/>
        <classpathentry kind="output" path="classes"/>
  </classpath>
diff --cc build.xml
Simple merge
@@@ -3874,11 -3870,10 +3872,10 @@@ public class AlignFrame extends Embmenu
    public SequenceStructureBinding addStructureViewInstance(
            Object jmolviewer, String[] sequenceIds)
    {
-     // TODO method never called - remove?
 -    org.jmol.api.JmolViewer viewer = null;
 +    Viewer viewer = null;
      try
      {
 -      viewer = (org.jmol.api.JmolViewer) jmolviewer;
 +      viewer = (Viewer) jmolviewer;
      } catch (ClassCastException ex)
      {
        System.err.println("Unsupported viewer object :"
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,162 -32,162 +19,151 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class Alignment implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _annotation.
--   */
--  private jalview.binding.Annotation _annotation;
--
--  /**
--   * Field _sequenceSet.
--   */
--  private jalview.binding.SequenceSet _sequenceSet;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public Alignment()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * Returns the value of field 'annotation'.
--   * 
--   * @return the value of field 'Annotation'.
--   */
--  public jalview.binding.Annotation getAnnotation()
--  {
--    return this._annotation;
--  }
--
--  /**
--   * Returns the value of field 'sequenceSet'.
--   * 
--   * @return the value of field 'SequenceSet'.
--   */
--  public jalview.binding.SequenceSet getSequenceSet()
--  {
--    return this._sequenceSet;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++public class Alignment implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _annotation.
++     */
++    private jalview.binding.Annotation _annotation;
++
++    /**
++     * Field _sequenceSet.
++     */
++    private jalview.binding.SequenceSet _sequenceSet;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Alignment() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * Returns the value of field 'annotation'.
++     * 
++     * @return the value of field 'Annotation'.
++     */
++    public jalview.binding.Annotation getAnnotation(
++    ) {
++        return this._annotation;
++    }
++
++    /**
++     * Returns the value of field 'sequenceSet'.
++     * 
++     * @return the value of field 'SequenceSet'.
++     */
++    public jalview.binding.SequenceSet getSequenceSet(
++    ) {
++        return this._sequenceSet;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'annotation'.
++     * 
++     * @param annotation the value of field 'annotation'.
++     */
++    public void setAnnotation(
++            final jalview.binding.Annotation annotation) {
++        this._annotation = annotation;
++    }
++
++    /**
++     * Sets the value of field 'sequenceSet'.
++     * 
++     * @param sequenceSet the value of field 'sequenceSet'.
++     */
++    public void setSequenceSet(
++            final jalview.binding.SequenceSet sequenceSet) {
++        this._sequenceSet = sequenceSet;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Alignment
++     */
++    public static jalview.binding.Alignment unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Alignment) Unmarshaller.unmarshal(jalview.binding.Alignment.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'annotation'.
--   * 
--   * @param annotation
--   *          the value of field 'annotation'.
--   */
--  public void setAnnotation(final jalview.binding.Annotation annotation)
--  {
--    this._annotation = annotation;
--  }
--
--  /**
--   * Sets the value of field 'sequenceSet'.
--   * 
--   * @param sequenceSet
--   *          the value of field 'sequenceSet'.
--   */
--  public void setSequenceSet(final jalview.binding.SequenceSet sequenceSet)
--  {
--    this._sequenceSet = sequenceSet;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Alignment
--   */
--  public static jalview.binding.Alignment unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Alignment) Unmarshaller.unmarshal(
--            jalview.binding.Alignment.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
@@@ -1,30 -1,30 +1,15 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
--//- Imported classes and packages -/
--//---------------------------------/
--
--import jalview.util.MessageManager;
  
  import org.exolab.castor.xml.Marshaller;
  import org.exolab.castor.xml.Unmarshaller;
   * 
   * @version $Revision$ $Date$
   */
--public class Annotation implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _graph.
--   */
--  private boolean _graph;
--
--  /**
--   * keeps track of state for field: _graph
--   */
--  private boolean _has_graph;
--
--  /**
--   * Field _graphType.
--   */
--  private int _graphType;
--
--  /**
--   * keeps track of state for field: _graphType
--   */
--  private boolean _has_graphType;
--
--  /**
--   * Field _annotationElementList.
--   */
--  private java.util.Vector _annotationElementList;
--
--  /**
--   * Field _label.
--   */
--  private java.lang.String _label;
--
--  /**
--   * Field _description.
--   */
--  private java.lang.String _description;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public Annotation()
--  {
--    super();
--    this._annotationElementList = new java.util.Vector();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * 
--   * 
--   * @param vAnnotationElement
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addAnnotationElement(
--          final jalview.binding.AnnotationElement vAnnotationElement)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._annotationElementList.addElement(vAnnotationElement);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vAnnotationElement
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addAnnotationElement(final int index,
--          final jalview.binding.AnnotationElement vAnnotationElement)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._annotationElementList.add(index, vAnnotationElement);
--  }
--
--  /**
--     */
--  public void deleteGraph()
--  {
--    this._has_graph = false;
--  }
--
--  /**
--     */
--  public void deleteGraphType()
--  {
--    this._has_graphType = false;
--  }
--
--  /**
--   * Method enumerateAnnotationElement.
--   * 
--   * @return an Enumeration over all jalview.binding.AnnotationElement elements
--   */
--  public java.util.Enumeration enumerateAnnotationElement()
--  {
--    return this._annotationElementList.elements();
--  }
--
--  /**
--   * Method getAnnotationElement.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.AnnotationElement at the given
--   *         index
--   */
--  public jalview.binding.AnnotationElement getAnnotationElement(
--          final int index) throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._annotationElementList.size())
--    {
--      throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                "getAnnotationElement",
--                Integer.valueOf(index).toString(),
--                Integer.valueOf((this._annotationElementList.size() - 1)).toString()
--      }));
++public class Annotation implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _graph.
++     */
++    private boolean _graph;
++
++    /**
++     * keeps track of state for field: _graph
++     */
++    private boolean _has_graph;
++
++    /**
++     * Field _graphType.
++     */
++    private int _graphType;
++
++    /**
++     * keeps track of state for field: _graphType
++     */
++    private boolean _has_graphType;
++
++    /**
++     * Field _annotationElementList.
++     */
++    private java.util.Vector _annotationElementList;
++
++    /**
++     * Field _label.
++     */
++    private java.lang.String _label;
++
++    /**
++     * Field _description.
++     */
++    private java.lang.String _description;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Annotation() {
++        super();
++        this._annotationElementList = new java.util.Vector();
      }
  
--    return (jalview.binding.AnnotationElement) _annotationElementList
--            .get(index);
--  }
--
--  /**
--   * Method getAnnotationElement.Returns the contents of the collection in an
--   * Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.AnnotationElement[] getAnnotationElement()
--  {
--    jalview.binding.AnnotationElement[] array = new jalview.binding.AnnotationElement[0];
--    return (jalview.binding.AnnotationElement[]) this._annotationElementList
--            .toArray(array);
--  }
--
--  /**
--   * Method getAnnotationElementCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getAnnotationElementCount()
--  {
--    return this._annotationElementList.size();
--  }
--
--  /**
--   * Returns the value of field 'description'.
--   * 
--   * @return the value of field 'Description'.
--   */
--  public java.lang.String getDescription()
--  {
--    return this._description;
--  }
--
--  /**
--   * Returns the value of field 'graph'.
--   * 
--   * @return the value of field 'Graph'.
--   */
--  public boolean getGraph()
--  {
--    return this._graph;
--  }
--
--  /**
--   * Returns the value of field 'graphType'.
--   * 
--   * @return the value of field 'GraphType'.
--   */
--  public int getGraphType()
--  {
--    return this._graphType;
--  }
--
--  /**
--   * Returns the value of field 'label'.
--   * 
--   * @return the value of field 'Label'.
--   */
--  public java.lang.String getLabel()
--  {
--    return this._label;
--  }
--
--  /**
--   * Method hasGraph.
--   * 
--   * @return true if at least one Graph has been added
--   */
--  public boolean hasGraph()
--  {
--    return this._has_graph;
--  }
--
--  /**
--   * Method hasGraphType.
--   * 
--   * @return true if at least one GraphType has been added
--   */
--  public boolean hasGraphType()
--  {
--    return this._has_graphType;
--  }
--
--  /**
--   * Returns the value of field 'graph'.
--   * 
--   * @return the value of field 'Graph'.
--   */
--  public boolean isGraph()
--  {
--    return this._graph;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * 
++     * 
++     * @param vAnnotationElement
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addAnnotationElement(
++            final jalview.binding.AnnotationElement vAnnotationElement)
++    throws java.lang.IndexOutOfBoundsException {
++        this._annotationElementList.addElement(vAnnotationElement);
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--     */
--  public void removeAllAnnotationElement()
--  {
--    this._annotationElementList.clear();
--  }
--
--  /**
--   * Method removeAnnotationElement.
--   * 
--   * @param vAnnotationElement
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeAnnotationElement(
--          final jalview.binding.AnnotationElement vAnnotationElement)
--  {
--    boolean removed = _annotationElementList.remove(vAnnotationElement);
--    return removed;
--  }
--
--  /**
--   * Method removeAnnotationElementAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.AnnotationElement removeAnnotationElementAt(
--          final int index)
--  {
--    java.lang.Object obj = this._annotationElementList.remove(index);
--    return (jalview.binding.AnnotationElement) obj;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vAnnotationElement
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setAnnotationElement(final int index,
--          final jalview.binding.AnnotationElement vAnnotationElement)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._annotationElementList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                "setAnnotationElement",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._annotationElementList.size() - 1)).toString()
--        }));
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vAnnotationElement
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addAnnotationElement(
++            final int index,
++            final jalview.binding.AnnotationElement vAnnotationElement)
++    throws java.lang.IndexOutOfBoundsException {
++        this._annotationElementList.add(index, vAnnotationElement);
++    }
++
++    /**
++     */
++    public void deleteGraph(
++    ) {
++        this._has_graph= false;
++    }
++
++    /**
++     */
++    public void deleteGraphType(
++    ) {
++        this._has_graphType= false;
++    }
++
++    /**
++     * Method enumerateAnnotationElement.
++     * 
++     * @return an Enumeration over all
++     * jalview.binding.AnnotationElement elements
++     */
++    public java.util.Enumeration enumerateAnnotationElement(
++    ) {
++        return this._annotationElementList.elements();
++    }
++
++    /**
++     * Method getAnnotationElement.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.AnnotationElement
++     * at the given index
++     */
++    public jalview.binding.AnnotationElement getAnnotationElement(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._annotationElementList.size()) {
++            throw new IndexOutOfBoundsException("getAnnotationElement: Index value '" + index + "' not in range [0.." + (this._annotationElementList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.AnnotationElement) _annotationElementList.get(index);
      }
  
--    this._annotationElementList.set(index, vAnnotationElement);
--  }
--
--  /**
--   * 
--   * 
--   * @param vAnnotationElementArray
--   */
--  public void setAnnotationElement(
--          final jalview.binding.AnnotationElement[] vAnnotationElementArray)
--  {
--    // -- copy array
--    _annotationElementList.clear();
--
--    for (int i = 0; i < vAnnotationElementArray.length; i++)
--    {
--      this._annotationElementList.add(vAnnotationElementArray[i]);
++    /**
++     * Method getAnnotationElement.Returns the contents of the
++     * collection in an Array.  <p>Note:  Just in case the
++     * collection contents are changing in another thread, we pass
++     * a 0-length Array of the correct type into the API call. 
++     * This way we <i>know</i> that the Array returned is of
++     * exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.AnnotationElement[] getAnnotationElement(
++    ) {
++        jalview.binding.AnnotationElement[] array = new jalview.binding.AnnotationElement[0];
++        return (jalview.binding.AnnotationElement[]) this._annotationElementList.toArray(array);
++    }
++
++    /**
++     * Method getAnnotationElementCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getAnnotationElementCount(
++    ) {
++        return this._annotationElementList.size();
++    }
++
++    /**
++     * Returns the value of field 'description'.
++     * 
++     * @return the value of field 'Description'.
++     */
++    public java.lang.String getDescription(
++    ) {
++        return this._description;
++    }
++
++    /**
++     * Returns the value of field 'graph'.
++     * 
++     * @return the value of field 'Graph'.
++     */
++    public boolean getGraph(
++    ) {
++        return this._graph;
++    }
++
++    /**
++     * Returns the value of field 'graphType'.
++     * 
++     * @return the value of field 'GraphType'.
++     */
++    public int getGraphType(
++    ) {
++        return this._graphType;
++    }
++
++    /**
++     * Returns the value of field 'label'.
++     * 
++     * @return the value of field 'Label'.
++     */
++    public java.lang.String getLabel(
++    ) {
++        return this._label;
++    }
++
++    /**
++     * Method hasGraph.
++     * 
++     * @return true if at least one Graph has been added
++     */
++    public boolean hasGraph(
++    ) {
++        return this._has_graph;
++    }
++
++    /**
++     * Method hasGraphType.
++     * 
++     * @return true if at least one GraphType has been added
++     */
++    public boolean hasGraphType(
++    ) {
++        return this._has_graphType;
++    }
++
++    /**
++     * Returns the value of field 'graph'.
++     * 
++     * @return the value of field 'Graph'.
++     */
++    public boolean isGraph(
++    ) {
++        return this._graph;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     */
++    public void removeAllAnnotationElement(
++    ) {
++        this._annotationElementList.clear();
++    }
++
++    /**
++     * Method removeAnnotationElement.
++     * 
++     * @param vAnnotationElement
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeAnnotationElement(
++            final jalview.binding.AnnotationElement vAnnotationElement) {
++        boolean removed = _annotationElementList.remove(vAnnotationElement);
++        return removed;
++    }
++
++    /**
++     * Method removeAnnotationElementAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.AnnotationElement removeAnnotationElementAt(
++            final int index) {
++        java.lang.Object obj = this._annotationElementList.remove(index);
++        return (jalview.binding.AnnotationElement) obj;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vAnnotationElement
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setAnnotationElement(
++            final int index,
++            final jalview.binding.AnnotationElement vAnnotationElement)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._annotationElementList.size()) {
++            throw new IndexOutOfBoundsException("setAnnotationElement: Index value '" + index + "' not in range [0.." + (this._annotationElementList.size() - 1) + "]");
++        }
++        
++        this._annotationElementList.set(index, vAnnotationElement);
++    }
++
++    /**
++     * 
++     * 
++     * @param vAnnotationElementArray
++     */
++    public void setAnnotationElement(
++            final jalview.binding.AnnotationElement[] vAnnotationElementArray) {
++        //-- copy array
++        _annotationElementList.clear();
++        
++        for (int i = 0; i < vAnnotationElementArray.length; i++) {
++                this._annotationElementList.add(vAnnotationElementArray[i]);
++        }
++    }
++
++    /**
++     * Sets the value of field 'description'.
++     * 
++     * @param description the value of field 'description'.
++     */
++    public void setDescription(
++            final java.lang.String description) {
++        this._description = description;
++    }
++
++    /**
++     * Sets the value of field 'graph'.
++     * 
++     * @param graph the value of field 'graph'.
++     */
++    public void setGraph(
++            final boolean graph) {
++        this._graph = graph;
++        this._has_graph = true;
++    }
++
++    /**
++     * Sets the value of field 'graphType'.
++     * 
++     * @param graphType the value of field 'graphType'.
++     */
++    public void setGraphType(
++            final int graphType) {
++        this._graphType = graphType;
++        this._has_graphType = true;
++    }
++
++    /**
++     * Sets the value of field 'label'.
++     * 
++     * @param label the value of field 'label'.
++     */
++    public void setLabel(
++            final java.lang.String label) {
++        this._label = label;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Annotation
++     */
++    public static jalview.binding.Annotation unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Annotation) Unmarshaller.unmarshal(jalview.binding.Annotation.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--  }
--
--  /**
--   * Sets the value of field 'description'.
--   * 
--   * @param description
--   *          the value of field 'description'.
--   */
--  public void setDescription(final java.lang.String description)
--  {
--    this._description = description;
--  }
--
--  /**
--   * Sets the value of field 'graph'.
--   * 
--   * @param graph
--   *          the value of field 'graph'.
--   */
--  public void setGraph(final boolean graph)
--  {
--    this._graph = graph;
--    this._has_graph = true;
--  }
--
--  /**
--   * Sets the value of field 'graphType'.
--   * 
--   * @param graphType
--   *          the value of field 'graphType'.
--   */
--  public void setGraphType(final int graphType)
--  {
--    this._graphType = graphType;
--    this._has_graphType = true;
--  }
--
--  /**
--   * Sets the value of field 'label'.
--   * 
--   * @param label
--   *          the value of field 'label'.
--   */
--  public void setLabel(final java.lang.String label)
--  {
--    this._label = label;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Annotation
--   */
--  public static jalview.binding.Annotation unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Annotation) Unmarshaller.unmarshal(
--            jalview.binding.Annotation.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,287 -32,287 +19,273 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class AnnotationElement implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _position.
--   */
--  private int _position;
--
--  /**
--   * keeps track of state for field: _position
--   */
--  private boolean _has_position;
--
--  /**
--   * Field _displayCharacter.
--   */
--  private java.lang.String _displayCharacter;
--
--  /**
--   * Field _description.
--   */
--  private java.lang.String _description;
--
--  /**
--   * Field _secondaryStructure.
--   */
--  private java.lang.String _secondaryStructure;
--
--  /**
--   * Field _value.
--   */
--  private float _value;
--
--  /**
--   * keeps track of state for field: _value
--   */
--  private boolean _has_value;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public AnnotationElement()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
++public class AnnotationElement implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _position.
++     */
++    private int _position;
++
++    /**
++     * keeps track of state for field: _position
++     */
++    private boolean _has_position;
++
++    /**
++     * Field _displayCharacter.
++     */
++    private java.lang.String _displayCharacter;
++
++    /**
++     * Field _description.
++     */
++    private java.lang.String _description;
++
++    /**
++     * Field _secondaryStructure.
++     */
++    private java.lang.String _secondaryStructure;
++
++    /**
++     * Field _value.
++     */
++    private float _value;
++
++    /**
++     * keeps track of state for field: _value
++     */
++    private boolean _has_value;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public AnnotationElement() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     */
++    public void deletePosition(
++    ) {
++        this._has_position= false;
++    }
++
++    /**
++     */
++    public void deleteValue(
++    ) {
++        this._has_value= false;
++    }
++
++    /**
++     * Returns the value of field 'description'.
++     * 
++     * @return the value of field 'Description'.
++     */
++    public java.lang.String getDescription(
++    ) {
++        return this._description;
++    }
++
++    /**
++     * Returns the value of field 'displayCharacter'.
++     * 
++     * @return the value of field 'DisplayCharacter'.
++     */
++    public java.lang.String getDisplayCharacter(
++    ) {
++        return this._displayCharacter;
++    }
++
++    /**
++     * Returns the value of field 'position'.
++     * 
++     * @return the value of field 'Position'.
       */
--  public void deletePosition()
--  {
--    this._has_position = false;
--  }
++    public int getPosition(
++    ) {
++        return this._position;
++    }
++
++    /**
++     * Returns the value of field 'secondaryStructure'.
++     * 
++     * @return the value of field 'SecondaryStructure'.
++     */
++    public java.lang.String getSecondaryStructure(
++    ) {
++        return this._secondaryStructure;
++    }
++
++    /**
++     * Returns the value of field 'value'.
++     * 
++     * @return the value of field 'Value'.
++     */
++    public float getValue(
++    ) {
++        return this._value;
++    }
++
++    /**
++     * Method hasPosition.
++     * 
++     * @return true if at least one Position has been added
++     */
++    public boolean hasPosition(
++    ) {
++        return this._has_position;
++    }
++
++    /**
++     * Method hasValue.
++     * 
++     * @return true if at least one Value has been added
++     */
++    public boolean hasValue(
++    ) {
++        return this._has_value;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'description'.
++     * 
++     * @param description the value of field 'description'.
++     */
++    public void setDescription(
++            final java.lang.String description) {
++        this._description = description;
++    }
++
++    /**
++     * Sets the value of field 'displayCharacter'.
++     * 
++     * @param displayCharacter the value of field 'displayCharacter'
++     */
++    public void setDisplayCharacter(
++            final java.lang.String displayCharacter) {
++        this._displayCharacter = displayCharacter;
++    }
++
++    /**
++     * Sets the value of field 'position'.
++     * 
++     * @param position the value of field 'position'.
++     */
++    public void setPosition(
++            final int position) {
++        this._position = position;
++        this._has_position = true;
++    }
++
++    /**
++     * Sets the value of field 'secondaryStructure'.
++     * 
++     * @param secondaryStructure the value of field
++     * 'secondaryStructure'.
++     */
++    public void setSecondaryStructure(
++            final java.lang.String secondaryStructure) {
++        this._secondaryStructure = secondaryStructure;
++    }
++
++    /**
++     * Sets the value of field 'value'.
++     * 
++     * @param value the value of field 'value'.
++     */
++    public void setValue(
++            final float value) {
++        this._value = value;
++        this._has_value = true;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.AnnotationElement
++     */
++    public static jalview.binding.AnnotationElement unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.AnnotationElement) Unmarshaller.unmarshal(jalview.binding.AnnotationElement.class, reader);
++    }
  
--  /**
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
       */
--  public void deleteValue()
--  {
--    this._has_value = false;
--  }
--
--  /**
--   * Returns the value of field 'description'.
--   * 
--   * @return the value of field 'Description'.
--   */
--  public java.lang.String getDescription()
--  {
--    return this._description;
--  }
--
--  /**
--   * Returns the value of field 'displayCharacter'.
--   * 
--   * @return the value of field 'DisplayCharacter'.
--   */
--  public java.lang.String getDisplayCharacter()
--  {
--    return this._displayCharacter;
--  }
--
--  /**
--   * Returns the value of field 'position'.
--   * 
--   * @return the value of field 'Position'.
--   */
--  public int getPosition()
--  {
--    return this._position;
--  }
--
--  /**
--   * Returns the value of field 'secondaryStructure'.
--   * 
--   * @return the value of field 'SecondaryStructure'.
--   */
--  public java.lang.String getSecondaryStructure()
--  {
--    return this._secondaryStructure;
--  }
--
--  /**
--   * Returns the value of field 'value'.
--   * 
--   * @return the value of field 'Value'.
--   */
--  public float getValue()
--  {
--    return this._value;
--  }
--
--  /**
--   * Method hasPosition.
--   * 
--   * @return true if at least one Position has been added
--   */
--  public boolean hasPosition()
--  {
--    return this._has_position;
--  }
--
--  /**
--   * Method hasValue.
--   * 
--   * @return true if at least one Value has been added
--   */
--  public boolean hasValue()
--  {
--    return this._has_value;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'description'.
--   * 
--   * @param description
--   *          the value of field 'description'.
--   */
--  public void setDescription(final java.lang.String description)
--  {
--    this._description = description;
--  }
--
--  /**
--   * Sets the value of field 'displayCharacter'.
--   * 
--   * @param displayCharacter
--   *          the value of field 'displayCharacter'
--   */
--  public void setDisplayCharacter(final java.lang.String displayCharacter)
--  {
--    this._displayCharacter = displayCharacter;
--  }
--
--  /**
--   * Sets the value of field 'position'.
--   * 
--   * @param position
--   *          the value of field 'position'.
--   */
--  public void setPosition(final int position)
--  {
--    this._position = position;
--    this._has_position = true;
--  }
--
--  /**
--   * Sets the value of field 'secondaryStructure'.
--   * 
--   * @param secondaryStructure
--   *          the value of field 'secondaryStructure'.
--   */
--  public void setSecondaryStructure(
--          final java.lang.String secondaryStructure)
--  {
--    this._secondaryStructure = secondaryStructure;
--  }
--
--  /**
--   * Sets the value of field 'value'.
--   * 
--   * @param value
--   *          the value of field 'value'.
--   */
--  public void setValue(final float value)
--  {
--    this._value = value;
--    this._has_value = true;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.AnnotationElement
--   */
--  public static jalview.binding.AnnotationElement unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.AnnotationElement) Unmarshaller.unmarshal(
--            jalview.binding.AnnotationElement.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,480 -32,480 +19,465 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class Colour implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _name.
--   */
--  private java.lang.String _name;
--
--  /**
--   * Field _RGB.
--   */
--  private java.lang.String _RGB;
--
--  /**
--   * Field _minRGB.
--   */
--  private java.lang.String _minRGB;
--
--  /**
--   * loosely specified enumeration: NONE,ABOVE, or BELOW
--   */
--  private java.lang.String _threshType;
--
--  /**
--   * Field _threshold.
--   */
--  private float _threshold;
--
--  /**
--   * keeps track of state for field: _threshold
--   */
--  private boolean _has_threshold;
--
--  /**
--   * Field _max.
--   */
--  private float _max;
--
--  /**
--   * keeps track of state for field: _max
--   */
--  private boolean _has_max;
--
--  /**
--   * Field _min.
--   */
--  private float _min;
--
--  /**
--   * keeps track of state for field: _min
--   */
--  private boolean _has_min;
--
--  /**
--   * Field _colourByLabel.
--   */
--  private boolean _colourByLabel;
--
--  /**
--   * keeps track of state for field: _colourByLabel
--   */
--  private boolean _has_colourByLabel;
--
--  /**
--   * Field _autoScale.
--   */
--  private boolean _autoScale;
--
--  /**
--   * keeps track of state for field: _autoScale
--   */
--  private boolean _has_autoScale;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public Colour()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--     */
--  public void deleteAutoScale()
--  {
--    this._has_autoScale = false;
--  }
--
--  /**
--     */
--  public void deleteColourByLabel()
--  {
--    this._has_colourByLabel = false;
--  }
--
--  /**
--     */
--  public void deleteMax()
--  {
--    this._has_max = false;
--  }
--
--  /**
--     */
--  public void deleteMin()
--  {
--    this._has_min = false;
--  }
--
--  /**
--     */
--  public void deleteThreshold()
--  {
--    this._has_threshold = false;
--  }
--
--  /**
--   * Returns the value of field 'autoScale'.
--   * 
--   * @return the value of field 'AutoScale'.
--   */
--  public boolean getAutoScale()
--  {
--    return this._autoScale;
--  }
--
--  /**
--   * Returns the value of field 'colourByLabel'.
--   * 
--   * @return the value of field 'ColourByLabel'.
--   */
--  public boolean getColourByLabel()
--  {
--    return this._colourByLabel;
--  }
--
--  /**
--   * Returns the value of field 'max'.
--   * 
--   * @return the value of field 'Max'.
--   */
--  public float getMax()
--  {
--    return this._max;
--  }
--
--  /**
--   * Returns the value of field 'min'.
--   * 
--   * @return the value of field 'Min'.
--   */
--  public float getMin()
--  {
--    return this._min;
--  }
--
--  /**
--   * Returns the value of field 'minRGB'.
--   * 
--   * @return the value of field 'MinRGB'.
--   */
--  public java.lang.String getMinRGB()
--  {
--    return this._minRGB;
--  }
--
--  /**
--   * Returns the value of field 'name'.
--   * 
--   * @return the value of field 'Name'.
--   */
--  public java.lang.String getName()
--  {
--    return this._name;
--  }
--
--  /**
--   * Returns the value of field 'RGB'.
--   * 
--   * @return the value of field 'RGB'.
--   */
--  public java.lang.String getRGB()
--  {
--    return this._RGB;
--  }
--
--  /**
--   * Returns the value of field 'threshType'. The field 'threshType' has the
--   * following description: loosely specified enumeration: NONE,ABOVE, or BELOW
--   * 
--   * @return the value of field 'ThreshType'.
--   */
--  public java.lang.String getThreshType()
--  {
--    return this._threshType;
--  }
--
--  /**
--   * Returns the value of field 'threshold'.
--   * 
--   * @return the value of field 'Threshold'.
--   */
--  public float getThreshold()
--  {
--    return this._threshold;
--  }
--
--  /**
--   * Method hasAutoScale.
--   * 
--   * @return true if at least one AutoScale has been added
--   */
--  public boolean hasAutoScale()
--  {
--    return this._has_autoScale;
--  }
--
--  /**
--   * Method hasColourByLabel.
--   * 
--   * @return true if at least one ColourByLabel has been added
--   */
--  public boolean hasColourByLabel()
--  {
--    return this._has_colourByLabel;
--  }
--
--  /**
--   * Method hasMax.
--   * 
--   * @return true if at least one Max has been added
--   */
--  public boolean hasMax()
--  {
--    return this._has_max;
--  }
--
--  /**
--   * Method hasMin.
--   * 
--   * @return true if at least one Min has been added
--   */
--  public boolean hasMin()
--  {
--    return this._has_min;
--  }
--
--  /**
--   * Method hasThreshold.
--   * 
--   * @return true if at least one Threshold has been added
--   */
--  public boolean hasThreshold()
--  {
--    return this._has_threshold;
--  }
--
--  /**
--   * Returns the value of field 'autoScale'.
--   * 
--   * @return the value of field 'AutoScale'.
--   */
--  public boolean isAutoScale()
--  {
--    return this._autoScale;
--  }
--
--  /**
--   * Returns the value of field 'colourByLabel'.
--   * 
--   * @return the value of field 'ColourByLabel'.
--   */
--  public boolean isColourByLabel()
--  {
--    return this._colourByLabel;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
--    }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'autoScale'.
--   * 
--   * @param autoScale
--   *          the value of field 'autoScale'.
--   */
--  public void setAutoScale(final boolean autoScale)
--  {
--    this._autoScale = autoScale;
--    this._has_autoScale = true;
--  }
--
--  /**
--   * Sets the value of field 'colourByLabel'.
--   * 
--   * @param colourByLabel
--   *          the value of field 'colourByLabel'.
--   */
--  public void setColourByLabel(final boolean colourByLabel)
--  {
--    this._colourByLabel = colourByLabel;
--    this._has_colourByLabel = true;
--  }
--
--  /**
--   * Sets the value of field 'max'.
--   * 
--   * @param max
--   *          the value of field 'max'.
--   */
--  public void setMax(final float max)
--  {
--    this._max = max;
--    this._has_max = true;
--  }
--
--  /**
--   * Sets the value of field 'min'.
--   * 
--   * @param min
--   *          the value of field 'min'.
--   */
--  public void setMin(final float min)
--  {
--    this._min = min;
--    this._has_min = true;
--  }
--
--  /**
--   * Sets the value of field 'minRGB'.
--   * 
--   * @param minRGB
--   *          the value of field 'minRGB'.
--   */
--  public void setMinRGB(final java.lang.String minRGB)
--  {
--    this._minRGB = minRGB;
--  }
--
--  /**
--   * Sets the value of field 'name'.
--   * 
--   * @param name
--   *          the value of field 'name'.
--   */
--  public void setName(final java.lang.String name)
--  {
--    this._name = name;
--  }
--
--  /**
--   * Sets the value of field 'RGB'.
--   * 
--   * @param RGB
--   *          the value of field 'RGB'.
--   */
--  public void setRGB(final java.lang.String RGB)
--  {
--    this._RGB = RGB;
--  }
--
--  /**
--   * Sets the value of field 'threshType'. The field 'threshType' has the
--   * following description: loosely specified enumeration: NONE,ABOVE, or BELOW
--   * 
--   * @param threshType
--   *          the value of field 'threshType'.
--   */
--  public void setThreshType(final java.lang.String threshType)
--  {
--    this._threshType = threshType;
--  }
--
--  /**
--   * Sets the value of field 'threshold'.
--   * 
--   * @param threshold
--   *          the value of field 'threshold'.
--   */
--  public void setThreshold(final float threshold)
--  {
--    this._threshold = threshold;
--    this._has_threshold = true;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Colour
--   */
--  public static jalview.binding.Colour unmarshal(final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Colour) Unmarshaller.unmarshal(
--            jalview.binding.Colour.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++public class Colour implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _name.
++     */
++    private java.lang.String _name;
++
++    /**
++     * Field _RGB.
++     */
++    private java.lang.String _RGB;
++
++    /**
++     * Field _minRGB.
++     */
++    private java.lang.String _minRGB;
++
++    /**
++     * loosely specified enumeration: NONE,ABOVE, or BELOW
++     */
++    private java.lang.String _threshType;
++
++    /**
++     * Field _threshold.
++     */
++    private float _threshold;
++
++    /**
++     * keeps track of state for field: _threshold
++     */
++    private boolean _has_threshold;
++
++    /**
++     * Field _max.
++     */
++    private float _max;
++
++    /**
++     * keeps track of state for field: _max
++     */
++    private boolean _has_max;
++
++    /**
++     * Field _min.
++     */
++    private float _min;
++
++    /**
++     * keeps track of state for field: _min
++     */
++    private boolean _has_min;
++
++    /**
++     * Field _colourByLabel.
++     */
++    private boolean _colourByLabel;
++
++    /**
++     * keeps track of state for field: _colourByLabel
++     */
++    private boolean _has_colourByLabel;
++
++    /**
++     * Field _autoScale.
++     */
++    private boolean _autoScale;
++
++    /**
++     * keeps track of state for field: _autoScale
++     */
++    private boolean _has_autoScale;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Colour() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     */
++    public void deleteAutoScale(
++    ) {
++        this._has_autoScale= false;
++    }
++
++    /**
++     */
++    public void deleteColourByLabel(
++    ) {
++        this._has_colourByLabel= false;
++    }
++
++    /**
++     */
++    public void deleteMax(
++    ) {
++        this._has_max= false;
++    }
++
++    /**
++     */
++    public void deleteMin(
++    ) {
++        this._has_min= false;
++    }
++
++    /**
++     */
++    public void deleteThreshold(
++    ) {
++        this._has_threshold= false;
++    }
++
++    /**
++     * Returns the value of field 'autoScale'.
++     * 
++     * @return the value of field 'AutoScale'.
++     */
++    public boolean getAutoScale(
++    ) {
++        return this._autoScale;
++    }
++
++    /**
++     * Returns the value of field 'colourByLabel'.
++     * 
++     * @return the value of field 'ColourByLabel'.
++     */
++    public boolean getColourByLabel(
++    ) {
++        return this._colourByLabel;
++    }
++
++    /**
++     * Returns the value of field 'max'.
++     * 
++     * @return the value of field 'Max'.
++     */
++    public float getMax(
++    ) {
++        return this._max;
++    }
++
++    /**
++     * Returns the value of field 'min'.
++     * 
++     * @return the value of field 'Min'.
++     */
++    public float getMin(
++    ) {
++        return this._min;
++    }
++
++    /**
++     * Returns the value of field 'minRGB'.
++     * 
++     * @return the value of field 'MinRGB'.
++     */
++    public java.lang.String getMinRGB(
++    ) {
++        return this._minRGB;
++    }
++
++    /**
++     * Returns the value of field 'name'.
++     * 
++     * @return the value of field 'Name'.
++     */
++    public java.lang.String getName(
++    ) {
++        return this._name;
++    }
++
++    /**
++     * Returns the value of field 'RGB'.
++     * 
++     * @return the value of field 'RGB'.
++     */
++    public java.lang.String getRGB(
++    ) {
++        return this._RGB;
++    }
++
++    /**
++     * Returns the value of field 'threshType'. The field
++     * 'threshType' has the following description: loosely
++     * specified enumeration: NONE,ABOVE, or BELOW
++     * 
++     * @return the value of field 'ThreshType'.
++     */
++    public java.lang.String getThreshType(
++    ) {
++        return this._threshType;
++    }
++
++    /**
++     * Returns the value of field 'threshold'.
++     * 
++     * @return the value of field 'Threshold'.
++     */
++    public float getThreshold(
++    ) {
++        return this._threshold;
++    }
++
++    /**
++     * Method hasAutoScale.
++     * 
++     * @return true if at least one AutoScale has been added
++     */
++    public boolean hasAutoScale(
++    ) {
++        return this._has_autoScale;
++    }
++
++    /**
++     * Method hasColourByLabel.
++     * 
++     * @return true if at least one ColourByLabel has been added
++     */
++    public boolean hasColourByLabel(
++    ) {
++        return this._has_colourByLabel;
++    }
++
++    /**
++     * Method hasMax.
++     * 
++     * @return true if at least one Max has been added
++     */
++    public boolean hasMax(
++    ) {
++        return this._has_max;
++    }
++
++    /**
++     * Method hasMin.
++     * 
++     * @return true if at least one Min has been added
++     */
++    public boolean hasMin(
++    ) {
++        return this._has_min;
++    }
++
++    /**
++     * Method hasThreshold.
++     * 
++     * @return true if at least one Threshold has been added
++     */
++    public boolean hasThreshold(
++    ) {
++        return this._has_threshold;
++    }
++
++    /**
++     * Returns the value of field 'autoScale'.
++     * 
++     * @return the value of field 'AutoScale'.
++     */
++    public boolean isAutoScale(
++    ) {
++        return this._autoScale;
++    }
++
++    /**
++     * Returns the value of field 'colourByLabel'.
++     * 
++     * @return the value of field 'ColourByLabel'.
++     */
++    public boolean isColourByLabel(
++    ) {
++        return this._colourByLabel;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'autoScale'.
++     * 
++     * @param autoScale the value of field 'autoScale'.
++     */
++    public void setAutoScale(
++            final boolean autoScale) {
++        this._autoScale = autoScale;
++        this._has_autoScale = true;
++    }
++
++    /**
++     * Sets the value of field 'colourByLabel'.
++     * 
++     * @param colourByLabel the value of field 'colourByLabel'.
++     */
++    public void setColourByLabel(
++            final boolean colourByLabel) {
++        this._colourByLabel = colourByLabel;
++        this._has_colourByLabel = true;
++    }
++
++    /**
++     * Sets the value of field 'max'.
++     * 
++     * @param max the value of field 'max'.
++     */
++    public void setMax(
++            final float max) {
++        this._max = max;
++        this._has_max = true;
++    }
++
++    /**
++     * Sets the value of field 'min'.
++     * 
++     * @param min the value of field 'min'.
++     */
++    public void setMin(
++            final float min) {
++        this._min = min;
++        this._has_min = true;
++    }
++
++    /**
++     * Sets the value of field 'minRGB'.
++     * 
++     * @param minRGB the value of field 'minRGB'.
++     */
++    public void setMinRGB(
++            final java.lang.String minRGB) {
++        this._minRGB = minRGB;
++    }
++
++    /**
++     * Sets the value of field 'name'.
++     * 
++     * @param name the value of field 'name'.
++     */
++    public void setName(
++            final java.lang.String name) {
++        this._name = name;
++    }
++
++    /**
++     * Sets the value of field 'RGB'.
++     * 
++     * @param RGB the value of field 'RGB'.
++     */
++    public void setRGB(
++            final java.lang.String RGB) {
++        this._RGB = RGB;
++    }
++
++    /**
++     * Sets the value of field 'threshType'. The field 'threshType'
++     * has the following description: loosely specified
++     * enumeration: NONE,ABOVE, or BELOW
++     * 
++     * @param threshType the value of field 'threshType'.
++     */
++    public void setThreshType(
++            final java.lang.String threshType) {
++        this._threshType = threshType;
++    }
++
++    /**
++     * Sets the value of field 'threshold'.
++     * 
++     * @param threshold the value of field 'threshold'.
++     */
++    public void setThreshold(
++            final float threshold) {
++        this._threshold = threshold;
++        this._has_threshold = true;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Colour
++     */
++    public static jalview.binding.Colour unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Colour) Unmarshaller.unmarshal(jalview.binding.Colour.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,286 -32,286 +19,272 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class Feature implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _begin.
--   */
--  private int _begin;
--
--  /**
--   * keeps track of state for field: _begin
--   */
--  private boolean _has_begin;
--
--  /**
--   * Field _end.
--   */
--  private int _end;
--
--  /**
--   * keeps track of state for field: _end
--   */
--  private boolean _has_end;
--
--  /**
--   * Field _type.
--   */
--  private java.lang.String _type;
--
--  /**
--   * Field _description.
--   */
--  private java.lang.String _description;
--
--  /**
--   * Field _status.
--   */
--  private java.lang.String _status;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public Feature()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
++public class Feature implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _begin.
++     */
++    private int _begin;
++
++    /**
++     * keeps track of state for field: _begin
++     */
++    private boolean _has_begin;
++
++    /**
++     * Field _end.
++     */
++    private int _end;
++
++    /**
++     * keeps track of state for field: _end
++     */
++    private boolean _has_end;
++
++    /**
++     * Field _type.
++     */
++    private java.lang.String _type;
++
++    /**
++     * Field _description.
++     */
++    private java.lang.String _description;
++
++    /**
++     * Field _status.
++     */
++    private java.lang.String _status;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Feature() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     */
++    public void deleteBegin(
++    ) {
++        this._has_begin= false;
++    }
++
++    /**
++     */
++    public void deleteEnd(
++    ) {
++        this._has_end= false;
++    }
++
++    /**
++     * Returns the value of field 'begin'.
++     * 
++     * @return the value of field 'Begin'.
++     */
++    public int getBegin(
++    ) {
++        return this._begin;
++    }
++
++    /**
++     * Returns the value of field 'description'.
++     * 
++     * @return the value of field 'Description'.
++     */
++    public java.lang.String getDescription(
++    ) {
++        return this._description;
++    }
++
++    /**
++     * Returns the value of field 'end'.
++     * 
++     * @return the value of field 'End'.
       */
--  public void deleteBegin()
--  {
--    this._has_begin = false;
--  }
++    public int getEnd(
++    ) {
++        return this._end;
++    }
++
++    /**
++     * Returns the value of field 'status'.
++     * 
++     * @return the value of field 'Status'.
++     */
++    public java.lang.String getStatus(
++    ) {
++        return this._status;
++    }
++
++    /**
++     * Returns the value of field 'type'.
++     * 
++     * @return the value of field 'Type'.
++     */
++    public java.lang.String getType(
++    ) {
++        return this._type;
++    }
++
++    /**
++     * Method hasBegin.
++     * 
++     * @return true if at least one Begin has been added
++     */
++    public boolean hasBegin(
++    ) {
++        return this._has_begin;
++    }
++
++    /**
++     * Method hasEnd.
++     * 
++     * @return true if at least one End has been added
++     */
++    public boolean hasEnd(
++    ) {
++        return this._has_end;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'begin'.
++     * 
++     * @param begin the value of field 'begin'.
++     */
++    public void setBegin(
++            final int begin) {
++        this._begin = begin;
++        this._has_begin = true;
++    }
++
++    /**
++     * Sets the value of field 'description'.
++     * 
++     * @param description the value of field 'description'.
++     */
++    public void setDescription(
++            final java.lang.String description) {
++        this._description = description;
++    }
++
++    /**
++     * Sets the value of field 'end'.
++     * 
++     * @param end the value of field 'end'.
++     */
++    public void setEnd(
++            final int end) {
++        this._end = end;
++        this._has_end = true;
++    }
++
++    /**
++     * Sets the value of field 'status'.
++     * 
++     * @param status the value of field 'status'.
++     */
++    public void setStatus(
++            final java.lang.String status) {
++        this._status = status;
++    }
++
++    /**
++     * Sets the value of field 'type'.
++     * 
++     * @param type the value of field 'type'.
++     */
++    public void setType(
++            final java.lang.String type) {
++        this._type = type;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Feature
++     */
++    public static jalview.binding.Feature unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Feature) Unmarshaller.unmarshal(jalview.binding.Feature.class, reader);
++    }
  
--  /**
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
       */
--  public void deleteEnd()
--  {
--    this._has_end = false;
--  }
--
--  /**
--   * Returns the value of field 'begin'.
--   * 
--   * @return the value of field 'Begin'.
--   */
--  public int getBegin()
--  {
--    return this._begin;
--  }
--
--  /**
--   * Returns the value of field 'description'.
--   * 
--   * @return the value of field 'Description'.
--   */
--  public java.lang.String getDescription()
--  {
--    return this._description;
--  }
--
--  /**
--   * Returns the value of field 'end'.
--   * 
--   * @return the value of field 'End'.
--   */
--  public int getEnd()
--  {
--    return this._end;
--  }
--
--  /**
--   * Returns the value of field 'status'.
--   * 
--   * @return the value of field 'Status'.
--   */
--  public java.lang.String getStatus()
--  {
--    return this._status;
--  }
--
--  /**
--   * Returns the value of field 'type'.
--   * 
--   * @return the value of field 'Type'.
--   */
--  public java.lang.String getType()
--  {
--    return this._type;
--  }
--
--  /**
--   * Method hasBegin.
--   * 
--   * @return true if at least one Begin has been added
--   */
--  public boolean hasBegin()
--  {
--    return this._has_begin;
--  }
--
--  /**
--   * Method hasEnd.
--   * 
--   * @return true if at least one End has been added
--   */
--  public boolean hasEnd()
--  {
--    return this._has_end;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'begin'.
--   * 
--   * @param begin
--   *          the value of field 'begin'.
--   */
--  public void setBegin(final int begin)
--  {
--    this._begin = begin;
--    this._has_begin = true;
--  }
--
--  /**
--   * Sets the value of field 'description'.
--   * 
--   * @param description
--   *          the value of field 'description'.
--   */
--  public void setDescription(final java.lang.String description)
--  {
--    this._description = description;
--  }
--
--  /**
--   * Sets the value of field 'end'.
--   * 
--   * @param end
--   *          the value of field 'end'.
--   */
--  public void setEnd(final int end)
--  {
--    this._end = end;
--    this._has_end = true;
--  }
--
--  /**
--   * Sets the value of field 'status'.
--   * 
--   * @param status
--   *          the value of field 'status'.
--   */
--  public void setStatus(final java.lang.String status)
--  {
--    this._status = status;
--  }
--
--  /**
--   * Sets the value of field 'type'.
--   * 
--   * @param type
--   *          the value of field 'type'.
--   */
--  public void setType(final java.lang.String type)
--  {
--    this._type = type;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Feature
--   */
--  public static jalview.binding.Feature unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Feature) Unmarshaller.unmarshal(
--            jalview.binding.Feature.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
@@@ -1,31 -1,31 +1,16 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
--import jalview.util.MessageManager;
--
  import org.exolab.castor.xml.Marshaller;
  import org.exolab.castor.xml.Unmarshaller;
  
   * 
   * @version $Revision$ $Date$
   */
--public class FeatureSettings implements java.io.Serializable
--{
++public class FeatureSettings implements java.io.Serializable {
  
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
  
--  /**
--   * Field _settingList.
--   */
--  private java.util.Vector _settingList;
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
  
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
++    /**
++     * Field _settingList.
++     */
++    private java.util.Vector _settingList;
  
--  public FeatureSettings()
--  {
--    super();
--    this._settingList = new java.util.Vector();
--  }
  
--  // -----------/
--  // - Methods -/
--  // -----------/
++      //----------------/
++     //- Constructors -/
++    //----------------/
  
--  /**
--   * 
--   * 
--   * @param vSetting
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addSetting(final jalview.binding.Setting vSetting)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._settingList.addElement(vSetting);
--  }
++    public FeatureSettings() {
++        super();
++        this._settingList = new java.util.Vector();
++    }
  
--  /**
--   * 
--   * 
--   * @param index
--   * @param vSetting
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addSetting(final int index,
--          final jalview.binding.Setting vSetting)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._settingList.add(index, vSetting);
--  }
  
--  /**
--   * Method enumerateSetting.
--   * 
--   * @return an Enumeration over all jalview.binding.Setting elements
--   */
--  public java.util.Enumeration enumerateSetting()
--  {
--    return this._settingList.elements();
--  }
++      //-----------/
++     //- Methods -/
++    //-----------/
  
--  /**
--   * Method getSetting.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.Setting at the given index
--   */
--  public jalview.binding.Setting getSetting(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._settingList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getSetting",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._settingList.size() - 1)).toString()
--          }));        
++    /**
++     * 
++     * 
++     * @param vSetting
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addSetting(
++            final jalview.binding.Setting vSetting)
++    throws java.lang.IndexOutOfBoundsException {
++        this._settingList.addElement(vSetting);
      }
  
--    return (jalview.binding.Setting) _settingList.get(index);
--  }
++    /**
++     * 
++     * 
++     * @param index
++     * @param vSetting
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addSetting(
++            final int index,
++            final jalview.binding.Setting vSetting)
++    throws java.lang.IndexOutOfBoundsException {
++        this._settingList.add(index, vSetting);
++    }
  
--  /**
--   * Method getSetting.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.Setting[] getSetting()
--  {
--    jalview.binding.Setting[] array = new jalview.binding.Setting[0];
--    return (jalview.binding.Setting[]) this._settingList.toArray(array);
--  }
++    /**
++     * Method enumerateSetting.
++     * 
++     * @return an Enumeration over all jalview.binding.Setting
++     * elements
++     */
++    public java.util.Enumeration enumerateSetting(
++    ) {
++        return this._settingList.elements();
++    }
  
--  /**
--   * Method getSettingCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getSettingCount()
--  {
--    return this._settingList.size();
--  }
++    /**
++     * Method getSetting.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.Setting at the
++     * given index
++     */
++    public jalview.binding.Setting getSetting(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._settingList.size()) {
++            throw new IndexOutOfBoundsException("getSetting: Index value '" + index + "' not in range [0.." + (this._settingList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.Setting) _settingList.get(index);
++    }
  
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++    /**
++     * Method getSetting.Returns the contents of the collection in
++     * an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.Setting[] getSetting(
++    ) {
++        jalview.binding.Setting[] array = new jalview.binding.Setting[0];
++        return (jalview.binding.Setting[]) this._settingList.toArray(array);
      }
--    return true;
--  }
  
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
++    /**
++     * Method getSettingCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getSettingCount(
++    ) {
++        return this._settingList.size();
++    }
  
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
  
--  /**
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
       */
--  public void removeAllSetting()
--  {
--    this._settingList.clear();
--  }
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
  
--  /**
--   * Method removeSetting.
--   * 
--   * @param vSetting
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeSetting(final jalview.binding.Setting vSetting)
--  {
--    boolean removed = _settingList.remove(vSetting);
--    return removed;
--  }
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
  
--  /**
--   * Method removeSettingAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.Setting removeSettingAt(final int index)
--  {
--    java.lang.Object obj = this._settingList.remove(index);
--    return (jalview.binding.Setting) obj;
--  }
++    /**
++     */
++    public void removeAllSetting(
++    ) {
++        this._settingList.clear();
++    }
  
--  /**
--   * 
--   * 
--   * @param index
--   * @param vSetting
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setSetting(final int index,
--          final jalview.binding.Setting vSetting)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._settingList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setSetting",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._settingList.size() - 1)).toString()
--        }));          
++    /**
++     * Method removeSetting.
++     * 
++     * @param vSetting
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeSetting(
++            final jalview.binding.Setting vSetting) {
++        boolean removed = _settingList.remove(vSetting);
++        return removed;
      }
  
--    this._settingList.set(index, vSetting);
--  }
++    /**
++     * Method removeSettingAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.Setting removeSettingAt(
++            final int index) {
++        java.lang.Object obj = this._settingList.remove(index);
++        return (jalview.binding.Setting) obj;
++    }
  
--  /**
--   * 
--   * 
--   * @param vSettingArray
--   */
--  public void setSetting(final jalview.binding.Setting[] vSettingArray)
--  {
--    // -- copy array
--    _settingList.clear();
++    /**
++     * 
++     * 
++     * @param index
++     * @param vSetting
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setSetting(
++            final int index,
++            final jalview.binding.Setting vSetting)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._settingList.size()) {
++            throw new IndexOutOfBoundsException("setSetting: Index value '" + index + "' not in range [0.." + (this._settingList.size() - 1) + "]");
++        }
++        
++        this._settingList.set(index, vSetting);
++    }
  
--    for (int i = 0; i < vSettingArray.length; i++)
--    {
--      this._settingList.add(vSettingArray[i]);
++    /**
++     * 
++     * 
++     * @param vSettingArray
++     */
++    public void setSetting(
++            final jalview.binding.Setting[] vSettingArray) {
++        //-- copy array
++        _settingList.clear();
++        
++        for (int i = 0; i < vSettingArray.length; i++) {
++                this._settingList.add(vSettingArray[i]);
++        }
      }
--  }
  
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.FeatureSettings
--   */
--  public static jalview.binding.FeatureSettings unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.FeatureSettings) Unmarshaller.unmarshal(
--            jalview.binding.FeatureSettings.class, reader);
--  }
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.FeatureSettings
++     */
++    public static jalview.binding.FeatureSettings unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.FeatureSettings) Unmarshaller.unmarshal(jalview.binding.FeatureSettings.class, reader);
++    }
  
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,106 -32,106 +19,98 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class Features extends Feature implements java.io.Serializable
++public class Features extends Feature 
++implements java.io.Serializable
  {
  
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
  
--  public Features()
--  {
--    super();
--  }
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Features() {
++        super();
++    }
++
  
--  // -----------/
--  // - Methods -/
--  // -----------/
++      //-----------/
++     //- Methods -/
++    //-----------/
  
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
      }
--    return true;
--  }
  
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
  
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
  
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Feature
--   */
--  public static jalview.binding.Feature unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Feature) Unmarshaller.unmarshal(
--            jalview.binding.Features.class, reader);
--  }
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Feature
++     */
++    public static jalview.binding.Feature unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Feature) Unmarshaller.unmarshal(jalview.binding.Features.class, reader);
++    }
  
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,30 -1,30 +1,15 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
--//- Imported classes and packages -/
--//---------------------------------/
--
--import jalview.util.MessageManager;
  
  import org.exolab.castor.xml.Marshaller;
  import org.exolab.castor.xml.Unmarshaller;
   * 
   * @version $Revision$ $Date$
   */
--public class JGroup implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _start.
--   */
--  private int _start;
--
--  /**
--   * keeps track of state for field: _start
--   */
--  private boolean _has_start;
--
--  /**
--   * Field _end.
--   */
--  private int _end;
--
--  /**
--   * keeps track of state for field: _end
--   */
--  private boolean _has_end;
--
--  /**
--   * Field _name.
--   */
--  private java.lang.String _name;
--
--  /**
--   * Field _colour.
--   */
--  private java.lang.String _colour;
--
--  /**
--   * Field _consThreshold.
--   */
--  private int _consThreshold;
--
--  /**
--   * keeps track of state for field: _consThreshold
--   */
--  private boolean _has_consThreshold;
--
--  /**
--   * Field _pidThreshold.
--   */
--  private int _pidThreshold;
--
--  /**
--   * keeps track of state for field: _pidThreshold
--   */
--  private boolean _has_pidThreshold;
--
--  /**
--   * Field _outlineColour.
--   */
--  private int _outlineColour;
--
--  /**
--   * keeps track of state for field: _outlineColour
--   */
--  private boolean _has_outlineColour;
--
--  /**
--   * Field _displayBoxes.
--   */
--  private boolean _displayBoxes;
--
--  /**
--   * keeps track of state for field: _displayBoxes
--   */
--  private boolean _has_displayBoxes;
--
--  /**
--   * Field _displayText.
--   */
--  private boolean _displayText;
--
--  /**
--   * keeps track of state for field: _displayText
--   */
--  private boolean _has_displayText;
--
--  /**
--   * Field _colourText.
--   */
--  private boolean _colourText;
--
--  /**
--   * keeps track of state for field: _colourText
--   */
--  private boolean _has_colourText;
--
--  /**
--   * Field _seqList.
--   */
--  private java.util.Vector _seqList;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public JGroup()
--  {
--    super();
--    this._seqList = new java.util.Vector();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * 
--   * 
--   * @param vSeq
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addSeq(final int vSeq)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._seqList.addElement(new java.lang.Integer(vSeq));
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vSeq
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addSeq(final int index, final int vSeq)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._seqList.add(index, new java.lang.Integer(vSeq));
--  }
--
--  /**
--     */
--  public void deleteColourText()
--  {
--    this._has_colourText = false;
--  }
--
--  /**
--     */
--  public void deleteConsThreshold()
--  {
--    this._has_consThreshold = false;
--  }
--
--  /**
--     */
--  public void deleteDisplayBoxes()
--  {
--    this._has_displayBoxes = false;
--  }
--
--  /**
--     */
--  public void deleteDisplayText()
--  {
--    this._has_displayText = false;
--  }
--
--  /**
--     */
--  public void deleteEnd()
--  {
--    this._has_end = false;
--  }
--
--  /**
--     */
--  public void deleteOutlineColour()
--  {
--    this._has_outlineColour = false;
--  }
--
--  /**
--     */
--  public void deletePidThreshold()
--  {
--    this._has_pidThreshold = false;
--  }
--
--  /**
--     */
--  public void deleteStart()
--  {
--    this._has_start = false;
--  }
--
--  /**
--   * Method enumerateSeq.
--   * 
--   * @return an Enumeration over all int elements
--   */
--  public java.util.Enumeration enumerateSeq()
--  {
--    return this._seqList.elements();
--  }
--
--  /**
--   * Returns the value of field 'colour'.
--   * 
--   * @return the value of field 'Colour'.
--   */
--  public java.lang.String getColour()
--  {
--    return this._colour;
--  }
--
--  /**
--   * Returns the value of field 'colourText'.
--   * 
--   * @return the value of field 'ColourText'.
--   */
--  public boolean getColourText()
--  {
--    return this._colourText;
--  }
--
--  /**
--   * Returns the value of field 'consThreshold'.
--   * 
--   * @return the value of field 'ConsThreshold'.
--   */
--  public int getConsThreshold()
--  {
--    return this._consThreshold;
--  }
--
--  /**
--   * Returns the value of field 'displayBoxes'.
--   * 
--   * @return the value of field 'DisplayBoxes'.
--   */
--  public boolean getDisplayBoxes()
--  {
--    return this._displayBoxes;
--  }
--
--  /**
--   * Returns the value of field 'displayText'.
--   * 
--   * @return the value of field 'DisplayText'.
--   */
--  public boolean getDisplayText()
--  {
--    return this._displayText;
--  }
--
--  /**
--   * Returns the value of field 'end'.
--   * 
--   * @return the value of field 'End'.
--   */
--  public int getEnd()
--  {
--    return this._end;
--  }
--
--  /**
--   * Returns the value of field 'name'.
--   * 
--   * @return the value of field 'Name'.
--   */
--  public java.lang.String getName()
--  {
--    return this._name;
--  }
--
--  /**
--   * Returns the value of field 'outlineColour'.
--   * 
--   * @return the value of field 'OutlineColour'.
--   */
--  public int getOutlineColour()
--  {
--    return this._outlineColour;
--  }
--
--  /**
--   * Returns the value of field 'pidThreshold'.
--   * 
--   * @return the value of field 'PidThreshold'.
--   */
--  public int getPidThreshold()
--  {
--    return this._pidThreshold;
--  }
--
--  /**
--   * Method getSeq.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the int at the given index
--   */
--  public int getSeq(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._seqList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getSeq",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._seqList.size() - 1)).toString()
--        })); 
--    }
--
--    return ((java.lang.Integer) _seqList.get(index)).intValue();
--  }
--
--  /**
--   * Method getSeq.Returns the contents of the collection in an Array.
--   * 
--   * @return this collection as an Array
--   */
--  public int[] getSeq()
--  {
--    int size = this._seqList.size();
--    int[] array = new int[size];
--    java.util.Iterator iter = _seqList.iterator();
--    for (int index = 0; index < size; index++)
--    {
--      array[index] = ((java.lang.Integer) iter.next()).intValue();
--    }
--    return array;
--  }
--
--  /**
--   * Method getSeqCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getSeqCount()
--  {
--    return this._seqList.size();
--  }
--
--  /**
--   * Returns the value of field 'start'.
--   * 
--   * @return the value of field 'Start'.
--   */
--  public int getStart()
--  {
--    return this._start;
--  }
--
--  /**
--   * Method hasColourText.
--   * 
--   * @return true if at least one ColourText has been added
--   */
--  public boolean hasColourText()
--  {
--    return this._has_colourText;
--  }
--
--  /**
--   * Method hasConsThreshold.
--   * 
--   * @return true if at least one ConsThreshold has been added
--   */
--  public boolean hasConsThreshold()
--  {
--    return this._has_consThreshold;
--  }
--
--  /**
--   * Method hasDisplayBoxes.
--   * 
--   * @return true if at least one DisplayBoxes has been added
--   */
--  public boolean hasDisplayBoxes()
--  {
--    return this._has_displayBoxes;
--  }
--
--  /**
--   * Method hasDisplayText.
--   * 
--   * @return true if at least one DisplayText has been added
--   */
--  public boolean hasDisplayText()
--  {
--    return this._has_displayText;
--  }
--
--  /**
--   * Method hasEnd.
--   * 
--   * @return true if at least one End has been added
--   */
--  public boolean hasEnd()
--  {
--    return this._has_end;
--  }
--
--  /**
--   * Method hasOutlineColour.
--   * 
--   * @return true if at least one OutlineColour has been added
--   */
--  public boolean hasOutlineColour()
--  {
--    return this._has_outlineColour;
--  }
--
--  /**
--   * Method hasPidThreshold.
--   * 
--   * @return true if at least one PidThreshold has been added
--   */
--  public boolean hasPidThreshold()
--  {
--    return this._has_pidThreshold;
--  }
--
--  /**
--   * Method hasStart.
--   * 
--   * @return true if at least one Start has been added
--   */
--  public boolean hasStart()
--  {
--    return this._has_start;
--  }
--
--  /**
--   * Returns the value of field 'colourText'.
--   * 
--   * @return the value of field 'ColourText'.
--   */
--  public boolean isColourText()
--  {
--    return this._colourText;
--  }
--
--  /**
--   * Returns the value of field 'displayBoxes'.
--   * 
--   * @return the value of field 'DisplayBoxes'.
--   */
--  public boolean isDisplayBoxes()
--  {
--    return this._displayBoxes;
--  }
--
--  /**
--   * Returns the value of field 'displayText'.
--   * 
--   * @return the value of field 'DisplayText'.
--   */
--  public boolean isDisplayText()
--  {
--    return this._displayText;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
--    }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--     */
--  public void removeAllSeq()
--  {
--    this._seqList.clear();
--  }
--
--  /**
--   * Method removeSeq.
--   * 
--   * @param vSeq
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeSeq(final int vSeq)
--  {
--    boolean removed = _seqList.remove(new java.lang.Integer(vSeq));
--    return removed;
--  }
--
--  /**
--   * Method removeSeqAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public int removeSeqAt(final int index)
--  {
--    java.lang.Object obj = this._seqList.remove(index);
--    return ((java.lang.Integer) obj).intValue();
--  }
--
--  /**
--   * Sets the value of field 'colour'.
--   * 
--   * @param colour
--   *          the value of field 'colour'.
--   */
--  public void setColour(final java.lang.String colour)
--  {
--    this._colour = colour;
--  }
--
--  /**
--   * Sets the value of field 'colourText'.
--   * 
--   * @param colourText
--   *          the value of field 'colourText'.
--   */
--  public void setColourText(final boolean colourText)
--  {
--    this._colourText = colourText;
--    this._has_colourText = true;
--  }
--
--  /**
--   * Sets the value of field 'consThreshold'.
--   * 
--   * @param consThreshold
--   *          the value of field 'consThreshold'.
--   */
--  public void setConsThreshold(final int consThreshold)
--  {
--    this._consThreshold = consThreshold;
--    this._has_consThreshold = true;
--  }
--
--  /**
--   * Sets the value of field 'displayBoxes'.
--   * 
--   * @param displayBoxes
--   *          the value of field 'displayBoxes'.
--   */
--  public void setDisplayBoxes(final boolean displayBoxes)
--  {
--    this._displayBoxes = displayBoxes;
--    this._has_displayBoxes = true;
--  }
--
--  /**
--   * Sets the value of field 'displayText'.
--   * 
--   * @param displayText
--   *          the value of field 'displayText'.
--   */
--  public void setDisplayText(final boolean displayText)
--  {
--    this._displayText = displayText;
--    this._has_displayText = true;
--  }
--
--  /**
--   * Sets the value of field 'end'.
--   * 
--   * @param end
--   *          the value of field 'end'.
--   */
--  public void setEnd(final int end)
--  {
--    this._end = end;
--    this._has_end = true;
--  }
--
--  /**
--   * Sets the value of field 'name'.
--   * 
--   * @param name
--   *          the value of field 'name'.
--   */
--  public void setName(final java.lang.String name)
--  {
--    this._name = name;
--  }
--
--  /**
--   * Sets the value of field 'outlineColour'.
--   * 
--   * @param outlineColour
--   *          the value of field 'outlineColour'.
--   */
--  public void setOutlineColour(final int outlineColour)
--  {
--    this._outlineColour = outlineColour;
--    this._has_outlineColour = true;
--  }
--
--  /**
--   * Sets the value of field 'pidThreshold'.
--   * 
--   * @param pidThreshold
--   *          the value of field 'pidThreshold'.
--   */
--  public void setPidThreshold(final int pidThreshold)
--  {
--    this._pidThreshold = pidThreshold;
--    this._has_pidThreshold = true;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vSeq
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setSeq(final int index, final int vSeq)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._seqList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setSeq",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._seqList.size() - 1)).toString()
--          })); 
--    }
--
--    this._seqList.set(index, new java.lang.Integer(vSeq));
--  }
--
--  /**
--   * 
--   * 
--   * @param vSeqArray
--   */
--  public void setSeq(final int[] vSeqArray)
--  {
--    // -- copy array
--    _seqList.clear();
--
--    for (int i = 0; i < vSeqArray.length; i++)
--    {
--      this._seqList.add(new java.lang.Integer(vSeqArray[i]));
--    }
--  }
--
--  /**
--   * Sets the value of field 'start'.
--   * 
--   * @param start
--   *          the value of field 'start'.
--   */
--  public void setStart(final int start)
--  {
--    this._start = start;
--    this._has_start = true;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.JGroup
--   */
--  public static jalview.binding.JGroup unmarshal(final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.JGroup) Unmarshaller.unmarshal(
--            jalview.binding.JGroup.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++public class JGroup implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _start.
++     */
++    private int _start;
++
++    /**
++     * keeps track of state for field: _start
++     */
++    private boolean _has_start;
++
++    /**
++     * Field _end.
++     */
++    private int _end;
++
++    /**
++     * keeps track of state for field: _end
++     */
++    private boolean _has_end;
++
++    /**
++     * Field _name.
++     */
++    private java.lang.String _name;
++
++    /**
++     * Field _colour.
++     */
++    private java.lang.String _colour;
++
++    /**
++     * Field _consThreshold.
++     */
++    private int _consThreshold;
++
++    /**
++     * keeps track of state for field: _consThreshold
++     */
++    private boolean _has_consThreshold;
++
++    /**
++     * Field _pidThreshold.
++     */
++    private int _pidThreshold;
++
++    /**
++     * keeps track of state for field: _pidThreshold
++     */
++    private boolean _has_pidThreshold;
++
++    /**
++     * Field _outlineColour.
++     */
++    private int _outlineColour;
++
++    /**
++     * keeps track of state for field: _outlineColour
++     */
++    private boolean _has_outlineColour;
++
++    /**
++     * Field _displayBoxes.
++     */
++    private boolean _displayBoxes;
++
++    /**
++     * keeps track of state for field: _displayBoxes
++     */
++    private boolean _has_displayBoxes;
++
++    /**
++     * Field _displayText.
++     */
++    private boolean _displayText;
++
++    /**
++     * keeps track of state for field: _displayText
++     */
++    private boolean _has_displayText;
++
++    /**
++     * Field _colourText.
++     */
++    private boolean _colourText;
++
++    /**
++     * keeps track of state for field: _colourText
++     */
++    private boolean _has_colourText;
++
++    /**
++     * Field _seqList.
++     */
++    private java.util.Vector _seqList;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public JGroup() {
++        super();
++        this._seqList = new java.util.Vector();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * 
++     * 
++     * @param vSeq
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addSeq(
++            final int vSeq)
++    throws java.lang.IndexOutOfBoundsException {
++        this._seqList.addElement(new java.lang.Integer(vSeq));
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vSeq
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addSeq(
++            final int index,
++            final int vSeq)
++    throws java.lang.IndexOutOfBoundsException {
++        this._seqList.add(index, new java.lang.Integer(vSeq));
++    }
++
++    /**
++     */
++    public void deleteColourText(
++    ) {
++        this._has_colourText= false;
++    }
++
++    /**
++     */
++    public void deleteConsThreshold(
++    ) {
++        this._has_consThreshold= false;
++    }
++
++    /**
++     */
++    public void deleteDisplayBoxes(
++    ) {
++        this._has_displayBoxes= false;
++    }
++
++    /**
++     */
++    public void deleteDisplayText(
++    ) {
++        this._has_displayText= false;
++    }
++
++    /**
++     */
++    public void deleteEnd(
++    ) {
++        this._has_end= false;
++    }
++
++    /**
++     */
++    public void deleteOutlineColour(
++    ) {
++        this._has_outlineColour= false;
++    }
++
++    /**
++     */
++    public void deletePidThreshold(
++    ) {
++        this._has_pidThreshold= false;
++    }
++
++    /**
++     */
++    public void deleteStart(
++    ) {
++        this._has_start= false;
++    }
++
++    /**
++     * Method enumerateSeq.
++     * 
++     * @return an Enumeration over all int elements
++     */
++    public java.util.Enumeration enumerateSeq(
++    ) {
++        return this._seqList.elements();
++    }
++
++    /**
++     * Returns the value of field 'colour'.
++     * 
++     * @return the value of field 'Colour'.
++     */
++    public java.lang.String getColour(
++    ) {
++        return this._colour;
++    }
++
++    /**
++     * Returns the value of field 'colourText'.
++     * 
++     * @return the value of field 'ColourText'.
++     */
++    public boolean getColourText(
++    ) {
++        return this._colourText;
++    }
++
++    /**
++     * Returns the value of field 'consThreshold'.
++     * 
++     * @return the value of field 'ConsThreshold'.
++     */
++    public int getConsThreshold(
++    ) {
++        return this._consThreshold;
++    }
++
++    /**
++     * Returns the value of field 'displayBoxes'.
++     * 
++     * @return the value of field 'DisplayBoxes'.
++     */
++    public boolean getDisplayBoxes(
++    ) {
++        return this._displayBoxes;
++    }
++
++    /**
++     * Returns the value of field 'displayText'.
++     * 
++     * @return the value of field 'DisplayText'.
++     */
++    public boolean getDisplayText(
++    ) {
++        return this._displayText;
++    }
++
++    /**
++     * Returns the value of field 'end'.
++     * 
++     * @return the value of field 'End'.
++     */
++    public int getEnd(
++    ) {
++        return this._end;
++    }
++
++    /**
++     * Returns the value of field 'name'.
++     * 
++     * @return the value of field 'Name'.
++     */
++    public java.lang.String getName(
++    ) {
++        return this._name;
++    }
++
++    /**
++     * Returns the value of field 'outlineColour'.
++     * 
++     * @return the value of field 'OutlineColour'.
++     */
++    public int getOutlineColour(
++    ) {
++        return this._outlineColour;
++    }
++
++    /**
++     * Returns the value of field 'pidThreshold'.
++     * 
++     * @return the value of field 'PidThreshold'.
++     */
++    public int getPidThreshold(
++    ) {
++        return this._pidThreshold;
++    }
++
++    /**
++     * Method getSeq.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the int at the given index
++     */
++    public int getSeq(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._seqList.size()) {
++            throw new IndexOutOfBoundsException("getSeq: Index value '" + index + "' not in range [0.." + (this._seqList.size() - 1) + "]");
++        }
++        
++        return ((java.lang.Integer) _seqList.get(index)).intValue();
++    }
++
++    /**
++     * Method getSeq.Returns the contents of the collection in an
++     * Array.  
++     * 
++     * @return this collection as an Array
++     */
++    public int[] getSeq(
++    ) {
++        int size = this._seqList.size();
++        int[] array = new int[size];
++        java.util.Iterator iter = _seqList.iterator();
++        for (int index = 0; index < size; index++) {
++            array[index] = ((java.lang.Integer) iter.next()).intValue();
++        }
++        return array;
++    }
++
++    /**
++     * Method getSeqCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getSeqCount(
++    ) {
++        return this._seqList.size();
++    }
++
++    /**
++     * Returns the value of field 'start'.
++     * 
++     * @return the value of field 'Start'.
++     */
++    public int getStart(
++    ) {
++        return this._start;
++    }
++
++    /**
++     * Method hasColourText.
++     * 
++     * @return true if at least one ColourText has been added
++     */
++    public boolean hasColourText(
++    ) {
++        return this._has_colourText;
++    }
++
++    /**
++     * Method hasConsThreshold.
++     * 
++     * @return true if at least one ConsThreshold has been added
++     */
++    public boolean hasConsThreshold(
++    ) {
++        return this._has_consThreshold;
++    }
++
++    /**
++     * Method hasDisplayBoxes.
++     * 
++     * @return true if at least one DisplayBoxes has been added
++     */
++    public boolean hasDisplayBoxes(
++    ) {
++        return this._has_displayBoxes;
++    }
++
++    /**
++     * Method hasDisplayText.
++     * 
++     * @return true if at least one DisplayText has been added
++     */
++    public boolean hasDisplayText(
++    ) {
++        return this._has_displayText;
++    }
++
++    /**
++     * Method hasEnd.
++     * 
++     * @return true if at least one End has been added
++     */
++    public boolean hasEnd(
++    ) {
++        return this._has_end;
++    }
++
++    /**
++     * Method hasOutlineColour.
++     * 
++     * @return true if at least one OutlineColour has been added
++     */
++    public boolean hasOutlineColour(
++    ) {
++        return this._has_outlineColour;
++    }
++
++    /**
++     * Method hasPidThreshold.
++     * 
++     * @return true if at least one PidThreshold has been added
++     */
++    public boolean hasPidThreshold(
++    ) {
++        return this._has_pidThreshold;
++    }
++
++    /**
++     * Method hasStart.
++     * 
++     * @return true if at least one Start has been added
++     */
++    public boolean hasStart(
++    ) {
++        return this._has_start;
++    }
++
++    /**
++     * Returns the value of field 'colourText'.
++     * 
++     * @return the value of field 'ColourText'.
++     */
++    public boolean isColourText(
++    ) {
++        return this._colourText;
++    }
++
++    /**
++     * Returns the value of field 'displayBoxes'.
++     * 
++     * @return the value of field 'DisplayBoxes'.
++     */
++    public boolean isDisplayBoxes(
++    ) {
++        return this._displayBoxes;
++    }
++
++    /**
++     * Returns the value of field 'displayText'.
++     * 
++     * @return the value of field 'DisplayText'.
++     */
++    public boolean isDisplayText(
++    ) {
++        return this._displayText;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     */
++    public void removeAllSeq(
++    ) {
++        this._seqList.clear();
++    }
++
++    /**
++     * Method removeSeq.
++     * 
++     * @param vSeq
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeSeq(
++            final int vSeq) {
++        boolean removed = _seqList.remove(new java.lang.Integer(vSeq));
++        return removed;
++    }
++
++    /**
++     * Method removeSeqAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public int removeSeqAt(
++            final int index) {
++        java.lang.Object obj = this._seqList.remove(index);
++        return ((java.lang.Integer) obj).intValue();
++    }
++
++    /**
++     * Sets the value of field 'colour'.
++     * 
++     * @param colour the value of field 'colour'.
++     */
++    public void setColour(
++            final java.lang.String colour) {
++        this._colour = colour;
++    }
++
++    /**
++     * Sets the value of field 'colourText'.
++     * 
++     * @param colourText the value of field 'colourText'.
++     */
++    public void setColourText(
++            final boolean colourText) {
++        this._colourText = colourText;
++        this._has_colourText = true;
++    }
++
++    /**
++     * Sets the value of field 'consThreshold'.
++     * 
++     * @param consThreshold the value of field 'consThreshold'.
++     */
++    public void setConsThreshold(
++            final int consThreshold) {
++        this._consThreshold = consThreshold;
++        this._has_consThreshold = true;
++    }
++
++    /**
++     * Sets the value of field 'displayBoxes'.
++     * 
++     * @param displayBoxes the value of field 'displayBoxes'.
++     */
++    public void setDisplayBoxes(
++            final boolean displayBoxes) {
++        this._displayBoxes = displayBoxes;
++        this._has_displayBoxes = true;
++    }
++
++    /**
++     * Sets the value of field 'displayText'.
++     * 
++     * @param displayText the value of field 'displayText'.
++     */
++    public void setDisplayText(
++            final boolean displayText) {
++        this._displayText = displayText;
++        this._has_displayText = true;
++    }
++
++    /**
++     * Sets the value of field 'end'.
++     * 
++     * @param end the value of field 'end'.
++     */
++    public void setEnd(
++            final int end) {
++        this._end = end;
++        this._has_end = true;
++    }
++
++    /**
++     * Sets the value of field 'name'.
++     * 
++     * @param name the value of field 'name'.
++     */
++    public void setName(
++            final java.lang.String name) {
++        this._name = name;
++    }
++
++    /**
++     * Sets the value of field 'outlineColour'.
++     * 
++     * @param outlineColour the value of field 'outlineColour'.
++     */
++    public void setOutlineColour(
++            final int outlineColour) {
++        this._outlineColour = outlineColour;
++        this._has_outlineColour = true;
++    }
++
++    /**
++     * Sets the value of field 'pidThreshold'.
++     * 
++     * @param pidThreshold the value of field 'pidThreshold'.
++     */
++    public void setPidThreshold(
++            final int pidThreshold) {
++        this._pidThreshold = pidThreshold;
++        this._has_pidThreshold = true;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vSeq
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setSeq(
++            final int index,
++            final int vSeq)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._seqList.size()) {
++            throw new IndexOutOfBoundsException("setSeq: Index value '" + index + "' not in range [0.." + (this._seqList.size() - 1) + "]");
++        }
++        
++        this._seqList.set(index, new java.lang.Integer(vSeq));
++    }
++
++    /**
++     * 
++     * 
++     * @param vSeqArray
++     */
++    public void setSeq(
++            final int[] vSeqArray) {
++        //-- copy array
++        _seqList.clear();
++        
++        for (int i = 0; i < vSeqArray.length; i++) {
++                this._seqList.add(new java.lang.Integer(vSeqArray[i]));
++        }
++    }
++
++    /**
++     * Sets the value of field 'start'.
++     * 
++     * @param start the value of field 'start'.
++     */
++    public void setStart(
++            final int start) {
++        this._start = start;
++        this._has_start = true;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.JGroup
++     */
++    public static jalview.binding.JGroup unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.JGroup) Unmarshaller.unmarshal(jalview.binding.JGroup.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,30 -1,30 +1,15 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
--//- Imported classes and packages -/
--//---------------------------------/
--
--import jalview.util.MessageManager;
  
  import org.exolab.castor.xml.Marshaller;
  import org.exolab.castor.xml.Unmarshaller;
   * 
   * @version $Revision$ $Date$
   */
--public class JSeq implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _colour.
--   */
--  private int _colour;
--
--  /**
--   * keeps track of state for field: _colour
--   */
--  private boolean _has_colour;
--
--  /**
--   * Field _start.
--   */
--  private int _start;
--
--  /**
--   * keeps track of state for field: _start
--   */
--  private boolean _has_start;
--
--  /**
--   * Field _end.
--   */
--  private int _end;
--
--  /**
--   * keeps track of state for field: _end
--   */
--  private boolean _has_end;
--
--  /**
--   * Field _id.
--   */
--  private int _id;
--
--  /**
--   * keeps track of state for field: _id
--   */
--  private boolean _has_id;
--
--  /**
--   * Field _featuresList.
--   */
--  private java.util.Vector _featuresList;
--
--  /**
--   * Field _pdbidsList.
--   */
--  private java.util.Vector _pdbidsList;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public JSeq()
--  {
--    super();
--    this._featuresList = new java.util.Vector();
--    this._pdbidsList = new java.util.Vector();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * 
--   * 
--   * @param vFeatures
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addFeatures(final jalview.binding.Features vFeatures)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._featuresList.addElement(vFeatures);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vFeatures
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addFeatures(final int index,
--          final jalview.binding.Features vFeatures)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._featuresList.add(index, vFeatures);
--  }
--
--  /**
--   * 
--   * 
--   * @param vPdbids
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addPdbids(final jalview.binding.Pdbids vPdbids)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._pdbidsList.addElement(vPdbids);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vPdbids
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addPdbids(final int index,
--          final jalview.binding.Pdbids vPdbids)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._pdbidsList.add(index, vPdbids);
--  }
--
--  /**
--     */
--  public void deleteColour()
--  {
--    this._has_colour = false;
--  }
--
--  /**
--     */
--  public void deleteEnd()
--  {
--    this._has_end = false;
--  }
--
--  /**
--     */
--  public void deleteId()
--  {
--    this._has_id = false;
--  }
--
--  /**
--     */
--  public void deleteStart()
--  {
--    this._has_start = false;
--  }
--
--  /**
--   * Method enumerateFeatures.
--   * 
--   * @return an Enumeration over all jalview.binding.Features elements
--   */
--  public java.util.Enumeration enumerateFeatures()
--  {
--    return this._featuresList.elements();
--  }
--
--  /**
--   * Method enumeratePdbids.
--   * 
--   * @return an Enumeration over all jalview.binding.Pdbids elements
--   */
--  public java.util.Enumeration enumeratePdbids()
--  {
--    return this._pdbidsList.elements();
--  }
--
--  /**
--   * Returns the value of field 'colour'.
--   * 
--   * @return the value of field 'Colour'.
--   */
--  public int getColour()
--  {
--    return this._colour;
--  }
--
--  /**
--   * Returns the value of field 'end'.
--   * 
--   * @return the value of field 'End'.
--   */
--  public int getEnd()
--  {
--    return this._end;
--  }
--
--  /**
--   * Method getFeatures.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.Features at the given index
--   */
--  public jalview.binding.Features getFeatures(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._featuresList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getFeatures",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._featuresList.size() - 1)).toString()
--        })); 
--    }
--
--    return (jalview.binding.Features) _featuresList.get(index);
--  }
--
--  /**
--   * Method getFeatures.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.Features[] getFeatures()
--  {
--    jalview.binding.Features[] array = new jalview.binding.Features[0];
--    return (jalview.binding.Features[]) this._featuresList.toArray(array);
--  }
--
--  /**
--   * Method getFeaturesCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getFeaturesCount()
--  {
--    return this._featuresList.size();
--  }
--
--  /**
--   * Returns the value of field 'id'.
--   * 
--   * @return the value of field 'Id'.
--   */
--  public int getId()
--  {
--    return this._id;
--  }
--
--  /**
--   * Method getPdbids.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.Pdbids at the given index
--   */
--  public jalview.binding.Pdbids getPdbids(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._pdbidsList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getPdbids",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._pdbidsList.size() - 1)).toString()
--          })); 
--    }
--
--    return (jalview.binding.Pdbids) _pdbidsList.get(index);
--  }
--
--  /**
--   * Method getPdbids.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.Pdbids[] getPdbids()
--  {
--    jalview.binding.Pdbids[] array = new jalview.binding.Pdbids[0];
--    return (jalview.binding.Pdbids[]) this._pdbidsList.toArray(array);
--  }
--
--  /**
--   * Method getPdbidsCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getPdbidsCount()
--  {
--    return this._pdbidsList.size();
--  }
--
--  /**
--   * Returns the value of field 'start'.
--   * 
--   * @return the value of field 'Start'.
--   */
--  public int getStart()
--  {
--    return this._start;
--  }
--
--  /**
--   * Method hasColour.
--   * 
--   * @return true if at least one Colour has been added
--   */
--  public boolean hasColour()
--  {
--    return this._has_colour;
--  }
--
--  /**
--   * Method hasEnd.
--   * 
--   * @return true if at least one End has been added
--   */
--  public boolean hasEnd()
--  {
--    return this._has_end;
--  }
--
--  /**
--   * Method hasId.
--   * 
--   * @return true if at least one Id has been added
--   */
--  public boolean hasId()
--  {
--    return this._has_id;
--  }
--
--  /**
--   * Method hasStart.
--   * 
--   * @return true if at least one Start has been added
--   */
--  public boolean hasStart()
--  {
--    return this._has_start;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
--    }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--     */
--  public void removeAllFeatures()
--  {
--    this._featuresList.clear();
--  }
--
--  /**
--     */
--  public void removeAllPdbids()
--  {
--    this._pdbidsList.clear();
--  }
--
--  /**
--   * Method removeFeatures.
--   * 
--   * @param vFeatures
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeFeatures(final jalview.binding.Features vFeatures)
--  {
--    boolean removed = _featuresList.remove(vFeatures);
--    return removed;
--  }
--
--  /**
--   * Method removeFeaturesAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.Features removeFeaturesAt(final int index)
--  {
--    java.lang.Object obj = this._featuresList.remove(index);
--    return (jalview.binding.Features) obj;
--  }
--
--  /**
--   * Method removePdbids.
--   * 
--   * @param vPdbids
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removePdbids(final jalview.binding.Pdbids vPdbids)
--  {
--    boolean removed = _pdbidsList.remove(vPdbids);
--    return removed;
--  }
--
--  /**
--   * Method removePdbidsAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.Pdbids removePdbidsAt(final int index)
--  {
--    java.lang.Object obj = this._pdbidsList.remove(index);
--    return (jalview.binding.Pdbids) obj;
--  }
--
--  /**
--   * Sets the value of field 'colour'.
--   * 
--   * @param colour
--   *          the value of field 'colour'.
--   */
--  public void setColour(final int colour)
--  {
--    this._colour = colour;
--    this._has_colour = true;
--  }
--
--  /**
--   * Sets the value of field 'end'.
--   * 
--   * @param end
--   *          the value of field 'end'.
--   */
--  public void setEnd(final int end)
--  {
--    this._end = end;
--    this._has_end = true;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vFeatures
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setFeatures(final int index,
--          final jalview.binding.Features vFeatures)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._featuresList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setFeatures",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._featuresList.size() - 1)).toString()
--        })); 
--    }
--
--    this._featuresList.set(index, vFeatures);
--  }
--
--  /**
--   * 
--   * 
--   * @param vFeaturesArray
--   */
--  public void setFeatures(final jalview.binding.Features[] vFeaturesArray)
--  {
--    // -- copy array
--    _featuresList.clear();
--
--    for (int i = 0; i < vFeaturesArray.length; i++)
--    {
--      this._featuresList.add(vFeaturesArray[i]);
--    }
--  }
--
--  /**
--   * Sets the value of field 'id'.
--   * 
--   * @param id
--   *          the value of field 'id'.
--   */
--  public void setId(final int id)
--  {
--    this._id = id;
--    this._has_id = true;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vPdbids
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setPdbids(final int index,
--          final jalview.binding.Pdbids vPdbids)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._pdbidsList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setPdbids",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._pdbidsList.size() - 1)).toString()
--          })); 
--    }
--
--    this._pdbidsList.set(index, vPdbids);
--  }
--
--  /**
--   * 
--   * 
--   * @param vPdbidsArray
--   */
--  public void setPdbids(final jalview.binding.Pdbids[] vPdbidsArray)
--  {
--    // -- copy array
--    _pdbidsList.clear();
--
--    for (int i = 0; i < vPdbidsArray.length; i++)
--    {
--      this._pdbidsList.add(vPdbidsArray[i]);
--    }
--  }
--
--  /**
--   * Sets the value of field 'start'.
--   * 
--   * @param start
--   *          the value of field 'start'.
--   */
--  public void setStart(final int start)
--  {
--    this._start = start;
--    this._has_start = true;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.JSeq
--   */
--  public static jalview.binding.JSeq unmarshal(final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.JSeq) Unmarshaller.unmarshal(
--            jalview.binding.JSeq.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++public class JSeq implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _colour.
++     */
++    private int _colour;
++
++    /**
++     * keeps track of state for field: _colour
++     */
++    private boolean _has_colour;
++
++    /**
++     * Field _start.
++     */
++    private int _start;
++
++    /**
++     * keeps track of state for field: _start
++     */
++    private boolean _has_start;
++
++    /**
++     * Field _end.
++     */
++    private int _end;
++
++    /**
++     * keeps track of state for field: _end
++     */
++    private boolean _has_end;
++
++    /**
++     * Field _id.
++     */
++    private int _id;
++
++    /**
++     * keeps track of state for field: _id
++     */
++    private boolean _has_id;
++
++    /**
++     * Field _featuresList.
++     */
++    private java.util.Vector _featuresList;
++
++    /**
++     * Field _pdbidsList.
++     */
++    private java.util.Vector _pdbidsList;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public JSeq() {
++        super();
++        this._featuresList = new java.util.Vector();
++        this._pdbidsList = new java.util.Vector();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * 
++     * 
++     * @param vFeatures
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addFeatures(
++            final jalview.binding.Features vFeatures)
++    throws java.lang.IndexOutOfBoundsException {
++        this._featuresList.addElement(vFeatures);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vFeatures
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addFeatures(
++            final int index,
++            final jalview.binding.Features vFeatures)
++    throws java.lang.IndexOutOfBoundsException {
++        this._featuresList.add(index, vFeatures);
++    }
++
++    /**
++     * 
++     * 
++     * @param vPdbids
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addPdbids(
++            final jalview.binding.Pdbids vPdbids)
++    throws java.lang.IndexOutOfBoundsException {
++        this._pdbidsList.addElement(vPdbids);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vPdbids
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addPdbids(
++            final int index,
++            final jalview.binding.Pdbids vPdbids)
++    throws java.lang.IndexOutOfBoundsException {
++        this._pdbidsList.add(index, vPdbids);
++    }
++
++    /**
++     */
++    public void deleteColour(
++    ) {
++        this._has_colour= false;
++    }
++
++    /**
++     */
++    public void deleteEnd(
++    ) {
++        this._has_end= false;
++    }
++
++    /**
++     */
++    public void deleteId(
++    ) {
++        this._has_id= false;
++    }
++
++    /**
++     */
++    public void deleteStart(
++    ) {
++        this._has_start= false;
++    }
++
++    /**
++     * Method enumerateFeatures.
++     * 
++     * @return an Enumeration over all jalview.binding.Features
++     * elements
++     */
++    public java.util.Enumeration enumerateFeatures(
++    ) {
++        return this._featuresList.elements();
++    }
++
++    /**
++     * Method enumeratePdbids.
++     * 
++     * @return an Enumeration over all jalview.binding.Pdbids
++     * elements
++     */
++    public java.util.Enumeration enumeratePdbids(
++    ) {
++        return this._pdbidsList.elements();
++    }
++
++    /**
++     * Returns the value of field 'colour'.
++     * 
++     * @return the value of field 'Colour'.
++     */
++    public int getColour(
++    ) {
++        return this._colour;
++    }
++
++    /**
++     * Returns the value of field 'end'.
++     * 
++     * @return the value of field 'End'.
++     */
++    public int getEnd(
++    ) {
++        return this._end;
++    }
++
++    /**
++     * Method getFeatures.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.Features at the
++     * given index
++     */
++    public jalview.binding.Features getFeatures(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._featuresList.size()) {
++            throw new IndexOutOfBoundsException("getFeatures: Index value '" + index + "' not in range [0.." + (this._featuresList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.Features) _featuresList.get(index);
++    }
++
++    /**
++     * Method getFeatures.Returns the contents of the collection in
++     * an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.Features[] getFeatures(
++    ) {
++        jalview.binding.Features[] array = new jalview.binding.Features[0];
++        return (jalview.binding.Features[]) this._featuresList.toArray(array);
++    }
++
++    /**
++     * Method getFeaturesCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getFeaturesCount(
++    ) {
++        return this._featuresList.size();
++    }
++
++    /**
++     * Returns the value of field 'id'.
++     * 
++     * @return the value of field 'Id'.
++     */
++    public int getId(
++    ) {
++        return this._id;
++    }
++
++    /**
++     * Method getPdbids.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.Pdbids at the given
++     * index
++     */
++    public jalview.binding.Pdbids getPdbids(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._pdbidsList.size()) {
++            throw new IndexOutOfBoundsException("getPdbids: Index value '" + index + "' not in range [0.." + (this._pdbidsList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.Pdbids) _pdbidsList.get(index);
++    }
++
++    /**
++     * Method getPdbids.Returns the contents of the collection in
++     * an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.Pdbids[] getPdbids(
++    ) {
++        jalview.binding.Pdbids[] array = new jalview.binding.Pdbids[0];
++        return (jalview.binding.Pdbids[]) this._pdbidsList.toArray(array);
++    }
++
++    /**
++     * Method getPdbidsCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getPdbidsCount(
++    ) {
++        return this._pdbidsList.size();
++    }
++
++    /**
++     * Returns the value of field 'start'.
++     * 
++     * @return the value of field 'Start'.
++     */
++    public int getStart(
++    ) {
++        return this._start;
++    }
++
++    /**
++     * Method hasColour.
++     * 
++     * @return true if at least one Colour has been added
++     */
++    public boolean hasColour(
++    ) {
++        return this._has_colour;
++    }
++
++    /**
++     * Method hasEnd.
++     * 
++     * @return true if at least one End has been added
++     */
++    public boolean hasEnd(
++    ) {
++        return this._has_end;
++    }
++
++    /**
++     * Method hasId.
++     * 
++     * @return true if at least one Id has been added
++     */
++    public boolean hasId(
++    ) {
++        return this._has_id;
++    }
++
++    /**
++     * Method hasStart.
++     * 
++     * @return true if at least one Start has been added
++     */
++    public boolean hasStart(
++    ) {
++        return this._has_start;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     */
++    public void removeAllFeatures(
++    ) {
++        this._featuresList.clear();
++    }
++
++    /**
++     */
++    public void removeAllPdbids(
++    ) {
++        this._pdbidsList.clear();
++    }
++
++    /**
++     * Method removeFeatures.
++     * 
++     * @param vFeatures
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeFeatures(
++            final jalview.binding.Features vFeatures) {
++        boolean removed = _featuresList.remove(vFeatures);
++        return removed;
++    }
++
++    /**
++     * Method removeFeaturesAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.Features removeFeaturesAt(
++            final int index) {
++        java.lang.Object obj = this._featuresList.remove(index);
++        return (jalview.binding.Features) obj;
++    }
++
++    /**
++     * Method removePdbids.
++     * 
++     * @param vPdbids
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removePdbids(
++            final jalview.binding.Pdbids vPdbids) {
++        boolean removed = _pdbidsList.remove(vPdbids);
++        return removed;
++    }
++
++    /**
++     * Method removePdbidsAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.Pdbids removePdbidsAt(
++            final int index) {
++        java.lang.Object obj = this._pdbidsList.remove(index);
++        return (jalview.binding.Pdbids) obj;
++    }
++
++    /**
++     * Sets the value of field 'colour'.
++     * 
++     * @param colour the value of field 'colour'.
++     */
++    public void setColour(
++            final int colour) {
++        this._colour = colour;
++        this._has_colour = true;
++    }
++
++    /**
++     * Sets the value of field 'end'.
++     * 
++     * @param end the value of field 'end'.
++     */
++    public void setEnd(
++            final int end) {
++        this._end = end;
++        this._has_end = true;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vFeatures
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setFeatures(
++            final int index,
++            final jalview.binding.Features vFeatures)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._featuresList.size()) {
++            throw new IndexOutOfBoundsException("setFeatures: Index value '" + index + "' not in range [0.." + (this._featuresList.size() - 1) + "]");
++        }
++        
++        this._featuresList.set(index, vFeatures);
++    }
++
++    /**
++     * 
++     * 
++     * @param vFeaturesArray
++     */
++    public void setFeatures(
++            final jalview.binding.Features[] vFeaturesArray) {
++        //-- copy array
++        _featuresList.clear();
++        
++        for (int i = 0; i < vFeaturesArray.length; i++) {
++                this._featuresList.add(vFeaturesArray[i]);
++        }
++    }
++
++    /**
++     * Sets the value of field 'id'.
++     * 
++     * @param id the value of field 'id'.
++     */
++    public void setId(
++            final int id) {
++        this._id = id;
++        this._has_id = true;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vPdbids
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setPdbids(
++            final int index,
++            final jalview.binding.Pdbids vPdbids)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._pdbidsList.size()) {
++            throw new IndexOutOfBoundsException("setPdbids: Index value '" + index + "' not in range [0.." + (this._pdbidsList.size() - 1) + "]");
++        }
++        
++        this._pdbidsList.set(index, vPdbids);
++    }
++
++    /**
++     * 
++     * 
++     * @param vPdbidsArray
++     */
++    public void setPdbids(
++            final jalview.binding.Pdbids[] vPdbidsArray) {
++        //-- copy array
++        _pdbidsList.clear();
++        
++        for (int i = 0; i < vPdbidsArray.length; i++) {
++                this._pdbidsList.add(vPdbidsArray[i]);
++        }
++    }
++
++    /**
++     * Sets the value of field 'start'.
++     * 
++     * @param start the value of field 'start'.
++     */
++    public void setStart(
++            final int start) {
++        this._start = start;
++        this._has_start = true;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.JSeq
++     */
++    public static jalview.binding.JSeq unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.JSeq) Unmarshaller.unmarshal(jalview.binding.JSeq.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,215 -32,215 +19,202 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class JalviewModel implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _creationDate.
--   */
--  private java.util.Date _creationDate;
--
--  /**
--   * Field _version.
--   */
--  private java.lang.String _version;
--
--  /**
--   * Field _vamsasModel.
--   */
--  private jalview.binding.VamsasModel _vamsasModel;
--
--  /**
--   * Field _jalviewModelSequence.
--   */
--  private jalview.binding.JalviewModelSequence _jalviewModelSequence;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public JalviewModel()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * Returns the value of field 'creationDate'.
--   * 
--   * @return the value of field 'CreationDate'.
--   */
--  public java.util.Date getCreationDate()
--  {
--    return this._creationDate;
--  }
--
--  /**
--   * Returns the value of field 'jalviewModelSequence'.
--   * 
--   * @return the value of field 'JalviewModelSequence'.
--   */
--  public jalview.binding.JalviewModelSequence getJalviewModelSequence()
--  {
--    return this._jalviewModelSequence;
--  }
--
--  /**
--   * Returns the value of field 'vamsasModel'.
--   * 
--   * @return the value of field 'VamsasModel'.
--   */
--  public jalview.binding.VamsasModel getVamsasModel()
--  {
--    return this._vamsasModel;
--  }
--
--  /**
--   * Returns the value of field 'version'.
--   * 
--   * @return the value of field 'Version'.
--   */
--  public java.lang.String getVersion()
--  {
--    return this._version;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++public class JalviewModel implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _creationDate.
++     */
++    private java.util.Date _creationDate;
++
++    /**
++     * Field _version.
++     */
++    private java.lang.String _version;
++
++    /**
++     * Field _vamsasModel.
++     */
++    private jalview.binding.VamsasModel _vamsasModel;
++
++    /**
++     * Field _jalviewModelSequence.
++     */
++    private jalview.binding.JalviewModelSequence _jalviewModelSequence;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public JalviewModel() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * Returns the value of field 'creationDate'.
++     * 
++     * @return the value of field 'CreationDate'.
++     */
++    public java.util.Date getCreationDate(
++    ) {
++        return this._creationDate;
++    }
++
++    /**
++     * Returns the value of field 'jalviewModelSequence'.
++     * 
++     * @return the value of field 'JalviewModelSequence'.
++     */
++    public jalview.binding.JalviewModelSequence getJalviewModelSequence(
++    ) {
++        return this._jalviewModelSequence;
++    }
++
++    /**
++     * Returns the value of field 'vamsasModel'.
++     * 
++     * @return the value of field 'VamsasModel'.
++     */
++    public jalview.binding.VamsasModel getVamsasModel(
++    ) {
++        return this._vamsasModel;
++    }
++
++    /**
++     * Returns the value of field 'version'.
++     * 
++     * @return the value of field 'Version'.
++     */
++    public java.lang.String getVersion(
++    ) {
++        return this._version;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'creationDate'.
++     * 
++     * @param creationDate the value of field 'creationDate'.
++     */
++    public void setCreationDate(
++            final java.util.Date creationDate) {
++        this._creationDate = creationDate;
++    }
++
++    /**
++     * Sets the value of field 'jalviewModelSequence'.
++     * 
++     * @param jalviewModelSequence the value of field
++     * 'jalviewModelSequence'.
++     */
++    public void setJalviewModelSequence(
++            final jalview.binding.JalviewModelSequence jalviewModelSequence) {
++        this._jalviewModelSequence = jalviewModelSequence;
++    }
++
++    /**
++     * Sets the value of field 'vamsasModel'.
++     * 
++     * @param vamsasModel the value of field 'vamsasModel'.
++     */
++    public void setVamsasModel(
++            final jalview.binding.VamsasModel vamsasModel) {
++        this._vamsasModel = vamsasModel;
++    }
++
++    /**
++     * Sets the value of field 'version'.
++     * 
++     * @param version the value of field 'version'.
++     */
++    public void setVersion(
++            final java.lang.String version) {
++        this._version = version;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.JalviewModel
++     */
++    public static jalview.binding.JalviewModel unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.JalviewModel) Unmarshaller.unmarshal(jalview.binding.JalviewModel.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'creationDate'.
--   * 
--   * @param creationDate
--   *          the value of field 'creationDate'.
--   */
--  public void setCreationDate(final java.util.Date creationDate)
--  {
--    this._creationDate = creationDate;
--  }
--
--  /**
--   * Sets the value of field 'jalviewModelSequence'.
--   * 
--   * @param jalviewModelSequence
--   *          the value of field 'jalviewModelSequence'.
--   */
--  public void setJalviewModelSequence(
--          final jalview.binding.JalviewModelSequence jalviewModelSequence)
--  {
--    this._jalviewModelSequence = jalviewModelSequence;
--  }
--
--  /**
--   * Sets the value of field 'vamsasModel'.
--   * 
--   * @param vamsasModel
--   *          the value of field 'vamsasModel'.
--   */
--  public void setVamsasModel(final jalview.binding.VamsasModel vamsasModel)
--  {
--    this._vamsasModel = vamsasModel;
--  }
--
--  /**
--   * Sets the value of field 'version'.
--   * 
--   * @param version
--   *          the value of field 'version'.
--   */
--  public void setVersion(final java.lang.String version)
--  {
--    this._version = version;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.JalviewModel
--   */
--  public static jalview.binding.JalviewModel unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.JalviewModel) Unmarshaller.unmarshal(
--            jalview.binding.JalviewModel.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
@@@ -1,30 -1,30 +1,15 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
--//- Imported classes and packages -/
--//---------------------------------/
--
--import jalview.util.MessageManager;
  
  import org.exolab.castor.xml.Marshaller;
  import org.exolab.castor.xml.Unmarshaller;
   * 
   * @version $Revision$ $Date$
   */
--public class JalviewModelSequence implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _JSeqList.
--   */
--  private java.util.Vector _JSeqList;
--
--  /**
--   * Field _JGroupList.
--   */
--  private java.util.Vector _JGroupList;
--
--  /**
--   * Field _viewportList.
--   */
--  private java.util.Vector _viewportList;
--
--  /**
--   * Field _userColoursList.
--   */
--  private java.util.Vector _userColoursList;
--
--  /**
--   * Field _treeList.
--   */
--  private java.util.Vector _treeList;
--
--  /**
--   * Field _featureSettings.
--   */
--  private jalview.binding.FeatureSettings _featureSettings;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public JalviewModelSequence()
--  {
--    super();
--    this._JSeqList = new java.util.Vector();
--    this._JGroupList = new java.util.Vector();
--    this._viewportList = new java.util.Vector();
--    this._userColoursList = new java.util.Vector();
--    this._treeList = new java.util.Vector();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * 
--   * 
--   * @param vJGroup
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addJGroup(final jalview.binding.JGroup vJGroup)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._JGroupList.addElement(vJGroup);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vJGroup
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addJGroup(final int index,
--          final jalview.binding.JGroup vJGroup)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._JGroupList.add(index, vJGroup);
--  }
--
--  /**
--   * 
--   * 
--   * @param vJSeq
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addJSeq(final jalview.binding.JSeq vJSeq)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._JSeqList.addElement(vJSeq);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vJSeq
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addJSeq(final int index, final jalview.binding.JSeq vJSeq)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._JSeqList.add(index, vJSeq);
--  }
--
--  /**
--   * 
--   * 
--   * @param vTree
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addTree(final jalview.binding.Tree vTree)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._treeList.addElement(vTree);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vTree
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addTree(final int index, final jalview.binding.Tree vTree)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._treeList.add(index, vTree);
--  }
--
--  /**
--   * 
--   * 
--   * @param vUserColours
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addUserColours(final jalview.binding.UserColours vUserColours)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._userColoursList.addElement(vUserColours);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vUserColours
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addUserColours(final int index,
--          final jalview.binding.UserColours vUserColours)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._userColoursList.add(index, vUserColours);
--  }
--
--  /**
--   * 
--   * 
--   * @param vViewport
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addViewport(final jalview.binding.Viewport vViewport)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._viewportList.addElement(vViewport);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vViewport
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addViewport(final int index,
--          final jalview.binding.Viewport vViewport)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._viewportList.add(index, vViewport);
--  }
--
--  /**
--   * Method enumerateJGroup.
--   * 
--   * @return an Enumeration over all jalview.binding.JGroup elements
--   */
--  public java.util.Enumeration enumerateJGroup()
--  {
--    return this._JGroupList.elements();
--  }
--
--  /**
--   * Method enumerateJSeq.
--   * 
--   * @return an Enumeration over all jalview.binding.JSeq elements
--   */
--  public java.util.Enumeration enumerateJSeq()
--  {
--    return this._JSeqList.elements();
--  }
--
--  /**
--   * Method enumerateTree.
--   * 
--   * @return an Enumeration over all jalview.binding.Tree elements
--   */
--  public java.util.Enumeration enumerateTree()
--  {
--    return this._treeList.elements();
--  }
--
--  /**
--   * Method enumerateUserColours.
--   * 
--   * @return an Enumeration over all jalview.binding.UserColours elements
--   */
--  public java.util.Enumeration enumerateUserColours()
--  {
--    return this._userColoursList.elements();
--  }
--
--  /**
--   * Method enumerateViewport.
--   * 
--   * @return an Enumeration over all jalview.binding.Viewport elements
--   */
--  public java.util.Enumeration enumerateViewport()
--  {
--    return this._viewportList.elements();
--  }
--
--  /**
--   * Returns the value of field 'featureSettings'.
--   * 
--   * @return the value of field 'FeatureSettings'.
--   */
--  public jalview.binding.FeatureSettings getFeatureSettings()
--  {
--    return this._featureSettings;
--  }
--
--  /**
--   * Method getJGroup.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.JGroup at the given index
--   */
--  public jalview.binding.JGroup getJGroup(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._JGroupList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getJGroup",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._JGroupList.size() - 1)).toString()
--        }));
--    }
--
--    return (jalview.binding.JGroup) _JGroupList.get(index);
--  }
--
--  /**
--   * Method getJGroup.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.JGroup[] getJGroup()
--  {
--    jalview.binding.JGroup[] array = new jalview.binding.JGroup[0];
--    return (jalview.binding.JGroup[]) this._JGroupList.toArray(array);
--  }
--
--  /**
--   * Method getJGroupCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getJGroupCount()
--  {
--    return this._JGroupList.size();
--  }
--
--  /**
--   * Method getJSeq.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.JSeq at the given index
--   */
--  public jalview.binding.JSeq getJSeq(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._JSeqList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getJSeq",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._JSeqList.size() - 1)).toString()
--          }));
--    }
--
--    return (jalview.binding.JSeq) _JSeqList.get(index);
--  }
--
--  /**
--   * Method getJSeq.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.JSeq[] getJSeq()
--  {
--    jalview.binding.JSeq[] array = new jalview.binding.JSeq[0];
--    return (jalview.binding.JSeq[]) this._JSeqList.toArray(array);
--  }
--
--  /**
--   * Method getJSeqCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getJSeqCount()
--  {
--    return this._JSeqList.size();
--  }
--
--  /**
--   * Method getTree.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.Tree at the given index
--   */
--  public jalview.binding.Tree getTree(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._treeList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getJgetTreeSeq",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._treeList.size() - 1)).toString()
--        })); 
--    }
--
--    return (jalview.binding.Tree) _treeList.get(index);
--  }
--
--  /**
--   * Method getTree.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.Tree[] getTree()
--  {
--    jalview.binding.Tree[] array = new jalview.binding.Tree[0];
--    return (jalview.binding.Tree[]) this._treeList.toArray(array);
--  }
--
--  /**
--   * Method getTreeCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getTreeCount()
--  {
--    return this._treeList.size();
--  }
--
--  /**
--   * Method getUserColours.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.UserColours at the given index
--   */
--  public jalview.binding.UserColours getUserColours(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._userColoursList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getUserColours",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._userColoursList.size() - 1)).toString()
--          })); 
--    }
--
--    return (jalview.binding.UserColours) _userColoursList.get(index);
--  }
--
--  /**
--   * Method getUserColours.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.UserColours[] getUserColours()
--  {
--    jalview.binding.UserColours[] array = new jalview.binding.UserColours[0];
--    return (jalview.binding.UserColours[]) this._userColoursList
--            .toArray(array);
--  }
--
--  /**
--   * Method getUserColoursCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getUserColoursCount()
--  {
--    return this._userColoursList.size();
--  }
--
--  /**
--   * Method getViewport.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.Viewport at the given index
--   */
--  public jalview.binding.Viewport getViewport(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._viewportList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getViewport",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._viewportList.size() - 1)).toString()
--        })); 
--    }
--
--    return (jalview.binding.Viewport) _viewportList.get(index);
--  }
--
--  /**
--   * Method getViewport.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.Viewport[] getViewport()
--  {
--    jalview.binding.Viewport[] array = new jalview.binding.Viewport[0];
--    return (jalview.binding.Viewport[]) this._viewportList.toArray(array);
--  }
--
--  /**
--   * Method getViewportCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getViewportCount()
--  {
--    return this._viewportList.size();
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
--    }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--     */
--  public void removeAllJGroup()
--  {
--    this._JGroupList.clear();
--  }
--
--  /**
--     */
--  public void removeAllJSeq()
--  {
--    this._JSeqList.clear();
--  }
--
--  /**
--     */
--  public void removeAllTree()
--  {
--    this._treeList.clear();
--  }
--
--  /**
--     */
--  public void removeAllUserColours()
--  {
--    this._userColoursList.clear();
--  }
--
--  /**
--     */
--  public void removeAllViewport()
--  {
--    this._viewportList.clear();
--  }
--
--  /**
--   * Method removeJGroup.
--   * 
--   * @param vJGroup
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeJGroup(final jalview.binding.JGroup vJGroup)
--  {
--    boolean removed = _JGroupList.remove(vJGroup);
--    return removed;
--  }
--
--  /**
--   * Method removeJGroupAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.JGroup removeJGroupAt(final int index)
--  {
--    java.lang.Object obj = this._JGroupList.remove(index);
--    return (jalview.binding.JGroup) obj;
--  }
--
--  /**
--   * Method removeJSeq.
--   * 
--   * @param vJSeq
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeJSeq(final jalview.binding.JSeq vJSeq)
--  {
--    boolean removed = _JSeqList.remove(vJSeq);
--    return removed;
--  }
--
--  /**
--   * Method removeJSeqAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.JSeq removeJSeqAt(final int index)
--  {
--    java.lang.Object obj = this._JSeqList.remove(index);
--    return (jalview.binding.JSeq) obj;
--  }
--
--  /**
--   * Method removeTree.
--   * 
--   * @param vTree
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeTree(final jalview.binding.Tree vTree)
--  {
--    boolean removed = _treeList.remove(vTree);
--    return removed;
--  }
--
--  /**
--   * Method removeTreeAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.Tree removeTreeAt(final int index)
--  {
--    java.lang.Object obj = this._treeList.remove(index);
--    return (jalview.binding.Tree) obj;
--  }
--
--  /**
--   * Method removeUserColours.
--   * 
--   * @param vUserColours
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeUserColours(
--          final jalview.binding.UserColours vUserColours)
--  {
--    boolean removed = _userColoursList.remove(vUserColours);
--    return removed;
--  }
--
--  /**
--   * Method removeUserColoursAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.UserColours removeUserColoursAt(final int index)
--  {
--    java.lang.Object obj = this._userColoursList.remove(index);
--    return (jalview.binding.UserColours) obj;
--  }
--
--  /**
--   * Method removeViewport.
--   * 
--   * @param vViewport
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeViewport(final jalview.binding.Viewport vViewport)
--  {
--    boolean removed = _viewportList.remove(vViewport);
--    return removed;
--  }
--
--  /**
--   * Method removeViewportAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.Viewport removeViewportAt(final int index)
--  {
--    java.lang.Object obj = this._viewportList.remove(index);
--    return (jalview.binding.Viewport) obj;
--  }
--
--  /**
--   * Sets the value of field 'featureSettings'.
--   * 
--   * @param featureSettings
--   *          the value of field 'featureSettings'.
--   */
--  public void setFeatureSettings(
--          final jalview.binding.FeatureSettings featureSettings)
--  {
--    this._featureSettings = featureSettings;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vJGroup
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setJGroup(final int index,
--          final jalview.binding.JGroup vJGroup)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._JGroupList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setJGroup",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._JGroupList.size() - 1)).toString()
--          })); 
--    }
--
--    this._JGroupList.set(index, vJGroup);
--  }
--
--  /**
--   * 
--   * 
--   * @param vJGroupArray
--   */
--  public void setJGroup(final jalview.binding.JGroup[] vJGroupArray)
--  {
--    // -- copy array
--    _JGroupList.clear();
--
--    for (int i = 0; i < vJGroupArray.length; i++)
--    {
--      this._JGroupList.add(vJGroupArray[i]);
--    }
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vJSeq
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setJSeq(final int index, final jalview.binding.JSeq vJSeq)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._JSeqList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setJSeq",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._JSeqList.size() - 1)).toString()
--        })); 
--    }
--
--    this._JSeqList.set(index, vJSeq);
--  }
--
--  /**
--   * 
--   * 
--   * @param vJSeqArray
--   */
--  public void setJSeq(final jalview.binding.JSeq[] vJSeqArray)
--  {
--    // -- copy array
--    _JSeqList.clear();
--
--    for (int i = 0; i < vJSeqArray.length; i++)
--    {
--      this._JSeqList.add(vJSeqArray[i]);
--    }
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vTree
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setTree(final int index, final jalview.binding.Tree vTree)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._treeList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setTree",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._treeList.size() - 1)).toString()
--          })); 
--    }
--
--    this._treeList.set(index, vTree);
--  }
--
--  /**
--   * 
--   * 
--   * @param vTreeArray
--   */
--  public void setTree(final jalview.binding.Tree[] vTreeArray)
--  {
--    // -- copy array
--    _treeList.clear();
--
--    for (int i = 0; i < vTreeArray.length; i++)
--    {
--      this._treeList.add(vTreeArray[i]);
--    }
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vUserColours
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setUserColours(final int index,
--          final jalview.binding.UserColours vUserColours)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._userColoursList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setUserColours",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._userColoursList.size() - 1)).toString()
--        })); 
--    }
--
--    this._userColoursList.set(index, vUserColours);
--  }
--
--  /**
--   * 
--   * 
--   * @param vUserColoursArray
--   */
--  public void setUserColours(
--          final jalview.binding.UserColours[] vUserColoursArray)
--  {
--    // -- copy array
--    _userColoursList.clear();
--
--    for (int i = 0; i < vUserColoursArray.length; i++)
--    {
--      this._userColoursList.add(vUserColoursArray[i]);
--    }
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vViewport
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setViewport(final int index,
--          final jalview.binding.Viewport vViewport)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._viewportList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setViewport",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._viewportList.size() - 1)).toString()
--          })); 
--    }
--
--    this._viewportList.set(index, vViewport);
--  }
--
--  /**
--   * 
--   * 
--   * @param vViewportArray
--   */
--  public void setViewport(final jalview.binding.Viewport[] vViewportArray)
--  {
--    // -- copy array
--    _viewportList.clear();
--
--    for (int i = 0; i < vViewportArray.length; i++)
--    {
--      this._viewportList.add(vViewportArray[i]);
--    }
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.JalviewModelSequence
--   */
--  public static jalview.binding.JalviewModelSequence unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.JalviewModelSequence) Unmarshaller.unmarshal(
--            jalview.binding.JalviewModelSequence.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++public class JalviewModelSequence implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _JSeqList.
++     */
++    private java.util.Vector _JSeqList;
++
++    /**
++     * Field _JGroupList.
++     */
++    private java.util.Vector _JGroupList;
++
++    /**
++     * Field _viewportList.
++     */
++    private java.util.Vector _viewportList;
++
++    /**
++     * Field _userColoursList.
++     */
++    private java.util.Vector _userColoursList;
++
++    /**
++     * Field _treeList.
++     */
++    private java.util.Vector _treeList;
++
++    /**
++     * Field _featureSettings.
++     */
++    private jalview.binding.FeatureSettings _featureSettings;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public JalviewModelSequence() {
++        super();
++        this._JSeqList = new java.util.Vector();
++        this._JGroupList = new java.util.Vector();
++        this._viewportList = new java.util.Vector();
++        this._userColoursList = new java.util.Vector();
++        this._treeList = new java.util.Vector();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * 
++     * 
++     * @param vJGroup
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addJGroup(
++            final jalview.binding.JGroup vJGroup)
++    throws java.lang.IndexOutOfBoundsException {
++        this._JGroupList.addElement(vJGroup);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vJGroup
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addJGroup(
++            final int index,
++            final jalview.binding.JGroup vJGroup)
++    throws java.lang.IndexOutOfBoundsException {
++        this._JGroupList.add(index, vJGroup);
++    }
++
++    /**
++     * 
++     * 
++     * @param vJSeq
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addJSeq(
++            final jalview.binding.JSeq vJSeq)
++    throws java.lang.IndexOutOfBoundsException {
++        this._JSeqList.addElement(vJSeq);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vJSeq
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addJSeq(
++            final int index,
++            final jalview.binding.JSeq vJSeq)
++    throws java.lang.IndexOutOfBoundsException {
++        this._JSeqList.add(index, vJSeq);
++    }
++
++    /**
++     * 
++     * 
++     * @param vTree
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addTree(
++            final jalview.binding.Tree vTree)
++    throws java.lang.IndexOutOfBoundsException {
++        this._treeList.addElement(vTree);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vTree
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addTree(
++            final int index,
++            final jalview.binding.Tree vTree)
++    throws java.lang.IndexOutOfBoundsException {
++        this._treeList.add(index, vTree);
++    }
++
++    /**
++     * 
++     * 
++     * @param vUserColours
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addUserColours(
++            final jalview.binding.UserColours vUserColours)
++    throws java.lang.IndexOutOfBoundsException {
++        this._userColoursList.addElement(vUserColours);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vUserColours
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addUserColours(
++            final int index,
++            final jalview.binding.UserColours vUserColours)
++    throws java.lang.IndexOutOfBoundsException {
++        this._userColoursList.add(index, vUserColours);
++    }
++
++    /**
++     * 
++     * 
++     * @param vViewport
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addViewport(
++            final jalview.binding.Viewport vViewport)
++    throws java.lang.IndexOutOfBoundsException {
++        this._viewportList.addElement(vViewport);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vViewport
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addViewport(
++            final int index,
++            final jalview.binding.Viewport vViewport)
++    throws java.lang.IndexOutOfBoundsException {
++        this._viewportList.add(index, vViewport);
++    }
++
++    /**
++     * Method enumerateJGroup.
++     * 
++     * @return an Enumeration over all jalview.binding.JGroup
++     * elements
++     */
++    public java.util.Enumeration enumerateJGroup(
++    ) {
++        return this._JGroupList.elements();
++    }
++
++    /**
++     * Method enumerateJSeq.
++     * 
++     * @return an Enumeration over all jalview.binding.JSeq elements
++     */
++    public java.util.Enumeration enumerateJSeq(
++    ) {
++        return this._JSeqList.elements();
++    }
++
++    /**
++     * Method enumerateTree.
++     * 
++     * @return an Enumeration over all jalview.binding.Tree elements
++     */
++    public java.util.Enumeration enumerateTree(
++    ) {
++        return this._treeList.elements();
++    }
++
++    /**
++     * Method enumerateUserColours.
++     * 
++     * @return an Enumeration over all jalview.binding.UserColours
++     * elements
++     */
++    public java.util.Enumeration enumerateUserColours(
++    ) {
++        return this._userColoursList.elements();
++    }
++
++    /**
++     * Method enumerateViewport.
++     * 
++     * @return an Enumeration over all jalview.binding.Viewport
++     * elements
++     */
++    public java.util.Enumeration enumerateViewport(
++    ) {
++        return this._viewportList.elements();
++    }
++
++    /**
++     * Returns the value of field 'featureSettings'.
++     * 
++     * @return the value of field 'FeatureSettings'.
++     */
++    public jalview.binding.FeatureSettings getFeatureSettings(
++    ) {
++        return this._featureSettings;
++    }
++
++    /**
++     * Method getJGroup.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.JGroup at the given
++     * index
++     */
++    public jalview.binding.JGroup getJGroup(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._JGroupList.size()) {
++            throw new IndexOutOfBoundsException("getJGroup: Index value '" + index + "' not in range [0.." + (this._JGroupList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.JGroup) _JGroupList.get(index);
++    }
++
++    /**
++     * Method getJGroup.Returns the contents of the collection in
++     * an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.JGroup[] getJGroup(
++    ) {
++        jalview.binding.JGroup[] array = new jalview.binding.JGroup[0];
++        return (jalview.binding.JGroup[]) this._JGroupList.toArray(array);
++    }
++
++    /**
++     * Method getJGroupCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getJGroupCount(
++    ) {
++        return this._JGroupList.size();
++    }
++
++    /**
++     * Method getJSeq.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.JSeq at the given
++     * index
++     */
++    public jalview.binding.JSeq getJSeq(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._JSeqList.size()) {
++            throw new IndexOutOfBoundsException("getJSeq: Index value '" + index + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.JSeq) _JSeqList.get(index);
++    }
++
++    /**
++     * Method getJSeq.Returns the contents of the collection in an
++     * Array.  <p>Note:  Just in case the collection contents are
++     * changing in another thread, we pass a 0-length Array of the
++     * correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.JSeq[] getJSeq(
++    ) {
++        jalview.binding.JSeq[] array = new jalview.binding.JSeq[0];
++        return (jalview.binding.JSeq[]) this._JSeqList.toArray(array);
++    }
++
++    /**
++     * Method getJSeqCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getJSeqCount(
++    ) {
++        return this._JSeqList.size();
++    }
++
++    /**
++     * Method getTree.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.Tree at the given
++     * index
++     */
++    public jalview.binding.Tree getTree(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._treeList.size()) {
++            throw new IndexOutOfBoundsException("getTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.Tree) _treeList.get(index);
++    }
++
++    /**
++     * Method getTree.Returns the contents of the collection in an
++     * Array.  <p>Note:  Just in case the collection contents are
++     * changing in another thread, we pass a 0-length Array of the
++     * correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.Tree[] getTree(
++    ) {
++        jalview.binding.Tree[] array = new jalview.binding.Tree[0];
++        return (jalview.binding.Tree[]) this._treeList.toArray(array);
++    }
++
++    /**
++     * Method getTreeCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getTreeCount(
++    ) {
++        return this._treeList.size();
++    }
++
++    /**
++     * Method getUserColours.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.UserColours at the
++     * given index
++     */
++    public jalview.binding.UserColours getUserColours(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._userColoursList.size()) {
++            throw new IndexOutOfBoundsException("getUserColours: Index value '" + index + "' not in range [0.." + (this._userColoursList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.UserColours) _userColoursList.get(index);
++    }
++
++    /**
++     * Method getUserColours.Returns the contents of the collection
++     * in an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.UserColours[] getUserColours(
++    ) {
++        jalview.binding.UserColours[] array = new jalview.binding.UserColours[0];
++        return (jalview.binding.UserColours[]) this._userColoursList.toArray(array);
++    }
++
++    /**
++     * Method getUserColoursCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getUserColoursCount(
++    ) {
++        return this._userColoursList.size();
++    }
++
++    /**
++     * Method getViewport.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.Viewport at the
++     * given index
++     */
++    public jalview.binding.Viewport getViewport(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._viewportList.size()) {
++            throw new IndexOutOfBoundsException("getViewport: Index value '" + index + "' not in range [0.." + (this._viewportList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.Viewport) _viewportList.get(index);
++    }
++
++    /**
++     * Method getViewport.Returns the contents of the collection in
++     * an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.Viewport[] getViewport(
++    ) {
++        jalview.binding.Viewport[] array = new jalview.binding.Viewport[0];
++        return (jalview.binding.Viewport[]) this._viewportList.toArray(array);
++    }
++
++    /**
++     * Method getViewportCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getViewportCount(
++    ) {
++        return this._viewportList.size();
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     */
++    public void removeAllJGroup(
++    ) {
++        this._JGroupList.clear();
++    }
++
++    /**
++     */
++    public void removeAllJSeq(
++    ) {
++        this._JSeqList.clear();
++    }
++
++    /**
++     */
++    public void removeAllTree(
++    ) {
++        this._treeList.clear();
++    }
++
++    /**
++     */
++    public void removeAllUserColours(
++    ) {
++        this._userColoursList.clear();
++    }
++
++    /**
++     */
++    public void removeAllViewport(
++    ) {
++        this._viewportList.clear();
++    }
++
++    /**
++     * Method removeJGroup.
++     * 
++     * @param vJGroup
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeJGroup(
++            final jalview.binding.JGroup vJGroup) {
++        boolean removed = _JGroupList.remove(vJGroup);
++        return removed;
++    }
++
++    /**
++     * Method removeJGroupAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.JGroup removeJGroupAt(
++            final int index) {
++        java.lang.Object obj = this._JGroupList.remove(index);
++        return (jalview.binding.JGroup) obj;
++    }
++
++    /**
++     * Method removeJSeq.
++     * 
++     * @param vJSeq
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeJSeq(
++            final jalview.binding.JSeq vJSeq) {
++        boolean removed = _JSeqList.remove(vJSeq);
++        return removed;
++    }
++
++    /**
++     * Method removeJSeqAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.JSeq removeJSeqAt(
++            final int index) {
++        java.lang.Object obj = this._JSeqList.remove(index);
++        return (jalview.binding.JSeq) obj;
++    }
++
++    /**
++     * Method removeTree.
++     * 
++     * @param vTree
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeTree(
++            final jalview.binding.Tree vTree) {
++        boolean removed = _treeList.remove(vTree);
++        return removed;
++    }
++
++    /**
++     * Method removeTreeAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.Tree removeTreeAt(
++            final int index) {
++        java.lang.Object obj = this._treeList.remove(index);
++        return (jalview.binding.Tree) obj;
++    }
++
++    /**
++     * Method removeUserColours.
++     * 
++     * @param vUserColours
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeUserColours(
++            final jalview.binding.UserColours vUserColours) {
++        boolean removed = _userColoursList.remove(vUserColours);
++        return removed;
++    }
++
++    /**
++     * Method removeUserColoursAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.UserColours removeUserColoursAt(
++            final int index) {
++        java.lang.Object obj = this._userColoursList.remove(index);
++        return (jalview.binding.UserColours) obj;
++    }
++
++    /**
++     * Method removeViewport.
++     * 
++     * @param vViewport
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeViewport(
++            final jalview.binding.Viewport vViewport) {
++        boolean removed = _viewportList.remove(vViewport);
++        return removed;
++    }
++
++    /**
++     * Method removeViewportAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.Viewport removeViewportAt(
++            final int index) {
++        java.lang.Object obj = this._viewportList.remove(index);
++        return (jalview.binding.Viewport) obj;
++    }
++
++    /**
++     * Sets the value of field 'featureSettings'.
++     * 
++     * @param featureSettings the value of field 'featureSettings'.
++     */
++    public void setFeatureSettings(
++            final jalview.binding.FeatureSettings featureSettings) {
++        this._featureSettings = featureSettings;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vJGroup
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setJGroup(
++            final int index,
++            final jalview.binding.JGroup vJGroup)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._JGroupList.size()) {
++            throw new IndexOutOfBoundsException("setJGroup: Index value '" + index + "' not in range [0.." + (this._JGroupList.size() - 1) + "]");
++        }
++        
++        this._JGroupList.set(index, vJGroup);
++    }
++
++    /**
++     * 
++     * 
++     * @param vJGroupArray
++     */
++    public void setJGroup(
++            final jalview.binding.JGroup[] vJGroupArray) {
++        //-- copy array
++        _JGroupList.clear();
++        
++        for (int i = 0; i < vJGroupArray.length; i++) {
++                this._JGroupList.add(vJGroupArray[i]);
++        }
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vJSeq
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setJSeq(
++            final int index,
++            final jalview.binding.JSeq vJSeq)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._JSeqList.size()) {
++            throw new IndexOutOfBoundsException("setJSeq: Index value '" + index + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
++        }
++        
++        this._JSeqList.set(index, vJSeq);
++    }
++
++    /**
++     * 
++     * 
++     * @param vJSeqArray
++     */
++    public void setJSeq(
++            final jalview.binding.JSeq[] vJSeqArray) {
++        //-- copy array
++        _JSeqList.clear();
++        
++        for (int i = 0; i < vJSeqArray.length; i++) {
++                this._JSeqList.add(vJSeqArray[i]);
++        }
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vTree
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setTree(
++            final int index,
++            final jalview.binding.Tree vTree)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._treeList.size()) {
++            throw new IndexOutOfBoundsException("setTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
++        }
++        
++        this._treeList.set(index, vTree);
++    }
++
++    /**
++     * 
++     * 
++     * @param vTreeArray
++     */
++    public void setTree(
++            final jalview.binding.Tree[] vTreeArray) {
++        //-- copy array
++        _treeList.clear();
++        
++        for (int i = 0; i < vTreeArray.length; i++) {
++                this._treeList.add(vTreeArray[i]);
++        }
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vUserColours
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setUserColours(
++            final int index,
++            final jalview.binding.UserColours vUserColours)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._userColoursList.size()) {
++            throw new IndexOutOfBoundsException("setUserColours: Index value '" + index + "' not in range [0.." + (this._userColoursList.size() - 1) + "]");
++        }
++        
++        this._userColoursList.set(index, vUserColours);
++    }
++
++    /**
++     * 
++     * 
++     * @param vUserColoursArray
++     */
++    public void setUserColours(
++            final jalview.binding.UserColours[] vUserColoursArray) {
++        //-- copy array
++        _userColoursList.clear();
++        
++        for (int i = 0; i < vUserColoursArray.length; i++) {
++                this._userColoursList.add(vUserColoursArray[i]);
++        }
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vViewport
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setViewport(
++            final int index,
++            final jalview.binding.Viewport vViewport)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._viewportList.size()) {
++            throw new IndexOutOfBoundsException("setViewport: Index value '" + index + "' not in range [0.." + (this._viewportList.size() - 1) + "]");
++        }
++        
++        this._viewportList.set(index, vViewport);
++    }
++
++    /**
++     * 
++     * 
++     * @param vViewportArray
++     */
++    public void setViewport(
++            final jalview.binding.Viewport[] vViewportArray) {
++        //-- copy array
++        _viewportList.clear();
++        
++        for (int i = 0; i < vViewportArray.length; i++) {
++                this._viewportList.add(vViewportArray[i]);
++        }
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.JalviewModelSequence
++     */
++    public static jalview.binding.JalviewModelSequence unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.JalviewModelSequence) Unmarshaller.unmarshal(jalview.binding.JalviewModelSequence.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,31 -1,31 +1,16 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
--import jalview.util.MessageManager;
--
  import org.exolab.castor.xml.Marshaller;
  import org.exolab.castor.xml.Unmarshaller;
  
   * 
   * @version $Revision$ $Date$
   */
--public class JalviewUserColours implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _schemeName.
--   */
--  private java.lang.String _schemeName;
--
--  /**
--   * Jalview colour scheme document version.
--   * 
--   */
--  private java.lang.String _version;
--
--  /**
--   * Field _colourList.
--   */
--  private java.util.Vector _colourList;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public JalviewUserColours()
--  {
--    super();
--    this._colourList = new java.util.Vector();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * 
--   * 
--   * @param vColour
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addColour(final Colour vColour)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._colourList.addElement(vColour);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vColour
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addColour(final int index, final Colour vColour)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._colourList.add(index, vColour);
--  }
--
--  /**
--   * Method enumerateColour.
--   * 
--   * @return an Enumeration over all Colour elements
--   */
--  public java.util.Enumeration enumerateColour()
--  {
--    return this._colourList.elements();
--  }
--
--  /**
--   * Method getColour.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the Colour at the given index
--   */
--  public Colour getColour(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._colourList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getColour",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._colourList.size() - 1)).toString()
--        })); 
++public class JalviewUserColours implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _schemeName.
++     */
++    private java.lang.String _schemeName;
++
++    /**
++     * Jalview colour scheme document version.
++     *  
++     */
++    private java.lang.String _version;
++
++    /**
++     * Field _colourList.
++     */
++    private java.util.Vector _colourList;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public JalviewUserColours() {
++        super();
++        this._colourList = new java.util.Vector();
      }
  
--    return (Colour) _colourList.get(index);
--  }
--
--  /**
--   * Method getColour.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public Colour[] getColour()
--  {
--    Colour[] array = new Colour[0];
--    return (Colour[]) this._colourList.toArray(array);
--  }
--
--  /**
--   * Method getColourCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getColourCount()
--  {
--    return this._colourList.size();
--  }
--
--  /**
--   * Returns the value of field 'schemeName'.
--   * 
--   * @return the value of field 'SchemeName'.
--   */
--  public java.lang.String getSchemeName()
--  {
--    return this._schemeName;
--  }
--
--  /**
--   * Returns the value of field 'version'. The field 'version' has the following
--   * description: Jalview colour scheme document version.
--   * 
--   * 
--   * @return the value of field 'Version'.
--   */
--  public java.lang.String getVersion()
--  {
--    return this._version;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * 
++     * 
++     * @param vColour
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addColour(
++            final Colour vColour)
++    throws java.lang.IndexOutOfBoundsException {
++        this._colourList.addElement(vColour);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vColour
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addColour(
++            final int index,
++            final Colour vColour)
++    throws java.lang.IndexOutOfBoundsException {
++        this._colourList.add(index, vColour);
++    }
++
++    /**
++     * Method enumerateColour.
++     * 
++     * @return an Enumeration over all Colour elements
++     */
++    public java.util.Enumeration enumerateColour(
++    ) {
++        return this._colourList.elements();
++    }
++
++    /**
++     * Method getColour.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the Colour at the given index
++     */
++    public Colour getColour(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._colourList.size()) {
++            throw new IndexOutOfBoundsException("getColour: Index value '" + index + "' not in range [0.." + (this._colourList.size() - 1) + "]");
++        }
++        
++        return (Colour) _colourList.get(index);
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
++
++    /**
++     * Method getColour.Returns the contents of the collection in
++     * an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public Colour[] getColour(
++    ) {
++        Colour[] array = new Colour[0];
++        return (Colour[]) this._colourList.toArray(array);
++    }
++
++    /**
++     * Method getColourCount.
++     * 
++     * @return the size of this collection
       */
--  public void removeAllColour()
--  {
--    this._colourList.clear();
--  }
--
--  /**
--   * Method removeColour.
--   * 
--   * @param vColour
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeColour(final Colour vColour)
--  {
--    boolean removed = _colourList.remove(vColour);
--    return removed;
--  }
--
--  /**
--   * Method removeColourAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public Colour removeColourAt(final int index)
--  {
--    java.lang.Object obj = this._colourList.remove(index);
--    return (Colour) obj;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vColour
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setColour(final int index, final Colour vColour)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._colourList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setColour",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._colourList.size() - 1)).toString()
--          })); 
++    public int getColourCount(
++    ) {
++        return this._colourList.size();
      }
  
--    this._colourList.set(index, vColour);
--  }
--
--  /**
--   * 
--   * 
--   * @param vColourArray
--   */
--  public void setColour(final Colour[] vColourArray)
--  {
--    // -- copy array
--    _colourList.clear();
--
--    for (int i = 0; i < vColourArray.length; i++)
--    {
--      this._colourList.add(vColourArray[i]);
++    /**
++     * Returns the value of field 'schemeName'.
++     * 
++     * @return the value of field 'SchemeName'.
++     */
++    public java.lang.String getSchemeName(
++    ) {
++        return this._schemeName;
++    }
++
++    /**
++     * Returns the value of field 'version'. The field 'version'
++     * has the following description: Jalview colour scheme
++     * document version.
++     *  
++     * 
++     * @return the value of field 'Version'.
++     */
++    public java.lang.String getVersion(
++    ) {
++        return this._version;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     */
++    public void removeAllColour(
++    ) {
++        this._colourList.clear();
++    }
++
++    /**
++     * Method removeColour.
++     * 
++     * @param vColour
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeColour(
++            final Colour vColour) {
++        boolean removed = _colourList.remove(vColour);
++        return removed;
++    }
++
++    /**
++     * Method removeColourAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public Colour removeColourAt(
++            final int index) {
++        java.lang.Object obj = this._colourList.remove(index);
++        return (Colour) obj;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vColour
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setColour(
++            final int index,
++            final Colour vColour)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._colourList.size()) {
++            throw new IndexOutOfBoundsException("setColour: Index value '" + index + "' not in range [0.." + (this._colourList.size() - 1) + "]");
++        }
++        
++        this._colourList.set(index, vColour);
++    }
++
++    /**
++     * 
++     * 
++     * @param vColourArray
++     */
++    public void setColour(
++            final Colour[] vColourArray) {
++        //-- copy array
++        _colourList.clear();
++        
++        for (int i = 0; i < vColourArray.length; i++) {
++                this._colourList.add(vColourArray[i]);
++        }
++    }
++
++    /**
++     * Sets the value of field 'schemeName'.
++     * 
++     * @param schemeName the value of field 'schemeName'.
++     */
++    public void setSchemeName(
++            final java.lang.String schemeName) {
++        this._schemeName = schemeName;
++    }
++
++    /**
++     * Sets the value of field 'version'. The field 'version' has
++     * the following description: Jalview colour scheme document
++     * version.
++     *  
++     * 
++     * @param version the value of field 'version'.
++     */
++    public void setVersion(
++            final java.lang.String version) {
++        this._version = version;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.JalviewUserColours
++     */
++    public static jalview.binding.JalviewUserColours unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(jalview.binding.JalviewUserColours.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--  }
--
--  /**
--   * Sets the value of field 'schemeName'.
--   * 
--   * @param schemeName
--   *          the value of field 'schemeName'.
--   */
--  public void setSchemeName(final java.lang.String schemeName)
--  {
--    this._schemeName = schemeName;
--  }
--
--  /**
--   * Sets the value of field 'version'. The field 'version' has the following
--   * description: Jalview colour scheme document version.
--   * 
--   * 
--   * @param version
--   *          the value of field 'version'.
--   */
--  public void setVersion(final java.lang.String version)
--  {
--    this._version = version;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.JalviewUserColours
--   */
--  public static jalview.binding.JalviewUserColours unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(
--            jalview.binding.JalviewUserColours.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
@@@ -1,31 -1,31 +1,16 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
--import jalview.util.MessageManager;
--
  import org.exolab.castor.xml.Marshaller;
  import org.exolab.castor.xml.Unmarshaller;
  
   * 
   * @version $Revision$ $Date$
   */
--public class Pdbentry implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _id.
--   */
--  private java.lang.String _id;
--
--  /**
--   * Field _type.
--   */
--  private java.lang.String _type;
--
--  /**
--   * Field _items.
--   */
--  private java.util.Vector _items;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public Pdbentry()
--  {
--    super();
--    this._items = new java.util.Vector();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * 
--   * 
--   * @param vPdbentryItem
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addPdbentryItem(
--          final jalview.binding.PdbentryItem vPdbentryItem)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._items.addElement(vPdbentryItem);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vPdbentryItem
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addPdbentryItem(final int index,
--          final jalview.binding.PdbentryItem vPdbentryItem)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._items.add(index, vPdbentryItem);
--  }
--
--  /**
--   * Method enumeratePdbentryItem.
--   * 
--   * @return an Enumeration over all jalview.binding.PdbentryItem elements
--   */
--  public java.util.Enumeration enumeratePdbentryItem()
--  {
--    return this._items.elements();
--  }
--
--  /**
--   * Returns the value of field 'id'.
--   * 
--   * @return the value of field 'Id'.
--   */
--  public java.lang.String getId()
--  {
--    return this._id;
--  }
--
--  /**
--   * Method getPdbentryItem.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.PdbentryItem at the given index
--   */
--  public jalview.binding.PdbentryItem getPdbentryItem(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._items.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getPdbentryItem",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._items.size() - 1)).toString()
--        })); 
++public class Pdbentry implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _id.
++     */
++    private java.lang.String _id;
++
++    /**
++     * Field _type.
++     */
++    private java.lang.String _type;
++
++    /**
++     * Field _items.
++     */
++    private java.util.Vector _items;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Pdbentry() {
++        super();
++        this._items = new java.util.Vector();
      }
  
--    return (jalview.binding.PdbentryItem) _items.get(index);
--  }
--
--  /**
--   * Method getPdbentryItem.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.PdbentryItem[] getPdbentryItem()
--  {
--    jalview.binding.PdbentryItem[] array = new jalview.binding.PdbentryItem[0];
--    return (jalview.binding.PdbentryItem[]) this._items.toArray(array);
--  }
--
--  /**
--   * Method getPdbentryItemCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getPdbentryItemCount()
--  {
--    return this._items.size();
--  }
--
--  /**
--   * Returns the value of field 'type'.
--   * 
--   * @return the value of field 'Type'.
--   */
--  public java.lang.String getType()
--  {
--    return this._type;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * 
++     * 
++     * @param vPdbentryItem
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addPdbentryItem(
++            final jalview.binding.PdbentryItem vPdbentryItem)
++    throws java.lang.IndexOutOfBoundsException {
++        this._items.addElement(vPdbentryItem);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vPdbentryItem
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addPdbentryItem(
++            final int index,
++            final jalview.binding.PdbentryItem vPdbentryItem)
++    throws java.lang.IndexOutOfBoundsException {
++        this._items.add(index, vPdbentryItem);
++    }
++
++    /**
++     * Method enumeratePdbentryItem.
++     * 
++     * @return an Enumeration over all jalview.binding.PdbentryItem
++     * elements
++     */
++    public java.util.Enumeration enumeratePdbentryItem(
++    ) {
++        return this._items.elements();
++    }
++
++    /**
++     * Returns the value of field 'id'.
++     * 
++     * @return the value of field 'Id'.
++     */
++    public java.lang.String getId(
++    ) {
++        return this._id;
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
++
++    /**
++     * Method getPdbentryItem.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.PdbentryItem at the
++     * given index
++     */
++    public jalview.binding.PdbentryItem getPdbentryItem(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._items.size()) {
++            throw new IndexOutOfBoundsException("getPdbentryItem: Index value '" + index + "' not in range [0.." + (this._items.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.PdbentryItem) _items.get(index);
++    }
++
++    /**
++     * Method getPdbentryItem.Returns the contents of the
++     * collection in an Array.  <p>Note:  Just in case the
++     * collection contents are changing in another thread, we pass
++     * a 0-length Array of the correct type into the API call. 
++     * This way we <i>know</i> that the Array returned is of
++     * exactly the correct length.
++     * 
++     * @return this collection as an Array
       */
--  public void removeAllPdbentryItem()
--  {
--    this._items.clear();
--  }
--
--  /**
--   * Method removePdbentryItem.
--   * 
--   * @param vPdbentryItem
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removePdbentryItem(
--          final jalview.binding.PdbentryItem vPdbentryItem)
--  {
--    boolean removed = _items.remove(vPdbentryItem);
--    return removed;
--  }
--
--  /**
--   * Method removePdbentryItemAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.PdbentryItem removePdbentryItemAt(final int index)
--  {
--    java.lang.Object obj = this._items.remove(index);
--    return (jalview.binding.PdbentryItem) obj;
--  }
--
--  /**
--   * Sets the value of field 'id'.
--   * 
--   * @param id
--   *          the value of field 'id'.
--   */
--  public void setId(final java.lang.String id)
--  {
--    this._id = id;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vPdbentryItem
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setPdbentryItem(final int index,
--          final jalview.binding.PdbentryItem vPdbentryItem)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._items.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setPdbentryItem",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._items.size() - 1)).toString()
--          })); 
++    public jalview.binding.PdbentryItem[] getPdbentryItem(
++    ) {
++        jalview.binding.PdbentryItem[] array = new jalview.binding.PdbentryItem[0];
++        return (jalview.binding.PdbentryItem[]) this._items.toArray(array);
      }
  
--    this._items.set(index, vPdbentryItem);
--  }
--
--  /**
--   * 
--   * 
--   * @param vPdbentryItemArray
--   */
--  public void setPdbentryItem(
--          final jalview.binding.PdbentryItem[] vPdbentryItemArray)
--  {
--    // -- copy array
--    _items.clear();
--
--    for (int i = 0; i < vPdbentryItemArray.length; i++)
--    {
--      this._items.add(vPdbentryItemArray[i]);
++    /**
++     * Method getPdbentryItemCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getPdbentryItemCount(
++    ) {
++        return this._items.size();
++    }
++
++    /**
++     * Returns the value of field 'type'.
++     * 
++     * @return the value of field 'Type'.
++     */
++    public java.lang.String getType(
++    ) {
++        return this._type;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     */
++    public void removeAllPdbentryItem(
++    ) {
++        this._items.clear();
++    }
++
++    /**
++     * Method removePdbentryItem.
++     * 
++     * @param vPdbentryItem
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removePdbentryItem(
++            final jalview.binding.PdbentryItem vPdbentryItem) {
++        boolean removed = _items.remove(vPdbentryItem);
++        return removed;
++    }
++
++    /**
++     * Method removePdbentryItemAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.PdbentryItem removePdbentryItemAt(
++            final int index) {
++        java.lang.Object obj = this._items.remove(index);
++        return (jalview.binding.PdbentryItem) obj;
++    }
++
++    /**
++     * Sets the value of field 'id'.
++     * 
++     * @param id the value of field 'id'.
++     */
++    public void setId(
++            final java.lang.String id) {
++        this._id = id;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vPdbentryItem
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setPdbentryItem(
++            final int index,
++            final jalview.binding.PdbentryItem vPdbentryItem)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._items.size()) {
++            throw new IndexOutOfBoundsException("setPdbentryItem: Index value '" + index + "' not in range [0.." + (this._items.size() - 1) + "]");
++        }
++        
++        this._items.set(index, vPdbentryItem);
++    }
++
++    /**
++     * 
++     * 
++     * @param vPdbentryItemArray
++     */
++    public void setPdbentryItem(
++            final jalview.binding.PdbentryItem[] vPdbentryItemArray) {
++        //-- copy array
++        _items.clear();
++        
++        for (int i = 0; i < vPdbentryItemArray.length; i++) {
++                this._items.add(vPdbentryItemArray[i]);
++        }
++    }
++
++    /**
++     * Sets the value of field 'type'.
++     * 
++     * @param type the value of field 'type'.
++     */
++    public void setType(
++            final java.lang.String type) {
++        this._type = type;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Pdbentry
++     */
++    public static jalview.binding.Pdbentry unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(jalview.binding.Pdbentry.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--  }
--
--  /**
--   * Sets the value of field 'type'.
--   * 
--   * @param type
--   *          the value of field 'type'.
--   */
--  public void setType(final java.lang.String type)
--  {
--    this._type = type;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Pdbentry
--   */
--  public static jalview.binding.Pdbentry unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(
--            jalview.binding.Pdbentry.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
--package jalview.binding;
  
--import jalview.util.MessageManager;
++package jalview.binding;
  
  /**
   * Class PdbentryItem.
   * 
   * @version $Revision$ $Date$
   */
--public class PdbentryItem implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _propertyList.
--   */
--  private java.util.Vector _propertyList;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public PdbentryItem()
--  {
--    super();
--    this._propertyList = new java.util.Vector();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * 
--   * 
--   * @param vProperty
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addProperty(final jalview.binding.Property vProperty)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._propertyList.addElement(vProperty);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vProperty
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addProperty(final int index,
--          final jalview.binding.Property vProperty)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._propertyList.add(index, vProperty);
--  }
--
--  /**
--   * Method enumerateProperty.
--   * 
--   * @return an Enumeration over all jalview.binding.Property elements
--   */
--  public java.util.Enumeration enumerateProperty()
--  {
--    return this._propertyList.elements();
--  }
--
--  /**
--   * Method getProperty.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.Property at the given index
--   */
--  public jalview.binding.Property getProperty(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._propertyList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getProperty",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._propertyList.size() - 1)).toString()
--        })); 
++public class PdbentryItem implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _propertyList.
++     */
++    private java.util.Vector _propertyList;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public PdbentryItem() {
++        super();
++        this._propertyList = new java.util.Vector();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * 
++     * 
++     * @param vProperty
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addProperty(
++            final jalview.binding.Property vProperty)
++    throws java.lang.IndexOutOfBoundsException {
++        this._propertyList.addElement(vProperty);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vProperty
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addProperty(
++            final int index,
++            final jalview.binding.Property vProperty)
++    throws java.lang.IndexOutOfBoundsException {
++        this._propertyList.add(index, vProperty);
++    }
++
++    /**
++     * Method enumerateProperty.
++     * 
++     * @return an Enumeration over all jalview.binding.Property
++     * elements
++     */
++    public java.util.Enumeration enumerateProperty(
++    ) {
++        return this._propertyList.elements();
++    }
++
++    /**
++     * Method getProperty.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.Property at the
++     * given index
++     */
++    public jalview.binding.Property getProperty(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._propertyList.size()) {
++            throw new IndexOutOfBoundsException("getProperty: Index value '" + index + "' not in range [0.." + (this._propertyList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.Property) _propertyList.get(index);
++    }
++
++    /**
++     * Method getProperty.Returns the contents of the collection in
++     * an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.Property[] getProperty(
++    ) {
++        jalview.binding.Property[] array = new jalview.binding.Property[0];
++        return (jalview.binding.Property[]) this._propertyList.toArray(array);
++    }
++
++    /**
++     * Method getPropertyCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getPropertyCount(
++    ) {
++        return this._propertyList.size();
      }
  
--    return (jalview.binding.Property) _propertyList.get(index);
--  }
--
--  /**
--   * Method getProperty.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.Property[] getProperty()
--  {
--    jalview.binding.Property[] array = new jalview.binding.Property[0];
--    return (jalview.binding.Property[]) this._propertyList.toArray(array);
--  }
--
--  /**
--   * Method getPropertyCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getPropertyCount()
--  {
--    return this._propertyList.size();
--  }
--
--  /**
++    /**
       */
--  public void removeAllProperty()
--  {
--    this._propertyList.clear();
--  }
--
--  /**
--   * Method removeProperty.
--   * 
--   * @param vProperty
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeProperty(final jalview.binding.Property vProperty)
--  {
--    boolean removed = _propertyList.remove(vProperty);
--    return removed;
--  }
--
--  /**
--   * Method removePropertyAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.Property removePropertyAt(final int index)
--  {
--    java.lang.Object obj = this._propertyList.remove(index);
--    return (jalview.binding.Property) obj;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vProperty
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setProperty(final int index,
--          final jalview.binding.Property vProperty)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._propertyList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setProperty",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._propertyList.size() - 1)).toString()
--          })); 
++    public void removeAllProperty(
++    ) {
++        this._propertyList.clear();
      }
  
--    this._propertyList.set(index, vProperty);
--  }
--
--  /**
--   * 
--   * 
--   * @param vPropertyArray
--   */
--  public void setProperty(final jalview.binding.Property[] vPropertyArray)
--  {
--    // -- copy array
--    _propertyList.clear();
--
--    for (int i = 0; i < vPropertyArray.length; i++)
--    {
--      this._propertyList.add(vPropertyArray[i]);
++    /**
++     * Method removeProperty.
++     * 
++     * @param vProperty
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeProperty(
++            final jalview.binding.Property vProperty) {
++        boolean removed = _propertyList.remove(vProperty);
++        return removed;
++    }
++
++    /**
++     * Method removePropertyAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.Property removePropertyAt(
++            final int index) {
++        java.lang.Object obj = this._propertyList.remove(index);
++        return (jalview.binding.Property) obj;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vProperty
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setProperty(
++            final int index,
++            final jalview.binding.Property vProperty)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._propertyList.size()) {
++            throw new IndexOutOfBoundsException("setProperty: Index value '" + index + "' not in range [0.." + (this._propertyList.size() - 1) + "]");
++        }
++        
++        this._propertyList.set(index, vProperty);
++    }
++
++    /**
++     * 
++     * 
++     * @param vPropertyArray
++     */
++    public void setProperty(
++            final jalview.binding.Property[] vPropertyArray) {
++        //-- copy array
++        _propertyList.clear();
++        
++        for (int i = 0; i < vPropertyArray.length; i++) {
++                this._propertyList.add(vPropertyArray[i]);
++        }
      }
--  }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,106 -32,106 +19,98 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class Pdbids extends Pdbentry implements java.io.Serializable
++public class Pdbids extends Pdbentry 
++implements java.io.Serializable
  {
  
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
  
--  public Pdbids()
--  {
--    super();
--  }
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Pdbids() {
++        super();
++    }
++
  
--  // -----------/
--  // - Methods -/
--  // -----------/
++      //-----------/
++     //- Methods -/
++    //-----------/
  
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
      }
--    return true;
--  }
  
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
  
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
  
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Pdbentry
--   */
--  public static jalview.binding.Pdbentry unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(
--            jalview.binding.Pdbids.class, reader);
--  }
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Pdbentry
++     */
++    public static jalview.binding.Pdbentry unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(jalview.binding.Pdbids.class, reader);
++    }
  
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,162 -32,162 +19,151 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class Property implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _name.
--   */
--  private java.lang.String _name;
--
--  /**
--   * Field _value.
--   */
--  private java.lang.String _value;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public Property()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * Returns the value of field 'name'.
--   * 
--   * @return the value of field 'Name'.
--   */
--  public java.lang.String getName()
--  {
--    return this._name;
--  }
--
--  /**
--   * Returns the value of field 'value'.
--   * 
--   * @return the value of field 'Value'.
--   */
--  public java.lang.String getValue()
--  {
--    return this._value;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++public class Property implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _name.
++     */
++    private java.lang.String _name;
++
++    /**
++     * Field _value.
++     */
++    private java.lang.String _value;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Property() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * Returns the value of field 'name'.
++     * 
++     * @return the value of field 'Name'.
++     */
++    public java.lang.String getName(
++    ) {
++        return this._name;
++    }
++
++    /**
++     * Returns the value of field 'value'.
++     * 
++     * @return the value of field 'Value'.
++     */
++    public java.lang.String getValue(
++    ) {
++        return this._value;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'name'.
++     * 
++     * @param name the value of field 'name'.
++     */
++    public void setName(
++            final java.lang.String name) {
++        this._name = name;
++    }
++
++    /**
++     * Sets the value of field 'value'.
++     * 
++     * @param value the value of field 'value'.
++     */
++    public void setValue(
++            final java.lang.String value) {
++        this._value = value;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Property
++     */
++    public static jalview.binding.Property unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Property) Unmarshaller.unmarshal(jalview.binding.Property.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'name'.
--   * 
--   * @param name
--   *          the value of field 'name'.
--   */
--  public void setName(final java.lang.String name)
--  {
--    this._name = name;
--  }
--
--  /**
--   * Sets the value of field 'value'.
--   * 
--   * @param value
--   *          the value of field 'value'.
--   */
--  public void setValue(final java.lang.String value)
--  {
--    this._value = value;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Property
--   */
--  public static jalview.binding.Property unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Property) Unmarshaller.unmarshal(
--            jalview.binding.Property.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,106 -32,106 +19,98 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class Sequence extends SequenceType implements java.io.Serializable
++public class Sequence extends SequenceType 
++implements java.io.Serializable
  {
  
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
  
--  public Sequence()
--  {
--    super();
--  }
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Sequence() {
++        super();
++    }
++
  
--  // -----------/
--  // - Methods -/
--  // -----------/
++      //-----------/
++     //- Methods -/
++    //-----------/
  
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
      }
--    return true;
--  }
  
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
  
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
  
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.SequenceType
--   */
--  public static jalview.binding.SequenceType unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.SequenceType) Unmarshaller.unmarshal(
--            jalview.binding.Sequence.class, reader);
--  }
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.SequenceType
++     */
++    public static jalview.binding.SequenceType unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.SequenceType) Unmarshaller.unmarshal(jalview.binding.Sequence.class, reader);
++    }
  
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,30 -1,30 +1,15 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
--//- Imported classes and packages -/
--//---------------------------------/
--
--import jalview.util.MessageManager;
  
  import org.exolab.castor.xml.Marshaller;
  import org.exolab.castor.xml.Unmarshaller;
   * 
   * @version $Revision$ $Date$
   */
--public class SequenceSet implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _gapChar.
--   */
--  private java.lang.String _gapChar;
--
--  /**
--   * Field _aligned.
--   */
--  private boolean _aligned;
--
--  /**
--   * keeps track of state for field: _aligned
--   */
--  private boolean _has_aligned;
--
--  /**
--   * Field _sequenceList.
--   */
--  private java.util.Vector _sequenceList;
--
--  /**
--   * Field _annotationList.
--   */
--  private java.util.Vector _annotationList;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public SequenceSet()
--  {
--    super();
--    this._sequenceList = new java.util.Vector();
--    this._annotationList = new java.util.Vector();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * 
--   * 
--   * @param vAnnotation
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addAnnotation(final jalview.binding.Annotation vAnnotation)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._annotationList.addElement(vAnnotation);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vAnnotation
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addAnnotation(final int index,
--          final jalview.binding.Annotation vAnnotation)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._annotationList.add(index, vAnnotation);
--  }
--
--  /**
--   * 
--   * 
--   * @param vSequence
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addSequence(final jalview.binding.Sequence vSequence)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._sequenceList.addElement(vSequence);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vSequence
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addSequence(final int index,
--          final jalview.binding.Sequence vSequence)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._sequenceList.add(index, vSequence);
--  }
--
--  /**
--     */
--  public void deleteAligned()
--  {
--    this._has_aligned = false;
--  }
--
--  /**
--   * Method enumerateAnnotation.
--   * 
--   * @return an Enumeration over all jalview.binding.Annotation elements
--   */
--  public java.util.Enumeration enumerateAnnotation()
--  {
--    return this._annotationList.elements();
--  }
--
--  /**
--   * Method enumerateSequence.
--   * 
--   * @return an Enumeration over all jalview.binding.Sequence elements
--   */
--  public java.util.Enumeration enumerateSequence()
--  {
--    return this._sequenceList.elements();
--  }
--
--  /**
--   * Returns the value of field 'aligned'.
--   * 
--   * @return the value of field 'Aligned'.
--   */
--  public boolean getAligned()
--  {
--    return this._aligned;
--  }
--
--  /**
--   * Method getAnnotation.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.Annotation at the given index
--   */
--  public jalview.binding.Annotation getAnnotation(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._annotationList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getAnnotation",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._annotationList.size() - 1)).toString()
--        })); 
--    }
--
--    return (jalview.binding.Annotation) _annotationList.get(index);
--  }
--
--  /**
--   * Method getAnnotation.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.Annotation[] getAnnotation()
--  {
--    jalview.binding.Annotation[] array = new jalview.binding.Annotation[0];
--    return (jalview.binding.Annotation[]) this._annotationList
--            .toArray(array);
--  }
--
--  /**
--   * Method getAnnotationCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getAnnotationCount()
--  {
--    return this._annotationList.size();
--  }
--
--  /**
--   * Returns the value of field 'gapChar'.
--   * 
--   * @return the value of field 'GapChar'.
--   */
--  public java.lang.String getGapChar()
--  {
--    return this._gapChar;
--  }
--
--  /**
--   * Method getSequence.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the jalview.binding.Sequence at the given index
--   */
--  public jalview.binding.Sequence getSequence(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._sequenceList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getSequence",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._sequenceList.size() - 1)).toString()
--          })); 
--    }
--
--    return (jalview.binding.Sequence) _sequenceList.get(index);
--  }
--
--  /**
--   * Method getSequence.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public jalview.binding.Sequence[] getSequence()
--  {
--    jalview.binding.Sequence[] array = new jalview.binding.Sequence[0];
--    return (jalview.binding.Sequence[]) this._sequenceList.toArray(array);
--  }
--
--  /**
--   * Method getSequenceCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getSequenceCount()
--  {
--    return this._sequenceList.size();
--  }
--
--  /**
--   * Method hasAligned.
--   * 
--   * @return true if at least one Aligned has been added
--   */
--  public boolean hasAligned()
--  {
--    return this._has_aligned;
--  }
--
--  /**
--   * Returns the value of field 'aligned'.
--   * 
--   * @return the value of field 'Aligned'.
--   */
--  public boolean isAligned()
--  {
--    return this._aligned;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
--    }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--     */
--  public void removeAllAnnotation()
--  {
--    this._annotationList.clear();
--  }
--
--  /**
--     */
--  public void removeAllSequence()
--  {
--    this._sequenceList.clear();
--  }
--
--  /**
--   * Method removeAnnotation.
--   * 
--   * @param vAnnotation
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeAnnotation(
--          final jalview.binding.Annotation vAnnotation)
--  {
--    boolean removed = _annotationList.remove(vAnnotation);
--    return removed;
--  }
--
--  /**
--   * Method removeAnnotationAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.Annotation removeAnnotationAt(final int index)
--  {
--    java.lang.Object obj = this._annotationList.remove(index);
--    return (jalview.binding.Annotation) obj;
--  }
--
--  /**
--   * Method removeSequence.
--   * 
--   * @param vSequence
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeSequence(final jalview.binding.Sequence vSequence)
--  {
--    boolean removed = _sequenceList.remove(vSequence);
--    return removed;
--  }
--
--  /**
--   * Method removeSequenceAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public jalview.binding.Sequence removeSequenceAt(final int index)
--  {
--    java.lang.Object obj = this._sequenceList.remove(index);
--    return (jalview.binding.Sequence) obj;
--  }
--
--  /**
--   * Sets the value of field 'aligned'.
--   * 
--   * @param aligned
--   *          the value of field 'aligned'.
--   */
--  public void setAligned(final boolean aligned)
--  {
--    this._aligned = aligned;
--    this._has_aligned = true;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vAnnotation
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setAnnotation(final int index,
--          final jalview.binding.Annotation vAnnotation)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._annotationList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setAnnotation",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._annotationList.size() - 1)).toString()
--        })); 
--    }
--
--    this._annotationList.set(index, vAnnotation);
--  }
--
--  /**
--   * 
--   * 
--   * @param vAnnotationArray
--   */
--  public void setAnnotation(
--          final jalview.binding.Annotation[] vAnnotationArray)
--  {
--    // -- copy array
--    _annotationList.clear();
--
--    for (int i = 0; i < vAnnotationArray.length; i++)
--    {
--      this._annotationList.add(vAnnotationArray[i]);
--    }
--  }
--
--  /**
--   * Sets the value of field 'gapChar'.
--   * 
--   * @param gapChar
--   *          the value of field 'gapChar'.
--   */
--  public void setGapChar(final java.lang.String gapChar)
--  {
--    this._gapChar = gapChar;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vSequence
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setSequence(final int index,
--          final jalview.binding.Sequence vSequence)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._sequenceList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setSequence",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._sequenceList.size() - 1)).toString()
--          })); 
--    }
--
--    this._sequenceList.set(index, vSequence);
--  }
--
--  /**
--   * 
--   * 
--   * @param vSequenceArray
--   */
--  public void setSequence(final jalview.binding.Sequence[] vSequenceArray)
--  {
--    // -- copy array
--    _sequenceList.clear();
--
--    for (int i = 0; i < vSequenceArray.length; i++)
--    {
--      this._sequenceList.add(vSequenceArray[i]);
--    }
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.SequenceSet
--   */
--  public static jalview.binding.SequenceSet unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.SequenceSet) Unmarshaller.unmarshal(
--            jalview.binding.SequenceSet.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++public class SequenceSet implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _gapChar.
++     */
++    private java.lang.String _gapChar;
++
++    /**
++     * Field _aligned.
++     */
++    private boolean _aligned;
++
++    /**
++     * keeps track of state for field: _aligned
++     */
++    private boolean _has_aligned;
++
++    /**
++     * Field _sequenceList.
++     */
++    private java.util.Vector _sequenceList;
++
++    /**
++     * Field _annotationList.
++     */
++    private java.util.Vector _annotationList;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public SequenceSet() {
++        super();
++        this._sequenceList = new java.util.Vector();
++        this._annotationList = new java.util.Vector();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * 
++     * 
++     * @param vAnnotation
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addAnnotation(
++            final jalview.binding.Annotation vAnnotation)
++    throws java.lang.IndexOutOfBoundsException {
++        this._annotationList.addElement(vAnnotation);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vAnnotation
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addAnnotation(
++            final int index,
++            final jalview.binding.Annotation vAnnotation)
++    throws java.lang.IndexOutOfBoundsException {
++        this._annotationList.add(index, vAnnotation);
++    }
++
++    /**
++     * 
++     * 
++     * @param vSequence
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addSequence(
++            final jalview.binding.Sequence vSequence)
++    throws java.lang.IndexOutOfBoundsException {
++        this._sequenceList.addElement(vSequence);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vSequence
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addSequence(
++            final int index,
++            final jalview.binding.Sequence vSequence)
++    throws java.lang.IndexOutOfBoundsException {
++        this._sequenceList.add(index, vSequence);
++    }
++
++    /**
++     */
++    public void deleteAligned(
++    ) {
++        this._has_aligned= false;
++    }
++
++    /**
++     * Method enumerateAnnotation.
++     * 
++     * @return an Enumeration over all jalview.binding.Annotation
++     * elements
++     */
++    public java.util.Enumeration enumerateAnnotation(
++    ) {
++        return this._annotationList.elements();
++    }
++
++    /**
++     * Method enumerateSequence.
++     * 
++     * @return an Enumeration over all jalview.binding.Sequence
++     * elements
++     */
++    public java.util.Enumeration enumerateSequence(
++    ) {
++        return this._sequenceList.elements();
++    }
++
++    /**
++     * Returns the value of field 'aligned'.
++     * 
++     * @return the value of field 'Aligned'.
++     */
++    public boolean getAligned(
++    ) {
++        return this._aligned;
++    }
++
++    /**
++     * Method getAnnotation.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.Annotation at the
++     * given index
++     */
++    public jalview.binding.Annotation getAnnotation(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._annotationList.size()) {
++            throw new IndexOutOfBoundsException("getAnnotation: Index value '" + index + "' not in range [0.." + (this._annotationList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.Annotation) _annotationList.get(index);
++    }
++
++    /**
++     * Method getAnnotation.Returns the contents of the collection
++     * in an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.Annotation[] getAnnotation(
++    ) {
++        jalview.binding.Annotation[] array = new jalview.binding.Annotation[0];
++        return (jalview.binding.Annotation[]) this._annotationList.toArray(array);
++    }
++
++    /**
++     * Method getAnnotationCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getAnnotationCount(
++    ) {
++        return this._annotationList.size();
++    }
++
++    /**
++     * Returns the value of field 'gapChar'.
++     * 
++     * @return the value of field 'GapChar'.
++     */
++    public java.lang.String getGapChar(
++    ) {
++        return this._gapChar;
++    }
++
++    /**
++     * Method getSequence.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the jalview.binding.Sequence at the
++     * given index
++     */
++    public jalview.binding.Sequence getSequence(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._sequenceList.size()) {
++            throw new IndexOutOfBoundsException("getSequence: Index value '" + index + "' not in range [0.." + (this._sequenceList.size() - 1) + "]");
++        }
++        
++        return (jalview.binding.Sequence) _sequenceList.get(index);
++    }
++
++    /**
++     * Method getSequence.Returns the contents of the collection in
++     * an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public jalview.binding.Sequence[] getSequence(
++    ) {
++        jalview.binding.Sequence[] array = new jalview.binding.Sequence[0];
++        return (jalview.binding.Sequence[]) this._sequenceList.toArray(array);
++    }
++
++    /**
++     * Method getSequenceCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getSequenceCount(
++    ) {
++        return this._sequenceList.size();
++    }
++
++    /**
++     * Method hasAligned.
++     * 
++     * @return true if at least one Aligned has been added
++     */
++    public boolean hasAligned(
++    ) {
++        return this._has_aligned;
++    }
++
++    /**
++     * Returns the value of field 'aligned'.
++     * 
++     * @return the value of field 'Aligned'.
++     */
++    public boolean isAligned(
++    ) {
++        return this._aligned;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     */
++    public void removeAllAnnotation(
++    ) {
++        this._annotationList.clear();
++    }
++
++    /**
++     */
++    public void removeAllSequence(
++    ) {
++        this._sequenceList.clear();
++    }
++
++    /**
++     * Method removeAnnotation.
++     * 
++     * @param vAnnotation
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeAnnotation(
++            final jalview.binding.Annotation vAnnotation) {
++        boolean removed = _annotationList.remove(vAnnotation);
++        return removed;
++    }
++
++    /**
++     * Method removeAnnotationAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.Annotation removeAnnotationAt(
++            final int index) {
++        java.lang.Object obj = this._annotationList.remove(index);
++        return (jalview.binding.Annotation) obj;
++    }
++
++    /**
++     * Method removeSequence.
++     * 
++     * @param vSequence
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeSequence(
++            final jalview.binding.Sequence vSequence) {
++        boolean removed = _sequenceList.remove(vSequence);
++        return removed;
++    }
++
++    /**
++     * Method removeSequenceAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public jalview.binding.Sequence removeSequenceAt(
++            final int index) {
++        java.lang.Object obj = this._sequenceList.remove(index);
++        return (jalview.binding.Sequence) obj;
++    }
++
++    /**
++     * Sets the value of field 'aligned'.
++     * 
++     * @param aligned the value of field 'aligned'.
++     */
++    public void setAligned(
++            final boolean aligned) {
++        this._aligned = aligned;
++        this._has_aligned = true;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vAnnotation
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setAnnotation(
++            final int index,
++            final jalview.binding.Annotation vAnnotation)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._annotationList.size()) {
++            throw new IndexOutOfBoundsException("setAnnotation: Index value '" + index + "' not in range [0.." + (this._annotationList.size() - 1) + "]");
++        }
++        
++        this._annotationList.set(index, vAnnotation);
++    }
++
++    /**
++     * 
++     * 
++     * @param vAnnotationArray
++     */
++    public void setAnnotation(
++            final jalview.binding.Annotation[] vAnnotationArray) {
++        //-- copy array
++        _annotationList.clear();
++        
++        for (int i = 0; i < vAnnotationArray.length; i++) {
++                this._annotationList.add(vAnnotationArray[i]);
++        }
++    }
++
++    /**
++     * Sets the value of field 'gapChar'.
++     * 
++     * @param gapChar the value of field 'gapChar'.
++     */
++    public void setGapChar(
++            final java.lang.String gapChar) {
++        this._gapChar = gapChar;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vSequence
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setSequence(
++            final int index,
++            final jalview.binding.Sequence vSequence)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._sequenceList.size()) {
++            throw new IndexOutOfBoundsException("setSequence: Index value '" + index + "' not in range [0.." + (this._sequenceList.size() - 1) + "]");
++        }
++        
++        this._sequenceList.set(index, vSequence);
++    }
++
++    /**
++     * 
++     * 
++     * @param vSequenceArray
++     */
++    public void setSequence(
++            final jalview.binding.Sequence[] vSequenceArray) {
++        //-- copy array
++        _sequenceList.clear();
++        
++        for (int i = 0; i < vSequenceArray.length; i++) {
++                this._sequenceList.add(vSequenceArray[i]);
++        }
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.SequenceSet
++     */
++    public static jalview.binding.SequenceSet unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.SequenceSet) Unmarshaller.unmarshal(jalview.binding.SequenceSet.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,188 -32,188 +19,176 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class SequenceType implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _id.
--   */
--  private java.lang.String _id;
--
--  /**
--   * Field _sequence.
--   */
--  private java.lang.String _sequence;
--
--  /**
--   * Field _name.
--   */
--  private java.lang.String _name;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public SequenceType()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * Returns the value of field 'id'.
--   * 
--   * @return the value of field 'Id'.
--   */
--  public java.lang.String getId()
--  {
--    return this._id;
--  }
--
--  /**
--   * Returns the value of field 'name'.
--   * 
--   * @return the value of field 'Name'.
--   */
--  public java.lang.String getName()
--  {
--    return this._name;
--  }
--
--  /**
--   * Returns the value of field 'sequence'.
--   * 
--   * @return the value of field 'Sequence'.
--   */
--  public java.lang.String getSequence()
--  {
--    return this._sequence;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++public class SequenceType implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _id.
++     */
++    private java.lang.String _id;
++
++    /**
++     * Field _sequence.
++     */
++    private java.lang.String _sequence;
++
++    /**
++     * Field _name.
++     */
++    private java.lang.String _name;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public SequenceType() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * Returns the value of field 'id'.
++     * 
++     * @return the value of field 'Id'.
++     */
++    public java.lang.String getId(
++    ) {
++        return this._id;
++    }
++
++    /**
++     * Returns the value of field 'name'.
++     * 
++     * @return the value of field 'Name'.
++     */
++    public java.lang.String getName(
++    ) {
++        return this._name;
++    }
++
++    /**
++     * Returns the value of field 'sequence'.
++     * 
++     * @return the value of field 'Sequence'.
++     */
++    public java.lang.String getSequence(
++    ) {
++        return this._sequence;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'id'.
++     * 
++     * @param id the value of field 'id'.
++     */
++    public void setId(
++            final java.lang.String id) {
++        this._id = id;
++    }
++
++    /**
++     * Sets the value of field 'name'.
++     * 
++     * @param name the value of field 'name'.
++     */
++    public void setName(
++            final java.lang.String name) {
++        this._name = name;
++    }
++
++    /**
++     * Sets the value of field 'sequence'.
++     * 
++     * @param sequence the value of field 'sequence'.
++     */
++    public void setSequence(
++            final java.lang.String sequence) {
++        this._sequence = sequence;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.SequenceType
++     */
++    public static jalview.binding.SequenceType unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.SequenceType) Unmarshaller.unmarshal(jalview.binding.SequenceType.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'id'.
--   * 
--   * @param id
--   *          the value of field 'id'.
--   */
--  public void setId(final java.lang.String id)
--  {
--    this._id = id;
--  }
--
--  /**
--   * Sets the value of field 'name'.
--   * 
--   * @param name
--   *          the value of field 'name'.
--   */
--  public void setName(final java.lang.String name)
--  {
--    this._name = name;
--  }
--
--  /**
--   * Sets the value of field 'sequence'.
--   * 
--   * @param sequence
--   *          the value of field 'sequence'.
--   */
--  public void setSequence(final java.lang.String sequence)
--  {
--    this._sequence = sequence;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.SequenceType
--   */
--  public static jalview.binding.SequenceType unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.SequenceType) Unmarshaller.unmarshal(
--            jalview.binding.SequenceType.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,244 -32,244 +19,232 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class Setting implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _type.
--   */
--  private java.lang.String _type;
--
--  /**
--   * Field _colour.
--   */
--  private int _colour;
--
--  /**
--   * keeps track of state for field: _colour
--   */
--  private boolean _has_colour;
--
--  /**
--   * Field _display.
--   */
--  private boolean _display;
--
--  /**
--   * keeps track of state for field: _display
--   */
--  private boolean _has_display;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public Setting()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
++public class Setting implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _type.
++     */
++    private java.lang.String _type;
++
++    /**
++     * Field _colour.
++     */
++    private int _colour;
++
++    /**
++     * keeps track of state for field: _colour
++     */
++    private boolean _has_colour;
++
++    /**
++     * Field _display.
++     */
++    private boolean _display;
++
++    /**
++     * keeps track of state for field: _display
++     */
++    private boolean _has_display;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Setting() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
       */
--  public void deleteColour()
--  {
--    this._has_colour = false;
--  }
++    public void deleteColour(
++    ) {
++        this._has_colour= false;
++    }
++
++    /**
++     */
++    public void deleteDisplay(
++    ) {
++        this._has_display= false;
++    }
++
++    /**
++     * Returns the value of field 'colour'.
++     * 
++     * @return the value of field 'Colour'.
++     */
++    public int getColour(
++    ) {
++        return this._colour;
++    }
++
++    /**
++     * Returns the value of field 'display'.
++     * 
++     * @return the value of field 'Display'.
++     */
++    public boolean getDisplay(
++    ) {
++        return this._display;
++    }
++
++    /**
++     * Returns the value of field 'type'.
++     * 
++     * @return the value of field 'Type'.
++     */
++    public java.lang.String getType(
++    ) {
++        return this._type;
++    }
++
++    /**
++     * Method hasColour.
++     * 
++     * @return true if at least one Colour has been added
++     */
++    public boolean hasColour(
++    ) {
++        return this._has_colour;
++    }
++
++    /**
++     * Method hasDisplay.
++     * 
++     * @return true if at least one Display has been added
++     */
++    public boolean hasDisplay(
++    ) {
++        return this._has_display;
++    }
++
++    /**
++     * Returns the value of field 'display'.
++     * 
++     * @return the value of field 'Display'.
++     */
++    public boolean isDisplay(
++    ) {
++        return this._display;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'colour'.
++     * 
++     * @param colour the value of field 'colour'.
++     */
++    public void setColour(
++            final int colour) {
++        this._colour = colour;
++        this._has_colour = true;
++    }
++
++    /**
++     * Sets the value of field 'display'.
++     * 
++     * @param display the value of field 'display'.
++     */
++    public void setDisplay(
++            final boolean display) {
++        this._display = display;
++        this._has_display = true;
++    }
++
++    /**
++     * Sets the value of field 'type'.
++     * 
++     * @param type the value of field 'type'.
++     */
++    public void setType(
++            final java.lang.String type) {
++        this._type = type;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Setting
++     */
++    public static jalview.binding.Setting unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Setting) Unmarshaller.unmarshal(jalview.binding.Setting.class, reader);
++    }
  
--  /**
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
       */
--  public void deleteDisplay()
--  {
--    this._has_display = false;
--  }
--
--  /**
--   * Returns the value of field 'colour'.
--   * 
--   * @return the value of field 'Colour'.
--   */
--  public int getColour()
--  {
--    return this._colour;
--  }
--
--  /**
--   * Returns the value of field 'display'.
--   * 
--   * @return the value of field 'Display'.
--   */
--  public boolean getDisplay()
--  {
--    return this._display;
--  }
--
--  /**
--   * Returns the value of field 'type'.
--   * 
--   * @return the value of field 'Type'.
--   */
--  public java.lang.String getType()
--  {
--    return this._type;
--  }
--
--  /**
--   * Method hasColour.
--   * 
--   * @return true if at least one Colour has been added
--   */
--  public boolean hasColour()
--  {
--    return this._has_colour;
--  }
--
--  /**
--   * Method hasDisplay.
--   * 
--   * @return true if at least one Display has been added
--   */
--  public boolean hasDisplay()
--  {
--    return this._has_display;
--  }
--
--  /**
--   * Returns the value of field 'display'.
--   * 
--   * @return the value of field 'Display'.
--   */
--  public boolean isDisplay()
--  {
--    return this._display;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'colour'.
--   * 
--   * @param colour
--   *          the value of field 'colour'.
--   */
--  public void setColour(final int colour)
--  {
--    this._colour = colour;
--    this._has_colour = true;
--  }
--
--  /**
--   * Sets the value of field 'display'.
--   * 
--   * @param display
--   *          the value of field 'display'.
--   */
--  public void setDisplay(final boolean display)
--  {
--    this._display = display;
--    this._has_display = true;
--  }
--
--  /**
--   * Sets the value of field 'type'.
--   * 
--   * @param type
--   *          the value of field 'type'.
--   */
--  public void setType(final java.lang.String type)
--  {
--    this._type = type;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Setting
--   */
--  public static jalview.binding.Setting unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Setting) Unmarshaller.unmarshal(
--            jalview.binding.Setting.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,825 -32,825 +19,802 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class Tree implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _width.
--   */
--  private int _width;
--
--  /**
--   * keeps track of state for field: _width
--   */
--  private boolean _has_width;
--
--  /**
--   * Field _height.
--   */
--  private int _height;
--
--  /**
--   * keeps track of state for field: _height
--   */
--  private boolean _has_height;
--
--  /**
--   * Field _xpos.
--   */
--  private int _xpos;
--
--  /**
--   * keeps track of state for field: _xpos
--   */
--  private boolean _has_xpos;
--
--  /**
--   * Field _ypos.
--   */
--  private int _ypos;
--
--  /**
--   * keeps track of state for field: _ypos
--   */
--  private boolean _has_ypos;
--
--  /**
--   * Field _fontName.
--   */
--  private java.lang.String _fontName;
--
--  /**
--   * Field _fontSize.
--   */
--  private int _fontSize;
--
--  /**
--   * keeps track of state for field: _fontSize
--   */
--  private boolean _has_fontSize;
--
--  /**
--   * Field _fontStyle.
--   */
--  private int _fontStyle;
--
--  /**
--   * keeps track of state for field: _fontStyle
--   */
--  private boolean _has_fontStyle;
--
--  /**
--   * Field _threshold.
--   */
--  private float _threshold;
--
--  /**
--   * keeps track of state for field: _threshold
--   */
--  private boolean _has_threshold;
--
--  /**
--   * Field _showBootstrap.
--   */
--  private boolean _showBootstrap;
--
--  /**
--   * keeps track of state for field: _showBootstrap
--   */
--  private boolean _has_showBootstrap;
--
--  /**
--   * Field _showDistances.
--   */
--  private boolean _showDistances;
--
--  /**
--   * keeps track of state for field: _showDistances
--   */
--  private boolean _has_showDistances;
--
--  /**
--   * Field _markUnlinked.
--   */
--  private boolean _markUnlinked;
--
--  /**
--   * keeps track of state for field: _markUnlinked
--   */
--  private boolean _has_markUnlinked;
--
--  /**
--   * Field _fitToWindow.
--   */
--  private boolean _fitToWindow;
--
--  /**
--   * keeps track of state for field: _fitToWindow
--   */
--  private boolean _has_fitToWindow;
--
--  /**
--   * Field _currentTree.
--   */
--  private boolean _currentTree;
--
--  /**
--   * keeps track of state for field: _currentTree
--   */
--  private boolean _has_currentTree;
--
--  /**
--   * Field _title.
--   */
--  private java.lang.String _title;
--
--  /**
--   * Field _newick.
--   */
--  private java.lang.String _newick;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public Tree()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--     */
--  public void deleteCurrentTree()
--  {
--    this._has_currentTree = false;
--  }
--
--  /**
--     */
--  public void deleteFitToWindow()
--  {
--    this._has_fitToWindow = false;
--  }
--
--  /**
--     */
--  public void deleteFontSize()
--  {
--    this._has_fontSize = false;
--  }
--
--  /**
--     */
--  public void deleteFontStyle()
--  {
--    this._has_fontStyle = false;
--  }
--
--  /**
--     */
--  public void deleteHeight()
--  {
--    this._has_height = false;
--  }
--
--  /**
--     */
--  public void deleteMarkUnlinked()
--  {
--    this._has_markUnlinked = false;
--  }
--
--  /**
--     */
--  public void deleteShowBootstrap()
--  {
--    this._has_showBootstrap = false;
--  }
--
--  /**
--     */
--  public void deleteShowDistances()
--  {
--    this._has_showDistances = false;
--  }
--
--  /**
--     */
--  public void deleteThreshold()
--  {
--    this._has_threshold = false;
--  }
--
--  /**
--     */
--  public void deleteWidth()
--  {
--    this._has_width = false;
--  }
--
--  /**
--     */
--  public void deleteXpos()
--  {
--    this._has_xpos = false;
--  }
--
--  /**
--     */
--  public void deleteYpos()
--  {
--    this._has_ypos = false;
--  }
--
--  /**
--   * Returns the value of field 'currentTree'.
--   * 
--   * @return the value of field 'CurrentTree'.
--   */
--  public boolean getCurrentTree()
--  {
--    return this._currentTree;
--  }
--
--  /**
--   * Returns the value of field 'fitToWindow'.
--   * 
--   * @return the value of field 'FitToWindow'.
--   */
--  public boolean getFitToWindow()
--  {
--    return this._fitToWindow;
--  }
--
--  /**
--   * Returns the value of field 'fontName'.
--   * 
--   * @return the value of field 'FontName'.
--   */
--  public java.lang.String getFontName()
--  {
--    return this._fontName;
--  }
--
--  /**
--   * Returns the value of field 'fontSize'.
--   * 
--   * @return the value of field 'FontSize'.
--   */
--  public int getFontSize()
--  {
--    return this._fontSize;
--  }
--
--  /**
--   * Returns the value of field 'fontStyle'.
--   * 
--   * @return the value of field 'FontStyle'.
--   */
--  public int getFontStyle()
--  {
--    return this._fontStyle;
--  }
--
--  /**
--   * Returns the value of field 'height'.
--   * 
--   * @return the value of field 'Height'.
--   */
--  public int getHeight()
--  {
--    return this._height;
--  }
--
--  /**
--   * Returns the value of field 'markUnlinked'.
--   * 
--   * @return the value of field 'MarkUnlinked'.
--   */
--  public boolean getMarkUnlinked()
--  {
--    return this._markUnlinked;
--  }
--
--  /**
--   * Returns the value of field 'newick'.
--   * 
--   * @return the value of field 'Newick'.
--   */
--  public java.lang.String getNewick()
--  {
--    return this._newick;
--  }
--
--  /**
--   * Returns the value of field 'showBootstrap'.
--   * 
--   * @return the value of field 'ShowBootstrap'.
--   */
--  public boolean getShowBootstrap()
--  {
--    return this._showBootstrap;
--  }
--
--  /**
--   * Returns the value of field 'showDistances'.
--   * 
--   * @return the value of field 'ShowDistances'.
--   */
--  public boolean getShowDistances()
--  {
--    return this._showDistances;
--  }
--
--  /**
--   * Returns the value of field 'threshold'.
--   * 
--   * @return the value of field 'Threshold'.
--   */
--  public float getThreshold()
--  {
--    return this._threshold;
--  }
--
--  /**
--   * Returns the value of field 'title'.
--   * 
--   * @return the value of field 'Title'.
--   */
--  public java.lang.String getTitle()
--  {
--    return this._title;
--  }
--
--  /**
--   * Returns the value of field 'width'.
--   * 
--   * @return the value of field 'Width'.
--   */
--  public int getWidth()
--  {
--    return this._width;
--  }
--
--  /**
--   * Returns the value of field 'xpos'.
--   * 
--   * @return the value of field 'Xpos'.
--   */
--  public int getXpos()
--  {
--    return this._xpos;
--  }
--
--  /**
--   * Returns the value of field 'ypos'.
--   * 
--   * @return the value of field 'Ypos'.
--   */
--  public int getYpos()
--  {
--    return this._ypos;
--  }
--
--  /**
--   * Method hasCurrentTree.
--   * 
--   * @return true if at least one CurrentTree has been added
--   */
--  public boolean hasCurrentTree()
--  {
--    return this._has_currentTree;
--  }
--
--  /**
--   * Method hasFitToWindow.
--   * 
--   * @return true if at least one FitToWindow has been added
--   */
--  public boolean hasFitToWindow()
--  {
--    return this._has_fitToWindow;
--  }
--
--  /**
--   * Method hasFontSize.
--   * 
--   * @return true if at least one FontSize has been added
--   */
--  public boolean hasFontSize()
--  {
--    return this._has_fontSize;
--  }
--
--  /**
--   * Method hasFontStyle.
--   * 
--   * @return true if at least one FontStyle has been added
--   */
--  public boolean hasFontStyle()
--  {
--    return this._has_fontStyle;
--  }
--
--  /**
--   * Method hasHeight.
--   * 
--   * @return true if at least one Height has been added
--   */
--  public boolean hasHeight()
--  {
--    return this._has_height;
--  }
--
--  /**
--   * Method hasMarkUnlinked.
--   * 
--   * @return true if at least one MarkUnlinked has been added
--   */
--  public boolean hasMarkUnlinked()
--  {
--    return this._has_markUnlinked;
--  }
--
--  /**
--   * Method hasShowBootstrap.
--   * 
--   * @return true if at least one ShowBootstrap has been added
--   */
--  public boolean hasShowBootstrap()
--  {
--    return this._has_showBootstrap;
--  }
--
--  /**
--   * Method hasShowDistances.
--   * 
--   * @return true if at least one ShowDistances has been added
--   */
--  public boolean hasShowDistances()
--  {
--    return this._has_showDistances;
--  }
--
--  /**
--   * Method hasThreshold.
--   * 
--   * @return true if at least one Threshold has been added
--   */
--  public boolean hasThreshold()
--  {
--    return this._has_threshold;
--  }
--
--  /**
--   * Method hasWidth.
--   * 
--   * @return true if at least one Width has been added
--   */
--  public boolean hasWidth()
--  {
--    return this._has_width;
--  }
--
--  /**
--   * Method hasXpos.
--   * 
--   * @return true if at least one Xpos has been added
--   */
--  public boolean hasXpos()
--  {
--    return this._has_xpos;
--  }
--
--  /**
--   * Method hasYpos.
--   * 
--   * @return true if at least one Ypos has been added
--   */
--  public boolean hasYpos()
--  {
--    return this._has_ypos;
--  }
--
--  /**
--   * Returns the value of field 'currentTree'.
--   * 
--   * @return the value of field 'CurrentTree'.
--   */
--  public boolean isCurrentTree()
--  {
--    return this._currentTree;
--  }
--
--  /**
--   * Returns the value of field 'fitToWindow'.
--   * 
--   * @return the value of field 'FitToWindow'.
--   */
--  public boolean isFitToWindow()
--  {
--    return this._fitToWindow;
--  }
--
--  /**
--   * Returns the value of field 'markUnlinked'.
--   * 
--   * @return the value of field 'MarkUnlinked'.
--   */
--  public boolean isMarkUnlinked()
--  {
--    return this._markUnlinked;
--  }
--
--  /**
--   * Returns the value of field 'showBootstrap'.
--   * 
--   * @return the value of field 'ShowBootstrap'.
--   */
--  public boolean isShowBootstrap()
--  {
--    return this._showBootstrap;
--  }
--
--  /**
--   * Returns the value of field 'showDistances'.
--   * 
--   * @return the value of field 'ShowDistances'.
--   */
--  public boolean isShowDistances()
--  {
--    return this._showDistances;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
--    }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'currentTree'.
--   * 
--   * @param currentTree
--   *          the value of field 'currentTree'.
--   */
--  public void setCurrentTree(final boolean currentTree)
--  {
--    this._currentTree = currentTree;
--    this._has_currentTree = true;
--  }
--
--  /**
--   * Sets the value of field 'fitToWindow'.
--   * 
--   * @param fitToWindow
--   *          the value of field 'fitToWindow'.
--   */
--  public void setFitToWindow(final boolean fitToWindow)
--  {
--    this._fitToWindow = fitToWindow;
--    this._has_fitToWindow = true;
--  }
--
--  /**
--   * Sets the value of field 'fontName'.
--   * 
--   * @param fontName
--   *          the value of field 'fontName'.
--   */
--  public void setFontName(final java.lang.String fontName)
--  {
--    this._fontName = fontName;
--  }
--
--  /**
--   * Sets the value of field 'fontSize'.
--   * 
--   * @param fontSize
--   *          the value of field 'fontSize'.
--   */
--  public void setFontSize(final int fontSize)
--  {
--    this._fontSize = fontSize;
--    this._has_fontSize = true;
--  }
--
--  /**
--   * Sets the value of field 'fontStyle'.
--   * 
--   * @param fontStyle
--   *          the value of field 'fontStyle'.
--   */
--  public void setFontStyle(final int fontStyle)
--  {
--    this._fontStyle = fontStyle;
--    this._has_fontStyle = true;
--  }
--
--  /**
--   * Sets the value of field 'height'.
--   * 
--   * @param height
--   *          the value of field 'height'.
--   */
--  public void setHeight(final int height)
--  {
--    this._height = height;
--    this._has_height = true;
--  }
--
--  /**
--   * Sets the value of field 'markUnlinked'.
--   * 
--   * @param markUnlinked
--   *          the value of field 'markUnlinked'.
--   */
--  public void setMarkUnlinked(final boolean markUnlinked)
--  {
--    this._markUnlinked = markUnlinked;
--    this._has_markUnlinked = true;
--  }
--
--  /**
--   * Sets the value of field 'newick'.
--   * 
--   * @param newick
--   *          the value of field 'newick'.
--   */
--  public void setNewick(final java.lang.String newick)
--  {
--    this._newick = newick;
--  }
--
--  /**
--   * Sets the value of field 'showBootstrap'.
--   * 
--   * @param showBootstrap
--   *          the value of field 'showBootstrap'.
--   */
--  public void setShowBootstrap(final boolean showBootstrap)
--  {
--    this._showBootstrap = showBootstrap;
--    this._has_showBootstrap = true;
--  }
--
--  /**
--   * Sets the value of field 'showDistances'.
--   * 
--   * @param showDistances
--   *          the value of field 'showDistances'.
--   */
--  public void setShowDistances(final boolean showDistances)
--  {
--    this._showDistances = showDistances;
--    this._has_showDistances = true;
--  }
--
--  /**
--   * Sets the value of field 'threshold'.
--   * 
--   * @param threshold
--   *          the value of field 'threshold'.
--   */
--  public void setThreshold(final float threshold)
--  {
--    this._threshold = threshold;
--    this._has_threshold = true;
--  }
--
--  /**
--   * Sets the value of field 'title'.
--   * 
--   * @param title
--   *          the value of field 'title'.
--   */
--  public void setTitle(final java.lang.String title)
--  {
--    this._title = title;
--  }
--
--  /**
--   * Sets the value of field 'width'.
--   * 
--   * @param width
--   *          the value of field 'width'.
--   */
--  public void setWidth(final int width)
--  {
--    this._width = width;
--    this._has_width = true;
--  }
--
--  /**
--   * Sets the value of field 'xpos'.
--   * 
--   * @param xpos
--   *          the value of field 'xpos'.
--   */
--  public void setXpos(final int xpos)
--  {
--    this._xpos = xpos;
--    this._has_xpos = true;
--  }
--
--  /**
--   * Sets the value of field 'ypos'.
--   * 
--   * @param ypos
--   *          the value of field 'ypos'.
--   */
--  public void setYpos(final int ypos)
--  {
--    this._ypos = ypos;
--    this._has_ypos = true;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Tree
--   */
--  public static jalview.binding.Tree unmarshal(final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Tree) Unmarshaller.unmarshal(
--            jalview.binding.Tree.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++public class Tree implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _width.
++     */
++    private int _width;
++
++    /**
++     * keeps track of state for field: _width
++     */
++    private boolean _has_width;
++
++    /**
++     * Field _height.
++     */
++    private int _height;
++
++    /**
++     * keeps track of state for field: _height
++     */
++    private boolean _has_height;
++
++    /**
++     * Field _xpos.
++     */
++    private int _xpos;
++
++    /**
++     * keeps track of state for field: _xpos
++     */
++    private boolean _has_xpos;
++
++    /**
++     * Field _ypos.
++     */
++    private int _ypos;
++
++    /**
++     * keeps track of state for field: _ypos
++     */
++    private boolean _has_ypos;
++
++    /**
++     * Field _fontName.
++     */
++    private java.lang.String _fontName;
++
++    /**
++     * Field _fontSize.
++     */
++    private int _fontSize;
++
++    /**
++     * keeps track of state for field: _fontSize
++     */
++    private boolean _has_fontSize;
++
++    /**
++     * Field _fontStyle.
++     */
++    private int _fontStyle;
++
++    /**
++     * keeps track of state for field: _fontStyle
++     */
++    private boolean _has_fontStyle;
++
++    /**
++     * Field _threshold.
++     */
++    private float _threshold;
++
++    /**
++     * keeps track of state for field: _threshold
++     */
++    private boolean _has_threshold;
++
++    /**
++     * Field _showBootstrap.
++     */
++    private boolean _showBootstrap;
++
++    /**
++     * keeps track of state for field: _showBootstrap
++     */
++    private boolean _has_showBootstrap;
++
++    /**
++     * Field _showDistances.
++     */
++    private boolean _showDistances;
++
++    /**
++     * keeps track of state for field: _showDistances
++     */
++    private boolean _has_showDistances;
++
++    /**
++     * Field _markUnlinked.
++     */
++    private boolean _markUnlinked;
++
++    /**
++     * keeps track of state for field: _markUnlinked
++     */
++    private boolean _has_markUnlinked;
++
++    /**
++     * Field _fitToWindow.
++     */
++    private boolean _fitToWindow;
++
++    /**
++     * keeps track of state for field: _fitToWindow
++     */
++    private boolean _has_fitToWindow;
++
++    /**
++     * Field _currentTree.
++     */
++    private boolean _currentTree;
++
++    /**
++     * keeps track of state for field: _currentTree
++     */
++    private boolean _has_currentTree;
++
++    /**
++     * Field _title.
++     */
++    private java.lang.String _title;
++
++    /**
++     * Field _newick.
++     */
++    private java.lang.String _newick;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Tree() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     */
++    public void deleteCurrentTree(
++    ) {
++        this._has_currentTree= false;
++    }
++
++    /**
++     */
++    public void deleteFitToWindow(
++    ) {
++        this._has_fitToWindow= false;
++    }
++
++    /**
++     */
++    public void deleteFontSize(
++    ) {
++        this._has_fontSize= false;
++    }
++
++    /**
++     */
++    public void deleteFontStyle(
++    ) {
++        this._has_fontStyle= false;
++    }
++
++    /**
++     */
++    public void deleteHeight(
++    ) {
++        this._has_height= false;
++    }
++
++    /**
++     */
++    public void deleteMarkUnlinked(
++    ) {
++        this._has_markUnlinked= false;
++    }
++
++    /**
++     */
++    public void deleteShowBootstrap(
++    ) {
++        this._has_showBootstrap= false;
++    }
++
++    /**
++     */
++    public void deleteShowDistances(
++    ) {
++        this._has_showDistances= false;
++    }
++
++    /**
++     */
++    public void deleteThreshold(
++    ) {
++        this._has_threshold= false;
++    }
++
++    /**
++     */
++    public void deleteWidth(
++    ) {
++        this._has_width= false;
++    }
++
++    /**
++     */
++    public void deleteXpos(
++    ) {
++        this._has_xpos= false;
++    }
++
++    /**
++     */
++    public void deleteYpos(
++    ) {
++        this._has_ypos= false;
++    }
++
++    /**
++     * Returns the value of field 'currentTree'.
++     * 
++     * @return the value of field 'CurrentTree'.
++     */
++    public boolean getCurrentTree(
++    ) {
++        return this._currentTree;
++    }
++
++    /**
++     * Returns the value of field 'fitToWindow'.
++     * 
++     * @return the value of field 'FitToWindow'.
++     */
++    public boolean getFitToWindow(
++    ) {
++        return this._fitToWindow;
++    }
++
++    /**
++     * Returns the value of field 'fontName'.
++     * 
++     * @return the value of field 'FontName'.
++     */
++    public java.lang.String getFontName(
++    ) {
++        return this._fontName;
++    }
++
++    /**
++     * Returns the value of field 'fontSize'.
++     * 
++     * @return the value of field 'FontSize'.
++     */
++    public int getFontSize(
++    ) {
++        return this._fontSize;
++    }
++
++    /**
++     * Returns the value of field 'fontStyle'.
++     * 
++     * @return the value of field 'FontStyle'.
++     */
++    public int getFontStyle(
++    ) {
++        return this._fontStyle;
++    }
++
++    /**
++     * Returns the value of field 'height'.
++     * 
++     * @return the value of field 'Height'.
++     */
++    public int getHeight(
++    ) {
++        return this._height;
++    }
++
++    /**
++     * Returns the value of field 'markUnlinked'.
++     * 
++     * @return the value of field 'MarkUnlinked'.
++     */
++    public boolean getMarkUnlinked(
++    ) {
++        return this._markUnlinked;
++    }
++
++    /**
++     * Returns the value of field 'newick'.
++     * 
++     * @return the value of field 'Newick'.
++     */
++    public java.lang.String getNewick(
++    ) {
++        return this._newick;
++    }
++
++    /**
++     * Returns the value of field 'showBootstrap'.
++     * 
++     * @return the value of field 'ShowBootstrap'.
++     */
++    public boolean getShowBootstrap(
++    ) {
++        return this._showBootstrap;
++    }
++
++    /**
++     * Returns the value of field 'showDistances'.
++     * 
++     * @return the value of field 'ShowDistances'.
++     */
++    public boolean getShowDistances(
++    ) {
++        return this._showDistances;
++    }
++
++    /**
++     * Returns the value of field 'threshold'.
++     * 
++     * @return the value of field 'Threshold'.
++     */
++    public float getThreshold(
++    ) {
++        return this._threshold;
++    }
++
++    /**
++     * Returns the value of field 'title'.
++     * 
++     * @return the value of field 'Title'.
++     */
++    public java.lang.String getTitle(
++    ) {
++        return this._title;
++    }
++
++    /**
++     * Returns the value of field 'width'.
++     * 
++     * @return the value of field 'Width'.
++     */
++    public int getWidth(
++    ) {
++        return this._width;
++    }
++
++    /**
++     * Returns the value of field 'xpos'.
++     * 
++     * @return the value of field 'Xpos'.
++     */
++    public int getXpos(
++    ) {
++        return this._xpos;
++    }
++
++    /**
++     * Returns the value of field 'ypos'.
++     * 
++     * @return the value of field 'Ypos'.
++     */
++    public int getYpos(
++    ) {
++        return this._ypos;
++    }
++
++    /**
++     * Method hasCurrentTree.
++     * 
++     * @return true if at least one CurrentTree has been added
++     */
++    public boolean hasCurrentTree(
++    ) {
++        return this._has_currentTree;
++    }
++
++    /**
++     * Method hasFitToWindow.
++     * 
++     * @return true if at least one FitToWindow has been added
++     */
++    public boolean hasFitToWindow(
++    ) {
++        return this._has_fitToWindow;
++    }
++
++    /**
++     * Method hasFontSize.
++     * 
++     * @return true if at least one FontSize has been added
++     */
++    public boolean hasFontSize(
++    ) {
++        return this._has_fontSize;
++    }
++
++    /**
++     * Method hasFontStyle.
++     * 
++     * @return true if at least one FontStyle has been added
++     */
++    public boolean hasFontStyle(
++    ) {
++        return this._has_fontStyle;
++    }
++
++    /**
++     * Method hasHeight.
++     * 
++     * @return true if at least one Height has been added
++     */
++    public boolean hasHeight(
++    ) {
++        return this._has_height;
++    }
++
++    /**
++     * Method hasMarkUnlinked.
++     * 
++     * @return true if at least one MarkUnlinked has been added
++     */
++    public boolean hasMarkUnlinked(
++    ) {
++        return this._has_markUnlinked;
++    }
++
++    /**
++     * Method hasShowBootstrap.
++     * 
++     * @return true if at least one ShowBootstrap has been added
++     */
++    public boolean hasShowBootstrap(
++    ) {
++        return this._has_showBootstrap;
++    }
++
++    /**
++     * Method hasShowDistances.
++     * 
++     * @return true if at least one ShowDistances has been added
++     */
++    public boolean hasShowDistances(
++    ) {
++        return this._has_showDistances;
++    }
++
++    /**
++     * Method hasThreshold.
++     * 
++     * @return true if at least one Threshold has been added
++     */
++    public boolean hasThreshold(
++    ) {
++        return this._has_threshold;
++    }
++
++    /**
++     * Method hasWidth.
++     * 
++     * @return true if at least one Width has been added
++     */
++    public boolean hasWidth(
++    ) {
++        return this._has_width;
++    }
++
++    /**
++     * Method hasXpos.
++     * 
++     * @return true if at least one Xpos has been added
++     */
++    public boolean hasXpos(
++    ) {
++        return this._has_xpos;
++    }
++
++    /**
++     * Method hasYpos.
++     * 
++     * @return true if at least one Ypos has been added
++     */
++    public boolean hasYpos(
++    ) {
++        return this._has_ypos;
++    }
++
++    /**
++     * Returns the value of field 'currentTree'.
++     * 
++     * @return the value of field 'CurrentTree'.
++     */
++    public boolean isCurrentTree(
++    ) {
++        return this._currentTree;
++    }
++
++    /**
++     * Returns the value of field 'fitToWindow'.
++     * 
++     * @return the value of field 'FitToWindow'.
++     */
++    public boolean isFitToWindow(
++    ) {
++        return this._fitToWindow;
++    }
++
++    /**
++     * Returns the value of field 'markUnlinked'.
++     * 
++     * @return the value of field 'MarkUnlinked'.
++     */
++    public boolean isMarkUnlinked(
++    ) {
++        return this._markUnlinked;
++    }
++
++    /**
++     * Returns the value of field 'showBootstrap'.
++     * 
++     * @return the value of field 'ShowBootstrap'.
++     */
++    public boolean isShowBootstrap(
++    ) {
++        return this._showBootstrap;
++    }
++
++    /**
++     * Returns the value of field 'showDistances'.
++     * 
++     * @return the value of field 'ShowDistances'.
++     */
++    public boolean isShowDistances(
++    ) {
++        return this._showDistances;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'currentTree'.
++     * 
++     * @param currentTree the value of field 'currentTree'.
++     */
++    public void setCurrentTree(
++            final boolean currentTree) {
++        this._currentTree = currentTree;
++        this._has_currentTree = true;
++    }
++
++    /**
++     * Sets the value of field 'fitToWindow'.
++     * 
++     * @param fitToWindow the value of field 'fitToWindow'.
++     */
++    public void setFitToWindow(
++            final boolean fitToWindow) {
++        this._fitToWindow = fitToWindow;
++        this._has_fitToWindow = true;
++    }
++
++    /**
++     * Sets the value of field 'fontName'.
++     * 
++     * @param fontName the value of field 'fontName'.
++     */
++    public void setFontName(
++            final java.lang.String fontName) {
++        this._fontName = fontName;
++    }
++
++    /**
++     * Sets the value of field 'fontSize'.
++     * 
++     * @param fontSize the value of field 'fontSize'.
++     */
++    public void setFontSize(
++            final int fontSize) {
++        this._fontSize = fontSize;
++        this._has_fontSize = true;
++    }
++
++    /**
++     * Sets the value of field 'fontStyle'.
++     * 
++     * @param fontStyle the value of field 'fontStyle'.
++     */
++    public void setFontStyle(
++            final int fontStyle) {
++        this._fontStyle = fontStyle;
++        this._has_fontStyle = true;
++    }
++
++    /**
++     * Sets the value of field 'height'.
++     * 
++     * @param height the value of field 'height'.
++     */
++    public void setHeight(
++            final int height) {
++        this._height = height;
++        this._has_height = true;
++    }
++
++    /**
++     * Sets the value of field 'markUnlinked'.
++     * 
++     * @param markUnlinked the value of field 'markUnlinked'.
++     */
++    public void setMarkUnlinked(
++            final boolean markUnlinked) {
++        this._markUnlinked = markUnlinked;
++        this._has_markUnlinked = true;
++    }
++
++    /**
++     * Sets the value of field 'newick'.
++     * 
++     * @param newick the value of field 'newick'.
++     */
++    public void setNewick(
++            final java.lang.String newick) {
++        this._newick = newick;
++    }
++
++    /**
++     * Sets the value of field 'showBootstrap'.
++     * 
++     * @param showBootstrap the value of field 'showBootstrap'.
++     */
++    public void setShowBootstrap(
++            final boolean showBootstrap) {
++        this._showBootstrap = showBootstrap;
++        this._has_showBootstrap = true;
++    }
++
++    /**
++     * Sets the value of field 'showDistances'.
++     * 
++     * @param showDistances the value of field 'showDistances'.
++     */
++    public void setShowDistances(
++            final boolean showDistances) {
++        this._showDistances = showDistances;
++        this._has_showDistances = true;
++    }
++
++    /**
++     * Sets the value of field 'threshold'.
++     * 
++     * @param threshold the value of field 'threshold'.
++     */
++    public void setThreshold(
++            final float threshold) {
++        this._threshold = threshold;
++        this._has_threshold = true;
++    }
++
++    /**
++     * Sets the value of field 'title'.
++     * 
++     * @param title the value of field 'title'.
++     */
++    public void setTitle(
++            final java.lang.String title) {
++        this._title = title;
++    }
++
++    /**
++     * Sets the value of field 'width'.
++     * 
++     * @param width the value of field 'width'.
++     */
++    public void setWidth(
++            final int width) {
++        this._width = width;
++        this._has_width = true;
++    }
++
++    /**
++     * Sets the value of field 'xpos'.
++     * 
++     * @param xpos the value of field 'xpos'.
++     */
++    public void setXpos(
++            final int xpos) {
++        this._xpos = xpos;
++        this._has_xpos = true;
++    }
++
++    /**
++     * Sets the value of field 'ypos'.
++     * 
++     * @param ypos the value of field 'ypos'.
++     */
++    public void setYpos(
++            final int ypos) {
++        this._ypos = ypos;
++        this._has_ypos = true;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Tree
++     */
++    public static jalview.binding.Tree unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Tree) Unmarshaller.unmarshal(jalview.binding.Tree.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,107 -32,107 +19,98 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class UserColourScheme extends JalviewUserColours implements
--        java.io.Serializable
++public class UserColourScheme extends JalviewUserColours 
++implements java.io.Serializable
  {
  
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
  
--  public UserColourScheme()
--  {
--    super();
--  }
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public UserColourScheme() {
++        super();
++    }
++
  
--  // -----------/
--  // - Methods -/
--  // -----------/
++      //-----------/
++     //- Methods -/
++    //-----------/
  
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
      }
--    return true;
--  }
  
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
  
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
  
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.JalviewUserColours
--   */
--  public static jalview.binding.JalviewUserColours unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(
--            jalview.binding.UserColourScheme.class, reader);
--  }
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.JalviewUserColours
++     */
++    public static jalview.binding.JalviewUserColours unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(jalview.binding.UserColourScheme.class, reader);
++    }
  
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,163 -32,163 +19,151 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class UserColours implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _id.
--   */
--  private java.lang.String _id;
--
--  /**
--   * Field _userColourScheme.
--   */
--  private jalview.binding.UserColourScheme _userColourScheme;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public UserColours()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * Returns the value of field 'id'.
--   * 
--   * @return the value of field 'Id'.
--   */
--  public java.lang.String getId()
--  {
--    return this._id;
--  }
--
--  /**
--   * Returns the value of field 'userColourScheme'.
--   * 
--   * @return the value of field 'UserColourScheme'.
--   */
--  public jalview.binding.UserColourScheme getUserColourScheme()
--  {
--    return this._userColourScheme;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++public class UserColours implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _id.
++     */
++    private java.lang.String _id;
++
++    /**
++     * Field _userColourScheme.
++     */
++    private jalview.binding.UserColourScheme _userColourScheme;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public UserColours() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * Returns the value of field 'id'.
++     * 
++     * @return the value of field 'Id'.
++     */
++    public java.lang.String getId(
++    ) {
++        return this._id;
++    }
++
++    /**
++     * Returns the value of field 'userColourScheme'.
++     * 
++     * @return the value of field 'UserColourScheme'.
++     */
++    public jalview.binding.UserColourScheme getUserColourScheme(
++    ) {
++        return this._userColourScheme;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'id'.
++     * 
++     * @param id the value of field 'id'.
++     */
++    public void setId(
++            final java.lang.String id) {
++        this._id = id;
++    }
++
++    /**
++     * Sets the value of field 'userColourScheme'.
++     * 
++     * @param userColourScheme the value of field 'userColourScheme'
++     */
++    public void setUserColourScheme(
++            final jalview.binding.UserColourScheme userColourScheme) {
++        this._userColourScheme = userColourScheme;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.UserColours
++     */
++    public static jalview.binding.UserColours unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.UserColours) Unmarshaller.unmarshal(jalview.binding.UserColours.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
      }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'id'.
--   * 
--   * @param id
--   *          the value of field 'id'.
--   */
--  public void setId(final java.lang.String id)
--  {
--    this._id = id;
--  }
--
--  /**
--   * Sets the value of field 'userColourScheme'.
--   * 
--   * @param userColourScheme
--   *          the value of field 'userColourScheme'
--   */
--  public void setUserColourScheme(
--          final jalview.binding.UserColourScheme userColourScheme)
--  {
--    this._userColourScheme = userColourScheme;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.UserColours
--   */
--  public static jalview.binding.UserColours unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.UserColours) Unmarshaller.unmarshal(
--            jalview.binding.UserColours.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
  
  }
@@@ -1,31 -1,31 +1,16 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
--import jalview.util.MessageManager;
--
  import org.exolab.castor.xml.Marshaller;
  import org.exolab.castor.xml.Unmarshaller;
  
   * 
   * @version $Revision$ $Date$
   */
--public class VAMSAS implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _alignmentList.
--   */
--  private java.util.Vector _alignmentList;
--
--  /**
--   * Field _treeList.
--   */
--  private java.util.Vector _treeList;
--
--  /**
--   * Field _sequenceSetList.
--   */
--  private java.util.Vector _sequenceSetList;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public VAMSAS()
--  {
--    super();
--    this._alignmentList = new java.util.Vector();
--    this._treeList = new java.util.Vector();
--    this._sequenceSetList = new java.util.Vector();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
--
--  /**
--   * 
--   * 
--   * @param vAlignment
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addAlignment(final Alignment vAlignment)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._alignmentList.addElement(vAlignment);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vAlignment
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addAlignment(final int index, final Alignment vAlignment)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._alignmentList.add(index, vAlignment);
--  }
--
--  /**
--   * 
--   * 
--   * @param vSequenceSet
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addSequenceSet(final SequenceSet vSequenceSet)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._sequenceSetList.addElement(vSequenceSet);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vSequenceSet
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addSequenceSet(final int index, final SequenceSet vSequenceSet)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._sequenceSetList.add(index, vSequenceSet);
--  }
--
--  /**
--   * 
--   * 
--   * @param vTree
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addTree(final java.lang.String vTree)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._treeList.addElement(vTree);
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vTree
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void addTree(final int index, final java.lang.String vTree)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    this._treeList.add(index, vTree);
--  }
--
--  /**
--   * Method enumerateAlignment.
--   * 
--   * @return an Enumeration over all Alignment elements
--   */
--  public java.util.Enumeration enumerateAlignment()
--  {
--    return this._alignmentList.elements();
--  }
--
--  /**
--   * Method enumerateSequenceSet.
--   * 
--   * @return an Enumeration over all SequenceSet elements
--   */
--  public java.util.Enumeration enumerateSequenceSet()
--  {
--    return this._sequenceSetList.elements();
--  }
--
--  /**
--   * Method enumerateTree.
--   * 
--   * @return an Enumeration over all java.lang.String elements
--   */
--  public java.util.Enumeration enumerateTree()
--  {
--    return this._treeList.elements();
--  }
--
--  /**
--   * Method getAlignment.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the Alignment at the given index
--   */
--  public Alignment getAlignment(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._alignmentList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getAlignment",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._alignmentList.size() - 1)).toString()
--        })); 
--    }
--
--    return (Alignment) _alignmentList.get(index);
--  }
--
--  /**
--   * Method getAlignment.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public Alignment[] getAlignment()
--  {
--    Alignment[] array = new Alignment[0];
--    return (Alignment[]) this._alignmentList.toArray(array);
--  }
--
--  /**
--   * Method getAlignmentCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getAlignmentCount()
--  {
--    return this._alignmentList.size();
--  }
--
--  /**
--   * Method getSequenceSet.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the SequenceSet at the given index
--   */
--  public SequenceSet getSequenceSet(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._sequenceSetList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getSequenceSet",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._sequenceSetList.size() - 1)).toString()
--          })); 
--    }
--
--    return (SequenceSet) _sequenceSetList.get(index);
--  }
--
--  /**
--   * Method getSequenceSet.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public SequenceSet[] getSequenceSet()
--  {
--    SequenceSet[] array = new SequenceSet[0];
--    return (SequenceSet[]) this._sequenceSetList.toArray(array);
--  }
--
--  /**
--   * Method getSequenceSetCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getSequenceSetCount()
--  {
--    return this._sequenceSetList.size();
--  }
--
--  /**
--   * Method getTree.
--   * 
--   * @param index
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   * @return the value of the java.lang.String at the given index
--   */
--  public java.lang.String getTree(final int index)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._treeList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "getTree",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._treeList.size() - 1)).toString()
--        })); 
--    }
--
--    return (java.lang.String) _treeList.get(index);
--  }
--
--  /**
--   * Method getTree.Returns the contents of the collection in an Array.
--   * <p>
--   * Note: Just in case the collection contents are changing in another thread,
--   * we pass a 0-length Array of the correct type into the API call. This way we
--   * <i>know</i> that the Array returned is of exactly the correct length.
--   * 
--   * @return this collection as an Array
--   */
--  public java.lang.String[] getTree()
--  {
--    java.lang.String[] array = new java.lang.String[0];
--    return (java.lang.String[]) this._treeList.toArray(array);
--  }
--
--  /**
--   * Method getTreeCount.
--   * 
--   * @return the size of this collection
--   */
--  public int getTreeCount()
--  {
--    return this._treeList.size();
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
--    }
--    return true;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Method removeAlignment.
--   * 
--   * @param vAlignment
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeAlignment(final Alignment vAlignment)
--  {
--    boolean removed = _alignmentList.remove(vAlignment);
--    return removed;
--  }
--
--  /**
--   * Method removeAlignmentAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public Alignment removeAlignmentAt(final int index)
--  {
--    java.lang.Object obj = this._alignmentList.remove(index);
--    return (Alignment) obj;
--  }
--
--  /**
--     */
--  public void removeAllAlignment()
--  {
--    this._alignmentList.clear();
--  }
--
--  /**
--     */
--  public void removeAllSequenceSet()
--  {
--    this._sequenceSetList.clear();
--  }
--
--  /**
--     */
--  public void removeAllTree()
--  {
--    this._treeList.clear();
--  }
--
--  /**
--   * Method removeSequenceSet.
--   * 
--   * @param vSequenceSet
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeSequenceSet(final SequenceSet vSequenceSet)
--  {
--    boolean removed = _sequenceSetList.remove(vSequenceSet);
--    return removed;
--  }
--
--  /**
--   * Method removeSequenceSetAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public SequenceSet removeSequenceSetAt(final int index)
--  {
--    java.lang.Object obj = this._sequenceSetList.remove(index);
--    return (SequenceSet) obj;
--  }
--
--  /**
--   * Method removeTree.
--   * 
--   * @param vTree
--   * @return true if the object was removed from the collection.
--   */
--  public boolean removeTree(final java.lang.String vTree)
--  {
--    boolean removed = _treeList.remove(vTree);
--    return removed;
--  }
--
--  /**
--   * Method removeTreeAt.
--   * 
--   * @param index
--   * @return the element removed from the collection
--   */
--  public java.lang.String removeTreeAt(final int index)
--  {
--    java.lang.Object obj = this._treeList.remove(index);
--    return (java.lang.String) obj;
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vAlignment
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setAlignment(final int index, final Alignment vAlignment)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._alignmentList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setAlignment",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._alignmentList.size() - 1)).toString()
--          })); 
--    }
--
--    this._alignmentList.set(index, vAlignment);
--  }
--
--  /**
--   * 
--   * 
--   * @param vAlignmentArray
--   */
--  public void setAlignment(final Alignment[] vAlignmentArray)
--  {
--    // -- copy array
--    _alignmentList.clear();
--
--    for (int i = 0; i < vAlignmentArray.length; i++)
--    {
--      this._alignmentList.add(vAlignmentArray[i]);
--    }
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vSequenceSet
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setSequenceSet(final int index, final SequenceSet vSequenceSet)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._sequenceSetList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setSequenceSet",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._sequenceSetList.size() - 1)).toString()
--        })); 
--    }
--
--    this._sequenceSetList.set(index, vSequenceSet);
--  }
--
--  /**
--   * 
--   * 
--   * @param vSequenceSetArray
--   */
--  public void setSequenceSet(final SequenceSet[] vSequenceSetArray)
--  {
--    // -- copy array
--    _sequenceSetList.clear();
--
--    for (int i = 0; i < vSequenceSetArray.length; i++)
--    {
--      this._sequenceSetList.add(vSequenceSetArray[i]);
--    }
--  }
--
--  /**
--   * 
--   * 
--   * @param index
--   * @param vTree
--   * @throws java.lang.IndexOutOfBoundsException
--   *           if the index given is outside the bounds of the collection
--   */
--  public void setTree(final int index, final java.lang.String vTree)
--          throws java.lang.IndexOutOfBoundsException
--  {
--    // check bounds for index
--    if (index < 0 || index >= this._treeList.size())
--    {
--        throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
--                        "setTree",
--                        Integer.valueOf(index).toString(),
--                        Integer.valueOf((this._treeList.size() - 1)).toString()
--          })); 
--    }
--
--    this._treeList.set(index, vTree);
--  }
--
--  /**
--   * 
--   * 
--   * @param vTreeArray
--   */
--  public void setTree(final java.lang.String[] vTreeArray)
--  {
--    // -- copy array
--    _treeList.clear();
--
--    for (int i = 0; i < vTreeArray.length; i++)
--    {
--      this._treeList.add(vTreeArray[i]);
--    }
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.VAMSAS
--   */
--  public static jalview.binding.VAMSAS unmarshal(final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(
--            jalview.binding.VAMSAS.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++public class VAMSAS implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _alignmentList.
++     */
++    private java.util.Vector _alignmentList;
++
++    /**
++     * Field _treeList.
++     */
++    private java.util.Vector _treeList;
++
++    /**
++     * Field _sequenceSetList.
++     */
++    private java.util.Vector _sequenceSetList;
++
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public VAMSAS() {
++        super();
++        this._alignmentList = new java.util.Vector();
++        this._treeList = new java.util.Vector();
++        this._sequenceSetList = new java.util.Vector();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     * 
++     * 
++     * @param vAlignment
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addAlignment(
++            final Alignment vAlignment)
++    throws java.lang.IndexOutOfBoundsException {
++        this._alignmentList.addElement(vAlignment);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vAlignment
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addAlignment(
++            final int index,
++            final Alignment vAlignment)
++    throws java.lang.IndexOutOfBoundsException {
++        this._alignmentList.add(index, vAlignment);
++    }
++
++    /**
++     * 
++     * 
++     * @param vSequenceSet
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addSequenceSet(
++            final SequenceSet vSequenceSet)
++    throws java.lang.IndexOutOfBoundsException {
++        this._sequenceSetList.addElement(vSequenceSet);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vSequenceSet
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addSequenceSet(
++            final int index,
++            final SequenceSet vSequenceSet)
++    throws java.lang.IndexOutOfBoundsException {
++        this._sequenceSetList.add(index, vSequenceSet);
++    }
++
++    /**
++     * 
++     * 
++     * @param vTree
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addTree(
++            final java.lang.String vTree)
++    throws java.lang.IndexOutOfBoundsException {
++        this._treeList.addElement(vTree);
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vTree
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void addTree(
++            final int index,
++            final java.lang.String vTree)
++    throws java.lang.IndexOutOfBoundsException {
++        this._treeList.add(index, vTree);
++    }
++
++    /**
++     * Method enumerateAlignment.
++     * 
++     * @return an Enumeration over all Alignment elements
++     */
++    public java.util.Enumeration enumerateAlignment(
++    ) {
++        return this._alignmentList.elements();
++    }
++
++    /**
++     * Method enumerateSequenceSet.
++     * 
++     * @return an Enumeration over all SequenceSet elements
++     */
++    public java.util.Enumeration enumerateSequenceSet(
++    ) {
++        return this._sequenceSetList.elements();
++    }
++
++    /**
++     * Method enumerateTree.
++     * 
++     * @return an Enumeration over all java.lang.String elements
++     */
++    public java.util.Enumeration enumerateTree(
++    ) {
++        return this._treeList.elements();
++    }
++
++    /**
++     * Method getAlignment.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the Alignment at the given index
++     */
++    public Alignment getAlignment(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._alignmentList.size()) {
++            throw new IndexOutOfBoundsException("getAlignment: Index value '" + index + "' not in range [0.." + (this._alignmentList.size() - 1) + "]");
++        }
++        
++        return (Alignment) _alignmentList.get(index);
++    }
++
++    /**
++     * Method getAlignment.Returns the contents of the collection
++     * in an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public Alignment[] getAlignment(
++    ) {
++        Alignment[] array = new Alignment[0];
++        return (Alignment[]) this._alignmentList.toArray(array);
++    }
++
++    /**
++     * Method getAlignmentCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getAlignmentCount(
++    ) {
++        return this._alignmentList.size();
++    }
++
++    /**
++     * Method getSequenceSet.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the SequenceSet at the given index
++     */
++    public SequenceSet getSequenceSet(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._sequenceSetList.size()) {
++            throw new IndexOutOfBoundsException("getSequenceSet: Index value '" + index + "' not in range [0.." + (this._sequenceSetList.size() - 1) + "]");
++        }
++        
++        return (SequenceSet) _sequenceSetList.get(index);
++    }
++
++    /**
++     * Method getSequenceSet.Returns the contents of the collection
++     * in an Array.  <p>Note:  Just in case the collection contents
++     * are changing in another thread, we pass a 0-length Array of
++     * the correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public SequenceSet[] getSequenceSet(
++    ) {
++        SequenceSet[] array = new SequenceSet[0];
++        return (SequenceSet[]) this._sequenceSetList.toArray(array);
++    }
++
++    /**
++     * Method getSequenceSetCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getSequenceSetCount(
++    ) {
++        return this._sequenceSetList.size();
++    }
++
++    /**
++     * Method getTree.
++     * 
++     * @param index
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     * @return the value of the java.lang.String at the given index
++     */
++    public java.lang.String getTree(
++            final int index)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._treeList.size()) {
++            throw new IndexOutOfBoundsException("getTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
++        }
++        
++        return (java.lang.String) _treeList.get(index);
++    }
++
++    /**
++     * Method getTree.Returns the contents of the collection in an
++     * Array.  <p>Note:  Just in case the collection contents are
++     * changing in another thread, we pass a 0-length Array of the
++     * correct type into the API call.  This way we <i>know</i>
++     * that the Array returned is of exactly the correct length.
++     * 
++     * @return this collection as an Array
++     */
++    public java.lang.String[] getTree(
++    ) {
++        java.lang.String[] array = new java.lang.String[0];
++        return (java.lang.String[]) this._treeList.toArray(array);
++    }
++
++    /**
++     * Method getTreeCount.
++     * 
++     * @return the size of this collection
++     */
++    public int getTreeCount(
++    ) {
++        return this._treeList.size();
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Method removeAlignment.
++     * 
++     * @param vAlignment
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeAlignment(
++            final Alignment vAlignment) {
++        boolean removed = _alignmentList.remove(vAlignment);
++        return removed;
++    }
++
++    /**
++     * Method removeAlignmentAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public Alignment removeAlignmentAt(
++            final int index) {
++        java.lang.Object obj = this._alignmentList.remove(index);
++        return (Alignment) obj;
++    }
++
++    /**
++     */
++    public void removeAllAlignment(
++    ) {
++        this._alignmentList.clear();
++    }
++
++    /**
++     */
++    public void removeAllSequenceSet(
++    ) {
++        this._sequenceSetList.clear();
++    }
++
++    /**
++     */
++    public void removeAllTree(
++    ) {
++        this._treeList.clear();
++    }
++
++    /**
++     * Method removeSequenceSet.
++     * 
++     * @param vSequenceSet
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeSequenceSet(
++            final SequenceSet vSequenceSet) {
++        boolean removed = _sequenceSetList.remove(vSequenceSet);
++        return removed;
++    }
++
++    /**
++     * Method removeSequenceSetAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public SequenceSet removeSequenceSetAt(
++            final int index) {
++        java.lang.Object obj = this._sequenceSetList.remove(index);
++        return (SequenceSet) obj;
++    }
++
++    /**
++     * Method removeTree.
++     * 
++     * @param vTree
++     * @return true if the object was removed from the collection.
++     */
++    public boolean removeTree(
++            final java.lang.String vTree) {
++        boolean removed = _treeList.remove(vTree);
++        return removed;
++    }
++
++    /**
++     * Method removeTreeAt.
++     * 
++     * @param index
++     * @return the element removed from the collection
++     */
++    public java.lang.String removeTreeAt(
++            final int index) {
++        java.lang.Object obj = this._treeList.remove(index);
++        return (java.lang.String) obj;
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vAlignment
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setAlignment(
++            final int index,
++            final Alignment vAlignment)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._alignmentList.size()) {
++            throw new IndexOutOfBoundsException("setAlignment: Index value '" + index + "' not in range [0.." + (this._alignmentList.size() - 1) + "]");
++        }
++        
++        this._alignmentList.set(index, vAlignment);
++    }
++
++    /**
++     * 
++     * 
++     * @param vAlignmentArray
++     */
++    public void setAlignment(
++            final Alignment[] vAlignmentArray) {
++        //-- copy array
++        _alignmentList.clear();
++        
++        for (int i = 0; i < vAlignmentArray.length; i++) {
++                this._alignmentList.add(vAlignmentArray[i]);
++        }
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vSequenceSet
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setSequenceSet(
++            final int index,
++            final SequenceSet vSequenceSet)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._sequenceSetList.size()) {
++            throw new IndexOutOfBoundsException("setSequenceSet: Index value '" + index + "' not in range [0.." + (this._sequenceSetList.size() - 1) + "]");
++        }
++        
++        this._sequenceSetList.set(index, vSequenceSet);
++    }
++
++    /**
++     * 
++     * 
++     * @param vSequenceSetArray
++     */
++    public void setSequenceSet(
++            final SequenceSet[] vSequenceSetArray) {
++        //-- copy array
++        _sequenceSetList.clear();
++        
++        for (int i = 0; i < vSequenceSetArray.length; i++) {
++                this._sequenceSetList.add(vSequenceSetArray[i]);
++        }
++    }
++
++    /**
++     * 
++     * 
++     * @param index
++     * @param vTree
++     * @throws java.lang.IndexOutOfBoundsException if the index
++     * given is outside the bounds of the collection
++     */
++    public void setTree(
++            final int index,
++            final java.lang.String vTree)
++    throws java.lang.IndexOutOfBoundsException {
++        // check bounds for index
++        if (index < 0 || index >= this._treeList.size()) {
++            throw new IndexOutOfBoundsException("setTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
++        }
++        
++        this._treeList.set(index, vTree);
++    }
++
++    /**
++     * 
++     * 
++     * @param vTreeArray
++     */
++    public void setTree(
++            final java.lang.String[] vTreeArray) {
++        //-- copy array
++        _treeList.clear();
++        
++        for (int i = 0; i < vTreeArray.length; i++) {
++                this._treeList.add(vTreeArray[i]);
++        }
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.VAMSAS
++     */
++    public static jalview.binding.VAMSAS unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(jalview.binding.VAMSAS.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,105 -32,105 +19,98 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class VamsasModel extends VAMSAS implements java.io.Serializable
++public class VamsasModel extends VAMSAS 
++implements java.io.Serializable
  {
  
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
  
--  public VamsasModel()
--  {
--    super();
--  }
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public VamsasModel() {
++        super();
++    }
++
  
--  // -----------/
--  // - Methods -/
--  // -----------/
++      //-----------/
++     //- Methods -/
++    //-----------/
  
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
      }
--    return true;
--  }
  
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
  
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
  
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.VAMSAS
--   */
--  public static jalview.binding.VAMSAS unmarshal(final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(
--            jalview.binding.VamsasModel.class, reader);
--  }
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.VAMSAS
++     */
++    public static jalview.binding.VAMSAS unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(jalview.binding.VamsasModel.class, reader);
++    }
  
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
@@@ -1,27 -1,27 +1,14 @@@
  /*
-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
-- * Copyright (C) $$Year-Rel$$ The Jalview Authors
-- * 
-- * This file is part of Jalview.
-- * 
-- * Jalview is free software: you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License 
-- * as published by the Free Software Foundation, either version 3
-- * of the License, or (at your option) any later version.
-- *  
-- * Jalview is distributed in the hope that it will be useful, but 
-- * WITHOUT ANY WARRANTY; without even the implied warranty 
-- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-- * PURPOSE.  See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License
-- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
-- * The Jalview Authors are detailed in the 'AUTHORS' file.
++ * This class was automatically generated with 
++ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
++ * Schema.
++ * $Id$
   */
++
  package jalview.binding;
  
--//---------------------------------/
--//- Imported classes and packages -/
++  //---------------------------------/
++ //- Imported classes and packages -/
  //---------------------------------/
  
  import org.exolab.castor.xml.Marshaller;
@@@ -32,1445 -32,1445 +19,1414 @@@ import org.exolab.castor.xml.Unmarshall
   * 
   * @version $Revision$ $Date$
   */
--public class Viewport implements java.io.Serializable
--{
--
--  // --------------------------/
--  // - Class/Member Variables -/
--  // --------------------------/
--
--  /**
--   * Field _conservationSelected.
--   */
--  private boolean _conservationSelected;
--
--  /**
--   * keeps track of state for field: _conservationSelected
--   */
--  private boolean _has_conservationSelected;
--
--  /**
--   * Field _pidSelected.
--   */
--  private boolean _pidSelected;
--
--  /**
--   * keeps track of state for field: _pidSelected
--   */
--  private boolean _has_pidSelected;
--
--  /**
--   * Field _bgColour.
--   */
--  private java.lang.String _bgColour;
--
--  /**
--   * Field _consThreshold.
--   */
--  private int _consThreshold;
--
--  /**
--   * keeps track of state for field: _consThreshold
--   */
--  private boolean _has_consThreshold;
--
--  /**
--   * Field _pidThreshold.
--   */
--  private int _pidThreshold;
--
--  /**
--   * keeps track of state for field: _pidThreshold
--   */
--  private boolean _has_pidThreshold;
--
--  /**
--   * Field _title.
--   */
--  private java.lang.String _title;
--
--  /**
--   * Field _showFullId.
--   */
--  private boolean _showFullId;
--
--  /**
--   * keeps track of state for field: _showFullId
--   */
--  private boolean _has_showFullId;
--
--  /**
--   * Field _showText.
--   */
--  private boolean _showText;
--
--  /**
--   * keeps track of state for field: _showText
--   */
--  private boolean _has_showText;
--
--  /**
--   * Field _showColourText.
--   */
--  private boolean _showColourText;
--
--  /**
--   * keeps track of state for field: _showColourText
--   */
--  private boolean _has_showColourText;
--
--  /**
--   * Field _showBoxes.
--   */
--  private boolean _showBoxes;
--
--  /**
--   * keeps track of state for field: _showBoxes
--   */
--  private boolean _has_showBoxes;
--
--  /**
--   * Field _wrapAlignment.
--   */
--  private boolean _wrapAlignment;
--
--  /**
--   * keeps track of state for field: _wrapAlignment
--   */
--  private boolean _has_wrapAlignment;
--
--  /**
--   * Field _renderGaps.
--   */
--  private boolean _renderGaps;
--
--  /**
--   * keeps track of state for field: _renderGaps
--   */
--  private boolean _has_renderGaps;
--
--  /**
--   * Field _showSequenceFeatures.
--   */
--  private boolean _showSequenceFeatures;
--
--  /**
--   * keeps track of state for field: _showSequenceFeatures
--   */
--  private boolean _has_showSequenceFeatures;
--
--  /**
--   * Field _showAnnotation.
--   */
--  private boolean _showAnnotation;
--
--  /**
--   * keeps track of state for field: _showAnnotation
--   */
--  private boolean _has_showAnnotation;
--
--  /**
--   * Field _showConservation.
--   */
--  private boolean _showConservation;
--
--  /**
--   * keeps track of state for field: _showConservation
--   */
--  private boolean _has_showConservation;
--
--  /**
--   * Field _showQuality.
--   */
--  private boolean _showQuality;
--
--  /**
--   * keeps track of state for field: _showQuality
--   */
--  private boolean _has_showQuality;
--
--  /**
--   * Field _showIdentity.
--   */
--  private boolean _showIdentity;
--
--  /**
--   * keeps track of state for field: _showIdentity
--   */
--  private boolean _has_showIdentity;
--
--  /**
--   * Field _xpos.
--   */
--  private int _xpos;
--
--  /**
--   * keeps track of state for field: _xpos
--   */
--  private boolean _has_xpos;
--
--  /**
--   * Field _ypos.
--   */
--  private int _ypos;
--
--  /**
--   * keeps track of state for field: _ypos
--   */
--  private boolean _has_ypos;
--
--  /**
--   * Field _width.
--   */
--  private int _width;
--
--  /**
--   * keeps track of state for field: _width
--   */
--  private boolean _has_width;
--
--  /**
--   * Field _height.
--   */
--  private int _height;
--
--  /**
--   * keeps track of state for field: _height
--   */
--  private boolean _has_height;
--
--  /**
--   * Field _startRes.
--   */
--  private int _startRes;
--
--  /**
--   * keeps track of state for field: _startRes
--   */
--  private boolean _has_startRes;
--
--  /**
--   * Field _startSeq.
--   */
--  private int _startSeq;
--
--  /**
--   * keeps track of state for field: _startSeq
--   */
--  private boolean _has_startSeq;
--
--  /**
--   * Field _fontName.
--   */
--  private java.lang.String _fontName;
--
--  /**
--   * Field _fontSize.
--   */
--  private int _fontSize;
--
--  /**
--   * keeps track of state for field: _fontSize
--   */
--  private boolean _has_fontSize;
--
--  /**
--   * Field _fontStyle.
--   */
--  private int _fontStyle;
--
--  /**
--   * keeps track of state for field: _fontStyle
--   */
--  private boolean _has_fontStyle;
--
--  // ----------------/
--  // - Constructors -/
--  // ----------------/
--
--  public Viewport()
--  {
--    super();
--  }
--
--  // -----------/
--  // - Methods -/
--  // -----------/
++public class Viewport implements java.io.Serializable {
++
++
++      //--------------------------/
++     //- Class/Member Variables -/
++    //--------------------------/
++
++    /**
++     * Field _conservationSelected.
++     */
++    private boolean _conservationSelected;
++
++    /**
++     * keeps track of state for field: _conservationSelected
++     */
++    private boolean _has_conservationSelected;
++
++    /**
++     * Field _pidSelected.
++     */
++    private boolean _pidSelected;
++
++    /**
++     * keeps track of state for field: _pidSelected
++     */
++    private boolean _has_pidSelected;
++
++    /**
++     * Field _bgColour.
++     */
++    private java.lang.String _bgColour;
++
++    /**
++     * Field _consThreshold.
++     */
++    private int _consThreshold;
++
++    /**
++     * keeps track of state for field: _consThreshold
++     */
++    private boolean _has_consThreshold;
++
++    /**
++     * Field _pidThreshold.
++     */
++    private int _pidThreshold;
++
++    /**
++     * keeps track of state for field: _pidThreshold
++     */
++    private boolean _has_pidThreshold;
++
++    /**
++     * Field _title.
++     */
++    private java.lang.String _title;
++
++    /**
++     * Field _showFullId.
++     */
++    private boolean _showFullId;
++
++    /**
++     * keeps track of state for field: _showFullId
++     */
++    private boolean _has_showFullId;
++
++    /**
++     * Field _showText.
++     */
++    private boolean _showText;
++
++    /**
++     * keeps track of state for field: _showText
++     */
++    private boolean _has_showText;
++
++    /**
++     * Field _showColourText.
++     */
++    private boolean _showColourText;
++
++    /**
++     * keeps track of state for field: _showColourText
++     */
++    private boolean _has_showColourText;
++
++    /**
++     * Field _showBoxes.
++     */
++    private boolean _showBoxes;
++
++    /**
++     * keeps track of state for field: _showBoxes
++     */
++    private boolean _has_showBoxes;
++
++    /**
++     * Field _wrapAlignment.
++     */
++    private boolean _wrapAlignment;
++
++    /**
++     * keeps track of state for field: _wrapAlignment
++     */
++    private boolean _has_wrapAlignment;
++
++    /**
++     * Field _renderGaps.
++     */
++    private boolean _renderGaps;
++
++    /**
++     * keeps track of state for field: _renderGaps
++     */
++    private boolean _has_renderGaps;
++
++    /**
++     * Field _showSequenceFeatures.
++     */
++    private boolean _showSequenceFeatures;
++
++    /**
++     * keeps track of state for field: _showSequenceFeatures
++     */
++    private boolean _has_showSequenceFeatures;
++
++    /**
++     * Field _showAnnotation.
++     */
++    private boolean _showAnnotation;
++
++    /**
++     * keeps track of state for field: _showAnnotation
++     */
++    private boolean _has_showAnnotation;
++
++    /**
++     * Field _showConservation.
++     */
++    private boolean _showConservation;
++
++    /**
++     * keeps track of state for field: _showConservation
++     */
++    private boolean _has_showConservation;
++
++    /**
++     * Field _showQuality.
++     */
++    private boolean _showQuality;
++
++    /**
++     * keeps track of state for field: _showQuality
++     */
++    private boolean _has_showQuality;
++
++    /**
++     * Field _showIdentity.
++     */
++    private boolean _showIdentity;
++
++    /**
++     * keeps track of state for field: _showIdentity
++     */
++    private boolean _has_showIdentity;
++
++    /**
++     * Field _xpos.
++     */
++    private int _xpos;
++
++    /**
++     * keeps track of state for field: _xpos
++     */
++    private boolean _has_xpos;
++
++    /**
++     * Field _ypos.
++     */
++    private int _ypos;
++
++    /**
++     * keeps track of state for field: _ypos
++     */
++    private boolean _has_ypos;
++
++    /**
++     * Field _width.
++     */
++    private int _width;
  
--  /**
++    /**
++     * keeps track of state for field: _width
       */
--  public void deleteConsThreshold()
--  {
--    this._has_consThreshold = false;
--  }
++    private boolean _has_width;
  
--  /**
++    /**
++     * Field _height.
       */
--  public void deleteConservationSelected()
--  {
--    this._has_conservationSelected = false;
--  }
++    private int _height;
  
--  /**
++    /**
++     * keeps track of state for field: _height
       */
--  public void deleteFontSize()
--  {
--    this._has_fontSize = false;
--  }
++    private boolean _has_height;
  
--  /**
++    /**
++     * Field _startRes.
       */
--  public void deleteFontStyle()
--  {
--    this._has_fontStyle = false;
--  }
++    private int _startRes;
  
--  /**
++    /**
++     * keeps track of state for field: _startRes
       */
--  public void deleteHeight()
--  {
--    this._has_height = false;
--  }
++    private boolean _has_startRes;
  
--  /**
++    /**
++     * Field _startSeq.
       */
--  public void deletePidSelected()
--  {
--    this._has_pidSelected = false;
--  }
++    private int _startSeq;
  
--  /**
++    /**
++     * keeps track of state for field: _startSeq
       */
--  public void deletePidThreshold()
--  {
--    this._has_pidThreshold = false;
--  }
++    private boolean _has_startSeq;
  
--  /**
++    /**
++     * Field _fontName.
       */
--  public void deleteRenderGaps()
--  {
--    this._has_renderGaps = false;
--  }
++    private java.lang.String _fontName;
  
--  /**
++    /**
++     * Field _fontSize.
       */
--  public void deleteShowAnnotation()
--  {
--    this._has_showAnnotation = false;
--  }
++    private int _fontSize;
  
--  /**
++    /**
++     * keeps track of state for field: _fontSize
       */
--  public void deleteShowBoxes()
--  {
--    this._has_showBoxes = false;
--  }
++    private boolean _has_fontSize;
  
--  /**
++    /**
++     * Field _fontStyle.
       */
--  public void deleteShowColourText()
--  {
--    this._has_showColourText = false;
--  }
++    private int _fontStyle;
  
--  /**
++    /**
++     * keeps track of state for field: _fontStyle
       */
--  public void deleteShowConservation()
--  {
--    this._has_showConservation = false;
--  }
++    private boolean _has_fontStyle;
  
--  /**
++
++      //----------------/
++     //- Constructors -/
++    //----------------/
++
++    public Viewport() {
++        super();
++    }
++
++
++      //-----------/
++     //- Methods -/
++    //-----------/
++
++    /**
++     */
++    public void deleteConsThreshold(
++    ) {
++        this._has_consThreshold= false;
++    }
++
++    /**
       */
--  public void deleteShowFullId()
--  {
--    this._has_showFullId = false;
--  }
++    public void deleteConservationSelected(
++    ) {
++        this._has_conservationSelected= false;
++    }
  
--  /**
++    /**
       */
--  public void deleteShowIdentity()
--  {
--    this._has_showIdentity = false;
--  }
++    public void deleteFontSize(
++    ) {
++        this._has_fontSize= false;
++    }
++
++    /**
++     */
++    public void deleteFontStyle(
++    ) {
++        this._has_fontStyle= false;
++    }
++
++    /**
++     */
++    public void deleteHeight(
++    ) {
++        this._has_height= false;
++    }
++
++    /**
++     */
++    public void deletePidSelected(
++    ) {
++        this._has_pidSelected= false;
++    }
++
++    /**
++     */
++    public void deletePidThreshold(
++    ) {
++        this._has_pidThreshold= false;
++    }
++
++    /**
++     */
++    public void deleteRenderGaps(
++    ) {
++        this._has_renderGaps= false;
++    }
++
++    /**
++     */
++    public void deleteShowAnnotation(
++    ) {
++        this._has_showAnnotation= false;
++    }
++
++    /**
++     */
++    public void deleteShowBoxes(
++    ) {
++        this._has_showBoxes= false;
++    }
++
++    /**
++     */
++    public void deleteShowColourText(
++    ) {
++        this._has_showColourText= false;
++    }
++
++    /**
++     */
++    public void deleteShowConservation(
++    ) {
++        this._has_showConservation= false;
++    }
++
++    /**
++     */
++    public void deleteShowFullId(
++    ) {
++        this._has_showFullId= false;
++    }
++
++    /**
++     */
++    public void deleteShowIdentity(
++    ) {
++        this._has_showIdentity= false;
++    }
++
++    /**
++     */
++    public void deleteShowQuality(
++    ) {
++        this._has_showQuality= false;
++    }
++
++    /**
++     */
++    public void deleteShowSequenceFeatures(
++    ) {
++        this._has_showSequenceFeatures= false;
++    }
++
++    /**
++     */
++    public void deleteShowText(
++    ) {
++        this._has_showText= false;
++    }
++
++    /**
++     */
++    public void deleteStartRes(
++    ) {
++        this._has_startRes= false;
++    }
++
++    /**
++     */
++    public void deleteStartSeq(
++    ) {
++        this._has_startSeq= false;
++    }
++
++    /**
++     */
++    public void deleteWidth(
++    ) {
++        this._has_width= false;
++    }
++
++    /**
++     */
++    public void deleteWrapAlignment(
++    ) {
++        this._has_wrapAlignment= false;
++    }
++
++    /**
++     */
++    public void deleteXpos(
++    ) {
++        this._has_xpos= false;
++    }
++
++    /**
++     */
++    public void deleteYpos(
++    ) {
++        this._has_ypos= false;
++    }
++
++    /**
++     * Returns the value of field 'bgColour'.
++     * 
++     * @return the value of field 'BgColour'.
++     */
++    public java.lang.String getBgColour(
++    ) {
++        return this._bgColour;
++    }
++
++    /**
++     * Returns the value of field 'consThreshold'.
++     * 
++     * @return the value of field 'ConsThreshold'.
++     */
++    public int getConsThreshold(
++    ) {
++        return this._consThreshold;
++    }
++
++    /**
++     * Returns the value of field 'conservationSelected'.
++     * 
++     * @return the value of field 'ConservationSelected'.
++     */
++    public boolean getConservationSelected(
++    ) {
++        return this._conservationSelected;
++    }
++
++    /**
++     * Returns the value of field 'fontName'.
++     * 
++     * @return the value of field 'FontName'.
++     */
++    public java.lang.String getFontName(
++    ) {
++        return this._fontName;
++    }
++
++    /**
++     * Returns the value of field 'fontSize'.
++     * 
++     * @return the value of field 'FontSize'.
++     */
++    public int getFontSize(
++    ) {
++        return this._fontSize;
++    }
++
++    /**
++     * Returns the value of field 'fontStyle'.
++     * 
++     * @return the value of field 'FontStyle'.
++     */
++    public int getFontStyle(
++    ) {
++        return this._fontStyle;
++    }
++
++    /**
++     * Returns the value of field 'height'.
++     * 
++     * @return the value of field 'Height'.
++     */
++    public int getHeight(
++    ) {
++        return this._height;
++    }
++
++    /**
++     * Returns the value of field 'pidSelected'.
++     * 
++     * @return the value of field 'PidSelected'.
++     */
++    public boolean getPidSelected(
++    ) {
++        return this._pidSelected;
++    }
++
++    /**
++     * Returns the value of field 'pidThreshold'.
++     * 
++     * @return the value of field 'PidThreshold'.
++     */
++    public int getPidThreshold(
++    ) {
++        return this._pidThreshold;
++    }
++
++    /**
++     * Returns the value of field 'renderGaps'.
++     * 
++     * @return the value of field 'RenderGaps'.
++     */
++    public boolean getRenderGaps(
++    ) {
++        return this._renderGaps;
++    }
++
++    /**
++     * Returns the value of field 'showAnnotation'.
++     * 
++     * @return the value of field 'ShowAnnotation'.
++     */
++    public boolean getShowAnnotation(
++    ) {
++        return this._showAnnotation;
++    }
++
++    /**
++     * Returns the value of field 'showBoxes'.
++     * 
++     * @return the value of field 'ShowBoxes'.
++     */
++    public boolean getShowBoxes(
++    ) {
++        return this._showBoxes;
++    }
++
++    /**
++     * Returns the value of field 'showColourText'.
++     * 
++     * @return the value of field 'ShowColourText'.
++     */
++    public boolean getShowColourText(
++    ) {
++        return this._showColourText;
++    }
++
++    /**
++     * Returns the value of field 'showConservation'.
++     * 
++     * @return the value of field 'ShowConservation'.
++     */
++    public boolean getShowConservation(
++    ) {
++        return this._showConservation;
++    }
++
++    /**
++     * Returns the value of field 'showFullId'.
++     * 
++     * @return the value of field 'ShowFullId'.
++     */
++    public boolean getShowFullId(
++    ) {
++        return this._showFullId;
++    }
++
++    /**
++     * Returns the value of field 'showIdentity'.
++     * 
++     * @return the value of field 'ShowIdentity'.
++     */
++    public boolean getShowIdentity(
++    ) {
++        return this._showIdentity;
++    }
++
++    /**
++     * Returns the value of field 'showQuality'.
++     * 
++     * @return the value of field 'ShowQuality'.
++     */
++    public boolean getShowQuality(
++    ) {
++        return this._showQuality;
++    }
++
++    /**
++     * Returns the value of field 'showSequenceFeatures'.
++     * 
++     * @return the value of field 'ShowSequenceFeatures'.
++     */
++    public boolean getShowSequenceFeatures(
++    ) {
++        return this._showSequenceFeatures;
++    }
++
++    /**
++     * Returns the value of field 'showText'.
++     * 
++     * @return the value of field 'ShowText'.
++     */
++    public boolean getShowText(
++    ) {
++        return this._showText;
++    }
++
++    /**
++     * Returns the value of field 'startRes'.
++     * 
++     * @return the value of field 'StartRes'.
++     */
++    public int getStartRes(
++    ) {
++        return this._startRes;
++    }
++
++    /**
++     * Returns the value of field 'startSeq'.
++     * 
++     * @return the value of field 'StartSeq'.
++     */
++    public int getStartSeq(
++    ) {
++        return this._startSeq;
++    }
  
--  /**
++    /**
++     * Returns the value of field 'title'.
++     * 
++     * @return the value of field 'Title'.
       */
--  public void deleteShowQuality()
--  {
--    this._has_showQuality = false;
--  }
--
--  /**
--     */
--  public void deleteShowSequenceFeatures()
--  {
--    this._has_showSequenceFeatures = false;
--  }
--
--  /**
--     */
--  public void deleteShowText()
--  {
--    this._has_showText = false;
--  }
--
--  /**
--     */
--  public void deleteStartRes()
--  {
--    this._has_startRes = false;
--  }
--
--  /**
--     */
--  public void deleteStartSeq()
--  {
--    this._has_startSeq = false;
--  }
--
--  /**
--     */
--  public void deleteWidth()
--  {
--    this._has_width = false;
--  }
--
--  /**
--     */
--  public void deleteWrapAlignment()
--  {
--    this._has_wrapAlignment = false;
--  }
--
--  /**
--     */
--  public void deleteXpos()
--  {
--    this._has_xpos = false;
--  }
--
--  /**
--     */
--  public void deleteYpos()
--  {
--    this._has_ypos = false;
--  }
--
--  /**
--   * Returns the value of field 'bgColour'.
--   * 
--   * @return the value of field 'BgColour'.
--   */
--  public java.lang.String getBgColour()
--  {
--    return this._bgColour;
--  }
--
--  /**
--   * Returns the value of field 'consThreshold'.
--   * 
--   * @return the value of field 'ConsThreshold'.
--   */
--  public int getConsThreshold()
--  {
--    return this._consThreshold;
--  }
--
--  /**
--   * Returns the value of field 'conservationSelected'.
--   * 
--   * @return the value of field 'ConservationSelected'.
--   */
--  public boolean getConservationSelected()
--  {
--    return this._conservationSelected;
--  }
--
--  /**
--   * Returns the value of field 'fontName'.
--   * 
--   * @return the value of field 'FontName'.
--   */
--  public java.lang.String getFontName()
--  {
--    return this._fontName;
--  }
--
--  /**
--   * Returns the value of field 'fontSize'.
--   * 
--   * @return the value of field 'FontSize'.
--   */
--  public int getFontSize()
--  {
--    return this._fontSize;
--  }
--
--  /**
--   * Returns the value of field 'fontStyle'.
--   * 
--   * @return the value of field 'FontStyle'.
--   */
--  public int getFontStyle()
--  {
--    return this._fontStyle;
--  }
--
--  /**
--   * Returns the value of field 'height'.
--   * 
--   * @return the value of field 'Height'.
--   */
--  public int getHeight()
--  {
--    return this._height;
--  }
--
--  /**
--   * Returns the value of field 'pidSelected'.
--   * 
--   * @return the value of field 'PidSelected'.
--   */
--  public boolean getPidSelected()
--  {
--    return this._pidSelected;
--  }
--
--  /**
--   * Returns the value of field 'pidThreshold'.
--   * 
--   * @return the value of field 'PidThreshold'.
--   */
--  public int getPidThreshold()
--  {
--    return this._pidThreshold;
--  }
--
--  /**
--   * Returns the value of field 'renderGaps'.
--   * 
--   * @return the value of field 'RenderGaps'.
--   */
--  public boolean getRenderGaps()
--  {
--    return this._renderGaps;
--  }
--
--  /**
--   * Returns the value of field 'showAnnotation'.
--   * 
--   * @return the value of field 'ShowAnnotation'.
--   */
--  public boolean getShowAnnotation()
--  {
--    return this._showAnnotation;
--  }
--
--  /**
--   * Returns the value of field 'showBoxes'.
--   * 
--   * @return the value of field 'ShowBoxes'.
--   */
--  public boolean getShowBoxes()
--  {
--    return this._showBoxes;
--  }
--
--  /**
--   * Returns the value of field 'showColourText'.
--   * 
--   * @return the value of field 'ShowColourText'.
--   */
--  public boolean getShowColourText()
--  {
--    return this._showColourText;
--  }
--
--  /**
--   * Returns the value of field 'showConservation'.
--   * 
--   * @return the value of field 'ShowConservation'.
--   */
--  public boolean getShowConservation()
--  {
--    return this._showConservation;
--  }
--
--  /**
--   * Returns the value of field 'showFullId'.
--   * 
--   * @return the value of field 'ShowFullId'.
--   */
--  public boolean getShowFullId()
--  {
--    return this._showFullId;
--  }
--
--  /**
--   * Returns the value of field 'showIdentity'.
--   * 
--   * @return the value of field 'ShowIdentity'.
--   */
--  public boolean getShowIdentity()
--  {
--    return this._showIdentity;
--  }
--
--  /**
--   * Returns the value of field 'showQuality'.
--   * 
--   * @return the value of field 'ShowQuality'.
--   */
--  public boolean getShowQuality()
--  {
--    return this._showQuality;
--  }
--
--  /**
--   * Returns the value of field 'showSequenceFeatures'.
--   * 
--   * @return the value of field 'ShowSequenceFeatures'.
--   */
--  public boolean getShowSequenceFeatures()
--  {
--    return this._showSequenceFeatures;
--  }
--
--  /**
--   * Returns the value of field 'showText'.
--   * 
--   * @return the value of field 'ShowText'.
--   */
--  public boolean getShowText()
--  {
--    return this._showText;
--  }
--
--  /**
--   * Returns the value of field 'startRes'.
--   * 
--   * @return the value of field 'StartRes'.
--   */
--  public int getStartRes()
--  {
--    return this._startRes;
--  }
--
--  /**
--   * Returns the value of field 'startSeq'.
--   * 
--   * @return the value of field 'StartSeq'.
--   */
--  public int getStartSeq()
--  {
--    return this._startSeq;
--  }
--
--  /**
--   * Returns the value of field 'title'.
--   * 
--   * @return the value of field 'Title'.
--   */
--  public java.lang.String getTitle()
--  {
--    return this._title;
--  }
--
--  /**
--   * Returns the value of field 'width'.
--   * 
--   * @return the value of field 'Width'.
--   */
--  public int getWidth()
--  {
--    return this._width;
--  }
--
--  /**
--   * Returns the value of field 'wrapAlignment'.
--   * 
--   * @return the value of field 'WrapAlignment'.
--   */
--  public boolean getWrapAlignment()
--  {
--    return this._wrapAlignment;
--  }
--
--  /**
--   * Returns the value of field 'xpos'.
--   * 
--   * @return the value of field 'Xpos'.
--   */
--  public int getXpos()
--  {
--    return this._xpos;
--  }
--
--  /**
--   * Returns the value of field 'ypos'.
--   * 
--   * @return the value of field 'Ypos'.
--   */
--  public int getYpos()
--  {
--    return this._ypos;
--  }
--
--  /**
--   * Method hasConsThreshold.
--   * 
--   * @return true if at least one ConsThreshold has been added
--   */
--  public boolean hasConsThreshold()
--  {
--    return this._has_consThreshold;
--  }
--
--  /**
--   * Method hasConservationSelected.
--   * 
--   * @return true if at least one ConservationSelected has been added
--   */
--  public boolean hasConservationSelected()
--  {
--    return this._has_conservationSelected;
--  }
--
--  /**
--   * Method hasFontSize.
--   * 
--   * @return true if at least one FontSize has been added
--   */
--  public boolean hasFontSize()
--  {
--    return this._has_fontSize;
--  }
--
--  /**
--   * Method hasFontStyle.
--   * 
--   * @return true if at least one FontStyle has been added
--   */
--  public boolean hasFontStyle()
--  {
--    return this._has_fontStyle;
--  }
--
--  /**
--   * Method hasHeight.
--   * 
--   * @return true if at least one Height has been added
--   */
--  public boolean hasHeight()
--  {
--    return this._has_height;
--  }
--
--  /**
--   * Method hasPidSelected.
--   * 
--   * @return true if at least one PidSelected has been added
--   */
--  public boolean hasPidSelected()
--  {
--    return this._has_pidSelected;
--  }
--
--  /**
--   * Method hasPidThreshold.
--   * 
--   * @return true if at least one PidThreshold has been added
--   */
--  public boolean hasPidThreshold()
--  {
--    return this._has_pidThreshold;
--  }
--
--  /**
--   * Method hasRenderGaps.
--   * 
--   * @return true if at least one RenderGaps has been added
--   */
--  public boolean hasRenderGaps()
--  {
--    return this._has_renderGaps;
--  }
--
--  /**
--   * Method hasShowAnnotation.
--   * 
--   * @return true if at least one ShowAnnotation has been added
--   */
--  public boolean hasShowAnnotation()
--  {
--    return this._has_showAnnotation;
--  }
--
--  /**
--   * Method hasShowBoxes.
--   * 
--   * @return true if at least one ShowBoxes has been added
--   */
--  public boolean hasShowBoxes()
--  {
--    return this._has_showBoxes;
--  }
--
--  /**
--   * Method hasShowColourText.
--   * 
--   * @return true if at least one ShowColourText has been added
--   */
--  public boolean hasShowColourText()
--  {
--    return this._has_showColourText;
--  }
--
--  /**
--   * Method hasShowConservation.
--   * 
--   * @return true if at least one ShowConservation has been added
--   */
--  public boolean hasShowConservation()
--  {
--    return this._has_showConservation;
--  }
--
--  /**
--   * Method hasShowFullId.
--   * 
--   * @return true if at least one ShowFullId has been added
--   */
--  public boolean hasShowFullId()
--  {
--    return this._has_showFullId;
--  }
--
--  /**
--   * Method hasShowIdentity.
--   * 
--   * @return true if at least one ShowIdentity has been added
--   */
--  public boolean hasShowIdentity()
--  {
--    return this._has_showIdentity;
--  }
--
--  /**
--   * Method hasShowQuality.
--   * 
--   * @return true if at least one ShowQuality has been added
--   */
--  public boolean hasShowQuality()
--  {
--    return this._has_showQuality;
--  }
--
--  /**
--   * Method hasShowSequenceFeatures.
--   * 
--   * @return true if at least one ShowSequenceFeatures has been added
--   */
--  public boolean hasShowSequenceFeatures()
--  {
--    return this._has_showSequenceFeatures;
--  }
--
--  /**
--   * Method hasShowText.
--   * 
--   * @return true if at least one ShowText has been added
--   */
--  public boolean hasShowText()
--  {
--    return this._has_showText;
--  }
--
--  /**
--   * Method hasStartRes.
--   * 
--   * @return true if at least one StartRes has been added
--   */
--  public boolean hasStartRes()
--  {
--    return this._has_startRes;
--  }
--
--  /**
--   * Method hasStartSeq.
--   * 
--   * @return true if at least one StartSeq has been added
--   */
--  public boolean hasStartSeq()
--  {
--    return this._has_startSeq;
--  }
--
--  /**
--   * Method hasWidth.
--   * 
--   * @return true if at least one Width has been added
--   */
--  public boolean hasWidth()
--  {
--    return this._has_width;
--  }
--
--  /**
--   * Method hasWrapAlignment.
--   * 
--   * @return true if at least one WrapAlignment has been added
--   */
--  public boolean hasWrapAlignment()
--  {
--    return this._has_wrapAlignment;
--  }
--
--  /**
--   * Method hasXpos.
--   * 
--   * @return true if at least one Xpos has been added
--   */
--  public boolean hasXpos()
--  {
--    return this._has_xpos;
--  }
--
--  /**
--   * Method hasYpos.
--   * 
--   * @return true if at least one Ypos has been added
--   */
--  public boolean hasYpos()
--  {
--    return this._has_ypos;
--  }
--
--  /**
--   * Returns the value of field 'conservationSelected'.
--   * 
--   * @return the value of field 'ConservationSelected'.
--   */
--  public boolean isConservationSelected()
--  {
--    return this._conservationSelected;
--  }
--
--  /**
--   * Returns the value of field 'pidSelected'.
--   * 
--   * @return the value of field 'PidSelected'.
--   */
--  public boolean isPidSelected()
--  {
--    return this._pidSelected;
--  }
--
--  /**
--   * Returns the value of field 'renderGaps'.
--   * 
--   * @return the value of field 'RenderGaps'.
--   */
--  public boolean isRenderGaps()
--  {
--    return this._renderGaps;
--  }
--
--  /**
--   * Returns the value of field 'showAnnotation'.
--   * 
--   * @return the value of field 'ShowAnnotation'.
--   */
--  public boolean isShowAnnotation()
--  {
--    return this._showAnnotation;
--  }
--
--  /**
--   * Returns the value of field 'showBoxes'.
--   * 
--   * @return the value of field 'ShowBoxes'.
--   */
--  public boolean isShowBoxes()
--  {
--    return this._showBoxes;
--  }
--
--  /**
--   * Returns the value of field 'showColourText'.
--   * 
--   * @return the value of field 'ShowColourText'.
--   */
--  public boolean isShowColourText()
--  {
--    return this._showColourText;
--  }
--
--  /**
--   * Returns the value of field 'showConservation'.
--   * 
--   * @return the value of field 'ShowConservation'.
--   */
--  public boolean isShowConservation()
--  {
--    return this._showConservation;
--  }
--
--  /**
--   * Returns the value of field 'showFullId'.
--   * 
--   * @return the value of field 'ShowFullId'.
--   */
--  public boolean isShowFullId()
--  {
--    return this._showFullId;
--  }
--
--  /**
--   * Returns the value of field 'showIdentity'.
--   * 
--   * @return the value of field 'ShowIdentity'.
--   */
--  public boolean isShowIdentity()
--  {
--    return this._showIdentity;
--  }
--
--  /**
--   * Returns the value of field 'showQuality'.
--   * 
--   * @return the value of field 'ShowQuality'.
--   */
--  public boolean isShowQuality()
--  {
--    return this._showQuality;
--  }
--
--  /**
--   * Returns the value of field 'showSequenceFeatures'.
--   * 
--   * @return the value of field 'ShowSequenceFeatures'.
--   */
--  public boolean isShowSequenceFeatures()
--  {
--    return this._showSequenceFeatures;
--  }
--
--  /**
--   * Returns the value of field 'showText'.
--   * 
--   * @return the value of field 'ShowText'.
--   */
--  public boolean isShowText()
--  {
--    return this._showText;
--  }
--
--  /**
--   * Method isValid.
--   * 
--   * @return true if this object is valid according to the schema
--   */
--  public boolean isValid()
--  {
--    try
--    {
--      validate();
--    } catch (org.exolab.castor.xml.ValidationException vex)
--    {
--      return false;
--    }
--    return true;
--  }
--
--  /**
--   * Returns the value of field 'wrapAlignment'.
--   * 
--   * @return the value of field 'WrapAlignment'.
--   */
--  public boolean isWrapAlignment()
--  {
--    return this._wrapAlignment;
--  }
--
--  /**
--   * 
--   * 
--   * @param out
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void marshal(final java.io.Writer out)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, out);
--  }
--
--  /**
--   * 
--   * 
--   * @param handler
--   * @throws java.io.IOException
--   *           if an IOException occurs during marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   */
--  public void marshal(final org.xml.sax.ContentHandler handler)
--          throws java.io.IOException,
--          org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    Marshaller.marshal(this, handler);
--  }
--
--  /**
--   * Sets the value of field 'bgColour'.
--   * 
--   * @param bgColour
--   *          the value of field 'bgColour'.
--   */
--  public void setBgColour(final java.lang.String bgColour)
--  {
--    this._bgColour = bgColour;
--  }
--
--  /**
--   * Sets the value of field 'consThreshold'.
--   * 
--   * @param consThreshold
--   *          the value of field 'consThreshold'.
--   */
--  public void setConsThreshold(final int consThreshold)
--  {
--    this._consThreshold = consThreshold;
--    this._has_consThreshold = true;
--  }
--
--  /**
--   * Sets the value of field 'conservationSelected'.
--   * 
--   * @param conservationSelected
--   *          the value of field 'conservationSelected'.
--   */
--  public void setConservationSelected(final boolean conservationSelected)
--  {
--    this._conservationSelected = conservationSelected;
--    this._has_conservationSelected = true;
--  }
--
--  /**
--   * Sets the value of field 'fontName'.
--   * 
--   * @param fontName
--   *          the value of field 'fontName'.
--   */
--  public void setFontName(final java.lang.String fontName)
--  {
--    this._fontName = fontName;
--  }
--
--  /**
--   * Sets the value of field 'fontSize'.
--   * 
--   * @param fontSize
--   *          the value of field 'fontSize'.
--   */
--  public void setFontSize(final int fontSize)
--  {
--    this._fontSize = fontSize;
--    this._has_fontSize = true;
--  }
--
--  /**
--   * Sets the value of field 'fontStyle'.
--   * 
--   * @param fontStyle
--   *          the value of field 'fontStyle'.
--   */
--  public void setFontStyle(final int fontStyle)
--  {
--    this._fontStyle = fontStyle;
--    this._has_fontStyle = true;
--  }
--
--  /**
--   * Sets the value of field 'height'.
--   * 
--   * @param height
--   *          the value of field 'height'.
--   */
--  public void setHeight(final int height)
--  {
--    this._height = height;
--    this._has_height = true;
--  }
--
--  /**
--   * Sets the value of field 'pidSelected'.
--   * 
--   * @param pidSelected
--   *          the value of field 'pidSelected'.
--   */
--  public void setPidSelected(final boolean pidSelected)
--  {
--    this._pidSelected = pidSelected;
--    this._has_pidSelected = true;
--  }
--
--  /**
--   * Sets the value of field 'pidThreshold'.
--   * 
--   * @param pidThreshold
--   *          the value of field 'pidThreshold'.
--   */
--  public void setPidThreshold(final int pidThreshold)
--  {
--    this._pidThreshold = pidThreshold;
--    this._has_pidThreshold = true;
--  }
--
--  /**
--   * Sets the value of field 'renderGaps'.
--   * 
--   * @param renderGaps
--   *          the value of field 'renderGaps'.
--   */
--  public void setRenderGaps(final boolean renderGaps)
--  {
--    this._renderGaps = renderGaps;
--    this._has_renderGaps = true;
--  }
--
--  /**
--   * Sets the value of field 'showAnnotation'.
--   * 
--   * @param showAnnotation
--   *          the value of field 'showAnnotation'.
--   */
--  public void setShowAnnotation(final boolean showAnnotation)
--  {
--    this._showAnnotation = showAnnotation;
--    this._has_showAnnotation = true;
--  }
--
--  /**
--   * Sets the value of field 'showBoxes'.
--   * 
--   * @param showBoxes
--   *          the value of field 'showBoxes'.
--   */
--  public void setShowBoxes(final boolean showBoxes)
--  {
--    this._showBoxes = showBoxes;
--    this._has_showBoxes = true;
--  }
--
--  /**
--   * Sets the value of field 'showColourText'.
--   * 
--   * @param showColourText
--   *          the value of field 'showColourText'.
--   */
--  public void setShowColourText(final boolean showColourText)
--  {
--    this._showColourText = showColourText;
--    this._has_showColourText = true;
--  }
--
--  /**
--   * Sets the value of field 'showConservation'.
--   * 
--   * @param showConservation
--   *          the value of field 'showConservation'
--   */
--  public void setShowConservation(final boolean showConservation)
--  {
--    this._showConservation = showConservation;
--    this._has_showConservation = true;
--  }
--
--  /**
--   * Sets the value of field 'showFullId'.
--   * 
--   * @param showFullId
--   *          the value of field 'showFullId'.
--   */
--  public void setShowFullId(final boolean showFullId)
--  {
--    this._showFullId = showFullId;
--    this._has_showFullId = true;
--  }
--
--  /**
--   * Sets the value of field 'showIdentity'.
--   * 
--   * @param showIdentity
--   *          the value of field 'showIdentity'.
--   */
--  public void setShowIdentity(final boolean showIdentity)
--  {
--    this._showIdentity = showIdentity;
--    this._has_showIdentity = true;
--  }
--
--  /**
--   * Sets the value of field 'showQuality'.
--   * 
--   * @param showQuality
--   *          the value of field 'showQuality'.
--   */
--  public void setShowQuality(final boolean showQuality)
--  {
--    this._showQuality = showQuality;
--    this._has_showQuality = true;
--  }
--
--  /**
--   * Sets the value of field 'showSequenceFeatures'.
--   * 
--   * @param showSequenceFeatures
--   *          the value of field 'showSequenceFeatures'.
--   */
--  public void setShowSequenceFeatures(final boolean showSequenceFeatures)
--  {
--    this._showSequenceFeatures = showSequenceFeatures;
--    this._has_showSequenceFeatures = true;
--  }
--
--  /**
--   * Sets the value of field 'showText'.
--   * 
--   * @param showText
--   *          the value of field 'showText'.
--   */
--  public void setShowText(final boolean showText)
--  {
--    this._showText = showText;
--    this._has_showText = true;
--  }
--
--  /**
--   * Sets the value of field 'startRes'.
--   * 
--   * @param startRes
--   *          the value of field 'startRes'.
--   */
--  public void setStartRes(final int startRes)
--  {
--    this._startRes = startRes;
--    this._has_startRes = true;
--  }
--
--  /**
--   * Sets the value of field 'startSeq'.
--   * 
--   * @param startSeq
--   *          the value of field 'startSeq'.
--   */
--  public void setStartSeq(final int startSeq)
--  {
--    this._startSeq = startSeq;
--    this._has_startSeq = true;
--  }
--
--  /**
--   * Sets the value of field 'title'.
--   * 
--   * @param title
--   *          the value of field 'title'.
--   */
--  public void setTitle(final java.lang.String title)
--  {
--    this._title = title;
--  }
--
--  /**
--   * Sets the value of field 'width'.
--   * 
--   * @param width
--   *          the value of field 'width'.
--   */
--  public void setWidth(final int width)
--  {
--    this._width = width;
--    this._has_width = true;
--  }
--
--  /**
--   * Sets the value of field 'wrapAlignment'.
--   * 
--   * @param wrapAlignment
--   *          the value of field 'wrapAlignment'.
--   */
--  public void setWrapAlignment(final boolean wrapAlignment)
--  {
--    this._wrapAlignment = wrapAlignment;
--    this._has_wrapAlignment = true;
--  }
--
--  /**
--   * Sets the value of field 'xpos'.
--   * 
--   * @param xpos
--   *          the value of field 'xpos'.
--   */
--  public void setXpos(final int xpos)
--  {
--    this._xpos = xpos;
--    this._has_xpos = true;
--  }
--
--  /**
--   * Sets the value of field 'ypos'.
--   * 
--   * @param ypos
--   *          the value of field 'ypos'.
--   */
--  public void setYpos(final int ypos)
--  {
--    this._ypos = ypos;
--    this._has_ypos = true;
--  }
--
--  /**
--   * Method unmarshal.
--   * 
--   * @param reader
--   * @throws org.exolab.castor.xml.MarshalException
--   *           if object is null or if any SAXException is thrown during
--   *           marshaling
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   * @return the unmarshaled jalview.binding.Viewport
--   */
--  public static jalview.binding.Viewport unmarshal(
--          final java.io.Reader reader)
--          throws org.exolab.castor.xml.MarshalException,
--          org.exolab.castor.xml.ValidationException
--  {
--    return (jalview.binding.Viewport) Unmarshaller.unmarshal(
--            jalview.binding.Viewport.class, reader);
--  }
--
--  /**
--   * 
--   * 
--   * @throws org.exolab.castor.xml.ValidationException
--   *           if this object is an invalid instance according to the schema
--   */
--  public void validate() throws org.exolab.castor.xml.ValidationException
--  {
--    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
--    validator.validate(this);
--  }
++    public java.lang.String getTitle(
++    ) {
++        return this._title;
++    }
++
++    /**
++     * Returns the value of field 'width'.
++     * 
++     * @return the value of field 'Width'.
++     */
++    public int getWidth(
++    ) {
++        return this._width;
++    }
++
++    /**
++     * Returns the value of field 'wrapAlignment'.
++     * 
++     * @return the value of field 'WrapAlignment'.
++     */
++    public boolean getWrapAlignment(
++    ) {
++        return this._wrapAlignment;
++    }
++
++    /**
++     * Returns the value of field 'xpos'.
++     * 
++     * @return the value of field 'Xpos'.
++     */
++    public int getXpos(
++    ) {
++        return this._xpos;
++    }
++
++    /**
++     * Returns the value of field 'ypos'.
++     * 
++     * @return the value of field 'Ypos'.
++     */
++    public int getYpos(
++    ) {
++        return this._ypos;
++    }
++
++    /**
++     * Method hasConsThreshold.
++     * 
++     * @return true if at least one ConsThreshold has been added
++     */
++    public boolean hasConsThreshold(
++    ) {
++        return this._has_consThreshold;
++    }
++
++    /**
++     * Method hasConservationSelected.
++     * 
++     * @return true if at least one ConservationSelected has been
++     * added
++     */
++    public boolean hasConservationSelected(
++    ) {
++        return this._has_conservationSelected;
++    }
++
++    /**
++     * Method hasFontSize.
++     * 
++     * @return true if at least one FontSize has been added
++     */
++    public boolean hasFontSize(
++    ) {
++        return this._has_fontSize;
++    }
++
++    /**
++     * Method hasFontStyle.
++     * 
++     * @return true if at least one FontStyle has been added
++     */
++    public boolean hasFontStyle(
++    ) {
++        return this._has_fontStyle;
++    }
++
++    /**
++     * Method hasHeight.
++     * 
++     * @return true if at least one Height has been added
++     */
++    public boolean hasHeight(
++    ) {
++        return this._has_height;
++    }
++
++    /**
++     * Method hasPidSelected.
++     * 
++     * @return true if at least one PidSelected has been added
++     */
++    public boolean hasPidSelected(
++    ) {
++        return this._has_pidSelected;
++    }
++
++    /**
++     * Method hasPidThreshold.
++     * 
++     * @return true if at least one PidThreshold has been added
++     */
++    public boolean hasPidThreshold(
++    ) {
++        return this._has_pidThreshold;
++    }
++
++    /**
++     * Method hasRenderGaps.
++     * 
++     * @return true if at least one RenderGaps has been added
++     */
++    public boolean hasRenderGaps(
++    ) {
++        return this._has_renderGaps;
++    }
++
++    /**
++     * Method hasShowAnnotation.
++     * 
++     * @return true if at least one ShowAnnotation has been added
++     */
++    public boolean hasShowAnnotation(
++    ) {
++        return this._has_showAnnotation;
++    }
++
++    /**
++     * Method hasShowBoxes.
++     * 
++     * @return true if at least one ShowBoxes has been added
++     */
++    public boolean hasShowBoxes(
++    ) {
++        return this._has_showBoxes;
++    }
++
++    /**
++     * Method hasShowColourText.
++     * 
++     * @return true if at least one ShowColourText has been added
++     */
++    public boolean hasShowColourText(
++    ) {
++        return this._has_showColourText;
++    }
++
++    /**
++     * Method hasShowConservation.
++     * 
++     * @return true if at least one ShowConservation has been added
++     */
++    public boolean hasShowConservation(
++    ) {
++        return this._has_showConservation;
++    }
++
++    /**
++     * Method hasShowFullId.
++     * 
++     * @return true if at least one ShowFullId has been added
++     */
++    public boolean hasShowFullId(
++    ) {
++        return this._has_showFullId;
++    }
++
++    /**
++     * Method hasShowIdentity.
++     * 
++     * @return true if at least one ShowIdentity has been added
++     */
++    public boolean hasShowIdentity(
++    ) {
++        return this._has_showIdentity;
++    }
++
++    /**
++     * Method hasShowQuality.
++     * 
++     * @return true if at least one ShowQuality has been added
++     */
++    public boolean hasShowQuality(
++    ) {
++        return this._has_showQuality;
++    }
++
++    /**
++     * Method hasShowSequenceFeatures.
++     * 
++     * @return true if at least one ShowSequenceFeatures has been
++     * added
++     */
++    public boolean hasShowSequenceFeatures(
++    ) {
++        return this._has_showSequenceFeatures;
++    }
++
++    /**
++     * Method hasShowText.
++     * 
++     * @return true if at least one ShowText has been added
++     */
++    public boolean hasShowText(
++    ) {
++        return this._has_showText;
++    }
++
++    /**
++     * Method hasStartRes.
++     * 
++     * @return true if at least one StartRes has been added
++     */
++    public boolean hasStartRes(
++    ) {
++        return this._has_startRes;
++    }
++
++    /**
++     * Method hasStartSeq.
++     * 
++     * @return true if at least one StartSeq has been added
++     */
++    public boolean hasStartSeq(
++    ) {
++        return this._has_startSeq;
++    }
++
++    /**
++     * Method hasWidth.
++     * 
++     * @return true if at least one Width has been added
++     */
++    public boolean hasWidth(
++    ) {
++        return this._has_width;
++    }
++
++    /**
++     * Method hasWrapAlignment.
++     * 
++     * @return true if at least one WrapAlignment has been added
++     */
++    public boolean hasWrapAlignment(
++    ) {
++        return this._has_wrapAlignment;
++    }
++
++    /**
++     * Method hasXpos.
++     * 
++     * @return true if at least one Xpos has been added
++     */
++    public boolean hasXpos(
++    ) {
++        return this._has_xpos;
++    }
++
++    /**
++     * Method hasYpos.
++     * 
++     * @return true if at least one Ypos has been added
++     */
++    public boolean hasYpos(
++    ) {
++        return this._has_ypos;
++    }
++
++    /**
++     * Returns the value of field 'conservationSelected'.
++     * 
++     * @return the value of field 'ConservationSelected'.
++     */
++    public boolean isConservationSelected(
++    ) {
++        return this._conservationSelected;
++    }
++
++    /**
++     * Returns the value of field 'pidSelected'.
++     * 
++     * @return the value of field 'PidSelected'.
++     */
++    public boolean isPidSelected(
++    ) {
++        return this._pidSelected;
++    }
++
++    /**
++     * Returns the value of field 'renderGaps'.
++     * 
++     * @return the value of field 'RenderGaps'.
++     */
++    public boolean isRenderGaps(
++    ) {
++        return this._renderGaps;
++    }
++
++    /**
++     * Returns the value of field 'showAnnotation'.
++     * 
++     * @return the value of field 'ShowAnnotation'.
++     */
++    public boolean isShowAnnotation(
++    ) {
++        return this._showAnnotation;
++    }
++
++    /**
++     * Returns the value of field 'showBoxes'.
++     * 
++     * @return the value of field 'ShowBoxes'.
++     */
++    public boolean isShowBoxes(
++    ) {
++        return this._showBoxes;
++    }
++
++    /**
++     * Returns the value of field 'showColourText'.
++     * 
++     * @return the value of field 'ShowColourText'.
++     */
++    public boolean isShowColourText(
++    ) {
++        return this._showColourText;
++    }
++
++    /**
++     * Returns the value of field 'showConservation'.
++     * 
++     * @return the value of field 'ShowConservation'.
++     */
++    public boolean isShowConservation(
++    ) {
++        return this._showConservation;
++    }
++
++    /**
++     * Returns the value of field 'showFullId'.
++     * 
++     * @return the value of field 'ShowFullId'.
++     */
++    public boolean isShowFullId(
++    ) {
++        return this._showFullId;
++    }
++
++    /**
++     * Returns the value of field 'showIdentity'.
++     * 
++     * @return the value of field 'ShowIdentity'.
++     */
++    public boolean isShowIdentity(
++    ) {
++        return this._showIdentity;
++    }
++
++    /**
++     * Returns the value of field 'showQuality'.
++     * 
++     * @return the value of field 'ShowQuality'.
++     */
++    public boolean isShowQuality(
++    ) {
++        return this._showQuality;
++    }
++
++    /**
++     * Returns the value of field 'showSequenceFeatures'.
++     * 
++     * @return the value of field 'ShowSequenceFeatures'.
++     */
++    public boolean isShowSequenceFeatures(
++    ) {
++        return this._showSequenceFeatures;
++    }
++
++    /**
++     * Returns the value of field 'showText'.
++     * 
++     * @return the value of field 'ShowText'.
++     */
++    public boolean isShowText(
++    ) {
++        return this._showText;
++    }
++
++    /**
++     * Method isValid.
++     * 
++     * @return true if this object is valid according to the schema
++     */
++    public boolean isValid(
++    ) {
++        try {
++            validate();
++        } catch (org.exolab.castor.xml.ValidationException vex) {
++            return false;
++        }
++        return true;
++    }
++
++    /**
++     * Returns the value of field 'wrapAlignment'.
++     * 
++     * @return the value of field 'WrapAlignment'.
++     */
++    public boolean isWrapAlignment(
++    ) {
++        return this._wrapAlignment;
++    }
++
++    /**
++     * 
++     * 
++     * @param out
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void marshal(
++            final java.io.Writer out)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, out);
++    }
++
++    /**
++     * 
++     * 
++     * @param handler
++     * @throws java.io.IOException if an IOException occurs during
++     * marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     */
++    public void marshal(
++            final org.xml.sax.ContentHandler handler)
++    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        Marshaller.marshal(this, handler);
++    }
++
++    /**
++     * Sets the value of field 'bgColour'.
++     * 
++     * @param bgColour the value of field 'bgColour'.
++     */
++    public void setBgColour(
++            final java.lang.String bgColour) {
++        this._bgColour = bgColour;
++    }
++
++    /**
++     * Sets the value of field 'consThreshold'.
++     * 
++     * @param consThreshold the value of field 'consThreshold'.
++     */
++    public void setConsThreshold(
++            final int consThreshold) {
++        this._consThreshold = consThreshold;
++        this._has_consThreshold = true;
++    }
++
++    /**
++     * Sets the value of field 'conservationSelected'.
++     * 
++     * @param conservationSelected the value of field
++     * 'conservationSelected'.
++     */
++    public void setConservationSelected(
++            final boolean conservationSelected) {
++        this._conservationSelected = conservationSelected;
++        this._has_conservationSelected = true;
++    }
++
++    /**
++     * Sets the value of field 'fontName'.
++     * 
++     * @param fontName the value of field 'fontName'.
++     */
++    public void setFontName(
++            final java.lang.String fontName) {
++        this._fontName = fontName;
++    }
++
++    /**
++     * Sets the value of field 'fontSize'.
++     * 
++     * @param fontSize the value of field 'fontSize'.
++     */
++    public void setFontSize(
++            final int fontSize) {
++        this._fontSize = fontSize;
++        this._has_fontSize = true;
++    }
++
++    /**
++     * Sets the value of field 'fontStyle'.
++     * 
++     * @param fontStyle the value of field 'fontStyle'.
++     */
++    public void setFontStyle(
++            final int fontStyle) {
++        this._fontStyle = fontStyle;
++        this._has_fontStyle = true;
++    }
++
++    /**
++     * Sets the value of field 'height'.
++     * 
++     * @param height the value of field 'height'.
++     */
++    public void setHeight(
++            final int height) {
++        this._height = height;
++        this._has_height = true;
++    }
++
++    /**
++     * Sets the value of field 'pidSelected'.
++     * 
++     * @param pidSelected the value of field 'pidSelected'.
++     */
++    public void setPidSelected(
++            final boolean pidSelected) {
++        this._pidSelected = pidSelected;
++        this._has_pidSelected = true;
++    }
++
++    /**
++     * Sets the value of field 'pidThreshold'.
++     * 
++     * @param pidThreshold the value of field 'pidThreshold'.
++     */
++    public void setPidThreshold(
++            final int pidThreshold) {
++        this._pidThreshold = pidThreshold;
++        this._has_pidThreshold = true;
++    }
++
++    /**
++     * Sets the value of field 'renderGaps'.
++     * 
++     * @param renderGaps the value of field 'renderGaps'.
++     */
++    public void setRenderGaps(
++            final boolean renderGaps) {
++        this._renderGaps = renderGaps;
++        this._has_renderGaps = true;
++    }
++
++    /**
++     * Sets the value of field 'showAnnotation'.
++     * 
++     * @param showAnnotation the value of field 'showAnnotation'.
++     */
++    public void setShowAnnotation(
++            final boolean showAnnotation) {
++        this._showAnnotation = showAnnotation;
++        this._has_showAnnotation = true;
++    }
++
++    /**
++     * Sets the value of field 'showBoxes'.
++     * 
++     * @param showBoxes the value of field 'showBoxes'.
++     */
++    public void setShowBoxes(
++            final boolean showBoxes) {
++        this._showBoxes = showBoxes;
++        this._has_showBoxes = true;
++    }
++
++    /**
++     * Sets the value of field 'showColourText'.
++     * 
++     * @param showColourText the value of field 'showColourText'.
++     */
++    public void setShowColourText(
++            final boolean showColourText) {
++        this._showColourText = showColourText;
++        this._has_showColourText = true;
++    }
++
++    /**
++     * Sets the value of field 'showConservation'.
++     * 
++     * @param showConservation the value of field 'showConservation'
++     */
++    public void setShowConservation(
++            final boolean showConservation) {
++        this._showConservation = showConservation;
++        this._has_showConservation = true;
++    }
++
++    /**
++     * Sets the value of field 'showFullId'.
++     * 
++     * @param showFullId the value of field 'showFullId'.
++     */
++    public void setShowFullId(
++            final boolean showFullId) {
++        this._showFullId = showFullId;
++        this._has_showFullId = true;
++    }
++
++    /**
++     * Sets the value of field 'showIdentity'.
++     * 
++     * @param showIdentity the value of field 'showIdentity'.
++     */
++    public void setShowIdentity(
++            final boolean showIdentity) {
++        this._showIdentity = showIdentity;
++        this._has_showIdentity = true;
++    }
++
++    /**
++     * Sets the value of field 'showQuality'.
++     * 
++     * @param showQuality the value of field 'showQuality'.
++     */
++    public void setShowQuality(
++            final boolean showQuality) {
++        this._showQuality = showQuality;
++        this._has_showQuality = true;
++    }
++
++    /**
++     * Sets the value of field 'showSequenceFeatures'.
++     * 
++     * @param showSequenceFeatures the value of field
++     * 'showSequenceFeatures'.
++     */
++    public void setShowSequenceFeatures(
++            final boolean showSequenceFeatures) {
++        this._showSequenceFeatures = showSequenceFeatures;
++        this._has_showSequenceFeatures = true;
++    }
++
++    /**
++     * Sets the value of field 'showText'.
++     * 
++     * @param showText the value of field 'showText'.
++     */
++    public void setShowText(
++            final boolean showText) {
++        this._showText = showText;
++        this._has_showText = true;
++    }
++
++    /**
++     * Sets the value of field 'startRes'.
++     * 
++     * @param startRes the value of field 'startRes'.
++     */
++    public void setStartRes(
++            final int startRes) {
++        this._startRes = startRes;
++        this._has_startRes = true;
++    }
++
++    /**
++     * Sets the value of field 'startSeq'.
++     * 
++     * @param startSeq the value of field 'startSeq'.
++     */
++    public void setStartSeq(
++            final int startSeq) {
++        this._startSeq = startSeq;
++        this._has_startSeq = true;
++    }
++
++    /**
++     * Sets the value of field 'title'.
++     * 
++     * @param title the value of field 'title'.
++     */
++    public void setTitle(
++            final java.lang.String title) {
++        this._title = title;
++    }
++
++    /**
++     * Sets the value of field 'width'.
++     * 
++     * @param width the value of field 'width'.
++     */
++    public void setWidth(
++            final int width) {
++        this._width = width;
++        this._has_width = true;
++    }
++
++    /**
++     * Sets the value of field 'wrapAlignment'.
++     * 
++     * @param wrapAlignment the value of field 'wrapAlignment'.
++     */
++    public void setWrapAlignment(
++            final boolean wrapAlignment) {
++        this._wrapAlignment = wrapAlignment;
++        this._has_wrapAlignment = true;
++    }
++
++    /**
++     * Sets the value of field 'xpos'.
++     * 
++     * @param xpos the value of field 'xpos'.
++     */
++    public void setXpos(
++            final int xpos) {
++        this._xpos = xpos;
++        this._has_xpos = true;
++    }
++
++    /**
++     * Sets the value of field 'ypos'.
++     * 
++     * @param ypos the value of field 'ypos'.
++     */
++    public void setYpos(
++            final int ypos) {
++        this._ypos = ypos;
++        this._has_ypos = true;
++    }
++
++    /**
++     * Method unmarshal.
++     * 
++     * @param reader
++     * @throws org.exolab.castor.xml.MarshalException if object is
++     * null or if any SAXException is thrown during marshaling
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     * @return the unmarshaled jalview.binding.Viewport
++     */
++    public static jalview.binding.Viewport unmarshal(
++            final java.io.Reader reader)
++    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
++        return (jalview.binding.Viewport) Unmarshaller.unmarshal(jalview.binding.Viewport.class, reader);
++    }
++
++    /**
++     * 
++     * 
++     * @throws org.exolab.castor.xml.ValidationException if this
++     * object is an invalid instance according to the schema
++     */
++    public void validate(
++    )
++    throws org.exolab.castor.xml.ValidationException {
++        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
++        validator.validate(this);
++    }
  
  }
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1,4 -1,4 +1,4 @@@
- #Wed Jun 17 15:04:02 BST 2015
 -#Wed Jun 10 11:15:53 BST 2015
++#Fri Jun 26 14:22:47 BST 2015
  jalview.schemabinding.version2.ThresholdLine=jalview.schemabinding.version2.descriptors.ThresholdLineDescriptor
  jalview.schemabinding.version2.SequenceSetProperties=jalview.schemabinding.version2.descriptors.SequenceSetPropertiesDescriptor
  jalview.schemabinding.version2.StructureState=jalview.schemabinding.version2.descriptors.StructureStateDescriptor
@@@ -29,13 -29,13 +29,16 @@@ implements java.io.Serializabl
      //--------------------------/
  
      /**
--     * handle for the calculation which uses this parameter set
++     * handle for the calculation which uses
++     *  this parameter set
++     *  
       */
      private java.lang.String _calcId;
  
      /**
--     * should the calculation be performed immediately after
--     * loading in order to refresh results
++     * should the calculation be performed
++     *  immediately after loading in order to refresh results
++     *  
       */
      private boolean _needsUpdate = false;
  
@@@ -45,7 -45,7 +48,9 @@@
      private boolean _has_needsUpdate;
  
      /**
--     * should the calculation be automatically performed on edits
++     * should the calculation be automatically
++     *  performed on edits
++     *  
       */
      private boolean _autoUpdate;
  
@@@ -85,7 -85,7 +90,9 @@@
      /**
       * Returns the value of field 'autoUpdate'. The field
       * 'autoUpdate' has the following description: should the
--     * calculation be automatically performed on edits
++     * calculation be automatically
++     *  performed on edits
++     *  
       * 
       * @return the value of field 'AutoUpdate'.
       */
      /**
       * Returns the value of field 'calcId'. The field 'calcId' has
       * the following description: handle for the calculation which
--     * uses this parameter set
++     * uses
++     *  this parameter set
++     *  
       * 
       * @return the value of field 'CalcId'.
       */
      /**
       * Returns the value of field 'needsUpdate'. The field
       * 'needsUpdate' has the following description: should the
--     * calculation be performed immediately after loading in order
--     * to refresh results
++     * calculation be performed
++     *  immediately after loading in order to refresh results
++     *  
       * 
       * @return the value of field 'NeedsUpdate'.
       */
      /**
       * Returns the value of field 'autoUpdate'. The field
       * 'autoUpdate' has the following description: should the
--     * calculation be automatically performed on edits
++     * calculation be automatically
++     *  performed on edits
++     *  
       * 
       * @return the value of field 'AutoUpdate'.
       */
      /**
       * Returns the value of field 'needsUpdate'. The field
       * 'needsUpdate' has the following description: should the
--     * calculation be performed immediately after loading in order
--     * to refresh results
++     * calculation be performed
++     *  immediately after loading in order to refresh results
++     *  
       * 
       * @return the value of field 'NeedsUpdate'.
       */
      /**
       * Sets the value of field 'autoUpdate'. The field 'autoUpdate'
       * has the following description: should the calculation be
--     * automatically performed on edits
++     * automatically
++     *  performed on edits
++     *  
       * 
       * @param autoUpdate the value of field 'autoUpdate'.
       */
      /**
       * Sets the value of field 'calcId'. The field 'calcId' has the
       * following description: handle for the calculation which uses
--     * this parameter set
++     *  this parameter set
++     *  
       * 
       * @param calcId the value of field 'calcId'.
       */
      /**
       * Sets the value of field 'needsUpdate'. The field
       * 'needsUpdate' has the following description: should the
--     * calculation be performed immediately after loading in order
--     * to refresh results
++     * calculation be performed
++     *  immediately after loading in order to refresh results
++     *  
       * 
       * @param needsUpdate the value of field 'needsUpdate'.
       */
@@@ -198,7 -198,7 +198,8 @@@ public class JGroup implements java.io.
  
      /**
       * Optional sequence group ID (only
--     *  needs to be unique for this
++     *  needs to be
++     *  unique for this
       *  alignment)
       *  
       */
      /**
       * Returns the value of field 'id'. The field 'id' has the
       * following description: Optional sequence group ID (only
--     *  needs to be unique for this
++     *  needs to be
++     *  unique for this
       *  alignment)
       *  
       * 
      /**
       * Sets the value of field 'id'. The field 'id' has the
       * following description: Optional sequence group ID (only
--     *  needs to be unique for this
++     *  needs to be
++     *  unique for this
       *  alignment)
       *  
       * 
@@@ -63,7 -63,7 +63,8 @@@ public class Setting implements java.io
  
      /**
       * Optional minimum colour
--     *  for graduated feature
++     *  for graduated
++     *  feature
       *  colour
       *  
       */
       * Returns the value of field 'mincolour'. The field
       * 'mincolour' has the following description: Optional minimum
       * colour
--     *  for graduated feature
++     *  for graduated
++     *  feature
       *  colour
       *  
       * 
      /**
       * Sets the value of field 'mincolour'. The field 'mincolour'
       * has the following description: Optional minimum colour
--     *  for graduated feature
++     *  for graduated
++     *  feature
       *  colour
       *  
       * 
@@@ -199,8 -199,8 +199,17 @@@ public class StructureState implements 
      private boolean _has_colourByJmol;
  
      /**
--     * An identifier for the viewer type, currently either
--     *  JMOL or CHIMERA
++     * An
++     *  identifier
++     *  for
++     *  the
++     *  viewer
++     *  type,
++     *  currently
++     *  either
++     *  JMOL
++     *  or
++     *  CHIMERA
       *  
       */
      private java.lang.String _type;
  
      /**
       * Returns the value of field 'type'. The field 'type' has the
--     * following description: An identifier for the viewer type,
--     * currently either
--     *  JMOL or CHIMERA
++     * following description: An
++     *  identifier
++     *  for
++     *  the
++     *  viewer
++     *  type,
++     *  currently
++     *  either
++     *  JMOL
++     *  or
++     *  CHIMERA
       *  
       * 
       * @return the value of field 'Type'.
  
      /**
       * Sets the value of field 'type'. The field 'type' has the
--     * following description: An identifier for the viewer type,
--     * currently either
--     *  JMOL or CHIMERA
++     * following description: An
++     *  identifier
++     *  for
++     *  the
++     *  viewer
++     *  type,
++     *  currently
++     *  either
++     *  JMOL
++     *  or
++     *  CHIMERA
       *  
       * 
       * @param type the value of field 'type'.
@@@ -113,7 -113,7 +113,8 @@@ public class Tree implements java.io.Se
  
      /**
       * Tree ID added for binding tree
--     *  visualization settings to vamsas
++     *  visualization
++     *  settings to vamsas
       *  document trees in jalview 2.4.1
       *  
       */
      /**
       * Returns the value of field 'id'. The field 'id' has the
       * following description: Tree ID added for binding tree
--     *  visualization settings to vamsas
++     *  visualization
++     *  settings to vamsas
       *  document trees in jalview 2.4.1
       *  
       * 
      /**
       * Sets the value of field 'id'. The field 'id' has the
       * following description: Tree ID added for binding tree
--     *  visualization settings to vamsas
++     *  visualization
++     *  settings to vamsas
       *  document trees in jalview 2.4.1
       *  
       * 
@@@ -383,15 -383,15 +383,16 @@@ public class Viewport implements java.i
  
      /**
       * unique id used by jalview to
--     *  synchronize between stored and
++     *  synchronize
++     *  between stored and
       *  instantiated views
       *  
       */
      private java.lang.String _id;
  
      /**
--     * The viewport id of this viewport's (cdna/protein) coding
--     * complement, if any
++     * The viewport id of this viewport's
++     *  (cdna/protein) coding complement, if any
       *  
       */
      private java.lang.String _complementId;
      /**
       * Returns the value of field 'complementId'. The field
       * 'complementId' has the following description: The viewport
--     * id of this viewport's (cdna/protein) coding complement, if
--     * any
++     * id of this viewport's
++     *  (cdna/protein) coding complement, if any
       *  
       * 
       * @return the value of field 'ComplementId'.
      /**
       * Returns the value of field 'id'. The field 'id' has the
       * following description: unique id used by jalview to
--     *  synchronize between stored and
++     *  synchronize
++     *  between stored and
       *  instantiated views
       *  
       * 
      /**
       * Sets the value of field 'complementId'. The field
       * 'complementId' has the following description: The viewport
--     * id of this viewport's (cdna/protein) coding complement, if
--     * any
++     * id of this viewport's
++     *  (cdna/protein) coding complement, if any
       *  
       * 
       * @param complementId the value of field 'complementId'.
      /**
       * Sets the value of field 'id'. The field 'id' has the
       * following description: unique id used by jalview to
--     *  synchronize between stored and
++     *  synchronize
++     *  between stored and
       *  instantiated views
       *  
       *