Author: scabanovich
Date: 2008-04-02 09:13:33 -0400 (Wed, 02 Apr 2008)
New Revision: 7265
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/resources/meta/jsfprojects.meta
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFProjectBean.java
Log:
JBIDE-1884
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/resources/meta/jsfprojects.meta
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/resources/meta/jsfprojects.meta 2008-04-02
13:12:09 UTC (rev 7264)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/resources/meta/jsfprojects.meta 2008-04-02
13:13:33 UTC (rev 7265)
@@ -74,8 +74,12 @@
<Editor name="Uneditable"/>
</XModelAttribute>
<XModelAttribute name="class name"/>
+ <XModelAttribute name="declaring class"/>
</XModelAttributes>
<XActionItem kind="list">
+ <XActionItem HandlerClassName="%OpenJavaSource%"
ICON="action.empty"
+ PROPERTIES="attribute=declaring class;property=name"
+ displayName="Open" kind="action" name="Open"/>
<XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
<XActionItem BaseActionName="Copy" HIDE="always"
HandlerClassName="%Copy%" ICON="action.copy"
displayName="Copy"
@@ -99,15 +103,19 @@
</ICONS>
</XEntityRenderer>
<XModelAttributes>
+ <XModelAttribute default="property" loader="ElementType"
name="element type">
+ <Editor name="Uneditable"/>
+ </XModelAttribute>
<XModelAttribute name="name" xmlname="NAME">
<Editor name="Uneditable"/>
</XModelAttribute>
<XModelAttribute name="class name"/>
- <XModelAttribute default="property" loader="ElementType"
name="element type">
- <Editor name="Uneditable"/>
- </XModelAttribute>
+ <XModelAttribute name="declaring class"/>
</XModelAttributes>
<XActionItem kind="list">
+ <XActionItem HandlerClassName="%OpenJavaSource%"
ICON="action.empty"
+ PROPERTIES="attribute=declaring class;property=name"
+ displayName="Open" kind="action" name="Open"/>
<XActionItem ICON="action.copy" displayName="Copy"
kind="list" name="CopyActions">
<XActionItem BaseActionName="Copy" HIDE="always"
HandlerClassName="%Copy%" ICON="action.copy"
displayName="Copy"
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFProjectBean.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFProjectBean.java 2008-04-02
13:12:09 UTC (rev 7264)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFProjectBean.java 2008-04-02
13:13:33 UTC (rev 7265)
@@ -91,9 +91,12 @@
XModelObject[] cs = getChildren();
for (int i = 0; i < cs.length; i++) map.put(cs[i].getPathPart(), cs[i]);
if(type != null) {
- IField[] fs = type.getFields();
+ IType _type = type;
+ while(_type != null) {
+ IField[] fs = _type.getFields();
if(fs != null) for (int i = 0; i < fs.length; i++) {
String n = fs[i].getElementName();
+ if(properties.contains(n)) continue;
JSFProjectBeanMember c = (JSFProjectBeanMember)map.get(n);
if(c != null &&
!c.getModelEntity().getName().equals("JSFProjectBeanProperty")) {
c.removeFromParent();
@@ -106,12 +109,13 @@
c.setType(beans.getType(typeName));
if(typeName == null) typeName = "";
c.setAttributeValue("class name", typeName);
+ c.setAttributeValue("declaring class",
fs[i].getDeclaringType().getFullyQualifiedName());
} else {
c = createMember(n, fs[i], "JSFProjectBeanProperty");
}
properties.add(n);
}
- IMethod[] ms = type.getMethods();
+ IMethod[] ms = _type.getMethods();
if(ms != null) for (int i = 0; i < ms.length; i++) {
if(ms[i].isConstructor()) continue;
if(!Flags.isPublic(ms[i].getFlags())) continue;
@@ -141,11 +145,24 @@
if(typeName == null) typeName = "";
c.setAttributeValue("class name", typeName);
c.setMember(ms[i]);
+ c.setAttributeValue("declaring class",
ms[i].getDeclaringType().getFullyQualifiedName());
} else if(!properties.contains(n)) {
- c = createMember(n, ms[i], entity);
+ c = createMember(n, ms[i], entity);
}
- if(isProperty) properties.add(n);
+ if(isProperty) {
+ properties.add(n);
+ } else {
+ //add it anyway
+ properties.add(n);
+ }
}
+
+ String sc = _type.getSuperclassName();
+ if(sc == null || sc.length() == 0 || "java.lang.Object".equals(sc)) break;
+ sc = EclipseJavaUtil.resolveType(_type, sc);
+ if(sc == null || sc.length() == 0 || "java.lang.Object".equals(sc)) break;
+ _type = beans.getType(sc);
+ }
} else if(beanList.length > 0) {
XModelObject[] ps = beanList[0].getChildren();
for (int i = 0; i < ps.length; i++) {
@@ -174,6 +191,7 @@
c.setBeans(beans);
String className = EclipseJavaUtil.getMemberTypeAsString(member);
c.setAttributeValue("class name", (className == null) ? "" :
className);
+ c.setAttributeValue("declaring class",
member.getDeclaringType().getFullyQualifiedName());
c.setType(beans.getType(className));
c.setMember(member);
if(isLoading) addChild_0(c); else addChild(c);
Show replies by date