FileSelectionBox.st
author Claus Gittinger <cg@exept.de>
Mon, 11 Dec 1995 18:03:27 +0100
changeset 250 77012e65ac84
parent 240 75a3b67bd91d
child 296 e1b9431b3aef
permissions -rw-r--r--
draw strings as opaque strings - OS/2 server has a bug with non-image strings
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     1
"
5
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1990 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
     3
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     4
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    11
"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    12
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    13
ListSelectionBox subclass:#FileSelectionBox
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    14
	 instanceVariableNames:'patternField'
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    15
	 classVariableNames:''
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    16
	 poolDictionaries:''
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    17
	 category:'Views-DialogBoxes'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    18
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    19
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
    20
!FileSelectionBox class methodsFor:'documentation'!
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
    21
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    22
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    23
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    24
 COPYRIGHT (c) 1990 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    25
	      All Rights Reserved
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    26
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    27
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    28
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    30
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    31
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    32
 hereby transferred.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    33
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    34
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    35
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
    36
documentation
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
    37
"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    38
    this class implements file selection boxes. Instances show a list of
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    39
    files, and perform an action block with the selected pathname as
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    40
    argument when ok is clicked.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    41
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    42
    There is an optional PatternField, which shows itself when a pattern
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    43
    is defined (i.e. if there is no pattern, it is hidden). 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    44
    If there is a pattern, only files matching the pattern will be shown in 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    45
    the list (and directories).
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    46
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    47
    In addition, there is an optional matchBlock (actually this is defined 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    48
    in the FileSelectionList). Only filenames for which this matchblock
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    49
    returns true will be presented.
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    50
"
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    51
!
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    52
62
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    53
examples 
7cc1e330da47 *** empty log message ***
claus
parents: 59
diff changeset
    54
"
238
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    55
    very simple:
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    56
	|name|
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    57
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    58
	name := FileSelectionBox requestFilename.
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    59
	Transcript showCr:name
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    60
238
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    61
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    62
    simple:
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    63
	|name|
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    64
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    65
	name := FileSelectionBox requestFilename:'which file ?'.
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    66
	Transcript showCr:name
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    67
238
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    68
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    69
    with initial selection:
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    70
	|name|
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    71
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    72
	name := FileSelectionBox requestFilename:'which file ?' default:'Make.proto'.
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    73
	Transcript showCr:name
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    74
238
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    75
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    76
    more detailed setup:
12
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
    77
238
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    78
	FileSelectionBox new openModal
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    79
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    80
    setting title:
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    81
59
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    82
	|box|
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    83
	box := FileSelectionBox new.
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    84
	box title:'Which file ?'.
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    85
	box open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    86
238
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    87
    setting a matchpattern:
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    88
59
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    89
	|box|
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    90
	box := FileSelectionBox new.
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    91
	box title:'Which file ?'.
238
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    92
	box pattern:'*.rc'.
59
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    93
	box open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    94
238
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    95
    setting a matchblock:
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
    96
59
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    97
	|box|
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    98
	box := FileSelectionBox new.
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
    99
	box title:'Which file ?'.
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   100
	box pattern:'*'.
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   101
	box matchBlock:[:name | name first isLowercase].
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   102
	box open
44
f5e3a267fe4e pass fullname to matchblock
claus
parents: 41
diff changeset
   103
238
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   104
    both pattern and matchBlock:
44
f5e3a267fe4e pass fullname to matchblock
claus
parents: 41
diff changeset
   105
59
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   106
	|box|
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   107
	box := FileSelectionBox new.
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   108
	box title:'Which directory ?'.
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   109
	box pattern:'l*'.
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   110
	box matchBlock:[:name | OperatingSystem isDirectory:name].
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   111
	box open
238
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   112
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   113
    finally, an action:
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   114
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   115
	|box|
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   116
	box := FileSelectionBox new.
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   117
	box title:'Which directory ?'.
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   118
	box pattern:'l*'.
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   119
	box matchBlock:[:name | OperatingSystem isDirectory:name].
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   120
	box action:[:name | Transcript showCr:name].
