diff --git a/src/Calypso-NavigationModel/ClyConstantQuery.class.st b/src/Calypso-NavigationModel/ClyConstantQuery.class.st index 210df1a7c36..9b270e84f9b 100644 --- a/src/Calypso-NavigationModel/ClyConstantQuery.class.st +++ b/src/Calypso-NavigationModel/ClyConstantQuery.class.st @@ -70,7 +70,7 @@ ClyConstantQuery >> buildResult: aQueryResult [ { #category : #execution } ClyConstantQuery >> checkEmptyResult [ - ^resultItems notEmpty + ^resultItems isEmpty ] { #category : #execution } diff --git a/src/Calypso-SystemTools-Core/ClyBrowserMorph.extension.st b/src/Calypso-SystemTools-Core/ClyBrowserMorph.extension.st index be159de8c3d..dba885e4fa6 100644 --- a/src/Calypso-SystemTools-Core/ClyBrowserMorph.extension.st +++ b/src/Calypso-SystemTools-Core/ClyBrowserMorph.extension.st @@ -64,24 +64,6 @@ ClyBrowserMorph >> confirmUnusedClasses: classes [ ^noUsers ] -{ #category : #'*Calypso-SystemTools-Core' } -ClyBrowserMorph >> confirmUnusedClassesExceptInheritance: classes [ - - | refQuery noUsers answer users | - - refQuery := ClyClassReferencesQuery toAny: classes from: self systemScope. - "we need to exclude both the class and instance side of the class" - noUsers := self confirmEmptySystemQuery: refQuery excluding: (classes flatCollect: [ :each | { each . each classSide } ]). - - users := (classes flatCollect: [:each | each users]) copyWithoutAll: classes. - users ifNotEmpty: [ - noUsers := false. - answer := UIManager default confirm: 'There are users of trait. Show them?'. - answer ifTrue: [ self spawnQueryBrowserOn: (ClyConstantQuery returning: users) ]]. - - ^noUsers -] - { #category : #'*Calypso-SystemTools-Core' } ClyBrowserMorph >> confirmUnusedVariables: variables [ diff --git a/src/Calypso-SystemTools-Core/ClySystemBrowserContext.class.st b/src/Calypso-SystemTools-Core/ClySystemBrowserContext.class.st index 48f79be49bd..6629b36242f 100644 --- a/src/Calypso-SystemTools-Core/ClySystemBrowserContext.class.st +++ b/src/Calypso-SystemTools-Core/ClySystemBrowserContext.class.st @@ -53,11 +53,6 @@ ClySystemBrowserContext >> confirmUnusedClasses: variables [ ^tool confirmUnusedClasses: variables ] -{ #category : #'user requests' } -ClySystemBrowserContext >> confirmUnusedClassesExceptInheritance: variables [ - ^tool confirmUnusedClassesExceptInheritance: variables -] - { #category : #'user requests' } ClySystemBrowserContext >> confirmUnusedVariables: variables [ ^tool confirmUnusedVariables: variables diff --git a/src/SystemCommands-ClassCommands/SycRemoveClassCommand.class.st b/src/SystemCommands-ClassCommands/SycRemoveClassCommand.class.st index 56dded54779..d5dafff4867 100644 --- a/src/SystemCommands-ClassCommands/SycRemoveClassCommand.class.st +++ b/src/SystemCommands-ClassCommands/SycRemoveClassCommand.class.st @@ -13,7 +13,13 @@ Class { { #category : #execution } SycRemoveClassCommand >> asRefactorings [ - ^{RBRemoveClassRefactoring classNames: (classes collect: [:each | each name])} + ^self asRefactoringsOfClass: RBRemoveClassRefactoring +] + +{ #category : #execution } +SycRemoveClassCommand >> asRefactoringsOfClass: aClass [ + + ^{aClass classNames: (classes collect: [:each | each name])} ] { #category : #execution } @@ -45,6 +51,12 @@ SycRemoveClassCommand >> execute [ removeStrategy execute: self. ] +{ #category : #execution } +SycRemoveClassCommand >> executeRefactoringsAs: aClass [ + + (self asRefactoringsOfClass: aClass) do: [ :each | each execute ] +] + { #category : #testing } SycRemoveClassCommand >> isComplexRefactoring [ ^removeStrategy isComplexRefactoring diff --git a/src/SystemCommands-ClassCommands/SycRemoveClassKeepingSubclassesCommand.class.st b/src/SystemCommands-ClassCommands/SycRemoveClassKeepingSubclassesCommand.class.st deleted file mode 100644 index f7f951f15ae..00000000000 --- a/src/SystemCommands-ClassCommands/SycRemoveClassKeepingSubclassesCommand.class.st +++ /dev/null @@ -1,70 +0,0 @@ -Class { - #name : #SycRemoveClassKeepingSubclassesCommand, - #superclass : #SycClassCommand, - #category : #'SystemCommands-ClassCommands' -} - -{ #category : #activation } -SycRemoveClassKeepingSubclassesCommand class >> fullBrowserMenuActivation [ - - - ^CmdContextMenuActivation byRootGroupItemOrder: 10001 for: ClyFullBrowserClassContext -] - -{ #category : #activation } -SycRemoveClassKeepingSubclassesCommand class >> fullBrowserShortcutActivation [ - - - ^CmdShortcutActivation removalFor: ClyFullBrowserClassContext -] - -{ #category : #converting } -SycRemoveClassKeepingSubclassesCommand >> asRefactorings [ - - ^{RBRemoveClassKeepingSubclassesRefactoring classNames: (classes collect: [:each | each name])} -] - -{ #category : #converting } -SycRemoveClassKeepingSubclassesCommand >> confirmRefactoringInContext: aToolContext by: aCommandActivator [ - "All refactoring errors here are related to existance of removed class users. - All these cases are handled on the level of #confirmUnusedClasses - and here we need to ignore RB signals. - Notice that existing logic of RB engine for class removal - does not allow correctly handle class users like show them in browser - because there is no information about kind of users in #openBrowser option" - - [super confirmRefactoringInContext: aToolContext by: aCommandActivator ] - on: RBRefactoringError do: [ :err | err resume: true ] -] - -{ #category : #converting } -SycRemoveClassKeepingSubclassesCommand >> defaultMenuIconName [ - ^#removeIcon -] - -{ #category : #converting } -SycRemoveClassKeepingSubclassesCommand >> defaultMenuItemName [ - ^'Remove keeping subclasses' -] - -{ #category : #converting } -SycRemoveClassKeepingSubclassesCommand >> execute [ - - self executeRefactorings -] - -{ #category : #converting } -SycRemoveClassKeepingSubclassesCommand >> isComplexRefactoring [ - ^true -] - -{ #category : #converting } -SycRemoveClassKeepingSubclassesCommand >> prepareFullExecutionInContext: aToolContext [ - | noUsers answer | - super prepareFullExecutionInContext: aToolContext. - - noUsers := aToolContext confirmUnusedClassesExceptInheritance: classes. - noUsers ifFalse: [ - answer := UIManager default confirm: 'Do you want to remove anyway?'. - answer ifFalse: [ CmdCommandAborted signal ]] -] diff --git a/src/SystemCommands-ClassCommands/SycRemoveKeepingSubclassesClassStrategy.class.st b/src/SystemCommands-ClassCommands/SycRemoveKeepingSubclassesClassStrategy.class.st index cdd189642fc..509d8f18b07 100644 --- a/src/SystemCommands-ClassCommands/SycRemoveKeepingSubclassesClassStrategy.class.st +++ b/src/SystemCommands-ClassCommands/SycRemoveKeepingSubclassesClassStrategy.class.st @@ -12,9 +12,7 @@ SycRemoveKeepingSubclassesClassStrategy class >> canExecuteWithReferences: hasRe { #category : #execution } SycRemoveKeepingSubclassesClassStrategy >> execute: aSycRemoveClassCommand [ - (SycRemoveClassKeepingSubclassesCommand new) - classes: aSycRemoveClassCommand class; - executeRefactorings + aSycRemoveClassCommand executeRefactoringsAs: RBRemoveClassKeepingSubclassesRefactoring ] { #category : #testing }