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