BookmarkList.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Jun 2018 22:19:39 +0100
branchjv
changeset 18227 d25a407ba86d
parent 17304 3eea1002b141
permissions -rw-r--r--
Mini testrunner: show "green" if there's at least one pass and rest is pass or skip This is more meaningfull result then showing "gray" if there's at least one skip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
10085
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
     2
 Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
     3
 Copyright (c) 2009-2010 eXept Software AG
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
10085
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
     5
 Permission is hereby granted, free of charge, to any person
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
     6
 obtaining a copy of this software and associated documentation
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
     7
 files (the 'Software'), to deal in the Software without
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
     8
 restriction, including without limitation the rights to use,
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
     9
 copy, modify, merge, publish, distribute, sublicense, and/or sell
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    10
 copies of the Software, and to permit persons to whom the
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    11
 Software is furnished to do so, subject to the following
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    12
 conditions:
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    13
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    14
 The above copyright notice and this permission notice shall be
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    15
 included in all copies or substantial portions of the Software.
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    16
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    17
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    18
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    19
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    20
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    21
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    22
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    23
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    24
 OTHER DEALINGS IN THE SOFTWARE.
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"{ Package: 'stx:libtool' }"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
16761
d91fe714ec22 #OTHER by mawalch
mawalch
parents: 14811
diff changeset
    28
