diff --git a/TaskAndTimeTimJahn.txt b/TaskAndTimeTimJahn.txt index 2b6424fa75ef2c56842d31d0e9b21c39a3c1bbf9..acb997666585c160bacef67c53634b77dfc7de58 100644 --- a/TaskAndTimeTimJahn.txt +++ b/TaskAndTimeTimJahn.txt @@ -42,14 +42,16 @@ Sebastian //------------------------------------------------------------------------------------------------------ hours: -14.11.24 8h -24.11.24 4h -30.11.24 8h -01.12.24 8h -08.12.24 8h -16.12.24 12h -22.12.24 12h +14.11.24 8h - +24.11.24 4h - +30.11.24 8h - +01.12.24 8h - +08.12.24 8h - +16.12.24 12h - +22.12.24 12h - 23.12.24 8h +24.12.24 2h +06.01.25 8h //------------------------------------------------------------------------------------------------------ see https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisite_native_keymap @@ -526,3 +528,105 @@ Caused by: org.xml.sax.SAXParseExceptionpublicId: file:/mnt/c/Users/tim65/SHK-Pr at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:274) ... 15 more + + +pageNode implementation + +NaseModel.pnml + +java.lang.ExceptionInInitializerError + at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.setupResourceSet(TaskListSourceModelStorage.java:58) + at org.eclipse.glsp.server.emf.EMFSourceModelStorage.getOrCreateEditingDomain(EMFSourceModelStorage.java:68) + at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.loadSourceModel(TaskListSourceModelStorage.java:85) + at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:75) + at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:45) + at org.eclipse.glsp.server.actions.AbstractActionHandler.execute(AbstractActionHandler.java:53) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runAction(DefaultActionDispatcher.java:198) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleAction(DefaultActionDispatcher.java:176) + at org.eclipse.glsp.example.javaemf.handler.MyActionDispatcher.handleAction(MyActionDispatcher.java:24) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleNextAction(DefaultActionDispatcher.java:163) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runThread(DefaultActionDispatcher.java:149) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: java.lang.ClassCastException: class org.eclipse.emf.ecore.impl.EAttributeImpl cannot be cast to class org.eclipse.emf.ecore.EReference (org.eclipse.emf.ecore.impl.EAttributeImpl and org.eclipse.emf.ecore.EReference are in unnamed module of loader 'app') + at org.pnml.emf.ptnet.impl.PtnetPackageImpl.getToolInfoPage_Page(PtnetPackageImpl.java:2024) + at org.pnml.emf.ptnet.impl.PtnetPackageImpl.initializePackageContents(PtnetPackageImpl.java:2971) + at org.pnml.emf.ptnet.impl.PtnetPackageImpl.init(PtnetPackageImpl.java:597) + at org.pnml.emf.ptnet.PtnetPackage.<clinit>(PtnetPackage.java:59) + ... 12 more + +test.pnml + +Could not initialize class org.pnml.emf.ptnet.PtnetPackage +java.lang.NoClassDefFoundError: Could not initialize class org.pnml.emf.ptnet.PtnetPackage + at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.setupResourceSet(TaskListSourceModelStorage.java:58) + at org.eclipse.glsp.server.emf.EMFSourceModelStorage.getOrCreateEditingDomain(EMFSourceModelStorage.java:68) + at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.loadSourceModel(TaskListSourceModelStorage.java:85) + at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:75) + at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:45) + at org.eclipse.glsp.server.actions.AbstractActionHandler.execute(AbstractActionHandler.java:53) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runAction(DefaultActionDispatcher.java:198) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleAction(DefaultActionDispatcher.java:176) + at org.eclipse.glsp.example.javaemf.handler.MyActionDispatcher.handleAction(MyActionDispatcher.java:24) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleNextAction(DefaultActionDispatcher.java:163) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runThread(DefaultActionDispatcher.java:149) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.ClassCastException: class org.eclipse.emf.ecore.impl.EAttributeImpl cannot be cast to class org.eclipse.emf.ecore.EReference (org.eclipse.emf.ecore.impl.EAttributeImpl and org.eclipse.emf.ecore.EReference are in unnamed module of loader 'app') [in thread "MyActionDispatcher 3"] + at org.pnml.emf.ptnet.impl.PtnetPackageImpl.getToolInfoPage_Page(PtnetPackageImpl.java:2024) + at org.pnml.emf.ptnet.impl.PtnetPackageImpl.initializePackageContents(PtnetPackageImpl.java:2971) + at org.pnml.emf.ptnet.impl.PtnetPackageImpl.init(PtnetPackageImpl.java:597) + at org.pnml.emf.ptnet.PtnetPackage.<clinit>(PtnetPackage.java:59) + ... 12 more + + +error trying to save after adding nodePage + +class org.pnml.emf.ptnet.impl.PageImpl cannot be cast to class java.lang.String (org.pnml.emf.ptnet.impl.PageImpl is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap') +java.lang.ClassCastException: class org.pnml.emf.ptnet.impl.PageImpl cannot be cast to class java.lang.String (org.pnml.emf.ptnet.impl.PageImpl is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap') + at org.eclipse.emf.ecore.impl.EcoreFactoryImpl.convertEStringToString(EcoreFactoryImpl.java:661) + at org.eclipse.emf.ecore.impl.EcoreFactoryImpl.convertToString(EcoreFactoryImpl.java:219) + at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.convertToString(XMLHelperImpl.java:1610) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.getDatatypeValue(XMLSaveImpl.java:3108) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveDataTypeSingle(XMLSaveImpl.java:1698) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1280) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.writeTopObject(XMLSaveImpl.java:683) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:591) + at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:251) + at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:389) + at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475) + at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1044) + at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.saveSourceModel(TaskListSourceModelStorage.java:165) + at org.eclipse.glsp.server.actions.SaveModelActionHandler.executeAction(SaveModelActionHandler.java:47) + at org.eclipse.glsp.server.actions.SaveModelActionHandler.executeAction(SaveModelActionHandler.java:32) + at org.eclipse.glsp.server.actions.AbstractActionHandler.execute(AbstractActionHandler.java:53) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runAction(DefaultActionDispatcher.java:198) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleAction(DefaultActionDispatcher.java:176) + at org.eclipse.glsp.example.javaemf.handler.MyActionDispatcher.handleAction(MyActionDispatcher.java:24) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleNextAction(DefaultActionDispatcher.java:163) + at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runThread(DefaultActionDispatcher.java:149) + at java.base/java.lang.Thread.run(Thread.java:1583) diff --git a/glsp-client/workspace/Untitled.pnml b/glsp-client/workspace/Untitled.pnml new file mode 100644 index 0000000000000000000000000000000000000000..9662fb4dcaeed0d6e91a737e2bd49ef891abafad --- /dev/null +++ b/glsp-client/workspace/Untitled.pnml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<pnml xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="Untitled"> + <page id="b95e1e03-4345-457f-8f41-a1f87c45dc6a"> + <name text="NewPage0"/> + <nodegraphics> + <position x="170" y="98"/> + <dimension x="500" y="500"/> + </nodegraphics> + <place id="0b20eb18-2f49-4459-acc3-fdde1c976041"> + <name text="NewPlace3"/> + <nodegraphics> + <position x="100" y="300"/> + <dimension x="70" y="70"/> + </nodegraphics> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1" node="b95e1e03-4345-457f-8f41-a1f87c45dc6a" subnet=""/> + </place> + <place id="761e4b70-ede4-43fc-8e09-8fcd693f52f4"> + <name text="NewPlace4"/> + <nodegraphics> + <position x="312" y="386"/> + <dimension x="70" y="70"/> + </nodegraphics> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1" node="b95e1e03-4345-457f-8f41-a1f87c45dc6a" subnet=""/> + </place> + <transition id="d0e045f1-b811-42da-bb75-32467644b421"> + <name text="NewTopic1"/> + <nodegraphics> + <position x="299" y="161"/> + <dimension x="100" y="150"/> + </nodegraphics> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1" type="topicTransitionType" topicName="NewTopic1"> + <subscribers> + <subscriber id="0b20eb18-2f49-4459-acc3-fdde1c976041" limit="10"/> + <subscriber id="761e4b70-ede4-43fc-8e09-8fcd693f52f4" limit="10"/> + </subscribers> + </toolspecific> + </transition> + </page> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <inputsignals> + <inputsignal inputsignalID="4"/> + </inputsignals> + </toolspecific> + </net> +</pnml> diff --git a/glsp-client/workspace/Untitled4.pnml b/glsp-client/workspace/Untitled4.pnml new file mode 100644 index 0000000000000000000000000000000000000000..2309b876a0af0b5096935c79beae44a6bc6f91c3 --- /dev/null +++ b/glsp-client/workspace/Untitled4.pnml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<pnml xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="Untitled4"> + <page id="07e5a2b3-7401-4d18-9f98-fe16c34b9240"> + <name text="NewPage0"/> + <nodegraphics> + <position x="85" y="86"/> + <dimension x="500" y="500"/> + </nodegraphics> + </page> + <page id="d0798fe2-4bbb-48f0-8eeb-9db871bf5f85"> + <name text="NewPage1"/> + <nodegraphics> + <position x="858" y="326"/> + <dimension x="500" y="500"/> + </nodegraphics> + </page> + </net> +</pnml> diff --git a/glsp-server/src/main/java/org/eclipse/glsp/example/javaemf/handler/NodeCreation/CreatePageHandler.java b/glsp-server/src/main/java/org/eclipse/glsp/example/javaemf/handler/NodeCreation/CreatePageHandler.java index 3547e6b2bc3b6d24e87a2a63efc9695440598e9e..87514af3cb5a756bbaa89a5ce4e251e48c6955c5 100644 --- a/glsp-server/src/main/java/org/eclipse/glsp/example/javaemf/handler/NodeCreation/CreatePageHandler.java +++ b/glsp-server/src/main/java/org/eclipse/glsp/example/javaemf/handler/NodeCreation/CreatePageHandler.java @@ -29,7 +29,12 @@ public class CreatePageHandler extends AbstractCreateNodeHandler<CreateNodeOpera @Override public Optional<Command> createCommand(final CreateNodeOperation operation) { - GModelElement container = modelState.getIndex().get(operation.getContainerId()).orElseGet(modelState::getRoot); + + GModelElement container = + modelState.getIndex().get(operation.getContainerId()) + .orElseGet(modelState::getRoot); + + denySecondRootPage(container); EObject parentElement = getParentElement(container); EReference relationshipLiteral = getRelationshipLiteral(container); @@ -37,13 +42,23 @@ public class CreatePageHandler extends AbstractCreateNodeHandler<CreateNodeOpera Page newPage = PtnetFactory.eINSTANCE.createPage(); initializeElement(newPage); - NodeGraphics shape = createShape(idGenerator.getOrCreateId(newPage), - getRelativeLocation(operation), GraphUtil.dimension(PNMLModelTypes.DefaultSizes.PageWidth, PNMLModelTypes.DefaultSizes.PageHeight)); - newPage.setNodegraphics(shape); + NodeGraphics shape = + createShape( + idGenerator.getOrCreateId(newPage), + getRelativeLocation(operation), + GraphUtil.dimension( + PNMLModelTypes.DefaultSizes.PageWidth, + PNMLModelTypes.DefaultSizes.PageHeight) + ); - Command pageCommand = AddCommand.create( modelState.getEditingDomain(), parentElement, - relationshipLiteral, newPage); + newPage.setNodegraphics(shape); + Command pageCommand = + AddCommand.create( + modelState.getEditingDomain(), + parentElement, + relationshipLiteral, + newPage); return Optional.of(pageCommand); } @@ -69,4 +84,17 @@ public class CreatePageHandler extends AbstractCreateNodeHandler<CreateNodeOpera } } + protected void denySecondRootPage(final GModelElement container) + { + /* + * assuming all other elements ensure there is an enclosing page, + * an empty model implies that no such page exists + */ + if(!modelState.getRoot().eContents().isEmpty() && + container.getType().equals(PNMLModelTypes.GRAPH)) + + throw new IllegalArgumentException( + "One page has to encapsulate the model"+ + " - only one such page may exist at any time."); + } }