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