JBoss Tools SVN: r6421 - trunk/as/docs/reference/en/images/webtools.
by jbosstools-commits@lists.jboss.org
Author: ochikvina
Date: 2008-02-19 09:02:34 -0500 (Tue, 19 Feb 2008)
New Revision: 6421
Modified:
trunk/as/docs/reference/en/images/webtools/webtools_4.png
trunk/as/docs/reference/en/images/webtools/webtools_5.png
Log:
http://jira.jboss.com/jira/browse/JBDS-199 - deleting gray coners in the screenshot
Modified: trunk/as/docs/reference/en/images/webtools/webtools_4.png
===================================================================
(Binary files differ)
Modified: trunk/as/docs/reference/en/images/webtools/webtools_5.png
===================================================================
(Binary files differ)
18 years, 1 month
JBoss Tools SVN: r6420 - trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2008-02-19 08:13:39 -0500 (Tue, 19 Feb 2008)
New Revision: 6420
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-999
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2008-02-19 12:22:50 UTC (rev 6419)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2008-02-19 13:13:39 UTC (rev 6420)
@@ -206,7 +206,7 @@
}
private static final String collectionAdditionForCollectionDataModel = ".iterator().next()";
- private static final String collectionAdditionForMapDataModel = ".get()";
+ private static final String collectionAdditionForMapDataModel = ".entrySet().iterator().next()";
public SeamELOperandResolveStatus resolveSeamELOperand(ISeamProject project, IFile file, String documentContent, CharSequence prefix,
int position, boolean returnEqualedVariablesOnly, List<Var> vars) throws BadLocationException, StringIndexOutOfBoundsException {
@@ -215,7 +215,7 @@
String suffix = "";
if(var!=null) {
TypeInfoCollector.MemberInfo member = resolveSeamEL(project, file, var.getElToken().getText());
- if(member!=null && !member.isTypeArray()) {
+ if(member!=null && !member.getType().isArray()) {
IType type = member.getMemberType();
if(type!=null) {
try {
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java 2008-02-19 12:22:50 UTC (rev 6419)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java 2008-02-19 13:13:39 UTC (rev 6420)
@@ -41,62 +41,170 @@
List<MethodInfo> fMethods;
List<FieldInfo> fFields;
+ public static class Type {
+ private String fName;
+ private String fQualifiedName;
+ private Type[] fParameters;
+ private IType fSource;
+ private String fSignature;
+ private boolean fIsArray;
+ private Type fTypeOfArrayElement;
+ private String fQualifiedTypeNameOfArrayElement;
+
+ private Type() {
+ }
+
+ public static Type valueOf(String name) {
+ Type instance = new Type();
+ instance.setName(name);
+ instance.setParameters(new Type[0]);
+ return instance;
+ }
+
+ public Type(String signature, IType source) {
+ String erasureSignature = Signature.getTypeErasure(signature);
+ String typeOfArraySiganture = Signature.getElementType(erasureSignature);
+ fName = String.valueOf(Signature.toString(erasureSignature));
+ if(!erasureSignature.equals(typeOfArraySiganture)) {
+ // this is an array
+ fIsArray = true;
+ fTypeOfArrayElement = new Type(typeOfArraySiganture, source);
+ }
+ String[] signaturesOfParametersOfType = Signature.getTypeArguments(signature);
+ fParameters = new Type[signaturesOfParametersOfType.length];
+ for (int i = 0; i < signaturesOfParametersOfType.length; i++) {
+ fParameters[i] = new Type(signaturesOfParametersOfType[i], source);
+ }
+ fSource = source;
+ }
+
+ public void initializeParameters(Map<String, Type> parameters) {
+ Type type = parameters.get(fName);
+ if(type!=null) {
+ fName = type.getName();
+ fParameters = type.getParameters();
+ fSource = type.getSource();
+ fIsArray = type.isArray();
+ fTypeOfArrayElement = type.getTypeOfArrayElement();
+ }
+ for (int i = 0; i < fParameters.length; i++) {
+ fParameters[i].initializeParameters(parameters);
+ }
+ }
+
+ public Type getParameter(int index) {
+ if(fParameters.length>index) {
+ return fParameters[index];
+ }
+ return null;
+ }
+
+ public String getQualifiedTypeNameOfArrayElement() {
+ if(fQualifiedTypeNameOfArrayElement==null && fSource!=null) {
+ fQualifiedTypeNameOfArrayElement = EclipseJavaUtil.resolveType(fSource, fTypeOfArrayElement.getName());
+ }
+ return fQualifiedTypeNameOfArrayElement;
+ }
+
+ public String getQualifiedName() {
+ if(fQualifiedName == null && fSource!=null) {
+ fQualifiedName = EclipseJavaUtil.resolveType(fSource, fName);
+ }
+ return fQualifiedName;
+ }
+
+ public boolean isArray() {
+ return fIsArray;
+ }
+
+ public void setArray(boolean array) {
+ fIsArray = array;
+ }
+
+ public Type getTypeOfArrayElement() {
+ return fTypeOfArrayElement;
+ }
+
+ public void setTypeOfArrayElement(Type typeOfArrayElement) {
+ fTypeOfArrayElement = typeOfArrayElement;
+ }
+
+ public String getName() {
+ return fName;
+ }
+
+ public void setName(String name) {
+ fName = name;
+ }
+
+ public Type[] getParameters() {
+ return fParameters;
+ }
+
+ public void setParameters(Type[] parameters) {
+ this.fParameters = parameters;
+ }
+
+ public IType getSource() {
+ return fSource;
+ }
+
+ public void setSource(IType source) {
+ this.fSource = source;
+ }
+
+ public String getSignature() {
+ return fSignature;
+ }
+
+ public void setSignature(String signature) {
+ this.fSignature = signature;
+ }
+ }
+
public abstract static class MemberInfo {
private String fDeclaringTypeQualifiedName;
private String fName;
private int fModifiers;
private IType fSourceType;
private MemberInfo fParentMember;
- private String[] fParametersOfType;
private String[] fParametersNamesOfDeclaringType;
- private Map<String, String> fParametersOfDeclaringType;
private IType fMemberType;
- private String fTypeName;
- private boolean fTypeIsArray;
- private String fTypeNameOfArray;
- private String fQualifiedTypeNameOfErrayElement;
private boolean isDataModel;
+ private Type fType;
protected MemberInfo (
IType sourceType,
- String declaringTypeQualifiedName, String name, int modifiers, MemberInfo parentMember, boolean dataModel) {
+ String declaringTypeQualifiedName, String name, int modifiers, MemberInfo parentMember, boolean dataModel, Type type) {
setSourceType(sourceType);
setDeclaringTypeQualifiedName(declaringTypeQualifiedName);
setName(name);
setModifiers(modifiers);
setParentMember(parentMember);
setDataModel(dataModel);
+ setType(type);
}
protected void initializeParametersOfDeclaringType() {
- if(fParametersOfDeclaringType==null && fParametersNamesOfDeclaringType!=null && fParametersNamesOfDeclaringType.length>0 && getParentMember()!=null) {
- fParametersOfDeclaringType = new HashMap<String, String>();
- // Set parameters from parent to return type.
- String type = getParentMember().getParameterOfDeclaringType(getTypeName());
- if(type!=null) {
- fParametersOfDeclaringType.put(getTypeName(), type);
- }
- for(int i=0; i<fParametersNamesOfDeclaringType.length; i++) {
- String paramName = getParameterNameFromType(fParametersNamesOfDeclaringType[i]);
- String paramType = getParentMember().getParameterOfType(i);
+ if(fParametersNamesOfDeclaringType!=null && fParametersNamesOfDeclaringType.length>0 && getParentMember()!=null) {
+ Map<String, Type> parametersOfDeclaringType = new HashMap<String, Type>();
+ for (int i = 0; i < fParametersNamesOfDeclaringType.length; i++) {
+ String parameterName = getParameterNameFromType(fParametersNamesOfDeclaringType[i]);
+ Type paramType = getParentMember().getType().getParameter(i);
if(paramType!=null) {
- String resolvedParamType = getParentMember().getParameterOfDeclaringType(paramType);
- if(resolvedParamType!=null) {
- paramType = resolvedParamType;
- }
- String fullQualifiedParamType = getParentMember().resolveTypeNameToFullQualifiedName(paramType);
- fParametersOfDeclaringType.put(paramName, fullQualifiedParamType);
+ parametersOfDeclaringType.put(parameterName, paramType);
}
}
+ getType().initializeParameters(parametersOfDeclaringType);
}
}
- protected void setTypeName(String typeName) {
- fTypeName = typeName;
+ protected void setType(Type type) {
+ fType = type;
}
- public String getTypeName() {
- return fTypeName;
+ public Type getType() {
+ return fType;
}
public void setSourceType(IType sourceType) {
@@ -115,7 +223,7 @@
return fName;
}
- protected void setDeclaringTypeQualifiedName (String declaringTypeQualifiedName) {
+ protected void setDeclaringTypeQualifiedName(String declaringTypeQualifiedName) {
this.fDeclaringTypeQualifiedName = declaringTypeQualifiedName;
}
@@ -151,28 +259,6 @@
fParentMember = parentMember;
}
- public String resolveTypeNameToFullQualifiedName(String typeName) {
- if(fSourceType==null) {
- return typeName;
- }
- return EclipseJavaUtil.resolveType(fSourceType, typeName);
- }
-
- public String[] getParametersOfType() {
- return fParametersOfType;
- }
-
- public String getParameterOfType(int index) {
- if(fParametersOfType!=null && fParametersOfType.length>index) {
- return fParametersOfType[index];
- }
- return null;
- }
-
- void setParametersOfType(String[] parametersOfType) {
- fParametersOfType = parametersOfType;
- }
-
public String[] getParametersNamesOfDeclaringType() {
return fParametersNamesOfDeclaringType;
}
@@ -182,55 +268,22 @@
fParametersNamesOfDeclaringType = parametersNamesOfDeclaringType;
}
- protected String getParameterOfDeclaringType(String parameterName) {
- if(fParametersOfDeclaringType!=null) {
- return fParametersOfDeclaringType.get(parameterName);
- }
- return null;
- }
-
public IType getMemberType() {
if(fMemberType==null) {
initializeParametersOfDeclaringType();
- fMemberType = getMemberTypeInner();
- if(fMemberType==null && fParametersOfDeclaringType!=null) {
- // Maybe type name is parameter.
- String typeName = fParametersOfDeclaringType.get(fTypeName);
- if(typeName!=null) {
- try {
- fMemberType = getSourceType().getJavaProject().findType(typeName);
- } catch (JavaModelException e) {
- SeamCorePlugin.getPluginLog().logError(e);
- }
+ try {
+ if(isDataModel() && getType().isArray()) {
+ fMemberType = getSourceType().getJavaProject().findType(getType().getQualifiedTypeNameOfArrayElement());
+ } else {
+ fMemberType = getSourceType().getJavaProject().findType(getType().getQualifiedName());
}
+ } catch (JavaModelException e) {
+ SeamCorePlugin.getPluginLog().logError(e);
}
}
return fMemberType;
}
- public boolean isTypeArray() {
- return fTypeIsArray;
- }
-
- void setTypeArray(boolean typeIsArray) {
- fTypeIsArray = typeIsArray;
- }
-
- public String getTypeNameOfArray() {
- return fTypeNameOfArray;
- }
-
- void setTypeNameOfArray(String typeNameOfArray) {
- fTypeNameOfArray = typeNameOfArray;
- }
-
- public String getQualifiedTypeNameOfArrayElement() {
- if(fQualifiedTypeNameOfErrayElement == null) {
- fQualifiedTypeNameOfErrayElement = EclipseJavaUtil.resolveType(getSourceType(), getTypeNameOfArray());
- }
- return fQualifiedTypeNameOfErrayElement;
- }
-
public boolean isDataModel() {
return isDataModel;
}
@@ -239,8 +292,6 @@
this.isDataModel = isDataModel;
}
- abstract protected IType getMemberTypeInner();
-
abstract public IJavaElement getJavaElement();
}
@@ -248,112 +299,65 @@
private IType fType;
public TypeInfo(IType type, MemberInfo parentMember, boolean dataModel) throws JavaModelException {
- super(type.getDeclaringType(), (type.getDeclaringType() == null ? null : type.getDeclaringType().getFullyQualifiedName()), type.getFullyQualifiedName(), type.getFlags(), parentMember, dataModel);
+ super(type.getDeclaringType(), (type.getDeclaringType() == null ? null : type.getDeclaringType().getFullyQualifiedName()), type.getFullyQualifiedName(), type.getFlags(), parentMember, dataModel, Type.valueOf(type.getFullyQualifiedName()));
this.fType = type;
}
- public IType getType() {
+ @Override
+ public IType getMemberType() {
return fType;
}
@Override
- public IType getMemberTypeInner() {
- return getType();
- }
-
- @Override
public IJavaElement getJavaElement() {
- return getType();
+ return fType;
}
}
public static class FieldInfo extends MemberInfo {
- private String fQualifiedTypeName;
+ private IJavaElement fJavaElement;
- public FieldInfo(IType sourceType, String declaringTypeQualifiedName, String name, int modifiers, String typeQualifiedName, String[] parametersOfType, MemberInfo parentMember, boolean dataModel) {
- super(sourceType, declaringTypeQualifiedName, name, modifiers, parentMember, dataModel);
- setTypeName(typeQualifiedName);
- setParametersOfType(parametersOfType);
- }
-
public FieldInfo(IField field, MemberInfo parentMember, boolean dataModel) throws JavaModelException {
super(field.getDeclaringType(),
(field.getDeclaringType() == null ? null : field.getDeclaringType().getFullyQualifiedName()),
field.getElementName(),
field.getFlags(),
parentMember,
- dataModel);
+ dataModel,
+ new Type(field.getTypeSignature(),
+ field.getDeclaringType()));
- String fullTypeSignature = field.getTypeSignature();
- String typeErasureSignature = Signature.getTypeErasure(fullTypeSignature);
- String typeOfArray = String.valueOf(Signature.toString(Signature.getElementType(typeErasureSignature)));
- String type = String.valueOf(Signature.toString(typeErasureSignature));
- if(!type.equals(typeOfArray)) {
- // this is an array
- setTypeArray(true);
- setTypeNameOfArray(typeOfArray);
- }
- String[] signaturesOfParametersOfType = Signature.getTypeArguments(fullTypeSignature);
- String[] parametersOfType = getQualifiedClassNamesFromSignatureArray(signaturesOfParametersOfType);
-
- setTypeName(type);
- setParametersOfType(parametersOfType);
-
setParametersNamesOfDeclaringType(getTypeErasureFromSignatureArray(field.getDeclaringType().getTypeParameterSignatures()));
}
- public String getQualifiedTypeName() {
- if(fQualifiedTypeName == null) {
- fQualifiedTypeName = EclipseJavaUtil.resolveType(getSourceType(), getTypeName());
- }
- return fQualifiedTypeName;
- }
-
- public IType getType() {
- try {
- if(isDataModel() && isTypeArray()) {
- return getSourceType().getJavaProject().findType(getQualifiedTypeNameOfArrayElement());
+ public IJavaElement getJavaElement () {
+ if(fJavaElement == null) {
+ try {
+ IType declType = getSourceType().getJavaProject().findType(getDeclaringTypeQualifiedName());
+ fJavaElement = (declType == null ? null : declType.getField(getName()));
+ } catch (JavaModelException e) {
+ SeamCorePlugin.getPluginLog().logError(e);
}
- return getSourceType().getJavaProject().findType(getQualifiedTypeName());
- } catch (JavaModelException e) {
- SeamCorePlugin.getPluginLog().logError(e);
}
- return null;
+ return fJavaElement;
}
-
- public IJavaElement getJavaElement () {
- try {
- IType declType = getSourceType().getJavaProject().findType(getDeclaringTypeQualifiedName());
- return (declType == null ? null : declType.getField(getName()));
- } catch (JavaModelException e) {
- SeamCorePlugin.getPluginLog().logError(e);
- return null;
- }
- }
-
- public IType getMemberTypeInner() {
- return getType();
- }
}
public static class MethodInfo extends MemberInfo {
private String[] fParameterTypeNames;
private String[] fParameterTypeQualifiedNames;
private String[] fParameterNames;
- private String fReturnTypeQualifiedName;
+ private IJavaElement fJavaElement;
public MethodInfo(IType sourceType, String declaringTypeQualifiedName, String name,
int modifiers, String[] parameterTypeQualifiedNames,
String[] parameterNames,
String returnTypeQualifiedName,
- String[] parametersOfReturnType,
MemberInfo parentMember,
boolean dataModel) {
- super(sourceType, declaringTypeQualifiedName, name, modifiers, parentMember, dataModel);
+ super(sourceType, declaringTypeQualifiedName, name, modifiers, parentMember, dataModel, Type.valueOf(name));
setParameterTypeNames(parameterTypeQualifiedNames);
setParameterNames(parameterNames);
- setTypeName(returnTypeQualifiedName);
- setParametersOfType(parametersOfReturnType);
}
public MethodInfo(IMethod method, MemberInfo parentMember, boolean dataModel) throws JavaModelException {
@@ -362,26 +366,12 @@
method.getElementName(),
method.getFlags(),
parentMember,
- dataModel);
+ dataModel,
+ new Type(method.getReturnType(),
+ method.getDeclaringType()));
setParameterNames(method.getParameterNames());
setParameterTypeNames(resolveSignatures(method.getDeclaringType(), method.getParameterTypes()));
-
- String fullReturnTypeSignature = method.getReturnType();
- String returnTypeErasureSignature = Signature.getTypeErasure(fullReturnTypeSignature);
- String returnTypeOfArray = String.valueOf(Signature.toString(Signature.getElementType(returnTypeErasureSignature)));
- String returnType = String.valueOf(Signature.toString(returnTypeErasureSignature));
- String[] signaturesOfParametersOfReturnType = Signature.getTypeArguments(fullReturnTypeSignature);
- String[] parametersOfReturnType = getQualifiedClassNamesFromSignatureArray(signaturesOfParametersOfReturnType);
-
- if(!returnType.equals(returnTypeOfArray)) {
- // this is an array
- setTypeArray(true);
- setTypeNameOfArray(returnTypeOfArray);
- }
-
- setTypeName(returnType);
- setParametersOfType(parametersOfReturnType);
setParametersNamesOfDeclaringType(getTypeErasureFromSignatureArray(method.getDeclaringType().getTypeParameterSignatures()));
}
@@ -413,31 +403,12 @@
return fParameterNames;
}
- public String getReturnTypeName() {
- return getTypeName();
- }
-
- public String getReturnTypeQualifiedName() {
- if(fReturnTypeQualifiedName==null) {
- fReturnTypeQualifiedName = EclipseJavaUtil.resolveType(getSourceType(), getReturnTypeName());
- }
- return fReturnTypeQualifiedName;
- }
-
public int getNumberOfParameters() {
return (getParameterNames() == null ? 0 : getParameterNames().length);
}
public IType getReturnType() {
- try {
- if(isDataModel() && isTypeArray()) {
- return getSourceType().getJavaProject().findType(getQualifiedTypeNameOfArrayElement());
- }
- return getSourceType().getJavaProject().findType(getReturnTypeQualifiedName());
- } catch (JavaModelException e) {
- SeamCorePlugin.getPluginLog().logError(e);
- }
- return null;
+ return getMemberType();
}
public boolean isConstructor () {
@@ -453,73 +424,69 @@
}
@Override
- public IType getMemberTypeInner() {
- return getReturnType();
- }
-
- public String[] getParametersOfReturnType() {
- return getParametersOfType();
- }
-
- @Override
public IJavaElement getJavaElement () {
- try {
- IType declType = getSourceType().getJavaProject().findType(getDeclaringTypeQualifiedName());
-
- IMethod[] allMethods = declType.getMethods();
-
- // filter methods by name
- List<IMethod> methods = new ArrayList<IMethod>();
- for (int i = 0; allMethods != null && i < allMethods.length; i++) {
- if (allMethods[i].getElementName().equals(getName())) {
- methods.add(allMethods[i]);
+ if(fJavaElement == null) {
+ try {
+ IType declType = getSourceType().getJavaProject().findType(getDeclaringTypeQualifiedName());
+
+ IMethod[] allMethods = declType.getMethods();
+
+ // filter methods by name
+ List<IMethod> methods = new ArrayList<IMethod>();
+ for (int i = 0; allMethods != null && i < allMethods.length; i++) {
+ if (allMethods[i].getElementName().equals(getName())) {
+ methods.add(allMethods[i]);
+ }
}
- }
- if (methods.isEmpty())
- return null;
- if (methods.size() == 1)
- return methods.get(0);
+ if (!methods.isEmpty()) {
+ if (methods.size() == 1) {
+ fJavaElement = methods.get(0);
+ } else {
+ // filter methods by number of parameters
+ List<IMethod> filteredMethods = new ArrayList<IMethod>();
+ for (IMethod method : methods) {
+ if (method.getNumberOfParameters() == getNumberOfParameters()) {
+ filteredMethods.add(method);
+ }
+ }
+ if (!filteredMethods.isEmpty()) {
+ if (filteredMethods.size() == 1) {
+ fJavaElement = filteredMethods.get(0);
+ } else {
+ methods = filteredMethods;
- // filter methods by number of parameters
- List<IMethod> filteredMethods = new ArrayList<IMethod>();
- for (IMethod method : methods) {
- if (method.getNumberOfParameters() == getNumberOfParameters())
- filteredMethods.add(method);
- }
- if (filteredMethods.isEmpty())
- return null;
- if (filteredMethods.size() == 1)
- return filteredMethods.get(0);
+ // filter methods by parameter types
+ for(IMethod method : methods) {
+ String[] methodParameterTypes =
+ resolveSignatures(method.getDeclaringType(),
+ method.getParameterTypes());
+ String[] parameterTypes = getParameterTypeQualifiedNames();
- methods = filteredMethods;
-
- // filter methods by parameter types
- for(IMethod method : methods) {
- String[] methodParameterTypes =
- resolveSignatures(method.getDeclaringType(),
- method.getParameterTypes());
- String[] parameterTypes = getParameterTypeQualifiedNames();
-
- boolean equal = true;
- for (int i = 0; parameterTypes != null && i < parameterTypes.length; i++) {
- // simple types must be equal, but complex types may not
- if (!parameterTypes[i].equals(methodParameterTypes[i])) {
- // sure - it's Complex Type
- if (! (parameterTypes[i].indexOf('.') != -1)
- && (methodParameterTypes[i].indexOf('.') == -1)) {
- equal = false;
- break;
+ boolean equal = true;
+ for (int i = 0; parameterTypes != null && i < parameterTypes.length; i++) {
+ // simple types must be equal, but complex types may not
+ if (!parameterTypes[i].equals(methodParameterTypes[i])) {
+ // sure - it's Complex Type
+ if (! (parameterTypes[i].indexOf('.') != -1)
+ && (methodParameterTypes[i].indexOf('.') == -1)) {
+ equal = false;
+ break;
+ }
+ }
+ }
+ if (equal) {
+ fJavaElement = method;
+ }
+ }
+ }
}
}
}
- if (equal)
- return method;
+ } catch (JavaModelException e) {
+ SeamCorePlugin.getPluginLog().logError(e);
}
- return null;
- } catch (JavaModelException e) {
- SeamCorePlugin.getPluginLog().logError(e);
- return null;
}
+ return fJavaElement;
}
}
@@ -588,7 +555,7 @@
public static boolean isNotParameterizedCollection(TypeInfoCollector.MemberInfo mbr) {
try {
- if(mbr.getParametersOfType()!=null && mbr.getParametersOfType().length>0) {
+ if(mbr.getType().getParameters()!=null && mbr.getType().getParameters().length>0) {
return false;
}
IType type = mbr.getMemberType();
@@ -624,7 +591,6 @@
new String[0],
new String[0],
"int",
- new String[0],
fMember,
false));
}
@@ -636,7 +602,6 @@
new String[0],
new String[0],
"int",
- new String[0],
fMember,
false));
fMethods.add(new MethodInfo(fType,
@@ -645,7 +610,6 @@
new String[0],
new String[0],
"boolean",
- new String[0],
fMember,
false));
}
@@ -910,42 +874,10 @@
return result;
}
- static String[] getQualifiedClassNamesFromSignatureArray(String[] signatureTypes) {
- if (signatureTypes == null || signatureTypes.length == 0)
- return new String[0];
- String[] qualifiedTypes = new String[signatureTypes.length];
- for (int i = 0; i < signatureTypes.length; i++) {
- qualifiedTypes[i] = Signature.toString(signatureTypes[i]);
- }
- return qualifiedTypes;
- }
-
- static String[] getQualifiedClassNameFromCharArray(char[][] signatureTypes) {
- if (signatureTypes == null || signatureTypes.length == 0)
- return new String[0];
- String[] qualifiedTypes = new String[signatureTypes.length];
- for (int i = 0; i < signatureTypes.length; i++) {
- qualifiedTypes[i] = String.valueOf(Signature.toCharArray(signatureTypes[i]));
- }
- return qualifiedTypes;
- }
-
static String getParameterNameFromType(String typeSignatures) {
if(typeSignatures==null) {
return null;
}
return Signature.getTypeVariable(typeSignatures);
}
-
- static String[] getParameterNamesFromTypeArray(String[] typeSignatures) {
- if(typeSignatures==null || typeSignatures.length==0) {
- return new String[0];
- }
- String[] names = new String[typeSignatures.length];
- for (int i = 0; i < typeSignatures.length; i++) {
- names[i] = getParameterNameFromType(typeSignatures[i]);
-
- }
- return names;
- }
}
\ No newline at end of file
18 years, 1 month
JBoss Tools SVN: r6419 - trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2008-02-19 07:22:50 -0500 (Tue, 19 Feb 2008)
New Revision: 6419
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXMLHelper.java
Log:
JBIDE-1785 Test out removed.
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXMLHelper.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXMLHelper.java 2008-02-19 12:21:37 UTC (rev 6418)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXMLHelper.java 2008-02-19 12:22:50 UTC (rev 6419)
@@ -190,9 +190,6 @@
if(params != null && params.length() > 0) {
ps = params.split(",");
}
- if(ps.length > 0) {
- System.out.println("!!");
- }
return type.getMethod(name, ps);
}
18 years, 1 month
JBoss Tools SVN: r6418 - in trunk/seam/tests/org.jboss.tools.seam.core.test: src/org/jboss/tools/seam/core/test and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2008-02-19 07:21:37 -0500 (Tue, 19 Feb 2008)
New Revision: 6418
Added:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SerializationTest.java
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/JavaSource/demo/User.java
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamCoreAllTests.java
Log:
JBIDE-1785 Base test functionality for serialization added.
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/JavaSource/demo/User.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/JavaSource/demo/User.java 2008-02-19 12:17:01 UTC (rev 6417)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/projects/TestScanner/JavaSource/demo/User.java 2008-02-19 12:21:37 UTC (rev 6418)
@@ -14,6 +14,7 @@
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.*;
+import org.jboss.seam.Component;
/**
* Created by JBoss Developer Studio
@@ -75,7 +76,7 @@
}
@Create @Destroy
- public void createAndDestroyMethod() {
+ public void createAndDestroyMethod(Component c) {
}
@Factory(value="myFactory", scope=ScopeType.SESSION)
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamCoreAllTests.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamCoreAllTests.java 2008-02-19 12:17:01 UTC (rev 6417)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamCoreAllTests.java 2008-02-19 12:21:37 UTC (rev 6418)
@@ -27,6 +27,7 @@
TestSuite suite = new TestSuite();
suite.setName("All tests for " + PLUGIN_ID);
suite.addTestSuite(ScannerTest.class);
+ suite.addTestSuite(SerializationTest.class);
suite.addTestSuite(SeamEARTest.class);
suite.addTestSuite(SeamRuntimeListConverterTest.class);
suite.addTestSuite(SeamRuntimeManagerTest.class);
Added: trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SerializationTest.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SerializationTest.java (rev 0)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SerializationTest.java 2008-02-19 12:21:37 UTC (rev 6418)
@@ -0,0 +1,110 @@
+package org.jboss.tools.seam.core.test;
+
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.jboss.tools.common.xml.XMLUtilities;
+import org.jboss.tools.seam.core.ISeamComponent;
+import org.jboss.tools.seam.core.ISeamComponentDeclaration;
+import org.jboss.tools.seam.core.ISeamFactory;
+import org.jboss.tools.seam.core.ISeamProject;
+import org.jboss.tools.seam.core.event.Change;
+import org.jboss.tools.seam.internal.core.SeamAnnotatedFactory;
+import org.jboss.tools.seam.internal.core.SeamJavaComponentDeclaration;
+import org.jboss.tools.seam.internal.core.SeamProject;
+import org.jboss.tools.seam.internal.core.SeamPropertiesDeclaration;
+import org.jboss.tools.seam.internal.core.SeamXMLConstants;
+import org.jboss.tools.seam.internal.core.SeamXmlComponentDeclaration;
+import org.jboss.tools.seam.internal.core.SeamXmlFactory;
+import org.jboss.tools.test.util.JUnitUtils;
+import org.jboss.tools.test.util.ResourcesUtils;
+import org.jboss.tools.test.util.xpl.EditorTestHelper;
+import org.w3c.dom.Element;
+
+import junit.framework.TestCase;
+
+public class SerializationTest extends TestCase {
+ IProject project = null;
+ boolean makeCopy = true;
+
+ public SerializationTest() {
+ super("Seam Serialization test");
+ }
+
+ protected void setUp() throws Exception {
+ project = ResourcesUtils.importProject(
+ "org.jboss.tools.seam.core.test","/projects/TestScanner" , new NullProgressMonitor());
+ project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ EditorTestHelper.joinBackgroundActivities();
+ }
+
+ private ISeamProject getSeamProject() {
+ ISeamProject seamProject = null;
+ try {
+ seamProject = (ISeamProject)project.getNature(SeamProject.NATURE_ID);
+ } catch (Exception e) {
+ JUnitUtils.fail("Cannot get seam nature.",e);
+ }
+ assertNotNull("Seam project is null", seamProject);
+ return seamProject;
+ }
+
+ public void testXMLSerialization() {
+ Element root = XMLUtilities.createDocumentElement("root");
+ ISeamProject seamProject = getSeamProject();
+ Set<ISeamComponent> cs = seamProject.getComponents();
+ for (ISeamComponent c: cs) {
+ Set<ISeamComponentDeclaration> ds = c.getAllDeclarations();
+ for (ISeamComponentDeclaration d: ds) {
+ Properties context = new Properties();
+ context.put(SeamXMLConstants.ATTR_PATH, d.getSourcePath());
+ Element e = d.toXML(root, context);
+ String cls = e.getAttribute(SeamXMLConstants.ATTR_CLASS);
+ ISeamComponentDeclaration d2 = null;
+ if(SeamXMLConstants.CLS_JAVA.equals(cls)) {
+ d2 = new SeamJavaComponentDeclaration();
+ } else if(SeamXMLConstants.CLS_XML.equals(cls)) {
+ d2 = new SeamXmlComponentDeclaration();
+ } else if(SeamXMLConstants.CLS_PROPERTIES.equals(cls)) {
+ d2 = new SeamPropertiesDeclaration();
+ }
+ assertTrue("Cannot restore declaration " + d.getName() + " " + d.getClass().getName(), d2 != null);
+ d2.loadXML(e, context);
+ List<Change> changes = d2.merge(d);
+ if(changes != null && changes.size() > 0) {
+ //TODO Analyze changes to fail test with messages
+ // that will help readily find the problem.
+ System.out.println(d.getName() + " " + d.getClass().getName() + " " + changes.size());
+ }
+ root.removeChild(e);
+ }
+ }
+ Set<ISeamFactory> fs = seamProject.getFactories();
+ for (ISeamFactory f: fs) {
+ Properties context = new Properties();
+ context.put(SeamXMLConstants.ATTR_PATH, f.getSourcePath());
+ Element e = f.toXML(root, context);
+ String cls = e.getAttribute(SeamXMLConstants.ATTR_CLASS);
+ ISeamFactory f2 = null;
+ if(SeamXMLConstants.CLS_XML.equals(cls)) {
+ f2 = new SeamXmlFactory();
+ } else if(SeamXMLConstants.CLS_JAVA.equals(cls)) {
+ f2 = new SeamAnnotatedFactory();
+ }
+ assertTrue("Cannot restore factory declaration " + f.getName() + " " + f.getClass().getName(), f2 != null);
+ f2.loadXML(e, context);
+ List<Change> changes = f2.merge(f);
+ if(changes != null && changes.size() > 0) {
+ //TODO Analyze changes to fail test with messages
+ // that will help readily find the problem.
+ System.out.println(f.getName() + " " + f.getClass().getName() + " " + changes.size());
+ }
+ }
+
+ }
+
+}
18 years, 1 month
JBoss Tools SVN: r6417 - in trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam: internal/core and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2008-02-19 07:17:01 -0500 (Tue, 19 Feb 2008)
New Revision: 6417
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/ISeamElement.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractContextVariable.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractSeamDeclaration.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/BijectedAttribute.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/DataModelSelectionAttribute.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamAnnotatedFactory.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamComponentDeclaration.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamComponentMethod.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamJavaComponentDeclaration.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamJavaContextVariable.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamObject.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamPropertiesDeclaration.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamProperty.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamResourceVisitor.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueList.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueMap.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueMapEntry.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueString.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXMLHelper.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXmlComponentDeclaration.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXmlFactory.java
Log:
JBIDE-1785
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/ISeamElement.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/ISeamElement.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/ISeamElement.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -10,8 +10,13 @@
******************************************************************************/
package org.jboss.tools.seam.core;
+import java.util.List;
+import java.util.Properties;
+
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
+import org.jboss.tools.seam.core.event.Change;
+import org.w3c.dom.Element;
/**
* Common interface for objects of seam model.
@@ -45,5 +50,28 @@
public IResource getResource();
public ISeamElement clone() throws CloneNotSupportedException;
+
+ /**
+ * Updates this seam object to be equal to the passed seam object.
+ * @param s
+ * @return List of performed modifications.
+ */
+ public List<Change> merge(ISeamElement s);
+
+ /**
+ * Serializes this object to XML element and adds it as child to the passed element.
+ * @param parent
+ * @param context
+ * @return
+ */
+ public Element toXML(Element parent, Properties context);
+ /**
+ * Extracts data from the passed XML element to update this object
+ * to be equal to seam object serialized to XML.
+ * @param element
+ * @param context
+ */
+ public void loadXML(Element element, Properties context);
+
}
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractContextVariable.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractContextVariable.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractContextVariable.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -14,6 +14,7 @@
import java.util.Properties;
import org.jboss.tools.seam.core.ISeamContextVariable;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ISeamXmlComponentDeclaration;
import org.jboss.tools.seam.core.IValueInfo;
import org.jboss.tools.seam.core.ScopeType;
@@ -58,7 +59,8 @@
* @param f
* @return list of changes
*/
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
AbstractContextVariable f = (AbstractContextVariable)s;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractSeamDeclaration.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractSeamDeclaration.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/AbstractSeamDeclaration.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -17,6 +17,7 @@
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.seam.core.IOpenableElement;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ISeamTextSourceReference;
import org.jboss.tools.seam.core.ISeamXmlComponentDeclaration;
import org.jboss.tools.seam.core.IValueInfo;
@@ -91,7 +92,8 @@
return c;
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
if(s instanceof AbstractSeamDeclaration) {
AbstractSeamDeclaration d = (AbstractSeamDeclaration)s;
@@ -119,7 +121,9 @@
XModelObject old = pushModelObject(context);
- name = element.getAttribute(SeamXMLConstants.ATTR_NAME);
+ if(element.hasAttribute(SeamXMLConstants.ATTR_NAME)) {
+ name = element.getAttribute(SeamXMLConstants.ATTR_NAME);
+ }
SeamXMLHelper.loadMap(element, attributes, "attributes", context);
popModelObject(context, old);
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/BijectedAttribute.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/BijectedAttribute.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/BijectedAttribute.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -16,6 +16,7 @@
import org.jboss.tools.seam.core.BijectedAttributeType;
import org.jboss.tools.seam.core.IBijectedAttribute;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.IValueInfo;
import org.jboss.tools.seam.core.event.Change;
import org.w3c.dom.Element;
@@ -59,7 +60,8 @@
public void setValue(IValueInfo value) {}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
AbstractContextVariable f = (AbstractContextVariable)s;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/DataModelSelectionAttribute.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/DataModelSelectionAttribute.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/DataModelSelectionAttribute.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -13,6 +13,7 @@
import java.util.List;
import java.util.Properties;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.IValueInfo;
import org.jboss.tools.seam.core.event.Change;
import org.w3c.dom.Element;
@@ -39,7 +40,8 @@
this.value = value == null ? null : value.getValue();
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
if(s instanceof DataModelSelectionAttribute) {
DataModelSelectionAttribute sf = (DataModelSelectionAttribute)s;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamAnnotatedFactory.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamAnnotatedFactory.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamAnnotatedFactory.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -15,6 +15,7 @@
import org.eclipse.jdt.core.IMethod;
import org.jboss.tools.seam.core.ISeamAnnotatedFactory;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ISeamXmlComponentDeclaration;
import org.jboss.tools.seam.core.IValueInfo;
import org.jboss.tools.seam.core.ScopeType;
@@ -42,7 +43,8 @@
this.autoCreate = autoCreate;
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamAnnotatedFactory af = (SeamAnnotatedFactory)s;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamComponentDeclaration.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamComponentDeclaration.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamComponentDeclaration.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -16,6 +16,7 @@
import org.eclipse.core.resources.IResource;
import org.jboss.tools.seam.core.ISeamComponentDeclaration;
import org.jboss.tools.seam.core.ISeamContextVariable;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ScopeType;
import org.jboss.tools.seam.core.event.Change;
@@ -40,7 +41,8 @@
* @param d
* @return list of changes
*/
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamComponentDeclaration d = (SeamComponentDeclaration)s;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamComponentMethod.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamComponentMethod.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamComponentMethod.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -19,6 +19,7 @@
import org.eclipse.jdt.core.IMember;
import org.eclipse.jdt.core.JavaModelException;
import org.jboss.tools.seam.core.ISeamComponentMethod;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.SeamComponentMethodType;
import org.jboss.tools.seam.core.event.Change;
import org.w3c.dom.Element;
@@ -82,7 +83,8 @@
}
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamComponentMethod m = (SeamComponentMethod)s;
if(!typesAreEqual(types, m.types)) {
@@ -132,6 +134,10 @@
public void loadXML(Element element, Properties context) {
super.loadXML(element, context);
+ if(id instanceof IMember) {
+ javaSource = (IMember)id;
+ }
+
if(element.hasAttribute(ATTR_COMP_TYPES)) {
String v = element.getAttribute(ATTR_COMP_TYPES);
if(v != null && v.length() > 0) {
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamJavaComponentDeclaration.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamJavaComponentDeclaration.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamJavaComponentDeclaration.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -30,6 +30,7 @@
import org.jboss.tools.seam.core.IRole;
import org.jboss.tools.seam.core.ISeamComponentMethod;
import org.jboss.tools.seam.core.ISeamContextVariable;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ISeamJavaComponentDeclaration;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.ISeamXmlComponentDeclaration;
@@ -237,7 +238,8 @@
* @param d
* @return list of changes
*/
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamJavaComponentDeclaration jd = (SeamJavaComponentDeclaration)s;
if(!stringsEqual(className, jd.className)) {
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamJavaContextVariable.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamJavaContextVariable.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamJavaContextVariable.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -20,6 +20,7 @@
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.JavaModelException;
import org.jboss.tools.common.xml.XMLUtilities;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ISeamJavaSourceReference;
import org.jboss.tools.seam.core.event.Change;
import org.w3c.dom.Element;
@@ -63,7 +64,8 @@
}
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
if(s instanceof SeamJavaContextVariable) {
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamObject.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamObject.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamObject.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.seam.internal.core;
+import java.lang.annotation.Inherited;
import java.util.List;
import java.util.Properties;
@@ -123,10 +124,11 @@
* @param f
* @return list of changes
*/
- public List<Change> merge(SeamObject s) {
- source = s.source;
- id = s.id;
- resource = s.resource;
+ public List<Change> merge(ISeamElement s) {
+ SeamObject o = (SeamObject)s;
+ source = o.source;
+ id = o.id;
+ resource = o.resource;
//If there are no changes, null is returned,
//which prevents creating a lot of unnecessary objects.
//Subclasses and clients must check returned
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamPropertiesDeclaration.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamPropertiesDeclaration.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamPropertiesDeclaration.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -27,6 +27,7 @@
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.util.FindObjectHelper;
import org.jboss.tools.common.xml.XMLUtilities;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ISeamPropertiesDeclaration;
import org.jboss.tools.seam.core.ISeamProperty;
import org.jboss.tools.seam.core.SeamCorePlugin;
@@ -68,7 +69,8 @@
* @param d
* @return list of changes
*/
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamPropertiesDeclaration pd = (SeamPropertiesDeclaration)s;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamProperty.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamProperty.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamProperty.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -15,6 +15,7 @@
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.xml.XMLUtilities;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ISeamProperty;
import org.jboss.tools.seam.core.ISeamXmlComponentDeclaration;
import org.jboss.tools.seam.core.IValueInfo;
@@ -48,7 +49,8 @@
return 0;
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamProperty d = (SeamProperty)s;
@@ -121,7 +123,7 @@
Element c = XMLUtilities.getUniqueChild(element, SeamXMLConstants.TAG_VALUE);
if(c != null) {
SeamObject v = null;
- String cls = element.getAttribute(SeamXMLConstants.ATTR_CLASS);
+ String cls = c.getAttribute(SeamXMLConstants.ATTR_CLASS);
if(SeamXMLConstants.CLS_MAP.equals(cls)) {
v = new SeamValueMap();
} else if(SeamXMLConstants.CLS_LIST.equals(cls)) {
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamResourceVisitor.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamResourceVisitor.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamResourceVisitor.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -56,6 +56,7 @@
for (int i = 0; i < FILE_SCANNERS.length; i++) {
IFileScanner scanner = FILE_SCANNERS[i];
if(scanner.isRelevant(f)) {
+ long t = System.currentTimeMillis();
if(!scanner.isLikelyComponentSource(f)) {
p.pathRemoved(f.getFullPath());
return false;
@@ -67,6 +68,9 @@
SeamCorePlugin.getDefault().logError(e);
}
if(c != null) componentsLoaded(c, f);
+ long dt = System.currentTimeMillis() - t;
+ timeUsed += dt;
+// System.out.println("Time=" + timeUsed);
}
}
}
@@ -79,6 +83,8 @@
return true;
}
+ static long timeUsed = 0;
+
void componentsLoaded(LoadedDeclarations c, IFile resource) {
if(c == null || c.getComponents().size() + c.getFactories().size() == 0) return;
p.registerComponents(c, resource.getFullPath());
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueList.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueList.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueList.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -15,6 +15,7 @@
import java.util.Properties;
import org.jboss.tools.common.xml.XMLUtilities;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.event.Change;
import org.jboss.tools.seam.core.event.ISeamValueList;
import org.jboss.tools.seam.core.event.ISeamValueString;
@@ -37,7 +38,8 @@
adopt(value);
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamValueList v = (SeamValueList)s;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueMap.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueMap.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueMap.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -15,6 +15,7 @@
import java.util.Properties;
import org.jboss.tools.common.xml.XMLUtilities;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.event.Change;
import org.jboss.tools.seam.core.event.ISeamValueMap;
import org.jboss.tools.seam.core.event.ISeamValueMapEntry;
@@ -37,7 +38,8 @@
adopt(entry);
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamValueMap v = (SeamValueMap)s;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueMapEntry.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueMapEntry.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueMapEntry.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -14,6 +14,7 @@
import java.util.Properties;
import org.jboss.tools.common.xml.XMLUtilities;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.event.Change;
import org.jboss.tools.seam.core.event.ISeamValueMapEntry;
import org.jboss.tools.seam.core.event.ISeamValueString;
@@ -46,7 +47,8 @@
adopt(value);
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamValueMapEntry e = (SeamValueMapEntry)s;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueString.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueString.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamValueString.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -13,6 +13,7 @@
import java.util.List;
import java.util.Properties;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.IValueInfo;
import org.jboss.tools.seam.core.event.Change;
import org.jboss.tools.seam.core.event.ISeamValueString;
@@ -36,7 +37,8 @@
if(value != null) currentValue = value.getValue();
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamValueString v = (SeamValueString)s;
String v1 = currentValue;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXMLHelper.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXMLHelper.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXMLHelper.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -169,7 +169,7 @@
element.setAttribute(ATTR_NAME, method.getElementName());
String[] s = method.getParameterTypes();
StringBuffer sb = new StringBuffer();
- for (int i = 0; i < s.length; i++) sb.append(s[i]).append(';');
+ for (int i = 0; i < s.length; i++) sb.append(s[i]).append(',');
element.setAttribute(ATTR_PARAMS, sb.toString());
}
@@ -188,8 +188,11 @@
String params = element.getAttribute(ATTR_PARAMS);
String[] ps = new String[0];
if(params != null && params.length() > 0) {
- ps = params.split(";");
+ ps = params.split(",");
}
+ if(ps.length > 0) {
+ System.out.println("!!");
+ }
return type.getMethod(name, ps);
}
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXmlComponentDeclaration.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXmlComponentDeclaration.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXmlComponentDeclaration.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -15,6 +15,7 @@
import java.util.Properties;
import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ISeamXmlComponentDeclaration;
import org.jboss.tools.seam.core.IValueInfo;
import org.jboss.tools.seam.core.ScopeType;
@@ -133,7 +134,8 @@
* @param d
* @return list of changes
*/
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamXmlComponentDeclaration xd = (SeamXmlComponentDeclaration)s;
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXmlFactory.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXmlFactory.java 2008-02-19 12:02:07 UTC (rev 6416)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamXmlFactory.java 2008-02-19 12:17:01 UTC (rev 6417)
@@ -13,6 +13,7 @@
import java.util.List;
import java.util.Properties;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ISeamXmlFactory;
import org.jboss.tools.seam.core.IValueInfo;
import org.jboss.tools.seam.core.event.Change;
@@ -54,7 +55,8 @@
setValue(value == null ? null : value.getValue());
}
- public List<Change> merge(SeamObject s) {
+ @Override
+ public List<Change> merge(ISeamElement s) {
List<Change> changes = super.merge(s);
SeamXmlFactory xf = (SeamXmlFactory)s;
18 years, 1 month
JBoss Tools SVN: r6416 - in trunk/seam: tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2008-02-19 07:02:07 -0500 (Tue, 19 Feb 2008)
New Revision: 6416
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/OpenSeamComponentDialog.java
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/SeamUiAllTests.java
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/wizard/OpenSeamComponentDialogTest.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-518
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/OpenSeamComponentDialog.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/OpenSeamComponentDialog.java 2008-02-19 11:12:48 UTC (rev 6415)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/OpenSeamComponentDialog.java 2008-02-19 12:02:07 UTC (rev 6416)
@@ -63,6 +63,18 @@
if (memento != null)
getSelectionHistory().load(memento);
}
+
+ public void beginTest(){
+ create();
+ applyFilter();
+ }
+
+ public void endTest(){
+ refresh();
+ computeResult();
+ setResult(getSelectedItems().toList());
+ okPressed();
+ }
protected Control createExtendedContentArea(Composite parent) {
return null;
@@ -75,7 +87,7 @@
protected void fillContentProvider(AbstractContentProvider contentProvider,
ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
throws CoreException {
-
+
IProject[] projects = ResourcesPlugin.getWorkspace().getRoot()
.getProjects();
Modified: trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/SeamUiAllTests.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/SeamUiAllTests.java 2008-02-19 11:12:48 UTC (rev 6415)
+++ trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/SeamUiAllTests.java 2008-02-19 12:02:07 UTC (rev 6416)
@@ -14,14 +14,13 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.tools.seam.ui.test.preferences.SeamPreferencesPageTest;
import org.jboss.tools.seam.ui.test.ca.SeamELContentAssistJbide1645Test;
import org.jboss.tools.seam.ui.test.ca.SeamELContentAssistJbide1676Test;
import org.jboss.tools.seam.ui.test.ca.SeamELContentAssistTest;
import org.jboss.tools.seam.ui.test.hyperlink.SeamViewHyperlinkPartitionerTest;
+import org.jboss.tools.seam.ui.test.preferences.SeamPreferencesPageTest;
import org.jboss.tools.seam.ui.test.view.SeamComponentsViewAllTests;
-import org.jboss.tools.seam.ui.test.view.SeamComponentsViewTest;
-import org.jboss.tools.seam.ui.test.view.SeamComponentsViewTestSetup;
+import org.jboss.tools.seam.ui.test.wizard.OpenSeamComponentDialogTest;
import org.jboss.tools.seam.ui.test.wizard.SeamFormNewWizardTest;
import org.jboss.tools.seam.ui.test.wizard.SeamProjectNewWizardTest;
@@ -33,6 +32,7 @@
public static Test suite() {
TestSuite suite = new TestSuite("Seam UI tests");
+ suite.addTestSuite(OpenSeamComponentDialogTest.class);
suite.addTest(SeamComponentsViewAllTests.suite());
suite.addTestSuite(SeamProjectNewWizardTest.class);
suite.addTestSuite(SeamFormNewWizardTest.class);
Modified: trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/wizard/OpenSeamComponentDialogTest.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/wizard/OpenSeamComponentDialogTest.java 2008-02-19 11:12:48 UTC (rev 6415)
+++ trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/wizard/OpenSeamComponentDialogTest.java 2008-02-19 12:02:07 UTC (rev 6416)
@@ -2,18 +2,71 @@
import junit.framework.TestCase;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.ui.PlatformUI;
import org.jboss.tools.seam.ui.wizard.OpenSeamComponentDialog;
+import org.jboss.tools.seam.ui.wizard.OpenSeamComponentDialog.SeamComponentWrapper;
+import org.jboss.tools.test.util.ProjectImportTestSetup;
+import org.jboss.tools.test.util.xpl.EditorTestHelper;
/**
* @author Daniel Azarov
*
*/
public class OpenSeamComponentDialogTest extends TestCase{
+ private IProject project;
- public void testOpenSeamComponentDialogIsCreated() {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ project = (IProject)ResourcesPlugin.getWorkspace().getRoot().findMember("TestComponentView");
+ if(project == null) {
+ ProjectImportTestSetup setup = new ProjectImportTestSetup(
+ this,
+ "org.jboss.tools.seam.ui.test",
+ "projects/TestComponentView",
+ "TestComponentView");
+ project = setup.importProject();
+ }
+ this.project = project.getProject();
+ this.project.build(IncrementalProjectBuilder.FULL_BUILD, null);
+
+ EditorTestHelper.joinBackgroundActivities();
+ }
+
+ public void testOpenSeamComponentDialogSearch() {
+
+ find("m","mockSecureEntity");
+ find("o","org.jboss.seam.captcha.captcha");
+ find("p","package1.package2.package3.package4.myComponent");
+
+ }
+
+ private void find(String pattern, String componentName){
OpenSeamComponentDialog dialog = new OpenSeamComponentDialog(
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
- dialog.open();
+
+ dialog.setInitialPattern(pattern);
+ dialog.beginTest();
+ try{
+ Thread.sleep(30000);
+ }catch(Exception ex){
+ ex.printStackTrace();
+ }
+ dialog.endTest();
+ Object[] objects = dialog.getResult();
+
+
+ assertNotNull("Component "+componentName+"not found", objects);
+
+ assertTrue("Component "+componentName+"not found", objects.length != 0);
+
+ SeamComponentWrapper wrapper = (SeamComponentWrapper)objects[0];
+
+ assertTrue("Component "+componentName+"not found", wrapper.getComponentName().equals(componentName));
}
+
}
18 years, 1 month
JBoss Tools SVN: r6415 - trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/forms.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2008-02-19 06:12:48 -0500 (Tue, 19 Feb 2008)
New Revision: 6415
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/forms/FormLayoutDataUtil.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/forms/ModelFormLayoutData.java
Log:
JBIDE-1670
Modified: trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/forms/FormLayoutDataUtil.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/forms/FormLayoutDataUtil.java 2008-02-18 18:38:55 UTC (rev 6414)
+++ trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/forms/FormLayoutDataUtil.java 2008-02-19 11:12:48 UTC (rev 6415)
@@ -47,7 +47,7 @@
public static IFormAttributeData[] createFormAttributeData(String entityName, String categoryName) {
XModelEntity entity = PreferenceModelUtilities.getPreferenceModel().getMetaData().getEntity(entityName);
if(entity == null) return new IFormAttributeData[0];
- List list = new ArrayList();
+ List<IFormAttributeData> list = new ArrayList<IFormAttributeData>();
XAttribute[] as = entity.getAttributes();
for (int i = 0; i < as.length; i++) {
if(!as[i].isVisible()) continue;
@@ -65,19 +65,19 @@
}
}
}
- return (IFormAttributeData[])list.toArray(new IFormAttributeData[0]);
+ return list.toArray(new IFormAttributeData[0]);
}
public static String[] getChildEntitiesWithAttribute(String entityName, String attributeName) {
XModelEntity entity = PreferenceModelUtilities.getPreferenceModel().getMetaData().getEntity(entityName);
if(entity == null) return new String[0];
- List list = new ArrayList();
+ List<String> list = new ArrayList<String>();
XChild[] cs = entity.getChildren();
for (int i = 0; i < cs.length; i++) {
XModelEntity c = entity.getMetaModel().getEntity(cs[i].getName());
if(c != null && c.getAttribute(attributeName) != null) list.add(c.getName());
}
- return (String[])list.toArray(new String[0]);
+ return list.toArray(new String[0]);
}
public static FormData createAllChildrenFormData(String name, String entityName, String childName, String attributeName, String createAction) {
Modified: trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/forms/ModelFormLayoutData.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/forms/ModelFormLayoutData.java 2008-02-18 18:38:55 UTC (rev 6414)
+++ trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/forms/ModelFormLayoutData.java 2008-02-19 11:12:48 UTC (rev 6415)
@@ -19,6 +19,14 @@
public class ModelFormLayoutData implements IFormLayoutData {
public static String EMPTY_DESCRIPTION = "";
+
+ public static IFormData TAG_LIST = new FormData(
+ "Tags",
+ "", //"Description
+ new FormAttributeData[]{new FormAttributeData("tag", 100)},
+ new String[]{"AnyElement"},
+ FormLayoutDataUtil.createDefaultFormActionData("CreateActions.CreateTag")
+ );
private final static IFormData[] FORM_LAYOUT_DEFINITIONS =
new IFormData[] {
@@ -32,13 +40,7 @@
"", //"Description, description, description",
new FormAttributeData[]{new FormAttributeData("text", InfoLayoutDataFactory.getInstance())}
),
- new FormData(
- "Tags",
- "", //"Description
- new FormAttributeData[]{new FormAttributeData("tag", 100)},
- new String[]{"AnyElement"},
- FormLayoutDataUtil.createDefaultFormActionData("CreateActions.CreateTag")
- )
+ TAG_LIST
}
),
};
@@ -69,23 +71,49 @@
}
return data;
}
-
- private IFormData generateDefaultFormData(XModelEntity entity) {
+
+ /**
+ * Returns form data that has field editors for attributes
+ * with property category=general
+ * @param entity
+ * @return
+ */
+ public static IFormData createGeneralFormData(XModelEntity entity) {
String entityName = entity.getName();
XAttribute attr = entity.getAttribute("element type");
String kind = attr == null ? entity.getXMLSubPath() : attr.getDefaultValue();
String label = WizardKeys.toDisplayName(kind);
- FormData g = new FormData(
- label,
- EMPTY_DESCRIPTION,
- FormLayoutDataUtil.createGeneralFormAttributeData(entityName)
- );
+ IFormAttributeData[] attrData = FormLayoutDataUtil.createGeneralFormAttributeData(entityName);
+ if(attrData.length == 0) return null;
+ FormData g = new FormData(label, EMPTY_DESCRIPTION, attrData);
+ return g;
+ }
+
+ /**
+ * Returns form data that has field editors for attributes
+ * with property category=advanced
+ * @param entity
+ * @return
+ */
+ public static IFormData createAdvancedFormData(String entityName) {
+ IFormAttributeData[] attrData = FormLayoutDataUtil.createAdvancedFormAttributeData(entityName);
+ if(attrData.length == 0) return null;
FormData a = new FormData(
"Advanced",
EMPTY_DESCRIPTION,
FormLayoutDataUtil.createAdvancedFormAttributeData(entityName)
);
- IFormData[] ds = {g, a};
+ return a;
+ }
+
+ private IFormData generateDefaultFormData(XModelEntity entity) {
+ String entityName = entity.getName();
+ List<IFormData> list = new ArrayList<IFormData>();
+ IFormData g = createGeneralFormData(entity);
+ if(g != null) list.add(g);
+ IFormData a = createAdvancedFormData(entityName);
+ if(a != null) list.add(a);
+ IFormData[] ds = list.toArray(new IFormData[0]);
IFormData data = new FormData(entityName, new String[]{null}, ds);
return data;
}
18 years, 1 month
JBoss Tools SVN: r6414 - trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2008-02-18 13:38:55 -0500 (Mon, 18 Feb 2008)
New Revision: 6414
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java
Log:
JBIDE-999 Ignore collections with no parameters.
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2008-02-18 18:16:20 UTC (rev 6413)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2008-02-18 18:38:55 UTC (rev 6414)
@@ -441,7 +441,7 @@
for (TypeInfoCollector.MemberInfo mbr : members) {
if (mbr.getMemberType() == null) continue;
TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
- if (TypeInfoCollector.isNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
+ if (TypeInfoCollector.isNotParameterizedCollection(mbr) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
List<TypeInfoCollector.MemberInfo> properties = infos.getProperties();
@@ -470,7 +470,7 @@
for (TypeInfoCollector.MemberInfo mbr : members) {
if (mbr.getMemberType() == null) continue;
TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
- if (TypeInfoCollector.isNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
+ if (TypeInfoCollector.isNotParameterizedCollection(mbr) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
List<TypeInfoCollector.MemberInfo> methods = infos.getMethods();
@@ -491,7 +491,7 @@
for (TypeInfoCollector.MemberInfo mbr : members) {
if (mbr.getMemberType() == null) continue;
TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
- if (TypeInfoCollector.isNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
+ if (TypeInfoCollector.isNotParameterizedCollection(mbr) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
proposals.addAll(infos.getMethodPresentations());
@@ -505,7 +505,7 @@
for (TypeInfoCollector.MemberInfo mbr : members) {
if (mbr.getMemberType() == null) continue;
TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
- if (TypeInfoCollector.isNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
+ if (TypeInfoCollector.isNotParameterizedCollection(mbr) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
proposalsToFilter.addAll(infos.getMethodPresentations());
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java 2008-02-18 18:16:20 UTC (rev 6413)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java 2008-02-18 18:38:55 UTC (rev 6414)
@@ -586,10 +586,16 @@
}
}
- public static boolean isNotParameterizedCollection(IType type) {
+ public static boolean isNotParameterizedCollection(TypeInfoCollector.MemberInfo mbr) {
try {
- String name = type.getFullyQualifiedParameterizedName();
- return (name.indexOf('<')==-1) && (isInstanceofType(type, "java.util.Map") || (isInstanceofType(type, "java.util.Collection")));
+ if(mbr.getParametersOfType()!=null && mbr.getParametersOfType().length>0) {
+ return false;
+ }
+ IType type = mbr.getMemberType();
+ if(type!=null) {
+ return isInstanceofType(type, "java.util.Map") || isInstanceofType(type, "java.util.Collection");
+ }
+ return false;
} catch (JavaModelException e) {
return false;
}
18 years, 1 month
JBoss Tools SVN: r6413 - trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2008-02-18 13:16:20 -0500 (Mon, 18 Feb 2008)
New Revision: 6413
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-999 Added handling ListDataModel, SetDataNodel, ArrayDataModel, MapDataModel
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2008-02-18 18:11:32 UTC (rev 6412)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2008-02-18 18:16:20 UTC (rev 6413)
@@ -22,6 +22,8 @@
import org.eclipse.core.resources.IResource;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IMember;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
@@ -30,6 +32,7 @@
import org.jboss.tools.seam.core.ISeamContextVariable;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.ScopeType;
+import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.seam.internal.core.el.ElVarSearcher.Var;
/**
@@ -109,7 +112,17 @@
Set<String> proposals;
private ELOperandToken lastResolvedToken;
private boolean isMapOrCollectionOrBundleAmoungTheTokens = false;
+ private TypeInfoCollector.MemberInfo memberOfResolvedOperand;
+ public TypeInfoCollector.MemberInfo getMemberOfResolvedOperand() {
+ return memberOfResolvedOperand;
+ }
+
+ public void setMemberOfResolvedOperand(
+ TypeInfoCollector.MemberInfo lastResolvedMember) {
+ this.memberOfResolvedOperand = lastResolvedMember;
+ }
+
public SeamELOperandResolveStatus(List<ELOperandToken> tokens) {
this.tokens = tokens;
}
@@ -192,11 +205,32 @@
}
}
+ private static final String collectionAdditionForCollectionDataModel = ".iterator().next()";
+ private static final String collectionAdditionForMapDataModel = ".get()";
+
public SeamELOperandResolveStatus resolveSeamELOperand(ISeamProject project, IFile file, String documentContent, CharSequence prefix,
int position, boolean returnEqualedVariablesOnly, List<Var> vars) throws BadLocationException, StringIndexOutOfBoundsException {
String oldEl = prefix.toString();
Var var = findVarForEl(oldEl, vars);
- String newEl = replacePrefixByVar(oldEl, var);
+ String suffix = "";
+ if(var!=null) {
+ TypeInfoCollector.MemberInfo member = resolveSeamEL(project, file, var.getElToken().getText());
+ if(member!=null && !member.isTypeArray()) {
+ IType type = member.getMemberType();
+ if(type!=null) {
+ try {
+ if(TypeInfoCollector.isInstanceofType(type, "java.util.Map")) {
+ suffix = collectionAdditionForMapDataModel;
+ } else {
+ suffix = collectionAdditionForCollectionDataModel;
+ }
+ } catch (JavaModelException e) {
+ SeamCorePlugin.getPluginLog().logError(e);
+ }
+ }
+ }
+ }
+ String newEl = replacePrefixByVar(oldEl, var, suffix);
String newDocumentContent = documentContent;
boolean prefixWasChanged = newEl!=oldEl;
if(prefixWasChanged) {
@@ -212,12 +246,12 @@
List<ELOperandToken> oldTokens = tokenizer.getTokens();
status.setTokens(oldTokens);
if(newLastResolvedToken != null) {
- if(newLastResolvedToken.getStart() < var.getElToken().getLength()) {
+ if(newLastResolvedToken.getStart() < var.getElToken().getLength() + suffix.length()) {
// Last resolved token is token from "var". Set first token of original EL as last resolved one.
- status.setLastResolvedToken(oldTokens.get(0));
+ status.setLastResolvedToken(null);
} else {
// Last resolved token is token outside "var" prefix. Correct last resolved token.
- int oldLastResolvedTokenStart = newLastResolvedToken.getStart() - var.getElToken().getText().length() + var.getName().length();
+ int oldLastResolvedTokenStart = newLastResolvedToken.getStart() - var.getElToken().getText().length() - suffix.length() + var.getName().length();
for (ELOperandToken oldToken : oldTokens) {
if(oldToken.getStart() == oldLastResolvedTokenStart) {
status.setLastResolvedToken(oldToken);
@@ -252,16 +286,56 @@
* @param vars
* @return
*/
- private String replacePrefixByVar(String el, Var var) {
+ private String replacePrefixByVar(String el, Var var, String suffix) {
if(var!=null) {
ELToken token = var.getElToken();
if(token!=null) {
- return token.getText() + ".iterator().next()" + el.substring(var.getName().length());
+ return token.getText() + suffix + el.substring(var.getName().length());
}
}
return el;
}
+ public TypeInfoCollector.MemberInfo resolveSeamEL(ISeamProject project, IFile file, String elBody) throws BadLocationException, StringIndexOutOfBoundsException {
+ SeamELOperandResolveStatus status = resolveSeamELOperand(project, file, elBody, elBody, 0, true);
+ return status.getMemberOfResolvedOperand();
+ }
+
+ public List<ISeamContextVariable> resolveSeamVariableFromEL(ISeamProject project, IFile file, String el) throws BadLocationException, StringIndexOutOfBoundsException {
+ SeamELOperandTokenizer tokenizer = new SeamELOperandTokenizer(el, el.length());
+ List<ELOperandToken> tokens = tokenizer.getTokens();
+
+ SeamELOperandResolveStatus status = new SeamELOperandResolveStatus(tokenizer.getTokens());
+ status.setTokens(tokens);
+
+ List<ISeamContextVariable> resolvedVariables = new ArrayList<ISeamContextVariable>();
+ ScopeType scope = getScope(project, file);
+ List<List<ELOperandToken>> variations = getPossibleVarsFromPrefix(tokens);
+
+ if (variations.isEmpty()) {
+ resolvedVariables = resolveVariables(project, scope,
+ tokens, tokens,
+ true);
+ } else {
+ for (List<ELOperandToken> variation : variations) {
+ List<ISeamContextVariable> resolvedVars = resolveVariables(project, scope,
+ variation, tokens,
+ true);
+ if (resolvedVars != null && !resolvedVars.isEmpty()) {
+ resolvedVariables = resolvedVars;
+ status.setLastResolvedToken(variation.get(variation.size() - 1));
+ break;
+ }
+ }
+ }
+
+ if (!areEqualExpressions(status.getResolvedTokens(), status.getTokens())) {
+ resolvedVariables.clear();
+ }
+
+ return resolvedVariables;
+ }
+
/**
* Resolves Seam EL
* @param project
@@ -337,6 +411,7 @@
} else if(returnEqualedVariablesOnly) {
proposals.add(varName);
}
+ status.setMemberOfResolvedOperand(SeamExpressionResolver.getMemberInfoByVariable(var, true));
}
status.setLastResolvedToken(status.getTokens().isEmpty() ? null : status.getTokens().get(status.getTokens().size() - 1));
status.setProposals(proposals);
@@ -366,7 +441,7 @@
for (TypeInfoCollector.MemberInfo mbr : members) {
if (mbr.getMemberType() == null) continue;
TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
- if (TypeInfoCollector.isMapOrNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
+ if (TypeInfoCollector.isNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
List<TypeInfoCollector.MemberInfo> properties = infos.getProperties();
@@ -395,7 +470,7 @@
for (TypeInfoCollector.MemberInfo mbr : members) {
if (mbr.getMemberType() == null) continue;
TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
- if (TypeInfoCollector.isMapOrNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
+ if (TypeInfoCollector.isNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
List<TypeInfoCollector.MemberInfo> methods = infos.getMethods();
@@ -416,7 +491,7 @@
for (TypeInfoCollector.MemberInfo mbr : members) {
if (mbr.getMemberType() == null) continue;
TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
- if (TypeInfoCollector.isMapOrNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
+ if (TypeInfoCollector.isNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
proposals.addAll(infos.getMethodPresentations());
@@ -430,11 +505,12 @@
for (TypeInfoCollector.MemberInfo mbr : members) {
if (mbr.getMemberType() == null) continue;
TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
- if (TypeInfoCollector.isMapOrNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
+ if (TypeInfoCollector.isNotParameterizedCollection(mbr.getMemberType()) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
proposalsToFilter.addAll(infos.getMethodPresentations());
proposalsToFilter.addAll(infos.getPropertyPresentations(status.getUnpairedGettersOrSetters()));
+ status.setMemberOfResolvedOperand(mbr);
}
for (String proposal : proposalsToFilter) {
// We do expect nothing but name for method tokens (No round brackets)
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java 2008-02-18 18:11:32 UTC (rev 6412)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java 2008-02-18 18:16:20 UTC (rev 6413)
@@ -16,6 +16,7 @@
import java.util.Set;
import org.eclipse.jdt.core.IMember;
+import org.jboss.tools.seam.core.BijectedAttributeType;
import org.jboss.tools.seam.core.IBijectedAttribute;
import org.jboss.tools.seam.core.ISeamComponent;
import org.jboss.tools.seam.core.ISeamComponentMethod;
@@ -182,7 +183,15 @@
}
}
if (member == null && variable instanceof IBijectedAttribute) {
- member = TypeInfoCollector.createMemberInfo(((ISeamJavaSourceReference)variable).getSourceMember());
+ boolean isDataModel = false;
+ BijectedAttributeType[] types = ((IBijectedAttribute)variable).getTypes();
+ for(int i=0; i<types.length; i++) {
+ if(types[i]==BijectedAttributeType.DATA_BINDER) {
+ isDataModel = true;
+ break;
+ }
+ }
+ member = TypeInfoCollector.createMemberInfo(((ISeamJavaSourceReference)variable).getSourceMember(), isDataModel);
}
if (member == null && variable instanceof ISeamJavaSourceReference) {
member = TypeInfoCollector.createMemberInfo(((ISeamJavaSourceReference)variable).getSourceMember());
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java 2008-02-18 18:11:32 UTC (rev 6412)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java 2008-02-18 18:16:20 UTC (rev 6413)
@@ -52,15 +52,20 @@
private Map<String, String> fParametersOfDeclaringType;
private IType fMemberType;
private String fTypeName;
+ private boolean fTypeIsArray;
+ private String fTypeNameOfArray;
+ private String fQualifiedTypeNameOfErrayElement;
+ private boolean isDataModel;
protected MemberInfo (
IType sourceType,
- String declaringTypeQualifiedName, String name, int modifiers, MemberInfo parentMember) {
+ String declaringTypeQualifiedName, String name, int modifiers, MemberInfo parentMember, boolean dataModel) {
setSourceType(sourceType);
setDeclaringTypeQualifiedName(declaringTypeQualifiedName);
setName(name);
setModifiers(modifiers);
setParentMember(parentMember);
+ setDataModel(dataModel);
}
protected void initializeParametersOfDeclaringType() {
@@ -188,7 +193,7 @@
if(fMemberType==null) {
initializeParametersOfDeclaringType();
fMemberType = getMemberTypeInner();
- if(fMemberType==null) {
+ if(fMemberType==null && fParametersOfDeclaringType!=null) {
// Maybe type name is parameter.
String typeName = fParametersOfDeclaringType.get(fTypeName);
if(typeName!=null) {
@@ -203,6 +208,37 @@
return fMemberType;
}
+ public boolean isTypeArray() {
+ return fTypeIsArray;
+ }
+
+ void setTypeArray(boolean typeIsArray) {
+ fTypeIsArray = typeIsArray;
+ }
+
+ public String getTypeNameOfArray() {
+ return fTypeNameOfArray;
+ }
+
+ void setTypeNameOfArray(String typeNameOfArray) {
+ fTypeNameOfArray = typeNameOfArray;
+ }
+
+ public String getQualifiedTypeNameOfArrayElement() {
+ if(fQualifiedTypeNameOfErrayElement == null) {
+ fQualifiedTypeNameOfErrayElement = EclipseJavaUtil.resolveType(getSourceType(), getTypeNameOfArray());
+ }
+ return fQualifiedTypeNameOfErrayElement;
+ }
+
+ public boolean isDataModel() {
+ return isDataModel;
+ }
+
+ void setDataModel(boolean isDataModel) {
+ this.isDataModel = isDataModel;
+ }
+
abstract protected IType getMemberTypeInner();
abstract public IJavaElement getJavaElement();
@@ -211,8 +247,8 @@
public static class TypeInfo extends MemberInfo {
private IType fType;
- public TypeInfo(IType type, MemberInfo parentMember) throws JavaModelException {
- super(type.getDeclaringType(), (type.getDeclaringType() == null ? null : type.getDeclaringType().getFullyQualifiedName()), type.getFullyQualifiedName(), type.getFlags(), parentMember);
+ public TypeInfo(IType type, MemberInfo parentMember, boolean dataModel) throws JavaModelException {
+ super(type.getDeclaringType(), (type.getDeclaringType() == null ? null : type.getDeclaringType().getFullyQualifiedName()), type.getFullyQualifiedName(), type.getFlags(), parentMember, dataModel);
this.fType = type;
}
@@ -234,21 +270,29 @@
public static class FieldInfo extends MemberInfo {
private String fQualifiedTypeName;
- public FieldInfo(IType sourceType, String declaringTypeQualifiedName, String name, int modifiers, String typeQualifiedName, String[] parametersOfType, MemberInfo parentMember) {
- super(sourceType, declaringTypeQualifiedName, name, modifiers, parentMember);
+ public FieldInfo(IType sourceType, String declaringTypeQualifiedName, String name, int modifiers, String typeQualifiedName, String[] parametersOfType, MemberInfo parentMember, boolean dataModel) {
+ super(sourceType, declaringTypeQualifiedName, name, modifiers, parentMember, dataModel);
setTypeName(typeQualifiedName);
setParametersOfType(parametersOfType);
}
- public FieldInfo(IField field, MemberInfo parentMember) throws JavaModelException {
+ public FieldInfo(IField field, MemberInfo parentMember, boolean dataModel) throws JavaModelException {
super(field.getDeclaringType(),
(field.getDeclaringType() == null ? null : field.getDeclaringType().getFullyQualifiedName()),
field.getElementName(),
field.getFlags(),
- parentMember);
+ parentMember,
+ dataModel);
String fullTypeSignature = field.getTypeSignature();
- String type = String.valueOf(Signature.toString(Signature.getTypeErasure(fullTypeSignature)));
+ String typeErasureSignature = Signature.getTypeErasure(fullTypeSignature);
+ String typeOfArray = String.valueOf(Signature.toString(Signature.getElementType(typeErasureSignature)));
+ String type = String.valueOf(Signature.toString(typeErasureSignature));
+ if(!type.equals(typeOfArray)) {
+ // this is an array
+ setTypeArray(true);
+ setTypeNameOfArray(typeOfArray);
+ }
String[] signaturesOfParametersOfType = Signature.getTypeArguments(fullTypeSignature);
String[] parametersOfType = getQualifiedClassNamesFromSignatureArray(signaturesOfParametersOfType);
@@ -267,6 +311,9 @@
public IType getType() {
try {
+ if(isDataModel() && isTypeArray()) {
+ return getSourceType().getJavaProject().findType(getQualifiedTypeNameOfArrayElement());
+ }
return getSourceType().getJavaProject().findType(getQualifiedTypeName());
} catch (JavaModelException e) {
SeamCorePlugin.getPluginLog().logError(e);
@@ -300,29 +347,39 @@
String[] parameterNames,
String returnTypeQualifiedName,
String[] parametersOfReturnType,
- MemberInfo parentMember) {
- super(sourceType, declaringTypeQualifiedName, name, modifiers, parentMember);
+ MemberInfo parentMember,
+ boolean dataModel) {
+ super(sourceType, declaringTypeQualifiedName, name, modifiers, parentMember, dataModel);
setParameterTypeNames(parameterTypeQualifiedNames);
setParameterNames(parameterNames);
setTypeName(returnTypeQualifiedName);
setParametersOfType(parametersOfReturnType);
}
- public MethodInfo(IMethod method, MemberInfo parentMember) throws JavaModelException {
+ public MethodInfo(IMethod method, MemberInfo parentMember, boolean dataModel) throws JavaModelException {
super(method.getDeclaringType(),
(method.getDeclaringType() == null ? null : method.getDeclaringType().getFullyQualifiedName()),
method.getElementName(),
method.getFlags(),
- parentMember);
+ parentMember,
+ dataModel);
setParameterNames(method.getParameterNames());
setParameterTypeNames(resolveSignatures(method.getDeclaringType(), method.getParameterTypes()));
String fullReturnTypeSignature = method.getReturnType();
- String returnType = String.valueOf(Signature.toString(Signature.getTypeErasure(fullReturnTypeSignature)));
+ String returnTypeErasureSignature = Signature.getTypeErasure(fullReturnTypeSignature);
+ String returnTypeOfArray = String.valueOf(Signature.toString(Signature.getElementType(returnTypeErasureSignature)));
+ String returnType = String.valueOf(Signature.toString(returnTypeErasureSignature));
String[] signaturesOfParametersOfReturnType = Signature.getTypeArguments(fullReturnTypeSignature);
String[] parametersOfReturnType = getQualifiedClassNamesFromSignatureArray(signaturesOfParametersOfReturnType);
+ if(!returnType.equals(returnTypeOfArray)) {
+ // this is an array
+ setTypeArray(true);
+ setTypeNameOfArray(returnTypeOfArray);
+ }
+
setTypeName(returnType);
setParametersOfType(parametersOfReturnType);
setParametersNamesOfDeclaringType(getTypeErasureFromSignatureArray(method.getDeclaringType().getTypeParameterSignatures()));
@@ -373,6 +430,9 @@
public IType getReturnType() {
try {
+ if(isDataModel() && isTypeArray()) {
+ return getSourceType().getJavaProject().findType(getQualifiedTypeNameOfArrayElement());
+ }
return getSourceType().getJavaProject().findType(getReturnTypeQualifiedName());
} catch (JavaModelException e) {
SeamCorePlugin.getPluginLog().logError(e);
@@ -462,70 +522,7 @@
}
}
}
-/*
- CompletionRequestor fRequestor = new CompletionRequestor() {
- @Override
- public void accept(CompletionProposal proposal) {
- switch(proposal.getKind()) {
- case CompletionProposal.FIELD_REF:
- {
- char[] declarationSignature = proposal.getDeclarationSignature();
- String declarationType = String.valueOf(Signature.toCharArray(declarationSignature));
-
- char[] fullSignature = proposal.getSignature();
- String type = String.valueOf(Signature.toCharArray(Signature.getTypeErasure(fullSignature)));
- char[][] signaturesOfParametersOfType = Signature.getTypeArguments(fullSignature);
- String[] parametersOfType = getQualifiedClassNameFromCharArray(signaturesOfParametersOfType);
-
- FieldInfo info = new FieldInfo(TypeInfoCollector.this.fType,
- declarationType,
- String.valueOf(proposal.getName()), proposal.getFlags(),
- type,
- parametersOfType);
- fFields.add(info);
- }
- break;
- case CompletionProposal.METHOD_REF:
- {
- String[] parameterNames = convertToStringArray(proposal.findParameterNames(null));
-
- char[] declarationSignature = proposal.getDeclarationSignature();
- String declarationType = String.valueOf(Signature.toCharArray(Signature.getTypeErasure(declarationSignature)));
-
- char[] signature = proposal.getSignature();
- char[][] parametesSignatures = Signature.getParameterTypes(signature);
- String[] parametersTypes = getQualifiedClassNameFromCharArray(parametesSignatures);
-
- char[] fullReturnTypeSignature = Signature.getReturnType(signature);
- String returnType = String.valueOf(Signature.toCharArray(Signature.getTypeErasure(fullReturnTypeSignature)));
- char[][] signaturesOfParametersOfReturnType = Signature.getTypeArguments(fullReturnTypeSignature);
- String[] parametersOfReturnType = getQualifiedClassNameFromCharArray(signaturesOfParametersOfReturnType);
-
- MethodInfo info = new MethodInfo(TypeInfoCollector.this.fType,
- declarationType,
- String.valueOf(proposal.getName()), proposal.getFlags(),
- parametersTypes,
- parameterNames,
- returnType,
- parametersOfReturnType);
- fMethods.add(info);
- }
- break;
- case CompletionProposal.KEYWORD:
- case CompletionProposal.PACKAGE_REF:
- case CompletionProposal.TYPE_REF:
- case CompletionProposal.METHOD_DECLARATION:
- case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
- case CompletionProposal.LABEL_REF :
- case CompletionProposal.LOCAL_VARIABLE_REF:
- case CompletionProposal.VARIABLE_DECLARATION:
- case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
- break;
- }
- }
- };
-*/
public TypeInfoCollector(MemberInfo member) {
this.fMember = member;
this.fType = member.getMemberType();
@@ -551,16 +548,12 @@
if (fType == null)
return;
try {
-// fType.codeComplete("".toCharArray(), -1, 0, new char[0][0], new char[0][0], new int[0], false, fRequestor);
IType binType = fType;
while (binType != null) {
IMethod[] binMethods = binType.getMethods();
for (int i = 0; binMethods != null && i < binMethods.length; i++) {
if (binMethods[i].isConstructor()) continue;
-// MethodInfo[] infos = findMethodInfos(binMethods[i]);
-// if (infos == null || infos.length == 0) {
- fMethods.add(new MethodInfo(binMethods[i], fMember));
-// }
+ fMethods.add(new MethodInfo(binMethods[i], fMember, false));
}
binType = getSuperclass(binType);
}
@@ -572,6 +565,10 @@
if(isDataModelObject(fType)) {
addInfoForDataModelObject();
}
+ // This inserts here methods "public int getRowCount()" for @DataModel variables.
+ if(fMember.isDataModel) {
+ addInfoForDataModelVariable();
+ }
} catch (JavaModelException e) {
SeamCorePlugin.getPluginLog().logError(e);
}
@@ -589,10 +586,10 @@
}
}
- public static boolean isMapOrNotParameterizedCollection(IType type) {
+ public static boolean isNotParameterizedCollection(IType type) {
try {
String name = type.getFullyQualifiedParameterizedName();
- return isInstanceofType(type, "java.util.Map") || (isInstanceofType(type, "java.util.Collection") && name.indexOf('<')==-1);
+ return (name.indexOf('<')==-1) && (isInstanceofType(type, "java.util.Map") || (isInstanceofType(type, "java.util.Collection")));
} catch (JavaModelException e) {
return false;
}
@@ -614,6 +611,18 @@
return true;
}
+ void addInfoForDataModelVariable() {
+ fMethods.add(new MethodInfo(fType,
+ fType.getFullyQualifiedName(),
+ "getRowCount", Modifier.PUBLIC,
+ new String[0],
+ new String[0],
+ "int",
+ new String[0],
+ fMember,
+ false));
+ }
+
void addInfoForDataModelObject() {
fMethods.add(new MethodInfo(fType,
fType.getFullyQualifiedName(),
@@ -622,7 +631,8 @@
new String[0],
"int",
new String[0],
- fMember));
+ fMember,
+ false));
fMethods.add(new MethodInfo(fType,
fType.getFullyQualifiedName(),
"isEmpty", Modifier.PUBLIC,
@@ -630,7 +640,8 @@
new String[0],
"boolean",
new String[0],
- fMember));
+ fMember,
+ false));
}
private static IType getSuperclass(IType type) throws JavaModelException {
@@ -843,14 +854,14 @@
return properties;
}
- public static MemberInfo createMemberInfo(IMember member) {
+ public static MemberInfo createMemberInfo(IMember member, boolean dataModel) {
try {
if (member instanceof IType)
- return new TypeInfo((IType)member, null);
+ return new TypeInfo((IType)member, null, dataModel);
else if (member instanceof IField)
- return new FieldInfo((IField)member, null);
+ return new FieldInfo((IField)member, null, dataModel);
else if (member instanceof IMethod)
- return new MethodInfo((IMethod)member, null);
+ return new MethodInfo((IMethod)member, null, dataModel);
} catch (JavaModelException e) {
SeamCorePlugin.getPluginLog().logError(e);
}
@@ -858,6 +869,10 @@
return null;
}
+ public static MemberInfo createMemberInfo(IMember member) {
+ return createMemberInfo(member, false);
+ }
+
static String[] resolveSignatures (IType type, String[] signatures) {
if (signatures == null || signatures.length == 0)
return new String[0];
18 years, 1 month