Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStéphane Bégaudeau2016-02-22 15:09:38 +0000
committerPierre-Charles David2016-02-23 09:30:55 +0000
commit94c395c2ea5618066ad45b89c1809e5210050f7d (patch)
tree2de8aa187997a1ade440b66e6acdbf5d9012266d
parentff9d0be9d9aa3f19c499d856b3e84f10860dba23 (diff)
downloadorg.eclipse.sirius-94c395c2ea5618066ad45b89c1809e5210050f7d.tar.gz
org.eclipse.sirius-94c395c2ea5618066ad45b89c1809e5210050f7d.tar.xz
org.eclipse.sirius-94c395c2ea5618066ad45b89c1809e5210050f7d.zip
[482528] Brings back support for domain class and semantic candidates
Bug: 482528 Change-Id: Ic22a1bcd7ae7317ad9134e063bf4c523d35dcd63 Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
-rw-r--r--incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/DomainClassTester.java71
-rw-r--r--incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/SiriusTabDescriptorProvider.java4
-rw-r--r--incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/ViewDescriptionConverter.java3
3 files changed, 6 insertions, 72 deletions
diff --git a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/DomainClassTester.java b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/DomainClassTester.java
deleted file mode 100644
index a73baa85ee..0000000000
--- a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/DomainClassTester.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 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.tabprovider;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-
-import com.google.common.base.Predicate;
-
-/**
- * This class is used to filter EObjects using a domain class.
- *
- * @author pcdavid
- * @author sbegaudeau
- */
-public class DomainClassTester implements Predicate<EObject> {
- private static final Pattern SEPARATOR = Pattern.compile("(::?|\\.)");
-
- private final String packageName;
-
- private final String className;
-
- /**
- * The constructor.
- *
- * @param domainClassName
- * A domain class "packageName::className" or
- * "packageName.className".
- */
- public DomainClassTester(String domainClassName) {
- if (domainClassName != null) {
- Matcher m = SEPARATOR.matcher(domainClassName);
- if (m.find()) {
- packageName = domainClassName.substring(0, m.start());
- className = domainClassName.substring(m.end());
- } else {
- packageName = null;
- className = domainClassName;
- }
- } else {
- packageName = null;
- className = null;
- }
-
- }
-
- @Override
- public boolean apply(EObject input) {
- boolean apply = false;
- if (className == null && packageName == null) {
- apply = true;
- } else if (input != null) {
- EClass klass = input.eClass();
- boolean packageMatch = packageName == null || packageName.equals(klass.getEPackage().getName());
- apply = packageMatch && (className == null || className.equals(klass.getName()));
- }
- return apply;
- }
-
-}
diff --git a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/SiriusTabDescriptorProvider.java b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/SiriusTabDescriptorProvider.java
index 46f6d04217..28fa17a9ea 100644
--- a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/SiriusTabDescriptorProvider.java
+++ b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/SiriusTabDescriptorProvider.java
@@ -13,6 +13,7 @@ package org.eclipse.sirius.ui.properties.internal.tabprovider;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.Set;
import org.eclipse.eef.EEFViewDescription;
import org.eclipse.eef.core.api.EEFExpressionUtils;
@@ -48,6 +49,7 @@ import org.eclipse.ui.IWorkbenchPart;
import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
/**
* The {@link IEEFTabDescriptorProvider} for Eclipse Sirius.
@@ -128,7 +130,7 @@ public class SiriusTabDescriptorProvider implements IEEFTabDescriptorProvider {
private List<PageDescription> computeEffectiveDescription(SiriusInputDescriptor input, Session session) {
Preconditions.checkNotNull(session);
- List<ViewExtensionDescription> viewDescriptions = Lists.newArrayList();
+ Set<ViewExtensionDescription> viewDescriptions = Sets.newLinkedHashSet();
for (Viewpoint viewpoint : session.getSelectedViewpoints(true)) {
Option<EObject> parent = new EObjectQuery(viewpoint).getFirstAncestorOfType(DescriptionPackage.Literals.GROUP);
if (parent.some()) {
diff --git a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/ViewDescriptionConverter.java b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/ViewDescriptionConverter.java
index 5b3aa878eb..b9cafdce60 100644
--- a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/ViewDescriptionConverter.java
+++ b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/ViewDescriptionConverter.java
@@ -82,6 +82,7 @@ public class ViewDescriptionConverter {
EEFPageDescription page = EefFactory.eINSTANCE.createEEFPageDescription();
page.setIdentifier(pageDescription.getIdentifier());
page.setLabelExpression(pageDescription.getLabelExpression());
+ page.setDomainClass(pageDescription.getDomainClass());
page.setSemanticCandidateExpression(pageDescription.getSemanticCandidateExpression());
if (page.getIdentifier() == null || page.getIdentifier().trim().length() == 0) {
@@ -102,6 +103,8 @@ public class ViewDescriptionConverter {
EEFGroupDescription group = EefFactory.eINSTANCE.createEEFGroupDescription();
group.setIdentifier(groupDescription.getIdentifier());
group.setLabelExpression(groupDescription.getLabelExpression());
+ group.setDomainClass(groupDescription.getDomainClass());
+ group.setSemanticCandidateExpression(groupDescription.getSemanticCandidateExpression());
if (group.getIdentifier() == null || group.getIdentifier().trim().length() == 0) {
group.setIdentifier(EcoreUtil.getURI(groupDescription).toString());

Back to the top