Example usage for org.dom4j DocumentHelper createDocument

List of usage examples for org.dom4j DocumentHelper createDocument

Introduction

In this page you can find the example usage for org.dom4j DocumentHelper createDocument.

Prototype

public static Document createDocument() 

Source Link

Usage

From source file:com.noterik.bart.fs.legacy.properties.PropertyHandler.java

License:Open Source License

/**
 * This function creates a default property with the specified value
 *
 * @param url/*from  w w w.  java  2 s .  com*/
 * @param type
 * @param value
 */
public static void createPropertyWithValue(String url, String type, String value) {
    String uri = url.substring(0, url.lastIndexOf("/properties"));
    String property = url.substring(url.lastIndexOf("/properties") + 12);
    Document doc = DocumentHelper.createDocument();
    doc.addElement("fsxml").addElement("properties").addElement(property).addText(value);
    Element fsxml = (Element) doc.selectSingleNode("/fsxml");
    String xml = fsxml.asXML();
    saveProperties(uri, type, xml);
}

From source file:com.noterik.bart.fs.legacy.tools.XmlHelper.java

License:Open Source License

/**
 * This function returns a Document with the value of the property set by
 * path/* www. j ava 2 s  .c o m*/
 *
 * @param xml
 *            String containing the property file
 * @param path
 *            The path for the desired value
 * @return Document with the value of the property
 */
public static Document getValueOfProperty(String xml, String path) {
    String xpath = "/fsxml/" + path;
    Document doc = null;
    try {
        doc = DocumentHelper.parseText(xml);
    } catch (DocumentException e) {
        e.printStackTrace();
    }
    Element elem = (Element) doc.selectSingleNode(xpath).clone();
    Document newDoc = DocumentHelper.createDocument();
    Element root = DocumentHelper.createElement("fsxml");
    newDoc.setRootElement(root);
    Element fsxml = (Element) newDoc.selectSingleNode("/fsxml");
    fsxml.add(elem);
    return newDoc;
}

From source file:com.noterik.bart.fs.legacy.tools.XmlHelper.java

License:Open Source License

/**
 * This function will extract the props part of the xml String
 * passed as parameter and return it as fsxml compatible properties.
 *
 * If the node is not found, a default (empty) node will be returned
 *
 * @param xml//from  ww  w  .  jav a 2 s .c o  m
 * @return
 */
public static String getPropsFromXml(String xml) {
    String props = "<fsxml>" + "<properties>" + "</properties>" + "</fsxml>";

    Document doc = null;

    try {
        doc = DocumentHelper.parseText(xml);
    } catch (DocumentException e) {
        logger.error("", e);
    }

    Element properties = (Element) doc.selectSingleNode("/fsxml/ingest/props/properties").clone();

    if (properties != null) {

        Document newDoc = DocumentHelper.createDocument();
        Element fsxml = (Element) newDoc.addElement("fsxml");
        fsxml.add(properties);

        props = fsxml.asXML();
    }
    return props;
}

From source file:com.orange.atk.atkUI.corecli.Campaign.java

License:Apache License

/**
 * Save current campaign in .mcl file/*w  ww .  j  a v a 2  s .  c  o m*/
 * 
 * @param clFileName
 * @throws IOException
 */
public static void save(String clFileName, Campaign camp) {
    Document document = DocumentHelper.createDocument();
    Element root = document.addElement("campaign");
    if (camp.getName() != null)
        root.addAttribute("name", camp.getName());
    if (camp.getAuthor() != null)
        root.addAttribute("author", camp.getAuthor());
    if (camp.getDate() != null)
        root.addAttribute("date", camp.getDate());
    if (camp.getDescription() != null)
        root.addAttribute("description", camp.getDescription());
    int stepNumber = 0;
    for (Step step : camp) {
        step.save(root, stepNumber);
        stepNumber++;
    }
    OutputFormat format = OutputFormat.createPrettyPrint();
    XMLWriter writer = null;
    try {
        writer = new XMLWriter(new FileWriter(clFileName), format);
        writer.write(document);
        writer.close();
    } catch (IOException e) {
        Alert.raise(e, "Unable to save check-list in a file.");
    }
}

