diff --git a/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java b/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java index 9edac3e5f0..0d2b3ad683 100644 --- a/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java +++ b/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java @@ -25,6 +25,7 @@ import com.fr.stable.EnvChangedListener; import com.fr.stable.StringUtils; import com.fr.stable.fun.Authorize; import com.fr.stable.plugin.ExtraChartDesignClassManagerProvider; +import com.fr.stable.plugin.PluginReadListener; import com.fr.stable.plugin.PluginSimplify; import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLableReader; @@ -49,7 +50,6 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh if (classManager == null) { classManager = new ChartTypeInterfaceManager(); chartTypeInterfaces.clear(); - classManager.readDefault(); classManager.readXMLFile(); } return classManager; @@ -63,6 +63,17 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh }); } + static { + GeneralContext.addPluginReadListener(new PluginReadListener() { + @Override + public void success() { + if (chartTypeInterfaces != null) { + readDefault(); + } + } + }); + } + private synchronized static void envChanged() { classManager = null; } @@ -91,7 +102,11 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh } public String getIconPath(String plotID) { - return chartTypeInterfaces.get(plotID).getIconPath(); + if (chartTypeInterfaces.get(plotID) != null) { + return chartTypeInterfaces.get(plotID).getIconPath(); + }else { + return StringUtils.EMPTY; + } } /**