return whole source code when selected interval is empty
retrieve selector from method when none selector is specified
"{ Package: 'jn:refactoring_custom' }"
CustomContext subclass:#CustomBrowserContext
instanceVariableNames:'perspective state'
classVariableNames:''
poolDictionaries:''
category:'Interface-Refactoring-Custom'
!
!CustomBrowserContext class methodsFor:'instance creation'!
perspective: perspective state: state
^ self new perspective: perspective state: state
"Created: / 26-01-2014 / 11:00:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CustomBrowserContext methodsFor:'accessing'!
perspective
^ perspective
!
perspective:perspectiveArg state:stateArg
perspective := perspectiveArg.
state := stateArg.
"Created: / 26-01-2014 / 11:00:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CustomBrowserContext methodsFor:'accessing-selection'!
selectedClassCategories
^ state selectedCategories value
"Modified: / 05-08-2014 / 21:35:11 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
selectedClasses
"Returns a set of classes currently selected in
the browser"
^ state selectedClasses value
"Created: / 26-01-2014 / 22:06:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 26-01-2014 / 23:39:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
selectedCodes
| codeSelection currentMethod codeView |
currentMethod := state theSingleSelectedMethod.
codeView := state codeView.
(codeView isNil or: [ currentMethod isNil ]) ifTrue: [
^ nil
].
codeSelection := CustomSourceCodeSelection new.
codeSelection
selectedInterval: codeView selectedInterval;
currentSourceCode: codeView contentsAsString;
selectedMethod: currentMethod;
selectedClass: currentMethod mclass;
selectedSelector: currentMethod selector.
^ Array with: codeSelection
"Created: / 18-08-2014 / 21:34:56 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
"Modified: / 18-08-2014 / 23:51:57 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
selectedMethodProtocols
^ state selectedProtocols value
"Modified: / 05-08-2014 / 21:34:18 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
selectedMethods
^ state selectedMethods value
"Modified: / 05-08-2014 / 21:31:21 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
selectedPackages
^ state packageFilter value
"Modified: / 05-08-2014 / 21:38:14 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
!
selectedVariables
^ state variableFilter value
"Modified: / 17-05-2014 / 13:29:57 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
! !
!CustomBrowserContext methodsFor:'enumerating'!
codeGeneratorsAndRefactoringDo:aBlock
"Evaluate a block on each generator and refactoring class available in my
perspective.
NOTE: the block gets class, not an instance of generator/refactoring"
CustomManager current generatorsAndRefactoringsForPerspective:perspective
do:aBlock
"Created: / 26-01-2014 / 13:39:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CustomBrowserContext methodsFor:'testing'!
isInteractiveContext
"Return true, if this generator/refactoring context is interactive,
i.e., if it may interact with user (like asking for class name or
similar) or not.
Generally speaking, only top-level context is interactive an only
if generator/refactoring was triggerred from menu.
"
^ true
"Created: / 16-09-2014 / 09:23:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CustomBrowserContext class methodsFor:'documentation'!
version_HG
^ '$Changeset: <not expanded> $'
! !