Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorptessier2012-07-02 16:05:45 +0000
committerptessier2012-07-02 16:05:45 +0000
commit40434a59f5df0948a15d45c858a6832411fd432a (patch)
treeead7e51aa93fd92a3481f32997023b9b61fa4541 /plugins
parent7974e46399dc23fb045ba21d42fe6358ad240b7b (diff)
downloadorg.eclipse.papyrus-40434a59f5df0948a15d45c858a6832411fd432a.tar.gz
org.eclipse.papyrus-40434a59f5df0948a15d45c858a6832411fd432a.tar.xz
org.eclipse.papyrus-40434a59f5df0948a15d45c858a6832411fd432a.zip
383738: [OCL Usage] the console to evaluate OCL constraint in papyrus does not run for the fisrt time
https://bugs.eclipse.org/bugs/show_bug.cgi?id=383738
Diffstat (limited to 'plugins')
-rw-r--r--plugins/infra/services/org.eclipse.papyrus.infra.services.validation/plugin.xml9
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/plugin.xml20
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/Activator.java7
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ComputeConstraintHandler.java14
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintConsoleResult.java70
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintResultFactory.java36
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/OCLEvaluationView.java (renamed from plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintConsolePage.java)56
7 files changed, 69 insertions, 143 deletions
diff --git a/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/plugin.xml b/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/plugin.xml
index f28b8a4dc39..2d6a15dc8e5 100644
--- a/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/plugin.xml
+++ b/plugins/infra/services/org.eclipse.papyrus.infra.services.validation/plugin.xml
@@ -29,6 +29,15 @@
</menu>
</menuContribution>
<menuContribution
+ allPopups="false"
+ locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu?after=filtersMenu">
+ <menu
+ icon="icons/etool16/validate.gif"
+ id="org.eclipse.papyrus.views.modelexplorer.popup.validation"
+ label="Validation">
+ </menu>
+ </menuContribution>
+ <menuContribution
allPopups="true"
locationURI="popup:org.eclipse.papyrus.views.modelexplorer.popup.validation">
<command
diff --git a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/plugin.xml b/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/plugin.xml
index 9966a710a4a..9e6e52c835f 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/plugin.xml
+++ b/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/plugin.xml
@@ -19,15 +19,23 @@
commandId="org.eclipse.papyrus.uml.oclconstraintevaluation.computeconstraint"
label="Compute constraint"
style="push">
+ <visibleWhen
+ checkEnabled="true">
+ </visibleWhen>
</command>
</menuContribution>
</extension>
- <extension
- point="org.eclipse.ui.console.consoleFactories">
- <consoleFactory
- class="org.eclipse.papyrus.uml.oclconstraintevaluation.ConstraintResultFactory"
- label="ConstraintResult">
- </consoleFactory>
+ <extension point="org.eclipse.ui.views">
+ <view id="org.eclipse.papyrus.uml.oclconstraintevaluation.OCLEvaluationView"
+ name="OCL evaluation View"
+ class="org.eclipse.papyrus.uml.oclconstraintevaluation.OCLEvaluationView"
+ />
+</extension>
+ <extension
+ point="org.eclipse.ui.startup">
+ <startup
+ class="org.eclipse.papyrus.uml.oclconstraintevaluation.Activator">
+ </startup>
</extension>
</plugin>
diff --git a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/Activator.java b/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/Activator.java
index 21098def10f..f2d136df72a 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/Activator.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/Activator.java
@@ -21,7 +21,7 @@ import org.osgi.framework.BundleContext;
/**
* The activator class controls the plug-in life cycle
*/
-public class Activator extends AbstractUIPlugin {
+public class Activator extends AbstractUIPlugin implements org.eclipse.ui.IStartup {
/**
* the ID of the plugin ocl constraint evaluation
@@ -79,4 +79,9 @@ public class Activator extends AbstractUIPlugin {
return plugin;
}
+ public void earlyStartup() {
+ // TODO Auto-generated method stub
+
+ }
+
}
diff --git a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ComputeConstraintHandler.java b/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ComputeConstraintHandler.java
index 56379b9391b..27916cc3ecf 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ComputeConstraintHandler.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ComputeConstraintHandler.java
@@ -18,7 +18,10 @@ import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.uml2.uml.Constraint;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.OpaqueExpression;
@@ -82,7 +85,6 @@ public class ComputeConstraintHandler extends AbstractHandler {
//test if this is a constraint
if( selectedObject instanceof Constraint){
Constraint constraint= (Constraint)selectedObject;
- ConstraintResultFactory factory= new ConstraintResultFactory();
//test if this is an opaqueExpression
if( constraint.getSpecification() instanceof OpaqueExpression){
@@ -96,8 +98,12 @@ public class ComputeConstraintHandler extends AbstractHandler {
}
}
if( indexOfOCLBody!=-1){
- factory.openConsole();
- ConstraintConsoleResult.getInstance().compute(constraint.getContext(), opaqueExpression.getBodies().get(indexOfOCLBody));
+ try {
+ OCLEvaluationView view=(OCLEvaluationView)HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().showView(OCLEvaluationView.ID);
+ view.compute(constraint.getContext(), opaqueExpression.getBodies().get(indexOfOCLBody));
+ } catch (PartInitException e) {
+ e.printStackTrace();
+ }
}
@@ -123,7 +129,7 @@ public class ComputeConstraintHandler extends AbstractHandler {
@Override
public boolean isEnabled() {
EObject eObject=getSelectedElement();
- if( eObject instanceof Element){
+ if( eObject instanceof Constraint){
if( !(getToPackage((Element)eObject) instanceof Profile)){
return true;
}
diff --git a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintConsoleResult.java b/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintConsoleResult.java
deleted file mode 100644
index 2cbc157fb93..00000000000
--- a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintConsoleResult.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2012 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.uml.oclconstraintevaluation;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.ui.console.AbstractConsole;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * this is console that display the result of a OCL Constraint. The pattern Singleton has been applied
- *
- */
-public class ConstraintConsoleResult extends AbstractConsole {
-
- protected static ConstraintConsoleResult console;
- protected ConstraintConsolePage page;
-
-
-
- /**
- *
- * Constructor.
- *
- */
- private ConstraintConsoleResult(){
- super("ConstraintConsoleResult",null);
- }
-
- public IPageBookViewPage createPage(IConsoleView view) {
- page = new ConstraintConsolePage();
- return page;
- }
-
- /**
- *
- * @return the instance of the constraintConsoleResult
- */
- public static ConstraintConsoleResult getInstance(){
- if(console==null){
- console=new ConstraintConsoleResult();
- }
- return console;
- }
-
- /**
- * display the value of a OCL constraint written in the expression for a context
- * @param contextObject the context to compute the constraint
- * @param expression the OCL constraint
- */
- public void compute(EObject contextObject,String expression){
- if( page!=null){
- page.compute(contextObject, expression);
- }
- }
-
-
-
-}
diff --git a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintResultFactory.java b/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintResultFactory.java
deleted file mode 100644
index 61e2447448b..00000000000
--- a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintResultFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2012 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.uml.oclconstraintevaluation;
-
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleFactory;
-
-/**
- * the factory in charge to create the console to compute OCL constraint.
- * This class is mandatory to use the extension point org.eclipse.ui.console.consoleFactories
- *
- *
- */
-public class ConstraintResultFactory implements IConsoleFactory {
-
- public void openConsole() {
- org.eclipse.ui.console.IConsole console=ConstraintConsoleResult.getInstance();
- ConsolePlugin.getDefault().getConsoleManager().addConsoles(
- new IConsole[] {console});
-
- ConsolePlugin.getDefault().getConsoleManager().showConsoleView(console);
- ConsolePlugin.getDefault().getConsoleManager().showConsoleView(console);
- }
-} \ No newline at end of file
diff --git a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintConsolePage.java b/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/OCLEvaluationView.java
index 9d079c2eb59..463fd6acead 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/ConstraintConsolePage.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.oclconstraintevaluation/src/org/eclipse/papyrus/uml/oclconstraintevaluation/OCLEvaluationView.java
@@ -13,6 +13,8 @@
*****************************************************************************/
package org.eclipse.papyrus.uml.oclconstraintevaluation;
+
+
import org.eclipse.emf.ecore.EObject;
import org.eclipse.ocl.examples.domain.values.Value;
import org.eclipse.ocl.examples.pivot.ExpressionInOCL;
@@ -23,38 +25,40 @@ import org.eclipse.ocl.examples.pivot.utilities.PivotEnvironment;
import org.eclipse.ocl.examples.pivot.utilities.PivotEnvironmentFactory;
import org.eclipse.ocl.examples.xtext.base.utilities.ElementUtil;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.Page;
+import org.eclipse.ui.part.ViewPart;
/**
- *this class is a text area that display the result of a constraint
+ * this is console that display the result of a OCL Constraint. The pattern Singleton has been applied
*
*/
-public class ConstraintConsolePage extends Page {
- protected Text textViewer;
- protected Composite page;
-
- protected MetaModelManager nullMetaModelManager = null;
-
- @Override
- public void createControl(Composite parent) {
- page = new SashForm(parent, SWT.VERTICAL | SWT.LEFT_TO_RIGHT);
-
- textViewer = new Text(page, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
- textViewer.setEditable(false);
+public class OCLEvaluationView extends ViewPart {
+ private Text textViewer;
+ /**
+ * ID
+ */
+ public static String ID= "org.eclipse.papyrus.uml.oclconstraintevaluation.OCLEvaluationView";
+ protected MetaModelManager metaModelManager = null;
+ /**
+ *
+ * Constructor.
+ *
+ */
+ public OCLEvaluationView() {
+ super();
}
-
- @Override
- public Control getControl() {
- return page;
+ public void setFocus() {
+ textViewer.setFocus();
+ }
+ public void createPartControl(Composite parent) {
+ textViewer = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
+ textViewer.setEditable(false);
+ textViewer.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
}
- @Override
- public void setFocus() {}
/**
* this method comes from the org.eclipse.ocl.examples.xtext.console.OCLConsolePage written by
* @param contextObject
@@ -65,10 +69,10 @@ public class ConstraintConsolePage extends Page {
if (metaModelManager != null) {
return metaModelManager;
}
- if (nullMetaModelManager == null) {
- nullMetaModelManager = new MetaModelManager();
+ if (metaModelManager == null) {
+ metaModelManager = new MetaModelManager();
}
- return nullMetaModelManager;
+ return metaModelManager;
}
@@ -91,7 +95,6 @@ public class ConstraintConsolePage extends Page {
Value evaluate = ocl.evaluate(contextObject, createQuery);
String print = evaluate.asObject().toString();
- //clear the value of the text area
textViewer.selectAll();
textViewer.clearSelection();
//display the value
@@ -102,3 +105,4 @@ public class ConstraintConsolePage extends Page {
}
}
+

Back to the top