ProjectV.st
author claus
Thu, 10 Aug 1995 15:14:54 +0200
changeset 110 570a38362ae1
parent 106 f4eb10b3b463
child 111 b4ef3e799345
permissions -rw-r--r--
.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
88
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
     1
"
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
     2
 COPYRIGHT (c) 1994 by Claus Gittinger
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
     3
	      All Rights Reserved
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
     4
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
     5
 This software is furnished under a license and may be used
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
     6
 only in accordance with the terms of that license and with the
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
     9
 other person.  No title to or ownership of the software is
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    10
 hereby transferred.
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    11
"
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    12
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    13
'From Smalltalk/X, Version:2.10.4 on 5-feb-1995 at 11:48:18 pm'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    14
571fd5eee315 Initial revision
claus
parents:
diff changeset
    15
StandardSystemView subclass:#ProjectView
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    16
	 instanceVariableNames:'myProject toggle'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    17
	 classVariableNames:'ActiveProjectView'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    18
	 poolDictionaries:''
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    19
	 category:'Interface-Smalltalk'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    20
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    21
88
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    22
!ProjectView class methodsFor:'documentation'!
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    23
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    24
copyright
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    25
"
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    26
 COPYRIGHT (c) 1994 by Claus Gittinger
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    27
	      All Rights Reserved
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    28
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    29
 This software is furnished under a license and may be used
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    30
 only in accordance with the terms of that license and with the
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    32
 be provided or otherwise made available to, or used by, any
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    33
 other person.  No title to or ownership of the software is
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    34
 hereby transferred.
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    35
"
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    36
!
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    37
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    38
version
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    39
"
110
claus
parents: 106
diff changeset
    40
$Header: /cvs/stx/stx/libtool/Attic/ProjectV.st,v 1.16 1995-08-10 13:14:50 claus Exp $
claus
parents: 106
diff changeset
    41
$Revision: 1.16 $
88
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    42
"
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    43
! !
a38a2e87687b *** empty log message ***
claus
parents: 85
diff changeset
    44
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    45
!ProjectView class methodsFor:'instance creation'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    46
571fd5eee315 Initial revision
claus
parents:
diff changeset
    47
for:aProject
571fd5eee315 Initial revision
claus
parents:
diff changeset
    48
    |newView|
571fd5eee315 Initial revision
claus
parents:
diff changeset
    49
571fd5eee315 Initial revision
claus
parents:
diff changeset
    50
    newView := super new.
571fd5eee315 Initial revision
claus
parents:
diff changeset
    51
    newView setProject:aProject.
571fd5eee315 Initial revision
claus
parents:
diff changeset
    52
    ^ newView
571fd5eee315 Initial revision
claus
parents:
diff changeset
    53
571fd5eee315 Initial revision
claus
parents:
diff changeset
    54
    "ProjectView for:(Project new)"
