X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Fmodels%2Frna%2FModeleBase.java;fp=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Fmodels%2Frna%2FModeleBase.java;h=9491ed8830d06b968df958be26f0f283e106c566;hb=4f30214e8098748469c6a4269ac2ed6c5750e4b0;hp=0000000000000000000000000000000000000000;hpb=9dabc02511e3a334a5749a504f57f69d6c9017bd;p=jalview.git diff --git a/srcjar/fr/orsay/lri/varna/models/rna/ModeleBase.java b/srcjar/fr/orsay/lri/varna/models/rna/ModeleBase.java new file mode 100644 index 0000000..9491ed8 --- /dev/null +++ b/srcjar/fr/orsay/lri/varna/models/rna/ModeleBase.java @@ -0,0 +1,262 @@ +/* + VARNA is a tool for the automated drawing, visualization and annotation of the secondary structure of RNA, designed as a companion software for web servers and databases. + Copyright (C) 2008 Kevin Darty, Alain Denise and Yann Ponty. + electronic mail : Yann.Ponty@lri.fr + paper mail : LRI, bat 490 Universit� Paris-Sud 91405 Orsay Cedex France + + This file is part of VARNA version 3.1. + VARNA version 3.1 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. + + VARNA version 3.1 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 VARNA version 3.1. + If not, see http://www.gnu.org/licenses. + */ +package fr.orsay.lri.varna.models.rna; + +import java.awt.geom.Point2D; +import java.io.Serializable; + +import javax.xml.transform.sax.TransformerHandler; + +import org.xml.sax.SAXException; +import org.xml.sax.helpers.AttributesImpl; + +import fr.orsay.lri.varna.models.annotations.HighlightRegionAnnotation; +import fr.orsay.lri.varna.models.annotations.TextAnnotation; + + +/** + * The abstract rna base model + * + * @author darty + * + */ +public abstract class ModeleBase implements Serializable, java.lang.Comparable { + + private ModeleBP _BP; + /** + * The base style. + */ + protected ModelBaseStyle _styleBase = new ModelBaseStyle(); + /** + * TRUE if this InterfaceBase has to be colored, else FALSE. + */ + protected Boolean _colorie = new Boolean(true); + /** + * The coordinate representation of this InterfaceBase on the final graphic. + */ + protected VARNAPoint _coords = new VARNAPoint(); + /** + * The nearest loop center of this InterfaceBase. + */ + protected VARNAPoint _center = new VARNAPoint(); + + /** + * The label of this base. + */ + protected String _label = ""; + + protected double _value; + protected int _realIndex = -1; + + public abstract void toXML(TransformerHandler hd) throws SAXException; + + + + /** + * The internal index for this Base + */ + public abstract int getIndex(); + + public abstract String getContent(); + public abstract void setContent(String s); + + /** + * Gets this InterfaceBase style. + * + * @return this InterfaceBase style. + */ + public ModelBaseStyle getStyleBase() { + return _styleBase; + } + + public double getValue() + { + return _value; + } + + public void setValue(double d) + { + _value = d; + } + + + /** + * Sets this InterfaceBase style. + * + * @param base + * - This InterfaceBase new style. + */ + public void setStyleBase(ModelBaseStyle base) { + _styleBase = new ModelBaseStyle(base); + } + + /** + * Gets this InterfaceBase color statement. + * + * @return TRUE if this InterfaceBase has to be colored, else FALSE. + */ + public final Boolean getColorie() { + return _colorie; + } + + /** + * Sets this InterfaceBase color statement. + * + * @param _colorie + * - TRUE if you want this InterfaceBase to be colored, else + * FALSE + */ + public final void setColorie(Boolean _colorie) { + this._colorie = _colorie; + } + + + /** + * Gets this InterfaceBase associated structure element. + * + * @return this InterfaceBase associated structure element. + */ + public int getElementStructure() { + if (_BP==null) + return -1; + else + { + if (_BP.getPartner5()==this) + return _BP.getPartner3().getIndex(); + else + return _BP.getPartner5().getIndex(); + } + } + + + /** + * Sets this InterfaceBase assiocated structure element. + * + * @param structure + * - This new assiocated structure element. + + public void setElementStructure(int structure) { + setElementStructure(structure, new ModeleBP()); + } */ + + /** + * Sets this InterfaceBase associated structure element. + * + * @param structure + * - This new associated structure element. + * @param type + * - The type of this base pair. + */ + public void setElementStructure(int structure, ModeleBP type) { +// _elementStructure = structure; + _BP = type; + + } + + public void removeElementStructure() { +// _elementStructure = -1; + _BP = null; + } + + + /** + * Gets the base pair type for this element. + * + * @return the base pair type for this element. + */ + public ModeleBP getStyleBP() { + return _BP; + } + + /** + * Sets the base pair type for this element. + * + * @param type + * - The new base pair type for this element. + */ + public void setStyleBP(ModeleBP type) { + _BP = type; + } + + public int getBaseNumber() { + return _realIndex; + } + + public void setBaseNumber(int bn) { + _realIndex = bn; + } + + public Point2D.Double getCoords() { + return new Point2D.Double(_coords.x,_coords.y); + } + + public void setCoords(Point2D.Double coords) { + this._coords.x = coords.x; + this._coords.y = coords.y; + } + + public Point2D.Double getCenter() { + return new Point2D.Double(_center.x,_center.y); + } + + public void setCenter(Point2D.Double center) { + this._center.x = center.x; + this._center.y = center.y; + } + + public String getLabel() { + if (_label==null || _label.equals("")) + { + return ""+this.getBaseNumber(); + } + else + { + return _label; + } + + } + + public void setLabel(String s) { + _label= s; + } + + public void setLabel(Point2D.Double center) { + this._center.x = center.x; + this._center.y = center.y; + } + + + public int compareTo(ModeleBase other) { + int nombre1 = ((ModeleBase) other).getIndex(); + int nombre2 = this.getIndex(); + if (nombre1 > nombre2) return -1; + else if(nombre1 == nombre2) return 0; + else return 1; + } + + public static String XML_VAR_TYPE_NAME = "type"; + public static String XML_VAR_INDEX_NAME = "index"; + public static String XML_VAR_LABEL_NAME = "label"; + public static String XML_VAR_VALUE_NAME = "val"; + public static String XML_VAR_POSITION_NAME = "pos"; + public static String XML_VAR_CENTER_NAME = "center"; + public static String XML_VAR_NUMBER_NAME = "num"; + public static String XML_VAR_CUSTOM_DRAWN_NAME = "custom"; + + +}