DictionaryAdaptor.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 07 Jun 2019 19:57:30 +0100
branchjv
changeset 4278 8cc5f9eafef8
parent 3855 1db7742d33ad
permissions -rw-r--r--
Set view's UUID when building a view from spec
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3855
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
     1
"
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
     2
 COPYRIGHT (c) Claus Gittinger / 2006 by eXept Software AG
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
     3
              All Rights Reserved
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
     4
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
     5
 This software is furnished under a license and may be used
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
     6
 only in accordance with the terms of that license and with the
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
     8
 be provided or otherwise made available to, or used by, any
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
     9
 other person.  No title to or ownership of the software is
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    10
 hereby transferred.
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    11
"
2415
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libview2' }"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    13
3855
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    14
"{ NameSpace: Smalltalk }"
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    15
2415
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    16
ProtocolAdaptor subclass:#DictionaryAdaptor
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:'myAspect'
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    20
	category:'Interface-Support-Models'
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    21
!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    22
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    23
!DictionaryAdaptor class methodsFor:'documentation'!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    24
3855
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    25
copyright
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    26
"
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    27
 COPYRIGHT (c) Claus Gittinger / 2006 by eXept Software AG
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    28
              All Rights Reserved
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    29
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    30
 This software is furnished under a license and may be used
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    31
 only in accordance with the terms of that license and with the
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    33
 be provided or otherwise made available to, or used by, any
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    34
 other person.  No title to or ownership of the software is
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    35
 hereby transferred.
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    36
"
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    37
!
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
    38
2415
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    39
documentation
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    40
"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    41
    Similar to AspectAdaptor, but accesses a Dictionary instead of
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    42
    a classes instance variables.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    43
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    44
    [author:]
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    45
        Stefan Vogel (stefan@zwerg)
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    46
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    47
    [instance variables:]
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    48
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    49
    [class variables:]
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    50
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    51
    [see also:]
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    52
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    53
"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    54
!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    55
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    56
examples
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    57
"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    58
                                                                        [exBegin]
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    59
        |dialog dict dataModel|
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    60
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    61
        dict := Dictionary new.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    62
        dict
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    63
            at:#field1 put:'hello';
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    64
            at:#field2 put:'one';
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    65
            at:#field3 put:'two';
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    66
            at:#field4 put:'three'.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    67
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    68
        dialog := DialogBox new.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    69
        dialog addTextLabel:'1:'.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    70
        dialog addInputFieldOn:(DictionaryAdaptor new
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    71
                                        subject:dict; 
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    72
                                        aspect:#field1). 
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    73
        dialog addTextLabel:'2:'.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    74
        dialog addInputFieldOn:(DictionaryAdaptor new
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    75
                                        subject:dict; 
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    76
                                        forAspect:#field2).
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    77
        dialog addTextLabel:'3:'.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    78
        dialog addInputFieldOn:(DictionaryAdaptor new
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    79
                                        subject:dict; 
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    80
                                        aspect:#field3). 
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    81
        dialog addTextLabel:'4:'.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    82
        dialog addInputFieldOn:(DictionaryAdaptor new
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    83
                                        subject:dict; 
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    84
                                        forAspect:#field4).
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    85
        dialog addOkButton.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    86
        dict inspect.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    87
        dialog open.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    88
        dialog accepted ifTrue:[
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    89
            Transcript showCR:'data now: ' , dict printString
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    90
        ]
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    91
                                                                        [exEnd]
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    92
"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    93
! !
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    94
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    95
!DictionaryAdaptor class methodsFor:'instance creation'!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    96
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    97
forAspect:anAspect
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    98
    "create and return a new adaptor, which forwards requests
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    99
     to anObject, using anAspect to access a Dictionary. 
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   100
     The returned object can be used in place of a ValueHolder"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   101
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   102
    ^ self new forAspect:anAspect
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   103
!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   104
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   105
subject:anObject sendsUpdates:aBoolean aspect:aspect
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   106
    "create and return a new adaptor, which forwards requests
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   107
     to anObject, using #at:aspect and #at:aspect put: for access.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   108
     The returned object can be used in place of a ValueHolder"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   109
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   110
    ^ (self subject:anObject sendsUpdates:aBoolean) aspect:aspect
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   111
! !
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   112
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   113
!DictionaryAdaptor methodsFor:'accessing-spec'!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   114
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   115
aspect:aSelector
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   116
    "set the adapters change aspect - this is the aspect of the update message,
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   117
     on which the adaptor reacts"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   118
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   119
    myAspect := aSelector.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   120
!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   121
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   122
forAspect
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   123
    "get the adapters aspect"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   124
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   125
    ^ myAspect
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   126
!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   127
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   128
forAspect:aSelector
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   129
    "set the adapters aspect"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   130
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   131
    myAspect := aSelector.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   132
! !
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   133
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   134
!DictionaryAdaptor methodsFor:'accessing-value'!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   135
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   136
setValue:newValue
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   137
    "set the value - this forwards a putMessage to the target"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   138
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   139
    |target oldValue|
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   140
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   141
    target := self subjectValue.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   142
    target isNil ifTrue:[^ nil].
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   143
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   144
    oldValue := target at:myAspect.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   145
    oldValue ~~ newValue ifTrue:[
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   146
        target at:myAspect put:newValue.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   147
    ]
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   148
!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   149
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   150
value
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   151
    "translate a query for my value from my user
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   152
     into an aspect access towards my subject"
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   153
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   154
    |target|
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   155
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   156
    target := self subjectValue.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   157
    target isNil ifTrue:[^ nil].
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   158
    ^ target at:myAspect ifAbsent:[].
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   159
!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   160
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   161
value:newValue
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   162
    "set the value - this changes the target with #at:put:
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   163
     and sends out a changeNotification if the value did really change."
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   164
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   165
    |target oldValue|
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   166
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   167
    target := self subjectValue.
2745
c46c41c89a78 without target, should return self - not nil
Claus Gittinger <cg@exept.de>
parents: 2415
diff changeset
   168
    target isNil ifTrue:[^ self].
2415
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   169
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   170
    oldValue := target at:myAspect ifAbsent:[].
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   171
    oldValue ~~ newValue ifTrue:[
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   172
        target at:myAspect put:newValue.
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   173
        subjectSendsUpdates ifFalse:[
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   174
            self changed:#value
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   175
        ]
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   176
    ]
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   177
! !
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   178
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   179
!DictionaryAdaptor methodsFor:'change & update'!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   180
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   181
update:something with:aParameter from:changedObject
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   182
    "translate an update from the model into a #value-change
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   183
     via my depenedents ..."
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   184
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   185
    ((changedObject == subject and:[something == myAspect])
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   186
    or:[changedObject == subjectChannel]) ifTrue:[
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   187
        self changed:#value
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   188
    ].
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   189
! !
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   190
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   191
!DictionaryAdaptor class methodsFor:'documentation'!
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   192
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   193
version
2745
c46c41c89a78 without target, should return self - not nil
Claus Gittinger <cg@exept.de>
parents: 2415
diff changeset
   194
    ^ '$Header: /cvs/stx/stx/libview2/DictionaryAdaptor.st,v 1.2 2009-09-18 16:14:09 cg Exp $'
2415
27a7fd9f332a initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   195
! !
3855
1db7742d33ad Win32: Build libjpeg in its own directory, out-of-source-tree.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2745
diff changeset
   196