ApplicationModel.st
author claus
Wed, 10 May 1995 04:26:18 +0200
changeset 71 5b34cd877517
parent 69 225a9efd50f5
child 72 ba662a33428d
permissions -rw-r--r--
.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     1
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1995 by Claus Gittinger
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     3
	      All Rights Reserved
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     4
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
53bc56e07e8f Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    11
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    12
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    13
'From Smalltalk/X, Version:2.10.5 on 24-mar-1995 at 9:31:53 am'!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    14
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    15
Model subclass:#ApplicationModel
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    16
	 instanceVariableNames:'builder resources'
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    17
	 classVariableNames:''
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    18
	 poolDictionaries:''
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    19
	 category:'Interface-Framework'
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    20
!
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    21
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    22
ApplicationModel class instanceVariableNames:'ClassResources'!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    23
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    24
!ApplicationModel class methodsFor:'documentation'!
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    25
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    26
copyright
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    27
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    28
 COPYRIGHT (c) 1995 by Claus Gittinger
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    29
	      All Rights Reserved
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    30
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    31
 This software is furnished under a license and may be used
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    32
 only in accordance with the terms of that license and with the
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    33
 inclusion of the above copyright notice.   This software may not
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    34
 be provided or otherwise made available to, or used by, any
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    35
 other person.  No title to or ownership of the software is
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    36
 hereby transferred.
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    37
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    38
!
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    39
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    40
version
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    41
"
71
claus
parents: 69
diff changeset
    42
$Header: /cvs/stx/stx/libview2/ApplicationModel.st,v 1.7 1995-05-10 02:24:39 claus Exp $
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    43
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    44
!
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    45
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    46
documentation
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    47
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    48
    Since many ST-80 classes are subclasses of ApplicationModel, this class
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    49
    is provided here to allow easier porting of ST-80 code.
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    50
63
claus
parents: 61
diff changeset
    51
    It does not (currently) provide much functionality and is NOT
claus
parents: 61
diff changeset
    52
    compatible to the corresponding ST80 class; therefore, manual
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    53
    changes have to be made to get those applications to run under ST/X.
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    54
    (but at least, this enables you to fileIn that code and have a superclass
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    55
    for them)
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    56
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    57
    The classResources have been put into this class to allow ST/X
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    58
    applications (which used to be subclasses of StandardSystemView)
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    59
    to migrate smoothly into ApplicationModels (which is better design ...).
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    60
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    61
    Instance variables:
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    62
	resources    ResourcePack       language string translation
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    63
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    64
	builder      ?                  dont know what that is used for yet,
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    65
					some subclasses (see manchester goodies)
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    66
					depend on this being there.
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    67
"
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    68
! !
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    69
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    70
!ApplicationModel class methodsFor:'initialization'!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    71
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    72
initialize 
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    73
    self == ApplicationModel ifTrue:[
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    74
	Smalltalk addDependent:self
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    75
    ]
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    76
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    77
    "
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    78
     ApplicationModel initialize
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    79
    "
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    80
! !
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    81
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    82
!ApplicationModel class methodsFor:'instance creation'!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    83
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    84
new
63
claus
parents: 61
diff changeset
    85
    ^ super new basicInitialize initialize
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    86
! !
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
    87
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    88
!ApplicationModel class methodsFor:'startup'!
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    89
53bc56e07e8f Initial revision
claus
parents:
diff changeset
    90
open
69
claus
parents: 63
diff changeset
    91
    "create an instance of the application and open its view"
claus
parents: 63
diff changeset
    92
63
claus
parents: 61
diff changeset
    93
    self new open
claus
parents: 61
diff changeset
    94
claus
parents: 61
diff changeset
    95
    "
claus
parents: 61
diff changeset
    96
     self open
claus
parents: 61
diff changeset
    97
    "
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    98
!
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
    99
63
claus
parents: 61
diff changeset
   100
openOn:anApplicationModel
claus
parents: 61
diff changeset
   101
    anApplicationModel open
50
53bc56e07e8f Initial revision
claus
parents:
diff changeset
   102
! !
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   103
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   104
!ApplicationModel class methodsFor:'change & update'!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   105
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   106
update:something
69
claus
parents: 63
diff changeset
   107
    "flush resources on language changes"
claus
parents: 63
diff changeset
   108
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   109
    something == #Language ifTrue:[
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   110
	"flush resources on language changes"
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   111
	self flushAllClassResources
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   112
    ]
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   113
! !
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   114
63
claus
parents: 61
diff changeset
   115
!ApplicationModel class methodsFor:'queries'!
claus
parents: 61
diff changeset
   116
claus
parents: 61
diff changeset
   117
interfaceSpecFor:aSelector
69
claus
parents: 63
diff changeset
   118
    "return an interface spec"
claus
parents: 63
diff changeset
   119
63
claus
parents: 61
diff changeset
   120
    ^ self perform:aSelector
claus
parents: 61
diff changeset
   121
! !
claus
parents: 61
diff changeset
   122
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   123
!ApplicationModel class methodsFor:'resources'!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   124
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   125
classResources
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   126
    "if not already loaded, get the classes resourcePack
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   127
     and return it"
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   128
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   129
    ClassResources isNil ifTrue:[
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   130
	ClassResources := ResourcePack for:self.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   131
    ].
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   132
    ^ ClassResources
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   133
!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   134
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   135
classResources:aResourcePack
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   136
    "allow setting of the classResources"
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   137
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   138
    ClassResources := aResourcePack
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   139
!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   140
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   141
flushAllClassResources
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   142
    "flush all classes resource translations.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   143
     Needed after a resource file / language setting has changed."
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   144
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   145
    ResourcePack flushCachedResourcePacks.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   146
    self flushClassResources.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   147
    self allSubclassesDo:[:aClass |
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   148
	aClass flushClassResources.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   149
    ]
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   150
!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   151
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   152
flushClassResources
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   153
    "flush classes resource string translations.
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   154
     Needed whenever a resource file / language setting has changed"
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   155
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   156
    ClassResources := nil.
63
claus
parents: 61
diff changeset
   157
!
claus
parents: 61
diff changeset
   158
claus
parents: 61
diff changeset
   159
updateClassResources
claus
parents: 61
diff changeset
   160
    "update my classResources"
claus
parents: 61
diff changeset
   161
claus
parents: 61
diff changeset
   162
    ClassResources := nil.
claus
parents: 61
diff changeset
   163
    self classResources
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   164
! !
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   165
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   166
!ApplicationModel methodsFor:'initialization'!
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   167
63
claus
parents: 61
diff changeset
   168
basicInitialize
69
claus
parents: 63
diff changeset
   169
    "initialize the application.
claus
parents: 63
diff changeset
   170
     Since ST-80 applications seem commonly to redefine initialize
claus
parents: 63
diff changeset
   171
     without doing a super initialize, the real initialization is
claus
parents: 63
diff changeset
   172
     done here ..."
claus
parents: 63
diff changeset
   173
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   174
    super initialize.
63
claus
parents: 61
diff changeset
   175
    "
claus
parents: 61
diff changeset
   176
     Create a windowBuilder to have someone around which
claus
parents: 61
diff changeset
   177
     understands the builder protocol. Since UIBuilder is not present
claus
parents: 61
diff changeset
   178
     in all systems, this allows operation without one (unless a spec
claus
parents: 61
diff changeset
   179
     is read later ...)
claus
parents: 61
diff changeset
   180
    "
claus
parents: 61
diff changeset
   181
    builder := WindowBuilder new.
claus
parents: 61
diff changeset
   182
    builder application:self.
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   183
    resources := self class classResources.
63
claus
parents: 61
diff changeset
   184
!
claus
parents: 61
diff changeset
   185
claus
parents: 61
diff changeset
   186
initialize
claus
parents: 61
diff changeset
   187
!
claus
parents: 61
diff changeset
   188
claus
parents: 61
diff changeset
   189
addTopViewsToCurrentProject
claus
parents: 61
diff changeset
   190
    "add all of my topViews to the current projects list of views.
claus
parents: 61
diff changeset
   191
     This allows hiding views on a per-project basis."
claus
parents: 61
diff changeset
   192
claus
parents: 61
diff changeset
   193
    self windowGroup topViews do:[:aView |
claus
parents: 61
diff changeset
   194
	aView addToCurrentProject
claus
parents: 61
diff changeset
   195
    ]
52
6dc870beba69 *** empty log message ***
claus
parents: 50
diff changeset
   196
! !
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   197
71
claus
parents: 69
diff changeset
   198
!ApplicationModel methodsFor:'queries'!
claus
parents: 69
diff changeset
   199
claus
parents: 69
diff changeset
   200
processName
claus
parents: 69
diff changeset
   201
    "return a name to be shown for me in the process monitor"
claus
parents: 69
diff changeset
   202
claus
parents: 69
diff changeset
   203
    ^ 'Application'
claus
parents: 69
diff changeset
   204
! !
claus
parents: 69
diff changeset
   205
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   206
!ApplicationModel methodsFor:'startup'!
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   207
63
claus
parents: 61
diff changeset
   208
allButOpenFrom:aSpec
69
claus
parents: 63
diff changeset
   209
    "create my views but do not open the main window"
claus
parents: 63
diff changeset
   210
71
claus
parents: 69
diff changeset
   211
    |realBuilder|
claus
parents: 69
diff changeset
   212
claus
parents: 69
diff changeset
   213
    "
claus
parents: 69
diff changeset
   214
     here, we kludge a bit: up to now, the builder was an
claus
parents: 69
diff changeset
   215
     instance of the no-op WindowBuilder. Now, it becomes
claus
parents: 69
diff changeset
   216
     a UIBuilder ....
claus
parents: 69
diff changeset
   217
     This allows for ApplicationModels without a UIBuilder
claus
parents: 69
diff changeset
   218
     if not needed.
claus
parents: 69
diff changeset
   219
    "
claus
parents: 69
diff changeset
   220
    realBuilder := UIBuilder new.
claus
parents: 69
diff changeset
   221
    realBuilder application:self.
claus
parents: 69
diff changeset
   222
    realBuilder bindings:builder bindings.
claus
parents: 69
diff changeset
   223
    builder := realBuilder.
claus
parents: 69
diff changeset
   224
63
claus
parents: 61
diff changeset
   225
    self preBuildWith:builder.
claus
parents: 61
diff changeset
   226
    builder buildFromSpec:aSpec.
claus
parents: 61
diff changeset
   227
    self postBuildWith:builder.
claus
parents: 61
diff changeset
   228
!
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   229
69
claus
parents: 63
diff changeset
   230
open
claus
parents: 63
diff changeset
   231
    "open a standard interface"
claus
parents: 63
diff changeset
   232
claus
parents: 63
diff changeset
   233
    self openInterface.
claus
parents: 63
diff changeset
   234
!
claus
parents: 63
diff changeset
   235
63
claus
parents: 61
diff changeset
   236
openInterface
69
claus
parents: 63
diff changeset
   237
    "open a standard interface"
claus
parents: 63
diff changeset
   238
63
claus
parents: 61
diff changeset
   239
    self openInterface:#windowSpec
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   240
!
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   241
63
claus
parents: 61
diff changeset
   242
openInterface:aSymbol
69
claus
parents: 63
diff changeset
   243
    "open an interface; the argument, aSymbol specifies which.
claus
parents: 63
diff changeset
   244
     Typically, applications only use one interface, 
claus
parents: 63
diff changeset
   245
     returned by the windowSpec method."
claus
parents: 63
diff changeset
   246
71
claus
parents: 69
diff changeset
   247
    |spec|
63
claus
parents: 61
diff changeset
   248
claus
parents: 61
diff changeset
   249
    spec := self class interfaceSpecFor:aSymbol.
71
claus
parents: 69
diff changeset
   250
    self allButOpenFrom:spec.
63
claus
parents: 61
diff changeset
   251
claus
parents: 61
diff changeset
   252
    builder window model:self.
claus
parents: 61
diff changeset
   253
    builder window application:self.
claus
parents: 61
diff changeset
   254
    builder openWithExtent:nil. 
claus
parents: 61
diff changeset
   255
    self postOpenWith:builder.
claus
parents: 61
diff changeset
   256
    ^ builder
claus
parents: 61
diff changeset
   257
!
claus
parents: 61
diff changeset
   258
claus
parents: 61
diff changeset
   259
closeDownViews
69
claus
parents: 63
diff changeset
   260
    "close down the applications view"
63
claus
parents: 61
diff changeset
   261
claus
parents: 61
diff changeset
   262
    |wg views|
claus
parents: 61
diff changeset
   263
claus
parents: 61
diff changeset
   264
    (wg := self windowGroup) notNil ifTrue:[
claus
parents: 61
diff changeset
   265
	views := wg topViews.
claus
parents: 61
diff changeset
   266
	views notNil ifTrue:[
claus
parents: 61
diff changeset
   267
	    views do:[:aView |
claus
parents: 61
diff changeset
   268
		aView destroy
claus
parents: 61
diff changeset
   269
	    ]
claus
parents: 61
diff changeset
   270
	]
claus
parents: 61
diff changeset
   271
    ]
claus
parents: 61
diff changeset
   272
!
claus
parents: 61
diff changeset
   273
claus
parents: 61
diff changeset
   274
close
69
claus
parents: 63
diff changeset
   275
    "this is sent by my topView when about to be closed
claus
parents: 63
diff changeset
   276
     (By the program - not by the windowManager)."
claus
parents: 63
diff changeset
   277
claus
parents: 63
diff changeset
   278
    self closeDownViews
claus
parents: 63
diff changeset
   279
!
claus
parents: 63
diff changeset
   280
claus
parents: 63
diff changeset
   281
closeRequest
63
claus
parents: 61
diff changeset
   282
    "this is sent by my topView when about to be closed by the
69
claus
parents: 63
diff changeset
   283
     windowmanager. Can be redefined to inform & query about unsafed
claus
parents: 63
diff changeset
   284
     view contents, to send #close on ok, or ignore the closeRequest."
63
claus
parents: 61
diff changeset
   285
claus
parents: 61
diff changeset
   286
    self closeDownViews
claus
parents: 61
diff changeset
   287
!
claus
parents: 61
diff changeset
   288
claus
parents: 61
diff changeset
   289
opened
claus
parents: 61
diff changeset
   290
    "this is sent by my topView when its finally open"
claus
parents: 61
diff changeset
   291
claus
parents: 61
diff changeset
   292
    self addTopViewsToCurrentProject.
claus
parents: 61
diff changeset
   293
    self postOpenWith:builder
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   294
!
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   295
69
claus
parents: 63
diff changeset
   296
restarted
claus
parents: 63
diff changeset
   297
    "sent by my windowGroup, when restarted from an image.
claus
parents: 63
diff changeset
   298
     Nothing done here, but can be redefined to perform any actions
claus
parents: 63
diff changeset
   299
     required to reset the application after an image-restart.
claus
parents: 63
diff changeset
   300
     (for example: check if application files are still around, restart
claus
parents: 63
diff changeset
   301
     subprocesses etc.)."
63
claus
parents: 61
diff changeset
   302
!
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   303
63
claus
parents: 61
diff changeset
   304
