com.mxgraph.io.graphml.mxGraphMlData Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jgraphx Show documentation
Show all versions of jgraphx Show documentation
JGraphX Swing Component - Java Graph Visualization Library
This is a binary & source redistribution of the original, unmodified JGraphX library originating from:
"https://github.com/jgraph/jgraphx/archive/v3.4.1.3.zip".
The purpose of this redistribution is to make the library available to other Maven projects.
/**
* $Id: mxGraphMlData.java,v 1.1 2011/09/19 15:10:46 gaudenz Exp $
* Copyright (c) 2010 David Benson, Gaudenz Alder
*/
package com.mxgraph.io.graphml;
import java.util.List;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* Represents a Data element in the GML Structure.
*/
public class mxGraphMlData
{
private String dataId = "";
private String dataKey = "";
private String dataValue = "";//not using
private mxGraphMlShapeNode dataShapeNode;
private mxGraphMlShapeEdge dataShapeEdge;
/**
* Construct a data with the params values.
* @param dataId Data's ID
* @param dataKey Reference to a Key Element ID
* @param dataValue Value of the data Element
* @param dataShapeEdge JGraph specific edge properties.
* @param dataShapeNode JGraph specific node properties.
*/
public mxGraphMlData(String dataId, String dataKey, String dataValue,
mxGraphMlShapeEdge dataShapeEdge, mxGraphMlShapeNode dataShapeNode)
{
this.dataId = dataId;
this.dataKey = dataKey;
this.dataValue = dataValue;
this.dataShapeNode = dataShapeNode;
this.dataShapeEdge = dataShapeEdge;
}
/**
* Construct a data from one xml data element.
* @param dataElement Xml Data Element.
*/
public mxGraphMlData(Element dataElement)
{
this.dataId = dataElement.getAttribute(mxGraphMlConstants.ID);
this.dataKey = dataElement.getAttribute(mxGraphMlConstants.KEY);
this.dataValue = "";
Element shapeNodeElement = mxGraphMlUtils.childsTag(dataElement,
mxGraphMlConstants.JGRAPH + mxGraphMlConstants.SHAPENODE);
Element shapeEdgeElement = mxGraphMlUtils.childsTag(dataElement,
mxGraphMlConstants.JGRAPH + mxGraphMlConstants.SHAPEEDGE);
if (shapeNodeElement != null)
{
this.dataShapeNode = new mxGraphMlShapeNode(shapeNodeElement);
}
else if (shapeEdgeElement != null)
{
this.dataShapeEdge = new mxGraphMlShapeEdge(shapeEdgeElement);
}
else
{
NodeList childs = dataElement.getChildNodes();
List childrens = mxGraphMlUtils.copyNodeList(childs);
for (Node n : childrens)
{
if (n.getNodeName().equals("#text"))
{
this.dataValue += n.getNodeValue();
}
}
this.dataValue = this.dataValue.trim();
}
}
/**
* Construct an empty data.
*/
public mxGraphMlData()
{
}
public String getDataId()
{
return dataId;
}
public void setDataId(String dataId)
{
this.dataId = dataId;
}
public String getDataKey()
{
return dataKey;
}
public void setDataKey(String dataKey)
{
this.dataKey = dataKey;
}
public String getDataValue()
{
return dataValue;
}
public void setDataValue(String dataValue)
{
this.dataValue = dataValue;
}
public mxGraphMlShapeNode getDataShapeNode()
{
return dataShapeNode;
}
public void setDataShapeNode(mxGraphMlShapeNode dataShapeNode)
{
this.dataShapeNode = dataShapeNode;
}
public mxGraphMlShapeEdge getDataShapeEdge()
{
return dataShapeEdge;
}
public void setDataShapeEdge(mxGraphMlShapeEdge dataShapeEdge)
{
this.dataShapeEdge = dataShapeEdge;
}
/**
* Generates an Node Data Element from this class.
* @param document Document where the key Element will be inserted.
* @return Returns the generated Elements.
*/
public Element generateNodeElement(Document document)
{
Element data = document.createElement(mxGraphMlConstants.DATA);
data.setAttribute(mxGraphMlConstants.KEY, dataKey);
Element shapeNodeElement = dataShapeNode.generateElement(document);
data.appendChild(shapeNodeElement);
return data;
}
/**
* Generates an Edge Data Element from this class.
* @param document Document where the key Element will be inserted.
* @return Returns the generated Elements.
*/
public Element generateEdgeElement(Document document)
{
Element data = document.createElement(mxGraphMlConstants.DATA);
data.setAttribute(mxGraphMlConstants.KEY, dataKey);
Element shapeEdgeElement = dataShapeEdge.generateElement(document);
data.appendChild(shapeEdgeElement);
return data;
}
}