From eeb2f32e7b3e553b45e17524ee4185f32e0cd639 Mon Sep 17 00:00:00 2001 From: Pierre Laborde <49183340+labordep@users.noreply.github.com> Date: Wed, 1 Nov 2023 13:24:55 +0100 Subject: [PATCH 1/6] Initialize edit on running plugin --- .../PyramidPluginEditOnRunningTest.class.st | 42 +++++++++++++++++++ .../PyramidPluginEditOnRunning.class.st | 40 ++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st create mode 100644 src/Pyramid/PyramidPluginEditOnRunning.class.st diff --git a/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st b/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st new file mode 100644 index 00000000..d1c40af3 --- /dev/null +++ b/src/Pyramid-Tests/PyramidPluginEditOnRunningTest.class.st @@ -0,0 +1,42 @@ +" +A PyramidPluginEditOnRunningTest is a test class for testing the behavior of PyramidPluginEditOnRunning +" +Class { + #name : #PyramidPluginEditOnRunningTest, + #superclass : #TestCase, + #instVars : [ + 'editOnRunning' + ], + #category : #'Pyramid-Tests-cases-plugin-edit-on-running' +} + +{ #category : #tests } +PyramidPluginEditOnRunningTest >> setUp [ + + super setUp. + editOnRunning := PyramidPluginEditOnRunning editOnRunning. +] + +{ #category : #tests } +PyramidPluginEditOnRunningTest >> tearDown [ + + super tearDown. + PyramidPluginEditOnRunning editOnRunning: editOnRunning. +] + +{ #category : #tests } +PyramidPluginEditOnRunningTest >> testEditOnRunning [ + + PyramidPluginEditOnRunning editOnRunning: true. + self assert: PyramidPluginEditOnRunning editOnRunning. + + PyramidPluginEditOnRunning editOnRunning: false. + self deny: PyramidPluginEditOnRunning editOnRunning. +] + +{ #category : #tests } +PyramidPluginEditOnRunningTest >> testPlugin [ + + | plugin | + plugin := PyramidPluginEditOnRunning new. +] diff --git a/src/Pyramid/PyramidPluginEditOnRunning.class.st b/src/Pyramid/PyramidPluginEditOnRunning.class.st new file mode 100644 index 00000000..bfae5d04 --- /dev/null +++ b/src/Pyramid/PyramidPluginEditOnRunning.class.st @@ -0,0 +1,40 @@ +Class { + #name : #PyramidPluginEditOnRunning, + #superclass : #Object, + #traits : 'TPyramidPlugin', + #classTraits : 'TPyramidPlugin classTrait', + #classInstVars : [ + 'editOnRunning' + ], + #category : #'Pyramid-plugin-edit-on-running' +} + +{ #category : #accessing } +PyramidPluginEditOnRunning class >> editOnRunning [ + + ^ editOnRunning ifNil: [ editOnRunning := true ] +] + +{ #category : #accessing } +PyramidPluginEditOnRunning class >> editOnRunning: aBoolean [ + + editOnRunning := aBoolean +] + +{ #category : #adding } +PyramidPluginEditOnRunning >> addPanelsOn: aPyramidSimpleWindow [ + + "do nothing" +] + +{ #category : #actions } +PyramidPluginEditOnRunning >> configureBuilder: aPyramidEditorBuilder [ + + "do nothing" +] + +{ #category : #'as yet unclassified' } +PyramidPluginEditOnRunning >> connectOn: aPyramidEditor [ + + "do nothing" +] From 969ee3a74ade5f6149d51c9ac21987c670ad16c5 Mon Sep 17 00:00:00 2001 From: Pierre Laborde <49183340+labordep@users.noreply.github.com> Date: Wed, 1 Nov 2023 13:42:19 +0100 Subject: [PATCH 2/6] Plugins initialize refactoring --- src/Pyramid-Bloc/PyramidBlocPlugin.class.st | 8 +---- .../PyramidBlocTextPlugin.class.st | 8 +---- .../PyramidContextMenuPlugin.class.st | 3 +- .../PyramidCopyPastePlugin.class.st | 6 ---- src/Pyramid-Bloc/PyramidSavePlugin.class.st | 8 +---- src/Pyramid-Bloc/PyramidSpacePlugin.class.st | 9 +----- src/Pyramid-Bloc/PyramidTreePlugin.class.st | 8 +---- src/Pyramid/PyramidHistoryPlugin.class.st | 8 +---- .../PyramidPluginDynamicLayout.class.st | 8 +---- .../PyramidPluginEditOnRunning.class.st | 31 ++++++++++++++++++- src/Pyramid/PyramidPluginSelection.class.st | 8 +---- src/Pyramid/TPyramidPlugin.trait.st | 10 +++++- 12 files changed, 49 insertions(+), 66 deletions(-) diff --git a/src/Pyramid-Bloc/PyramidBlocPlugin.class.st b/src/Pyramid-Bloc/PyramidBlocPlugin.class.st index 9ae6842b..5cc72fc8 100644 --- a/src/Pyramid-Bloc/PyramidBlocPlugin.class.st +++ b/src/Pyramid-Bloc/PyramidBlocPlugin.class.st @@ -197,12 +197,6 @@ PyramidBlocPlugin class >> geometry [ ^ property ] -{ #category : #'class initialization' } -PyramidBlocPlugin class >> initialize [ - - PyramidPluginManager uniqueInstance addPlugin: self -] - { #category : #accessing } PyramidBlocPlugin class >> layout [ @@ -301,7 +295,7 @@ PyramidBlocPlugin >> addPanelsOn: aPyramidSimpleWindow [ addItem: [ :builder | self menuChangeOrderOn: builder ] ] -{ #category : #'as yet unclassified' } +{ #category : #connecting } PyramidBlocPlugin >> connectOn: aPyramidEditor [ self editor: aPyramidEditor. diff --git a/src/Pyramid-Bloc/PyramidBlocTextPlugin.class.st b/src/Pyramid-Bloc/PyramidBlocTextPlugin.class.st index 41e2dab4..385fc993 100644 --- a/src/Pyramid-Bloc/PyramidBlocTextPlugin.class.st +++ b/src/Pyramid-Bloc/PyramidBlocTextPlugin.class.st @@ -46,12 +46,6 @@ PyramidBlocTextPlugin class >> fontWeight [ ^ property ] -{ #category : #'class initialization' } -PyramidBlocTextPlugin class >> initialize [ - - PyramidPluginManager uniqueInstance addPlugin: self -] - { #category : #accessing } PyramidBlocTextPlugin class >> textForeground [ @@ -67,7 +61,7 @@ PyramidBlocTextPlugin class >> textForeground [ ^ property ] -{ #category : #'as yet unclassified' } +{ #category : #connecting } PyramidBlocTextPlugin >> connectOn: aPyramidEditor [ aPyramidEditor propertiesManager addProperty: self class changeText. diff --git a/src/Pyramid-Bloc/PyramidContextMenuPlugin.class.st b/src/Pyramid-Bloc/PyramidContextMenuPlugin.class.st index bd1a07b8..e259496a 100644 --- a/src/Pyramid-Bloc/PyramidContextMenuPlugin.class.st +++ b/src/Pyramid-Bloc/PyramidContextMenuPlugin.class.st @@ -12,6 +12,7 @@ Class { { #category : #'class initialization' } PyramidContextMenuPlugin class >> initialize [ + self flag:'labordep: Why remove before add ?'. PyramidPluginManager uniqueInstance removePlugin: self. PyramidPluginManager uniqueInstance addPlugin: self ] @@ -24,7 +25,7 @@ PyramidContextMenuPlugin >> addPanelsOn: aPyramidSimpleWindow [ self menuBrowseAndInspectOn: builder ] ] -{ #category : #'as yet unclassified' } +{ #category : #connecting } PyramidContextMenuPlugin >> connectOn: aPyramidEditor [ self editor: aPyramidEditor. diff --git a/src/Pyramid-Bloc/PyramidCopyPastePlugin.class.st b/src/Pyramid-Bloc/PyramidCopyPastePlugin.class.st index 8c2b8009..80ee52d8 100644 --- a/src/Pyramid-Bloc/PyramidCopyPastePlugin.class.st +++ b/src/Pyramid-Bloc/PyramidCopyPastePlugin.class.st @@ -6,12 +6,6 @@ Class { #category : #'Pyramid-Bloc-plugin-copy-paste' } -{ #category : #'class initialization' } -PyramidCopyPastePlugin class >> initialize [ - - PyramidPluginManager uniqueInstance addPlugin: self -] - { #category : #adding } PyramidCopyPastePlugin >> addPanelsOn: aPyramidSimpleWindow [ diff --git a/src/Pyramid-Bloc/PyramidSavePlugin.class.st b/src/Pyramid-Bloc/PyramidSavePlugin.class.st index 933cc930..7c7ee66f 100644 --- a/src/Pyramid-Bloc/PyramidSavePlugin.class.st +++ b/src/Pyramid-Bloc/PyramidSavePlugin.class.st @@ -15,12 +15,6 @@ Class { #category : #'Pyramid-Bloc-plugin-save' } -{ #category : #'class initialization' } -PyramidSavePlugin class >> initialize [ - - PyramidPluginManager uniqueInstance addPlugin: self -] - { #category : #'instance creation' } PyramidSavePlugin class >> openOn: aCollectionOfBlElement saveModel: aSaveModel [ @@ -51,7 +45,7 @@ PyramidSavePlugin >> addPanelsOn: aPyramidSimpleWindow [ builder makeButtonWithIcon: self inputsButton order: 2 ] ] -{ #category : #'as yet unclassified' } +{ #category : #connecting } PyramidSavePlugin >> connectOn: aPyramidEditor [ self projectModel: aPyramidEditor projectModel. diff --git a/src/Pyramid-Bloc/PyramidSpacePlugin.class.st b/src/Pyramid-Bloc/PyramidSpacePlugin.class.st index 29508430..ee8ba982 100644 --- a/src/Pyramid-Bloc/PyramidSpacePlugin.class.st +++ b/src/Pyramid-Bloc/PyramidSpacePlugin.class.st @@ -11,13 +11,6 @@ Class { #category : #'Pyramid-Bloc-plugin-space' } -{ #category : #'class initialization' } -PyramidSpacePlugin class >> initialize [ - PyramidPluginManager uniqueInstance addPlugin: self - - -] - { #category : #adding } PyramidSpacePlugin >> addPanelsOn: aPyramidSimpleWindow [ @@ -34,7 +27,7 @@ PyramidSpacePlugin >> builder [ ^ builder ] -{ #category : #'as yet unclassified' } +{ #category : #connecting } PyramidSpacePlugin >> connectOn: aPyramidEditor [ builder editor: aPyramidEditor. diff --git a/src/Pyramid-Bloc/PyramidTreePlugin.class.st b/src/Pyramid-Bloc/PyramidTreePlugin.class.st index 0da26612..81fbcdd6 100644 --- a/src/Pyramid-Bloc/PyramidTreePlugin.class.st +++ b/src/Pyramid-Bloc/PyramidTreePlugin.class.st @@ -85,12 +85,6 @@ PyramidTreePlugin class >> columnZIndex: aPyramidTreePlugin [ yourself ] -{ #category : #'class initialization' } -PyramidTreePlugin class >> initialize [ - - PyramidPluginManager uniqueInstance addPlugin: self -] - { #category : #initialization } PyramidTreePlugin class >> setId: aString of: aBlElement onEditor: aPyramidEditor [ @@ -124,7 +118,7 @@ PyramidTreePlugin >> addPanelsOn: aPyramidSimpleWindow [ addItem: [ :builder | self menuAddAndDeleteOn: builder ] ] -{ #category : #'as yet unclassified' } +{ #category : #connecting } PyramidTreePlugin >> connectOn: aPyramidEditor [ self editor: aPyramidEditor. diff --git a/src/Pyramid/PyramidHistoryPlugin.class.st b/src/Pyramid/PyramidHistoryPlugin.class.st index 7387397c..dde8d092 100644 --- a/src/Pyramid/PyramidHistoryPlugin.class.st +++ b/src/Pyramid/PyramidHistoryPlugin.class.st @@ -12,12 +12,6 @@ Class { #category : #'Pyramid-history' } -{ #category : #'class initialization' } -PyramidHistoryPlugin class >> initialize [ - - PyramidPluginManager uniqueInstance addPlugin: self -] - { #category : #adding } PyramidHistoryPlugin >> addPanelsOn: aPyramidSimpleWindow [ @@ -31,7 +25,7 @@ PyramidHistoryPlugin >> addPanelsOn: aPyramidSimpleWindow [ builder makeButtonWithIcon: self redoButton order: 20 ] ] -{ #category : #'as yet unclassified' } +{ #category : #connecting } PyramidHistoryPlugin >> connectOn: aPyramidEditor [ self history: aPyramidEditor propertiesManager history. diff --git a/src/Pyramid/PyramidPluginDynamicLayout.class.st b/src/Pyramid/PyramidPluginDynamicLayout.class.st index af086c3b..1a209533 100644 --- a/src/Pyramid/PyramidPluginDynamicLayout.class.st +++ b/src/Pyramid/PyramidPluginDynamicLayout.class.st @@ -13,12 +13,6 @@ Class { #category : #'Pyramid-plugin-dynamic-layout' } -{ #category : #initialization } -PyramidPluginDynamicLayout class >> initialize [ - - PyramidPluginManager uniqueInstance addPlugin: self -] - { #category : #adding } PyramidPluginDynamicLayout >> addPanelsOn: aPyramidWindow [ @@ -71,7 +65,7 @@ PyramidPluginDynamicLayout >> configureBuilder: aPyramidBuilder [ aPyramidBuilder window: editorWindow ] -{ #category : #'as yet unclassified' } +{ #category : #connecting } PyramidPluginDynamicLayout >> connectOn: aPyramidEditor [ self changeEditorLayout diff --git a/src/Pyramid/PyramidPluginEditOnRunning.class.st b/src/Pyramid/PyramidPluginEditOnRunning.class.st index bfae5d04..0eeebad9 100644 --- a/src/Pyramid/PyramidPluginEditOnRunning.class.st +++ b/src/Pyramid/PyramidPluginEditOnRunning.class.st @@ -33,8 +33,37 @@ PyramidPluginEditOnRunning >> configureBuilder: aPyramidEditorBuilder [ "do nothing" ] -{ #category : #'as yet unclassified' } +{ #category : #connecting } PyramidPluginEditOnRunning >> connectOn: aPyramidEditor [ "do nothing" ] + +{ #category : #initialization } +PyramidPluginEditOnRunning >> initialize [ + + super initialize. + self start. +] + +{ #category : #events } +PyramidPluginEditOnRunning >> receiveBlParallelUniverseHostSpaceCreatedSignal: anEvent [ + + +] + +{ #category : #'start-stop' } +PyramidPluginEditOnRunning >> start [ + "Install BlUniverse listeners" + + BlParallelUniverse all do:[ :u | + u when: BlParallelUniverseHostSpaceCreatedSignal do:[ :e | self receiveBlParallelUniverseHostSpaceCreatedSignal: e ]. + ]. +] + +{ #category : #'start-stop' } +PyramidPluginEditOnRunning >> stop [ + "Remove BlUniverse listeners" + + "not necessary to remove" +] diff --git a/src/Pyramid/PyramidPluginSelection.class.st b/src/Pyramid/PyramidPluginSelection.class.st index e4bc84e9..4b6ad465 100644 --- a/src/Pyramid/PyramidPluginSelection.class.st +++ b/src/Pyramid/PyramidPluginSelection.class.st @@ -10,12 +10,6 @@ Class { #category : #'Pyramid-plugin-selection' } -{ #category : #'as yet unclassified' } -PyramidPluginSelection class >> initialize [ - - PyramidPluginManager uniqueInstance addPlugin: self -] - { #category : #adding } PyramidPluginSelection >> addPanelsOn: aPyramidSimpleWindow [ @@ -27,7 +21,7 @@ PyramidPluginSelection >> addPanelsOn: aPyramidSimpleWindow [ order: 1 ]. ] -{ #category : #'as yet unclassified' } +{ #category : #connecting } PyramidPluginSelection >> connectOn: aPyramidEditor [ self view projectModel: aPyramidEditor projectModel diff --git a/src/Pyramid/TPyramidPlugin.trait.st b/src/Pyramid/TPyramidPlugin.trait.st index 99d2f4fd..9b1ec69a 100644 --- a/src/Pyramid/TPyramidPlugin.trait.st +++ b/src/Pyramid/TPyramidPlugin.trait.st @@ -3,6 +3,14 @@ Trait { #category : #'Pyramid-core' } +{ #category : #initialization } +TPyramidPlugin classSide >> initialize [ +