extensions.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sun, 26 Jan 2014 23:47:27 +0000
changeset 506 b611cc119554
child 534 f89b11cd6fa5
permissions -rw-r--r--
Added support for custom menu building and injecting into class browser's menus. Added CustomPerspective, an enum-like class describing a use's view `perspective` - class, instance variable, method, package etc. Added methods here and there to make to bring whole thing to life. Added CustomFooBarBazGenerator as an example.

"{ Package: 'jn:refactoring_custom' }"!

!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!

classMenuExtensionCustomRefactorings:aMenu 
    <menuextension: #classMenu>
    | item  index  perspective  context |

    item := MenuItem label:(resources string:'Generate - Custom').
    perspective := CustomPerspective classPerspective.
    context := CustomContext perspective:perspective
            state:self navigationState.
    item submenuChannel:[ CustomMenuBuilder buildMenuForContext:context ].
    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Generate' ].
    index ~~ 0 ifTrue:[
        aMenu addItem:item beforeIndex:index + 1.
    ] ifFalse:[
        aMenu addItem:item.
    ].

    "Created: / 26-01-2014 / 13:22:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 26-01-2014 / 23:36:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!jn_refactoring_custom class methodsFor:'documentation'!

extensionsVersion_HG

    ^ '$Changeset: <not expanded> $'
! !