Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Dorner2016-01-18 11:14:53 +0000
committercbrun2016-01-22 10:04:33 +0000
commit2f6eb187b4dd48887a3a7794b1feee6bc0b76517 (patch)
tree1f27d0adba5589fbb0638663520ca5de2cc9f32e
parent6a4826d00c3b73df666fdb147611eeec761a21a4 (diff)
downloadorg.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.odesign3
-rw-r--r--org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java6
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());
}
}

Back to the top