From 0cc62c763612132cf478fede84f5cd94428fef6f Mon Sep 17 00:00:00 2001 From: Jan Bliznicenko Date: Sat, 23 Nov 2024 21:42:16 +0100 Subject: [PATCH] Remove invalid diagram element instead of replacing it by backup --- .../OpenPonk-Core/OPDiagramElement.class.st | 21 ++++++++----------- .../OpenPonk-Core/OPDiagramInvalid.class.st | 7 +++++++ 2 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 repository/OpenPonk-Core/OPDiagramInvalid.class.st diff --git a/repository/OpenPonk-Core/OPDiagramElement.class.st b/repository/OpenPonk-Core/OPDiagramElement.class.st index ccf21de1..4dd57966 100644 --- a/repository/OpenPonk-Core/OPDiagramElement.class.st +++ b/repository/OpenPonk-Core/OPDiagramElement.class.st @@ -182,12 +182,6 @@ OPDiagramElement >> attachedShapesDo: aBlock [ thenDo: aBlock ] -{ #category : 'serialization' } -OPDiagramElement >> backupModelElementFor: aModelReference [ - - ^ nil -] - { #category : 'accessing' } OPDiagramElement >> canvas [ @@ -529,9 +523,11 @@ OPDiagramElement >> resizableInteractionTarget [ { #category : 'serialization' } OPDiagramElement >> resolveAllModelElements: aCollection [ - self resolveModelElements: aCollection. - self ownedElements do: [ :each | - each resolveAllModelElements: aCollection ] + | success | + success := self resolveModelElements: aCollection. + self ownedElements: (self ownedElements select: [ :each | + each resolveAllModelElements: aCollection ]). + ^ success ] { #category : 'serialization' } @@ -541,9 +537,10 @@ OPDiagramElement >> resolveModelElements: aCollection [ [ each modelObjectFrom: aCollection ] on: NotFound do: [ :e | - OPModelInvalid signal: - 'Diagram references non-existent model element. Try using Proceed to use placeholder model object'. - self backupModelElementFor: each ] ]) + OPDiagramInvalid signal: + 'Diagram references non-existent model element. Try using Proceed to remove it'. + ^ false ] ]). + ^ true ] { #category : 'rendering' } diff --git a/repository/OpenPonk-Core/OPDiagramInvalid.class.st b/repository/OpenPonk-Core/OPDiagramInvalid.class.st new file mode 100644 index 00000000..1a86d554 --- /dev/null +++ b/repository/OpenPonk-Core/OPDiagramInvalid.class.st @@ -0,0 +1,7 @@ +Class { + #name : 'OPDiagramInvalid', + #superclass : 'Warning', + #category : 'OpenPonk-Core-Controllers', + #package : 'OpenPonk-Core', + #tag : 'Controllers' +}