📄 componentmanager.java
字号:
package org.enhydra.jawe.base.componentmanager;import java.lang.reflect.Constructor;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Properties;import org.enhydra.jawe.JaWE;import org.enhydra.jawe.JaWEComponent;import org.enhydra.jawe.JaWEComponentSettings;import org.enhydra.jawe.JaWEConstants;import org.enhydra.jawe.JaWEManager;import org.enhydra.jawe.PropertyMgr;import org.enhydra.jawe.ResourceManager;import org.enhydra.jawe.Utils;import org.enhydra.jawe.components.graph.GraphController;import org.enhydra.jawe.components.graph.GraphSettings;import org.enhydra.jawe.components.simplenavigator.SimpleNavigator;import org.enhydra.jawe.components.simplenavigator.SimpleNavigatorSettings;import org.enhydra.jawe.components.xpdlview.XPDLViewController;import org.enhydra.jawe.components.xpdlview.XPDLViewSettings;/** * Used to manage JaWE components. * * @author Sasa Bojanic */public class ComponentManager { public static final String PROPERTYFILE_PATH = "org/enhydra/jawe/base/componentmanager/properties/"; public static final String PROPERTYFILE_NAME = "componentmanager.properties"; protected Map componentMap = new HashMap(); protected PropertyMgr propertyMgr; protected Properties properties = new Properties(); public ComponentManager() { } public void setPropertyMgr(PropertyMgr pm) { this.propertyMgr = pm; } protected void registerComponents(JaWEComponent comp) { JaWEManager.getInstance().getJaWEController().registerJaWEComponent(comp); } public JaWEComponent getComponent(String name) { return (JaWEComponent) componentMap.get(name); } public List getComponents() { return new ArrayList(componentMap.values()); } public void addComponent(JaWEComponent comp) { componentMap.put(comp.getName(), comp); } public void init() { if (propertyMgr == null) { if (Utils.checkFileExistence(PROPERTYFILE_NAME) || Utils.checkResourceExistence(PROPERTYFILE_PATH, PROPERTYFILE_NAME)) { try { Utils.manageProperties(properties, PROPERTYFILE_PATH, PROPERTYFILE_NAME); } catch (Exception e) { } } else { try { Utils.manageProperties(properties, JaWEConstants.JAWE_BASIC_PROPERTYFILE_PATH, JaWEConstants.JAWE_BASIC_PROPERTYFILE_NAME); } catch (Exception e) { } } } else { if (Utils.checkFileExistence(PROPERTYFILE_NAME) || Utils.checkResourceExistence(PROPERTYFILE_PATH, PROPERTYFILE_NAME)) { properties = propertyMgr.loadProperties(PROPERTYFILE_PATH, PROPERTYFILE_NAME); } else { properties = propertyMgr.loadProperties(JaWEConstants.JAWE_BASIC_PROPERTYFILE_PATH, JaWEConstants.JAWE_BASIC_PROPERTYFILE_NAME); } } boolean treeComponentAdded = false; if (JaWE.getJaWEVersion() != JaWE.COMMUNITY_VERSION || JaWE.addOnsAvailable()) { ClassLoader cl = getClass().getClassLoader(); List compToAdd = ResourceManager.getResourceStrings(properties, "Component.Add.", false); // main components String mcomp = ResourceManager.getResourceString(properties, "Main.ComponentOrder"); String[] mcomps = Utils.tokenize(mcomp, " "); for (int i = 0; i < mcomps.length; i++) { int pos = shoudBeAdded(compToAdd, mcomps[i]); if (pos != -1) { compToAdd.remove(pos); String component = ResourceManager.getResourceString(properties, "Component.Add." + mcomps[i]); String settings = ResourceManager.getResourceString(properties, "Settings." + mcomps[i]); try { JaWEComponentSettings set = (JaWEComponentSettings) cl.loadClass(settings) .newInstance(); set.setPropertyMgr(propertyMgr); Constructor c = Class.forName(component).getConstructor(new Class[] { JaWEComponentSettings.class }); JaWEComponent jc = (JaWEComponent) c.newInstance(new Object[] { set }); jc.setType(JaWEComponent.MAIN_COMPONENT); registerComponents(jc); JaWEManager.getInstance() .getLoggingManager() .debug("ComponentManager -> component " + jc.getName() + " added to JaWE"); componentMap.put(jc.getName(), jc); } catch (Throwable thr) { if (JaWE.getJaWEVersion() != JaWE.COMMUNITY_VERSION) { JaWEManager.getInstance() .getLoggingManager() .error("ComponentManager -> error while adding JaWE component " + component + "!", thr); } } } } // special components String scomp = ResourceManager.getResourceString(properties, "Special.ComponentOrder"); String[] scomps = Utils.tokenize(scomp, " "); for (int i = 0; i < scomps.length; i++) { int pos = shoudBeAdded(compToAdd, scomps[i]); if (pos != -1) { compToAdd.remove(pos); String component = ResourceManager.getResourceString(properties, "Component.Add." + scomps[i]); String settings = ResourceManager.getResourceString(properties, "Settings." + scomps[i]); try { JaWEComponentSettings set = (JaWEComponentSettings) cl.loadClass(settings) .newInstance(); set.setPropertyMgr(propertyMgr); Constructor c = Class.forName(component).getConstructor(new Class[] { JaWEComponentSettings.class }); JaWEComponent jc = (JaWEComponent) c.newInstance(new Object[] { set }); jc.setType(JaWEComponent.SPECIAL_COMPONENT); registerComponents(jc); JaWEManager.getInstance() .getLoggingManager() .debug("ComponentManager -> component " + jc.getName() + " added to JaWE"); componentMap.put(jc.getName(), jc); } catch (Throwable thr) { if (JaWE.getJaWEVersion() != JaWE.COMMUNITY_VERSION) { JaWEManager.getInstance() .getLoggingManager() .error("ComponentManager -> error while adding JaWE component " + component + "!", thr); } } } } // tree components String tcomp = ResourceManager.getResourceString(properties, "Tree.ComponentOrder"); String[] tcomps = Utils.tokenize(tcomp, " "); for (int i = 0; i < tcomps.length; i++) { int pos = shoudBeAdded(compToAdd, tcomps[i]); if (pos != -1) { compToAdd.remove(pos); String component = ResourceManager.getResourceString(properties, "Component.Add." + tcomps[i]); String settings = ResourceManager.getResourceString(properties, "Settings." + tcomps[i]); try { JaWEComponentSettings set = (JaWEComponentSettings) cl.loadClass(settings) .newInstance(); set.setPropertyMgr(propertyMgr); Constructor c = Class.forName(component).getConstructor(new Class[] { JaWEComponentSettings.class }); JaWEComponent jc = (JaWEComponent) c.newInstance(new Object[] { set }); jc.setType(JaWEComponent.TREE_COMPONENT); registerComponents(jc); JaWEManager.getInstance() .getLoggingManager() .debug("ComponentManager -> component " + jc.getName() + " added to JaWE");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -