common bookmark code with new fileBrowser
authorClaus Gittinger <cg@exept.de>
Tue, 18 Mar 2003 12:22:02 +0100
changeset 4672 185a4d75348f
parent 4671 a6eea3205630
child 4673 2d4f10bb5fa6
common bookmark code with new fileBrowser
AbstractFileBrowser.st
FileBrowser.st
--- a/AbstractFileBrowser.st	Tue Mar 18 12:17:53 2003 +0100
+++ b/AbstractFileBrowser.st	Tue Mar 18 12:22:02 2003 +0100
@@ -65,19 +65,7 @@
 !
 
 
-!AbstractFileBrowser class methodsFor:'classAccess'!
-
-directoryHistoryClass
-
-    ^ AbstractFileBrowser::DirectoryHistory
-!
-
-filenameHistoryClass
-
-    ^ FilenameHistory
-! !
-
-!AbstractFileBrowser class methodsFor:'classVarAccess'!
+!AbstractFileBrowser class methodsFor:'accessing'!
 
 currentSelection
 
@@ -120,6 +108,43 @@
     RootHolder := aRoot
 ! !
 
+!AbstractFileBrowser class methodsFor:'accessing - bookmarks'!
+
+addBookmark:aDirectoryPath
+    |bookmarks idx|
+
+    bookmarks := self directoryBookmarks.
+    idx := bookmarks indexOf:aDirectoryPath.
+    idx == 0 ifTrue:[
+        bookmarks addLast:aDirectoryPath.
+    ].
+!
+
+hasBookmarks
+    ^ self directoryBookmarks size > 0
+!
+
+removeBookmark:aDirectoryPath
+    |bookmarks|
+
+    bookmarks := self directoryBookmarks.
+    bookmarks isEmptyOrNil ifTrue:[ ^ self].
+
+    bookmarks remove:aDirectoryPath ifAbsent:[].
+! !
+
+!AbstractFileBrowser class methodsFor:'accessing - classes'!
+
+directoryHistoryClass
+
+    ^ AbstractFileBrowser::DirectoryHistory
+!
+
+filenameHistoryClass
+
+    ^ FilenameHistory
+! !
+
 !AbstractFileBrowser class methodsFor:'defaults'!
 
 commandHistory
@@ -156,7 +181,6 @@
 !
 
 directoryBookmarks
-
     DirectoryBookmarks isNil ifTrue:[                     
         DirectoryBookmarks := OrderedCollection new.
         DirectoryBookmarks add:Filename homeDirectory asAbsoluteFilename.
@@ -170,7 +194,9 @@
     ].
     ^ DirectoryBookmarks
 
-"/    DirectoryBookmarks := nil
+    "
+     DirectoryBookmarks := nil
+    "
 !
 
 initialCommandFor:fileName in:aDirectory intoBox:aBox
@@ -2359,19 +2385,13 @@
 !
 
 addBookmark:aColOfDirectories
