--- a/HierarchicalFileList.st Thu Oct 17 09:05:40 2002 +0200
+++ b/HierarchicalFileList.st Thu Oct 17 13:19:47 2002 +0200
@@ -69,15 +69,20 @@
examples
"
+ open filebrowser without monitoring cycle
+
[exBegin]
- |top sel list|
+ |top sel list directory|
list := HierarchicalFileList new.
- list directory:(Filename homeDirectory).
- list directory:(Filename currentDirectory).
list showRoot:false.
list matchBlock:[:fn :isDir| true ].
+ directory := Filename currentDirectory.
+ directory := Filename homeDirectory.
+
+ list directory:(directory asAbsoluteFilename).
+
top := StandardSystemView new; extent:300@300.
sel := ScrollableView for:HierarchicalListView miniScroller:true
origin:0.0@0.0 corner:1.0@1.0 in:top.
@@ -90,6 +95,34 @@
top open.
[exEnd]
+
+
+ open filebrowser and monitore contents
+ [exBegin]
+ |top sel list directory|
+
+ list := HierarchicalFileList new.
+ list showRoot:false.
+ list matchBlock:[:fn :isDir| true ].
+
+ directory := Filename currentDirectory.
+ directory := Filename homeDirectory.
+
+ list directory:(directory asAbsoluteFilename).
+
+ top := StandardSystemView new; extent:300@300.
+ sel := ScrollableView for:HierarchicalListView miniScroller:true
+ origin:0.0@0.0 corner:1.0@1.0 in:top.
+
+ sel doubleClickAction:[:i| (list at:i) toggleExpand ].
+ sel indicatorAction:[:i| (list at:i) toggleExpand ].
+
+ sel hasConstantHeight:true.
+ sel list:list.
+ list monitoringTaskDelay:0.5.
+ top open.
+ [exEnd]
+
"
! !
@@ -176,12 +209,12 @@
"stop update-task
"
self criticalDo:[
- indicatorList ifNotNil:[
+ indicatorList notNil ifTrue:[
indicatorList do:[:el| el resetFetchIndicator ].
indicatorList removeAll.
]
].
- aRoot ifNotNil:[
+ aRoot notNil ifTrue:[
self showRoot ifFalse:[aRoot setExpanded:true ]
].
^ super root:aRoot
@@ -297,7 +330,7 @@
anItem isDirectory ifFalse:[^ #()].
contents := DirectoryContents directoryNamed:anItem fileName.
- contents ifNil:[ ^ #() ].
+ contents isNil ifTrue:[ ^ #() ].
list := OrderedCollection new.
matchBlock := self matchBlockFor:anItem.
@@ -332,12 +365,13 @@
iconFor:anItem
"returns the icon for an item
"
-
- (anItem isExpanded and:[anItem hasChildren]) ifTrue:[
- ^ FileBrowser iconForKeyMatching:#directoryOpen
- ].
- (anItem isRemoteDirectory) ifTrue:[
- ^ FileBrowser iconForKeyMatching:#directoryNetwork
+ anItem isDirectory ifTrue:[
+ (anItem isExpanded and:[anItem hasChildren]) ifTrue:[
+ ^ FileBrowser iconForKeyMatching:#directoryOpen
+ ].
+ (anItem isRemoteDirectory) ifTrue:[
+ ^ FileBrowser iconForKeyMatching:#directoryNetwork
+ ].
].
^ FileBrowser iconForFile:(anItem fileName)
!
@@ -402,7 +436,7 @@
"/ indicatorList addFirst:anItem.
indicatorList add:anItem.
- indicatorTask ifNil:[
+ indicatorTask isNil ifTrue:[
prio := Processor activePriority.
indicatorTask := [ self updateIndicatorCycle. ] forkAt:(prio - 1).
indicatorTask priorityRange:(prio-1 to:prio).
@@ -414,7 +448,7 @@
"stop the indicator validation for an item
"
self criticalDo:[
- indicatorList ifNotNil:[
+ indicatorList notNil ifTrue:[
indicatorList removeIdentical:anItem ifAbsent:nil.
anItem resetFetchIndicator.
]
@@ -448,13 +482,13 @@
item := indicatorTask := task := nil
]
].
- item ifNotNil:[
+ item notNil ifTrue:[
item fetchIndicator.
Processor yield.
].
]
] valueNowOrOnUnwindDo:[
- task ifNotNil:[
+ task notNil ifTrue:[
"/ oops, process terminated
self criticalDo:[
"/ test whether a new task already started
@@ -561,7 +595,7 @@
icon isNil ifTrue:[
model := self model.
- model ifNil:[^ nil].
+ model isNil ifTrue:[^ nil].
icon := model iconFor:self.
].
@@ -759,13 +793,13 @@
"
|model|
- children ifNotNil:[ ^ children ].
+ children notNil ifTrue:[ ^ children ].
model := self model.
- model ifNil:[ ^ nil ].
+ model isNil ifTrue:[ ^ nil ].
model criticalDo:[
- children ifNil:[ self readChildren ].
+ children isNil ifTrue:[ self readChildren ].
].
^ children
!
@@ -773,7 +807,7 @@
flushChildren
"flush the children because node not visible ....
"
- children ifNotNil:[
+ children notNil ifTrue:[
"keep hasChildren information
"
children size ~~ 0 ifTrue:[ fetchOperation := #hasChildren ]
@@ -789,7 +823,7 @@
model := self model.
- model ifNil:[
+ model isNil ifTrue:[
"/ must reread later
fetchOperation := modificationTime := children := nil.
^ nil
@@ -871,7 +905,7 @@
"fetch the indicator value which indicates whether children exists or not
called by the list
"
- children ifNotNil:[
+ children notNil ifTrue:[
"/ children already read
fetchOperation := nil.
^ self
@@ -914,7 +948,7 @@
^ children size ~~ 0
].
- fetchOperation ifNotNil:[
+ fetchOperation notNil ifTrue:[
^ fetchOperation == #hasChildren
].
@@ -982,12 +1016,12 @@
|unusedDict addedItems mergedList size modifyTime model timeChanged|
modifyTime := self fileName modificationTime.
- modifyTime ifNil:[^ self].
+ modifyTime isNil ifTrue:[^ self].
timeChanged := (modificationTime isNil or:[modifyTime > modificationTime]).
modificationTime := modifyTime.
- children ifNotNil:[
+ children notNil ifTrue:[
timeChanged ifFalse:[
^ self
].
@@ -1001,7 +1035,7 @@
^ self
].
model := self model.
- children ifNil:[ children := #() ]. "/ disable update during merge
+ children isNil ifTrue:[ children := #() ]. "/ disable update during merge
fetchOperation := nil.
@@ -1075,5 +1109,5 @@
!HierarchicalFileList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalFileList.st,v 1.35 2002-10-15 16:40:38 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalFileList.st,v 1.36 2002-10-17 11:19:47 ca Exp $'
! !