/** * $Id: mxGraphMlShapeNode.java,v 1.1 2012/11/15 13:26:45 gaudenz Exp $ * Copyright (c) 2010 David Benson, Gaudenz Alder */ package com.mxgraph.io.graphml; import org.w3c.dom.Document; import org.w3c.dom.Element; public class mxGraphMlShapeNode { private String dataHeight = ""; private String dataWidth = ""; private String dataX = ""; private String dataY = ""; private String dataLabel = ""; private String dataStyle = ""; /** * Construct a shape Node with the given parameters * @param dataHeight Node's Height * @param dataWidth Node's Width * @param dataX Node's X coordinate. * @param dataY Node's Y coordinate. * @param dataStyle Node's style. */ public mxGraphMlShapeNode(String dataHeight, String dataWidth, String dataX, String dataY, String dataStyle) { this.dataHeight = dataHeight; this.dataWidth = dataWidth; this.dataX = dataX; this.dataY = dataY; this.dataStyle = dataStyle; } /** * Construct an empty shape Node */ public mxGraphMlShapeNode() { } /** * Construct a Shape Node from a xml Shape Node Element. * @param shapeNodeElement Xml Shape Node Element. */ public mxGraphMlShapeNode(Element shapeNodeElement) { //Defines Geometry Element geometryElement = mxGraphMlUtils.childsTag(shapeNodeElement, mxGraphMlConstants.JGRAPH + mxGraphMlConstants.GEOMETRY); this.dataHeight = geometryElement.getAttribute(mxGraphMlConstants.HEIGHT); this.dataWidth = geometryElement.getAttribute(mxGraphMlConstants.WIDTH); this.dataX = geometryElement.getAttribute(mxGraphMlConstants.X); this.dataY = geometryElement.getAttribute(mxGraphMlConstants.Y); Element styleElement = mxGraphMlUtils.childsTag(shapeNodeElement, mxGraphMlConstants.JGRAPH + mxGraphMlConstants.STYLE); if (styleElement != null) { this.dataStyle = styleElement .getAttribute(mxGraphMlConstants.PROPERTIES); } //Defines Label Element labelElement = mxGraphMlUtils.childsTag(shapeNodeElement, mxGraphMlConstants.JGRAPH + mxGraphMlConstants.LABEL); if (labelElement != null) { this.dataLabel = labelElement.getAttribute(mxGraphMlConstants.TEXT); } } /** * Generates a Shape Node Element from this class. * @param document Document where the key Element will be inserted. * @return Returns the generated Elements. */ public Element generateElement(Document document) { Element dataShape = document.createElementNS(mxGraphMlConstants.JGRAPH_URL, mxGraphMlConstants.JGRAPH + mxGraphMlConstants.SHAPENODE); Element dataShapeGeometry = document.createElementNS( mxGraphMlConstants.JGRAPH_URL, mxGraphMlConstants.JGRAPH + mxGraphMlConstants.GEOMETRY); dataShapeGeometry.setAttribute(mxGraphMlConstants.HEIGHT, dataHeight); dataShapeGeometry.setAttribute(mxGraphMlConstants.WIDTH, dataWidth); dataShapeGeometry.setAttribute(mxGraphMlConstants.X, dataX); dataShapeGeometry.setAttribute(mxGraphMlConstants.Y, dataY); dataShape.appendChild(dataShapeGeometry); if (!this.dataStyle.equals("")) { Element dataShapeStyle = document.createElementNS( mxGraphMlConstants.JGRAPH_URL, mxGraphMlConstants.JGRAPH + mxGraphMlConstants.STYLE); dataShapeStyle.setAttribute(mxGraphMlConstants.PROPERTIES, dataStyle); dataShape.appendChild(dataShapeStyle); } //Sets Label if (!this.dataLabel.equals("")) { Element dataShapeLabel = document.createElementNS( mxGraphMlConstants.JGRAPH_URL, mxGraphMlConstants.JGRAPH + mxGraphMlConstants.LABEL); dataShapeLabel.setAttribute(mxGraphMlConstants.TEXT, dataLabel); dataShape.appendChild(dataShapeLabel); } return dataShape; } public String getDataHeight() { return dataHeight; } public void setDataHeight(String dataHeight) { this.dataHeight = dataHeight; } public String getDataWidth() { return dataWidth; } public void setDataWidth(String dataWidth) { this.dataWidth = dataWidth; } public String getDataX() { return dataX; } public void setDataX(String dataX) { this.dataX = dataX; } public String getDataY() { return dataY; } public void setDataY(String dataY) { this.dataY = dataY; } public String getDataLabel() { return dataLabel; } public void setDataLabel(String dataLabel) { this.dataLabel = dataLabel; } public String getDataStyle() { return dataStyle; } public void setDataStyle(String dataStyle) { this.dataStyle = dataStyle; } }