a81e517187e4 examples
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   121
	box open
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   122
"
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   123
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   124
12
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   125
!FileSelectionBox class methodsFor:'defaults'!
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   126
77
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   127
requestFilename
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   128
    ^ self requestFilename:'filename:'
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   129
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   130
    "
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   131
     FileSelectionBox requestFilename
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   132
    "
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   133
!
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   134
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   135
requestFilename:title
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   136
    |fileBox|
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   137
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   138
    fileBox := self
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   139
		    title:title
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   140
		    okText:'ok'
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   141
		    abortText:'cancel'
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   142
		    action:[:fileName | ^ fileName].
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   143
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   144
    fileBox showAtPointer.
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   145
    ^ nil
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   146
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   147
    "
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   148
     FileSelectionBox requestFilename:'which file ?'
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   149
    "
235
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   150
!
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   151
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   152
requestFilename:title default:aFileName
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   153
    |fileBox|
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   154
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   155
    fileBox := self
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   156
		    title:title
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   157
		    okText:'ok'
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   158
		    abortText:'cancel'
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   159
		    action:[:fileName | ^ fileName].
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   160
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   161
    fileBox initialText:aFileName.
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   162
    fileBox showAtPointer.
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   163
    ^ nil
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   164
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   165
    "
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   166
     FileSelectionBox requestFilename:'which file ?' default:'Makefile'
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   167
    "
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   168
!
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   169
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   170
requestFilename:title  fromDirectory: aDirectory
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   171
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   172
    |fileBox|
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   173
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   174
    fileBox := self
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   175
		    title:title
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   176
		    okText:'ok'
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   177
		    abortText:'cancel'
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   178
		    action:[:fileName | ^ fileName].
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   179
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   180
    fileBox directory: aDirectory.
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   181
    fileBox showAtPointer.
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   182
    ^ nil
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   183
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   184
    "
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   185
     FileSelectionBox requestFilename:'which file ?' fromDirectory:'/etc'
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   186
    "
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   187
bbd0a7433459 *** empty log message ***
chrisy
parents: 197
diff changeset
   188
    "Modified: 12.10.1995 / 11:47:27 / markus"
77
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   189
! !
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   190
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   191
!FileSelectionBox class methodsFor:'requests'!
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   192
12
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   193
listViewType
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   194
    "return the type of listView - using a FileSelectionList here"
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   195
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   196
    ^ FileSelectionList
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   197
! !
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   198
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   199
!FileSelectionBox methodsFor:'accessing'!
3
claus
parents: 0
diff changeset
   200
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   201
contents
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   202
    "return the current entered value (i.e. the enterFields string).
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   203
     redefined to return the full pathname."
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   204
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   205
    |string sep|
3
claus
parents: 0
diff changeset
   206
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   207
    string := super contents.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   208
    string isNil ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   209
	^ selectionList directory pathName
121
claus
parents: 120
diff changeset
   210
    ].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   211
    sep := Filename separator.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   212
    (string startsWith:sep) ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   213
	^ string
77
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   214
    ].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   215
    ^ (selectionList directory pathName asFilename construct:string) asString
132
claus
parents: 130
diff changeset
   216
!
claus
parents: 130
diff changeset
   217
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   218
directory:directoryName
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   219
    "change the directory shown in the list."
41
2f8d0f8e796b update list when namefiled cannot complete name
claus
parents: 38
diff changeset
   220
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   221
    selectionList directory:directoryName
132
claus
parents: 130
diff changeset
   222
!
claus
parents: 130
diff changeset
   223
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   224
matchBlock:aBlock
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   225
    "set the matchBlock (in the selectionList). Only files
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   226
     for which the block returns true are shown.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   227
     The matching is actually done in the fileSelectionList."
77
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   228
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   229
    selectionList matchBlock:aBlock 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   230
!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   231
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   232
openOn:aPath
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   233
    "open the box showing files in aPath.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   234
     This is only a shortcut message - no new functionality."
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   235
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   236
    self directory:aPath.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   237
    self showAtPointer
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   238
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   239
3
claus
parents: 0
diff changeset
   240
