📄 oyoahafilethemeloader.java
字号:
{ /*if(debug!=null) { debug.println("ERROR create a object from a class name: " + e.toString()); }*/ } //print info about the correct way to built this object debug.println("<br><hr><font color=red>Maybe wrong constructor for: </font>" + _name); try { Class c = loadClass(_name); Constructor[] constructor = c.getConstructors(); for(int i=0;i<constructor.length;i++) { debug.println(""); debug.println("<object type=\"Object\">"); debug.println("<name>THE_OBJECT_NAME_HERE</name>"); debug.println("<data>" + _name + "</data>"); Class[] classes = constructor[i].getParameterTypes(); for(int u=0;u<classes.length;u++) { if(classes[u].getName().equals("java.lang.Integer")) debug.println("<para type=\"Integer\">"); else if(classes[u].getName().equals("java.lang.Long")) debug.println("<para type=\"Long\">"); else if(classes[u].getName().equals("java.lang.Short")) debug.println("<para type=\"Short\">"); else if(classes[u].getName().equals("java.lang.Double")) debug.println("<para type=\"Double\">"); else if(classes[u].getName().equals("java.lang.Float")) debug.println("<para type=\"Float\">"); else if(classes[u].getName().equals("java.lang.Boolean")) debug.println("<para type=\"Boolean\">"); else if(classes[u].getName().equals("java.lang.String")) debug.println("<para type=\"String\">"); else if(classes[u].getName().equals("java.awt.Image")) debug.println("<para type=\"Image\">"); else if(classes[u].getName().equals("javax.swing.Icon")) debug.println("<para type=\"Icon\">"); else if(classes[u].getName().equals("java.awt.Font")) debug.println("<para type=\"Font\">"); else if(classes[u].getName().equals("java.awt.Color")) debug.println("<para type=\"Color\">"); else if(classes[u].getName().equals("java.awt.Insets")) debug.println("<para type=\"Insets\">"); else if(classes[u].getName().equals("java.awt.Dimension")) debug.println("<para type=\"Dimension\">"); else if(classes[u].getName().equals("java.awt.Rectangle")) debug.println("<para type=\"Rectangle\">"); else debug.println("<para type=\"" + classes[u] + "\">"); debug.println("<data>TODO</data>"); debug.println("</para>"); } debug.println("</object>"); debug.println(""); } } catch(Exception e) { debug.println("<font color=red>ERROR unabled to print info about this class: </font>" + _name + " - " + e.toString()); debug.println(""); } return null; } /** * create a object from a class name */ public Object createObject(String _name, Object[] object) { try { Class c = loadClass(_name); Constructor[] constructor = c.getConstructors(); for(int i=0;i<constructor.length;i++) { try { return constructor[i].newInstance(object); } catch(Exception e) { /*if(debug!=null) { debug.println("ERROR create a object from a class name: " + e.toString()); }*/ } } } catch(Exception e) { /*if(debug!=null) { debug.println("ERROR create a object from a class name: " + e.toString()); }*/ } //print info about the correct way to built this object debug.println("<br><hr><font color=red>Maybe wrong constructor for: </font>" + _name); try { Class c = loadClass(_name); Constructor[] constructor = c.getConstructors(); for(int i=0;i<constructor.length;i++) { debug.println(""); debug.println("<object type=\"Object\">"); debug.println("<name>THE_OBJECT_NAME_HERE</name>"); debug.println("<data>" + _name + "</data>"); Class[] classes = constructor[i].getParameterTypes(); for(int u=0;u<classes.length;u++) { if(classes[u].getName().equals("java.lang.Integer")) debug.println("<para type=\"Integer\">"); else if(classes[u].getName().equals("java.lang.Long")) debug.println("<para type=\"Long\">"); else if(classes[u].getName().equals("java.lang.Short")) debug.println("<para type=\"Short\">"); else if(classes[u].getName().equals("java.lang.Double")) debug.println("<para type=\"Double\">"); else if(classes[u].getName().equals("java.lang.Float")) debug.println("<para type=\"Float\">"); else if(classes[u].getName().equals("java.lang.Boolean")) debug.println("<para type=\"Boolean\">"); else if(classes[u].getName().equals("java.lang.String")) debug.println("<para type=\"String\">"); else if(classes[u].getName().equals("java.awt.Image")) debug.println("<para type=\"Image\">"); else if(classes[u].getName().equals("javax.swing.Icon")) debug.println("<para type=\"Icon\">"); else if(classes[u].getName().equals("java.awt.Font")) debug.println("<para type=\"Font\">"); else if(classes[u].getName().equals("java.awt.Color")) debug.println("<para type=\"Color\">"); else if(classes[u].getName().equals("java.awt.Insets")) debug.println("<para type=\"Insets\">"); else if(classes[u].getName().equals("java.awt.Dimension")) debug.println("<para type=\"Dimension\">"); else if(classes[u].getName().equals("java.awt.Rectangle")) debug.println("<para type=\"Rectangle\">"); else debug.println("<para type=\"" + classes[u] + "\">"); debug.println("<data>TODO</data>"); debug.println("</para>"); } debug.println("</object>"); debug.println(""); } } catch(Exception e) { debug.println("<font color=red>ERROR unabled to print info about this class: </font>" + _name + " - " + e.toString()); debug.println(""); } return null; } /** * */ /*public Object readProperty(String key, String data) { try { key = key.toLowerCase(); if(key.startsWith("oyoaha") || key.startsWith("Oyoaha")) { return data; } else if(key.startsWith("sound") || key.startsWith("Sound")) { return data; } else if(key.endsWith("foreground") || key.endsWith("background") || key.endsWith("color") || key.endsWith("shadow") || key.endsWith("highlight") || key.endsWith("focus")) { return OyoahaThemeLoaderUtilities.readColor(data); } else if(key.endsWith("font")) { return OyoahaThemeLoaderUtilities.readFont(data); } else if(key.endsWith("icon")) { return readIcon(data); } else if(data!=null) { if(data.equalsIgnoreCase("true") || data.equalsIgnoreCase("false")) return new Boolean(data); return new Integer(data); } } catch(Exception e) { /*if(debug!=null) { debug.println("ERROR readProperty: " + e.toString()); }*/ /*} return null; }*///------------------------------------------------------------------------------// INNER CLASS//------------------------------------------------------------------------------ public class OyoahaThemeHandler extends HandlerBase { protected String value; protected String type; protected Stack stack; protected Hashtable table; protected OyoahaThemeLoader loader; public OyoahaThemeHandler(OyoahaThemeLoader _loader, OyoahaLookAndFeel _lnf, OyoahaTheme _theme) { loader = _loader; table = new Hashtable(); table.put("LOOKANDFEEL", _lnf); table.put("CLASSLOADER", _loader); table.put("THEME", _theme); table.put("SCHEME", _lnf.getOyoahaThemeScheme()); /*if(debug!=null) { debug.println("create a OyoahaThemeHandler"); }*/ } public void attribute(String name, String value, boolean isSpecified) { name = name.toLowerCase(); if(name.equals("type")) { type = value; } } public void doctypeDecl(String name, String publicId, String systemId) throws Exception { if (!name.equalsIgnoreCase("OYOAHATHEME")) { throw new Exception("Not a valid OyoahaTheme file !"); } } public void charData(char[] c, int off, int len) { value = new String(c, off, len); } public void startElement(String name) { if (name.equalsIgnoreCase("object")) { ObjectLoader l = new ObjectLoader(this); l.setType(type); stack.push(l); } else if (name.equalsIgnoreCase("para")) { ObjectLoader l = new ObjectLoader(this); l.setType(type); stack.push(l); } } public void endElement(String name) { if (name.equalsIgnoreCase("object")) { ObjectLoader l = (ObjectLoader)stack.pop(); Object o = l.getObject(); debug.println("<BIG> RESULT: </BIG> <font color=blue>" + l.getName() + "</font> <font color=purple>" + o + "</font><hr>"); debug.println(""); if(o!=null) table.put(l.getName(), o); else table.put(l.getName(), new NullTag()); } else if (name.equalsIgnoreCase("para")) { ObjectLoader l = (ObjectLoader)stack.pop(); ObjectLoader l2 = (ObjectLoader)stack.peek(); l2.addObject(l.getObject()); } else if (name.equalsIgnoreCase("name")) { ObjectLoader l = (ObjectLoader)stack.peek(); l.setName(value); } else if (name.equalsIgnoreCase("data")) { ObjectLoader l = (ObjectLoader)stack.peek(); l.setData(value); } } public void startDocument() { stack = new Stack(); } public Object getObject(String _key) { return table.get(_key); } public Hashtable getHashtable() { return table; } } public class ObjectLoader { protected String name; protected String data; protected String type; protected Vector objects; protected OyoahaThemeHandler gThemeHandler; public ObjectLoader(OyoahaThemeHandler _gThemeHandler) { gThemeHandler = _gThemeHandler; objects = new Vector(); /*if(debug!=null) { debug.println("create a ObjectLoader"); }*/ } public void setName(String _name) { name = _name; } public String getName() { return name; } public void setData(String _data) { data = _data; } public void setType(String _type) { type = _type; } public void addObject(Object _object) { objects.addElement(_object); } public Object getObject() { Object[] o = new Object[objects.size()]; objects.copyInto(o); return getObject(o); } protected final Object getObject(Object[] object) { if(type.equals("null")) debug.println("getObject type: <font color=blue>" + type + "</font>"); else debug.println("getObject type: <font color=blue>" + type + "</font> data: <font color=purple>" + data + "</font>"); if(type.equals("instance")) { return gThemeHandler.getObject(data); } else if(type.equals("null")) { return null; } else if(type.equals("Integer")) { return new Integer(data); } else if(type.equals("Byte")) { return new Byte(data); } else if(type.equals("Long")) { return new Long(data); } else if(type.equals("Short")) { return new Short(data); } else if(type.equals("Double")) { return new Double(data); } else if(type.equals("Float")) { return new Float(data); } else if(type.equals("Boolean")) { return new Boolean(data); } else if(type.equals("String")) { return new String(data); } else if(type.equals("Image")) { return readImage(data); } else if(type.equals("Icon")) { return readIcon(data); } else if(type.equals("Font")) { return OyoahaThemeLoaderUtilities.readFont(data); } else if(type.equals("Color")) { return OyoahaThemeLoaderUtilities.readColor(data); } else if(type.equals("Insets")) { return OyoahaThemeLoaderUtilities.readInsets(data); } else if(type.equals("Dimension")) { return OyoahaThemeLoaderUtilities.readDimension(data); } else if(type.equals("Point")) { return OyoahaThemeLoaderUtilities.readPoint(data); } else if(type.equals("Rectangle")) { return OyoahaThemeLoaderUtilities.readRectangle(data); } debug.println("createObject name: <font color=blue>" + name + "</font> data: <font color=purple>" + data + "</font>"); return createObject(data, object); } } public class NullTag { }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -