LabelledEnterField.st
author claus
Tue, 06 Jun 1995 06:19:07 +0200
changeset 62 378b60ba1200
parent 56 aa651da467e2
child 71 9f9243f5813b
permissions -rw-r--r--
.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
30f48431927b Initial revision
claus
parents:
diff changeset
     1
"
30f48431927b Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1991 by Claus Gittinger
34
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
     3
	      All Rights Reserved
12
30f48431927b Initial revision
claus
parents:
diff changeset
     4
30f48431927b Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
30f48431927b Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
30f48431927b Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
30f48431927b Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
30f48431927b Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
30f48431927b Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
30f48431927b Initial revision
claus
parents:
diff changeset
    11
"
30f48431927b Initial revision
claus
parents:
diff changeset
    12
56
claus
parents: 53
diff changeset
    13
View subclass:#LabelledEnterField
34
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    14
	 instanceVariableNames:'labelField textField'
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    15
	 classVariableNames:''
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    16
	 poolDictionaries:''
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    17
	 category:'Views-Interactors'
12
30f48431927b Initial revision
claus
parents:
diff changeset
    18
!
30f48431927b Initial revision
claus
parents:
diff changeset
    19
30f48431927b Initial revision
claus
parents:
diff changeset
    20
LabelledEnterField comment:'
30f48431927b Initial revision
claus
parents:
diff changeset
    21
COPYRIGHT (c) 1991 by Claus Gittinger
34
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    22
	      All Rights Reserved
12
30f48431927b Initial revision
claus
parents:
diff changeset
    23
62
claus
parents: 56
diff changeset
    24
$Header: /cvs/stx/stx/libwidg2/LabelledEnterField.st,v 1.8 1995-06-06 04:17:27 claus Exp $
12
30f48431927b Initial revision
claus
parents:
diff changeset
    25
written winter 91 by claus
30f48431927b Initial revision
claus
parents:
diff changeset
    26
'!
30f48431927b Initial revision
claus
parents:
diff changeset
    27
34
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    28
!LabelledEnterField class methodsFor:'documentation'!
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    29
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    30
documentation
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    31
"
56
claus
parents: 53
diff changeset
    32
    An EnterField with a name. Its protocol mimics that of an
claus
parents: 53
diff changeset
    33
    inputfield for the most common cases. However, for access to
claus
parents: 53
diff changeset
    34
    some specific things, you have to get the components 
claus
parents: 53
diff changeset
    35
    (labelField and inputField)
claus
parents: 53
diff changeset
    36
    and send those message directly.
claus
parents: 53
diff changeset
    37
"
claus
parents: 53
diff changeset
    38
!
claus
parents: 53
diff changeset
    39
claus
parents: 53
diff changeset
    40
examples 
claus
parents: 53
diff changeset
    41
"
claus
parents: 53
diff changeset
    42
    |top panel f1 f2 f3 f4 model data|
claus
parents: 53
diff changeset
    43
claus
parents: 53
diff changeset
    44
    data := #('John' 'F' 'Smith' '1234567').
claus
parents: 53
diff changeset
    45
    model := Plug new.
claus
parents: 53
diff changeset
    46
    model respondTo:#firstName with:[data at:1].
claus
parents: 53
diff changeset
    47
    model respondTo:#firstName: with:[:arg | data at:1 put:arg].
claus
parents: 53
diff changeset
    48
    model respondTo:#middleInitial with:[data at:2].
claus
parents: 53
diff changeset
    49
    model respondTo:#middleInitial: with:[:arg | data at:2 put:arg].
claus
parents: 53
diff changeset
    50
    model respondTo:#lastName with:[data at:3].
claus
parents: 53
diff changeset
    51
    model respondTo:#lastName: with:[:arg | data at:3 put:arg].
claus
parents: 53
diff changeset
    52
    model respondTo:#telNo with:[data at:4].
claus
parents: 53
diff changeset
    53
    model respondTo:#telNo: with:[:arg | data at:4 put:arg].
34
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    54
56
claus
parents: 53
diff changeset
    55
    top := StandardSystemView new.
claus
parents: 53
diff changeset
    56
    top extent:300@300.
claus
parents: 53
diff changeset
    57
claus
parents: 53
diff changeset
    58
    panel := VerticalPanelView origin:0.0@0.0 corner:1.0@1.0 in:top.
claus
parents: 53
diff changeset
    59
    panel verticalLayout:#topSpace.
claus
parents: 53
diff changeset
    60
claus
parents: 53
diff changeset
    61
    f1 := LabelledEnterField new.
claus
parents: 53
diff changeset
    62
    f1 label:'Firstname:'.
claus
parents: 53
diff changeset
    63
    f1 model:model; aspect:#firstName; change:#firstName:.
claus
parents: 53
diff changeset
    64
    panel add:f1.
claus
parents: 53
diff changeset
    65
claus
parents: 53
diff changeset
    66
    f2 := LabelledEnterField new.
claus
parents: 53
diff changeset
    67
    f2 label:'Middle Initial:'.
claus
parents: 53
diff changeset
    68
    f2 model:model; aspect:#middleInitial; change:#middleInitial:.
claus
parents: 53
diff changeset
    69
    panel add:f2.
claus
parents: 53
diff changeset
    70
claus
parents: 53
diff changeset
    71
    f3 := LabelledEnterField new.
claus
parents: 53
diff changeset
    72
    f3 label:'Lastname:'.
claus
parents: 53
diff changeset
    73
    f3 model:model; aspect:#lastName; change:#lastName:.
claus
parents: 53
diff changeset
    74
    panel add:f3.
claus
parents: 53
diff changeset
    75
claus
parents: 53
diff changeset
    76
    f4 := LabelledEnterField new.
claus
parents: 53
diff changeset
    77
    f4 label:'Telephone:'.
claus
parents: 53
diff changeset
    78
    f4 model:model; aspect:#telNo; change:#telNo:.
claus
parents: 53
diff changeset
    79
    panel add:f4.
claus
parents: 53
diff changeset
    80
claus
parents: 53
diff changeset
    81
    top open
34
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    82
"
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    83
!
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    84
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    85
version
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    86
"
62
claus
parents: 56
diff changeset
    87
$Header: /cvs/stx/stx/libwidg2/LabelledEnterField.st,v 1.8 1995-06-06 04:17:27 claus Exp $
34
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    88
"
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    89
!
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    90
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    91
copyright
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    92
"
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    93
 COPYRIGHT (c) 1991 by Claus Gittinger
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    94
	      All Rights Reserved
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    95
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    96
 This software is furnished under a license and may be used
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    97
 only in accordance with the terms of that license and with the
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    98
 inclusion of the above copyright notice.   This software may not
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    99
 be provided or otherwise made available to, or used by, any
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
   100
 other person.  No title to or ownership of the software is
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
   101
 hereby transferred.
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
   102
"
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
   103
! !
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
   104
12
30f48431927b Initial revision
claus
parents:
diff changeset
   105
!LabelledEnterField methodsFor:'initialization'!
30f48431927b Initial revision
claus
parents:
diff changeset
   106
30f48431927b Initial revision
claus
parents:
diff changeset
   107
initialize
30f48431927b Initial revision
claus
parents:
diff changeset
   108
    "setup; create the label and an enterfield"
30f48431927b Initial revision
claus
parents:
diff changeset
   109
30f48431927b Initial revision
claus
parents:
diff changeset
   110
    super initialize.
30f48431927b Initial revision
claus
parents:
diff changeset
   111
56
claus
parents: 53
diff changeset
   112
    labelField := Label label:'l' in:self.
claus
parents: 53
diff changeset
   113
    textField := EditField in:self.
claus
parents: 53
diff changeset
   114
claus
parents: 53
diff changeset
   115
    labelField resize.
12
30f48431927b Initial revision
claus
parents:
diff changeset
   116
    labelField level:0.
56
claus
parents: 53
diff changeset
   117
    labelField origin:(margin @ (margin + textField margin)).
46
bd949a9cc2c7 *** empty log message ***
claus
parents: 34
diff changeset
   118
12
30f48431927b Initial revision
claus
parents:
diff changeset
   119
    textField origin:[(labelField origin x + labelField width) @ level]
34
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
   120
	      extent:[(self width 
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
   121
		      - margin - margin
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
   122
		      - labelField width) @ (textField heightIncludingBorder)].
12
30f48431927b Initial revision
claus
parents:
diff changeset
   123
46
bd949a9cc2c7 *** empty log message ***
claus
parents: 34
diff changeset
   124
    "
bd949a9cc2c7 *** empty log message ***
claus
parents: 34
diff changeset
   125
     forward keyboard input to the enterField
bd949a9cc2c7 *** empty log message ***
claus
parents: 34
diff changeset
   126
    "
53
claus
parents: 49
diff changeset
   127
    self delegate:(KeyboardForwarder from:self toView:textField)
46
bd949a9cc2c7 *** empty log message ***
claus
parents: 34
diff changeset
   128
bd949a9cc2c7 *** empty log message ***
claus
parents: 34
diff changeset
   129
    "
bd949a9cc2c7 *** empty log message ***
claus
parents: 34
diff changeset
   130
     LabelledEnterField new realize
bd949a9cc2c7 *** empty log message ***
claus
parents: 34
diff changeset
   131
    "
12
30f48431927b Initial revision
claus
parents:
diff changeset
   132
! !
30f48431927b Initial revision
claus
parents:
diff changeset
   133
56
claus
parents: 53
diff changeset
   134
!LabelledEnterField methodsFor:'queries'!
claus
parents: 53
diff changeset
   135
62
claus
parents: 56
diff changeset
   136
preferredExtent
56
claus
parents: 53
diff changeset
   137
    |p lx ly ix iy|
claus
parents: 53
diff changeset
   138
62
claus
parents: 56
diff changeset
   139
    p := labelField preferredExtent.
56
claus
parents: 53
diff changeset
   140
    lx := p x. ly := p y.
62
claus
parents: 56
diff changeset
   141
    p := textField preferredExtent.
56
claus
parents: 53
diff changeset
   142
    ix := p x. iy := p y.