pattern:aPattern
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   241
    "set the pattern - this also enables the PatternField
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   242
     (if the pattern is non-nil) or hides it (if nil)."
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   243
130
claus
parents: 121
diff changeset
   244
    |hidePatternField focusSequence|
claus
parents: 121
diff changeset
   245
3
claus
parents: 0
diff changeset
   246
    patternField initialText:aPattern.
12
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   247
    selectionList pattern:aPattern.
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   248
    aPattern isNil ifTrue:[
130
claus
parents: 121
diff changeset
   249
	hidePatternField := true.
59
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   250
	realized ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   251
	    patternField hide.
77
565b052f5277 *** empty log message ***
claus
parents: 62
diff changeset
   252
	].
130
claus
parents: 121
diff changeset
   253
	focusSequence := (Array 
claus
parents: 121
diff changeset
   254
			     with:enterField 
claus
parents: 121
diff changeset
   255
			     with:selectionList 
claus
parents: 121
diff changeset
   256
			     with:okButton 
claus
parents: 121
diff changeset
   257
			     with:abortButton)
12
1c8e8c53e8cf *** empty log message ***
claus
parents: 7
diff changeset
   258
    ] ifFalse:[
130
claus
parents: 121
diff changeset
   259
	hidePatternField := false.
59
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   260
	realized ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   261
	    patternField realize.
450ce95a72a4 *** empty log message ***
claus
parents: 44
diff changeset
   262
	].
130
claus
parents: 121
diff changeset
   263
	focusSequence := (Array 
claus
parents: 121
diff changeset
   264
			     with:patternField 
claus
parents: 121
diff changeset
   265
			     with:enterField 
claus
parents: 121
diff changeset
   266
			     with:selectionList 
claus
parents: 121
diff changeset
   267
			     with:okButton 
claus
parents: 121
diff changeset
   268
			     with:abortButton)
claus
parents: 121
diff changeset
   269
    ].
claus
parents: 121
diff changeset
   270
claus
parents: 121
diff changeset
   271
    patternField hiddenOnRealize:hidePatternField.
claus
parents: 121
diff changeset
   272
    windowGroup notNil ifTrue:[
claus
parents: 121
diff changeset
   273
	windowGroup focusSequence:focusSequence
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   274
    ].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   275
! !
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   276
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   277
!FileSelectionBox methodsFor:'change & update'!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   278
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   279
update:something with:argument from:changedObject
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   280
    |commonName index s|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   281
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   282
    something == #directory ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   283
	"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   284
	 sent by fileNameEnterField, if a filename
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   285
	 completion was not possible due to multiple
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   286
	 matches.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   287
	"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   288
	selectionList directory:argument.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   289
	s := enterField contents.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   290
	s notNil ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   291
	    commonName := s asFilename baseName.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   292
	    commonName size > 0 ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   293
		index := selectionList list findFirst:[:entry | entry startsWith:commonName].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   294
		index ~~ 0 ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   295
		    selectionList makeLineVisible:index
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   296
		]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   297
	    ]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   298
	]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   299
    ]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   300
