home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BURKS 2
/
BURKS_AUG97.ISO
/
BURKS
/
LANGUAGE
/
SMALTALK
/
TEXTBOOK
/
PAPVW25
(
.txt
)
< prev
next >
Wrap
Text File
|
1997-04-22
|
16KB
|
783 lines
'From VisualWorks(R), Release 2.5 of September 26, 1995 on January 9, 1996 at 9:48:29 pm'!
EngiLauncherIcon comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiMenuMaker comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiCalendarController comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiViewBuilderController comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiDisplayView comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiClockView comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiPuzzleController comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiDisplayController comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiPuzzleView comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiBrowser comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
!EngiBrowser methodsFor: 'initialize-release'!
initialize
organization := Smalltalk organization.
meta := false.
categoryList := SelectionInList with: self getCategoryList.
classList := SelectionInList with: List new.
protocolList := SelectionInList with: List new.
selectorList := SelectionInList with: List new.
textValue := Text new asValue.
categoryList selectionIndexHolder onChangeSend: #changedCategory to: self.
classList selectionIndexHolder onChangeSend: #changedClass to: self.
protocolList selectionIndexHolder onChangeSend: #changedProtocol to: self.
selectorList selectionIndexHolder onChangeSend: #changedSelector to: self.
metaHolder := AspectAdaptor subject: self sendsUpdates: true.
metaHolder accessWith: #meta assignWith: #meta:! !
!EngiBrowser methodsFor: 'category list'!
getCategoryList
| engiCategories |
engiCategories := self engiClasses collect: [:each | each category].
^(organization categories select: [:each | (engiCategories includes: each)
or: [EngiSystem system , '*' match: each]]) asList! !
!EngiBrowser methodsFor: 'class list'!
getClassList
| engiClassNames |
category == nil ifTrue: [^List new].
engiClassNames := self engiClassNames asSet.
^((organization listAtCategoryNamed: category)
select: [:each | engiClassNames includes: each]) asList! !
EngiBrowser removeSelector: #categoryList!
EngiBrowser removeSelector: #classList!
EngiBrowser reorganizeFromString: '(''initialize-release'' #initialize)
(''copying'' #postCopy)
(''category list'' #categoryMenu #getCategoryList)
(''class list'' #classMenu #getClassList)
(''private-category functions'' #addCategory #editCategories #pickAClass: #removeCategory #renameCategory #updateCategories)
(''private-class functions'' #acceptClass:from: #removeClass #renameClass)
(''private-engi system'' #engiCategoryMenu #engiClasses #engiClassMenu #engiClassNames #flushEngiClasses)
'!
!EngiBrowser class methodsFor: 'interface specs'!
windowSpec
"UIPainter new openOnClass: self andSelector: #windowSpec"
^#(#FullSpec
#window:
#(#WindowSpec
#label: 'Engi System Browser'
#min: #(#Point 400 250 )
#bounds: #(#Rectangle 50 50 450 300 ) )
#component:
#(#SpecCollection
#collection: #(
#(#SequenceViewSpec
#layout: #(#LayoutFrame 1 0 1 0 -1 0.25 -1 0.35 )
#name: #categoryList
#flags: 15
#model: #categoryList
#callbacksSpec:
#(#UIEventCallbackSubSpec
#doubleClickSelector: #spawnCategory
#requestValueChangeSelector: #changeRequest )
#menu: #categoryMenuHolder )
#(#SequenceViewSpec
#layout: #(#LayoutFrame 1 0.25 1 0 -1 0.5 -25 0.35 )
#name: #classList
#flags: 15
#model: #classList
#callbacksSpec:
#(#UIEventCallbackSubSpec
#doubleClickSelector: #spawnClassOrHierarchy
#requestValueChangeSelector: #changeRequest )
#menu: #classMenuHolder )
#(#SubCanvasSpec
#layout: #(#LayoutFrame 0 0.25 -24 0.35 0 0.5 0 0.35 )
#flags: 0
#majorKey: #Browser
#minorKey: #metaSpec )
#(#SequenceViewSpec
#layout: #(#LayoutFrame 1 0.5 1 0 -1 0.75 -1 0.35 )
#name: #protocolList
#flags: 15
#model: #protocolList
#callbacksSpec:
#(#UIEventCallbackSubSpec
#doubleClickSelector: #spawnProtocol
#requestValueChangeSelector: #changeRequest )
#menu: #protocolMenuHolder )
#(#SequenceViewSpec
#layout: #(#LayoutFrame 1 0.75 1 0 -1 1 -1 0.35 )
#name: #selectorList
#flags: 15
#model: #selectorList
#callbacksSpec:
#(#UIEventCallbackSubSpec
#doubleClickSelector: #spawnMethod
#requestValueChangeSelector: #changeRequest )
#menu: #selectorMenuHolder )
#(#TextEditorSpec
#layout: #(#LayoutFrame 1 0 1 0.35 -1 1 -1 1 )
#name: #textValue
#model: #textValue
#callbacksSpec:
#(#UIEventCallbackSubSpec
#valueChangeSelector:
#textAccepted: )
#tabable: true
#menu: #textMenuHolder ) ) ) )! !
EngiBrowser class removeSelector: #openOn:withTextState:!
EngiBrowser class reorganizeFromString: '(''class initialization'' #flushMenus)
(''interface specs'' #windowSpec)
(''examples'' #example1)
'!
EngiVariable comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiFontModel comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiVisualTransporter comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiEncapsulator comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiColorView comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiCalendarModel comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiGeometric comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiBranch comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiMultipleChoiceModel comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiSingleChoiceModel comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiFileChoiceModel comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
!EngiFileChoiceModel methodsFor: 'initialize-release'!
initialize
super initialize.
autoRead := false asValue! !
!EngiFileChoiceModel methodsFor: 'change messages'!
changeRequest
builder notNil
ifTrue:
[| text |
text := builder componentAt: #text.
^super changeRequest and: [text == nil or: [text widget updateRequest]]]
ifFalse: [^true]! !
!EngiFileChoiceModel methodsFor: 'private'!
isEditor
builder notNil
ifTrue: [^(builder componentAt: #list)
== nil]
ifFalse: [^false]! !
EngiClassBranch comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiPuzzleModel comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiCalculatorController comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiColorController comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiLauncherView comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiClockModel comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiTurtle comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiClockController comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiCalendarView comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiTextModel comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiTopPreemptor comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!
EngiViewBuilderModel comment:
'
Engi 010 (January 9, 1996)
Copyright (C) 1994-1996 by Atsushi Aoki
'!