saveAndTerminateRequest
claus
parents: 61
diff changeset
   305
    "some windowManagers send this to shut down an application
claus
parents: 61
diff changeset
   306
     and have it save its state for restart.
claus
parents: 61
diff changeset
   307
     Can be redefined in subclasses"
claus
parents: 61
diff changeset
   308
claus
parents: 61
diff changeset
   309
    self closeRequest
claus
parents: 61
diff changeset
   310
!
claus
parents: 61
diff changeset
   311
claus
parents: 61
diff changeset
   312
preBuildWith:aBuilder
69
claus
parents: 63
diff changeset
   313
    "this is sent before an interface is built from a spec.
claus
parents: 63
diff changeset
   314
     Can be redefined in subclasses.
claus
parents: 63
diff changeset
   315
     mhmh - what should this do here ?"
61
claus
parents: 57
diff changeset
   316
!
claus
parents: 57
diff changeset
   317
claus
parents: 57
diff changeset
   318
postBuildWith:aBuilder
69
claus
parents: 63
diff changeset
   319
    "this is sent after an interface is built from a spec.
claus
parents: 63
diff changeset
   320
     Can be redefined in subclasses.
claus
parents: 63
diff changeset
   321
     mhmh - what should this do here ?"
63
claus
parents: 61
diff changeset
   322
!
61
claus
parents: 57
diff changeset
   323
63
claus
parents: 61
diff changeset
   324
postOpenWith:aBuilder
69
claus
parents: 63
diff changeset
   325
    "this is sent after the applications main window is opened.
claus
parents: 63
diff changeset
   326
     Can be redefined in subclasses.
claus
parents: 63
diff changeset
   327
     mhmh - what should this do here ?"
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   328
! !
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   329
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   330
!ApplicationModel methodsFor:'accessing'!
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   331
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   332
resources
69
claus
parents: 63
diff changeset
   333
    "return the applications resources - thats a ResourcePack containing
claus
parents: 63
diff changeset
   334
     language strings"
claus
parents: 63
diff changeset
   335
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   336
    ^ resources
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   337
!
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   338
63
claus
parents: 61
diff changeset
   339
windowGroup 
69
claus
parents: 63
diff changeset
   340
    "return the applications windowGroup"
claus
parents: 63
diff changeset
   341
63
claus
parents: 61
diff changeset
   342
    ^ builder window windowGroup
claus
parents: 61
diff changeset
   343
!
claus
parents: 61
diff changeset
   344
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   345
builder
69
claus
parents: 63
diff changeset
   346
    "return the applications builder; this one has more information
claus
parents: 63
diff changeset
   347
     about views, components etc."
claus
parents: 63
diff changeset
   348
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   349
    ^ builder
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   350
!
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   351
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   352
builder:aBuilder
69
claus
parents: 63
diff changeset
   353
    "set the applications builder. Normally, you should not set it
claus
parents: 63
diff changeset
   354
     directly, but depend on the default builder, as created when the application
claus
parents: 63
diff changeset
   355
     was created."
claus
parents: 63
diff changeset
   356
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   357
    builder := aBuilder
63
claus
parents: 61
diff changeset
   358
!
claus
parents: 61
diff changeset
   359
claus
parents: 61
diff changeset
   360
focusSequence
69
claus
parents: 63
diff changeset
   361
    "return a focusSequence for stepping through the applications views.
claus
parents: 63
diff changeset
   362
     The builder usually keeps track of so-called 'tabable' views.
claus
parents: 63
diff changeset
   363
     Stepping is done with the FocusNext/FocusPrevius keys, which are typically bound
claus
parents: 63
diff changeset
   364
     to Meta-CursorUp/Meta-CursorDown"
claus
parents: 63
diff changeset
   365
63
claus
parents: 61
diff changeset
   366
    ^ builder focusSequence
57
3984019e8f5f *** empty log message ***
claus
parents: 52
diff changeset
   367
! !