/**
* $Id: mxGmlShapeNode.java,v 1.1 2010-09-08 14:52:50 david Exp $
* Copyright (c) 2010 David Benson, Gaudenz Alder
*/
package com.mxgraph.io.gml;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class mxGmlShapeNode
{
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 mxGmlShapeNode(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 mxGmlShapeNode()
{
}
/**
* Construct a Shape Node from a xml Shape Node Element.
* @param shapeNodeElement Xml Shape Node Element.
*/
public mxGmlShapeNode(Element shapeNodeElement)
{
//Defines Geometry
Element geometryElement = mxGmlUtils.childsTag(shapeNodeElement,
mxGmlConstants.JGRAPH + mxGmlConstants.GEOMETRY);
this.dataHeight = geometryElement.getAttribute(mxGmlConstants.HEIGHT);
this.dataWidth = geometryElement.getAttribute(mxGmlConstants.WIDTH);
this.dataX = geometryElement.getAttribute(mxGmlConstants.X);
this.dataY = geometryElement.getAttribute(mxGmlConstants.Y);
Element styleElement = mxGmlUtils.childsTag(shapeNodeElement,
mxGmlConstants.JGRAPH + mxGmlConstants.STYLE);
if (styleElement != null)
{
this.dataStyle = styleElement
.getAttribute(mxGmlConstants.PROPERTIES);
}
//Defines Label
Element labelElement = mxGmlUtils.childsTag(shapeNodeElement,
mxGmlConstants.JGRAPH + mxGmlConstants.LABEL);
if (labelElement != null)
{
this.dataLabel = labelElement.getAttribute(mxGmlConstants.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(mxGmlConstants.JGRAPH_URL,
mxGmlConstants.JGRAPH + mxGmlConstants.SHAPENODE);
Element dataShapeGeometry = document.createElementNS(
mxGmlConstants.JGRAPH_URL, mxGmlConstants.JGRAPH
+ mxGmlConstants.GEOMETRY);
dataShapeGeometry.setAttribute(mxGmlConstants.HEIGHT, dataHeight);
dataShapeGeometry.setAttribute(mxGmlConstants.WIDTH, dataWidth);
dataShapeGeometry.setAttribute(mxGmlConstants.X, dataX);
dataShapeGeometry.setAttribute(mxGmlConstants.Y, dataY);
dataShape.appendChild(dataShapeGeometry);
if (!this.dataStyle.equals(""))
{
Element dataShapeStyle = document.createElementNS(
mxGmlConstants.JGRAPH_URL, mxGmlConstants.JGRAPH
+ mxGmlConstants.STYLE);
dataShapeStyle.setAttribute(mxGmlConstants.PROPERTIES, dataStyle);
dataShape.appendChild(dataShapeStyle);
}
//Sets Label
if (!this.dataLabel.equals(""))
{
Element dataShapeLabel = document.createElementNS(
mxGmlConstants.JGRAPH_URL, mxGmlConstants.JGRAPH
+ mxGmlConstants.LABEL);
dataShapeLabel.setAttribute(mxGmlConstants.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;
}
}