package com.mxgraph.io;
|
|
import com.mxgraph.model.mxCell;
|
import java.util.Iterator;
|
import java.util.Map;
|
import java.util.Set;
|
import org.w3c.dom.Document;
|
import org.w3c.dom.Element;
|
import org.w3c.dom.Node;
|
import org.w3c.dom.NodeList;
|
|
public class mxCellCodec extends mxObjectCodec
|
{
|
public mxCellCodec()
|
{
|
this(new mxCell(), null, new String[] { "parent", "source", "target" }, null);
|
}
|
|
public mxCellCodec(Object paramObject)
|
{
|
this(paramObject, null, null, null);
|
}
|
|
public mxCellCodec(Object paramObject, String[] paramArrayOfString1, String[] paramArrayOfString2, Map<String, String> paramMap)
|
{
|
super(paramObject, paramArrayOfString1, paramArrayOfString2, paramMap);
|
}
|
|
public boolean isExcluded(Object paramObject1, String paramString, Object paramObject2, boolean paramBoolean)
|
{
|
return ((this.exclude.contains(paramString)) || ((paramBoolean) && (paramString.equals("value")) && (paramObject2 instanceof Node) && (((Node)paramObject2).getNodeType() == 1)));
|
}
|
|
public Node afterEncode(mxCodec parammxCodec, Object paramObject, Node paramNode)
|
{
|
if (paramObject instanceof mxCell)
|
{
|
mxCell localmxCell = (mxCell)paramObject;
|
if (localmxCell.getValue() instanceof Node)
|
{
|
Element localElement = (Element)paramNode;
|
paramNode = parammxCodec.getDocument().importNode((Node)localmxCell.getValue(), true);
|
paramNode.appendChild(localElement);
|
String str = localElement.getAttribute("id");
|
((Element)paramNode).setAttribute("id", str);
|
localElement.removeAttribute("id");
|
}
|
}
|
return paramNode;
|
}
|
|
public Node beforeDecode(mxCodec parammxCodec, Node paramNode, Object paramObject)
|
{
|
Element localElement = (Element)paramNode;
|
if (paramObject instanceof mxCell)
|
{
|
mxCell localmxCell = (mxCell)paramObject;
|
String str = getName();
|
Object localObject1;
|
Object localObject2;
|
Object localObject3;
|
if (!(paramNode.getNodeName().equals(str)))
|
{
|
localObject1 = localElement.getElementsByTagName(str).item(0);
|
if ((localObject1 != null) && (((Node)localObject1).getParentNode() == paramNode))
|
{
|
localElement = (Element)localObject1;
|
for (localObject2 = ((Node)localObject1).getPreviousSibling(); (localObject2 != null) && (((Node)localObject2).getNodeType() == 3); localObject2 = localObject3)
|
{
|
localObject3 = ((Node)localObject2).getPreviousSibling();
|
if (((Node)localObject2).getTextContent().trim().length() != 0)
|
continue;
|
((Node)localObject2).getParentNode().removeChild((Node)localObject2);
|
}
|
for (localObject2 = ((Node)localObject1).getNextSibling(); (localObject2 != null) && (((Node)localObject2).getNodeType() == 3); localObject2 = localObject3)
|
{
|
localObject3 = ((Node)localObject2).getPreviousSibling();
|
if (((Node)localObject2).getTextContent().trim().length() != 0)
|
continue;
|
((Node)localObject2).getParentNode().removeChild((Node)localObject2);
|
}
|
((Node)localObject1).getParentNode().removeChild((Node)localObject1);
|
}
|
else
|
{
|
localElement = null;
|
}
|
localObject2 = (Element)paramNode.cloneNode(true);
|
localmxCell.setValue(localObject2);
|
localObject3 = ((Element)localObject2).getAttribute("id");
|
if (localObject3 != null)
|
{
|
localmxCell.setId((String)localObject3);
|
((Element)localObject2).removeAttribute("id");
|
}
|
}
|
else
|
{
|
localmxCell.setId(((Element)paramNode).getAttribute("id"));
|
}
|
if ((localElement != null) && (this.idrefs != null))
|
{
|
localObject1 = this.idrefs.iterator();
|
while (((Iterator)localObject1).hasNext())
|
{
|
localObject2 = (String)((Iterator)localObject1).next();
|
localObject3 = localElement.getAttribute((String)localObject2);
|
if ((localObject3 != null) && (((String)localObject3).length() > 0))
|
{
|
localElement.removeAttribute((String)localObject2);
|
Object localObject4 = parammxCodec.objects.get(localObject3);
|
if (localObject4 == null)
|
localObject4 = parammxCodec.lookup((String)localObject3);
|
if (localObject4 == null)
|
{
|
Node localNode = parammxCodec.getElementById((String)localObject3);
|
if (localNode != null)
|
{
|
Object localObject5 = mxCodecRegistry.getCodec(localNode.getNodeName());
|
if (localObject5 == null)
|
localObject5 = this;
|
localObject4 = ((mxObjectCodec)localObject5).decode(parammxCodec, localNode);
|
}
|
}
|
setFieldValue(paramObject, (String)localObject2, localObject4);
|
}
|
}
|
}
|
}
|
return ((Node)(Node)(Node)(Node)localElement);
|
}
|
}
|
|
/* Location: C:\Users\platform-001\Desktop\新建文件夹 (2)\jgraphx.jar
|
* Qualified Name: com.mxgraph.io.mxCellCodec
|
* JD-Core Version: 0.5.3
|
*/
|