claus
parents: 53
diff changeset
   143
    ^ (lx + ix) @ (ly max:iy)
claus
parents: 53
diff changeset
   144
! !
claus
parents: 53
diff changeset
   145
12
30f48431927b Initial revision
claus
parents:
diff changeset
   146
!LabelledEnterField methodsFor:'accessing'!
30f48431927b Initial revision
claus
parents:
diff changeset
   147
56
claus
parents: 53
diff changeset
   148
labelView
claus
parents: 53
diff changeset
   149
    "return the label component"
claus
parents: 53
diff changeset
   150
claus
parents: 53
diff changeset
   151
    ^ labelField
claus
parents: 53
diff changeset
   152
!
claus
parents: 53
diff changeset
   153
claus
parents: 53
diff changeset
   154
inputField
claus
parents: 53
diff changeset
   155
    "return the input field component"
claus
parents: 53
diff changeset
   156
claus
parents: 53
diff changeset
   157
    ^ textField
claus
parents: 53
diff changeset
   158
! !
claus
parents: 53
diff changeset
   159
claus
parents: 53
diff changeset
   160
!LabelledEnterField methodsFor:'accessing-behavior'!
claus
parents: 53
diff changeset
   161
24
6704fad5eb7d *** empty log message ***
claus
parents: 12
diff changeset
   162
disable
56
claus
parents: 53
diff changeset
   163
    textField disable
claus
parents: 53
diff changeset
   164
!
claus
parents: 53
diff changeset
   165
claus
parents: 53
diff changeset
   166
enable
claus
parents: 53
diff changeset
   167
    textField enable
claus
parents: 53
diff changeset
   168
! !
claus
parents: 53
diff changeset
   169
claus
parents: 53
diff changeset
   170
!LabelledEnterField methodsFor:'accessing-mvc'!
claus
parents: 53
diff changeset
   171
claus
parents: 53
diff changeset
   172
model:aModel
claus
parents: 53
diff changeset
   173
    textField model:aModel.
claus
parents: 53
diff changeset
   174
    labelField model:aModel
claus
parents: 53
diff changeset
   175
!
claus
parents: 53
diff changeset
   176
claus
parents: 53
diff changeset
   177
changeMessage:aSymbol
claus
parents: 53
diff changeset
   178
    textField changeMessage:aSymbol
24
6704fad5eb7d *** empty log message ***
claus
parents: 12
diff changeset
   179
!
6704fad5eb7d *** empty log message ***
claus
parents: 12
diff changeset
   180
56
claus
parents: 53
diff changeset
   181
aspect:aspectSymbol 
claus
parents: 53
diff changeset
   182
    textField aspect:aspectSymbol.
claus
parents: 53
diff changeset
   183
    labelField aspect:aspectSymbol
claus
parents: 53
diff changeset
   184
!
claus
parents: 53
diff changeset
   185
claus
parents: 53
diff changeset
   186
labelMessage:aSymbol 
claus
parents: 53
diff changeset
   187
    labelField labelMessage:aSymbol
claus
parents: 53
diff changeset
   188
!
claus
parents: 53
diff changeset
   189
claus
parents: 53
diff changeset
   190
addModelInterfaceTo:aDictionary
claus
parents: 53
diff changeset
   191
    labelField addModelInterfaceTo:aDictionary.
claus
parents: 53
diff changeset
   192
    textField addModelInterfaceTo:aDictionary
claus
parents: 53
diff changeset
   193
! !
claus
parents: 53
diff changeset
   194
claus
parents: 53
diff changeset
   195
!LabelledEnterField methodsFor:'accessing-look'!
claus
parents: 53
diff changeset
   196
12
30f48431927b Initial revision
claus
parents:
diff changeset
   197
label:aString
30f48431927b Initial revision
claus
parents:
diff changeset
   198
    labelField label:aString
30f48431927b Initial revision
claus
parents:
diff changeset
   199
!
30f48431927b Initial revision
claus
parents:
diff changeset
   200
56
claus
parents: 53
diff changeset
   201
editValue 
claus
parents: 53
diff changeset
   202
    ^ textField editValue 
claus
parents: 53
diff changeset
   203
!
claus
parents: 53
diff changeset
   204
claus
parents: 53
diff changeset
   205
editValue:something 
claus
parents: 53
diff changeset
   206
    textField editValue:something 
claus
parents: 53
diff changeset
   207
!
claus
parents: 53
diff changeset
   208
24
6704fad5eb7d *** empty log message ***
claus
parents: 12
diff changeset
   209
contents
6704fad5eb7d *** empty log message ***
claus
parents: 12
diff changeset
   210
    ^ textField contents
6704fad5eb7d *** empty log message ***
claus
parents: 12
diff changeset
   211
!
6704fad5eb7d *** empty log message ***
claus
parents: 12
diff changeset
   212
12
30f48431927b Initial revision
claus
parents:
diff changeset
   213
contents:aString
30f48431927b Initial revision
claus
parents:
diff changeset
   214
    textField contents:aString
30f48431927b Initial revision
claus
parents:
diff changeset
   215
! !