-    |idx bookmarks|
-
-    aColOfDirectories do:[ : path |
-        bookmarks := self class directoryBookmarks.
-        idx := bookmarks indexOf:path.
-        idx == 0 ifTrue:[
-            bookmarks addLast:path.
-        ].
+    aColOfDirectories do:[ :path |
+        self class addBookmark:path
     ].
 !
 
 hasBookmarks
-    ^ self class directoryBookmarks size > 0
+    ^ self class hasBookmarks
 !
 
 hasBookmarksToRemove
@@ -2384,15 +2404,8 @@
 !
 
 removeBookmark
-
-    |bookmarks directories|
-
-    bookmarks := self class directoryBookmarks.
-    bookmarks isNil ifTrue:[ ^ self].
-    directories := self currentSelectedDirectories.
-    directories isEmpty ifTrue:[^ self].
-    directories do:[:dir|
-        bookmarks remove:dir ifAbsent:nil.
+    self currentSelectedDirectories do:[:dir|
+        self class removeBookmark:dir
     ].
 ! !
 
@@ -3471,14 +3484,13 @@
     "
     <resource: #programMenu>
 
-    |menuSpec menu bookmarks|
-
-    menuSpec := self class baseBookmarksMenuSpec.
-    menu := menuSpec decodeAsLiteralArray.
+    |menu bookmarks|
+
+    menu := self class baseBookmarksMenuSpec decodeAsLiteralArray.
     menu findGuiResourcesIn:self.
     menu receiver:self.
     bookmarks := self class directoryBookmarks.
-    "/ add the history items ...
+    "/ add the bookmark items ...
 
     bookmarks size > 0 ifTrue:[
         menu addItem:(MenuItem labeled:'-').
@@ -3632,7 +3644,8 @@
     menu receiver:self.
 
     self dirHistory isEmpty ifTrue:[^ nil].
-    text := LabelAndIcon icon:(self class clearHistoryIcon) string:(resources string:'Clear History').
+    "/ text := LabelAndIcon icon:(self class clearHistoryIcon) string:(resources string:'Clear History').
+    text := (resources string:'Clear History').
     removeItem := MenuItem new.
     removeItem translateLabel:true.
     removeItem label:text.
@@ -5813,7 +5826,7 @@
     ^ self path asString
 ! !
 
-!AbstractFileBrowser::FilenameHistory class methodsFor:'attributes access'!
+!AbstractFileBrowser::FilenameHistory class methodsFor:'accessing - attributes'!
 
 filenameHistorySize
 
@@ -5871,5 +5884,5 @@
 !AbstractFileBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.108 2003-03-14 14:29:50 penk Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.109 2003-03-18 11:22:02 cg Exp $'
 ! !
--- a/FileBrowser.st	Tue Mar 18 12:17:53 2003 +0100
+++ b/FileBrowser.st	Tue Mar 18 12:22:02 2003 +0100
@@ -152,6 +152,10 @@
 
 !FileBrowser class methodsFor:'aspects'!
 
+directoryBookmarks
+    ^ AbstractFileBrowser directoryBookmarks.
+!
+
 directoryHistory
 
     ^ AbstractFileBrowser directoryHistory.
@@ -759,22 +763,25 @@
 
     <resource: #programMenu>
 
-    |m|
-
-    m := self baseBookmarksMenuSpec.
-    m := m decodeAsLiteralArray.
+    |menu bookmarks|
+
+    menu := self baseBookmarksMenuSpec decodeAsLiteralArray.
 
     "/ add the history items ...
 
-    DirectoryBookmarks size > 0 ifTrue:[
-        m addItem:(MenuItem labeled:'-').
-        DirectoryBookmarks do:[:dirName |
-            m addItem:((MenuItem label:dirName value:#changeDirectoryTo:)
+    bookmarks := self directoryBookmarks.
+    bookmarks size > 0 ifTrue:[
+        menu addItem:(MenuItem labeled:'-').
+        bookmarks do:[:dirName |
+            |pathName|
+
+            pathName := dirName asFilename pathName.
+            menu addItem:((MenuItem label:pathName value:#changeDirectoryTo:)
                             argument:dirName;
                             yourself).
         ].
     ].
-    ^ m
+    ^ menu
 
     "Modified: / 17.8.1998 / 10:13:05 / cg"
 !
@@ -1856,15 +1863,18 @@
 !
 
 hasBookmarks
-    ^ DirectoryBookmarks size > 0
+    ^ AbstractFileBrowser hasBookmarks
 
     "Created: / 14.8.1998 / 19:17:02 / cg"
     "Modified: / 14.8.1998 / 19:17:17 / cg"
 !
 
 hasBookmarksToRemove
-    ^ DirectoryBookmarks size > 0
-      and:[ DirectoryBookmarks includes:(currentDirectory pathName) ]
+    |bookmarks|
+
+    bookmarks := self class directoryBookmarks.
+    ^ bookmarks size > 0
+      and:[ bookmarks includes:(currentDirectory pathName) ]
 
     "Created: / 14.8.1998 / 19:17:02 / cg"
     "Modified: / 14.8.1998 / 19:17:17 / cg"
@@ -4459,15 +4469,7 @@
 !
 
 addBookmark:path
-    |idx|
-
-    DirectoryBookmarks isNil ifTrue:[
-        DirectoryBookmarks := OrderedCollection new
-    ].
-    idx := DirectoryBookmarks indexOf:path.
-    idx == 0 ifTrue:[
-        DirectoryBookmarks addLast:path.
-    ].
+    AbstractFileBrowser addBookmark:path
 !
 
 copyCommandHistory
@@ -4611,8 +4613,7 @@
 !
 
 removeBookmark
-    DirectoryBookmarks isNil ifTrue:[ ^ self].
-    DirectoryBookmarks remove:(currentDirectory asFilename pathName) ifAbsent:nil.
+    AbstractFileBrowser removeBookmark:(currentDirectory asFilename pathName)
 !
 
 showAboutSTX
@@ -7820,5 +7821,5 @@
 !FileBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileBrowser.st,v 1.525 2003-03-02 20:42:15 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileBrowser.st,v 1.526 2003-03-18 11:21:13 cg Exp $'
 ! !