"{ NameSpace: Smalltalk }"
d91fe714ec22 #OTHER by mawalch
mawalch
parents: 14811
diff changeset
    29
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
HierarchicalList subclass:#BookmarkList
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	instanceVariableNames:'fileName'
13855
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
    32
	classVariableNames:'BrowserBookmarks WorkspaceBookmarks WebBookmarks FileBookmarks'
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	poolDictionaries:''
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
	category:'Interface-Bookmarks'
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!BookmarkList class methodsFor:'documentation'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
copyright
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
"
10085
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    41
 Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    42
 Copyright (c) 2009-2010 eXept Software AG
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    43
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    44
 Permission is hereby granted, free of charge, to any person
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    45
 obtaining a copy of this software and associated documentation
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    46
 files (the 'Software'), to deal in the Software without
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    47
 restriction, including without limitation the rights to use,
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    48
 copy, modify, merge, publish, distribute, sublicense, and/or sell
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    49
 copies of the Software, and to permit persons to whom the
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    50
 Software is furnished to do so, subject to the following
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    51
 conditions:
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
10085
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    53
 The above copyright notice and this permission notice shall be
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    54
 included in all copies or substantial portions of the Software.
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    55
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    56
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    57
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    58
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    59
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    60
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    61
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    62
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
d965c17bd9c4 copyright
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
    63
 OTHER DEALINGS IN THE SOFTWARE.
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!BookmarkList class methodsFor:'instance creation'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
decodeFromLiteralArray:anArray
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
11886
0c039c26ad7b comment/format in: #decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 10911
diff changeset
    71
    (anArray size == 3 and: [anArray second == #root:]) ifFalse:[
0c039c26ad7b comment/format in: #decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 10911
diff changeset
    72
        self breakPoint: #jv. 
0c039c26ad7b comment/format in: #decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 10911
diff changeset
    73
        ^ super decodeFromLiteralArray:anArray
0c039c26ad7b comment/format in: #decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 10911
diff changeset
    74
    ].
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    ^self new root: anArray third decodeAsLiteralArray
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    "Created: / 23-05-2011 / 14:28:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
new
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    "return an initialized instance"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    ^ super new initialize.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    "Modified: / 23-05-2011 / 13:57:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
readFrom: aStream onError: aBlock
14810
2e3231bb0b9e class: BookmarkList
Claus Gittinger <cg@exept.de>
parents: 13855
diff changeset
    90
    | litArray |
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
17248
2bf41cd45226 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16761
diff changeset
    92
    ^ [
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
        litArray := Compiler evaluate: aStream contents asString.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
        litArray decodeAsLiteralArray.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    ] on: Error do: [
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
        aBlock value.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    ]
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    "Created: / 23-05-2011 / 15:58:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
readFromFile: aStringOrFilename
14810
2e3231bb0b9e class: BookmarkList
Claus Gittinger <cg@exept.de>
parents: 13855
diff changeset
   103
    ^ self readFromFile: aStringOrFilename onError:[:reason | self error:reason]
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
readFromFile: aStringOrFilename onError: aBlock
14810
2e3231bb0b9e class: BookmarkList
Claus Gittinger <cg@exept.de>
parents: 13855
diff changeset
   107
    | bookmarks file pathName|
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
    file := aStringOrFilename asFilename.
14810
2e3231bb0b9e class: BookmarkList
Claus Gittinger <cg@exept.de>
parents: 13855
diff changeset
   110
    pathName := file pathName.
2e3231bb0b9e class: BookmarkList
Claus Gittinger <cg@exept.de>
parents: 13855
diff changeset
   111
    file exists ifFalse: [^ aBlock valueWithOptionalArgument:('File does %1 not exist' bindWith: pathName)].
10864
Claus Gittinger <cg@exept.de>
parents: 10085
diff changeset
   112
    bookmarks := self readFrom: file readStream onError: [^aBlock value].
14810
2e3231bb0b9e class: BookmarkList
Claus Gittinger <cg@exept.de>
parents: 13855
diff changeset
   113
    bookmarks isNil ifTrue: [^ aBlock valueWithOptionalArgument:('Cannot parse %1 not exist' bindWith: pathName)].
2e3231bb0b9e class: BookmarkList
Claus Gittinger <cg@exept.de>
parents: 13855
diff changeset
   114
    bookmarks fileName: pathName.
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
    ^bookmarks
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
    "Created: / 23-05-2011 / 16:32:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    "Modified: / 02-06-2011 / 19:43:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10864
Claus Gittinger <cg@exept.de>
parents: 10085
diff changeset
   119
    "Modified: / 18-11-2011 / 14:32:24 / cg"
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
!BookmarkList class methodsFor:'accessing'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
13855
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   124
forFileBrowser
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   125
    FileBookmarks isNil ifTrue:[
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   126
        self initializeFileBookmarks
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   127
    ].
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   128
    ^ FileBookmarks
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   129
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   130
    "Created: / 04-04-2012 / 12:04:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   131
!
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   132
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
forSystemBrowser
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
    BrowserBookmarks isNil ifTrue:
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
        [self initializeBrowserBookmarks].
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
    ^BrowserBookmarks
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
    "Created: / 23-05-2011 / 10:10:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
forWebBrowser
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
    WebBookmarks isNil ifTrue:
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
        [self initializeWebBookmarks].
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    ^WebBookmarks
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
    "Created: / 08-06-2011 / 12:15:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
forWorkspace
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    WorkspaceBookmarks isNil ifTrue:
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
        [self initializeWorkspaceBookmarks].
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
    ^WorkspaceBookmarks
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    "Created: / 20-06-2011 / 22:11:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
!BookmarkList class methodsFor:'accessing - defaults'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
defaultLabelForMyWorkspaces
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    ^'My Workspaces'
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
    "Created: / 21-06-2011 / 08:35:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
defaultLabelForRecent
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    ^'Recent'
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
    "Created: / 21-06-2011 / 08:35:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
!BookmarkList class methodsFor:'class initialization'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
initializeBrowserBookmarks
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
    | file  |
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
    file := Filename defaultDirectory / 'browser-bookmarks.rc'.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
    BrowserBookmarks := self readFromFile: file onError:[nil].
10911
Claus Gittinger <cg@exept.de>
parents: 10864
diff changeset
   183
    BrowserBookmarks notNil ifTrue:[^self].    
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
    file := Filename homeDirectory / '.smalltalk' / 'browser-bookmarks.rc'.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
    BrowserBookmarks := self readFromFile: file onError:[nil].
10911
Claus Gittinger <cg@exept.de>
parents: 10864
diff changeset
   187
    BrowserBookmarks notNil ifTrue:[^self].    
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    BrowserBookmarks := self new fileName: file pathName.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
    "Created: / 23-05-2011 / 10:06:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    "Modified: / 23-05-2011 / 16:35:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10911
Claus Gittinger <cg@exept.de>
parents: 10864
diff changeset
   193
    "Modified: / 29-11-2011 / 11:21:06 / cg"
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
13855
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   196
initializeFileBookmarks
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   197
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   198
    | file  |
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   199
    file := Filename defaultDirectory / 'file-bookmarks.rc'.
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   200
    FileBookmarks := self readFromFile: file onError:[nil].
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   201
    FileBookmarks notNil ifTrue:[^self].    
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   202
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   203
    file := Filename homeDirectory / '.smalltalk' / 'file-bookmarks.rc'.
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   204
    FileBookmarks := self readFromFile: file onError:[nil].
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   205
    FileBookmarks notNil ifTrue:[^self].    
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   206
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   207
    FileBookmarks := self new fileName: file pathName.
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   208
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   209
    "Created: / 04-04-2012 / 12:05:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   210
!
98731325dba3 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13240
diff changeset
   211
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
initializeWebBookmarks
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    | file  |
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
    file := Filename defaultDirectory / 'web-bookmarks.rc'.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    WebBookmarks := self readFromFile: file onError:[nil].
10911
Claus Gittinger <cg@exept.de>
parents: 10864
diff changeset
   217
    WebBookmarks notNil ifTrue:[^self].    
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
    file := Filename homeDirectory / '.smalltalk' / 'web-bookmarks.rc'.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
    WebBookmarks := self readFromFile: file onError:[nil].
10911
Claus Gittinger <cg@exept.de>
parents: 10864
diff changeset
   221
    WebBookmarks notNil ifTrue:[^self].    
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
    WebBookmarks := self new fileName: file pathName.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
    "Created: / 08-06-2011 / 12:15:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10911
Claus Gittinger <cg@exept.de>
parents: 10864
diff changeset
   226
    "Modified: / 29-11-2011 / 11:21:10 / cg"
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
initializeWorkspaceBookmarks
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
    | file  |
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    file := Filename defaultDirectory / 'workspace-bookmarks.rc'.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    WorkspaceBookmarks := self readFromFile: file onError:[nil].
10911
Claus Gittinger <cg@exept.de>
parents: 10864
diff changeset
   234
    WorkspaceBookmarks notNil ifTrue:[^self].    
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
    file := Filename homeDirectory / '.smalltalk' / 'workspace-bookmarks.rc'.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    WorkspaceBookmarks := self readFromFile: file onError:[nil].
10911
Claus Gittinger <cg@exept.de>
parents: 10864
diff changeset
   238
    WorkspaceBookmarks notNil ifTrue:[^self].    
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
    WorkspaceBookmarks := self new fileName: file pathName.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    WorkspaceBookmarks root add: 
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
            ((Bookmark forFolderNamed: self defaultLabelForMyWorkspaces)
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
                add: (Bookmark forFile: WorkspaceApplication defaultMyWorkspaceDotWspFile pathName);
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
                yourself).
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
    "
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
        WorkspaceBookmarks := nil.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
        BookmarkList initializeWorkspaceBookmarks.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
    "
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
    "
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
        WorkspaceBookmarks := nil.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
    "
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
    "Created: / 20-06-2011 / 22:10:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
    "Modified: / 21-06-2011 / 08:46:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10911
Claus Gittinger <cg@exept.de>
parents: 10864
diff changeset
   257
    "Modified: / 29-11-2011 / 11:21:16 / cg"
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
!BookmarkList methodsFor:'accessing'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
/ label
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
    ^ self root / label
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
    "Created: / 21-06-2011 / 08:49:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
fileName
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
    ^ fileName
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
fileName:aString
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
    fileName := aString.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
!BookmarkList methodsFor:'accessing - special folders'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
myWorkspaces
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
    ^self / self class defaultLabelForMyWorkspaces
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
    "
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
        BookmarkList forWorkspace myWorkspaces      
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
    "
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
    "Created: / 21-06-2011 / 08:53:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
!BookmarkList methodsFor:'change & update'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
changed:aParameter with:anArgument
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
    super changed:aParameter with:anArgument.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
    "/self save.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
    "Created: / 23-05-2011 / 16:13:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
    "Modified: / 02-06-2011 / 13:35:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
!BookmarkList methodsFor:'collection protocol'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
add: item 
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
    ^root add: item
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
    "Created: / 23-05-2011 / 10:49:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
    "Modified: / 23-05-2011 / 13:45:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
contains: anObject
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
    ^root contains: anObject
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
    "Created: / 23-05-2011 / 10:44:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
    "Modified: / 23-05-2011 / 13:46:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
remove: item ifAbsent: block
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
    ^root remove: item
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
    "Created: / 23-05-2011 / 10:47:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
    "Modified: / 23-05-2011 / 13:48:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
!BookmarkList methodsFor:'converting'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   328
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   329
asMenu
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
    ^root asMenu
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
    "Created: / 23-05-2011 / 10:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
asMenuUsingBuilder: builderClass
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
    ^self root asMenuUsingBuilder: builderClass
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
    "Created: / 21-06-2011 / 08:05:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
literalArrayEncoding
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
    ^Array 
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
        with: self className
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
        with: #root:
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
        with: root literalArrayEncoding
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
    "Created: / 23-05-2011 / 14:23:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
!BookmarkList methodsFor:'initialization'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
initialize
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
    "Invoked when a new instance is created."
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
    super initialize.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
    showRoot := false.
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
    self root: (Bookmark forFolderNamed: '<bookmarks>').
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
    "Modified: / 23-05-2011 / 13:56:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
16761
d91fe714ec22 #OTHER by mawalch
mawalch
parents: 14811
diff changeset
   366
!BookmarkList methodsFor:'loading & saving'!
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
save
13240
37c7f875dae2 Use #isWritableDirectory
Stefan Vogel <sv@exept.de>
parents: 11886
diff changeset
   369
    |f|
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
13240
37c7f875dae2 Use #isWritableDirectory
Stefan Vogel <sv@exept.de>
parents: 11886
diff changeset
   371
    (fileName notNil 
37c7f875dae2 Use #isWritableDirectory
Stefan Vogel <sv@exept.de>
parents: 11886
diff changeset
   372
        and:[ (f := fileName asFilename) exists not or:[ f isWritable ] ]) 
37c7f875dae2 Use #isWritableDirectory
Stefan Vogel <sv@exept.de>
parents: 11886
diff changeset
   373
            ifTrue:[ self saveOn:fileName ].
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
    "Created: / 23-05-2011 / 16:38:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
saveOn: aStringOrFilename
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
    aStringOrFilename asFilename writingFileDo:
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
        [:s|s nextPutAll: self literalArrayEncoding storeString].
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
    "Created: / 23-05-2011 / 16:39:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
!BookmarkList methodsFor:'visiting'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
acceptVisitor:aVisitor 
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
    "Double dispatch back to the visitor, passing my type encoded in
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
     the selector (visitor pattern)"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
    "stub code automatically generated - please change if required"
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
    ^ aVisitor visitBookmarkList:self
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
! !
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
!BookmarkList class methodsFor:'documentation'!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
14811
1105a50bafa5 class: BookmarkList
Claus Gittinger <cg@exept.de>
parents: 14810
diff changeset
   399
version
16761
d91fe714ec22 #OTHER by mawalch
mawalch
parents: 14811
diff changeset
   400
    ^ '$Header$'
14811
1105a50bafa5 class: BookmarkList
Claus Gittinger <cg@exept.de>
parents: 14810
diff changeset
   401
!
1105a50bafa5 class: BookmarkList
Claus Gittinger <cg@exept.de>
parents: 14810
diff changeset
   402
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
version_CVS
16761
d91fe714ec22 #OTHER by mawalch
mawalch
parents: 14811
diff changeset
   404
    ^ '$Header$'
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
!
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
version_SVN
16761
d91fe714ec22 #OTHER by mawalch
mawalch
parents: 14811
diff changeset
   408
    ^ '$Id$'
9972
1a82b2155085 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
! !
13240
37c7f875dae2 Use #isWritableDirectory
Stefan Vogel <sv@exept.de>
parents: 11886
diff changeset
   410