From source file:com.orange.atk.atkUI.corecli.reportGenerator.ReportGenerator.java

License:Apache License

/**
 * Create a temporary file which contains only the report part
 * of the security profile./*from   ww w  . j  a  v  a 2 s  .co  m*/
 * @throws DocumentException
 */
protected Document getReportPartOfProfile() {
    Document document = profileParser.getDoc();
    Element doElem = (Element) document.getRootElement().selectSingleNode("//do");
    Document documentReport = DocumentHelper.createDocument();
    documentReport.add(doElem.createCopy());
    return documentReport;
}

From source file:com.orange.atk.atkUI.corecli.reportGenerator.resultLink.ResultLink.java

License:Apache License

/**
 * Create <code>Resultvalue</code> object from result element
 * @param elem//from ww  w  .j  ava  2s .  co m
 * @return the created <code>Resultvalue</code> object.
 */
public static Resultvalue getResultvalue(Element elem, Unmarshaller unmarshaller) {
    String kind = elem.attributeValue("kind");
    Resultvalue resultvalue = null;
    if (kind == null || !kind.equals("use")) {
        Element resultvalueElem = (Element) elem.elements().get(0);
        Document documentResultvalue = DocumentHelper.createDocument();
        documentResultvalue.add(resultvalueElem.createCopy());
        DOMWriter d4Writer = new org.dom4j.io.DOMWriter();
        try {
            org.w3c.dom.Document doc = d4Writer.write(documentResultvalue);
            // Unmarshal the data
            resultvalue = (Resultvalue) unmarshaller.unmarshal(doc);
        } catch (Exception e) {
            Logger.getLogger(ResultLink.class).debug(e);
            e.printStackTrace();
        }
    }
    return resultvalue;
}

From source file:com.orange.atk.atkUI.corecli.utils.XMLOutput.java

License:Apache License

public XMLOutput(String dir, String rootElt) {
    try {/*from www.  j  a  va  2  s  . c o m*/
        File file = new File(dir, rootElt + ".xml");
        this.file = file;
        doc = DocumentHelper.createDocument();
        root = doc.addElement(rootElt);
    } catch (Exception e) {
        Alert.raise(e, "Problem while preparing " + file);
    }
}

From source file:com.orange.atk.atkUI.coregui.PhoneConfigurationWizard.java

License:Apache License

/**
 * call when user has changed configuration in interface
 *///from   www .  j  ava2  s .  c o  m
