|
|
|
|
|
|
|
Re: Scoping [message #1063113 is a reply to message #1063109] |
Wed, 12 June 2013 11:36 |
|
Hi,
ownedViewField is not a cross reference. the only cross ref you have is
scope_ViewField_field
since xtext instantiastes ViewField lazy the signature may be
scope_ViewField_field(View ctx, ERefeference Ref)
Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
|
|
|
|
|
Re: Scoping [message #1063121 is a reply to message #1063116] |
Wed, 12 June 2013 11:58 |
junior developer Messages: 354 Registered: January 2013 |
Senior Member |
|
|
Hi ,
My util class :
public static ArrayList<Field> possibleFieldForViewField(View view){
ArrayList<Field> uniqueFields = returnUniqueParenListFields(view);
EList<ViewField> ownedViewFields = view.getOwnedViewField();
for (Iterator<ViewField> iterator = ownedViewFields.iterator(); iterator.hasNext();) {
ViewField viewField = (ViewField) iterator.next();
Field alreadyAddedField = viewField.getField();
for(int i = 0; i < uniqueFields.size(); i++){
Field field = uniqueFields.get(i);
if(field.eClass().getName().equals(alreadyAddedField.eClass().getName()) && field.getName().equals(alreadyAddedField.getName())){
uniqueFields.remove(i);
}
}
}
return uniqueFields;
}
}
public static ArrayList<Field> returnUniqueParenListFields(View view){
ArrayList<Field> allFields = returnAllParenListFields(view);
for(int i = 0; i < allFields.size(); i++){
Field field1 = allFields.get(i);
for(int j = i+1; j < allFields.size(); j++){
Field field2 = allFields.get(j);
if(field1.eClass().getName().equals(field2.eClass().getName()) && field1.getName().equals(field2.getName())){
allFields.remove(j);
}
}
}
return allFields;
}
public static ArrayList<Field> returnAllParenListFields(View view){
ArrayList<Field> allFields = new ArrayList<>();
CustomList parentList = (CustomList) view.eContainer();
EList<ContentType> ownedContentTypes = parentList.getOwnedContentType();
for (Iterator<ContentType> iterator = ownedContentTypes.iterator(); iterator
.hasNext();) {
ContentType contentType = (ContentType) iterator.next();
EList<Field> fields = contentType.getOwnedField();
for (Iterator<Field> iterator2 = fields.iterator(); iterator2.hasNext();) {
Field field = (Field) iterator2.next();
allFields.add(field);
}
}
return allFields;
}
[Updated on: Wed, 12 June 2013 11:58] Report message to a moderator
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04229 seconds