diff options
author | Vincent Lorenzo | 2013-11-19 14:52:30 +0000 |
---|---|---|
committer | Vincent Lorenzo | 2013-11-21 09:18:55 +0000 |
commit | 4bf2c754e9b9b5ccfde550db8218bfc146d6dfb5 (patch) | |
tree | 49dde7d325ef2cc5c74b7622b6f3ed658b2b999e /plugins/sysml/diagram | |
parent | 57970d58cd90bed5eb792a86d376e5696a7fdcb4 (diff) | |
download | org.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.java | 38 |
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
|