diff options
| author | Stéphane Bégaudeau | 2016-02-22 15:09:38 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2016-02-23 09:30:55 +0000 |
| commit | 94c395c2ea5618066ad45b89c1809e5210050f7d (patch) | |
| tree | 2de8aa187997a1ade440b66e6acdbf5d9012266d | |
| parent | ff9d0be9d9aa3f19c499d856b3e84f10860dba23 (diff) | |
| download | org.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>
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()); |
