diff options
author | Géry Deloge | 2016-08-05 07:50:08 +0000 |
---|---|---|
committer | Géry Deloge | 2016-08-05 07:50:08 +0000 |
commit | cbd2e8fc303f663f5de2388791ee3166eb20ea3b (patch) | |
tree | 7746d7eacf3d0b0e0d9d6c8363b7f864ccbc4e48 /plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus | |
parent | 493fe8d06924ce5667ad5ed566ff83910a1c4c46 (diff) | |
download | org.eclipse.papyrus-cbd2e8fc303f663f5de2388791ee3166eb20ea3b.tar.gz org.eclipse.papyrus-cbd2e8fc303f663f5de2388791ee3166eb20ea3b.tar.xz org.eclipse.papyrus-cbd2e8fc303f663f5de2388791ee3166eb20ea3b.zip |
Bug 497678: [SysML][Requirements] NPE while opening requirements diagram
change unknown visualID value from null to "" (empty String)
impact on all diagrams
Change-Id: Ib24d6d1bc5b64ba5338645b3d8abdaa74db528c3
Signed-off-by: Géry Deloge <gery.deloge@cea.fr>
Diffstat (limited to 'plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus')
6 files changed, 44 insertions, 40 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/commands/InitializeDiagramCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/commands/InitializeDiagramCommand.java index 287011b0a72..95e504bab23 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/commands/InitializeDiagramCommand.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/commands/InitializeDiagramCommand.java @@ -225,7 +225,7 @@ public class InitializeDiagramCommand extends AbstractTransactionalCommand { PackageableElement element = it.next(); if (!(element instanceof AssociationClass)) { String visualID = UMLVisualIDRegistry.getNodeVisualID(viewObject, element); - if (visualID != null) { + if (visualID != null && !visualID.isEmpty()) { ViewDescriptor descriptor = getViewDescriptor(element); descriptors.add(descriptor); } diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/commands/RestoreRelatedLinksCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/commands/RestoreRelatedLinksCommand.java index d6cf99418dd..fd1f5871df2 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/commands/RestoreRelatedLinksCommand.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/commands/RestoreRelatedLinksCommand.java @@ -223,7 +223,7 @@ public class RestoreRelatedLinksCommand extends AbstractTransactionalCommand { for (Iterator<Edge> linksIterator = existingLinks.iterator(); linksIterator.hasNext();) { Edge nextDiagramLink = linksIterator.next(); String diagramLinkVisualID = UMLVisualIDRegistry.getVisualID(nextDiagramLink); - if (diagramLinkVisualID == null) { + if (diagramLinkVisualID == null || diagramLinkVisualID.isEmpty() ) { if (nextDiagramLink.getSource() != null && nextDiagramLink.getTarget() != null) { linksIterator.remove(); } diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/part/CustomUMLDiagramUpdater.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/part/CustomUMLDiagramUpdater.java index 4b69127d96e..308d1013377 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/part/CustomUMLDiagramUpdater.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/edit/part/CustomUMLDiagramUpdater.java @@ -49,7 +49,7 @@ public class CustomUMLDiagramUpdater extends UMLDiagramUpdater { continue;
}
Association link = (Association) linkObject;
- if (AssociationEditPart.VISUAL_ID != UMLVisualIDRegistry.getLinkWithClassVisualID(link)) {
+ if (!AssociationEditPart.VISUAL_ID.equals(UMLVisualIDRegistry.getLinkWithClassVisualID(link))) {
continue;
}
List<?> targets = link.getEndTypes();
@@ -118,7 +118,7 @@ public class CustomUMLDiagramUpdater extends UMLDiagramUpdater { continue;
}
Association link = (Association) linkObject;
- if (AssociationEditPart.VISUAL_ID != UMLVisualIDRegistry.getLinkWithClassVisualID(link)) {
+ if (!AssociationEditPart.VISUAL_ID.equals(UMLVisualIDRegistry.getLinkWithClassVisualID(link))) {
continue;
}
List<?> ends = link.getEndTypes();
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/factory/CustomUMLEditPartFactory.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/factory/CustomUMLEditPartFactory.java index bbdd9c10eec..1f9a0b101fb 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/factory/CustomUMLEditPartFactory.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/factory/CustomUMLEditPartFactory.java @@ -59,39 +59,43 @@ public class CustomUMLEditPartFactory extends UMLEditPartFactory { public EditPart createEditPart(EditPart context, Object model) { if (model instanceof View) { View view = (View) model; - switch (UMLVisualIDRegistry.getVisualID(view)) { - case DurationObservationEditPart.VISUAL_ID: - return new CustomDurationObservationEditPart(view); - case TimeObservationEditPart.VISUAL_ID: - return new CustomTimeObservationEditPart(view); - case DurationObservationFloatingNameEditPart.VISUAL_ID: - return new CustomDurationObservationFloatingNameEditPart(view); - case TimeObservationFloatingNameEditPart.VISUAL_ID: - return new CustomTimeObservationFloatingNameEditPart(view); - case ModelEditPartTN.VISUAL_ID: - return new CModelEditPart(view); - case ModelEditPartCN.VISUAL_ID: - return new CModelEditPartCN(view); - case AssociationSourceNameEditPart.VISUAL_ID: - return new AssociationEndSourceEditPart(view); - case AssociationTargetNameEditPart.VISUAL_ID: - return new AssociationEndTargetEditPart(view); - case AssociationClassRoleSourceEditPart.VISUAL_ID: - return new CAssociationClassEndSourceEditPart(view); - case AssociationClassRoleTargetEditPart.VISUAL_ID: - return new CAssociationClassEndTargetEditPart(view); - case DependencyBranchEditPart.VISUAL_ID: - return new CDependencyBranchEditPart(view); - case ConstraintEditPart.VISUAL_ID: - return new CustomConstraintEditPart(view); - case SourceISLinkLabelEditPart.VISUAL_ID: - return new CSourceISLinkLabelEditPart(view); - case TargetISLinkLabelEditPart.VISUAL_ID: - return new CTargetISLinkLabelEditPart(view); - case DurationObservationStereotypeLabelEditPart.VISUAL_ID: - return new CustomDurationObservationStereotypeLabelEditPart(view); - case TimeObservationStereotypeLabelEditPart.VISUAL_ID: - return new CustomTimeObservationStereotypeLabelEditPart(view); + String visualID = UMLVisualIDRegistry.getVisualID(view); + + if (visualID != null) { + switch (visualID) { + case DurationObservationEditPart.VISUAL_ID: + return new CustomDurationObservationEditPart(view); + case TimeObservationEditPart.VISUAL_ID: + return new CustomTimeObservationEditPart(view); + case DurationObservationFloatingNameEditPart.VISUAL_ID: + return new CustomDurationObservationFloatingNameEditPart(view); + case TimeObservationFloatingNameEditPart.VISUAL_ID: + return new CustomTimeObservationFloatingNameEditPart(view); + case ModelEditPartTN.VISUAL_ID: + return new CModelEditPart(view); + case ModelEditPartCN.VISUAL_ID: + return new CModelEditPartCN(view); + case AssociationSourceNameEditPart.VISUAL_ID: + return new AssociationEndSourceEditPart(view); + case AssociationTargetNameEditPart.VISUAL_ID: + return new AssociationEndTargetEditPart(view); + case AssociationClassRoleSourceEditPart.VISUAL_ID: + return new CAssociationClassEndSourceEditPart(view); + case AssociationClassRoleTargetEditPart.VISUAL_ID: + return new CAssociationClassEndTargetEditPart(view); + case DependencyBranchEditPart.VISUAL_ID: + return new CDependencyBranchEditPart(view); + case ConstraintEditPart.VISUAL_ID: + return new CustomConstraintEditPart(view); + case SourceISLinkLabelEditPart.VISUAL_ID: + return new CSourceISLinkLabelEditPart(view); + case TargetISLinkLabelEditPart.VISUAL_ID: + return new CTargetISLinkLabelEditPart(view); + case DurationObservationStereotypeLabelEditPart.VISUAL_ID: + return new CustomDurationObservationStereotypeLabelEditPart(view); + case TimeObservationStereotypeLabelEditPart.VISUAL_ID: + return new CustomTimeObservationStereotypeLabelEditPart(view); + } } } return super.createEditPart(context, model); diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/helper/ContainmentHelper.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/helper/ContainmentHelper.java index b9d1d20a7d9..36f77484a4f 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/helper/ContainmentHelper.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/helper/ContainmentHelper.java @@ -305,7 +305,7 @@ public class ContainmentHelper extends ElementHelper { * @return true, if is containment link
*/
public static boolean isContainmentLink(Edge edge) {
- return UMLVisualIDRegistry.getVisualID(edge) == ContainmentLinkEditPart.VISUAL_ID;
+ return ContainmentLinkEditPart.VISUAL_ID.equals(UMLVisualIDRegistry.getVisualID(edge));
}
/**
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/policies/NestedClazzCompartmentCreationEditPolicy.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/policies/NestedClazzCompartmentCreationEditPolicy.java index 9bff2e95779..a6de4178eff 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/policies/NestedClazzCompartmentCreationEditPolicy.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/policies/NestedClazzCompartmentCreationEditPolicy.java @@ -80,8 +80,8 @@ public class NestedClazzCompartmentCreationEditPolicy extends DefaultCreationEdi // drop of the object
IAdaptable elementAdapter = new EObjectAdapter(element);
String nodeVISUALID = UMLVisualIDRegistry.getNodeVisualID(((View) getHost().getModel()), element);
- // If -1 then the node can node be create
- if (nodeVISUALID == null) {
+ // If none then the node can node be create
+ if (nodeVISUALID == null || nodeVISUALID.isEmpty()) {
cc.compose(UnexecutableCommand.INSTANCE);
} else {
ViewDescriptor descriptor = new ViewDescriptor(elementAdapter, Node.class, ((IHintedType) UMLElementTypes.getElementType(nodeVISUALID)).getSemanticHint(), ViewUtil.APPEND, true, ((GraphicalEditPart) getHost()).getDiagramPreferencesHint());
|