/**
* $Id: mxGmlShapeEdge.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;
/**
* This class represents the properties of a JGraph edge.
*/
public class mxGmlShapeEdge
{
private String text = "";
private String style = "";
private String edgeSource;
private String edgeTarget;
/**
* Construct a Shape Edge with text and style.
* @param text
* @param style
*/
public mxGmlShapeEdge(String text, String style)
{
this.text = text;
this.style = style;
}
/**
* Constructs a ShapeEdge from a xml shapeEdgeElement.
* @param shapeEdgeElement
*/
public mxGmlShapeEdge(Element shapeEdgeElement)
{
Element labelElement = mxGmlUtils.childsTag(shapeEdgeElement,
mxGmlConstants.JGRAPH + mxGmlConstants.LABEL);
if (labelElement != null)
{
this.text = labelElement.getAttribute(mxGmlConstants.TEXT);
}
Element styleElement = mxGmlUtils.childsTag(shapeEdgeElement,
mxGmlConstants.JGRAPH + mxGmlConstants.STYLE);
if (styleElement != null)
{
this.style = styleElement.getAttribute(mxGmlConstants.PROPERTIES);
}
}
/**
* Construct an empty Shape Edge Element.
*/
public mxGmlShapeEdge()
{
}
/**
* Generates a ShapeEdge 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 dataEdge = document.createElementNS(mxGmlConstants.JGRAPH_URL,
mxGmlConstants.JGRAPH + mxGmlConstants.SHAPEEDGE);
if (!this.text.equals(""))
{
Element dataEdgeLabel = document.createElementNS(
mxGmlConstants.JGRAPH_URL, mxGmlConstants.JGRAPH
+ mxGmlConstants.LABEL);
dataEdgeLabel.setAttribute(mxGmlConstants.TEXT, this.text);
dataEdge.appendChild(dataEdgeLabel);
}
if (!this.style.equals(""))
{
Element dataEdgeStyle = document.createElementNS(
mxGmlConstants.JGRAPH_URL, mxGmlConstants.JGRAPH
+ mxGmlConstants.STYLE);
dataEdgeStyle.setAttribute(mxGmlConstants.PROPERTIES, this.style);
dataEdge.appendChild(dataEdgeStyle);
}
return dataEdge;
}
public String getText()
{
return text;
}
public void setText(String text)
{
this.text = text;
}
public String getStyle()
{
return style;
}
public void setStyle(String style)
{
this.style = style;
}
public String getEdgeSource()
{
return edgeSource;
}
public void setEdgeSource(String edgeSource)
{
this.edgeSource = edgeSource;
}
public String getEdgeTarget()
{
return edgeTarget;
}
public void setEdgeTarget(String edgeTarget)
{
this.edgeTarget = edgeTarget;
}
}