InterestConverter.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 10 Jun 2015 08:43:00 +0100
branchjv
changeset 18482 68a43e2b3e78
parent 18011 deb0c3355881
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5272
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
     1
"
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
     2
 COPYRIGHT (c) 1996 by Claus Gittinger / eXept Software AG
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
     3
              All Rights Reserved
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
     4
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
     5
 This software is furnished under a license and may be used
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
     6
 only in accordance with the terms of that license and with the
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
     8
 be provided or otherwise made available to, or used by, any
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
     9
 other person.  No title to or ownership of the software is
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    10
 hereby transferred.
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    11
"
6056
5406d407a9bb better displayString
Claus Gittinger <cg@exept.de>
parents: 5272
diff changeset
    12
"{ Package: 'stx:libbasic' }"
5406d407a9bb better displayString
Claus Gittinger <cg@exept.de>
parents: 5272
diff changeset
    13
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
Object subclass:#InterestConverter
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    15
	instanceVariableNames:'destination selector aspect'
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	classVariableNames:''
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	poolDictionaries:''
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	category:'Interface-Support-Models'
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!InterestConverter class methodsFor:'documentation'!
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
5272
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    23
copyright
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    24
"
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    25
 COPYRIGHT (c) 1996 by Claus Gittinger / eXept Software AG
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    26
              All Rights Reserved
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    27
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    28
 This software is furnished under a license and may be used
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    29
 only in accordance with the terms of that license and with the
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    31
 be provided or otherwise made available to, or used by, any
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    32
 other person.  No title to or ownership of the software is
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    33
 hereby transferred.
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    34
"
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    35
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    36
!
1dad283c5256 copyrights
Claus Gittinger <cg@exept.de>
parents: 2717
diff changeset
    37
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
documentation
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
"
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    instances convert update messages into messages as setup via
8436
4a9e5fbe67e5 Fix typo in comment
Stefan Vogel <sv@exept.de>
parents: 7347
diff changeset
    41
    #onChangeSend:to:.
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    This is a temporary kludge and will be replaced by a more intelligent
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    DependencyCollection class in the future.
1291
74d61fd64c4a documentation
Claus Gittinger <cg@exept.de>
parents: 1098
diff changeset
    44
74d61fd64c4a documentation
Claus Gittinger <cg@exept.de>
parents: 1098
diff changeset
    45
    [author:]
74d61fd64c4a documentation
Claus Gittinger <cg@exept.de>
parents: 1098
diff changeset
    46
        Claus Gittinger
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
"
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
examples
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
"
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    52
  #onChangeSend:to / #retractInterestsIn:
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    53
  interested in any change:
1315
85a27a31a690 examples
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    54
                                                                        [exBegin]
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    |p b|
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
    57
    b := [Transcript showCR:'--> notification: point has changed'].
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    p := Point new.
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    p onChangeSend:#value to:b.
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    Delay waitForSeconds:1.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
    62
    Transcript showCR:'sending change ...'.
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    p changed.
2716
08cf98cf1a53 comment
Claus Gittinger <cg@exept.de>
parents: 1801
diff changeset
    64
    Transcript showCR:'retracting ...'.
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    p retractInterestsFor:b.
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    Delay waitForSeconds:1.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
    67
    Transcript showCR:'sending change ...'.
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    p changed.
1315
85a27a31a690 examples
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    69
                                                                        [exEnd]
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    70
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    71
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    72
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    73
  #expressInterestIn:for:sendBack / #retractInterestIn:for:
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    74
  interested in a specific change:
