Author: adubovsky
Date: 2008-07-09 03:57:04 -0400 (Wed, 09 Jul 2008)
New Revision: 9466
Modified:
trunk/test-applications/facelets/src/main/java/util/componentInfo/ComponentInfo.java
Log:
Modified:
trunk/test-applications/facelets/src/main/java/util/componentInfo/ComponentInfo.java
===================================================================
---
trunk/test-applications/facelets/src/main/java/util/componentInfo/ComponentInfo.java 2008-07-09
07:43:33 UTC (rev 9465)
+++
trunk/test-applications/facelets/src/main/java/util/componentInfo/ComponentInfo.java 2008-07-09
07:57:04 UTC (rev 9466)
@@ -2,10 +2,23 @@
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+import javax.faces.component.UIComponent;
+
public class ComponentInfo {
- private final String beanName;
+ private static volatile ComponentInfo INSTANCE;
+ private ComponentAttribute componentAttribute = new ComponentAttribute();
+ private Object component = null;
+ private String beanName;
private String description;
private String attribute;
private String property;
@@ -17,6 +30,9 @@
this.property = "";
print = true;
}
+
+ protected ComponentInfo() {
+ }
public void setComponentInfo(String attribute, String property) {
this.attribute = attribute;
@@ -25,6 +41,15 @@
if(print) printInfo();
}
+ public static ComponentInfo getInstance() {
+ if (INSTANCE == null)
+ synchronized (ComponentInfo.class) {
+ if (INSTANCE == null)
+ INSTANCE = new ComponentInfo();
+ }
+ return INSTANCE;
+ }
+
public void setComponentInfo(String attribute, String property, String description) {
this.attribute = attribute;
this.property = property;
@@ -59,7 +84,52 @@
}
return r;
}
+
+ public void addField(Object component) {
+ if (component == null)
+ return;
+ this.component = component;
+ componentAttribute.cleanAll();
+ String str = null;
+ Field[] fields = component.getClass().getDeclaredFields();
+ AccessibleObject.setAccessible(fields, true);
+ for (Field field : fields) {
+ if (!Modifier.isStatic(field.getModifiers())) {
+ str = field.getName().substring(1);
+ if (str.startsWith("on")) {
+ componentAttribute.putEvent(str,
+ "");
+ } else if (str.indexOf("tyle") != -1 || str.indexOf("lass") !=
-1) {
+ try {
+ Object obj = field.get(component);
+ componentAttribute.putStyle(str, obj == null ? "null" : obj.toString());
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ } else {
+
+ try {
+ Class cl = field.getType();
+ if(cl.isPrimitive() || cl.getName().equals("java.lang.String")){
+ Object obj = field.get(component);
+ componentAttribute.putAttribute(str, obj == null ? "null" :
obj.toString());
+ } else componentAttribute.putAttribute(str, "---");
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ }
+
public boolean isPrint() {
return print;
}
@@ -92,4 +162,12 @@
public void setDescription(String description) {
this.description = description;
}
+
+ public Object getComponent() {
+ return component;
+ }
+
+ public void setComponent(Object component) {
+ this.component = component;
+ }
}
Show replies by date