diff --git a/.smalltalk.ston b/.smalltalk.ston index 07666ce..9d2e184 100644 --- a/.smalltalk.ston +++ b/.smalltalk.ston @@ -4,22 +4,20 @@ SmalltalkCISpec { #platforms : [ #pharo ], - #baseline : 'PetriNets', + #baseline : 'OpenPonkPetriNets', #directory : 'repository' } ], #preLoading : 'ci-scripts/.github/scripts/preLoad.st', #postLoading : 'ci-scripts/.github/scripts/postLoad.st', #testing : { + #packages : [ + 'OpenPonk*' + ], #coverage : { #packages : [ 'OpenPonk-PetriNets*' ] - }, - #packages : [ - 'OpenPonk-PetriNets*', - 'OP-*', - 'OpenPonk*' - ] + } } } diff --git a/repository/BaselineOfPetriNets/BaselineOfPetriNets.class.st b/repository/BaselineOfOpenPonkPetriNets/BaselineOfOpenPonkPetriNets.class.st similarity index 65% rename from repository/BaselineOfPetriNets/BaselineOfPetriNets.class.st rename to repository/BaselineOfOpenPonkPetriNets/BaselineOfOpenPonkPetriNets.class.st index df3ce31..3179878 100644 --- a/repository/BaselineOfPetriNets/BaselineOfPetriNets.class.st +++ b/repository/BaselineOfOpenPonkPetriNets/BaselineOfOpenPonkPetriNets.class.st @@ -1,30 +1,30 @@ -Class { - #name : 'BaselineOfPetriNets', - #superclass : 'BaselineOf', - #category : 'BaselineOfPetriNets', - #package : 'BaselineOfPetriNets' -} - -{ #category : 'accessing' } -BaselineOfPetriNets >> baseline: spec [ - - - spec for: #common do: [ - spec - baseline: 'OpenPonk' - with: [ spec repository: 'github://openponk/openponk:v4.0.x' ]. - spec baseline: 'OpenPonkSimulation' with: [ - spec - repository: 'github://JanBliznicenko/openponk-simulation:v4.0.x'; - loads: 'plugin' ]. - spec - package: 'OpenPonk-PetriNets' - with: [ spec requires: #( 'OpenPonkSimulation' ) ]. - spec - package: 'OpenPonk-BooleanColoredPetriNets' - with: [ spec requires: #( 'OpenPonk-PetriNets' ) ]. - spec - group: 'plugin' with: #( 'OpenPonk-PetriNets' ); - group: 'default' with: #( 'OpenPonk' 'plugin' ); - group: 'bcpn' with: #( 'OpenPonk-BooleanColoredPetriNets' ) ] -] +Class { + #name : 'BaselineOfOpenPonkPetriNets', + #superclass : 'BaselineOf', + #category : 'BaselineOfOpenPonkPetriNets', + #package : 'BaselineOfOpenPonkPetriNets' +} + +{ #category : 'accessing' } +BaselineOfOpenPonkPetriNets >> baseline: spec [ + + + spec for: #common do: [ + spec + baseline: 'OpenPonk' + with: [ spec repository: 'github://openponk/openponk' ]. + spec baseline: 'OpenPonkSimulation' with: [ + spec + repository: 'github://JanBliznicenko/openponk-simulation'; + loads: 'plugin' ]. + spec + package: 'OpenPonk-PetriNets' + with: [ spec requires: #( 'OpenPonkSimulation' ) ]. + spec + package: 'OpenPonk-BooleanColoredPetriNets' + with: [ spec requires: #( 'OpenPonk-PetriNets' ) ]. + spec + group: 'plugin' with: #( 'OpenPonk-PetriNets' ); + group: 'default' with: #( 'OpenPonk' 'plugin' ); + group: 'bcpn' with: #( 'OpenPonk-BooleanColoredPetriNets' ) ] +] diff --git a/repository/BaselineOfOpenPonkPetriNets/package.st b/repository/BaselineOfOpenPonkPetriNets/package.st new file mode 100644 index 0000000..5f93c59 --- /dev/null +++ b/repository/BaselineOfOpenPonkPetriNets/package.st @@ -0,0 +1 @@ +Package { #name : 'BaselineOfOpenPonkPetriNets' } diff --git a/repository/BaselineOfPetriNets/package.st b/repository/BaselineOfPetriNets/package.st deleted file mode 100644 index 9201b0b..0000000 --- a/repository/BaselineOfPetriNets/package.st +++ /dev/null @@ -1 +0,0 @@ -Package { #name : 'BaselineOfPetriNets' } diff --git a/repository/OpenPonk-PetriNets/OPPetriNetArcController.class.st b/repository/OpenPonk-PetriNets/OPPetriNetArcController.class.st index 3c98d82..674743f 100644 --- a/repository/OpenPonk-PetriNets/OPPetriNetArcController.class.st +++ b/repository/OpenPonk-PetriNets/OPPetriNetArcController.class.st @@ -13,11 +13,6 @@ OPPetriNetArcController >> internalSubscribeTo: aModel [ aModel weakWhen: OPElementRemoved send: #removeControllerAndDiagramElement to: self ] -{ #category : 'testing' } -OPPetriNetArcController >> isHideable [ - ^ true -] - { #category : 'destruction' } OPPetriNetArcController >> removeModel [ diff --git a/repository/OpenPonk-PetriNets/OPPetriNetController.class.st b/repository/OpenPonk-PetriNets/OPPetriNetController.class.st index 44bcc9d..7a1bfa7 100644 --- a/repository/OpenPonk-PetriNets/OPPetriNetController.class.st +++ b/repository/OpenPonk-PetriNets/OPPetriNetController.class.st @@ -32,7 +32,8 @@ OPPetriNetController >> controllerFactory [ { #category : 'accessing' } OPPetriNetController >> elementsToShowInside [ - ^ model elements + + ^ self model elements ] { #category : 'initialization' } diff --git a/repository/OpenPonk-PetriNets/OPPetriNetNodeController.class.st b/repository/OpenPonk-PetriNets/OPPetriNetNodeController.class.st index 0cc2bc4..76d0084 100644 --- a/repository/OpenPonk-PetriNets/OPPetriNetNodeController.class.st +++ b/repository/OpenPonk-PetriNets/OPPetriNetNodeController.class.st @@ -42,7 +42,8 @@ OPPetriNetNodeController >> canBeTargetFor: aController [ { #category : 'accessing' } OPPetriNetNodeController >> dependentElements [ - ^ (model incoming , model outgoing) asSet + + ^ (self model incoming , self model outgoing) asSet ] { #category : 'rendering' } @@ -58,11 +59,6 @@ OPPetriNetNodeController >> internalSubscribeTo: aModel [ aModel weakWhen: OPElementRemoved send: #removeControllerAndDiagramElement to: self ] -{ #category : 'testing' } -OPPetriNetNodeController >> isHideable [ - ^ true -] - { #category : 'destruction' } OPPetriNetNodeController >> removeModel [ diff --git a/repository/OpenPonk-PetriNets/OPPetriNetPlaceShape.class.st b/repository/OpenPonk-PetriNets/OPPetriNetPlaceShape.class.st index d0a0f78..1ea5f5b 100644 --- a/repository/OpenPonk-PetriNets/OPPetriNetPlaceShape.class.st +++ b/repository/OpenPonk-PetriNets/OPPetriNetPlaceShape.class.st @@ -16,6 +16,12 @@ OPPetriNetPlaceShape >> addInteractions [ self addEventForwardingFrom: self tokenCircle to: self roassalShape ] +{ #category : 'accessing' } +OPPetriNetPlaceShape >> attachedShapes [ + + ^ super attachedShapes , { tokenGroup } +] + { #category : 'private' } OPPetriNetPlaceShape >> createTokenGroup [ @@ -27,6 +33,13 @@ OPPetriNetPlaceShape >> createTokenGroup [ ^ tokenGroup := RSGroup with: circle ] +{ #category : 'removing' } +OPPetriNetPlaceShape >> removeRender [ + + super removeRender. + tokenGroup := nil +] + { #category : 'hooks' } OPPetriNetPlaceShape >> renderBasicShape [ @@ -41,13 +54,7 @@ OPPetriNetPlaceShape >> renderShapeDetails [ super renderShapeDetails. self canvas addAll: self createTokenGroup. - RSLocation new stick: self tokenCircle on: self roassalShape. - self roassalShape - when: RSShapeRemovedEvent - do: [ - tokenGroup do: #remove. - tokenGroup := nil ] - for: self + RSLocation new stick: self tokenCircle on: self roassalShape ] { #category : 'private' } diff --git a/repository/OpenPonk-PetriNets/OPPetriNetTransitionShape.class.st b/repository/OpenPonk-PetriNets/OPPetriNetTransitionShape.class.st index e5f9206..e99e418 100644 --- a/repository/OpenPonk-PetriNets/OPPetriNetTransitionShape.class.st +++ b/repository/OpenPonk-PetriNets/OPPetriNetTransitionShape.class.st @@ -2,7 +2,9 @@ Class { #name : 'OPPetriNetTransitionShape', #superclass : 'OPPetriNetNodeShape', #instVars : [ - 'announcer' + 'announcer', + 'transitionHelper', + 'icon' ], #category : 'OpenPonk-PetriNets-Shapes', #package : 'OpenPonk-PetriNets', @@ -15,12 +17,28 @@ OPPetriNetTransitionShape >> announcer [ ^ announcer ifNil: [ announcer := Announcer new ] ] +{ #category : 'accessing' } +OPPetriNetTransitionShape >> attachedShapes [ + + ^ super attachedShapes , { + icon. + transitionHelper } +] + { #category : 'hooks' } OPPetriNetTransitionShape >> playClicked [ self announcer announce: OPPetriNetPlayClicked ] +{ #category : 'removing' } +OPPetriNetTransitionShape >> removeRender [ + + super removeRender. + icon := nil. + transitionHelper := nil +] + { #category : 'hooks' } OPPetriNetTransitionShape >> renderBasicShape [ @@ -33,7 +51,7 @@ OPPetriNetTransitionShape >> renderBasicShape [ { #category : 'hooks' } OPPetriNetTransitionShape >> selectableInteraction [ - | selectableInteraction icon transitionHelper removal | + | selectableInteraction removal | selectableInteraction := super selectableInteraction. transitionHelper := RSBox new size: 18; @@ -65,7 +83,6 @@ OPPetriNetTransitionShape >> selectableInteraction [ transitionHelper remove. icon remove ]. selectableInteraction when: RSUnHighlightEvent do: removal for: self. - roassalShape when: RSShapeRemovedEvent do: removal for: self. ^ selectableInteraction ] diff --git a/repository/OpenPonk-PetriNets/OPPetrinets410oppProjectLoadTest.class.st b/repository/OpenPonk-PetriNets/OPPetrinets410oppProjectLoadTest.class.st new file mode 100644 index 0000000..658b769 --- /dev/null +++ b/repository/OpenPonk-PetriNets/OPPetrinets410oppProjectLoadTest.class.st @@ -0,0 +1,13 @@ +Class { + #name : 'OPPetrinets410oppProjectLoadTest', + #superclass : 'OPLegacyProjectLoadTest', + #category : 'OpenPonk-PetriNets-Tests', + #package : 'OpenPonk-PetriNets', + #tag : 'Tests' +} + +{ #category : 'as yet unclassified' } +OPPetrinets410oppProjectLoadTest >> base64ProjectZip [ + +^'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x8joFqZkGIvfY37mucaJfxTxDczB7T/eWBuuduBmh5xvxyvCjGLx7zlJxyfMuvP1S+110+m2vxsu0LpPCiAj/N1n7fLrpas2NvA76y/Mt3dQSwECFAMUAAAACABwV25ZCCRUujkAAABDAAAAGAAAAAAAAAAAAAAAtoEAAAAAcHJvamVjdC9leHBvcnQtaW5mby5qc29uUEsBAhQDFAAAAAgAcFduWd56f6xvAAAAiAAAABMAAAAAAAAAAAAAALaBbwAAAHByb2plY3QvbW9kZWxzLmpzb25QSwECFAMUAAAACABwV25ZmbY2k4sAAAC4AAAAFAAAAAAAAAAAAAAAtoEPAQAAcHJvamVjdC9wcm9qZWN0Lmpzb25QSwECFAMUAAAACABwV25ZCvObPkUAAABNAAAARAAAAAAAAAAAAAAAtoHMAQAAcHJvamVjdC9tb2RlbHMvYjhkNjgwM2UtM2VlMy0wZDAwLTk0NGUtZWEzMTBmZjRiY2NjL2V4cG9ydC1pbmZvLmpzb25QSwECFAMUAAAACABwV25ZxBYeIqUEAADeHwAATQAAAAAAAAAAAAAAtoFzAgAAcHJvamVjdC9tb2RlbHMvYjhkNjgwM2UtM2VlMy0wZDAwLTk0NGUtZWEzMTBmZjRiY2NjL2RpYWdyYW1zLzEtUGV0cmkgTmV0LnN0b25QSwECFAMUAAAACABwV25ZvARGvDYAAAA+AAAATQAAAAAAAAAAAAAAtoGDBwAAcHJvamVjdC9tb2RlbHMvYjhkNjgwM2UtM2VlMy0wZDAwLTk0NGUtZWEzMTBmZjRiY2NjL2RpYWdyYW1zL2V4cG9ydC1pbmZvLmpzb25QSwECFAMUAAAACABwV25ZuaBzXTQAAAA8AAAASgAAAAAAAAAAAAAAtoEkCAAAcHJvamVjdC9tb2RlbHMvYjhkNjgwM2UtM2VlMy0wZDAwLTk0NGUtZWEzMTBmZjRiY2NjL21vZGVsL2V4cG9ydC1pbmZvLmpzb25QSwECFAMUAAAACABwV25Ztfcwr7oBAADHCgAARAAAAAAAAAAAAAAAtoHACAAAcHJvamVjdC9tb2RlbHMvYjhkNjgwM2UtM2VlMy0wZDAwLTk0NGUtZWEzMTBmZjRiY2NjL21vZGVsL21vZGVsLnN0b25QSwUGAAAAAAgACAAbAwAA3AoAAAAA' +] diff --git a/repository/OpenPonk-PetriNets/OPPetrinetsLegacyProjectLoadTestGenerator.class.st b/repository/OpenPonk-PetriNets/OPPetrinetsLegacyProjectLoadTestGenerator.class.st new file mode 100644 index 0000000..447a307 --- /dev/null +++ b/repository/OpenPonk-PetriNets/OPPetrinetsLegacyProjectLoadTestGenerator.class.st @@ -0,0 +1,13 @@ +Class { + #name : 'OPPetrinetsLegacyProjectLoadTestGenerator', + #superclass : 'OPLegacyProjectLoadTestGenerator', + #category : 'OpenPonk-PetriNets-Tests', + #package : 'OpenPonk-PetriNets', + #tag : 'Tests' +} + +{ #category : 'hooks' } +OPPetrinetsLegacyProjectLoadTestGenerator >> model [ + + ^ OPPetriNetsExamples examplePetriNet +]