571fd5eee315 Initial revision
claus
parents:
diff changeset
    55
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
    56
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    57
!ProjectView methodsFor:'menu actions'!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    58
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    59
browseChanges
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    60
    |b|
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    61
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    62
    b := ChangeSetBrowser openOn:(myProject changeSet).
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    63
    b label:'Changes in ' , myProject name
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    64
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    65
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    66
browsePackage
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    67
    "launch browsers for all classes/methods which are defined in this package"
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    68
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    69
    self topView withWaitCursorDo:[
105
claus
parents: 93
diff changeset
    70
	|classes packageName methods methodList|
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    71
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
    72
	packageName := myProject packageName.
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
    73
	classes := myProject classes.
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
    74
	classes notNil ifTrue:[
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
    75
	    SystemBrowser browseClasses:classes
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
    76
				  title:'classes in package ' , packageName.
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    77
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
    78
	    classes := classes asIdentitySet.
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
    79
	    classes addAll:(classes collect:[:c | c class]).
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
    80
	] ifFalse:[
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
    81
	    classes := #()
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
    82
	].
105
claus
parents: 93
diff changeset
    83
"/        SystemBrowser browseMethodsWhere:[:cls :mthd :sel |
claus
parents: 93
diff changeset
    84
"/                                    mthd package = packageName
claus
parents: 93
diff changeset
    85
"/                                    and:[(classes includes:cls) not]
claus
parents: 93
diff changeset
    86
"/                                  ] 
claus
parents: 93
diff changeset
    87
"/                            title:'individual methods in package ' , packageName.
claus
parents: 93
diff changeset
    88
claus
parents: 93
diff changeset
    89
	methods := myProject individualMethods.
claus
parents: 93
diff changeset
    90
	methodList := methods collect:[:m | 
claus
parents: 93
diff changeset
    91
					|who|
claus
parents: 93
diff changeset
    92
claus
parents: 93
diff changeset
    93
					who := m who.
claus
parents: 93
diff changeset
    94
					(who at:1) name , ' ' , (who at:2)
claus
parents: 93
diff changeset
    95
				      ].
claus
parents: 93
diff changeset
    96
	SystemBrowser browseMethods:methodList
claus
parents: 93
diff changeset
    97
			      title:'individual methods in package ' , packageName.
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    98
    ]
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
    99
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   100
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   101
projectDirectory
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   102
    |box d|
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   103
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   104
    box := FilenameEnterBox new.
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   105
    box directoriesOnly.
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   106
    box title:(resources string:'Directory of project (fileOuts will go there):').
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   107
    (d := myProject directory) notNil ifTrue:[
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   108
	box initialText:d
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   109
    ].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   110
    box action:[:dirName |
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   111
	(OperatingSystem isDirectory:dirName) ifFalse:[
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   112
	    (OperatingSystem isValidPath:dirName) ifTrue:[
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   113
		self warn:(resources string:'%1 is not a valid directory' with:dirName).
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   114
		^ self
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   115
	    ].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   116
	    (self confirm:(resources string:'%1 does not exist\\create ?' with:dirName) withCRs) ifTrue:[
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   117
		(OperatingSystem recursiveCreateDirectory:dirName) ifFalse:[
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   118
		    self warn:(resources string:'cannot create %1' with:dirName)
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   119
		]
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   120
	    ].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   121
	].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   122
	"did it work ?"
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   123
	(OperatingSystem isDirectory:dirName) ifTrue:[
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   124
	    myProject directory:dirName
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   125
	].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   126
    ].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   127
    box showAtPointer
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   128
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   129
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   130
projectPackage
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   131
    self topView withWaitCursorDo:[
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   132
	|box p existingPackages|
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   133
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   134
	existingPackages := Set new.
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   135
	Smalltalk allClassesDo:[:aClass |
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   136
	    |p|
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   137
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   138
	    (p := aClass package) notNil ifTrue:[
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   139
		existingPackages add:(p asString)
110
claus
parents: 106
diff changeset
   140
	    ].
claus
parents: 106
diff changeset
   141
	    aClass methodArray do:[:aMethod |
claus
parents: 106
diff changeset
   142
		(p := aMethod package) notNil ifTrue:[
claus
parents: 106
diff changeset
   143
		    existingPackages add:(p asString)
claus
parents: 106
diff changeset
   144
		]
claus
parents: 106
diff changeset
   145
	    ].
claus
parents: 106
diff changeset
   146
	    aClass class methodArray do:[:aMethod |
claus
parents: 106
diff changeset
   147
		(p := aMethod package) notNil ifTrue:[
claus
parents: 106
diff changeset
   148
		    existingPackages add:(p asString)
claus
parents: 106
diff changeset
   149
		]
claus
parents: 106
diff changeset
   150
	    ].
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   151
	].
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   152
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   153
	box := ListSelectionBox title:'Package (new classes/methods will be put into that):'.
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   154
	box list:(existingPackages asOrderedCollection sort).
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   155
	(p := myProject packageName) notNil ifTrue:[
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   156
	    box initialText:p
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   157
	].
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   158
	box action:[:packageName |
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   159
	    myProject packageName:packageName
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   160
	].
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   161
	box showAtPointer
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   162
    ]
110
claus
parents: 106
diff changeset
   163
!
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   164
110
claus
parents: 106
diff changeset
   165
removePackage
claus
parents: 106
diff changeset
   166
    "remove all classes and individual methods from the system.
claus
parents: 106
diff changeset
   167
     Currently, this cannot fully restore the state to before
