Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMélanie Bats2016-09-06 14:53:21 +0000
committerPierre-Charles David2016-09-15 19:24:41 +0000
commit300c4e8a845d4bd3b0a146eb054e28a73b340016 (patch)
tree279eab6f5044c8cd6ce1dab022f8b373d17e2d7f
parent591a9074d3cc3d396a5c272ac29ca4c38c5c0803 (diff)
downloadorg.eclipse.sirius-300c4e8a845d4bd3b0a146eb054e28a73b340016.tar.gz
org.eclipse.sirius-300c4e8a845d4bd3b0a146eb054e28a73b340016.tar.xz
org.eclipse.sirius-300c4e8a845d4bd3b0a146eb054e28a73b340016.zip
[489287] Filter the Default tab
Uses the EEFTabDescriptorFilter extension point to filter: * the Default tab when an element is selected from the model explorer. * the Semantic tab when an element is selected from the sirius editor. Bug: 489287 Change-Id: I602663defafc94e057ad20ed840f33a354becff5 Signed-off-by: Mélanie Bats <melanie.bats@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.ui.properties/META-INF/MANIFEST.MF3
-rw-r--r--plugins/org.eclipse.sirius.ui.properties/plugin.properties5
-rw-r--r--plugins/org.eclipse.sirius.ui.properties/plugin.xml9
-rw-r--r--plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/filter/SiriusTabDescriptorFilter.java42
4 files changed, 57 insertions, 2 deletions
diff --git a/plugins/org.eclipse.sirius.ui.properties/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.ui.properties/META-INF/MANIFEST.MF
index 5966135d1a..8dfa526015 100644
--- a/plugins/org.eclipse.sirius.ui.properties/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.sirius.ui.properties/META-INF/MANIFEST.MF
@@ -39,4 +39,5 @@ Export-Package: org.eclipse.sirius.ui.properties.api;version="4.1.0",
org.eclipse.sirius.ui.properties.internal;version="4.1.0";x-internal:=true,
org.eclipse.sirius.ui.properties.internal.expressions;version="4.1.0";x-internal:=true,
org.eclipse.sirius.ui.properties.internal.migration;version="4.1.0";x-internal:=true,
- org.eclipse.sirius.ui.properties.internal.tabprovider;version="4.1.0";x-internal:=true
+ org.eclipse.sirius.ui.properties.internal.tabprovider;version="4.1.0";x-internal:=true,
+ org.eclipse.sirius.ui.properties.internal.filter;version="4.1.0";x-internal:=true
diff --git a/plugins/org.eclipse.sirius.ui.properties/plugin.properties b/plugins/org.eclipse.sirius.ui.properties/plugin.properties
index 7ef60978f7..3c4e49275e 100644
--- a/plugins/org.eclipse.sirius.ui.properties/plugin.properties
+++ b/plugins/org.eclipse.sirius.ui.properties/plugin.properties
@@ -21,4 +21,7 @@ siriusTabDescriptorProvider.Description=Provides EEF tab descriptors according t
SiriusTabDescriptorProvider_UnsupportedMultipleSelection=Multiple elements have been selected but only the first one will be used as only element in the selection is currently supported.
SiriusTabDescriptorProvider_UndefinedSemanticElement=The current selection is not related to any semantic element.
SiriusTabDescriptorProvider_DefaultPropertiesNotFound=The model containing the default configuration of the Properties page has not been found.
-IDescriptionConverter_InvalidDescriptionType=The type of the description is invalid: received {0}, expected {1} \ No newline at end of file
+IDescriptionConverter_InvalidDescriptionType=The type of the description is invalid: received {0}, expected {1}
+
+siriusTabDescriptorFilter.Label=Sirius EEF Tab Descriptor Filter
+siriusTabDescriptorFilter.Description=Filters the properties tabs according to a precondition \ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.ui.properties/plugin.xml b/plugins/org.eclipse.sirius.ui.properties/plugin.xml
index a097532376..685348669c 100644
--- a/plugins/org.eclipse.sirius.ui.properties/plugin.xml
+++ b/plugins/org.eclipse.sirius.ui.properties/plugin.xml
@@ -83,4 +83,13 @@
kind="VSM">
</participant>
</extension>
+ <extension
+ point="org.eclipse.eef.properties.ui.eefTabDescriptorFilter">
+ <descriptor
+ class="org.eclipse.sirius.ui.properties.internal.filter.SiriusTabDescriptorFilter"
+ description="%siriusTabDescriptorFilter.Description"
+ id="org.eclipse.sirius.ui.properties.filter.default"
+ label="%siriusTabDescriptorFilter.Label">
+ </descriptor>
+ </extension>
</plugin>
diff --git a/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/filter/SiriusTabDescriptorFilter.java b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/filter/SiriusTabDescriptorFilter.java
new file mode 100644
index 0000000000..c0d2d1ba8b
--- /dev/null
+++ b/plugins/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/filter/SiriusTabDescriptorFilter.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.ui.properties.internal.filter;
+
+import org.eclipse.eef.properties.ui.api.IEEFTabDescriptor;
+import org.eclipse.eef.properties.ui.api.IEEFTabDescriptorFilter;
+
+/**
+ * The {@link IEEFTabDescriptorFilter} for Eclipse Sirius.
+ *
+ * @author mbats
+ */
+public class SiriusTabDescriptorFilter implements IEEFTabDescriptorFilter {
+
+ /**
+ * Id of the default tab.
+ */
+ private static final String DEFAULT_TAB_ID = "org.eclipse.sirius.ui.tools.views.model.explorer.tab"; //$NON-NLS-1$
+
+ /**
+ * Id of the semantic tab.
+ */
+ private static final String SEMANTIC_TAB_ID = "property.tab.semantic"; //$NON-NLS-1$
+
+ @Override
+ public boolean filter(IEEFTabDescriptor tabDescriptor) {
+ // Filter the default tab existing in the properties view when an
+ // element is selected from the
+ // model explorer and the semantic tab when an element is selected from
+ // a Sirius editor
+ return !DEFAULT_TAB_ID.equals(tabDescriptor.getId()) && !SEMANTIC_TAB_ID.equals(tabDescriptor.getId());
+ }
+
+}

Back to the top