'From Smalltalk/X, Version:2.6.4 on 27-Apr-1993 at 20:02:12'!
StandardSystemView subclass:#ProjectView
instanceVariableNames:'myProject toggle'
classVariableNames:'ActiveProjectView'
poolDictionaries:''
category:'Interface-Smalltalk'
!
!ProjectView class methodsFor:'instance creation'!
for:aProject
|newView|
newView := super new.
newView setProject:aProject.
^ newView
"ProjectView for:(Project new)"
! !
!ProjectView methodsFor:'private accessing'!
setProject:aProject
|name e|
name := aProject name.
self label:name.
self iconName:name.
toggle label:'Project: ' , name.
toggle resize.
myProject := aProject.
e := (toggle width @ toggle height).
self extent:e.
self minExtent:e.
self maxExtent:e
! !
!ProjectView methodsFor:'initialization'!
initialize
super initialize.
toggle := Toggle in:self.
toggle borderWidth:0.
toggle pressAction:[self showProject].
toggle releaseAction:[self hideProject].
toggle middleButtonMenu:(
PopUpMenu
labels:#('rename'
'-'
'changes'
'-'
'show'
'hide'
'-'
'destroy'
)
selectors:#(renameProject
nil
browseChanges
nil
showProject
hideProject
nil
destroy
)
receiver:self
)
!
addToCurrentProject
"ignored here"
^ self
! !
!ProjectView methodsFor:'menu actions'!
browseChanges
ChangeSetBrowser startOn:(myProject changeSet)
!
destroyProject
|box|
box := YesNoBox new.
box title:'Destroying a project will discard all changes made
for that project and destroy all views opened for it.
Do you really want to do this ?'.
box okText:'yes'.
box yesAction:[
self doDestroyProject
].
box showAtPointer
!
showProject
ActiveProjectView notNil ifTrue:[
ActiveProjectView hideProject
].
ActiveProjectView := self.
myProject views notNil ifTrue:[
myProject views do:[:aView |
aView rerealize
]
].
Project current:myProject.
toggle turnOn
!
hideProject
myProject views notNil ifTrue:[
myProject views do:[:aView |
aView unrealize
]
].
ActiveProjectView := nil.
toggle turnOff
!
renameProject
|box|
box := EnterBox new.
box title:'new name of project:'.
box okText:'rename'.
box initialText:(myProject name).
box action:[:newName |
myProject name:newName.
self setProject:myProject
].
box showAtPointer
!
doDestroy
self hideProject.
myProject := nil.
super destroy
!
destroy
|box|
box := YesNoBox new.
box title:'Destroying a project will discard all changes made
for that project and destroy all views opened for it.
Do you really want to do this ?'.
box okText:'yes'.
box yesAction:[
self doDestroy
].
box showAtPointer
! !