@@ -69,11 +69,11 @@ MolWorld class >> menu00MoleculeOn: aBuilder [
6969
7070 < worldMenu>
7171 (aBuilder item: self menuKey)
72- parent: self parent ;
72+ parent: #Tools ;
7373 label: ' Molecule' ;
7474 icon: MolIcon moleculeIcon;
7575 help: ' A component framework' ;
76- order: self order ;
76+ order: 999 ;
7777 with: [
7878 (aBuilder group: #MoleculeStatus )
7979 order: 1 ;
@@ -83,7 +83,9 @@ MolWorld class >> menu00MoleculeOn: aBuilder [
8383 withSeparatorAfter.
8484 (aBuilder group: #MoleculeLinks )
8585 order: 3 .
86- ]
86+ ].
87+
88+ self worldMenuPostBuildSetup: aBuilder
8789]
8890
8991{ #category : #menu }
@@ -213,23 +215,6 @@ MolWorld class >> menu60ReportBugOn: aBuilder [
213215 action: [WebBrowser openOn: ' https://github.com/OpenSmock/Molecule/issues/new' ]
214216]
215217
216- { #category : #' private - menu' }
217- MolWorld class >> menuDefinition: aPragmaString [
218- " Get a menu definition related to a pragme, if not found return nil"
219-
220- | list |
221- aPragmaString ifNil: [ ^ nil ].
222-
223- list := Pragma allNamed: aPragmaString.
224-
225- ^ list ifEmpty: [ nil ] ifNotEmpty: [ :e |
226- | pragma class |
227- pragma := e first.
228- class := pragma methodClass.
229- (class instanceSide respondsTo: pragma methodSelector) ifTrue: [
230- class instanceSide perform: pragma methodSelector ] ]
231- ]
232-
233218{ #category : #' private - menu' }
234219MolWorld class >> menuKey [
235220
@@ -249,24 +234,6 @@ MolWorld class >> openDefineComponentDialog [
249234 ^ dialogWindow
250235]
251236
252- { #category : #' menu - definitions' }
253- MolWorld class >> order [
254- " Define the order of the root of this World Menu, override me to change the it"
255-
256- " Use this pragma to overidde me in a new method => <MoleculeOrderWorldMenuDefinition>"
257-
258- ^ (self menuDefinition: ' MoleculeOrderWorldMenuDefinition' ) ifNil: [ 999 ]
259- ]
260-
261- { #category : #' menu - definitions' }
262- MolWorld class >> parent [
263- " Define the root parent of this World Menu, override me to change the location"
264-
265- " Use this pragma to overidde me in a new method => <MoleculeParentWorldMenuDefinition>"
266-
267- ^ (self menuDefinition: ' MoleculeParentWorldMenuDefinition' ) ifNil: [ #Tools ]
268- ]
269-
270237{ #category : #' menu - tools' }
271238MolWorld class >> toolsMenu100DefineAllComponentsOn: aBuilder [
272239 < worldMenu>
@@ -441,6 +408,24 @@ MolWorld class >> toolsMenu90DefineDirtyComponentsOn: aBuilder [
441408 label: ' Define dirty Components'
442409]
443410
411+ { #category : #' private - menu' }
412+ MolWorld class >> worldMenuPostBuildSetup: aBuilder [
413+ " Setup a menu item after his build"
414+
415+ | list item |
416+ aBuilder ifNil: [ ^ self ].
417+ list := (Pragma allNamed: ' worldMenuItem:' ) select: [ :e |
418+ e hasArguments and : [ e arguments first = self menuKey ] ].
419+
420+ item := aBuilder items detect: [ :e | e item = self menuKey ] ifNone: [ ^ self ].
421+
422+ list do: [ :pragma |
423+ | class |
424+ class := pragma methodClass.
425+ (class instanceSide respondsTo: pragma methodSelector) ifTrue: [
426+ class instanceSide perform: pragma methodSelector with: item ] ]
427+ ]
428+
444429{ #category : #' see class side' }
445430MolWorld >> seeClassSide [
446431]
0 commit comments