diff options
author | Felix Dorner | 2016-01-18 11:14:53 +0000 |
---|---|---|
committer | cbrun | 2016-01-22 10:04:33 +0000 |
commit | 2f6eb187b4dd48887a3a7794b1feee6bc0b76517 (patch) | |
tree | 1f27d0adba5589fbb0638663520ca5de2cc9f32e | |
parent | 6a4826d00c3b73df666fdb147611eeec761a21a4 (diff) | |
download | org.eclipse.ecoretools-2f6eb187b4dd48887a3a7794b1feee6bc0b76517.tar.gz org.eclipse.ecoretools-2f6eb187b4dd48887a3a7794b1feee6bc0b76517.tar.xz org.eclipse.ecoretools-2f6eb187b4dd48887a3a7794b1feee6bc0b76517.zip |
[456188] Filter for inherited EReferences listed within the EClass
This add a filter 'Hide inherited reference'. If the filter is active, a
class node will only show references that are defined by that class.
Bug: 456188
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=456188
Change-Id: I1b1fc003ca4336bc7dfba1b2f0dd00430b16ea8c
Signed-off-by: Felix Dorner <felix.dorner@gmail.com>
-rw-r--r-- | org.eclipse.emf.ecoretools.design/description/ecore.odesign | 3 | ||||
-rw-r--r-- | org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/org.eclipse.emf.ecoretools.design/description/ecore.odesign b/org.eclipse.emf.ecoretools.design/description/ecore.odesign index d1bd947..a4cda03 100644 --- a/org.eclipse.emf.ecoretools.design/description/ecore.odesign +++ b/org.eclipse.emf.ecoretools.design/description/ecore.odesign @@ -18,6 +18,9 @@ <filters xsi:type="filter:CompositeFilterDescription" name="Hide references (nodes)"> <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/> </filters> + <filters xsi:type="filter:CompositeFilterDescription" name="Hide inherited references (nodes)"> + <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']" viewConditionExpression="aql:self.eContainer().oclAsType(viewpoint::DSemanticDecorator).target = self.oclAsType(viewpoint::DSemanticDecorator).target.eContainer()"/> + </filters> <filters xsi:type="filter:CompositeFilterDescription" name="Hide derived features"> <filters xsi:type="filter:MappingFilter" mappings="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20'] //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']" semanticConditionExpression="aql:not self.derived"/> </filters> diff --git a/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java b/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java index 4163744..4f9e56a 100644 --- a/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java +++ b/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java @@ -230,10 +230,10 @@ public class DesignServices extends EReferenceServices { public Set<EClass> getDisplayedEClasses(DSemanticDiagram diagram) { Set<EClass> result = Sets.newLinkedHashSet(); - Iterator<DDiagramElement> it = new DDiagramQuery(diagram).getAllDiagramElements().iterator(); + Iterator<DNodeList> it = Iterators.filter(new DDiagramQuery(diagram).getAllDiagramElements().iterator(), DNodeList.class); while (it.hasNext()) { - DDiagramElement dec = it.next(); - if (dec.getTarget() instanceof EClass) { + DNodeList dec = it.next(); + if (dec.getTarget() instanceof EClass && dec.isVisible()) { result.add((EClass) dec.getTarget()); } } |