package com.mxgraph.io; import com.mxgraph.util.mxUtils; import com.mxgraph.view.mxStylesheet; import java.util.Hashtable; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; 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 mxStylesheetCodec extends mxObjectCodec { public mxStylesheetCodec() { this(new mxStylesheet()); } public mxStylesheetCodec(Object paramObject) { this(paramObject, null, null, null); } public mxStylesheetCodec(Object paramObject, String[] paramArrayOfString1, String[] paramArrayOfString2, Map paramMap) { super(paramObject, paramArrayOfString1, paramArrayOfString2, paramMap); } public Node encode(mxCodec parammxCodec, Object paramObject) { Element localElement1 = parammxCodec.document.createElement(getName()); if (paramObject instanceof mxStylesheet) { mxStylesheet localmxStylesheet = (mxStylesheet)paramObject; Iterator localIterator1 = localmxStylesheet.getStyles().entrySet().iterator(); while (localIterator1.hasNext()) { Map.Entry localEntry1 = (Map.Entry)localIterator1.next(); Element localElement2 = parammxCodec.document.createElement("add"); String str = (String)localEntry1.getKey(); localElement2.setAttribute("as", str); Map localMap = (Map)localEntry1.getValue(); Iterator localIterator2 = localMap.entrySet().iterator(); while (localIterator2.hasNext()) { Map.Entry localEntry2 = (Map.Entry)localIterator2.next(); Element localElement3 = parammxCodec.document.createElement("add"); localElement3.setAttribute("as", String.valueOf(localEntry2.getKey())); localElement3.setAttribute("value", getStringValue(localEntry2)); localElement2.appendChild(localElement3); } if (localElement2.getChildNodes().getLength() > 0) localElement1.appendChild(localElement2); } } return localElement1; } protected String getStringValue(Map.Entry paramEntry) { if (paramEntry.getValue() instanceof Boolean) return ((((Boolean)paramEntry.getValue()).booleanValue()) ? "1" : "0"); return paramEntry.getValue().toString(); } public Object decode(mxCodec parammxCodec, Node paramNode, Object paramObject) { Object localObject1 = null; if (paramNode instanceof Element) { String str1 = ((Element)paramNode).getAttribute("id"); localObject1 = parammxCodec.objects.get(str1); if (localObject1 == null) { localObject1 = paramObject; if (localObject1 == null) localObject1 = cloneTemplate(paramNode); if ((str1 != null) && (str1.length() > 0)) parammxCodec.putObject(str1, localObject1); } for (paramNode = paramNode.getFirstChild(); paramNode != null; paramNode = paramNode.getNextSibling()) { if ((processInclude(parammxCodec, paramNode, localObject1)) || (!(paramNode.getNodeName().equals("add"))) || (!(paramNode instanceof Element))) continue; String str2 = ((Element)paramNode).getAttribute("as"); if ((str2 == null) || (str2.length() <= 0)) continue; String str3 = ((Element)paramNode).getAttribute("extend"); Hashtable localHashtable = (str3 != null) ? (Map)((mxStylesheet)localObject1).getStyles().get(str3) : null; if (localHashtable == null) localHashtable = new Hashtable(); else localHashtable = new Hashtable(localHashtable); for (Node localNode = paramNode.getFirstChild(); localNode != null; localNode = localNode.getNextSibling()) { if (!(localNode instanceof Element)) continue; Element localElement = (Element)localNode; String str4 = localElement.getAttribute("as"); if (localNode.getNodeName().equals("add")) { String str5 = localNode.getTextContent(); Object localObject2 = null; if ((str5 != null) && (str5.length() > 0)) localObject2 = mxUtils.eval(str5); else localObject2 = localElement.getAttribute("value"); if (localObject2 != null) localHashtable.put(str4, localObject2); } else { if (!(localNode.getNodeName().equals("remove"))) continue; localHashtable.remove(str4); } } ((mxStylesheet)localObject1).putCellStyle(str2, localHashtable); } } return localObject1; } } /* Location: C:\Users\platform-001\Desktop\新建文件夹 (2)\jgraphx.jar * Qualified Name: com.mxgraph.io.mxStylesheetCodec * JD-Core Version: 0.5.3 */