! !
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   301
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   302
!FileSelectionBox methodsFor:'initialization'!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   303
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   304
createEnterField
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   305
    "if the (optional) class FilenameEditField is present, use
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   306
     it, since it provides filename completion. Otherwise, we have
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   307
     to live with the dump (default) field ...
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   308
    "
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   309
    FilenameEditField notNil ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   310
	^ FilenameEditField new.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   311
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   312
    ^ super createEnterField
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   313
!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   314
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   315
focusSequence
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   316
    patternField shown ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   317
	^ Array 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   318
	    with:patternField 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   319
	    with:enterField 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   320
	    with:selectionList 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   321
	    with:abortButton
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   322
	    with:okButton 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   323
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   324
    ^ super focusSequence
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   325
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   326
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   327
initialize
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   328
    |corner|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   329
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   330
    super initialize.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   331
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   332
    label := resources string:'File dialog'.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   333
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   334
    labelField extent:(0.7 @ labelField height).
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   335
    labelField label:(resources string:'select a file:').
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   336
    labelField adjust:#left.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   337
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   338
    patternField := EditField in:self.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   339
    self is3D ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   340
	corner := (1.0 @ (labelField origin y+patternField heightIncludingBorder)).
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   341
    ] ifFalse:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   342
	corner := [(width - ViewSpacing - (patternField borderWidth * 2)) @ (labelField origin y+patternField height"IncludingBorder")].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   343
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   344
    patternField origin:(0.7 @ labelField origin y) corner:corner.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   345
    patternField rightInset:ViewSpacing.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   346
    patternField initialText:'*'.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   347
    patternField leaveAction:[:reason | 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   348
	selectionList pattern:patternField contents. 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   349
	self updateList
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   350
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   351
    patternField hiddenOnRealize:true. "delay showing, until a pattern is defined"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   352
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   353
    enterField addDependent:self.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   354
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   355
    "
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   356
     FileSelectionBox open
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   357
     FileSelectionBox new show
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   358
    "
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   359
!
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   360
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   361
realize
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   362
    "if some default is present in the enterField,
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   363
     scroll to make this one visible"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   364
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   365
    |contents|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   366
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   367
    super realize.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   368
    (contents := enterField contents) notNil ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   369
	contents notEmpty ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   370
	    selectionList makeVisible:contents
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   371
	]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   372
    ]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   373
! !
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   374
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   375
!FileSelectionBox methodsFor:'private'!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   376
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   377
updateList
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   378
    selectionList updateList
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   379
! !
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   380
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   381
!FileSelectionBox methodsFor:'queries'!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   382
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   383
preferredExtent
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   384
    "return my preferred extent - thats the minimum size 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   385
     to make everything visible"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   386
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   387
    |wWanted hWanted|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   388
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   389
    wWanted := ViewSpacing + 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   390
	       labelField preferredExtent x + 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   391
	       (ViewSpacing * 2) + 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   392
	       patternField preferredExtent x + 
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   393
	       ViewSpacing.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   394
    (wWanted < width) ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   395
	wWanted := width
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   396
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   397
    hWanted := ViewSpacing + labelField height +
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   398
	       ViewSpacing + enterField height +
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   399
	       ViewSpacing + selectionList height +
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   400
	       ViewSpacing + buttonPanel preferredExtent y +
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   401
	       ViewSpacing.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   402
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   403
    (hWanted < height) ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   404
	hWanted := height
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   405
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   406
    ^ (wWanted @ hWanted)
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   407
! !
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   408
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   409
!FileSelectionBox methodsFor:'user actions'!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   410
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   411
doubleClick
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   412
    |entry|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   413
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   414
    entry := selectionList selectionValue.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   415
    entry notNil ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   416
	((selectionList directory typeOf:entry) == #directory) ifFalse:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   417
	    enterField contents:entry.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   418
	    self okPressed
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   419
	]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   420
    ].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   421
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   422
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   423
okPressed
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   424
    "called for both on ok-press and on return-key"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   425
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   426
    |dir string fname|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   427
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   428
    string := enterField contents.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   429
    string notNil ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   430
	string := string withoutSeparators.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   431
	string asFilename isAbsolute ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   432
	    fname := string asFilename
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   433
	] ifFalse:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   434
	    dir := selectionList directory pathName asFilename.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   435
	    fname := dir construct:string
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   436
	].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   437
	fname isDirectory ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   438
	    selectionList directory:fname asString.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   439
	    self updateList.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   440
	    ^ self
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   441
	]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 21
diff changeset
   442
    ].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   443
    super okPressed
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   444
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   445
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   446
selectionChanged
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   447
    |entry|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   448
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   449
    entry := selectionList selectionValue.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   450
    enterField contents:entry
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   451
! !
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   452
240
75a3b67bd91d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 238
diff changeset
   453
!FileSelectionBox class methodsFor:'documentation'!
75a3b67bd91d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 238
diff changeset
   454
75a3b67bd91d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 238
diff changeset
   455
version
75a3b67bd91d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 238
diff changeset
   456
    ^ '$Header: /cvs/stx/stx/libwidg/FileSelectionBox.st,v 1.26 1995-12-07 22:09:55 cg Exp $'
75a3b67bd91d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 238
diff changeset
   457
! !