Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Lorenzo2013-11-19 14:52:30 +0000
committerVincent Lorenzo2013-11-21 09:18:55 +0000
commit4bf2c754e9b9b5ccfde550db8218bfc146d6dfb5 (patch)
tree49dde7d325ef2cc5c74b7622b6f3ed658b2b999e /plugins/sysml/diagram
parent57970d58cd90bed5eb792a86d376e5696a7fdcb4 (diff)
downloadorg.eclipse.papyrus-4bf2c754e9b9b5ccfde550db8218bfc146d6dfb5.tar.gz
org.eclipse.papyrus-4bf2c754e9b9b5ccfde550db8218bfc146d6dfb5.tar.xz
org.eclipse.papyrus-4bf2c754e9b9b5ccfde550db8218bfc146d6dfb5.zip
421212: [Diagram] Papyrus should provide actions for Show/Hide related
links in all diagrams https://bugs.eclipse.org/bugs/show_bug.cgi?id=421212 Manage the incoming outcoming link on association
Diffstat (limited to 'plugins/sysml/diagram')
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/part/SysMLDiagramUpdater.java38
1 files changed, 34 insertions, 4 deletions
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/part/SysMLDiagramUpdater.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/part/SysMLDiagramUpdater.java
index cc8050f050d..0db8b433014 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/part/SysMLDiagramUpdater.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/part/SysMLDiagramUpdater.java
@@ -127,10 +127,13 @@ public class SysMLDiagramUpdater {
* the list of the incoming links for this view
*/
public static List<UpdaterLinkDescriptor> getIncomingLinks(final View view) {
- final String id = view.getType();//TODO : could be done by the SysMLVisualIdRegistry...
+ final String id = view.getType();
if(id.equals(SysMLGraphicalTypes.SHAPE_SYSML_BLOCK_AS_CLASSIFIER_ID)) {
return getBlock_shape_sysml_block_as_classifier_IncomingLink(view);
}
+ if(id.equals(SysMLGraphicalTypes.LINK_SYSML_ASSOCIATION_ID)) {
+ return getAssociation_link_sysml_association_IncomingLink(view);
+ }
return Collections.emptyList();
}
@@ -143,10 +146,14 @@ public class SysMLDiagramUpdater {
* the list of the outgoing links for this view
*/
public static List<UpdaterLinkDescriptor> getOutgoingLinks(final View view) {
- final String id = view.getType();//TODO : could be done by the SysMLVisualIdRegistry...
+ final String id = view.getType();
if(id.equals(SysMLGraphicalTypes.SHAPE_SYSML_BLOCK_AS_CLASSIFIER_ID)) {
return getBlock_shape_sysml_block_as_classifier_OutgoingLink(view);
}
+ if(id.equals(SysMLGraphicalTypes.LINK_SYSML_ASSOCIATION_ID)) {
+ return getAssociation_link_sysml_association_OutgoingLink(view);
+ }
+
return Collections.emptyList();
}
@@ -174,6 +181,29 @@ public class SysMLDiagramUpdater {
return result;
}
+ private static List<UpdaterLinkDescriptor> getAssociation_link_sysml_association_IncomingLink(final View view) {
+ final Association modelElement = (Association)view.getElement();
+ final LinkedList<UpdaterLinkDescriptor> result = new LinkedList<UpdaterLinkDescriptor>();
+ final Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer.find(view.eResource().getResourceSet().getResources());
+ result.addAll(getIncomingTypeModelFacetLinks_Generalization_link_uml_generalization(modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_Association_link_sysml_association(modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_Dependency_link_uml_dependency(modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_Usage_link_uml_usage(modelElement, crossReferences));
+ result.addAll(getIncomingFeatureModelFacetLinks_Comment_AnnotatedElement_4013(modelElement, crossReferences));
+ result.addAll(getIncomingFeatureModelFacetLinks_Constraint_ConstrainedElement_4014(modelElement, crossReferences));
+ return result;
+ }
+
+ private static List<UpdaterLinkDescriptor> getAssociation_link_sysml_association_OutgoingLink(final View view) {
+ final Association modelElement = (Association)view.getElement();
+ final LinkedList<UpdaterLinkDescriptor> result = new LinkedList<UpdaterLinkDescriptor>();
+ result.addAll(getContainedTypeModelFacetLinks_Generalization_link_uml_generalization(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_Association_link_sysml_association(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_Dependency_link_uml_dependency(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_Usage_link_uml_usage(modelElement));
+ return result;
+ }
+
private static Collection<UpdaterLinkDescriptor> getIncomingTypeModelFacetLinks_Dependency_link_uml_dependency(NamedElement target, Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) {
LinkedList<UpdaterLinkDescriptor> result = new LinkedList<UpdaterLinkDescriptor>();
Collection<EStructuralFeature.Setting> settings = crossReferences.get(target);
@@ -415,7 +445,7 @@ public class SysMLDiagramUpdater {
}
- private static Collection<? extends UpdaterLinkDescriptor> getIncomingTypeModelFacetLinks_Association_link_sysml_association(Class target, Map<EObject, Collection<Setting>> crossReferences) {
+ private static Collection<? extends UpdaterLinkDescriptor> getIncomingTypeModelFacetLinks_Association_link_sysml_association(Type target, Map<EObject, Collection<Setting>> crossReferences) {
LinkedList<UMLLinkDescriptor> result = new LinkedList<UMLLinkDescriptor>();
Collection<EStructuralFeature.Setting> settings = crossReferences.get(target);
for(EStructuralFeature.Setting setting : settings) {
@@ -438,7 +468,7 @@ public class SysMLDiagramUpdater {
return result;
}
- private static Collection<? extends UpdaterLinkDescriptor> getOutgoingTypeModelFacetLinks_Association_link_sysml_association(final Class source) {
+ private static Collection<? extends UpdaterLinkDescriptor> getOutgoingTypeModelFacetLinks_Association_link_sysml_association(final Type source) {
Package container = null;
// Find container element for the link.
// Climb up by containment hierarchy starting from the source

Back to the top