X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Futils%2FXMLUtils.java;fp=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Futils%2FXMLUtils.java;h=e3acefcc2202ea1c46434f22f4d8685cde636917;hb=4898f0ae429e0c61ddba72ca46be89b34bb4df8b;hp=0000000000000000000000000000000000000000;hpb=5a6ac5b535856903629234ad43a71319a91ebee5;p=jalview.git diff --git a/srcjar/fr/orsay/lri/varna/utils/XMLUtils.java b/srcjar/fr/orsay/lri/varna/utils/XMLUtils.java new file mode 100644 index 0000000..e3acefc --- /dev/null +++ b/srcjar/fr/orsay/lri/varna/utils/XMLUtils.java @@ -0,0 +1,148 @@ +package fr.orsay.lri.varna.utils; + +import java.awt.Color; +import java.awt.Font; +import java.util.ArrayList; +import java.util.Formatter; + +import javax.xml.transform.sax.TransformerHandler; + +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.AttributesImpl; + +import fr.orsay.lri.varna.models.rna.ModeleBase; +import fr.orsay.lri.varna.models.rna.RNA; + +public class XMLUtils { + public static String toHTMLNotation(Color c) + { + Formatter f = new Formatter(); + f.format("#%02X%02X%02X", c.getRed(),c.getGreen(),c.getBlue()); + return f.toString(); + } + + public static void toXML(TransformerHandler hd, Font f) throws SAXException + { + toXML(hd, f,""); + } + + + public static String XML_BASELIST_ELEMENT_NAME = "baselist"; + public static String XML_FONT_ELEMENT_NAME = "font"; + public static String XML_ROLE_NAME = "role"; + public static String XML_NAME_NAME = "name"; + public static String XML_FAMILY_NAME = "family"; + public static String XML_STYLE_NAME = "style"; + public static String XML_SIZE_NAME = "size"; + + public static void toXML(TransformerHandler hd, Font f, String role) throws SAXException + { + AttributesImpl atts = new AttributesImpl(); + if (!role.equals("")) + atts.addAttribute("","",XML_ROLE_NAME,"CDATA",""+role); + atts.addAttribute("","",XML_NAME_NAME,"CDATA",""+f.getName()); + //atts.addAttribute("","",XML_FAMILY_NAME,"CDATA",""+f.getFamily()); + atts.addAttribute("","",XML_STYLE_NAME,"CDATA",""+f.getStyle()); + atts.addAttribute("","",XML_SIZE_NAME,"CDATA",""+f.getSize2D()); + hd.startElement("","",XML_FONT_ELEMENT_NAME,atts); + hd.endElement("","",XML_FONT_ELEMENT_NAME); + } + + public static Font getFont(String qName, Attributes attributes) + { + if (qName.equals(XMLUtils.XML_FONT_ELEMENT_NAME)){ + int style = Integer.parseInt(attributes.getValue(XMLUtils.XML_STYLE_NAME)); + String name = (attributes.getValue(XMLUtils.XML_NAME_NAME)); + double size = Double.parseDouble(attributes.getValue(XMLUtils.XML_SIZE_NAME)); + Font f = new Font(name, style, (int)size); + return f.deriveFont((float)size); + } + return null; + } + + + public static void toXML(TransformerHandler hd, ModeleBase mb) throws SAXException + { + ArrayList m = new ArrayList(); + m.add(mb); + toXML(hd, m); + } + + + public static void toXML(TransformerHandler hd, ArrayList m) throws SAXException + { + AttributesImpl atts = new AttributesImpl(); + String result = ""; + for (ModeleBase mb: m) + { + if (!result.equals("")) + result+= ","; + result += mb.getIndex(); + + } + hd.startElement("","",XML_BASELIST_ELEMENT_NAME,atts); + exportCDATAString(hd, result); + hd.endElement("","",XML_BASELIST_ELEMENT_NAME); + } + + public static ArrayList toModeleBaseArray(String baselist, RNA rna) + { + ArrayList result = new ArrayList(); + String[] data = baselist.trim().split(","); + for(int i=0;i