1315
85a27a31a690 examples
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
    75
                                                                        [exBegin]
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    76
     |p b|
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    77
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
    78
     b := [Transcript showCR:'the point changed'].
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    79
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    80
     p := Point new.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
    81
     Transcript showCR:'interest in #foo'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    82
     p expressInterestIn:#foo for:b sendBack:#value.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    83
     p x:1.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
    84
     Transcript showCR:'now changing #bar'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    85
     p changed:#bar.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    86
     Transcript cr.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    87
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    88
     Delay waitForSeconds:1.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
    89
     Transcript showCR:'now changing #foo'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    90
     p changed:#foo.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    91
     Transcript cr.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    92
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    93
     Delay waitForSeconds:1.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
    94
     Transcript showCR:'no more interest in #foo'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    95
     p retractInterestIn:#foo for:b.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
    96
     Transcript showCR:'now changing #foo'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    97
     p changed:#foo.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    98
     Transcript cr.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    99
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   100
     Delay waitForSeconds:1.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
   101
     Transcript showCR:'interest in #bar now'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   102
     p expressInterestIn:#bar for:b sendBack:#value.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
   103
     Transcript showCR:'now changing #foo'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   104
     p changed:#foo.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
   105
     Transcript showCR:'now changing #bar'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   106
     p changed:#bar.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   107
     Transcript cr.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   108
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   109
     Delay waitForSeconds:1.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
   110
     Transcript showCR:'interest in #foo now'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   111
     p expressInterestIn:#foo for:b sendBack:#value.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
   112
     Transcript showCR:'now changing #foo'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   113
     p changed:#foo.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
   114
     Transcript showCR:'now changing #bar'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   115
     p changed:#bar.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   116
     Transcript cr.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   117
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   118
     Delay waitForSeconds:1.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
   119
     Transcript showCR:'no more interests'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   120
     p retractInterestsFor:b.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
   121
     Transcript showCR:'now changing #foo'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   122
     p changed:#foo.
1422
9a0b792f2953 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 1315
diff changeset
   123
     Transcript showCR:'now changing #bar'.
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   124
     p changed:#bar.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   125
     Transcript cr.
1315
85a27a31a690 examples
Claus Gittinger <cg@exept.de>
parents: 1291
diff changeset
   126
                                                                        [exEnd]
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
"
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
! !
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
!InterestConverter class methodsFor:'instance creation'!
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
destination:anObject selector:aSelector
2717
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   133
    "create & return an interestConverter, which sends aSelector
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   134
     to anObject when a change notification arrives"
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   135
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
    ^ self basicNew destination:anObject selector:aSelector
2717
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   137
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   138
    "Modified: 21.5.1997 / 11:59:08 / cg"
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   139
!
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   140
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   141
destination:anObject selector:aSelector aspect:aspect
2717
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   142
    "create & return an interestConverter, which sends aSelector
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   143
     to anObject when a change notification for aspect arrives"
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   144
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   145
    ^ self basicNew destination:anObject selector:aSelector aspect:aspect
2717
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   146
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   147
    "Modified: 21.5.1997 / 11:59:26 / cg"
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
! !
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
!InterestConverter methodsFor:'accessing'!
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
2717
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   152
aspect
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   153
    "return my aspect (if any)"
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   154
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   155
    ^ aspect
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   156
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   157
    "Created: 8.3.1996 / 23:00:37 / cg"
2717
c1cd0f1920a4 comments
Claus Gittinger <cg@exept.de>
parents: 2716
diff changeset
   158
    "Modified: 21.5.1997 / 11:59:43 / cg"
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   159
!
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   160
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
destination
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    ^ destination
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    "Created: 7.3.1996 / 10:57:01 / cg"
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
!
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
destination:dest selector:sel
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    destination := dest.
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    selector := sel
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    "Created: 7.3.1996 / 10:49:13 / cg"
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   172
!
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   173
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   174
destination:dest selector:sel aspect:a
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   175
    destination := dest.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   176
    selector := sel.
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   177
    aspect := a
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   178
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   179
    "Created: 8.3.1996 / 22:42:03 / cg"
7347
1c4e0be2c4f0 add access method for selector
penk
parents: 6056
diff changeset
   180
!
1c4e0be2c4f0 add access method for selector
penk
parents: 6056
diff changeset
   181
1c4e0be2c4f0 add access method for selector
penk
parents: 6056
diff changeset
   182
selector
1c4e0be2c4f0 add access method for selector
penk
parents: 6056
diff changeset
   183
    ^ selector
1c4e0be2c4f0 add access method for selector
penk
parents: 6056
diff changeset
   184
