X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src2%2Ffr%2Forsay%2Flri%2Fvarna%2Fmodels%2Fannotations%2FChemProbAnnotation.java;fp=src2%2Ffr%2Forsay%2Flri%2Fvarna%2Fmodels%2Fannotations%2FChemProbAnnotation.java;h=0000000000000000000000000000000000000000;hb=d27359893c99db0e749a59d8a7ab73ea751da09e;hp=83c215862796b3e1f121b315137e0cfb9bdeac0e;hpb=9f55415c9f8005e9dcd8243453883ff853fd5b76;p=jalview.git diff --git a/src2/fr/orsay/lri/varna/models/annotations/ChemProbAnnotation.java b/src2/fr/orsay/lri/varna/models/annotations/ChemProbAnnotation.java deleted file mode 100644 index 83c2158..0000000 --- a/src2/fr/orsay/lri/varna/models/annotations/ChemProbAnnotation.java +++ /dev/null @@ -1,260 +0,0 @@ -package fr.orsay.lri.varna.models.annotations; - -import java.awt.Color; -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.rna.ModeleBase; -import fr.orsay.lri.varna.utils.XMLUtils; - - -public class ChemProbAnnotation implements Serializable { - - public static final String HEADER_TEXT = "ChemProbAnnotation"; - - /** - * - */ - private static final long serialVersionUID = 5833315460145031242L; - - - public enum ChemProbAnnotationType - { - TRIANGLE, - ARROW, - PIN, - DOT; - }; - - public static double DEFAULT_INTENSITY = 1.0; - public static ChemProbAnnotationType DEFAULT_TYPE = ChemProbAnnotationType.ARROW; - public static Color DEFAULT_COLOR = Color.blue.darker(); - - private ModeleBase _mbfst; - private ModeleBase _mbsnd; - private Color _color; - private double _intensity; - private ChemProbAnnotationType _type; - private boolean _outward; - - public static String XML_ELEMENT_NAME = "ChemProbAnnotation"; - public static String XML_VAR_INDEX5_NAME = "Index5"; - public static String XML_VAR_INDEX3_NAME = "Index3"; - public static String XML_VAR_COLOR_NAME = "Color"; - public static String XML_VAR_INTENSITY_NAME = "Intensity"; - public static String XML_VAR_TYPE_NAME = "Type"; - public static String XML_VAR_OUTWARD_NAME = "Outward"; - - public void toXML(TransformerHandler hd) throws SAXException - { - AttributesImpl atts = new AttributesImpl(); - atts.addAttribute("","",XML_VAR_INDEX5_NAME,"CDATA",""+_mbfst.getIndex()); - atts.addAttribute("","",XML_VAR_INDEX3_NAME,"CDATA",""+_mbsnd.getIndex()); - atts.addAttribute("","",XML_VAR_COLOR_NAME,"CDATA",XMLUtils.toHTMLNotation(_color)); - atts.addAttribute("","",XML_VAR_INTENSITY_NAME,"CDATA",""+_intensity); - atts.addAttribute("","",XML_VAR_TYPE_NAME,"CDATA",""+_type); - atts.addAttribute("","",XML_VAR_OUTWARD_NAME,"CDATA",""+_outward); - hd.startElement("","",XML_ELEMENT_NAME,atts); - hd.endElement("","",XML_ELEMENT_NAME); - } - - - public ChemProbAnnotation(ModeleBase mbfst, ModeleBase mbsnd, String styleDesc) { - this(mbfst,mbsnd); - applyStyle(styleDesc); - } - - public ChemProbAnnotation(ModeleBase mbfst, ModeleBase mbsnd) { - this(mbfst,mbsnd,ChemProbAnnotation.DEFAULT_TYPE,ChemProbAnnotation.DEFAULT_INTENSITY); - } - - public ChemProbAnnotation(ModeleBase mbfst, ModeleBase mbsnd, double intensity) { - this(mbfst,mbsnd,ChemProbAnnotation.DEFAULT_TYPE,intensity); - } - - public ChemProbAnnotation(ModeleBase mbfst, ModeleBase mbsnd, ChemProbAnnotationType type) { - this(mbfst,mbsnd,type,ChemProbAnnotation.DEFAULT_INTENSITY); - } - - public ChemProbAnnotation(ModeleBase mbfst, ModeleBase mbsnd, ChemProbAnnotationType type, double intensity) { - this(mbfst,mbsnd, type, intensity, DEFAULT_COLOR, true); - } - - public ChemProbAnnotation(ModeleBase mbfst, ModeleBase mbsnd, ChemProbAnnotationType type, double intensity, Color color, boolean out) { - if (mbfst.getIndex()>mbsnd.getIndex()) - { - ModeleBase tmp = mbsnd; - mbsnd = mbfst; - mbfst = tmp; - } - _mbfst = mbfst; - _mbsnd = mbsnd; - _type = type; - _intensity = intensity; - _color = color; - _outward = out; - } - - public boolean isOut() - { - return _outward; - } - - public void setOut(boolean b) - { - _outward = b; - } - - public Color getColor() - { - return _color; - } - - public double getIntensity() - { - return _intensity; - } - - public ChemProbAnnotationType getType() - { - return _type; - } - - public void setColor(Color c){ - _color = c; - } - - public void setIntensity(double d){ - _intensity = d; - } - - public Point2D.Double getAnchorPosition() - { - Point2D.Double result = new Point2D.Double( - (_mbfst.getCoords().x+_mbsnd.getCoords().x)/2.0, - (_mbfst.getCoords().y+_mbsnd.getCoords().y)/2.0); - return result; - } - - public Point2D.Double getDirVector() - { - Point2D.Double norm = getNormalVector(); - Point2D.Double result = new Point2D.Double(-norm.y,norm.x); - Point2D.Double anchor = getAnchorPosition(); - Point2D.Double center = new Point2D.Double( - (_mbfst.getCenter().x+_mbsnd.getCenter().x)/2.0, - (_mbfst.getCenter().y+_mbsnd.getCenter().y)/2.0); - Point2D.Double vradius = new Point2D.Double( - (center.x-anchor.x)/2.0, - (center.y-anchor.y)/2.0); - if (_outward) - { - if (result.x*vradius.x+result.y*vradius.y>0) - { - return new Point2D.Double(-result.x,-result.y); - } - } - else - { - if (result.x*vradius.x+result.y*vradius.y<0) - { - return new Point2D.Double(-result.x,-result.y); - } - } - return result; - } - public Point2D.Double getNormalVector() - { - Point2D.Double tmp; - if (_mbfst==_mbsnd) - { - tmp = new Point2D.Double( - (-(_mbsnd.getCenter().y-_mbsnd.getCoords().y)), - ((_mbsnd.getCenter().x-_mbsnd.getCoords().x))); - } - else - { - tmp = new Point2D.Double( - (_mbsnd.getCoords().x-_mbfst.getCoords().x)/2.0, - (_mbsnd.getCoords().y-_mbfst.getCoords().y)/2.0); - } - - double norm = tmp.distance(0, 0); - Point2D.Double result = new Point2D.Double(tmp.x/norm,tmp.y/norm); - return result; - } - - public static ChemProbAnnotationType annotTypeFromString(String value) - { - if (value.toLowerCase().equals("arrow")) - {return ChemProbAnnotationType.ARROW;} - else if (value.toLowerCase().equals("triangle")) - {return ChemProbAnnotationType.TRIANGLE;} - else if (value.toLowerCase().equals("pin")) - {return ChemProbAnnotationType.PIN;} - else if (value.toLowerCase().equals("dot")) - {return ChemProbAnnotationType.DOT;} - else - {return ChemProbAnnotationType.ARROW;} - } - - - public void applyStyle(String styleDesc) - { - String[] chemProbs = styleDesc.split(","); - for (int i = 0; i < chemProbs.length; i++) { - String thisStyle = chemProbs[i]; - String[] data = thisStyle.split("="); - if (data.length==2) - { - String name = data[0]; - String value = data[1]; - if (name.toLowerCase().equals("color")) - { - Color c = Color.decode(value); - if (c==null) - { c = _color; } - setColor(c); - } - else if (name.toLowerCase().equals("intensity")) - { - _intensity = Double.parseDouble(value); - } - else if (name.toLowerCase().equals("dir")) - { - _outward = value.toLowerCase().equals("out"); - } - else if (name.toLowerCase().equals("glyph")) - { - _type= annotTypeFromString(value); - } - } - } - } - - public void setType(ChemProbAnnotationType s) - { - _type = s; - } - - public ChemProbAnnotation clone() - { - ChemProbAnnotation result = new ChemProbAnnotation(this._mbfst,this._mbsnd); - result._intensity = _intensity; - result._type = _type; - result._color= _color; - result._outward = _outward; - return result; - } - - public String toString() - { - return "Chem. prob. "+this._type+" Base#"+this._mbfst.getBaseNumber()+"-"+this._mbsnd.getBaseNumber(); - } - -}