private void saveconfig() {
    //build xml
    Logger.getLogger(this.getClass()).debug("save config");
    Document configxml = DocumentHelper.createDocument();
    Element root = configxml.addElement("confile");

    Element graphlist = root.addElement("graphlist");

    //global graph
    for (int i = 0; i < graphs.getSize(); i++) {
        graphlist.addElement("graph").addAttribute("name", graphs.getName(i))
                .addAttribute("color", graphs.getColor(i)).addAttribute("xcomment", graphs.getcommentX(i))
                .addAttribute("ycomment", graphs.getcommentY(i)).addAttribute("unit", graphs.getunit(i))
                .addAttribute("scale", graphs.getscale(i)).addAttribute("sampled", graphs.getsampled(i));
    }

    //table Graph
    if (tablemodel != null)
        for (int i = 0; i < tablemodel.getRowCount(); i++) {
            //don't save non-fill row
            String processname = (String) tablemodel.getValueAt(i, 0);
            String type = (String) tablemodel.getValueAt(i, 1);
            String color = (String) tablemodel.getValueAt(i, 2);

            if ("process".equals(processname) || "color".equals(color) || "Cpu or Mem".equals(type)) {
                JOptionPane.showMessageDialog(null,
                        "You must select the process, the color AND the type! \nThe line will be ignored.");
                continue;
            }

            String unit = "";
            String scale = "1";
            if (type.equals("Cpu"))
                unit = "%";
            else if (type.equals("Memory")) {
                unit = "KBytes";
            } else if (type.equals("Data sent")) {
                unit = "KBytes";
                scale = "1000";
            } else if (type.equals("Data received")) {
                unit = "KBytes";
                scale = "1000";
            }
            graphlist.addElement("graph").addAttribute("name", type + "_" + processname)
                    .addAttribute("color", color).addAttribute("xcomment", "time (min)")
                    .addAttribute("ycomment", type + " " + processname).addAttribute("unit", unit)
                    .addAttribute("scale", scale).addAttribute("sampled", "true");
        }

    //marker
    Element markerlist = root.addElement("markerlist");
    for (int i = 0; i < events.getSize(); i++)
        markerlist.addElement("marker").addAttribute("name", events.getName(i)).addAttribute("color", "gray")
                .addAttribute("position", events.getPosition(i).toString());

    OutputFormat format = OutputFormat.createPrettyPrint();
    XMLWriter writer = null;
    try {
        writer = new XMLWriter(new FileWriter(configpath), format);
        writer.write(configxml);

        //
        //            XMLWriter out = new XMLWriter(System.out,format);
        //            out.write(configxml);

    } catch (UnsupportedEncodingException e1) {
        e1.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (writer != null)
            try {
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
    }

}

From source file:com.orange.atk.phone.android.wizard.AndroidWizard.java

License:Apache License

public void printReport() {
    String configXmlFileName = configFileName + ".xml";

    Document configxml = DocumentHelper.createDocument();

    configxml.addComment("  " + phone.getName() + " configuration file   ");
    configxml.addComment("   Screen resolution " + screenWidth + "x" + screenHeight + "   ");

    Element root = configxml.addElement("Android-config");

    Element canalPattern = root.addElement("CanalPattern");

    //keyboards/*w  w  w.  ja  v a2  s .c  om*/
    if (!keyboard.equals(""))
        printKeyMapping("keyboard", keyboard, canalPattern, root);
    if (!keyboard2.equals(""))
        printKeyMapping("keyboard2", keyboard2, canalPattern, root);
    if (!keyboard3.equals(""))
        printKeyMapping("keyboard3", keyboard3, canalPattern, root);

    Set<String> softKeySet = softKeyMap.keySet();

    Element keyMapping = root.addElement("SoftKeyMapping");
    for (String key : softKeySet) {
        keyMapping.addElement("Key").addAttribute("name", key)
                .addAttribute("avgX", "" + softKeyMap.get(key).getX())
                .addAttribute("avgY", "" + softKeyMap.get(key).getY());
    }

    //touchscreen
    if (!touchscreen.equals("")) {
        canalPattern.addElement("Pattern").addAttribute("canal", "touchscreen").addAttribute("value",
                touchscreen.replace("\"", ""));
        Element Touchscreen = root.addElement("Touchscreen");

        Touchscreen.addComment("!!! THIS IS JUST TOUCHSCREEN Elements TEMPLATE !!!");
        Touchscreen
                .addComment("!!! SEE ATK User Guide - Configuration section - and UPDATE following values !!!");
        if (codeX != -1 && codeY != -1) {
            Touchscreen.addComment("!!! Please check following X Y ratioX and ratioY patterns");
            Touchscreen.addElement("Pattern").addAttribute("name", "X").addAttribute("value",
                    "3 " + codeX + " ");
            Touchscreen.addElement("Pattern").addAttribute("name", "Y").addAttribute("value",
                    "3 " + codeY + " ");
            long ratio = maxX * 100 / screenWidth;
            Touchscreen.addElement("Pattern").addAttribute("name", "ratioX").addAttribute("value",
                    String.valueOf((double) ratio / 100.0));
            ratio = maxY * 100 / screenHeight;
            Touchscreen.addElement("Pattern").addAttribute("name", "ratioY").addAttribute("value",
                    String.valueOf((double) ratio / 100.0));
            Touchscreen.addComment("!!! Please update following patterns");
        } else {
            Touchscreen.addElement("Pattern").addAttribute("name", "X").addAttribute("value", "0 0 ");
            Touchscreen.addElement("Pattern").addAttribute("name", "Y").addAttribute("value", "0 0 ");
            Touchscreen.addElement("Pattern").addAttribute("name", "ratioX").addAttribute("value", "1.0");
            Touchscreen.addElement("Pattern").addAttribute("name", "ratioY").addAttribute("value", "1.0");
        }
        Touchscreen.addElement("Pattern").addAttribute("name", "down").addAttribute("value", "0 0 0");
        Touchscreen.addElement("Pattern").addAttribute("name", "downmax").addAttribute("value", "0 0 0");
        Touchscreen.addElement("Pattern").addAttribute("name", "up").addAttribute("value", "0 0 0");
        Touchscreen.addElement("Pattern").addAttribute("name", "flush").addAttribute("value", "0 0 0");
        Touchscreen.addElement("Pattern").addAttribute("name", "flush2").addAttribute("value", "0 2 0");
        Touchscreen.addElement("Threshold").addAttribute("name", "move").addAttribute("value", "15");
        Touchscreen.addElement("Option").addAttribute("name", "sendMouseDownForMove").addAttribute("value",
                "true");
        Touchscreen.addElement("Option").addAttribute("name", "sendMouseEventFirst").addAttribute("value",
                "true");
        Touchscreen.addElement("Option").addAttribute("name", "useMonkeyForPress").addAttribute("value",
                "true");
    }

    //Write the file.
    OutputFormat format = OutputFormat.createPrettyPrint();
    XMLWriter writer = null;
    try {
        writer = new XMLWriter(new FileWriter(configXmlFileName), format);
        writer.write(configxml);
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    //Show a confirm dialog and exit the wizard
    JOptionPane.showConfirmDialog(this,
            "A template of the config file has been created under \n" + configXmlFileName + "\n"
                    + "See ATK User guide to configure the Touchscreen section of this template\n",
            "Success", JOptionPane.CLOSED_OPTION);
    exit(true);

}

From source file:com.ostrichemulators.semtool.ui.components.playsheets.BrowserPlaySheet2.java

License:Open Source License

protected BufferedImage getExportImageFromSVGBlock() throws IOException {
    log.debug("Using SVG block to save image.");
    DOMReader rdr = new DOMReader();
    Document doc = rdr.read(engine.getDocument());
    Document svgdoc = null;/*  w  ww . j  a  va 2 s. com*/
    File svgfile = null;
    try {
        Map<String, String> namespaceUris = new HashMap<>();
        namespaceUris.put("svg", "http://www.w3.org/2000/svg");
        namespaceUris.put("xhtml", "http://www.w3.org/1999/xhtml");

        XPath xp = DocumentHelper.createXPath("//svg:svg");
        xp.setNamespaceURIs(namespaceUris);
        // don't forget about the styles
        XPath stylexp = DocumentHelper.createXPath("//xhtml:style");
        stylexp.setNamespaceURIs(namespaceUris);

        svgdoc = DocumentHelper.createDocument();
        Element svg = null;
        List<?> theSVGElements = xp.selectNodes(doc);
        if (theSVGElements.size() == 1) {
            svg = Element.class.cast(theSVGElements.get(0)).createCopy();
        } else {
            int currentTop = 0;
            int biggestSize = 0;
            for (int i = 0; i < theSVGElements.size(); i++) {
                Element thisElement = Element.class.cast(theSVGElements.get(i)).createCopy();
                int thisSize = thisElement.asXML().length();
                if (thisSize > biggestSize) {
                    currentTop = i;
                    biggestSize = thisSize;
                }
            }
            svg = Element.class.cast(theSVGElements.get(currentTop)).createCopy();
        }

        svgdoc.setRootElement(svg);

        Element oldstyle = Element.class.cast(stylexp.selectSingleNode(doc));
        if (null != oldstyle) {
            Element defs = svg.addElement("defs");
            Element style = defs.addElement("style");
            style.addAttribute("type", "text/css");
            String styledata = oldstyle.getTextTrim();
            style.addCDATA(styledata);
            // put the stylesheet definitions first
            List l = svg.elements();
            l.remove(defs);
            l.add(0, defs);
        }

        // clean up the SVG a little...
        // d3 comes up with coords like
        // M360,27475.063247863247C450,27475.063247863247 450,27269.907692307694 540,27269.907692307694
        XPath cleanxp1 = DocumentHelper.createXPath("//svg:path");
        Pattern pat = Pattern.compile(",([0-9]+)\\.([0-9]{1,2})[0-9]+");
        cleanxp1.setNamespaceURIs(namespaceUris);
        List<?> cleanups = cleanxp1.selectNodes(svgdoc);
        for (Object n : cleanups) {
            Element e = Element.class.cast(n);
            String dstr = e.attributeValue("d");
            Matcher m = pat.matcher(dstr);
            dstr = m.replaceAll(",$1.$2 ");
            e.addAttribute("d", dstr.replaceAll("([0-9])C([0-9])", "$1 C$2").trim());
        }
        XPath cleanxp2 = DocumentHelper.createXPath("//svg:g[@class='node']");
        cleanxp2.setNamespaceURIs(namespaceUris);
        cleanups = cleanxp2.selectNodes(svgdoc);
        for (Object n : cleanups) {
            Element e = Element.class.cast(n);
            String dstr = e.attributeValue("transform");
            Matcher m = pat.matcher(dstr);
            dstr = m.replaceAll(",$1.$2");
            e.addAttribute("transform", dstr.trim());
        }

        svgfile = File.createTempFile("graphviz-", ".svg");
        try (Writer svgw = new BufferedWriter(new FileWriter(svgfile))) {
            OutputFormat format = OutputFormat.createPrettyPrint();
            XMLWriter xmlw = new XMLWriter(svgw, format);
            xmlw.write(svgdoc);
            xmlw.close();

            if (log.isDebugEnabled()) {
                FileUtils.copyFile(svgfile, new File(FileUtils.getTempDirectory(), "graphvisualization.svg"));
            }
        }

        try (Reader svgr = new BufferedReader(new FileReader(svgfile))) {
            TranscoderInput inputSvg = new TranscoderInput(svgr);

            ByteArrayOutputStream baos = new ByteArrayOutputStream((int) svgfile.length());
            TranscoderOutput outputPng = new TranscoderOutput(baos);

            try {
                PNGTranscoder transcoder = new PNGTranscoder();
                transcoder.addTranscodingHint(PNGTranscoder.KEY_INDEXED, 256);
                transcoder.addTranscodingHint(ImageTranscoder.KEY_BACKGROUND_COLOR, Color.WHITE);
                transcoder.transcode(inputSvg, outputPng);
            } catch (Throwable t) {
                log.error(t, t);
            }
            baos.flush();
            baos.close();

            return ImageIO.read(new ByteArrayInputStream(baos.toByteArray()));
        }
    } catch (InvalidXPathException e) {
        log.error(e);
        String msg = "Problem creating image";
        if (null != svgdoc) {
            try {
                File errsvg = new File(FileUtils.getTempDirectory(), "graphvisualization.svg");
                FileUtils.write(errsvg, svgdoc.asXML(), Charset.defaultCharset());
                msg = "Could not create the image. SVG data store here: " + errsvg.getAbsolutePath();
            } catch (IOException ex) {
                // don't care
            }
        }
        throw new IOException(msg, e);
    } finally {
        if (null != svgfile) {
            FileUtils.deleteQuietly(svgfile);
        }
    }
}