package hep.aida.ref.xml;

import hep.aida.IAnalysisFactory;
import hep.aida.IBaseStyle;
import hep.aida.IPlotterStyle;
import hep.aida.ref.plotter.BaseStyle;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

import org.freehep.xml.util.XMLWriter;


/**
 * Convert AIDA objects to XML.
 * @author The AIDA team @ SLAC.
 * @version $Id: AidaStyleXMLWriter.java 8704 2006-08-26 00:19:06Z serbo $
 */
public class AidaStyleXMLWriter extends XMLWriter {
    
    // Convenience statice methods for writing IPlotterStyle directly to XML file on disk
    
    public static void writeToFile(String fileName, IPlotterStyle style) throws IOException {
        writeToFile(fileName, style, false);
    }
    
    public static void writeToFile(String fileName, IPlotterStyle style, boolean writeAllParameters) throws IOException {
        File file = new File(fileName);
        if (file.exists()) file.delete();
        
        Writer writer = new BufferedWriter(new FileWriter(file));
        
        AidaStyleXMLWriter xmlWriter = new AidaStyleXMLWriter(writer);
        xmlWriter.plotterStyleToXML(style, writeAllParameters);
        
        xmlWriter.close();
    }
    
    
    public AidaStyleXMLWriter(Writer writer) throws IOException {
        super(writer);
        openDoc("1.0", "ISO-8859-1", false);
        
        referToDTD("aidaPlotterStyle", "http://java.freehep.org/schemas/jaida/1.0/aidaPlotterStyle.dtd");
    }
    
    public void close() throws IOException {
        super.close();
    }
    
    
    public void plotterStyleToXML(IPlotterStyle style) {
        plotterStyleToXML(style, false);
    }    
    public void plotterStyleToXML(IPlotterStyle style, boolean writeAllParameters) {
        
        if (isStyleEmpty(style, writeAllParameters)) return;

        openTag("aidaPlotterStyle");
        
        IBaseStyle[] children = style.children();
        if (children != null) {
            for (int i=0; i");
        IBaseStyle[] children = style.children();
        if (children != null) {
            for (int i=0; i");
                }
            }
        }
        System.out.println("");        
    }
    
 
    // Shows how to use AidaStyleXMLWriter by writing IPlotterStyle to XML file
    public static void main(String[] args) throws IOException {
        
        // Initial setup
        String fileName = "C:/work/Projects/Tests/PlotterStyle.xml";
        boolean writeAllParameters = true;
        
        
        // Create File and Writer
        File file = new File(fileName);
        if (file.exists()) file.delete();
        
        Writer writer = new BufferedWriter(new FileWriter(file));
        AidaStyleXMLWriter xmlWriter = new AidaStyleXMLWriter(writer);
        
        // Create AIDA IPlotterStyle and set several parameters        
        IPlotterStyle style = IAnalysisFactory.create().createPlotterFactory().createPlotterStyle();
        
        style.xAxisStyle().setLabel("xxxxxAxisLabel");
        style.dataStyle().markerStyle().setShape("box");
        style.yAxisStyle().setLabel("yyyyyAxisLabel");
        
        
        
        //AidaStyleXMLWriter.printStyle(style.dataStyle().lineStyle(), true);
        AidaStyleXMLWriter.printStyle(style.xAxisStyle(), true);
        
        // Write it ot XML file
        xmlWriter.plotterStyleToXML(style, writeAllParameters);        
        xmlWriter.close();                
    }
}
 

Ads help maintain this website.