Home » Modeling » TMF (Xtext) » No EObjectDescription could be found in Scope Web.sitePermission for
No EObjectDescription could be found in Scope Web.sitePermission for [message #1077832] |
Fri, 02 August 2013 07:50 |
junior developer Messages: 354 Registered: January 2013 |
Senior Member |
|
|
Hi all ,
I try a lot of solution but I still not solved No EObjectDescription could be found in Scope.Please help me .I do not understand my error and How can I solved this problem
My code is below and I sahe all my code :
my util class and its called class
package com.mdd4cca.msf.content.content.util;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.transaction.util.TransactionUtil;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PlatformUI;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.resource.XtextResourceSet;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.mdd4cca.msf.content.content.Web;
import com.mdd4cca.msf.user.UserRuntimeModule;
import com.mdd4cca.msf.user.UserStandaloneSetup;
import com.mdd4cca.msf.user.user.BasePermission;
import com.mdd4cca.msf.user.user.Group;
import com.mdd4cca.msf.user.user.RoleAssignment;
import com.mdd4cca.msf.user.user.RoleDefinition;
import com.mdd4cca.msf.user.user.SitePermission;
import com.mdd4cca.msf.user.user.UserFactory;
import com.mdd4cca.msf.user.user.UserModel;
import com.mdd4cca.msf.user.user.UserPackage;
import com.mdd4cca.msf.user.user.util.UserConstant;
public class SitePermissionUtil {
public static SitePermission createDefaultSitePermission(String webName,
String webGuID) {
// Initialize the model
UserPackage.eINSTANCE.eClass();
// Retrieve the default factory singleton
UserFactory factory = UserFactory.eINSTANCE;
// SitePermission
SitePermission sitePermission = factory.createSitePermission();
sitePermission.setName(webName);
sitePermission.setWebGUID(webGuID);
// Owners Group
Group ownerGroup = UserFactory.eINSTANCE.createGroup();
ownerGroup.setName("Owners");
sitePermission.getOwnedGroup().add(ownerGroup);
// Members Group
Group memberGroup = UserFactory.eINSTANCE.createGroup();
memberGroup.setName("Members");
sitePermission.getOwnedGroup().add(memberGroup);
// Visitors Group
Group visitorsGroup = UserFactory.eINSTANCE.createGroup();
visitorsGroup.setName("Visitors");
sitePermission.getOwnedGroup().add(visitorsGroup);
// Viewers Group
Group viewersGroup = UserFactory.eINSTANCE.createGroup();
viewersGroup.setName("Viewers");
sitePermission.getOwnedGroup().add(viewersGroup);
// viewersRoleDefinitions
RoleDefinition viewerRole = UserFactory.eINSTANCE.createRoleDefinition();
viewerRole.setName("viewerRoleDefinition");
viewerRole.getBasePermissions().add(BasePermission.VIEW_LIST_ITEMS);
viewerRole.getBasePermissions().add(BasePermission.VIEW_VERSIONS);
viewerRole.getBasePermissions().add(BasePermission.CREATE_ALERTS);
viewerRole.getBasePermissions().add(BasePermission.VIEW_FORM_PAGES);
viewerRole.getBasePermissions().add(BasePermission.BROWSE_USER_INFO);
viewerRole.getBasePermissions().add(BasePermission.USE_REMOTE_AP_IS);
viewerRole.getBasePermissions().add(
BasePermission.USE_CLIENT_INTEGRATION);
viewerRole.getBasePermissions().add(BasePermission.OPEN);
sitePermission.getOwnedRoleDefinition().add(viewerRole);
// ownerRoleDefinitions
RoleDefinition ownerRole = UserFactory.eINSTANCE.createRoleDefinition();
ownerRole.setName("ownerRoleDefinition");
List<BasePermission> permissions = BasePermission.VALUES;
for (Iterator<BasePermission> iterator = permissions.iterator(); iterator
.hasNext();) {
BasePermission basePermission = (BasePermission) iterator.next();
ownerRole.getBasePermissions().add(basePermission);
}
sitePermission.getOwnedRoleDefinition().add(ownerRole);
// memberRoleDefinition
RoleDefinition memberRole = UserFactory.eINSTANCE.createRoleDefinition();
memberRole.setName("memberRoleDefinition");
memberRole.getBasePermissions().add(BasePermission.ADD_LIST_ITEMS);
memberRole.getBasePermissions().add(BasePermission.EDIT_LIST_ITEMS);
memberRole.getBasePermissions().add(BasePermission.DELETE_LIST_ITEMS);
memberRole.getBasePermissions().add(BasePermission.VIEW_LIST_ITEMS);
memberRole.getBasePermissions().add(BasePermission.OPEN_ITEMS);
memberRole.getBasePermissions().add(BasePermission.VIEW_VERSIONS);
memberRole.getBasePermissions().add(BasePermission.CREATE_ALERTS);
memberRole.getBasePermissions().add(BasePermission.BROWSE_DIRECTORIES);
memberRole.getBasePermissions().add(BasePermission.VIEW_FORM_PAGES);
memberRole.getBasePermissions().add(BasePermission.BROWSE_USER_INFO);
memberRole.getBasePermissions().add(BasePermission.USE_REMOTE_AP_IS);
memberRole.getBasePermissions().add(
BasePermission.USE_CLIENT_INTEGRATION);
memberRole.getBasePermissions().add(BasePermission.OPEN);
memberRole.getBasePermissions().add(BasePermission.EDIT_MY_USER_INFO);
memberRole.getBasePermissions().add(
BasePermission.MANAGE_PERSONAL_VIEWS);
memberRole.getBasePermissions().add(
BasePermission.ADD_DEL_PRIVATE_WEB_PARTS);
memberRole.getBasePermissions().add(
BasePermission.UPDATE_PERSONAL_WEB_PARTS);
sitePermission.getOwnedRoleDefinition().add(memberRole);
// visitor Role Definition.
RoleDefinition VisitorsRole = UserFactory.eINSTANCE.createRoleDefinition();
VisitorsRole.setName("visitorsRoleDefinition");
VisitorsRole.getBasePermissions().add(BasePermission.VIEW_LIST_ITEMS);
VisitorsRole.getBasePermissions().add(BasePermission.OPEN_ITEMS);
VisitorsRole.getBasePermissions().add(BasePermission.VIEW_VERSIONS);
VisitorsRole.getBasePermissions().add(BasePermission.CREATE_ALERTS);
VisitorsRole.getBasePermissions().add(BasePermission.VIEW_FORM_PAGES);
VisitorsRole.getBasePermissions().add(BasePermission.VIEW_LIST_ITEMS);
VisitorsRole.getBasePermissions().add(BasePermission.BROWSE_USER_INFO);
VisitorsRole.getBasePermissions().add(BasePermission.USE_REMOTE_AP_IS);
VisitorsRole.getBasePermissions().add(
BasePermission.USE_CLIENT_INTEGRATION);
VisitorsRole.getBasePermissions().add(BasePermission.OPEN);
sitePermission.getOwnedRoleDefinition().add(VisitorsRole);
// Full Control Assignment
RoleAssignment ownerRoleAssignment = UserFactory.eINSTANCE
.createRoleAssignment();
ownerRoleAssignment.setName("FullControl");
ownerRoleAssignment.setMember(ownerGroup);
ownerRoleAssignment.getRoleDefinitionBindings().add(ownerRole);
sitePermission.getOwnedRoleAssignments().add(ownerRoleAssignment);
// Contribute Assignment
RoleAssignment memeberRoleAssignment = UserFactory.eINSTANCE
.createRoleAssignment();
memeberRoleAssignment.setName("Contribute");
memeberRoleAssignment.setMember(memberGroup);
memeberRoleAssignment.getRoleDefinitionBindings().add(memberRole);
sitePermission.getOwnedRoleAssignments().add(memeberRoleAssignment);
// Read Assignment
RoleAssignment visitorsRoleAssignment = UserFactory.eINSTANCE
.createRoleAssignment();
visitorsRoleAssignment.setName("Read");
visitorsRoleAssignment.setMember(visitorsGroup);
visitorsRoleAssignment.getRoleDefinitionBindings().add(VisitorsRole);
sitePermission.getOwnedRoleAssignments().add(visitorsRoleAssignment);
// Full Control Assignment
RoleAssignment viewersRoleAssignment = UserFactory.eINSTANCE
.createRoleAssignment();
viewersRoleAssignment.setName("ViewOnly");
viewersRoleAssignment.setMember(viewersGroup);
viewersRoleAssignment.getRoleDefinitionBindings().add(viewerRole);
sitePermission.getOwnedRoleAssignments().add(viewersRoleAssignment);
// Add Role Assignment to web
sitePermission.getOwnedRoleAssignments().add(visitorsRoleAssignment);
sitePermission.getOwnedRoleAssignments().add(ownerRoleAssignment);
sitePermission.getOwnedRoleAssignments().add(memeberRoleAssignment);
sitePermission.getOwnedRoleAssignments().add(visitorsRoleAssignment);
sitePermission.getOwnedRoleAssignments().add(viewersRoleAssignment);
return sitePermission;
}
public static void loadAndAddSitePermission(Web web, SitePermission s){
//Injector injector = Guice.createInjector(new UserRuntimeModule());
new org.eclipse.emf.mwe.utils.StandaloneSetup().setPlatformUri("../");
Injector injector = new UserStandaloneSetup().createInjectorAndDoEMFRegistration();
XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
Resource resource = resourceSet.getResource(URI.createURI(getUserFileLocationURI()), true);
//EObject eobject = resource.getContents().get(0)
//resourceSet.getResources().add(resource);
//EditingDomainUtil.getResourceSet(root).getResources().add(resource);
//web.eResource().getResourceSet().getResources().add(resource);
UserModel model = (UserModel) resource.getContents().get(0);
model.getSitePermissions().add(s);
}
public static String getUserFileLocationURI() {
IEditorPart editorPart = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (editorPart != null) {
IFileEditorInput input = (IFileEditorInput) editorPart
.getEditorInput();
IFile file = input.getFile();
String path = "";
int segmentCount = file.getProjectRelativePath().segmentCount();
if(segmentCount != 1){
for (int i = 0; i < segmentCount -1; i++) {
path += file.getProjectRelativePath().segment(i) + "/";
}
}
return "platform:/resource/" + file.getProject().getName() + "/" + path + UserConstant.USER_FILE_NAME;
}
return "";
}
}
its called class:When one web is created ,called my sitepermissionutil class
public class ContentXtextDocumentProvider extends XtextDocumentProvider {
final static List<String> contentUnitNames = new ArrayList<String>();
@Override
protected void doSaveDocument(IProgressMonitor monitor, Object element,
IDocument document, boolean overwrite) throws CoreException {
super.doSaveDocument(monitor, element, document, overwrite);
List<String> keywords = Arrays.asList("Web", "ContentModel",
"CustomList", "ContentType", "LookUp", "TextField",
"NumberField", "BooleanField", "View", "UserField",
"CurrencyField", "UrlField", "NoteField", "DateTimeField",
"ChoiceField");
StringBuilder sb = new StringBuilder();
for (String s : keywords) {
sb.append(s);
sb.append("|");
}
String keywordsString = sb.deleteCharAt(sb.length() - 1).toString();
String pattern = String.format("\\b(%s)\\b((\\w|\\s|\\.)+)[{]",
keywordsString);
Pattern compile = Pattern.compile(pattern);
String alldocument = document.get();
String alldocumentWithoutComment = XtextResourceUtil
.returnStringWithoutComments(alldocument);
java.util.regex.Matcher matcher = compile
.matcher(alldocumentWithoutComment);
final List<String> contentUnitNames = new ArrayList<String>();
while (matcher.find()) {
String kelime = matcher.group(2).trim();
// String bosluksuzKelime = kelime.replaceAll("\\s", "");
contentUnitNames.add(kelime);
}
((IXtextDocument) document)
.modify(new IUnitOfWork<Void, XtextResource>() {
@Override
public java.lang.Void exec(XtextResource state)
throws Exception {
int index = 0;
ContentModel mymodel = (ContentModel) state
.getContents().get(0);
// System.out.println(mymodel.getName());
if (mymodel.getDisplayName() == null
|| mymodel.getDisplayName().equals(""))
mymodel.setDisplayName(contentUnitNames.get(index));
mymodel.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
index++;
// WebApplication a = mymodel.getOwnedWebApplication();
// if (a.getDisplayName() == null ||
// a.getDisplayName().equals(""))
// a.setDisplayName(contentUnitNames.get(index));
// a.setName(contentUnitNames.get(index).trim().replace(" ",
// ""));
// System.out.println(a.getName());
// index++;
// EList<SiteCollection> siteColls =
// a.getOwnedSiteColection();
// for (Iterator<SiteCollection> iterator =
// siteColls.iterator(); iterator.hasNext();) {
// SiteCollection siteCol = (SiteCollection)
// iterator.next();
// if (siteCol.getDisplayName() == null
// || siteCol.getDisplayName().equals(""))
// siteCol.setDisplayName(contentUnitNames.get(index));
// siteCol.setName(contentUnitNames.get(index).trim().replace(" ",
// ""));
// System.out.println(siteCol.getName());
// index++;
Web rootWeb = mymodel.getOwnedWeb();
if (rootWeb.getDisplayName() == null
|| rootWeb.getDisplayName().equals("")){
rootWeb.setDisplayName(contentUnitNames.get(index));
rootWeb.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
String guid =rootWeb.getGuID();
SitePermission s= [color=red]SitePermissionUtil.createDefaultSitePermission(contentUnitNames.get(index),
guid);
SitePermissionUtil.loadAndAddSitePermission(rootWeb, s);
rootWeb.setSitePermission(s);
[/color]
//rootWeb.eResource().getResourceSet().getResources().add(resource);
//rootWeb.setSitePermission(SitePermissionUtil.loadAndAddSitePermission(contentUnitNames.get(index),
//guid));
// System.out.println(rootWeb.getName());
}
index++;
// System.out.println(index);
EList<CustomList> ownedLists = rootWeb.getOwnedList();
for (Iterator<CustomList> iterator2 = ownedLists
.iterator(); iterator2.hasNext();) {
CustomList list = (CustomList) iterator2.next();
if (list.getDisplayName() == null
|| list.getDisplayName().equals(""))
list.setDisplayName(contentUnitNames.get(index));
list.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
index++;
// System.out.println(list.getName());
EList<ContentType> ownedContentTypes = list
.getOwnedContentType();
for (Iterator<ContentType> iterator3 = ownedContentTypes
.iterator(); iterator3.hasNext();) {
ContentType content = (ContentType) iterator3
.next();
if (content.getDisplayName() == null
|| content.getDisplayName().equals(""))
content.setDisplayName(contentUnitNames
.get(index));
content.setName(contentUnitNames.get(index)
.trim().replace(" ", ""));
index++;
// System.out.println(content.getName());
EList<Field> ownedFields = content
.getOwnedField();
for (Iterator<Field> iterator4 = ownedFields
.iterator(); iterator4.hasNext();) {
Field field = (Field) iterator4.next();
if (field.getDisplayName() == null
|| field.getDisplayName()
.equals(""))
field.setDisplayName(contentUnitNames
.get(index));
field.setName(contentUnitNames.get(index)
.trim().replace(" ", ""));
index++;
// System.out.println(field.getName());
}
}
EList<View> ownedViews = list.getOwnedView();
for (Iterator<View> iterator5 = ownedViews
.iterator(); iterator5.hasNext();) {
View view = (View) iterator5.next();
if (view.getDisplayName() == null
|| view.getDisplayName().equals(""))
view.setDisplayName(contentUnitNames
.get(index));
view.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
index++;
// System.out.println(view.getName());
}
}
// Webleri dolas
EList<Web> ownedwebs = rootWeb.getOwnedWeb();
for (Iterator<Web> iterator6 = ownedwebs.iterator(); iterator6
.hasNext();) {
Web w = (Web) iterator6.next();
index = setRecursivelyWebsDisplayName(w, index,
contentUnitNames);
}
// }
return null;
}
});
super.doSaveDocument(monitor, element, document, overwrite);
}
public static int setRecursivelyWebsDisplayName(Web web, int index,
List<String> contentUnitNames) {
if (web.getDisplayName() == null || web.getDisplayName().equals("")){
web.setDisplayName(contentUnitNames.get(index));
web.setName(contentUnitNames.get(index).trim().replace(" ", ""));
String guid =web.getGuID();
SitePermission s= SitePermissionUtil.createDefaultSitePermission(contentUnitNames.get(index),guid);
SitePermissionUtil.loadAndAddSitePermission(web, s);
//System.out.print(web.setSitePermission( SitePermissionUtil.loadAndAddSitePermission(contentUnitNames.get(index),guid)));
//web.setSitePermission( SitePermissionUtil.loadAndAddSitePermission(contentUnitNames.get(index),guid));
}
index++;
EList<CustomList> ownedLists = web.getOwnedList();
for (Iterator<CustomList> iterator2 = ownedLists.iterator(); iterator2
.hasNext();) {
CustomList list = (CustomList) iterator2.next();
if (list.getDisplayName() == null
|| list.getDisplayName().equals(""))
list.setDisplayName(contentUnitNames.get(index));
list.setName(contentUnitNames.get(index).trim().replace(" ", ""));
// System.out.println(list.getName());
index++;
EList<ContentType> ownedContentTypes = list.getOwnedContentType();
for (Iterator<ContentType> iterator3 = ownedContentTypes.iterator(); iterator3
.hasNext();) {
ContentType content = (ContentType) iterator3.next();
if (content.getDisplayName() == null
|| content.getDisplayName().equals(""))
content.setDisplayName(contentUnitNames.get(index));
content.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
// System.out.println(content.getName());
index++;
EList<Field> ownedFields = content.getOwnedField();
for (Iterator<Field> iterator4 = ownedFields.iterator(); iterator4
.hasNext();) {
Field field = (Field) iterator4.next();
if (field.getDisplayName() == null
|| field.getDisplayName().equals(""))
field.setDisplayName(contentUnitNames.get(index));
field.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
// System.out.println(field.getName());
index++;
}
}
EList<View> ownedViews = list.getOwnedView();
for (Iterator<View> iterator5 = ownedViews.iterator(); iterator5
.hasNext();) {
View view = (View) iterator5.next();
if (view.getDisplayName() == null
|| view.getDisplayName().equals(""))
view.setDisplayName(contentUnitNames.get(index));
view.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
// System.out.println(view.getName());
index++;
}
}
if (!web.getOwnedWeb().isEmpty()) {
EList<Web> webs = web.getOwnedWeb();
for (Iterator<Web> iterator = webs.iterator(); iterator.hasNext();) {
Web w = (Web) iterator.next();
// System.out.println(w);
index = setRecursivelyWebsDisplayName(w, index,
contentUnitNames);
}
}
return index;
}
}
|
|
| | | | | | | | | |
Re: No EObjectDescription could be found in Scope Web.sitePermission for [message #1078006 is a reply to message #1077994] |
Fri, 02 August 2013 12:17 |
junior developer Messages: 354 Registered: January 2013 |
Senior Member |
|
|
Hi,
1-I have two different resource set : yes such as ccontent and user (diffrent language but onlly communication this two language between : sitePermission -> it is a cross reference)
2-Web is created in the content editor .and then I receive this web name .(such as Web A)
3- and then created automatically SitePermission that name is A -> in the other resourc e (User Editor)
4- finally ,automatically created SitePermission A will give referenced in the sitepermission attribute in the Web element.(Web element is in the Content Editor)
I hope understand you and I explain my problem.
[Updated on: Fri, 02 August 2013 12:30] Report message to a moderator
|
|
| | | | | | |
Re: No EObjectDescription could be found in Scope Web.sitePermission for [message #1079895 is a reply to message #1078050] |
Mon, 05 August 2013 07:58 |
junior developer Messages: 354 Registered: January 2013 |
Senior Member |
|
|
Hi Christian,
I reach my file such as
platform:/resource/relative path, but I receive an error and not added other resource
Error :
Save Failed
Attempted to beginRule: L/deneme/user.user, does not match outer scope rule: L/deneme/contentdeneme.content.
I do not solved this problem
public static SitePermission loadForCreateSitePermission(String webName,
String webGuID) {
SitePermission sitePermission = null;
Injector injector = Guice.createInjector(new UserRuntimeModule());
XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
Resource resource = resourceSet.getResource(
URI.createURI(getUserFileLocationURI()), true);
UserModel eobject = (UserModel) resource.getContents().get(0);
//Default fieldlar yaratılır.
sitePermission = createDefaultSitePermission(webName, webGuID, eobject);
try {
resource.save(null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
resource.unload();
resourceSet = null;
return sitePermission;
}
public static String getUserFileLocationURI() {
IEditorPart editorPart = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (editorPart != null) {
IFileEditorInput input = (IFileEditorInput) editorPart
.getEditorInput();
IFile file = input.getFile();
String path = "";
int segmentCount = file.getProjectRelativePath().segmentCount();
if(segmentCount != 1){
for (int i = 0; i < segmentCount -1; i++) {
path += file.getProjectRelativePath().segment(i) + "/";
}
}
return "platform:/resource/" + file.getProject().getName() + "/" + path + UserConstant.USER_FILE_NAME;
}
return "";
}
[Updated on: Mon, 05 August 2013 08:00] Report message to a moderator
|
|
| |
Re: No EObjectDescription could be found in Scope Web.sitePermission for [message #1079921 is a reply to message #1079909] |
Mon, 05 August 2013 08:38 |
junior developer Messages: 354 Registered: January 2013 |
Senior Member |
|
|
Hi Christian ,
But I reach my file such as :below C:\project
not give an error ,added my object in the file
I do not understand How can I solved (root node
matches the one from the grammar)
public static SitePermission loadForCreateSitePermission(String webName,
String webGuID) {
SitePermission sitePermission = null;
Injector injector = Guice.createInjector(new UserRuntimeModule());
XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
getUserFilePath(getProjectName(), UserConstant.USER_FILE_NAME);
if (getUserFile() != null) {
Resource resource = resourceSet.getResource(
URI.createURI(userFile.toURI().toString()), true);
System.out.println(resource);
UserModel eobject = (UserModel) resource.getContents().get(0);
//Default fieldlar yaratılır.
sitePermission = createDefaultSitePermission(webName, webGuID, eobject);
try {
resource.save(null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return sitePermission;
}
public static IProject getProjectName() {
IEditorPart editorPart = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IProject activeProject = null;
if (editorPart != null) {
IFileEditorInput input = (IFileEditorInput) editorPart
.getEditorInput();
IFile file = input.getFile();
activeProject = file.getProject();
}
return activeProject;
}
public static void getUserFilePath(IProject project, String name) {
File[] files = project.getLocation().toFile().listFiles();
showFiles(files, name);
}
public static void showFiles(File[] files, String name) {
if (getUserFile() == null) {
for (File file : files) {
if (name.equals(file.getName())) {
setUserFile(file);
break;
} else {
if (file.isDirectory()) {
showFiles(file.listFiles(), name); // Calls same method again.
}
}
}
}
}
public static File getUserFile() {
return userFile;
}
public static void setUserFile(File userFile) {
SitePermissionUtil.userFile = userFile;
}
}
Best Regards
|
|
| |
Re: No EObjectDescription could be found in Scope Web.sitePermission for [message #1080155 is a reply to message #1079944] |
Mon, 05 August 2013 14:40 |
junior developer Messages: 354 Registered: January 2013 |
Senior Member |
|
|
Hi Christian ,
I ready a siple example ,How can I give reference automatically .Really ,I try a lots of method but not succesfull:(
My Two grammar is below :
mydsl :
grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals
generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"
import "http://www.xtext.org/example/mydsl2/MyDsl2" as user
ContentModel returns ContentModel:
'ContentModel'
name=QualifiedName
'{''displayName' '=' displayName=STRING
('description' '=' description=STRING)?
ownedWeb=Web
'}';
ContentUnit returns ContentUnit:
ContentModel | Web
;
Web returns Web:
'Web'
name=QualifiedName
'{' 'guID' '=' guID=STRING
'displayName' '=' displayName=STRING
('description' '=' description=STRING)?
('sitePermission' '=' sitePermission = [user::SitePermission|QualifiedName])?
('Webs' '{' ownedWeb+=Web (ownedWeb+=Web)* '}' )?
'}';
QualifiedName:
ID('.'ID)*
;
Second Grammar :
grammar org.xtext.example.mydsl2.MyDsl2 with org.eclipse.xtext.common.Terminals
generate myDsl2 "http://www.xtext.org/example/mydsl2/MyDsl2"
UserModel returns UserModel:
'UserModel' name = QualifiedName '{'
('sitePermissions' '{' sitePermissions+=SitePermission (sitePermissions+=SitePermission)* '}' )?
'}'
;
SitePermission returns SitePermission:
'sitePermission' name = QualifiedName '{'
'webGUID' '=' webGUID=STRING
('groups' '{' (ownedGroup+=Group)* '}' )?
'}'
Group:
'Group'
name=QualifiedName
'{'
'}'
QualifiedName:
ID('.'ID)*
;
My aim:
When one Web is created its sitepermission is created automatically and then Web -> sitepermission :cerated sitepermission will give referenced automatically.
below code is added sitepermission :but everytime I save other editor
in addition below code is not illegalargumentexception .but if I use Platform/resource uri ,I receive above error (İllegalArgumentException:Attemt to begining )
public class Sitepermission6 {
public static File userFile;
public static SitePermission createDefaultSitePermission(String webName,
String webGuID, UserModel userModel) {
// Initialize the model
MyDsl2Package.eINSTANCE.eClass();
// Retrieve the default factory singleton
MyDsl2Factory factory = MyDsl2Factory.eINSTANCE;
// SitePermission
SitePermission sitePermission = factory.createSitePermission();
sitePermission.setName(webName);
sitePermission.setWebGUID(webGuID);
// Owners Group
Group ownerGroup = MyDsl2Factory.eINSTANCE.createGroup();
ownerGroup.setName("Owners");
sitePermission.getOwnedGroup().add(ownerGroup);
userModel.getSitePermissions().add(sitePermission);
return sitePermission;
}
public static SitePermission loadForCreateSitePermission(String webName,
String webGuID) {
SitePermission sitePermission = null;
Injector injector = Guice.createInjector(new MyDsl2RuntimeModule());
XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
getUserFilePath(getProjectName(), UserConstant1.USER_FILE_NAME);
if (getUserFile() != null) {
Resource resource = resourceSet.getResource(
URI.createURI(userFile.toURI().toString()), true);
System.out.println(resource);
UserModel eobject = (UserModel) resource.getContents().get(0);
sitePermission = createDefaultSitePermission(webName, webGuID, eobject);
try {
resource.save(null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setUserFile(null);
resource.unload();
resourceSet = null;
}
return sitePermission;
}
public static IProject getProjectName() {
IEditorPart editorPart = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IProject activeProject = null;
if (editorPart != null) {
IFileEditorInput input = (IFileEditorInput) editorPart
.getEditorInput();
IFile file = input.getFile();
activeProject = file.getProject();
}
return activeProject;
}
public static void getUserFilePath(IProject project, String name) {
File[] files = project.getLocation().toFile().listFiles();
showFiles(files, name);
}
public static void showFiles(File[] files, String name) {
if (getUserFile() == null) {
for (File file : files) {
if (name.equals(file.getName())) {
setUserFile(file);
break;
} else {
if (file.isDirectory()) {
showFiles(file.listFiles(), name); // Calls same method again.
}
}
}
}
}
public static File getUserFile() {
return userFile;
}
public static void setUserFile(File userFile) {
Sitepermission6.userFile = userFile;
}
}
I call below code in this class :
public class AutoEdit extends XtextDocumentProvider{
final static List<String> contentUnitNames = new ArrayList<String>();
@Override
protected void doSaveDocument(IProgressMonitor monitor, Object element,
IDocument document, boolean overwrite) throws CoreException {
super.doSaveDocument(monitor, element, document, overwrite);
List<String> keywords = Arrays.asList("Web", "ContentModel");
StringBuilder sb = new StringBuilder();
for (String s : keywords) {
sb.append(s);
sb.append("|");
}
/*
* En sondaki | karakterini sil.
*/
String keywordsString = sb.deleteCharAt(sb.length() - 1).toString();
String pattern = String.format("\\b(%s)\\b((\\w|\\s|\\.)+)[{]",
keywordsString);
Pattern compile = Pattern.compile(pattern);
String alldocument = document.get();
String alldocumentWithoutComment = XtextResourceUtil1
.returnStringWithoutComments(alldocument);
java.util.regex.Matcher matcher = compile
.matcher(alldocumentWithoutComment);
final List<String> contentUnitNames = new ArrayList<String>();
while (matcher.find()) {
String kelime = matcher.group(2).trim();
contentUnitNames.add(kelime);
}
((IXtextDocument) document)
.modify(new IUnitOfWork<Void, XtextResource>() {
@Override
public java.lang.Void exec(XtextResource state)
throws Exception {
int index = 0;
ContentModel mymodel = (ContentModel) state
.getContents().get(0);
// System.out.println(mymodel.getName());
if (mymodel.getDisplayName() == null
|| mymodel.getDisplayName().equals(""))
mymodel.setDisplayName(contentUnitNames.get(index));
mymodel.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
index++;
Web rootWeb = mymodel.getOwnedWeb();
if (rootWeb.getDisplayName() == null
|| rootWeb.getDisplayName().equals("")){
rootWeb.setDisplayName(contentUnitNames.get(index));
rootWeb.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
String guid =rootWeb.getGuID();
//SitePermission s= SitePermissionUtil.createDefaultSitePermission(contentUnitNames.get(index),
//guid);
Sitepermission6.loadForCreateSitePermission(contentUnitNames.get(index),guid);
// rootWeb.setSitePermission(s);
// System.out.println(rootWeb.getName());
}
index++;
// System.out.println(index);
// Webleri dolas
EList<Web> ownedwebs = rootWeb.getOwnedWeb();
for (Iterator<Web> iterator6 = ownedwebs.iterator(); iterator6
.hasNext();) {
Web w = (Web) iterator6.next();
index = setRecursivelyWebsDisplayName(w, index,
contentUnitNames);
}
return null;
}
});
super.doSaveDocument(monitor, element, document, overwrite);
}
public static int setRecursivelyWebsDisplayName(Web web, int index,
List<String> contentUnitNames) {
if (web.getDisplayName() == null || web.getDisplayName().equals("")){
web.setDisplayName(contentUnitNames.get(index));
web.setName(contentUnitNames.get(index).trim().replace(" ", ""));
String guid =web.getGuID();
Sitepermission6.loadForCreateSitePermission(contentUnitNames.get(index),guid);
// web.setSitePermission(s);
}
index++;
if (!web.getOwnedWeb().isEmpty()) {
EList<Web> webs = web.getOwnedWeb();
for (Iterator<Web> iterator = webs.iterator(); iterator.hasNext();) {
Web w = (Web) iterator.next();
// System.out.println(w);
index = setRecursivelyWebsDisplayName(w, index,
contentUnitNames);
}
}
return index;
}
}
[Updated on: Mon, 05 August 2013 14:42] Report message to a moderator
|
|
| | | | |
Re: No EObjectDescription could be found in Scope Web.sitePermission for [message #1080625 is a reply to message #1080615] |
Tue, 06 August 2013 07:24 |
|
Hi,
if you once would do what i tell you
why do you always do that static crap. if you'd use guice right.....
package org.xtext.example.mydsl2.myDsl2.util;
import java.io.File;
import java.io.IOException;
import javax.inject.Inject;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PlatformUI;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.resource.XtextResourceSet;
import org.xtext.example.mydsl2.MyDsl2RuntimeModule;
import org.xtext.example.mydsl2.myDsl2.Group;
import org.xtext.example.mydsl2.myDsl2.MyDsl2Factory;
import org.xtext.example.mydsl2.myDsl2.MyDsl2Package;
import org.xtext.example.mydsl2.myDsl2.SitePermission;
import org.xtext.example.mydsl2.myDsl2.UserModel;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Provider;
public class Sitepermission6 {
@Inject
Provider<XtextResourceSet> rsp;
public File userFile;
public static SitePermission createDefaultSitePermission(String webName,
String webGuID, UserModel userModel) {
// Initialize the model
MyDsl2Package.eINSTANCE.eClass();
// Retrieve the default factory singleton
MyDsl2Factory factory = MyDsl2Factory.eINSTANCE;
// SitePermission
SitePermission sitePermission = factory.createSitePermission();
sitePermission.setName(webName);
sitePermission.setWebGUID(webGuID);
// Owners Group
Group ownerGroup = MyDsl2Factory.eINSTANCE.createGroup();
ownerGroup.setName("Owners");
sitePermission.getOwnedGroup().add(ownerGroup);
userModel.getSitePermissions().add(sitePermission);
return sitePermission;
}
public SitePermission loadForCreateSitePermission(String webName,
String webGuID) {
SitePermission sitePermission = null;
XtextResourceSet resourceSet = rsp.get();
resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
getUserFilePath(getProjectName(), UserConstant1.USER_FILE_NAME);
if (getUserFile() != null) {
Resource resource = resourceSet.getResource(
URI.createURI(userFile.toURI().toString()), true);
System.out.println(resource);
UserModel eobject = (UserModel) resource.getContents().get(0);
sitePermission = createDefaultSitePermission(webName, webGuID, eobject);
try {
resource.save(null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setUserFile(null);
resource.unload();
resourceSet = null;
}
return sitePermission;
}
public static IProject getProjectName() {
IEditorPart editorPart = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IProject activeProject = null;
if (editorPart != null) {
IFileEditorInput input = (IFileEditorInput) editorPart
.getEditorInput();
IFile file = input.getFile();
activeProject = file.getProject();
}
return activeProject;
}
public void getUserFilePath(IProject project, String name) {
File[] files = project.getLocation().toFile().listFiles();
showFiles(files, name);
}
public void showFiles(File[] files, String name) {
if (getUserFile() == null) {
for (File file : files) {
if (name.equals(file.getName())) {
setUserFile(file);
break;
} else {
if (file.isDirectory()) {
showFiles(file.listFiles(), name); // Calls same method again.
}
}
}
}
}
public File getUserFile() {
return userFile;
}
public void setUserFile(File userFile) {
this.userFile = userFile;
}
}
package org.xtext.example.mydsl.ui.autoedit;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern;
import javax.inject.Inject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.EList;
import org.eclipse.jface.text.IDocument;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.ui.editor.model.IXtextDocument;
import org.eclipse.xtext.ui.editor.model.XtextDocumentProvider;
import org.eclipse.xtext.util.concurrent.IUnitOfWork;
import org.xtext.example.mydsl.myDsl.ContentModel;
import org.xtext.example.mydsl.myDsl.Web;
import org.xtext.example.mydsl.ui.util.XtextResourceUtil1;
import org.xtext.example.mydsl2.myDsl2.util.Sitepermission6;
public class AutoEdit extends XtextDocumentProvider{
final static List<String> contentUnitNames = new ArrayList<String>();
@Inject
Sitepermission6 sitepermission6;
@Override
protected void doSaveDocument(IProgressMonitor monitor, Object element,
IDocument document, boolean overwrite) throws CoreException {
super.doSaveDocument(monitor, element, document, overwrite);
List<String> keywords = Arrays.asList("Web", "ContentModel");
StringBuilder sb = new StringBuilder();
for (String s : keywords) {
sb.append(s);
sb.append("|");
}
/*
* En sondaki | karakterini sil.
*/
String keywordsString = sb.deleteCharAt(sb.length() - 1).toString();
String pattern = String.format("\\b(%s)\\b((\\w|\\s|\\.)+)[{]",
keywordsString);
Pattern compile = Pattern.compile(pattern);
String alldocument = document.get();
String alldocumentWithoutComment = XtextResourceUtil1
.returnStringWithoutComments(alldocument);
java.util.regex.Matcher matcher = compile
.matcher(alldocumentWithoutComment);
final List<String> contentUnitNames = new ArrayList<String>();
while (matcher.find()) {
String kelime = matcher.group(2).trim();
contentUnitNames.add(kelime);
}
((IXtextDocument) document)
.modify(new IUnitOfWork<Void, XtextResource>() {
@Override
public java.lang.Void exec(XtextResource state)
throws Exception {
int index = 0;
ContentModel mymodel = (ContentModel) state
.getContents().get(0);
// System.out.println(mymodel.getName());
if (mymodel.getDisplayName() == null
|| mymodel.getDisplayName().equals(""))
mymodel.setDisplayName(contentUnitNames.get(index));
mymodel.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
index++;
Web rootWeb = mymodel.getOwnedWeb();
if (rootWeb.getDisplayName() == null
|| rootWeb.getDisplayName().equals("")){
rootWeb.setDisplayName(contentUnitNames.get(index));
rootWeb.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
String guid =rootWeb.getGuID();
//SitePermission s= SitePermissionUtil.createDefaultSitePermission(contentUnitNames.get(index),
//guid);
sitepermission6.loadForCreateSitePermission(contentUnitNames.get(index),guid);
// rootWeb.setSitePermission(s);
//rootWeb.eResource().getResourceSet().getResources().add(resource);
//rootWeb.setSitePermission(SitePermissionUtil.loadAndAddSitePermission(contentUnitNames.get(index),
//guid));
// System.out.println(rootWeb.getName());
}
index++;
// System.out.println(index);
// Webleri dolas
EList<Web> ownedwebs = rootWeb.getOwnedWeb();
for (Iterator<Web> iterator6 = ownedwebs.iterator(); iterator6
.hasNext();) {
Web w = (Web) iterator6.next();
index = setRecursivelyWebsDisplayName(w, index,
contentUnitNames);
}
// }
return null;
}
});
super.doSaveDocument(monitor, element, document, overwrite);
}
public int setRecursivelyWebsDisplayName(Web web, int index,
List<String> contentUnitNames) {
if (web.getDisplayName() == null || web.getDisplayName().equals("")){
web.setDisplayName(contentUnitNames.get(index));
web.setName(contentUnitNames.get(index).trim().replace(" ", ""));
// System.out.println(web.getName());
String guid =web.getGuID();
//EObject root =web.eContainer();
//SitePermission s= SitePermissionUtil.createDefaultSitePermission(contentUnitNames.get(index),guid);
sitepermission6.loadForCreateSitePermission(contentUnitNames.get(index),guid);
// System.out.println( s);
// web.setSitePermission(s);
}
index++;
if (!web.getOwnedWeb().isEmpty()) {
EList<Web> webs = web.getOwnedWeb();
for (Iterator<Web> iterator = webs.iterator(); iterator.hasNext();) {
Web w = (Web) iterator.next();
// System.out.println(w);
index = setRecursivelyWebsDisplayName(w, index,
contentUnitNames);
}
}
return index;
}
}
Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
|
|
| | |
Re: No EObjectDescription could be found in Scope Web.sitePermission for [message #1080760 is a reply to message #1080676] |
Tue, 06 August 2013 10:53 |
junior developer Messages: 354 Registered: January 2013 |
Senior Member |
|
|
Hi Christian ,
I used injector in the AutoEdit and SitePermission6.but I take nulpointerexception error:(
public class Sitepermission6 {
@Inject
static Provider<XtextResourceSet> rsp;
public static File userFile;
public static SitePermission createDefaultSitePermission(String webName,
String webGuID, UserModel userModel) {
// Initialize the model
MyDsl2Package.eINSTANCE.eClass();
// Retrieve the default factory singleton
MyDsl2Factory factory = MyDsl2Factory.eINSTANCE;
// SitePermission
SitePermission sitePermission = factory.createSitePermission();
sitePermission.setName(webName);
sitePermission.setWebGUID(webGuID);
// Owners Group
Group ownerGroup = MyDsl2Factory.eINSTANCE.createGroup();
ownerGroup.setName("Owners");
sitePermission.getOwnedGroup().add(ownerGroup);
userModel.getSitePermissions().add(sitePermission);
return sitePermission;
}
public static SitePermission loadForCreateSitePermission(String webName,
String webGuID) {
SitePermission sitePermission = null;
Injector injector = Guice.createInjector(new MyDsl2RuntimeModule());
XtextResourceSet resourceSet = rsp.get();
//XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
getUserFilePath(getProjectName(), UserConstant1.USER_FILE_NAME);
if (getUserFile() != null) {
Resource resource = resourceSet.getResource(
URI.createURI(userFile.toURI().toString()), true);
System.out.println(resource);
UserModel eobject = (UserModel) resource.getContents().get(0);
sitePermission = createDefaultSitePermission(webName, webGuID, eobject);
try {
resource.save(null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setUserFile(null);
resource.unload();
resourceSet = null;
}
return sitePermission;
}
public static IProject getProjectName() {
IEditorPart editorPart = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IProject activeProject = null;
if (editorPart != null) {
IFileEditorInput input = (IFileEditorInput) editorPart
.getEditorInput();
IFile file = input.getFile();
activeProject = file.getProject();
}
return activeProject;
}
public static void getUserFilePath(IProject project, String name) {
File[] files = project.getLocation().toFile().listFiles();
showFiles(files, name);
}
public static void showFiles(File[] files, String name) {
if (getUserFile() == null) {
for (File file : files) {
if (name.equals(file.getName())) {
setUserFile(file);
break;
} else {
if (file.isDirectory()) {
showFiles(file.listFiles(), name); // Calls same method again.
}
}
}
}
}
public static File getUserFile() {
return userFile;
}
public static void setUserFile(File userFile) {
Sitepermission6.userFile = userFile;
}
}
|
|
|
Re: No EObjectDescription could be found in Scope Web.sitePermission for [message #1080769 is a reply to message #1080625] |
Tue, 06 August 2013 11:02 |
junior developer Messages: 354 Registered: January 2013 |
Senior Member |
|
|
Hi Christian,
My aim is :When I create a Web, Sitepermission is created automatically in the user.mydsl2 (Created SitePermission name is same with Web's name.)in addition, finally created Sitepermission is given referenced in the Web.sitepermission attribute.But I do not give reference now and I receive an No EObjectDescription error:(
Christian Dietrich wrote on Tue, 06 August 2013 10:24Hi,
if you once would do what i tell you
why do you always do that static crap. if you'd use guice right.....
package org.xtext.example.mydsl2.myDsl2.util;
import java.io.File;
import java.io.IOException;
import javax.inject.Inject;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PlatformUI;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.resource.XtextResourceSet;
import org.xtext.example.mydsl2.MyDsl2RuntimeModule;
import org.xtext.example.mydsl2.myDsl2.Group;
import org.xtext.example.mydsl2.myDsl2.MyDsl2Factory;
import org.xtext.example.mydsl2.myDsl2.MyDsl2Package;
import org.xtext.example.mydsl2.myDsl2.SitePermission;
import org.xtext.example.mydsl2.myDsl2.UserModel;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Provider;
public class Sitepermission6 {
@Inject
Provider<XtextResourceSet> rsp;
public File userFile;
public static SitePermission createDefaultSitePermission(String webName,
String webGuID, UserModel userModel) {
// Initialize the model
MyDsl2Package.eINSTANCE.eClass();
// Retrieve the default factory singleton
MyDsl2Factory factory = MyDsl2Factory.eINSTANCE;
// SitePermission
SitePermission sitePermission = factory.createSitePermission();
sitePermission.setName(webName);
sitePermission.setWebGUID(webGuID);
// Owners Group
Group ownerGroup = MyDsl2Factory.eINSTANCE.createGroup();
ownerGroup.setName("Owners");
sitePermission.getOwnedGroup().add(ownerGroup);
userModel.getSitePermissions().add(sitePermission);
return sitePermission;
}
public SitePermission loadForCreateSitePermission(String webName,
String webGuID) {
SitePermission sitePermission = null;
XtextResourceSet resourceSet = rsp.get();
resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
getUserFilePath(getProjectName(), UserConstant1.USER_FILE_NAME);
if (getUserFile() != null) {
Resource resource = resourceSet.getResource(
URI.createURI(userFile.toURI().toString()), true);
System.out.println(resource);
UserModel eobject = (UserModel) resource.getContents().get(0);
sitePermission = createDefaultSitePermission(webName, webGuID, eobject);
try {
resource.save(null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setUserFile(null);
resource.unload();
resourceSet = null;
}
return sitePermission;
}
public static IProject getProjectName() {
IEditorPart editorPart = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IProject activeProject = null;
if (editorPart != null) {
IFileEditorInput input = (IFileEditorInput) editorPart
.getEditorInput();
IFile file = input.getFile();
activeProject = file.getProject();
}
return activeProject;
}
public void getUserFilePath(IProject project, String name) {
File[] files = project.getLocation().toFile().listFiles();
showFiles(files, name);
}
public void showFiles(File[] files, String name) {
if (getUserFile() == null) {
for (File file : files) {
if (name.equals(file.getName())) {
setUserFile(file);
break;
} else {
if (file.isDirectory()) {
showFiles(file.listFiles(), name); // Calls same method again.
}
}
}
}
}
public File getUserFile() {
return userFile;
}
public void setUserFile(File userFile) {
this.userFile = userFile;
}
}
package org.xtext.example.mydsl.ui.autoedit;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern;
import javax.inject.Inject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.EList;
import org.eclipse.jface.text.IDocument;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.ui.editor.model.IXtextDocument;
import org.eclipse.xtext.ui.editor.model.XtextDocumentProvider;
import org.eclipse.xtext.util.concurrent.IUnitOfWork;
import org.xtext.example.mydsl.myDsl.ContentModel;
import org.xtext.example.mydsl.myDsl.Web;
import org.xtext.example.mydsl.ui.util.XtextResourceUtil1;
import org.xtext.example.mydsl2.myDsl2.util.Sitepermission6;
public class AutoEdit extends XtextDocumentProvider{
final static List<String> contentUnitNames = new ArrayList<String>();
@Inject
Sitepermission6 sitepermission6;
@Override
protected void doSaveDocument(IProgressMonitor monitor, Object element,
IDocument document, boolean overwrite) throws CoreException {
super.doSaveDocument(monitor, element, document, overwrite);
List<String> keywords = Arrays.asList("Web", "ContentModel");
StringBuilder sb = new StringBuilder();
for (String s : keywords) {
sb.append(s);
sb.append("|");
}
/*
* En sondaki | karakterini sil.
*/
String keywordsString = sb.deleteCharAt(sb.length() - 1).toString();
String pattern = String.format("\\b(%s)\\b((\\w|\\s|\\.)+)[{]",
keywordsString);
Pattern compile = Pattern.compile(pattern);
String alldocument = document.get();
String alldocumentWithoutComment = XtextResourceUtil1
.returnStringWithoutComments(alldocument);
java.util.regex.Matcher matcher = compile
.matcher(alldocumentWithoutComment);
final List<String> contentUnitNames = new ArrayList<String>();
while (matcher.find()) {
String kelime = matcher.group(2).trim();
contentUnitNames.add(kelime);
}
((IXtextDocument) document)
.modify(new IUnitOfWork<Void, XtextResource>() {
@Override
public java.lang.Void exec(XtextResource state)
throws Exception {
int index = 0;
ContentModel mymodel = (ContentModel) state
.getContents().get(0);
// System.out.println(mymodel.getName());
if (mymodel.getDisplayName() == null
|| mymodel.getDisplayName().equals(""))
mymodel.setDisplayName(contentUnitNames.get(index));
mymodel.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
index++;
Web rootWeb = mymodel.getOwnedWeb();
if (rootWeb.getDisplayName() == null
|| rootWeb.getDisplayName().equals("")){
rootWeb.setDisplayName(contentUnitNames.get(index));
rootWeb.setName(contentUnitNames.get(index).trim()
.replace(" ", ""));
String guid =rootWeb.getGuID();
//SitePermission s= SitePermissionUtil.createDefaultSitePermission(contentUnitNames.get(index),
//guid);
sitepermission6.loadForCreateSitePermission(contentUnitNames.get(index),guid);
// rootWeb.setSitePermission(s);
//rootWeb.eResource().getResourceSet().getResources().add(resource);
//rootWeb.setSitePermission(SitePermissionUtil.loadAndAddSitePermission(contentUnitNames.get(index),
//guid));
// System.out.println(rootWeb.getName());
}
index++;
// System.out.println(index);
// Webleri dolas
EList<Web> ownedwebs = rootWeb.getOwnedWeb();
for (Iterator<Web> iterator6 = ownedwebs.iterator(); iterator6
.hasNext();) {
Web w = (Web) iterator6.next();
index = setRecursivelyWebsDisplayName(w, index,
contentUnitNames);
}
// }
return null;
}
});
super.doSaveDocument(monitor, element, document, overwrite);
}
public int setRecursivelyWebsDisplayName(Web web, int index,
List<String> contentUnitNames) {
if (web.getDisplayName() == null || web.getDisplayName().equals("")){
web.setDisplayName(contentUnitNames.get(index));
web.setName(contentUnitNames.get(index).trim().replace(" ", ""));
// System.out.println(web.getName());
String guid =web.getGuID();
//EObject root =web.eContainer();
//SitePermission s= SitePermissionUtil.createDefaultSitePermission(contentUnitNames.get(index),guid);
sitepermission6.loadForCreateSitePermission(contentUnitNames.get(index),guid);
// System.out.println( s);
// web.setSitePermission(s);
}
index++;
if (!web.getOwnedWeb().isEmpty()) {
EList<Web> webs = web.getOwnedWeb();
for (Iterator<Web> iterator = webs.iterator(); iterator.hasNext();) {
Web w = (Web) iterator.next();
// System.out.println(w);
index = setRecursivelyWebsDisplayName(w, index,
contentUnitNames);
}
}
return index;
}
}
|
|
| | | | | | | | | | | |
Goto Forum:
Current Time: Wed Sep 25 18:48:53 GMT 2024
Powered by FUDForum. Page generated in 0.08620 seconds
|