claus
parents: 106
diff changeset
   168
     the time the package was loaded (redefined methods are lost).
claus
parents: 106
diff changeset
   169
     In the future, we may keep a backref of overwritten methods
claus
parents: 106
diff changeset
   170
     and restore them from their source ..."
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   171
110
claus
parents: 106
diff changeset
   172
    |classesToRemove methodsToRemove theProject|
claus
parents: 106
diff changeset
   173
claus
parents: 106
diff changeset
   174
    (myProject isNil
claus
parents: 106
diff changeset
   175
    or:[(theProject := myProject packageName) isNil]) ifTrue:[
claus
parents: 106
diff changeset
   176
	self warn:'No current package'.
claus
parents: 106
diff changeset
   177
	^ self
claus
parents: 106
diff changeset
   178
    ].
claus
parents: 106
diff changeset
   179
claus
parents: 106
diff changeset
   180
    classesToRemove := IdentitySet new.
claus
parents: 106
diff changeset
   181
    methodsToRemove := IdentitySet new.
claus
parents: 106
diff changeset
   182
claus
parents: 106
diff changeset
   183
    Smalltalk allClassesDo:[:aClass |
claus
parents: 106
diff changeset
   184
	|p|
claus
parents: 106
diff changeset
   185
claus
parents: 106
diff changeset
   186
	(p := aClass package) notNil ifTrue:[
claus
parents: 106
diff changeset
   187
	    p = theProject  ifTrue:[
claus
parents: 106
diff changeset
   188
		classesToRemove add:aClass
claus
parents: 106
diff changeset
   189
	    ]
claus
parents: 106
diff changeset
   190
	].
claus
parents: 106
diff changeset
   191
    ].
claus
parents: 106
diff changeset
   192
    Smalltalk allClassesDo:[:aClass |
claus
parents: 106
diff changeset
   193
	|p|
claus
parents: 106
diff changeset
   194
claus
parents: 106
diff changeset
   195
	(classesToRemove includes:aClass) ifFalse:[
claus
parents: 106
diff changeset
   196
	    aClass methodArray do:[:aMethod |
claus
parents: 106
diff changeset
   197
		(p := aMethod package) notNil ifTrue:[
claus
parents: 106
diff changeset
   198
		    p = theProject  ifTrue:[
claus
parents: 106
diff changeset
   199
			methodsToRemove add:aMethod
claus
parents: 106
diff changeset
   200
		    ]
claus
parents: 106
diff changeset
   201
		]
claus
parents: 106
diff changeset
   202
	    ].
claus
parents: 106
diff changeset
   203
	    aClass class methodArray do:[:aMethod |
claus
parents: 106
diff changeset
   204
		(p := aMethod package) notNil ifTrue:[
claus
parents: 106
diff changeset
   205
		    p = theProject  ifTrue:[
claus
parents: 106
diff changeset
   206
			methodsToRemove add:aMethod
claus
parents: 106
diff changeset
   207
		    ]
claus
parents: 106
diff changeset
   208
		]
claus
parents: 106
diff changeset
   209
	    ].
claus
parents: 106
diff changeset
   210
	].
claus
parents: 106
diff changeset
   211
    ].
claus
parents: 106
diff changeset
   212
claus
parents: 106
diff changeset
   213
    (classesToRemove isEmpty
claus
parents: 106
diff changeset
   214
    and:[methodsToRemove isEmpty]) ifTrue:[
claus
parents: 106
diff changeset
   215
	self warn:('Nothing found in ' , theProject).
claus
parents: 106
diff changeset
   216
	^ self
claus
parents: 106
diff changeset
   217
    ].
claus
parents: 106
diff changeset
   218
claus
parents: 106
diff changeset
   219
    (self confirm:('About to remove '
claus
parents: 106
diff changeset
   220
		 , classesToRemove size printString
claus
parents: 106
diff changeset
   221
		 , ' classes and '
claus
parents: 106
diff changeset
   222
		 , methodsToRemove size printString
claus
parents: 106
diff changeset
   223
		 , ' additional methods.\\Are you certain you want this ?') withCRs)
