diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.repository.compositediagram/src-gen/edu/kit/ipd/descartes/mm/applicationlevel/repository/compositediagram/styles/CompositediagramDefaultStyle.java b/edu.kit.ipd.descartes.mm.applicationlevel.repository.compositediagram/src-gen/edu/kit/ipd/descartes/mm/applicationlevel/repository/compositediagram/styles/CompositediagramDefaultStyle.java deleted file mode 100644 index 0968f1482c3eceab310127b2381e0d03bedfdd86..0000000000000000000000000000000000000000 --- a/edu.kit.ipd.descartes.mm.applicationlevel.repository.compositediagram/src-gen/edu/kit/ipd/descartes/mm/applicationlevel/repository/compositediagram/styles/CompositediagramDefaultStyle.java +++ /dev/null @@ -1,13 +0,0 @@ -/************************************************************************************* - * - * Generated on Thu Jul 04 11:05:29 CEST 2013 by Spray StyleGenerator.xtend - * - * This file is an extension point: copy to "src" folder to manually add code to this - * extension point. - * - *************************************************************************************/ -package edu.kit.ipd.descartes.mm.applicationlevel.repository.compositediagram.styles; - -public class CompositediagramDefaultStyle extends CompositediagramDefaultStyleBase { - -} diff --git a/edu.kit.ipd.descartes.mm.applicationlevel.repository.compositediagram/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/compositediagram/popup/actions/InitCreateDiagramWizard.java b/edu.kit.ipd.descartes.mm.applicationlevel.repository.compositediagram/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/compositediagram/popup/actions/InitCreateDiagramWizard.java index 8bc5fcad81bb043cdf9042f7e8a3cc9f924b2e56..3b7efc21f104a38be2760d3f38edf063a2a20f7e 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel.repository.compositediagram/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/compositediagram/popup/actions/InitCreateDiagramWizard.java +++ b/edu.kit.ipd.descartes.mm.applicationlevel.repository.compositediagram/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/compositediagram/popup/actions/InitCreateDiagramWizard.java @@ -15,9 +15,19 @@ 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.RecordingCommand; import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.transaction.TransactionalEditingDomain.Registry; +import org.eclipse.emf.transaction.util.TransactionUtil; +import org.eclipse.graphiti.dt.IDiagramTypeProvider; +import org.eclipse.graphiti.features.context.impl.AddContext; import org.eclipse.graphiti.mm.pictograms.Diagram; import org.eclipse.graphiti.mm.pictograms.PictogramsFactory; +import org.eclipse.graphiti.services.Graphiti; +import org.eclipse.graphiti.services.IGaService; +import org.eclipse.graphiti.services.IPeCreateService; +import org.eclipse.graphiti.services.IPeService; +import org.eclipse.graphiti.ui.services.GraphitiUi; import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.operation.IRunnableWithProgress; @@ -34,6 +44,7 @@ import org.eclipselabs.spray.runtime.graphiti.wizard.NewDiagramPage; import com.google.inject.Inject; import com.google.inject.name.Named; +import edu.kit.ipd.descartes.mm.applicationlevel.repository.CompositeComponent; import edu.kit.ipd.descartes.mm.applicationlevel.repository.Repository; public class InitCreateDiagramWizard implements IObjectActionDelegate { @@ -76,7 +87,7 @@ public class InitCreateDiagramWizard implements IObjectActionDelegate { /* * Load EObject root (=diagramRoot) from Resource (hopefully it contains type 'Repository') */ - TransactionalEditingDomain editingDomain = TransactionalEditingDomain.Factory.INSTANCE.createEditingDomain(); + TransactionalEditingDomain editingDomain = TransactionalEditingDomain.Factory.INSTANCE.createEditingDomain(); ResourceSet resourceSet = editingDomain.getResourceSet(); EObject diagramRoot = null; try { @@ -96,18 +107,40 @@ public class InitCreateDiagramWizard implements IObjectActionDelegate { * Load Repository from diagramRoot */ TreeIterator<EObject> it = diagramRoot.eAllContents(); - Repository model = null; + final Repository model; if (diagramRoot instanceof Repository) { model = (Repository) diagramRoot; } else { - //TODO: If >1 Repository exists: present them to choose one - while (it.hasNext()) { - EObject possibleRepo = it.next(); - if (possibleRepo instanceof Repository) { - model = (Repository) possibleRepo; - } + model = null; + } + + //else { +// //TODO: If >1 Repository exists: present them to choose one +// while (it.hasNext()) { +// EObject possibleRepo = it.next(); +// if (possibleRepo instanceof Repository) { +// model = (Repository) possibleRepo; +// break; +// } +// } +// } + + /* + * Testweises laden von EOBjects to add + */ + CompositeComponent testObj = null; + while (it.hasNext()) { + EObject possibleCC = it.next(); + if (possibleCC instanceof CompositeComponent) { //load CompositeComponent + testObj = (CompositeComponent) possibleCC; + break; } } + if (testObj == null) { + MessageDialog.openError(shell, "No CompositeComponent found", "Resource does not contain a 'CompositeComponent' EObject"); + return; + } + /* * If no model found exit @@ -124,13 +157,39 @@ public class InitCreateDiagramWizard implements IObjectActionDelegate { final ResourceSet rs = new ResourceSetImpl(); final URI uri = URI.createPlatformResourceURI(diagPath, true); final Resource resource = rs.createResource(uri); +// Diagram diagram = Graphiti.getPeCreateService().createDiagram(diagramTypeId, fileName, true); Diagram diagram = PictogramsFactory.eINSTANCE.createDiagram(); diagram.setDiagramTypeId(diagramTypeId); diagram.setName(fileName); diagramInitializer.initialize(diagram); -// diagram.eResource().getContents().add(model);//TODO + + + /* + * TODO Add Repository/EObject to diagram and link + */ + String dtId = GraphitiUi.getExtensionManager().getDiagramTypeProviderId(diagramTypeId); + IDiagramTypeProvider dtp = GraphitiUi.getExtensionManager().createDiagramTypeProvider(diagram, dtId); + AddContext ac = new AddContext(); + ac.setNewObject(testObj); + ac.setTargetContainer(diagram); + dtp.getFeatureProvider().addIfPossible(ac); + + + /* + * Add Diagram to resource file + */ resource.getContents().add(diagram); +// TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(diagram); +// domain.getCommandStack().execute(new RecordingCommand(domain) { +// public void doExecute() { +// diagram.eResource().getContents().add(model); +// } +// }); + + /* + * Save resource and open editor + */ //org.eclipselabs.spray.runtime.graphiti.wizard.NewDiagramWizard nutzt das folgende: //public void run(IProgressMonitor monitor) throws InvocationTargetException try {