diff options
author | cletavernie | 2013-03-08 16:10:13 +0000 |
---|---|---|
committer | cletavernie | 2013-03-08 16:10:13 +0000 |
commit | 6c318c2dee30cb80680116a7a8e188ab1e741367 (patch) | |
tree | 1a21edfc8906af9df36e983159ddb4ef65e71947 /plugins/views | |
parent | 53b3b8782d855eda25918a009f12aed715ba6796 (diff) | |
download | org.eclipse.papyrus-6c318c2dee30cb80680116a7a8e188ab1e741367.tar.gz org.eclipse.papyrus-6c318c2dee30cb80680116a7a8e188ab1e741367.tar.xz org.eclipse.papyrus-6c318c2dee30cb80680116a7a8e188ab1e741367.zip |
359808: [Model explorer] Model explorer should show mark diagrams and tables that are open
https://bugs.eclipse.org/bugs/show_bug.cgi?id=359808
Diffstat (limited to 'plugins/views')
8 files changed, 160 insertions, 73 deletions
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/META-INF/MANIFEST.MF b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/META-INF/MANIFEST.MF index e284979b6b6..74c8646c42c 100644 --- a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/META-INF/MANIFEST.MF +++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/META-INF/MANIFEST.MF @@ -1,60 +1,52 @@ Manifest-Version: 1.0
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.ui.navigator;bundle-version="3.4.0",
- org.eclipse.papyrus.infra.core;bundle-version="0.10.0",
- org.eclipse.papyrus.infra.core.log;bundle-version="0.10.0",
- org.eclipse.emf.converter;bundle-version="2.5.0",
- org.eclipse.papyrus.infra.core.sasheditor.di;bundle-version="0.10.0",
- org.eclipse.emf.ecore.editor;bundle-version="2.6.0",
- org.eclipse.emf.workspace.ui;bundle-version="1.3.0",
- org.eclipse.core.expressions;bundle-version="3.4.200",
- org.eclipse.papyrus.infra.services.edit;bundle-version="0.10.0",
- org.eclipse.emf.facet.infra.browser;bundle-version="0.1.0",
- org.eclipse.emf.facet.infra.browser.custom;bundle-version="0.1.0",
- org.eclipse.emf.facet.infra.browser.custom.core;bundle-version="0.1.0",
- org.eclipse.emf.facet.infra.browser.custom.ui;bundle-version="0.1.0",
- org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.1.0",
- org.eclipse.emf.facet.infra.common.core;bundle-version="0.1.0",
- org.eclipse.emf.facet.infra.facet;bundle-version="0.1.0",
- org.eclipse.emf.facet.infra.facet.core;bundle-version="0.1.0",
- org.eclipse.emf.facet.infra.query.ui;bundle-version="0.1.0",
- org.eclipse.papyrus.infra.widgets.toolbox;bundle-version="0.10.0",
- org.eclipse.papyrus.infra.services.decoration;bundle-version="0.10.0",
- org.eclipse.emf.transaction;bundle-version="1.4.0",
- org.eclipse.gmf.runtime.notation;bundle-version="1.5.0",
- org.eclipse.gmf.runtime.common.core;bundle-version="1.4.1",
- org.eclipse.gmf.runtime.emf.commands.core;bundle-version="1.4.0",
- org.eclipse.gmf.runtime.emf.type.core;bundle-version="1.4.0",
- org.eclipse.emf.facet.infra.query.core,
- org.eclipse.papyrus.infra.emf;bundle-version="0.10.0",
- com.google.guava;bundle-version="10.0.1",
- org.eclipse.papyrus.infra.widgets;bundle-version="0.10.0",
- org.eclipse.papyrus.infra.services.labelprovider;bundle-version="0.10.0",
- org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="0.10.0",
- org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.6.0",
- org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="0.10.0",
- org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="0.10.0",
- org.eclipse.papyrus.infra.services.semantic;bundle-version="0.10.0"
-Export-Package: org.eclipse.papyrus.views.modelexplorer,
- org.eclipse.papyrus.views.modelexplorer.actionprovider,
- org.eclipse.papyrus.views.modelexplorer.actions,
- org.eclipse.papyrus.views.modelexplorer.commands,
- org.eclipse.papyrus.views.modelexplorer.core.ui.pagebookview,
- org.eclipse.papyrus.views.modelexplorer.dialog,
- org.eclipse.papyrus.views.modelexplorer.dnd,
- org.eclipse.papyrus.views.modelexplorer.factory,
- org.eclipse.papyrus.views.modelexplorer.handler,
- org.eclipse.papyrus.views.modelexplorer.matching,
- org.eclipse.papyrus.views.modelexplorer.preferences,
- org.eclipse.papyrus.views.modelexplorer.queries
+Export-Package: org.eclipse.papyrus.views.modelexplorer,org.eclipse.pa
+ pyrus.views.modelexplorer.actionprovider,org.eclipse.papyrus.views.mo
+ delexplorer.actions,org.eclipse.papyrus.views.modelexplorer.commands,
+ org.eclipse.papyrus.views.modelexplorer.core.ui.pagebookview,org.ecli
+ pse.papyrus.views.modelexplorer.dialog,org.eclipse.papyrus.views.mode
+ lexplorer.dnd,org.eclipse.papyrus.views.modelexplorer.factory,org.ecl
+ ipse.papyrus.views.modelexplorer.handler,org.eclipse.papyrus.views.mo
+ delexplorer.matching,org.eclipse.papyrus.views.modelexplorer.preferen
+ ces,org.eclipse.papyrus.views.modelexplorer.queries
+Require-Bundle: org.eclipse.ui,org.eclipse.core.runtime,org.eclipse.ui
+ .navigator;bundle-version="3.4.0",org.eclipse.papyrus.infra.core;bund
+ le-version="0.10.0",org.eclipse.papyrus.infra.core.log;bundle-version
+ ="0.10.0",org.eclipse.emf.converter;bundle-version="2.5.0",org.eclips
+ e.papyrus.infra.core.sasheditor.di;bundle-version="0.10.0",org.eclips
+ e.emf.ecore.editor;bundle-version="2.6.0",org.eclipse.emf.workspace.u
+ i;bundle-version="1.3.0",org.eclipse.core.expressions;bundle-version=
+ "3.4.200",org.eclipse.papyrus.infra.services.edit;bundle-version="0.1
+ 0.0",org.eclipse.emf.facet.infra.browser;bundle-version="0.1.0",org.e
+ clipse.emf.facet.infra.browser.custom;bundle-version="0.1.0",org.ecli
+ pse.emf.facet.infra.browser.custom.core;bundle-version="0.1.0",org.ec
+ lipse.emf.facet.infra.browser.custom.ui;bundle-version="0.1.0",org.ec
+ lipse.emf.facet.infra.browser.uicore;bundle-version="0.1.0",org.eclip
+ se.emf.facet.infra.common.core;bundle-version="0.1.0",org.eclipse.emf
+ .facet.infra.facet;bundle-version="0.1.0",org.eclipse.emf.facet.infra
+ .facet.core;bundle-version="0.1.0",org.eclipse.emf.facet.infra.query.
+ ui;bundle-version="0.1.0",org.eclipse.papyrus.infra.widgets.toolbox;b
+ undle-version="0.10.0",org.eclipse.papyrus.infra.services.decoration;
+ bundle-version="0.10.0",org.eclipse.emf.transaction;bundle-version="1
+ .4.0",org.eclipse.gmf.runtime.notation;bundle-version="1.5.0",org.ecl
+ ipse.gmf.runtime.common.core;bundle-version="1.4.1",org.eclipse.gmf.r
+ untime.emf.commands.core;bundle-version="1.4.0",org.eclipse.gmf.runti
+ me.emf.type.core;bundle-version="1.4.0",org.eclipse.emf.facet.infra.q
+ uery.core,org.eclipse.papyrus.infra.emf;bundle-version="0.10.0",com.g
+ oogle.guava;bundle-version="10.0.1",org.eclipse.papyrus.infra.widgets
+ ;bundle-version="0.10.0",org.eclipse.papyrus.infra.services.labelprov
+ ider;bundle-version="0.10.0",org.eclipse.papyrus.infra.gmfdiag.comman
+ ds;bundle-version="0.10.0",org.eclipse.gmf.runtime.diagram.ui;bundle-
+ version="1.6.0",org.eclipse.papyrus.infra.gmfdiag.common;bundle-versi
+ on="0.10.0",org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-vers
+ ion="0.10.0",org.eclipse.papyrus.infra.services.semantic;bundle-versi
+ on="0.10.0",org.eclipse.emf.ecore
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
Bundle-Version: 0.10.0.qualifier
-Bundle-Name: %pluginName
Bundle-Localization: plugin
-Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
Bundle-Activator: org.eclipse.papyrus.views.modelexplorer.Activator
+Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.papyrus.views.modelexplorer;singleton
:=true
Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/icons/opened.gif b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/icons/opened.gif Binary files differnew file mode 100644 index 00000000000..977b997cdbc --- /dev/null +++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/icons/opened.gif diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/plugin.xml b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/plugin.xml index 943b3a28646..8dbfb5aa60b 100644 --- a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/plugin.xml +++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/plugin.xml @@ -21,13 +21,7 @@ </dragAssistant>
</extension>
<extension point="org.eclipse.ui.navigator.navigatorContent">
- <navigatorContent
- activeByDefault="false"
- contentProvider="org.eclipse.papyrus.infra.emf.providers.MoDiscoContentProvider"
- id="org.eclipse.papyrus.views.modelexplorer.navigatorContent"
- labelProvider="org.eclipse.jface.viewers.LabelProvider"
- name="Model Contents"
- priority="lowest">
+ <navigatorContent activeByDefault="false" contentProvider="org.eclipse.papyrus.infra.emf.providers.MoDiscoContentProvider" id="org.eclipse.papyrus.views.modelexplorer.navigatorContent" labelProvider="org.eclipse.jface.viewers.LabelProvider" name="Model Contents" priority="lowest">
<triggerPoints>
<or>
<instanceof value="org.eclipse.emf.ecore.EObject">
@@ -248,19 +242,13 @@ <extension point="org.eclipse.ui.handlers">
<handler class="org.eclipse.papyrus.views.modelexplorer.handler.DeleteCommandHandler" commandId="org.eclipse.ui.edit.delete">
<activeWhen>
- <with
- variable="selection">
+ <with variable="selection">
<and>
- <with
- variable="activePart">
- <instanceof
- value="org.eclipse.papyrus.views.modelexplorer.ModelExplorerPageBookView">
+ <with variable="activePart">
+ <instanceof value="org.eclipse.papyrus.views.modelexplorer.ModelExplorerPageBookView">
</instanceof>
</with>
- <test
- forcePluginActivation="true"
- property="org.eclipse.papyrus.views.modelexplorer.tester.isEObject"
- value="true">
+ <test forcePluginActivation="true" property="org.eclipse.papyrus.views.modelexplorer.tester.isEObject" value="true">
</test>
</and>
</with>
@@ -396,11 +384,19 @@ <extension point="org.eclipse.emf.facet.infra.browser.custom.core.registration">
<browserCustomization file="resources/PapyrusEcoreBrowser.uiCustom"/>
</extension>
- <extension
- point="org.eclipse.papyrus.infra.services.labelprovider.labelProvider">
- <context
- description="The ModelExplorer labelProvider context"
- id="org.eclipse.papyrus.views.modelexplorer.labelProvider.context">
+ <extension point="org.eclipse.papyrus.infra.services.labelprovider.labelProvider">
+ <context description="The ModelExplorer labelProvider context" id="org.eclipse.papyrus.views.modelexplorer.labelProvider.context">
</context>
</extension>
+ <extension point="org.eclipse.emf.facet.infra.facet.registration">
+ <facetset file="resources/PapyrusPages.facetSet"/>
+ </extension>
+ <extension point="org.eclipse.emf.facet.infra.query.registration">
+ <modelqueryset file="resources/PapyrusPages.querySet"/>
+ </extension>
+ <extension point="org.eclipse.emf.facet.infra.browser.custom.core.registration">
+ <browserCustomization
+ file="resources/PapyrusPages.uiCustom"
+ loadByDefault="true"/>
+ </extension>
</plugin>
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/resources/PapyrusPages.facetSet b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/resources/PapyrusPages.facetSet new file mode 100644 index 00000000000..1dfc49caae7 --- /dev/null +++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/resources/PapyrusPages.facetSet @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="ASCII"?>
+<facet:FacetSet xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:facet="http://www.eclipse.org/EmfFacet/infra/facet/0.8.incubation" xmlns:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" name="PapyrusPages" nsURI="http://www.eclipse.org/papyrus/views/modelexplorer/pages" nsPrefix="papyrusPages">
+ <eClassifiers xsi:type="facet:Facet" name="Page" abstract="true">
+ <eSuperTypes href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ <conditionQuery xsi:type="query:JavaModelQuery" href="PapyrusPages.querySet#isPage"/>
+ </eClassifiers>
+ <extendedPackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+</facet:FacetSet>
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/resources/PapyrusPages.querySet b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/resources/PapyrusPages.querySet new file mode 100644 index 00000000000..e8006aaf884 --- /dev/null +++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/resources/PapyrusPages.querySet @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="ASCII"?>
+<query:ModelQuerySet xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" name="PapyrusPages" description="">
+ <associatedMetamodels href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ <queries xsi:type="query:JavaModelQuery" name="isPage" description="Tests whether an element is a page" lowerBound="1" implementationClassName="org.eclipse.papyrus.views.modelexplorer.queries.IsPage">
+ <returnType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <scope href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="isOpen" description="Tests whether a Page is opened" lowerBound="1" implementationClassName="org.eclipse.papyrus.views.modelexplorer.queries.IsOpen">
+ <returnType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <scope href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </queries>
+</query:ModelQuerySet>
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/resources/PapyrusPages.uiCustom b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/resources/PapyrusPages.uiCustom new file mode 100644 index 00000000000..eeacea75605 --- /dev/null +++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/resources/PapyrusPages.uiCustom @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="ASCII"?>
+<uicustom:MetamodelView xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" xmlns:uicustom="http://www.eclipse.org/EmfFacet/infra/browser/custom/0.8" metamodelURI="http://www.eclipse.org/papyrus/views/modelexplorer/pages">
+ <types metaclassName="PapyrusPages.Page">
+ <customizedFeatures customizedFeature="facetOverlayIcon">
+ <valueCases>
+ <value xsi:type="uicustom:StaticFeatureValue" value="/org.eclipse.papyrus.views.modelexplorer/icons/opened.gif:TopRight"/>
+ <condition xsi:type="query:JavaModelQuery" href="emffacet:/query/PapyrusPages#isOpen"/>
+ </valueCases>
+ </customizedFeatures>
+ </types>
+</uicustom:MetamodelView>
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/IsOpen.java b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/IsOpen.java new file mode 100644 index 00000000000..bcc7da7f1dc --- /dev/null +++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/IsOpen.java @@ -0,0 +1,34 @@ +/***************************************************************************** + * Copyright (c) 2013 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: + * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation + *****************************************************************************/ +package org.eclipse.papyrus.views.modelexplorer.queries; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException; +import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery; +import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList; +import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager; +import org.eclipse.papyrus.infra.core.services.ServiceException; +import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject; + +/** Tests whether a Page is opened */ +public class IsOpen implements IJavaModelQuery<EObject, Boolean> { + + public Boolean evaluate(final EObject context, final ParameterValueList parameterValues) throws ModelQueryExecutionException { + try { + IPageManager pageManager = ServiceUtilsForEObject.getInstance().getIPageManager(context); + return pageManager.isOpen(context); + } catch (ServiceException ex) { + //Ignore + } + return false; + } +} diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/IsPage.java b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/IsPage.java new file mode 100644 index 00000000000..a946d4935dc --- /dev/null +++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/IsPage.java @@ -0,0 +1,34 @@ +/***************************************************************************** + * Copyright (c) 2013 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: + * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation + *****************************************************************************/ +package org.eclipse.papyrus.views.modelexplorer.queries; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException; +import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery; +import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList; +import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager; +import org.eclipse.papyrus.infra.core.services.ServiceException; +import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject; + +/** Tests whether an element is a page */ +public class IsPage implements IJavaModelQuery<EObject, Boolean> { + + public Boolean evaluate(final EObject context, final ParameterValueList parameterValues) throws ModelQueryExecutionException { + try { + IPageManager pageManager = ServiceUtilsForEObject.getInstance().getIPageManager(context); + return pageManager.allPages().contains(context); + } catch (ServiceException ex) { + //Ignore + } + return false; + } +} |