claus
parents: 106
diff changeset
   224
	ifTrue:[
claus
parents: 106
diff changeset
   225
	    classesToRemove do:[:aClass |
claus
parents: 106
diff changeset
   226
		('PROJECT: removing ' , aClass name) infoPrintNL.
claus
parents: 106
diff changeset
   227
		Smalltalk removeClass:aClass.   
claus
parents: 106
diff changeset
   228
	    ].
claus
parents: 106
diff changeset
   229
	    methodsToRemove do:[:aMethod |
claus
parents: 106
diff changeset
   230
		|where|
claus
parents: 106
diff changeset
   231
claus
parents: 106
diff changeset
   232
		('PROJECT: removing ' , aMethod displayString) infoPrintNL.
claus
parents: 106
diff changeset
   233
		where := aMethod who.
claus
parents: 106
diff changeset
   234
		where isNil ifTrue:[
claus
parents: 106
diff changeset
   235
		    'PROJECT: oops, some method is gone' infoPrintNL.
claus
parents: 106
diff changeset
   236
		] ifFalse:[
claus
parents: 106
diff changeset
   237
		    (where at:1) removeSelector:(where at:2)
claus
parents: 106
diff changeset
   238
		]
claus
parents: 106
diff changeset
   239
	    ]
claus
parents: 106
diff changeset
   240
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   241
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   242
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   243
showProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   244
    ActiveProjectView notNil ifTrue:[
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   245
	ActiveProjectView hideProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   246
    ].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   247
    ActiveProjectView := self.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   248
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   249
    myProject showViews.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   250
    Project current:myProject.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   251
    toggle turnOn
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   252
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   253
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   254
browseProps
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   255
    "will look better, once property inspector runs ..."
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   256
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   257
    myProject properties inspect
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   258
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   259
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   260
saveProjectFiles
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   261
    self topView withWaitCursorDo:[
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   262
	|dir|
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   263
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   264
	dir := myProject directory.
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   265
	(self confirm:'create source files in: ' ,  dir , ' ?') ifTrue:[
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   266
	    myProject createProjectFiles.
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   267
	]
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   268
    ].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   269
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   270
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   271
hideProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   272
    myProject hideViews.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   273
    ActiveProjectView := nil.
93
claus
parents: 88
diff changeset
   274
    toggle turnOff.
claus
parents: 88
diff changeset
   275
    Project setDefaultProject.
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   276
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   277
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   278
renameProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   279
    |box|
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   280
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   281
    box := EnterBox new.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   282
    box title:'new name of project:'.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   283
    box okText:'rename'.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   284
    box initialText:(myProject name).
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   285
    box action:[:newName |
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   286
	myProject name:newName.
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   287
	self setProject:myProject.
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   288
	self windowGroup process name:'Project: ' , newName.
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   289
    ].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   290
    box showAtPointer
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   291
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   292
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   293
buildProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   294
    self topView withWaitCursorDo:[
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   295
	|dir|
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   296
85
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   297
	self saveProjectFiles.
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   298
	(self confirm:'make object files in: ' ,  dir , ' ?') ifTrue:[
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   299
	    myProject buildProject.
d9713a3ca092 *** empty log message ***
claus
parents: 57
diff changeset
   300
	]
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   301
    ].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   302
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   303
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   304
destroyProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   305
    |box|
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   306
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   307
    box := YesNoBox new.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   308
    box title:'Destroying a project will discard all changes made
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   309
for that project and destroy all views opened for it.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   310
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   311
Do you really want to do this ?'.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   312
    box okText:'yes'.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   313
    box yesAction:[
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   314
	self doDestroyProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   315
    ].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   316
    box showAtPointer
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   317
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   318
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   319
doDestroy
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   320
    self hideProject.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   321
    myProject := nil.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   322
    super destroy
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   323
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   324
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   325
destroy
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   326
    (myProject views notNil
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   327
    and:[myProject views notEmpty]) ifTrue:[
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   328
	|box|
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   329
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   330
	box := YesNoBox new.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   331
	box title:'Destroying a project will discard all changes made
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   332
for that project and destroy all views opened for it.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   333
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   334
Do you really want to do this ?'.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   335
	box okText:'yes'.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   336
	(box confirm) ifFalse:[^ self]
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   337
    ].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   338
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   339
    self doDestroy
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   340
! !
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   341
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   342
!ProjectView methodsFor:'initialization'!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   343
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   344
initialize
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   345
    super initialize.
110
claus
parents: 106
diff changeset
   346
claus
parents: 106
diff changeset
   347
    "/
claus
parents: 106
diff changeset
   348
    "/ create the toggle ...
claus
parents: 106
diff changeset
   349
    "/
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   350
    toggle := Toggle in:self.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   351
    toggle borderWidth:0.
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   352
    toggle pressAction:[self showProject].
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   353
    toggle releaseAction:[self hideProject].
110
claus
parents: 106
diff changeset
   354
claus
parents: 106
diff changeset
   355
    "/
claus
parents: 106
diff changeset
   356
    "/ and give it a menu
claus
parents: 106
diff changeset
   357
    "/
claus
parents: 106
diff changeset
   358
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   359
    toggle middleButtonMenu:(
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   360
	PopUpMenu
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   361
		labels:(resources array:
106
claus
parents: 105
diff changeset
   362
			   #('rename ...'
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   363
			     'changes'
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   364
			     'browse'
106
claus
parents: 105
diff changeset
   365
			     'directory ...'
claus
parents: 105
diff changeset
   366
			     'package ...'
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   367
"
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   368
			     'properties'
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   369
"
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   370
			     '-'
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   371
			     'save project code'
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   372
			     'build'
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   373
			     '-'
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   374
			     'show'
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   375
			     'hide'
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   376
			     '-'
110
claus
parents: 106
diff changeset
   377
			     'remove package'
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   378
			     'destroy'
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   379
			    )
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   380
			)
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   381
	     selectors:#(renameProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   382
			 browseChanges
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   383
			 browsePackage
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   384
			 projectDirectory
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   385
			 projectPackage
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   386
"
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   387
			 browseProps
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   388
"
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   389
			 nil
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   390
			 saveProjectFiles
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   391
			 buildProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   392
			 nil
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   393
			 showProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   394
			 hideProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   395
			 nil
110
claus
parents: 106
diff changeset
   396
			 removePackage
57
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   397
			 destroy
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   398
			)
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   399
	      receiver:self
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   400
    )
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   401
!
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   402
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   403
addToCurrentProject
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   404
    "ignored here"
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   405
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   406
    ^ self
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   407
! !
36e13831b62d *** empty log message ***
claus
parents: 52
diff changeset
   408
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   409
!ProjectView methodsFor:'private accessing'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
   410
