Skip to content

Commit eb7f36a

Browse files
committed
working on enablement in lists
1 parent 9249c2f commit eb7f36a

File tree

2 files changed

+109
-114
lines changed

2 files changed

+109
-114
lines changed

src/Toplo-Examples/ToSandBox.class.st

Lines changed: 97 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -10049,129 +10049,112 @@ ToSandBox class >> listDashBoardFor: aBar [
1004910049
ToSandBox class >> listMenuFactory [
1005010050

1005110051
^ [ :menu :request |
10052-
| selectionModel indexes target |
10053-
target := request currentTarget.
10054-
selectionModel := request selectionModel.
10055-
indexes := request selectedIndexes.
10056-
menu addItem: (ToMenuItem new
10057-
labelText: 'Add initial Items';
10058-
clickAction: [
10059-
target dataAccessor addAll:
10060-
(String loremIpsum: 20000) substrings ];
10061-
yourself).
10062-
menu addItem: (ToMenuItem new
10063-
labelText: 'Inspect list';
10064-
clickAction: [ target inspect ];
10065-
yourself).
10066-
menu addItem: (ToMenuItem new
10067-
labelText: 'Statistics window';
10068-
clickAction: [ target space showStatisticsWindow ];
10069-
yourself).
10070-
target dataAccessor ifNotEmpty: [
10052+
| selectionModel indexes target |
10053+
target := request currentTarget.
10054+
selectionModel := request selectionModel.
10055+
indexes := request selectedIndexes.
1007110056
menu addItem: (ToMenuItem new
10072-
labelText: 'Select all';
10073-
clickAction: [ target selecter selectAll ];
10057+
labelText: 'Add initial Items';
10058+
clickAction: [ target dataAccessor addAll: (String loremIpsum: 20000) substrings ];
1007410059
yourself).
1007510060
menu addItem: (ToMenuItem new
10076-
labelText: 'Remove all';
10077-
clickAction: [ target dataAccessor removeAll ];
10061+
labelText: 'Inspect list';
10062+
clickAction: [ target inspect ];
1007810063
yourself).
1007910064
menu addItem: (ToMenuItem new
10080-
labelText: 'Show all';
10081-
clickAction: [ target hiddenSelecter deselectAll ];
10065+
labelText: 'Statistics window';
10066+
clickAction: [ target space showStatisticsWindow ];
1008210067
yourself).
10083-
target selectionOption isAnimated
10084-
ifTrue: [
10068+
target dataAccessor ifNotEmpty: [
1008510069
menu addItem: (ToMenuItem new
10086-
labelText: 'stop selection transition animation';
10087-
clickAction: [
10088-
target selectionOption
10089-
animationDuration: 0 milliSeconds ];
10090-
yourself) ]
10091-
ifFalse: [
10070+
labelText: 'Select all';
10071+
clickAction: [ target selecter selectAll ];
10072+
yourself).
10073+
menu addItem: (ToMenuItem new
10074+
labelText: 'Remove all';
10075+
clickAction: [ target dataAccessor removeAll ];
10076+
yourself).
1009210077
menu addItem: (ToMenuItem new
10093-
labelText: 'start selection transition animation';
10078+
labelText: 'Show all';
10079+
clickAction: [ target hiddenSelecter deselectAll ];
10080+
yourself).
10081+
target selectionOption isAnimated
10082+
ifTrue: [
10083+
menu addItem: (ToMenuItem new
10084+
labelText: 'stop selection transition animation';
10085+
clickAction: [ target selectionOption animationDuration: 0 milliSeconds ];
10086+
yourself) ]
10087+
ifFalse: [
10088+
menu addItem: (ToMenuItem new
10089+
labelText: 'start selection transition animation';
10090+
clickAction: [ target selectionOption animationDuration: 200 milliSeconds ];
10091+
yourself) ] ].
10092+
indexes ifNotEmpty: [
10093+
| selectionMenu |
10094+
selectionMenu := ToMenu new.
10095+
selectionMenu label: (ToLabel new text: 'Selection').
10096+
indexes size = 1 ifTrue: [
10097+
| container idx label |
10098+
idx := indexes first.
10099+
container := target nodeContainerAt: idx.
10100+
label := container childWithId: #nodeLabel.
10101+
selectionMenu addItem: (ToMenuItem new
10102+
labelText: 'Inspect node';
10103+
clickAction: [ container inspect ];
10104+
yourself).
10105+
selectionMenu addItem: (ToMenuItem new
10106+
labelText: 'Edit';
10107+
clickAction: [ label popupEditorEvent: nil ];
10108+
yourself).
10109+
selectionMenu addItem: (ToMenuItem new
10110+
labelText: (label isMonoLine
10111+
ifTrue: [ 'Be multiline' ]
10112+
ifFalse: [ 'Be monoline' ]);
10113+
clickAction: [ container firstChild label monoLine: label isMonoLine not ];
10114+
yourself).
10115+
selectionMenu addItem: (ToMenuItem new
10116+
labelText: 'Inspect';
10117+
clickAction: [ container inspect ];
10118+
yourself).
10119+
selectionMenu addSeparator ].
10120+
10121+
selectionMenu addItem: (ToMenuItem new
10122+
labelText: 'Enable/Disable';
1009410123
clickAction: [
10095-
target selectionOption
10096-
animationDuration: 200 milliSeconds ];
10097-
yourself) ] ].
10098-
indexes ifNotEmpty: [
10099-
| selectionMenu |
10100-
selectionMenu := ToMenu new.
10101-
selectionMenu label: (ToLabel new text: 'Selection').
10102-
indexes size = 1 ifTrue: [
10103-
| container idx label |
10104-
idx := indexes first.
10105-
container := target nodeContainerAt: idx.
10106-
label := container childWithId: #nodeLabel.
10107-
selectionMenu addItem: (ToMenuItem new
10108-
labelText: 'Inspect node';
10109-
clickAction: [ container inspect ];
10110-
yourself).
10111-
selectionMenu addItem: (ToMenuItem new
10112-
labelText: 'Edit';
10113-
clickAction: [ label popupEditorEvent: nil ];
10114-
yourself).
10115-
selectionMenu addItem: (ToMenuItem new
10116-
labelText: (label isMonoLine
10117-
ifTrue: [ 'Be multiline' ]
10118-
ifFalse: [ 'Be monoline' ]);
10119-
clickAction: [
10120-
container firstChild label monoLine: label isMonoLine not ];
10121-
yourself).
10122-
selectionMenu addItem: (ToMenuItem new
10123-
labelText: 'Inspect';
10124-
clickAction: [ container inspect ];
10125-
yourself).
10126-
selectionMenu addSeparator ].
10127-
10128-
selectionMenu addItem: (ToMenuItem new
10129-
labelText: 'Enable/Disable';
10130-
clickAction: [
10131-
indexes do: [ :idx |
10132-
| di |
10133-
di := (target nodeContainerAt: idx) node isDisabled.
10134-
(target nodeContainerAt: idx) node disabled: di not ] ];
10135-
yourself).
10136-
selectionMenu addItem: (ToMenuItem new
10137-
labelText: 'Set unselectable';
10138-
clickAction: [
10139-
indexes do: [ :idx |
10140-
target unselectableSelecter selectIndex: idx ] ];
10141-
yourself).
10142-
selectionMenu addItem: (ToMenuItem new
10143-
labelText: 'Hide';
10144-
clickAction: [
10145-
indexes do: [ :idx | target hiddenSelecter selectIndex: idx ] ];
10146-
yourself).
10147-
selectionMenu addItem: (ToMenuItem new
10148-
labelText: 'Insert before';
10149-
clickAction: [
10150-
| idx |
10151-
idx := indexes first.
10152-
target dataAccessor
10153-
add:
10154-
String loremIpsum substrings first , ' (inserted before)'
10155-
beforeIndex: idx ];
10156-
yourself).
10157-
selectionMenu addItem: (ToMenuItem new
10158-
labelText: 'Insert after';
10159-
clickAction: [
10160-
| idx |
10161-
idx := indexes last.
10162-
target dataAccessor
10163-
add: String loremIpsum substrings first , ' (inserted after)'
10164-
afterIndex: idx ];
10165-
yourself).
10166-
selectionMenu addSeparator.
10167-
selectionMenu addItem: (ToMenuItem new
10168-
labelText: 'Remove';
10169-
clickAction: [
10170-
indexes sort reverseDo: [ :idx |
10171-
target dataAccessor removeAt: idx ] ];
10172-
yourself).
10173-
menu addSeparator.
10174-
menu addItem: selectionMenu ] ]
10124+
indexes do: [ :idx |
10125+
(target isEnabledAtPosition: idx)
10126+
ifTrue: [ target disabledAtPosition: idx ]
10127+
ifFalse: [ target enabledAtPosition: idx ] ] ];
10128+
yourself).
10129+
selectionMenu addItem: (ToMenuItem new
10130+
labelText: 'Set unselectable';
10131+
clickAction: [ indexes do: [ :idx | target unselectableSelecter selectIndex: idx ] ];
10132+
yourself).
10133+
selectionMenu addItem: (ToMenuItem new
10134+
labelText: 'Hide';
10135+
clickAction: [ indexes do: [ :idx | target hiddenSelecter selectIndex: idx ] ];
10136+
yourself).
10137+
selectionMenu addItem: (ToMenuItem new
10138+
labelText: 'Insert before';
10139+
clickAction: [
10140+
| idx |
10141+
idx := indexes first.
10142+
target dataAccessor add: String loremIpsum substrings first , ' (inserted before)' beforeIndex: idx ];
10143+
yourself).
10144+
selectionMenu addItem: (ToMenuItem new
10145+
labelText: 'Insert after';
10146+
clickAction: [
10147+
| idx |
10148+
idx := indexes last.
10149+
target dataAccessor add: String loremIpsum substrings first , ' (inserted after)' afterIndex: idx ];
10150+
yourself).
10151+
selectionMenu addSeparator.
10152+
selectionMenu addItem: (ToMenuItem new
10153+
labelText: 'Remove';
10154+
clickAction: [ indexes sort reverseDo: [ :idx | target dataAccessor removeAt: idx ] ];
10155+
yourself).
10156+
menu addSeparator.
10157+
menu addItem: selectionMenu ] ]
1017510158
]
1017610159

1017710160
{ #category : #'finite list' }

src/Toplo-Widget-List/ToBasicListElement.class.st

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,18 @@ ToBasicListElement >> innerElementClass: anInnerElementClass [
390390
self requestLayout ]
391391
]
392392

393+
{ #category : #'accessing selecters' }
394+
ToBasicListElement >> isDisabledAtPosition: anInteger [
395+
396+
^ self disabledSelecter containsIndex: anInteger
397+
]
398+
399+
{ #category : #'accessing selecters' }
400+
ToBasicListElement >> isEnabledAtPosition: anInteger [
401+
402+
^ (self isDisabledAtPosition: anInteger) not
403+
]
404+
393405
{ #category : #'fake container' }
394406
ToBasicListElement >> isFakeNodeContainer: aNodeContainer [
395407

0 commit comments

Comments
 (0)