Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrschnekenbu2012-06-19 12:05:55 +0000
committerrschnekenbu2012-06-19 12:05:55 +0000
commite1fed040820c2cd8843c4fb2b6cb9f05eec198ec (patch)
tree6e5488bd60a542ccccc8a727a6bd7e58b547ffb3
parente10c355b575c08d5e2b07c96cf1427b2048a0a6a (diff)
downloadorg.eclipse.papyrus-e1fed040820c2cd8843c4fb2b6cb9f05eec198ec.tar.gz
org.eclipse.papyrus-e1fed040820c2cd8843c4fb2b6cb9f05eec198ec.tar.xz
org.eclipse.papyrus-e1fed040820c2cd8843c4fb2b6cb9f05eec198ec.zip
374626: [Model Explorer] Moving an IBD from a block to another block shall be forbidden
https://bugs.eclipse.org/bugs/show_bug.cgi?id=374626 - tests added in plugin oep.sysml.modelexplorer.tests for IBD and BDD - it is now possible for the tests to reference diagrams in the model explorer. Some methods have been added to find the diagram from the given semantic element in the test plugin 375732: Move diagram from model explorer does not store the diagram in the correct resource https://bugs.eclipse.org/bugs/show_bug.cgi?id=375732 - applied the proposed patch - expose at runtime the 'matching' package from oep.views.modelexplorer
-rw-r--r--plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/META-INF/MANIFEST.MF7
-rw-r--r--plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/common/CopyPasteTests.mtl6
-rw-r--r--plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/common/NotationUtils.java63
-rw-r--r--plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/main/GenerateModelExplorerTests.java24
-rw-r--r--plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/main/generateModelExplorerTests.mtl524
-rw-r--r--plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/tasks/generateModelExplorerTests.xml56
6 files changed, 519 insertions, 161 deletions
diff --git a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/META-INF/MANIFEST.MF b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/META-INF/MANIFEST.MF
index bdab6754354..5479cacd648 100644
--- a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/META-INF/MANIFEST.MF
+++ b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/META-INF/MANIFEST.MF
@@ -16,9 +16,12 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.acceleo.model;bundle-version="3.1.2",
org.eclipse.acceleo.profiler;bundle-version="3.1.2",
org.eclipse.acceleo.engine;bundle-version="3.1.2",
- org.eclipse.papyrus.uml.extensionpoints;bundle-version="0.9.0"
+ org.eclipse.papyrus.uml.extensionpoints;bundle-version="0.9.0",
+ org.eclipse.gmf.runtime.notation;bundle-version="1.5.0"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
Eclipse-LazyStart: true
-Export-Package: org.eclipse.papyrus.sysml.modelexplorer.tests.generator.main
+Export-Package: org.eclipse.papyrus.sysml.modelexplorer.tests.generator,
+ org.eclipse.papyrus.sysml.modelexplorer.tests.generator.common,
+ org.eclipse.papyrus.sysml.modelexplorer.tests.generator.main
diff --git a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/common/CopyPasteTests.mtl b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/common/CopyPasteTests.mtl
index da5f396e6d9..a99028b57ff 100644
--- a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/common/CopyPasteTests.mtl
+++ b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/common/CopyPasteTests.mtl
@@ -2,7 +2,7 @@
[**
* module CopyPasteTests to generate junit test files.
*/]
-[module CopyPasteTests('http://www.eclipse.org/uml2/3.0.0/UML')]
+[module CopyPasteTests('http://www.eclipse.org/uml2/3.0.0/UML', 'http://www.eclipse.org/gmf/runtime/1.0.2/notation')]
[**
* generate all the files for the given test model.
@@ -253,6 +253,10 @@ public class [getFileName(aClass)/] extends [getFileName(aClass.eContainer(Packa
[getName(aElement)/]_[for (element : Element | getAllContainersExceptModel(aElement))][getName(element)/]_[/for]EObject
[/template]
+[template public generateDiagramName(aDiagram : Diagram) post(postTreatment())]
+[aDiagram.name/]_Diagram
+[/template]
+
[template public postTreatment(txt: String)]
[txt.toLowerFirst().trim()/]
[/template]
diff --git a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/common/NotationUtils.java b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/common/NotationUtils.java
new file mode 100644
index 00000000000..25cd5bfe9ab
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/common/NotationUtils.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.modelexplorer.tests.generator.common;
+
+import java.util.HashSet;
+import java.util.Set;
+
+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.gmf.runtime.notation.Diagram;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * Utility class to find diagram from EObject
+ */
+public class NotationUtils {
+
+ public static Set<Diagram> getAllDiagrams(Element element) {
+ Set<Diagram> diagrams = new HashSet<Diagram>();
+ Resource notationResource = getNotationResource(element.eResource());
+ for(EObject child : notationResource.getContents()) {
+ if(child instanceof Diagram) { // should be...
+ diagrams.add((Diagram)child);
+ }
+ }
+ return diagrams;
+ }
+
+ public static Set<Diagram> getAssociatedDiagram(Element element) {
+ Set<Diagram> diagrams = new HashSet<Diagram>();
+ Resource notationResource = getNotationResource(element.eResource());
+ for(EObject child : notationResource.getContents()) {
+ if(child instanceof Diagram) { // should be...
+ Diagram diagram = ((Diagram)child);
+ if(element.equals(diagram.getElement())) {
+ diagrams.add(diagram);
+ }
+ }
+ }
+ return diagrams;
+ }
+
+ protected static Resource getNotationResource(Resource resource) {
+ ResourceSet resourceSet = resource.getResourceSet();
+ URI notationURI = resource.getURI().trimFileExtension();
+ notationURI = notationURI.appendFileExtension("notation");
+ Resource notationResource = resourceSet.getResource(notationURI, true);
+ return notationResource;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/main/GenerateModelExplorerTests.java b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/main/GenerateModelExplorerTests.java
index 1209a44ec58..8327d08564e 100644
--- a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/main/GenerateModelExplorerTests.java
+++ b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/main/GenerateModelExplorerTests.java
@@ -15,6 +15,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.acceleo.common.utils.ModelUtils;
import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
@@ -23,6 +24,9 @@ import org.eclipse.emf.common.util.Monitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.NotationFactory;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
/**
* Entry point of the 'GenerateModelExplorerTests' generation module.
@@ -90,6 +94,23 @@ public class GenerateModelExplorerTests extends AbstractAcceleoGenerator {
initialize(modelURI, targetFolder, arguments);
}
+ @Override
+ protected void postInitialize() {
+ super.postInitialize();
+
+ // load notation model
+ URI modelURI = model.eResource().getURI();
+ URI notationURI = modelURI.trimFileExtension();
+ notationURI = notationURI.appendFileExtension("notation");
+
+ try {
+ Diagram mainDiagram = (Diagram)ModelUtils.load(notationURI, model.eResource().getResourceSet());
+ System.err.println("first diagram: "+mainDiagram.getName());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
/**
* This allows clients to instantiates a generator with all required information.
*
@@ -343,6 +364,9 @@ public class GenerateModelExplorerTests extends AbstractAcceleoGenerator {
if (!isInWorkspace(org.eclipse.uml2.uml.UMLPackage.class)) {
resourceSet.getPackageRegistry().put(org.eclipse.uml2.uml.UMLPackage.eINSTANCE.getNsURI(), org.eclipse.uml2.uml.UMLPackage.eINSTANCE);
}
+ if (!isInWorkspace(org.eclipse.gmf.runtime.notation.NotationPackage.class)) {
+ resourceSet.getPackageRegistry().put(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getNsURI(), org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE);
+ }
/*
* If you want to change the content of this method, do NOT forget to change the "@generated"
diff --git a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/main/generateModelExplorerTests.mtl b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/main/generateModelExplorerTests.mtl
index f4d015d3a65..b5e3ac368df 100644
--- a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/main/generateModelExplorerTests.mtl
+++ b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/src/org/eclipse/papyrus/sysml/modelexplorer/tests/generator/main/generateModelExplorerTests.mtl
@@ -3,7 +3,7 @@
[**
* The documentation of the module.
*/]
-[module generateModelExplorerTests('http://www.eclipse.org/uml2/4.0.0/UML')/]
+[module generateModelExplorerTests('http://www.eclipse.org/uml2/4.0.0/UML', 'http://www.eclipse.org/gmf/runtime/1.0.2/notation')/]
[import org::eclipse::papyrus::sysml::modelexplorer::tests::generator::common::CopyPasteTests /]
@@ -16,7 +16,19 @@
[comment @main /]
[let testedModel : Model = aTestModel.getValue(aTestModel.getAppliedStereotype('ModelExplorerTest::TestModel'), 'sourceModel').oclAsType(Model)]
- [file ('/org/eclipse/papyrus/sysml/modelexplorer/tests/copypaste/AbstractCopyPasteTest.java', false, 'Cp1252')]
+ [generateAbstractModelExplorerTest(aTestModel, testedModel)/]
+
+ [generateAbstractCopyPasteTest(aTestModel ,testedModel)/]
+
+ [generateCopyPasteTests(aTestModel, testedModel)/]
+
+ [generateCopyPasteSuites(aTestModel, testedModel)/]
+
+[/let]
+[/template]
+
+[template public generateAbstractModelExplorerTest (aTestModel : Model, testedModel : Model) ]
+[file ('/org/eclipse/papyrus/sysml/modelexplorer/tests/common/AbstractModelExplorerTest.java', false, 'Cp1252'))]
/*****************************************************************************
* Copyright (c) 2011 CEA LIST.
*
@@ -28,50 +40,61 @@
* Contributors:
* Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
*
- * @Generated from [aTestModel.name/]
+ * @Generated from Model
*
*****************************************************************************/
-package org.eclipse.papyrus.sysml.modelexplorer.tests.copypaste;
+package org.eclipse.papyrus.sysml.modelexplorer.tests.common;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
+import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import junit.framework.Assert;
-import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.facet.infra.browser.uicore.internal.model.ModelElementItem;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.resource.additional.AdditionalResourcesModel;
import org.eclipse.papyrus.sysml.modelexplorer.Activator;
import org.eclipse.papyrus.sysml.modelexplorer.tests.utils.EditorUtils;
import org.eclipse.papyrus.views.modelexplorer.ModelExplorerPageBookView;
import org.eclipse.papyrus.views.modelexplorer.ModelExplorerView;
import org.eclipse.papyrus.views.modelexplorer.NavigatorUtils;
+import org.eclipse.papyrus.views.modelexplorer.matching.IMatchingItem;
+import org.eclipse.papyrus.views.modelexplorer.matching.LinkItemMatchingItem;
+import org.eclipse.papyrus.views.modelexplorer.matching.ModelElementItemMatchingItem;
+import org.eclipse.papyrus.views.modelexplorer.matching.ReferencableMatchingItem;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchCommandConstants;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
import org.eclipse.ui.intro.IIntroPart;
+import org.eclipse.ui.navigator.CommonViewer;
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.uml2.uml.Model;
import org.junit.AfterClass;
import org.junit.BeforeClass;
+
/**
* Abstract class for Copy/paste
*/
-public abstract class AbstractCopyPasteTest {
+public abstract class AbstractModelExplorerTest {
/** boolean to indicate if the test is initialized or not */
private static boolean isInitialized;
@@ -204,154 +227,206 @@ public abstract class AbstractCopyPasteTest {
}
/**
- * Generic implementation of the test
+ * Returns the current editing domain
*
- * @throws Exception
- * exception thrown when the test has problems
+ * @return
+ * the current editing domain
*/
- protected void testExecutableCopyPaste(EObject targetContainer, EObject copiedEObject, String featureName, int expectedNumberOfAddedElements) throws Exception {
- testExecutableCopyPaste(targetContainer, copiedEObject, targetContainer.eClass().getEStructuralFeature(featureName), expectedNumberOfAddedElements);
+ protected TransactionalEditingDomain getEditingDomain() throws Exception {
+ return org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers.getInstance().getTransactionalEditingDomain();
}
/**
- * Generic implementation of the test
+ * Returns <code>true</code> if the current Active editor is dirty.
*
+ * @return <code>true</code> if the current Active editor is dirty
* @throws Exception
- * exception thrown when the test has problems
+ * exception thrown in case of problem (NPE, etc.)
*/
- protected void testExecutableCopyPaste(EObject targetContainer, EObject copiedEObject, EStructuralFeature feature, int expectedNumberOfAddedElements) throws Exception {
- // retrieve elements in the model explorer
- selectAndReveal(targetContainer);
-
- List<EObject> originalValues = new ArrayList<EObject>((List<EObject>)targetContainer.eGet(feature));
-
- Map<Object, Object> originalModel = new HashMap<Object, Object>();
- initializeTest(originalModel, targetContainer, copiedEObject);
-
- // try to paste in several places
- // copy Paste b1EObject
- ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
- commandService.refreshElements(IWorkbenchCommandConstants.EDIT_PASTE, null);
- org.eclipse.core.commands.Command pasteCommand = commandService.getCommand(IWorkbenchCommandConstants.EDIT_PASTE);
- Assert.assertNotNull("Impossible to find paste command", pasteCommand);
- Assert.assertTrue("command in not enabled", pasteCommand.isEnabled());
- Assert.assertTrue("command in not defined", pasteCommand.isDefined());
-
- pasteCommand.executeWithChecks(new ExecutionEvent());
-
- // check editor state (should be non dirty)
- Assert.assertTrue("Editor should be dirty after paste command execution", isEditorDirty());
-
-
- // should retrieve a new Part AND a new association
- List<EObject> newValues = (List<EObject>)targetContainer.eGet(feature);
- // compute delta
- List<EObject> delta = new ArrayList<EObject>();
- for(EObject o : newValues) {
- if(!originalValues.contains(o)) {
- delta.add(o);
- }
- }
-
- // size = original size +1
- Assert.assertEquals("Wrong number of attributes after paste", expectedNumberOfAddedElements, delta.size());
+ protected boolean isEditorDirty() throws Exception {
+ return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor().isDirty();
+ }
- // part should be linked to an association
- postCopyAdditionalChecks(originalModel, newValues, delta);
+/**
+ * Selects and reveal the specified element
+ *
+ * @param object
+ * the object to select
+ * @throws Exception
+ * exception thrown in case element could not be selected
+ */
+ public static void selectAndRevealDiagram(Diagram object) throws Exception {
+ selectAndRevealDiagram(Arrays.asList(object));
+ }
- // undo
- if(getEditingDomain().getCommandStack().canUndo()) {
- getEditingDomain().getCommandStack().undo();
- } else {
- throw new Exception("Impossible to undo the paste command: " + pasteCommand);
+ /**
+ * Selects and reveal the specified list of diagrams
+ *
+ * @param newElements
+ * the list of diagrams to select
+ * @throws Exception
+ * exception thrown in case diagram could not be selected
+ */
+ public static void selectAndRevealDiagram(List<Diagram> newDiagrams) throws Exception {
+ // Retrieve model explorer
+ ModelExplorerView modelExplorerView = null;
+ ModelExplorerPageBookView bookViewPart = (ModelExplorerPageBookView)NavigatorUtils.findViewPart(ModelExplorerPageBookView.VIEW_ID); //$NON-NLS-0$
+ if(bookViewPart != null) {
+ modelExplorerView = (ModelExplorerView)((ModelExplorerPageBookView)bookViewPart).getActiveView();
}
- // check editor state (should be non dirty)
- Assert.assertFalse("Editor should not be dirty after undo", isEditorDirty());
- // check old values equals the actual values
- newValues = (List<EObject>)targetContainer.eGet(feature);
- Assert.assertEquals("Initial and current list feature list should be equivalent", newValues, originalValues);
-
- // redo
- if(getEditingDomain().getCommandStack().canRedo()) {
- getEditingDomain().getCommandStack().redo();
+ // Set selection on new element in the model explorer
+ if((modelExplorerView != null) && (newDiagrams != null)) {
+ List<Diagram> semanticElementList = new ArrayList<Diagram>();
+ semanticElementList.addAll(newDiagrams);
+ // reveal 'container' of the diagram
+ reveal(semanticElementList, modelExplorerView.getCommonViewer());
} else {
- throw new Exception("Impossible to redo the paste command: " + pasteCommand);
+ throw new Exception("Impossible to find the model explorer required to select: " + newDiagrams);
}
- // check editor state (should be non dirty)
- Assert.assertTrue("Editor should not dirty after redo", isEditorDirty());
+ }
- // check as it was the result of the paste command
- newValues = (List<EObject>)targetContainer.eGet(feature);
- delta = new ArrayList<EObject>();
- for(EObject o : newValues) {
- if(!originalValues.contains(o)) {
- delta.add(o);
+ /**
+ * Expands the given CommonViewer to reveal the given elements
+ *
+ * @param elementList
+ * The elements to reveal
+ * @param commonViewer
+ * The CommonViewer they are to be revealed in
+ */
+ public static void reveal(Iterable<Diagram> elementList, CommonViewer commonViewer) {
+ ArrayList<IMatchingItem> matchingItemsToSelect = new ArrayList<IMatchingItem>();
+ // filter out non EMF objects
+ for(Diagram currentEObject : elementList) {
+ matchingItemsToSelect.add(new ModelElementItemMatchingItem(currentEObject));
+ // the content provider exist?
+ if(commonViewer.getContentProvider() != null) {
+ // retrieve the ancestors to reveal them
+ // and allow the selection of the object
+ ArrayList<EObject> parents = new ArrayList<EObject>();
+ // retrieve context
+ EObject tmp = currentEObject.getElement();
+ while(tmp != null) {
+ parents.add(tmp);
+ tmp = tmp.eContainer();
+ }
+ List<EObject> reverseParents = new ArrayList<EObject>(parents);
+ Collections.reverse(reverseParents);
+ // reveal the resource if necessary
+ Resource r = null;
+ if(!parents.isEmpty()) {
+ r = parents.get(parents.size() - 1).eResource();
+ } else {
+ r = currentEObject.eResource();
+ }
+ if(r != null) {
+ ResourceSet rs = r.getResourceSet();
+ if(rs instanceof ModelSet && AdditionalResourcesModel.isAdditionalResource((ModelSet)rs, r.getURI())) {
+ commonViewer.expandToLevel(new ReferencableMatchingItem(rs), 1);
+ commonViewer.expandToLevel(new ReferencableMatchingItem(r), 1);
+ }
+ }
+ /*
+ * reveal the ancestors tree using expandToLevel on each of them
+ * in the good order. This is a lot faster than going through the whole tree
+ * using getChildren of the ContentProvider since our Viewer uses a Hashtable
+ * to keep track of the revealed elements.
+ *
+ * However we need to use a dedicated MatchingItem to do the matching,
+ * and a specific comparer in our viewer so than the equals of MatchingItem is
+ * used in priority.
+ *
+ * Please refer to MatchingItem for more infos.
+ */
+ EObject previousParent = null;
+ for(EObject parent : reverseParents) {
+ if(parent.eContainingFeature() != null && previousParent != null) {
+ commonViewer.expandToLevel(new LinkItemMatchingItem(previousParent, parent.eContainmentFeature()), 1);
+ }
+ commonViewer.expandToLevel(new ModelElementItemMatchingItem(parent), 1);
+ previousParent = parent;
+ }
+ commonViewer.expandToLevel(new LinkItemMatchingItem(currentEObject.eContainer(), currentEObject.eContainmentFeature()), 1);
}
}
-
- // size = original size + delta
- Assert.assertEquals("Wrong number of attributes after paste", expectedNumberOfAddedElements, delta.size());
-
- // part should be linked to an association
- postCopyAdditionalChecks(originalModel, newValues, delta);
-
- // undo again, to restore state
- if(getEditingDomain().getCommandStack().canUndo()) {
- getEditingDomain().getCommandStack().undo();
- } else {
- throw new Exception("Impossible to re-undo the paste command: " + pasteCommand);
- }
- // check editor state (should be non dirty)
- Assert.assertFalse("Editor should not be dirty after undo", isEditorDirty());
-
+ commonViewer.setSelection(new StructuredSelection(matchingItemsToSelect), true);
}
/**
- * executes additional checks on the new value
+ * Returns the diagram with the given name
*
- * @param originalModel
- * the map containing all values stored before launching the test
- * @param newValue
- * the new value, result of the copy
- * @param delta
- * differences between original list and the new one
+ * @param name
+ * the name of the diagram to find
+ * @return the diagram with the given name.
+ * @exception Exception
+ * exception thrown in case of issue, e.g. diagram was not found
*/
- protected void postCopyAdditionalChecks(Map<?, ?> originalModel, List<EObject> newValues, List<EObject> delta) throws Exception {
- // use the values contained in the map to do additional checks
- }
-
- protected void initializeTest(Map<Object, Object> additionalChecks, EObject targetContainer, EObject copiedEObject) {
- // nothing to do here
+ protected static Diagram getDiagram(String name) throws Exception {
+ Iterator<EObject> it = EditorUtils.getDiagramEditPart().getDiagramView().eResource().getContents().iterator();
+ while(it.hasNext()) {
+ EObject next = it.next();
+ if(next instanceof Diagram) {
+ if(name.equals(((Diagram)next).getName())) {
+ return (Diagram)next;
+ }
+ }
+ }
+ return null;
}
/**
- * Returns the current editing domain
+ * Retrieves the Model Element Item for the given EObject
*
- * @return
- * the current editing domain
+ * @param objectToFind
+ * object represented by the searched item
+ * @return the {@link ModelElementItem} that corresponds to the diagram
+ * @throws Exception
+ * exception thrown in case of issue
*/
- protected TransactionalEditingDomain getEditingDomain() throws Exception {
- return org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers.getInstance().getTransactionalEditingDomain();
+ protected ModelElementItem findSemanticModelElementItem(EObject objectToFind) throws Exception {
+ selectAndReveal(objectToFind);
+ IStructuredSelection selection = (IStructuredSelection)modelExplorerPart.getSite().getSelectionProvider().getSelection();
+ Assert.assertEquals("one and only one object should be selected", 1, selection.size());
+ Object selectedElement = (ModelElementItem)selection.getFirstElement();
+ Assert.assertTrue("selection should be a model item element", selectedElement instanceof ModelElementItem);
+ Assert.assertTrue("selection should be linked to a EObject", ((ModelElementItem)selectedElement).getEObject() instanceof EObject);
+ Assert.assertTrue("selection should be linked to the Object: " + objectToFind, ((ModelElementItem)selectedElement).getEObject().equals(objectToFind));
+ return (ModelElementItem)selectedElement;
}
/**
- * Returns <code>true</code> if the current Active editor is dirty.
+ * Retrieves the Model Element Item for the given Diagram
*
- * @return <code>true</code> if the current Active editor is dirty
+ * @param diagramToFind
+ * diagram represented by the searched item
+ * @return the {@link ModelElementItem} that corresponds to the diagram
* @throws Exception
- * exception thrown in case of problem (NPE, etc.)
+ * exception thrown in case of issue
*/
- protected boolean isEditorDirty() throws Exception {
- return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor().isDirty();
+ protected ModelElementItem findSemanticModelElementItem(Diagram diagramToFind) throws Exception {
+ selectAndRevealDiagram(diagramToFind);
+ IStructuredSelection selection = (IStructuredSelection)modelExplorerPart.getSite().getSelectionProvider().getSelection();
+ Assert.assertEquals("one and only one diagram should be selected", 1, selection.size());
+ Object selectedElement = (ModelElementItem)selection.getFirstElement();
+ Assert.assertTrue("selection should be a model item element", selectedElement instanceof ModelElementItem);
+ Assert.assertTrue("selection should be linked to a Diagram", ((ModelElementItem)selectedElement).getEObject() instanceof Diagram);
+ Assert.assertTrue("selection should be linked to the Object: " + diagramToFind, ((ModelElementItem)selectedElement).getEObject().equals(diagramToFind));
+ return (ModelElementItem)selectedElement;
}
-}
- [/file]
- [generateCopyPasteTests(aTestModel, testedModel)/]
+ protected String printElement(EObject object) {
+ if(object instanceof Diagram) {
+ return printElement((Diagram)object);
+ }
+ return EcoreUtil.getID(object);
+ }
- [generateCopyPasteSuites(aTestModel, testedModel)/]
+ protected String printElement(Diagram diagram) {
+ return diagram.getName() + " <" + diagram.getType() + ">";
+ }
-[/let]
+}
+
+[/file]
[/template]
[template public generateCopyPasteSuites (aTestModel : Model, testedModel : Model) ]
@@ -401,11 +476,20 @@ public class AllCopyPasteTests {
[for (element : Element | aModel.eContents(Element))]
[generateProperties(element)/]
[/for]
+
+ [comment Generate the selectable diagrams /]
+ [for(diagram : Diagram | getAllDiagrams(aModel))]
+ [generateDiagramProperties(diagram)/]
+ [/for]
+
[/template]
[template public generateProperties (aElement : Element) ]
[/template]
+[template public generateDiagramProperties(diagram : Diagram)]
+protected static Diagram [generateDiagramName(diagram)/];
+[/template]
[template public generateProperties (aPackage : Package) ]
protected static org.eclipse.uml2.uml.Package [generateElementName(aPackage)/];
@@ -441,15 +525,22 @@ protected static org.eclipse.uml2.uml.Property [generateElementName(aProperty)/]
protected static org.eclipse.uml2.uml.Operation [generateElementName(aOperation)/];
[/template]
-
-
-
-
[template public initializeModelElements (aModel : Model) ]
[generateElementName(aModel)/] = (org.eclipse.uml2.uml.Model)root;
[for (element : Element | aModel.eContents(Element))]
[initializeModelElements(element)/]
[/for]
+
+ [comment Initialization of diagrams/]
+ [for(diagram : Diagram | getAllDiagrams(aModel))]
+ [initializeDiagram(diagram)/]
+ [/for]
+
+[/template]
+
+[template public initializeDiagram (aDiagram : Diagram) ]
+[generateDiagramName(aDiagram)/] = getDiagram("[aDiagram.name/]");
+Assert.assertNotNull("Impossible to find [diagram.name/]", [generateDiagramName(aDiagram)/] );
[/template]
[template public initializeModelElements (aElement : Element) ]
@@ -457,6 +548,7 @@ protected static org.eclipse.uml2.uml.Operation [generateElementName(aOperation)
[template public initializeModelElements (aPackage : Package) ]
[generateElementName(aPackage)/] = (org.eclipse.uml2.uml.Package)[generateElementName(aPackage.eContainer().oclAsType(Element))/].getPackagedElement("[aPackage.name/]");
+Assert.assertNotNull("Impossible to find Package [aPackage.name/]", [generateElementName(aPackage)/] );
[for (subPackage : Package | aPackage.nestedPackage)][initializeModelElements(subPackage)/]
[/for]
[for (subClass : Class | aPackage.ownedMember->filter(Class))][initializeModelElements(subClass)/]
@@ -466,7 +558,8 @@ protected static org.eclipse.uml2.uml.Operation [generateElementName(aOperation)
[/template]
[template public initializeModelElements (aClass : Class) ]
-[generateElementName(aClass)/] = (org.eclipse.uml2.uml.Class)[generateElementName(aClass.eContainer().oclAsType(Element))/].getPackagedElement("[aClass.name/]");
+[generateElementName(aClass)/] = (org.eclipse.uml2.uml.Class)[generateElementName(aClass.eContainer().oclAsType(Element))/].getPackagedElement("[aClass.name/]");
+Assert.assertNotNull("Impossible to find Class [aClass.name/]", [generateElementName(aClass)/] );
[for (aProperty : Property| aClass.attribute)][initializeModelElements(aProperty)/]
[/for]
[for (aOperation : Operation| aClass.ownedOperation)][initializeModelElements(aOperation)/]
@@ -474,7 +567,8 @@ protected static org.eclipse.uml2.uml.Operation [generateElementName(aOperation)
[/template]
[template public initializeModelElements (aInterface : Interface) ]
-[generateElementName(aInterface)/] = (org.eclipse.uml2.uml.Interface)[generateElementName(aInterface.eContainer().oclAsType(Element))/].getPackagedElement("[aInterface.name/]");
+[generateElementName(aInterface)/] = (org.eclipse.uml2.uml.Interface)[generateElementName(aInterface.eContainer().oclAsType(Element))/].getPackagedElement("[aInterface.name/]");
+Assert.assertNotNull("Impossible to find Interface [aInterface.name/]", [generateElementName(aInterface)/] );
[for (aProperty : Property| aInterface.attribute)][initializeModelElements(aProperty)/]
[/for]
[for (aOperation : Operation| aInterface.ownedOperation)][initializeModelElements(aOperation)/]
@@ -482,11 +576,13 @@ protected static org.eclipse.uml2.uml.Operation [generateElementName(aOperation)
[/template]
[template public initializeModelElements(aProperty : Property) ]
-[generateElementName(aProperty)/] = (org.eclipse.uml2.uml.Property)[generateElementName(aProperty.eContainer().oclAsType(Element))/].getAttribute("[aProperty.name/]", null);
+[generateElementName(aProperty)/] = (org.eclipse.uml2.uml.Property)[generateElementName(aProperty.eContainer().oclAsType(Element))/].getAttribute("[aProperty.name/]", null);
+Assert.assertNotNull("Impossible to find Property [aProperty.name/]", [generateElementName(aProperty)/] );
[/template]
[template public initializeModelElements(aOperation : Operation) ]
-[generateElementName(aOperation)/] = (org.eclipse.uml2.uml.Operation)[generateElementName(aOperation.eContainer().oclAsType(Element))/].getOperation("[aOperation.name/]", null, null);
+[generateElementName(aOperation)/] = (org.eclipse.uml2.uml.Operation)[generateElementName(aOperation.eContainer().oclAsType(Element))/].getOperation("[aOperation.name/]", null, null);
+Assert.assertNotNull("Impossible to find Operation [aOperation.name/]", [generateElementName(aOperation)/] );
[/template]
@@ -495,4 +591,170 @@ protected static org.eclipse.uml2.uml.Operation [generateElementName(aOperation)
*/]
[template public generateJUnitFiles (aModel : Model) ]
+[/template]
+
+
+[query public getAllDiagrams(element : Element) : Set(Diagram) = invoke('org.eclipse.papyrus.sysml.modelexplorer.tests.generator.common.NotationUtils', 'getAllDiagrams(org.eclipse.uml2.uml.Element)', Sequence{element})/]
+
+[template public generateAbstractCopyPasteTest (aTestModel : Model, testedModel : Model) ]
+[file ('/org/eclipse/papyrus/sysml/modelexplorer/tests/copypaste/AbstractCopyPasteTest.java', false, 'Cp1252')]
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *
+ * @Generated from [aTestModel.name/]
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.modelexplorer.tests.copypaste;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.Assert;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.papyrus.sysml.modelexplorer.tests.common.AbstractModelExplorerTest;
+import org.eclipse.ui.IWorkbenchCommandConstants;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.ICommandService;
+
+
+/**
+ * Abstract class for Copy/paste
+ */
+public abstract class AbstractCopyPasteTest extends AbstractModelExplorerTest {
+
+ /**
+ * Generic implementation of the test
+ *
+ * @throws Exception
+ * exception thrown when the test has problems
+ */
+ protected void testExecutableCopyPaste(EObject targetContainer, EObject copiedEObject, String featureName, int expectedNumberOfAddedElements) throws Exception {
+ testExecutableCopyPaste(targetContainer, copiedEObject, targetContainer.eClass().getEStructuralFeature(featureName), expectedNumberOfAddedElements);
+ }
+
+ /**
+ * Generic implementation of the test
+ *
+ * @throws Exception
+ * exception thrown when the test has problems
+ */
+ protected void testExecutableCopyPaste(EObject targetContainer, EObject copiedEObject, EStructuralFeature feature, int expectedNumberOfAddedElements) throws Exception {
+ // retrieve elements in the model explorer
+ selectAndReveal(targetContainer);
+
+ List<EObject> originalValues = new ArrayList<EObject>((List<EObject>)targetContainer.eGet(feature));
+
+ Map<Object, Object> originalModel = new HashMap<Object, Object>();
+ initializeTest(originalModel, targetContainer, copiedEObject);
+
+ // try to paste in several places
+ // copy Paste b1EObject
+ ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
+ commandService.refreshElements(IWorkbenchCommandConstants.EDIT_PASTE, null);
+ org.eclipse.core.commands.Command pasteCommand = commandService.getCommand(IWorkbenchCommandConstants.EDIT_PASTE);
+ Assert.assertNotNull("Impossible to find paste command", pasteCommand);
+ Assert.assertTrue("command in not enabled", pasteCommand.isEnabled());
+ Assert.assertTrue("command in not defined", pasteCommand.isDefined());
+
+ pasteCommand.executeWithChecks(new ExecutionEvent());
+
+ // check editor state (should be non dirty)
+ Assert.assertTrue("Editor should be dirty after paste command execution", isEditorDirty());
+
+
+ // should retrieve a new Part AND a new association
+ List<EObject> newValues = (List<EObject>)targetContainer.eGet(feature);
+ // compute delta
+ List<EObject> delta = new ArrayList<EObject>();
+ for(EObject o : newValues) {
+ if(!originalValues.contains(o)) {
+ delta.add(o);
+ }
+ }
+
+ // size = original size +1
+ Assert.assertEquals("Wrong number of attributes after paste", expectedNumberOfAddedElements, delta.size());
+
+ // part should be linked to an association
+ postCopyAdditionalChecks(originalModel, newValues, delta);
+
+ // undo
+ if(getEditingDomain().getCommandStack().canUndo()) {
+ getEditingDomain().getCommandStack().undo();
+ } else {
+ throw new Exception("Impossible to undo the paste command: " + pasteCommand);
+ }
+ // check editor state (should be non dirty)
+ Assert.assertFalse("Editor should not be dirty after undo", isEditorDirty());
+ // check old values equals the actual values
+ newValues = (List<EObject>)targetContainer.eGet(feature);
+ Assert.assertEquals("Initial and current list feature list should be equivalent", newValues, originalValues);
+
+ // redo
+ if(getEditingDomain().getCommandStack().canRedo()) {
+ getEditingDomain().getCommandStack().redo();
+ } else {
+ throw new Exception("Impossible to redo the paste command: " + pasteCommand);
+ }
+ // check editor state (should be non dirty)
+ Assert.assertTrue("Editor should not dirty after redo", isEditorDirty());
+
+ // check as it was the result of the paste command
+ newValues = (List<EObject>)targetContainer.eGet(feature);
+ delta = new ArrayList<EObject>();
+ for(EObject o : newValues) {
+ if(!originalValues.contains(o)) {
+ delta.add(o);
+ }
+ }
+
+ // size = original size + delta
+ Assert.assertEquals("Wrong number of attributes after paste", expectedNumberOfAddedElements, delta.size());
+
+ // part should be linked to an association
+ postCopyAdditionalChecks(originalModel, newValues, delta);
+
+ // undo again, to restore state
+ if(getEditingDomain().getCommandStack().canUndo()) {
+ getEditingDomain().getCommandStack().undo();
+ } else {
+ throw new Exception("Impossible to re-undo the paste command: " + pasteCommand);
+ }
+ // check editor state (should be non dirty)
+ Assert.assertFalse("Editor should not be dirty after undo", isEditorDirty());
+
+ }
+
+ /**
+ * executes additional checks on the new value
+ *
+ * @param originalModel
+ * the map containing all values stored before launching the test
+ * @param newValue
+ * the new value, result of the copy
+ * @param delta
+ * differences between original list and the new one
+ */
+ protected void postCopyAdditionalChecks(Map<?, ?> originalModel, List<EObject> newValues, List<EObject> delta) throws Exception {
+ // use the values contained in the map to do additional checks
+ }
+
+ protected void initializeTest(Map<Object, Object> additionalChecks, EObject targetContainer, EObject copiedEObject) {
+ // nothing to do here
+ }
+}
+ [/file]
[/template] \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/tasks/generateModelExplorerTests.xml b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/tasks/generateModelExplorerTests.xml
index 2b16972b728..34c04deb496 100644
--- a/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/tasks/generateModelExplorerTests.xml
+++ b/plugins/developer/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/tasks/generateModelExplorerTests.xml
@@ -6,35 +6,37 @@
<!-- The classpath with only the dependencies used by the project -->
<path id="org.eclipse.papyrus.sysml.modelexplorer.tests.generator.libraryclasspath">
<pathelement location="${ECLIPSE_WORKSPACE}/org.eclipse.papyrus.sysml.modelexplorer.tests.generator/bin"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.8.0.v20120308-2101.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.8.0.v20120430-1750.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.6.100.v20120209-1951.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.5.200.v20120113-1913.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime.compatibility.registry_3.5.100.v20120502-1323/runtime_registry_compatibility.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.5.200.v20120427-1430.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.5.0.v20120410-1344.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.4.100.v20110423-0524.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.100.v20111010-1614.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_4.0.0.v20120507-0907.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.8.0.v20120504-0433.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.8.0.v20120504-0433.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.8.0.v20120504-0433.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_1.7.0.v20120507-0907.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_1.0.0.v20120507-0907.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.8.0.v20120521-2346.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.8.0.v20120529-1548.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.6.100.v20120522-1841.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.5.200.v20120521-2346.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime.compatibility.registry_3.5.100.v20120521-2346/runtime_registry_compatibility.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.5.200.v20120522-1841.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.5.0.v20120522-1841.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.4.200.v20120523-2004.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.100.v20120522-1841.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.uml_4.0.0.v20120604-0919.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.8.0.v20120530-0726.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.8.0.v20120530-0726.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.8.0.v20120530-0726.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.common_1.7.0.v20120604-0919.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.uml2.types_1.0.0.v20120604-0919.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.mapping.ecore2xml_2.7.0.v20120601-0824.jar"/>
<pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.validation_1.4.0.v20100428-2315.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.8.0.v20120501-2009.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.2.0.v20120507-1337.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.resources_3.8.0.v20120522-2034.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.2.0.v20120604-1307.jar"/>
<pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.0.0.v20120504-1834.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.2.0.v20120507-1203.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.3.0.v20120504-0423.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.3.0.v20120504-0423.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.3.0.v20120504-0423.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.3.0.v20120504-0423.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.3.0.v20120504-0423.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.8.0.v20120507-0712.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.8.0.v20120507-0712.jar"/>
- <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.uml.extensionpoints_0.9.0.v201205180458.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.0.0.v20120516-1543.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.2.0.v20120522-1637.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.3.0.v20120529-1042.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.parser_3.3.0.v20120529-1042.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.3.0.v20120529-1042.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.3.0.v20120529-1042.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.3.0.v20120529-1042.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.8.0.v20120601-0824.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.8.0.v20120601-0824.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.papyrus.uml.extensionpoints_0.9.0.v201206120458.jar"/>
+ <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.gmf.runtime.notation_1.5.0.v20110309-2159.jar"/>
</path>
<path id="org.eclipse.papyrus.sysml.modelexplorer.tests.generator.classpath">

Back to the top