571fd5eee315 Initial revision
claus
parents:
diff changeset
   411
setProject:aProject
571fd5eee315 Initial revision
claus
parents:
diff changeset
   412
    |name e|
571fd5eee315 Initial revision
claus
parents:
diff changeset
   413
571fd5eee315 Initial revision
claus
parents:
diff changeset
   414
    name := aProject name.
571fd5eee315 Initial revision
claus
parents:
diff changeset
   415
    self label:name.
17
58c360f199be *** empty log message ***
claus
parents: 9
diff changeset
   416
    self iconLabel:name.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   417
    toggle label:'Project: ' , name.
571fd5eee315 Initial revision
claus
parents:
diff changeset
   418
    toggle resize.
571fd5eee315 Initial revision
claus
parents:
diff changeset
   419
    myProject := aProject.
571fd5eee315 Initial revision
claus
parents:
diff changeset
   420
    e := (toggle width @ toggle height).
29
8a72e10043f6 *** empty log message ***
claus
parents: 17
diff changeset
   421
    drawableId isNil ifTrue:[
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   422
	self minExtent:e.
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   423
	self maxExtent:e.
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   424
	self open
29
8a72e10043f6 *** empty log message ***
claus
parents: 17
diff changeset
   425
    ] ifFalse:[
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   426
	self unrealize.
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   427
	self minExtent:e.
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   428
	self maxExtent:e.
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   429
	self extent:e.
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   430
	self rerealize
29
8a72e10043f6 *** empty log message ***
claus
parents: 17
diff changeset
   431
    ]
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   432
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
   433