SubCanvas.st
author Claus Gittinger <cg@exept.de>
Fri, 27 Jun 1997 19:24:28 +0200
changeset 631 5e1743a03c89
parent 629 b453f9b47db4
permissions -rw-r--r--
checkin from browser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
591
bde52792fa62 better implementation
ca
parents: 501
diff changeset
     1
ScrollableView subclass:#SubCanvas
601
63b425107298 keep application
ca
parents: 593
diff changeset
     2
	instanceVariableNames:'client spec application'
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	classVariableNames:''
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	poolDictionaries:''
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	category:'Views-Basic'
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
!
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
!SubCanvas methodsFor:'accessing'!
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
releaseAllComponents
591
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    12
    scrolledView destroySubViews.
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    13
! !
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
591
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    15
!SubCanvas methodsFor:'initialization'!
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    16
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    17
initialize
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    18
    super initialize.
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    19
    self scrolledView:View new
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
! !
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
601
63b425107298 keep application
ca
parents: 593
diff changeset
    22
!SubCanvas methodsFor:'queries'!
63b425107298 keep application
ca
parents: 593
diff changeset
    23
63b425107298 keep application
ca
parents: 593
diff changeset
    24
application
63b425107298 keep application
ca
parents: 593
diff changeset
    25
    "return the application, under which this view was opened,
63b425107298 keep application
ca
parents: 593
diff changeset
    26
    "
63b425107298 keep application
ca
parents: 593
diff changeset
    27
63b425107298 keep application
ca
parents: 593
diff changeset
    28
    application notNil ifTrue:[
63b425107298 keep application
ca
parents: 593
diff changeset
    29
        ^ application
63b425107298 keep application
ca
parents: 593
diff changeset
    30
    ].
63b425107298 keep application
ca
parents: 593
diff changeset
    31
    ^ super application
63b425107298 keep application
ca
parents: 593
diff changeset
    32
63b425107298 keep application
ca
parents: 593
diff changeset
    33
    "Modified: 13.1.1997 / 20:30:31 / cg"
63b425107298 keep application
ca
parents: 593
diff changeset
    34
63b425107298 keep application
ca
parents: 593
diff changeset
    35
63b425107298 keep application
ca
parents: 593
diff changeset
    36
! !
63b425107298 keep application
ca
parents: 593
diff changeset
    37
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
!SubCanvas methodsFor:'rebuilding'!
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
client:anApplicationModel
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    "release existing components and generate new components from
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
     the applications windowSpec."
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    ^ self client:anApplicationModel spec:#windowSpec
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
client:anApplicationModel spec:aWindowSpec
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    "release existing components and generate new components from
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
     the applications windowSpec."
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    |b newBuilder|
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    "/ If the application already has a builder, create a subBilder;
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    "/ otherwise a new one
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    ((anApplicationModel respondsTo:#builder)
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
      and:[(b := anApplicationModel builder) notNil]) ifTrue:[
629
b453f9b47db4 access builder from application if no builder
ca
parents: 612
diff changeset
    58
          newBuilder := b. "/ newSubBuilder
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    ] ifFalse:[
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
        newBuilder := UIBuilder new
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    ].
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    ^ self client:anApplicationModel spec:aWindowSpec builder:newBuilder
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    "Created: 6.3.1997 / 15:53:25 / cg"
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    "Modified: 6.3.1997 / 15:59:44 / cg"
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
client:anApplicationModel spec:aWindowSpecOrSpecSymbol builder:aBuilder
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    "release existing components and generate new components from
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
     the given windowSpec, using the given builder."
591
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    71
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    72
    |spec |
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
612
ca
parents: 601
diff changeset
    74
    scrolledView notNil ifTrue:[
ca
parents: 601
diff changeset
    75
        scrolledView destroySubViews
ca
parents: 601
diff changeset
    76
    ].
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    spec := aWindowSpecOrSpecSymbol.
593
ca
parents: 591
diff changeset
    79
601
63b425107298 keep application
ca
parents: 593
diff changeset
    80
    application := anApplicationModel.
63b425107298 keep application
ca
parents: 593
diff changeset
    81
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    spec isSymbol ifTrue:[
593
ca
parents: 591
diff changeset
    83
        anApplicationModel isNil ifTrue:[
ca
parents: 591
diff changeset
    84
            spec := nil
ca
parents: 591
diff changeset
    85
        ] ifFalse:[
ca
parents: 591
diff changeset
    86
            spec := anApplicationModel class interfaceSpecFor:spec
ca
parents: 591
diff changeset
    87
        ]
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    ].
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
501
017ec26a38c5 implementing
ca
parents: 496
diff changeset
    90
    spec notNil ifTrue:[
591
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    91
        aBuilder buildFromSpec:spec in:scrolledView.
501
017ec26a38c5 implementing
ca
parents: 496
diff changeset
    92
    ].
017ec26a38c5 implementing
ca
parents: 496
diff changeset
    93
    self realized ifTrue:[
591
bde52792fa62 better implementation
ca
parents: 501
diff changeset
    94
        scrolledView realizeAllSubViews
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    ].
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    ^ aBuilder
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
! !
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
!SubCanvas class methodsFor:'documentation'!
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
version
629
b453f9b47db4 access builder from application if no builder
ca
parents: 612
diff changeset
   102
    ^ '$Header: /cvs/stx/stx/libview2/Attic/SubCanvas.st,v 1.7 1997-06-27 09:58:47 ca Exp $'
496
60a1effff295 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
! !