From b8320c59a44df9d649ba53fdaea5b68d5ece4d3b Mon Sep 17 00:00:00 2001 From: Carolina Hernandez Date: Sat, 21 Oct 2023 16:28:11 -0300 Subject: [PATCH] Can't delete full environment scope --- .../ScopeNodesPresenter.class.st | 2 +- .../ScopesPresenter.class.st | 14 +++++++++++--- .../RBBrowserEnvironmentWrapper.extension.st | 5 +++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/NewTools-Scopes-Browser/ScopeNodesPresenter.class.st b/src/NewTools-Scopes-Browser/ScopeNodesPresenter.class.st index f2dceffa4..ea62ab8dd 100644 --- a/src/NewTools-Scopes-Browser/ScopeNodesPresenter.class.st +++ b/src/NewTools-Scopes-Browser/ScopeNodesPresenter.class.st @@ -380,7 +380,7 @@ ScopeNodesPresenter >> scope: aRBEnvironment [ ScopeNodesPresenter >> validate [ checkedScopeNodes ifEmpty: [ - self inform: 'You must select at least one item'. + self inform: 'You must check at least one item'. ^ false ]. ^ true ] diff --git a/src/NewTools-Scopes-Browser/ScopesPresenter.class.st b/src/NewTools-Scopes-Browser/ScopesPresenter.class.st index 116bd7a60..fe7bddc35 100644 --- a/src/NewTools-Scopes-Browser/ScopesPresenter.class.st +++ b/src/NewTools-Scopes-Browser/ScopesPresenter.class.st @@ -139,14 +139,21 @@ ScopesPresenter >> browseSelectedItem [ { #category : 'menu commands' } ScopesPresenter >> deleteSelectedScope [ - | item | + | item selectedPath | + selectedPath := scopesTree selection selectedPath at: 1. + selectedPath == 1 ifTrue: [ + self inform: 'You can''t delete this scope'. + ^ self ]. item := scopesTree selectedItem. - (item isNil or: [item isScopeNode not]) ifTrue: [ + (item isNil or: [ item isScopeNode not ]) ifTrue: [ self inform: 'select a scope'. ^ self ]. model removeScope: item value. - self updateScopesTree + + self updateScopesTree. + + scopesTree selectPath: { (selectedPath - 1) } asArray ] { #category : 'menu commands' } @@ -382,6 +389,7 @@ ScopesPresenter >> toolbarButtons [ buttons add: (buttonDelete := self newToolbarButton icon: (self iconNamed: #glamorousTrash); help: 'Delete selected scope'; + action: [ self deleteSelectedScope ]; yourself). ^ buttons diff --git a/src/NewTools-Scopes/RBBrowserEnvironmentWrapper.extension.st b/src/NewTools-Scopes/RBBrowserEnvironmentWrapper.extension.st index 778acac34..52c1df068 100644 --- a/src/NewTools-Scopes/RBBrowserEnvironmentWrapper.extension.st +++ b/src/NewTools-Scopes/RBBrowserEnvironmentWrapper.extension.st @@ -1,5 +1,10 @@ Extension { #name : 'RBBrowserEnvironmentWrapper' } +{ #category : '*NewTools-Scopes' } +RBBrowserEnvironmentWrapper >> isNotEmpty [ + ^ self isEmpty not +] + { #category : '*NewTools-Scopes' } RBBrowserEnvironmentWrapper >> packagesDo: aBlock [ self packages do: [ :each | aBlock value: each ]