diff --git a/designer-base/src/main/java/com/fr/design/mainframe/simple/SimpleDesignerConfig.java b/designer-base/src/main/java/com/fr/design/mainframe/simple/SimpleDesignerConfig.java index 37cfbb180..0f14fef75 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/simple/SimpleDesignerConfig.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/simple/SimpleDesignerConfig.java @@ -1,5 +1,7 @@ package com.fr.design.mainframe.simple; +import com.fr.json.JSONObject; +import com.fr.stable.StringUtils; import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLable; import com.fr.stable.xml.XMLableReader; @@ -14,7 +16,7 @@ import java.util.Map; */ public class SimpleDesignerConfig implements XMLable { - private static final HashMap configs = new HashMap<>(); + private static final Map configs = new HashMap<>(); private SimpleDesignerConfig(String name) { this.name = name; @@ -22,7 +24,7 @@ public class SimpleDesignerConfig implements XMLable { public static SimpleDesignerConfig getInstance(String name) { SimpleDesignerConfig config = configs.get(name); - if(config == null) { + if (config == null) { config = new SimpleDesignerConfig(name); configs.put(name, config); } @@ -31,42 +33,51 @@ public class SimpleDesignerConfig implements XMLable { private String name = ""; - private HashMap content = new HashMap<>(); + private JSONObject content = new JSONObject(); public void addAttr(String key, String value) { content.put(key, value); } - public Map getContent() { + public JSONObject getContent() { return content; } + public void setContent(JSONObject content) { + this.content = content; + } + + @Override public void readXML(XMLableReader reader) { if (reader.isAttr()) { - content.putAll(reader.getAttrs()); + String rawContent = reader.getAttrAsString("content", null); + if (StringUtils.isNotBlank(rawContent)) { + this.content = new JSONObject(rawContent); + } } } @Override public void writeXML(XMLPrintWriter writer) { writer.startTAG(name); - content.forEach(writer::attr); + if (this.content != null) { + writer.attr("content", this.content.toString()); + } writer.end(); } @Override public Object clone() throws CloneNotSupportedException { SimpleDesignerConfig cloned = (SimpleDesignerConfig) super.clone(); - cloned.content = new HashMap<>(content); + if (this.content != null) { + cloned.content = new JSONObject(this.content.toString()); + } + cloned.name = this.name; return cloned; } public String getName() { return name; } - - public void setName(String name) { - this.name = name; - } }