1c4e0be2c4f0 add access method for selector
penk
parents: 6056
diff changeset
   185
    "Created: 7.3.1996 / 10:57:01 / cg"
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
! !
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
!InterestConverter methodsFor:'change & update'!
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
update:something with:aParameter from:someObject
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   191
    (aspect isNil or:[aspect == something]) ifTrue:[
11715
03f0d5aee2fd allow for 0,1,2 arguments (update params) to be passed to interest blocks.
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
   192
        (selector numArgs) == 0 ifTrue:[
03f0d5aee2fd allow for 0,1,2 arguments (update params) to be passed to interest blocks.
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
   193
            destination perform:selector
03f0d5aee2fd allow for 0,1,2 arguments (update params) to be passed to interest blocks.
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
   194
        ] ifFalse:[
11737
cbf8d519c784 update:with:from: - up to 3 arguments into block
Claus Gittinger <cg@exept.de>
parents: 11715
diff changeset
   195
            destination perform:selector withOptionalArgument:something and:aParameter and:someObject
11715
03f0d5aee2fd allow for 0,1,2 arguments (update params) to be passed to interest blocks.
Claus Gittinger <cg@exept.de>
parents: 9281
diff changeset
   196
        ]
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   197
    ]
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
    "Created: 7.3.1996 / 10:14:30 / cg"
1098
e8543399e2a0 support aspect-specific interests
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
   200
    "Modified: 8.3.1996 / 22:41:53 / cg"
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
! !
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
6056
5406d407a9bb better displayString
Claus Gittinger <cg@exept.de>
parents: 5272
diff changeset
   203
!InterestConverter methodsFor:'printing'!
5406d407a9bb better displayString
Claus Gittinger <cg@exept.de>
parents: 5272
diff changeset
   204
14286
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   205
displayOn:aGCOrStream
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   206
    "Compatibility
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   207
     append a printed desription on some stream (Dolphin,  Squeak)
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   208
     OR:
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   209
     display the receiver in a graphicsContext at 0@0 (ST80).
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   210
     This method allows for any object to be displayed in some view
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   211
     (although the fallBack is to display its printString ...)"
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   212
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   213
    "/ what a kludge - Dolphin and Squeak mean: printOn: a stream;
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   214
    "/ ST/X (and some old ST80's) mean: draw-yourself on a GC.
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   215
    aGCOrStream isStream ifFalse:[
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   216
        ^ super displayOn:aGCOrStream.
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   217
    ].
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   218
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   219
    aGCOrStream 
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   220
        nextPutAll:self class name;
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   221
        nextPutAll:'(sending '.
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   222
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   223
    selector storeOn:aGCOrStream.
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   224
    aGCOrStream nextPutAll:' to '.
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   225
    destination printOn:aGCOrStream.
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   226
    aGCOrStream nextPut:$).
6056
5406d407a9bb better displayString
Claus Gittinger <cg@exept.de>
parents: 5272
diff changeset
   227
! !
5406d407a9bb better displayString
Claus Gittinger <cg@exept.de>
parents: 5272
diff changeset
   228
9281
9f05718319a0 interest stuff
Claus Gittinger <cg@exept.de>
parents: 8436
diff changeset
   229
!InterestConverter methodsFor:'testing'!
9f05718319a0 interest stuff
Claus Gittinger <cg@exept.de>
parents: 8436
diff changeset
   230
9f05718319a0 interest stuff
Claus Gittinger <cg@exept.de>
parents: 8436
diff changeset
   231
isInterestConverter
9f05718319a0 interest stuff
Claus Gittinger <cg@exept.de>
parents: 8436
diff changeset
   232
    ^ true
9f05718319a0 interest stuff
Claus Gittinger <cg@exept.de>
parents: 8436
diff changeset
   233
! !
9f05718319a0 interest stuff
Claus Gittinger <cg@exept.de>
parents: 8436
diff changeset
   234
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
!InterestConverter class methodsFor:'documentation'!
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
version
14286
2998078bc2aa Implement #displayOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 11737
diff changeset
   238
    ^ '$Header: /cvs/stx/stx/libbasic/InterestConverter.st,v 1.16 2012-08-03 15:52:54 stefan Exp $'
1074
e20967eee4bd renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
! !