HierarchicalFileList.st
changeset 2180 d01612ed451e
parent 2140 7dfe3b338437
child 2223 c34e7fd25e53
--- a/HierarchicalFileList.st	Wed Sep 11 14:54:23 2002 +0200
+++ b/HierarchicalFileList.st	Wed Sep 11 14:54:54 2002 +0200
@@ -14,7 +14,7 @@
 "{ Package: 'stx:libwidg2' }"
 
 HierarchicalList subclass:#HierarchicalFileList
-	instanceVariableNames:'icons matchBlock showCursor'
+	instanceVariableNames:'matchBlock showCursor'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Views-Support'
@@ -53,10 +53,9 @@
 
 !HierarchicalFileList class methodsFor:'examples'!
 
-test
+examples
 "
-self test
-"
+                                                                    [exBegin]
     |top sel list|
 
     list := HierarchicalFileList new.
@@ -75,16 +74,8 @@
     sel   indicatorAction:[:i| (list at:i) toggleExpand ].
 
     top open.
-! !
-
-!HierarchicalFileList class methodsFor:'resources'!
-
-icons
-    ^ FileBrowser icons.
-
-
-
-
+                                                                    [exEnd]
+"
 ! !
 
 !HierarchicalFileList methodsFor:'accessing'!
@@ -222,52 +213,11 @@
 iconFor:anItem
     "returns the icon for an item
     "
-    |fn key suff mimeType icn|
 
-    fn := anItem fileName.
-    icons isNil ifTrue:[ icons := self class icons ].
-
-    fn isDirectory ifTrue:[
-        icn := (anItem isExpanded and:[anItem hasChildren]) ifTrue:[icons at:#directoryOpen ifAbsent:nil].
-        icn notNil ifTrue:[^ icn].
-
-        (fn isReadable and:[fn isExecutable]) ifTrue:[
-            key := fn isSymbolicLink ifTrue:[#directoryLink]
-                                    ifFalse:[#directory]
-        ] ifFalse:[
-            key := #directoryLocked
-        ].
-        ^ icons at:key ifAbsent:nil
+    (anItem isExpanded and:[anItem hasChildren]) ifTrue:[
+        ^ FileBrowser iconForKeyMatching:#directoryOpen
     ].
-
-    fn isReadable     ifFalse:[ ^ icons at:#fileLocked ifAbsent:nil ].
-    fn isSymbolicLink  ifTrue:[ ^ icons at:#fileLink   ifAbsent:nil ].
-
-    suff := fn suffix.
-
-    (suff = 'bak' or:[suff = 'sav']) ifTrue:[
-        suff := fn withoutSuffix suffix.
-    ].
-
-    suff size > 0 ifTrue:[
-        ( #( 'o' 'so' 'a' ) includes:suff) ifTrue:[
-             ^ icons at:#executableFile ifAbsent:nil
-        ].        
-        mimeType := MIMETypes mimeTypeForSuffix:suff.
-
-        mimeType notNil ifTrue:[
-            (icn := icons at:mimeType ifAbsent:nil) notNil ifTrue:[^ icn].
-
-            (mimeType startsWith:'image/') ifTrue:[
-                ^ icons at:#imageFile ifAbsent:nil
-            ].
-        ].
-    ].
-
-    fn isExecutableProgram ifTrue:[
-        ^ icons at:#executableFile ifAbsent:nil
-    ].
-    ^ icons at:#file ifAbsent:nil
+    ^ FileBrowser iconForFile:(anItem fileName)
 !
 
 matchBlockFor:anItem
@@ -618,5 +568,5 @@
 !HierarchicalFileList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalFileList.st,v 1.17 2002-08-20 07:28:25 penk Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/HierarchicalFileList.st,v 1.18 2002-09-11 12:54:54 penk Exp $'
 ! !