extensions.st
changeset 792 191ce991bfdf
parent 790 88f2832e656a
child 795 944c5812e702
--- a/extensions.st	Mon Dec 29 09:37:10 2014 +0100
+++ b/extensions.st	Mon Dec 29 09:55:54 2014 +0100
@@ -824,41 +824,33 @@
 classMenuExtensionCustomGenerators:aMenu 
     <menuextension: #classMenu>
 
-    CustomMenuBuilder new
+    self customMenuBuilder
         perspective: CustomPerspective classPerspective;
         menu: aMenu;
         submenuLabel: 'Generate - Custom';
         afterMenuItemLabeled: 'Generate';
         generatorOrRefactoringFilter: [ :generatorOrRefactoring | generatorOrRefactoring isCustomCodeGenerator ];
-        navigationState: self navigationState;
-        resources: resources;
         buildMenu.
 
     "Created: / 26-08-2014 / 10:21:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 28-12-2014 / 10:10:35 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+    "Modified: / 29-12-2014 / 00:06:42 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
 !Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
 
-classMenuExtensionCustomRefactorings:aMenu 
+classMenuExtensionCustomRefactorings: aMenu 
     <menuextension: #classMenu>
 
-    | item  index  perspective  context |
-
-    item := MenuItem label:(resources string:'Refactor - Custom').
-    perspective := CustomPerspective classPerspective.
-    context := CustomBrowserContext 
-                    perspective:perspective
-                    state:self navigationState.
-    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context filter: [:each | each isCustomRefactoring ] ].
-    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Generate' ].
-    index ~~ 0 ifTrue:[
-        aMenu addItem:item beforeIndex:index + 1.
-    ] ifFalse:[
-        aMenu addItem:item.
-    ].
+    self customMenuBuilder
+        perspective: CustomPerspective classPerspective;
+        menu: aMenu;
+        submenuLabel: 'Refactor - Custom';
+        afterMenuItemLabeled: 'Generate';
+        generatorOrRefactoringFilter: [ :generatorOrRefactoring | generatorOrRefactoring isCustomRefactoring ];
+        buildMenu.
 
     "Created: / 08-11-2014 / 21:24:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+    "Modified: / 29-12-2014 / 09:12:08 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
 !Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
@@ -915,23 +907,29 @@
 codeViewMenuExtensionCustomRefactorings:aMenu 
     <menuextension: #codeViewMenu>
 
-    | item  index  perspective  context |
-
-    item := MenuItem label:(resources string:'Refactor - Custom').
-    perspective := CustomPerspective codeViewPerspective.
-    context := CustomBrowserContext 
-                    perspective:perspective
-                    state:self navigationState.
-    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context filter: [:each | each isCustomRefactoring ] ].
-    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Refactor' ].
-    index ~~ 0 ifTrue:[
-        aMenu addItem:item beforeIndex:index + 1.
-    ] ifFalse:[
-        aMenu addItem:item.
-    ].
+    self customMenuBuilder
+        perspective: CustomPerspective codeViewPerspective;
+        menu: aMenu;
+        submenuLabel: 'Refactor - Custom';
+        afterMenuItemLabeled: 'Refactor';
+        generatorOrRefactoringFilter: [ :generatorOrRefactoring | generatorOrRefactoring isCustomRefactoring ];
+        buildMenu.
 
     "Created: / 26-08-2014 / 22:44:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 15-10-2014 / 09:47:00 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+    "Modified: / 29-12-2014 / 09:14:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+! !
+
+!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
+
+customMenuBuilder
+    "Returns initialized instance of CustomMenuBuilder"
+
+    ^ CustomMenuBuilder new
+        navigationState: self navigationState;
+        resources: resources;
+        yourself
+
+    "Created: / 29-12-2014 / 00:04:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
 !Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
@@ -939,23 +937,17 @@
 selectorMenuExtensionCustomGenerators:aMenu 
     <menuextension: #selectorMenuCompareGenerateDebugSlice>
 
-    | item  index  perspective  context |
-
-    item := MenuItem label:(resources string:'Generate - Custom').
-    perspective := CustomPerspective methodPerspective.
-    context := CustomBrowserContext 
-                    perspective:perspective
-                    state:self navigationState.
-    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context filter: [:each | each isCustomCodeGenerator ] ].
-    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Generate' ].
-    index ~~ 0 ifTrue:[
-        aMenu addItem:item beforeIndex:index + 1.
-    ] ifFalse:[
-        aMenu addItem:item.
-    ].
+    self customMenuBuilder
+        perspective: CustomPerspective methodPerspective;
+        menu: aMenu;
+        submenuLabel: 'Generate - Custom';
+        afterMenuItemLabeled: 'Generate';
+        generatorOrRefactoringFilter: [ :generatorOrRefactoring | generatorOrRefactoring isCustomCodeGenerator ];
+        buildMenu.
 
     "Created: / 26-08-2014 / 10:18:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 05-09-2014 / 11:28:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 29-12-2014 / 09:23:27 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
 !Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
@@ -963,23 +955,17 @@
 selectorMenuExtensionCustomRefactorings:aMenu 
     <menuextension: #selectorMenuCompareGenerateDebugSlice>
 
-    | item  index  perspective  context |
-
-    item := MenuItem label:(resources string:'Refactor - Custom').
-    perspective := CustomPerspective methodPerspective.
-    context := CustomBrowserContext 
-                    perspective:perspective
-                    state:self navigationState.
-    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context filter: [:each | each isCustomRefactoring ] ].
-    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Refactor' ].
-    index ~~ 0 ifTrue:[
-        aMenu addItem:item beforeIndex:index + 1.
-    ] ifFalse:[
-        aMenu addItem:item.
-    ].
+    self customMenuBuilder
+        perspective: CustomPerspective methodPerspective;
+        menu: aMenu;
+        submenuLabel: 'Refactor - Custom';
+        afterMenuItemLabeled: 'Refactor';
+        generatorOrRefactoringFilter: [ :generatorOrRefactoring | generatorOrRefactoring isCustomRefactoring ];
+        buildMenu.
 
     "Created: / 24-08-2014 / 15:23:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
     "Modified: / 05-09-2014 / 11:28:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 29-12-2014 / 09:28:14 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
 !Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
@@ -987,23 +973,15 @@
 variablesMenuExtensionCustomGenerators:aMenu 
     <menuextension: #variablesMenu>
 
-    | item  index  perspective  context |
-
-    item := MenuItem label:(resources string:'Generate - Custom').
-    perspective := CustomPerspective instanceVariablePerspective.
-    context := CustomBrowserContext 
-                    perspective:perspective
-                    state:self navigationState.
-    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context filter:[true]   ].
-    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Generate' ].
-    index ~~ 0 ifTrue:[
-        aMenu addItem:item beforeIndex:index + 1.
-    ] ifFalse:[
-        aMenu addItem:item.
-    ].
+    self customMenuBuilder
+        perspective: CustomPerspective instanceVariablePerspective;
+        menu: aMenu;
+        submenuLabel: 'Generate - Custom';
+        afterMenuItemLabeled: 'Generate';
+        buildMenu.
 
     "Created: / 26-08-2014 / 10:21:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 28-12-2014 / 10:59:52 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+    "Modified: / 29-12-2014 / 09:31:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
 !jn_refactoring_custom class methodsFor:'documentation'!