diff --git a/src/Calypso-SystemQueries/ClyClassSideScope.class.st b/src/Calypso-SystemQueries/ClyClassSideScope.class.st index 3e749e82b10..6813a59c67f 100644 --- a/src/Calypso-SystemQueries/ClyClassSideScope.class.st +++ b/src/Calypso-SystemQueries/ClyClassSideScope.class.st @@ -14,11 +14,22 @@ ClyClassSideScope class >> defaultName [ ^'class side' ] +{ #category : 'testing' } +ClyClassSideScope class >> isInstanceSide [ + + ^ false +] + { #category : 'class selection' } ClyClassSideScope class >> metaLevelOf: aClass [ ^aClass classSide ] +{ #category : 'testing' } +ClyClassSideScope >> isInstanceSide [ + ^ self class isInstanceSide +] + { #category : 'queries' } ClyClassSideScope >> methodsDo: aBlock [ diff --git a/src/Calypso-SystemQueries/ClyInstanceSideScope.class.st b/src/Calypso-SystemQueries/ClyInstanceSideScope.class.st index 991f5846ff7..468aad0c325 100644 --- a/src/Calypso-SystemQueries/ClyInstanceSideScope.class.st +++ b/src/Calypso-SystemQueries/ClyInstanceSideScope.class.st @@ -14,7 +14,18 @@ ClyInstanceSideScope class >> defaultName [ ^'inst. side' ] +{ #category : 'testing' } +ClyInstanceSideScope class >> isInstanceSide [ + + ^ true +] + { #category : 'class selection' } ClyInstanceSideScope class >> metaLevelOf: aClass [ ^aClass instanceSide ] + +{ #category : 'testing' } +ClyInstanceSideScope >> isInstanceSide [ + ^ self class isInstanceSide +] diff --git a/src/Calypso-SystemTools-Core/ClyClassDefinitionContext.class.st b/src/Calypso-SystemTools-Core/ClyClassDefinitionContext.class.st index 5b1c3e65ed2..b7c47e9831d 100644 --- a/src/Calypso-SystemTools-Core/ClyClassDefinitionContext.class.st +++ b/src/Calypso-SystemTools-Core/ClyClassDefinitionContext.class.st @@ -5,3 +5,9 @@ Class { #package : 'Calypso-SystemTools-Core', #tag : 'Editors-Classes' } + +{ #category : 'testing' } +ClyClassDefinitionContext >> isInstanceSide [ + + ^ selectedSourceNode parent class = CDClassDefinitionNode +] diff --git a/src/Refactoring-UI/ReGenerateAccessorsDriver.class.st b/src/Refactoring-UI/ReGenerateAccessorsDriver.class.st index 49d23279261..15665706602 100644 --- a/src/Refactoring-UI/ReGenerateAccessorsDriver.class.st +++ b/src/Refactoring-UI/ReGenerateAccessorsDriver.class.st @@ -7,6 +7,9 @@ It uses the `RBGenerateEqualHashTransformation`. Class { #name : 'ReGenerateAccessorsDriver', #superclass : 'ReGenerateMethodDriver', + #instVars : [ + 'scopeInstanceSide' + ], #category : 'Refactoring-UI-Drivers', #package : 'Refactoring-UI', #tag : 'Drivers' @@ -20,15 +23,19 @@ ReGenerateAccessorsDriver class >> refactoringClass [ { #category : 'configuration' } ReGenerateAccessorsDriver >> configureRefactoring [ - + refactoring := ReUpFrontPreconditionCheckingCompositeRefactoring new - model: model; - refactorings: (selectedVariables collect: [:each | - self refactoringClass - model: model - instanceVariable: each - class: self targetClass name ]); - yourself. + model: model; + refactorings: (selectedVariables collect: [ :eachSlot | self refactoringForSlot: eachSlot ]); + yourself +] + +{ #category : 'initialization' } +ReGenerateAccessorsDriver >> refactoringForSlot: aSlot [ + + ^ scopeInstanceSide + ifFalse: [ self refactoringClass model: model classVariable: aSlot class: self targetClass name ] + ifTrue: [ self refactoringClass model: model instanceVariable: aSlot class: self targetClass name ] ] { #category : 'configuration' } @@ -38,6 +45,12 @@ ReGenerateAccessorsDriver >> runRefactoring [ self applyChanges ] +{ #category : 'accessing' } +ReGenerateAccessorsDriver >> scopeInstanceSide: aBoolean [ + + scopeInstanceSide := aBoolean +] + { #category : 'configuration' } ReGenerateAccessorsDriver >> selectedVariables: aCollection [ diff --git a/src/SystemCommands-VariableCommands/SycGenerateVariableAccessorCommand.class.st b/src/SystemCommands-VariableCommands/SycGenerateVariableAccessorCommand.class.st index 217cdb86ed5..ade6c944b65 100644 --- a/src/SystemCommands-VariableCommands/SycGenerateVariableAccessorCommand.class.st +++ b/src/SystemCommands-VariableCommands/SycGenerateVariableAccessorCommand.class.st @@ -22,13 +22,14 @@ SycGenerateVariableAccessorCommand >> defaultMenuItemName [ { #category : 'execution' } SycGenerateVariableAccessorCommand >> execute [ - - (ReGenerateAccessorsDriver new - targetClass: variables first definingClass; - scopes: toolContext refactoringScopes; - selectedVariables: (variables collect: [:each | each name ]) ) runRefactoring - + (ReGenerateAccessorsDriver new + targetClass: variables first definingClass; + scopes: toolContext refactoringScopes; + scopeInstanceSide: ((toolContext respondsTo: #metaLevelScope) + ifTrue: [ toolContext metaLevelScope isInstanceSide ] + ifFalse: [ toolContext isInstanceSide ]); + selectedVariables: (variables collect: [ :each | each name ])) runRefactoring ] { #category : 'factory method' }