📄 mypreferencemanager.java
字号:
/* * MyPreferenceManager.java * * Created on December 31, 2005, 1:16 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */package net.jxta.myjxta.util.preferences;import net.jxta.ext.config.Resource;import net.jxta.ext.config.ResourceNotFoundException;import net.jxta.logging.Logging;import net.jxta.myjxta.MyJXTA;import net.jxta.myjxta.util.Env;import java.awt.*;import java.util.*;import java.util.List;import java.util.logging.Level;import java.util.logging.Logger;/** * @author polo */public class MyPreferenceManager { private Resource res = null; private static final Logger LOG = Logger.getLogger(MyPreferenceManager.class.getName()); public static final String ROOT = "myjxtaPrefs"; public static final String PREFERENCES = "preferences"; public static final String CATEGORY = "category"; public static final String PREFERENCE_SET = "preferenceSet"; public static final String PREFERENCE = "preference"; public static final String SEP = "/"; public static final String ATTRIBUTE_NAME = "@name"; public static final String ATTRIBUTE_DESCRIPTION = "@description"; public static final String ATTRIBUTE_VISIBLE = "@visible"; public static final String ATTRIBUTE_LABEL = "@label"; public static final String ATTRIBUTE_VALUE = "@value"; public static final String ATTRIBUTE_ENABLE = "@enable"; public static final String ATTRIBUTE_ICON = "@icon"; public static final String ATTRIBUTE_TOOLTIP = "@tooltip"; public static final String ATTRIBUTE_CLASS = "@class"; public static final String ATTRIBUTE_DIMENSION = "@dimension"; public static final String DEFAULT_PREFSET_CLASS_NAME = DefaultPreferenceSet.class.getName(); public static final String CATEGORY_GENERAL = "General"; public static final String CATEGORY_PLUGINS = "plugins"; public static String PREFSET_LEGACY = null;// todo set the defalt icon public static final String DEFAULT_ICON = "TreeTable.PeerPresent"; public static final String PREFERENCESET_LEGACY = "General.Legacy"; public static final String PREFERENCESET_PLUGINPATHS = "plugins.paths"; public static final String PREFERENCE_CHIME = "General.Legacy.Chime"; public static final String PREFERENCE_INSTALL = "plugins.paths.install"; private List<String> categoryList = null; private LinkedHashMap<String, PreferenceSet> prefSetTable = null; static private MyPreferenceManager myinstance = null; static public MyPreferenceManager getInstance() { if (myinstance == null) { myinstance = new MyPreferenceManager(); } return myinstance; } public MyJXTA getMyJxta() { return MyJXTA.getTheInstance(); } public static String buildPath() { return buildPath(null, null, null, null); } public static String buildPath(String categoryName) { return buildPath(categoryName, null, null, null); } public static String buildPath(String categoryName, String preferenceSetName) { return buildPath(categoryName, preferenceSetName, null, null); } public static String buildPath(String categoryName, String preferenceSetName, String preferenceName) { return buildPath(categoryName, preferenceSetName, preferenceName, null); } public static String buildPath(String categoryName, String preferenceSetName, String preferenceName, String attr) { StringBuffer rtn = new StringBuffer(ROOT); rtn.append(SEP); rtn.append(PREFERENCES); if (categoryName != null) { rtn.append(SEP); rtn.append(CATEGORY); rtn.append("["); rtn.append(ATTRIBUTE_NAME); rtn.append("=\""); rtn.append(categoryName); rtn.append("\"]"); if (preferenceSetName != null) { rtn.append(SEP); rtn.append(PREFERENCE_SET); rtn.append("["); rtn.append(ATTRIBUTE_NAME); rtn.append("=\""); rtn.append(preferenceSetName); rtn.append("\"]"); if (preferenceName != null) { rtn.append(SEP); rtn.append(PREFERENCE); rtn.append("["); rtn.append(ATTRIBUTE_NAME); rtn.append("=\""); rtn.append(preferenceName); rtn.append("\"]"); if (attr != null) { rtn.append(SEP); rtn.append(attr); } } } } return rtn.toString(); } private Class loadClass(String className) { Class prefSetClass; try { prefSetClass = Class.forName(className); } catch (LinkageError le) { le.printStackTrace(); prefSetClass = null; // xxx: todo: set status message here } catch (ClassNotFoundException cnfx) { //cnfx.printStackTrace(); prefSetClass = null; // xxx: todo: set status message here } return prefSetClass; } public PreferenceSet instantiatePreferenceSet(String prefSetClassName) { Class prefSetClass; PreferenceSet prefSetInstance = null; StringBuffer errorMessage = new StringBuffer(); /** Load class and test for correct superclass */ prefSetClass = loadClass(prefSetClassName); if (prefSetClass == null) { prefSetClass = loadClass(DEFAULT_PREFSET_CLASS_NAME); } if (prefSetClass != null) { if (Logging.SHOW_FINE && LOG.isLoggable(Level.FINE)) { LOG.fine("class.forName " + prefSetClass.getName()); } Class superClass = prefSetClass.getSuperclass(); if (Logging.SHOW_FINE && LOG.isLoggable(Level.FINE)) { LOG.fine("superClass " + superClass.getName()); } // if superclass is good then instantiate PreferenceSet class if (superClass.getName().equals(PreferenceSet.class.getName())) { if (Logging.SHOW_FINE && LOG.isLoggable(Level.FINE)) { LOG.fine("superClass is good"); } try { Class customPreferenceSet = Class.forName(prefSetClass.getName()); if (PreferenceSet.class.isAssignableFrom(customPreferenceSet)) { prefSetInstance = (PreferenceSet) customPreferenceSet.newInstance(); } } catch (ClassCastException ccx) { ccx.printStackTrace(); errorMessage.append("ClassCast Error in Preference Set Class Instantiation\n\r"); errorMessage.append("Using Default Preference Set Class"); prefSetInstance = instantiatePreferenceSet(DEFAULT_PREFSET_CLASS_NAME); if (prefSetInstance != null && (prefSetInstance instanceof DefaultPreferenceSet)) { ((DefaultPreferenceSet) prefSetInstance).setErrorMessage(errorMessage.toString()); } // xxx: todo: set status message here } catch (InstantiationException ix) { ix.printStackTrace(); errorMessage.append("Instantiation Error in Preference Set Class Instantiation\n\r"); errorMessage.append("Using Default Preference Set Class"); prefSetInstance = instantiatePreferenceSet(DEFAULT_PREFSET_CLASS_NAME); if (prefSetInstance != null && prefSetInstance instanceof DefaultPreferenceSet) { ((DefaultPreferenceSet) prefSetInstance).setErrorMessage(errorMessage.toString()); } // xxx: todo: set status message here } catch (IllegalAccessException iax) { iax.printStackTrace(); errorMessage.append("IllegalAccess Error in Preference Set Class Instantiation\n\r"); errorMessage.append("Using Default Preference Set Class"); prefSetInstance = instantiatePreferenceSet(DEFAULT_PREFSET_CLASS_NAME); if (prefSetInstance != null && prefSetInstance instanceof DefaultPreferenceSet) { ((DefaultPreferenceSet) prefSetInstance).setErrorMessage(errorMessage.toString()); } // xxx: todo: set status message here } catch (LinkageError le) { le.printStackTrace(); errorMessage.append("Linkage Error in Preference Set Class Instantiation\n\r"); errorMessage.append("Using Default Preference Set Class"); prefSetInstance = instantiatePreferenceSet(DEFAULT_PREFSET_CLASS_NAME); if (prefSetInstance != null && prefSetInstance instanceof DefaultPreferenceSet) { ((DefaultPreferenceSet) prefSetInstance).setErrorMessage(errorMessage.toString()); } // xxx: todo: set status message here } catch (ClassNotFoundException cnfx) { cnfx.printStackTrace(); errorMessage.append("ClassNotFound Error in Preference Set Class Instantiation\n\r"); errorMessage.append("Using Default Preference Set Class"); prefSetInstance = instantiatePreferenceSet(DEFAULT_PREFSET_CLASS_NAME);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -