From VisualWorks®, 7.6 of 8. Februar 2008 on 28. Februar 2008 at 6:33:13 (Dialog confirm: 'You are filing-in a Parcel source file!\\While this is possible it will not have\the same effect as loading the parcel.\None of the Parcel''s prerequisites will\be loaded and none of its load actions\will be performed.\\Are you sure you want to file-in?' withCRs) ifFalse: [self error: 'Parcel file-in abandoned. Choose terminate or close.'] <class> <name>T2Librarian</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none library <imports></imports> <category>ADE-Tutorial 2</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T2Librarian
The librarian fulfills user requests to check out, check in, and search for library materials. Additionally he's responsible for administration activities like adding and removing users and items. Instance Variables: library <T2Library>
</comment> <class> <name>ADvanceTutorial1</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none <imports></imports> <category>IC&C ADvance Tutorial</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.ADvanceTutorial1
Missing comment
</comment> <class> <name>T1Lendable</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none id borrower dueDate <imports></imports> <category>ADE-Tutorial 1</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T1Lendable
This is an abstract superclass for items to be borrowed from the library. Instance Variables: id <Integer> An identifier for lendables. dueDate <Date> borrower <T1Borrower | nil> Subclasses must implement the following messages: Instance protocol: printing shortDisplayString Class protocol: constants label lendableLimit overdueFine examples exampleInstances interface specs subcanvasSpec
</comment> <class> <name>T1Video</name> <environment>ICC.Examples</environment> <super>ICC.Examples.T1Lendable</super> <private>false</private> none title date system producer <imports></imports> <category>ADE-Tutorial 1</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T1Video
Instances of this class represent videotapes to be borrowed from the library. Instance Variables: producer <String> system <#Beta | #VHS > date <Date> title <String>
</comment> <class> <name>T1Journal</name> <environment>ICC.Examples</environment> <super>ICC.Examples.T1Lendable</super> <private>false</private> none name date volume issue <imports></imports> <category>ADE-Tutorial 1</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T1Journal
Instances of this class represent technical journals to be borrowed from the library. Instance Variables: issue <Integer> volume <Integer> date <Date> name <String>
</comment> <class> <name>T1Library</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none borrowers lendables <imports></imports> <category>ADE-Tutorial 1</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T1Library
The Library class is a container for all lendable items and all known borrowers. It is responsible for object persistency in this demo. At this moment persistency is implemented by holding a default instance of Library in the class variable 'Default'. Future releases may use Library as a persistency wrapper for a real database. Library hides its internal data structure/access. Data is accessed via the SQL-like methods in protocol 'database accessing'. They use #Lendables and #Borrowers as symbolic table names. Instance Variables: lendables <OrderedCollection of: T1Lendable> borrowers <OrderedCollection of: T1Borrower> Class Variables: Default <T1Library> The sole instance of T1Library.
</comment> <class> <name>T1Book</name> <environment>ICC.Examples</environment> <super>ICC.Examples.T1Lendable</super> <private>false</private> none title author year publisher <imports></imports> <category>ADE-Tutorial 1</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T1Book
Instances of this class represent books to be borrowed from the library. Instance Variables: year <Integer> publisher <String> author <String> title <String>
</comment> <class> <name>T2UserConsole</name> <environment>ICC.Examples</environment> <super>UI.ApplicationModel</super> <private>false</private> none librarian lendables menuBar <imports></imports> <category>ADE-Tutorial 2</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T2UserConsole
This class is part of the GUI for the library example. It lets users browse the library contents. Instance Variables: librarian <T2Librarian> The librarian who executes my actions. lendables <SelectionInList> menuBar <Menu> Subclasses must implement the following messages: Instance Protocol: priv enableMenuAndButtonItems
</comment> <class> <name>T2LibrarianConsole</name> <environment>ICC.Examples</environment> <super>ICC.Examples.T2UserConsole</super> <private>false</private> none <imports></imports> <category>ADE-Tutorial 2</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T2LibrarianConsole
This class is part of the GUI for the library example. It is used by librarians; they enter user IDs and material ID numbers when checking out and returning items. LibrarianConsole extends the facilities of its superclass UserConsole by check in and check out actions and some administration tools.
</comment> <class> <name>T2Lendable</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none id borrower dueDate <imports></imports> <category>ADE-Tutorial 2</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T2Lendable
This comment is intentionally not describing any instance variables because it is part of the ADvance Tutorial.
</comment> <class> <name>T2Video</name> <environment>ICC.Examples</environment> <super>ICC.Examples.T2Lendable</super> <private>false</private> none title date system producer <imports></imports> <category>ADE-Tutorial 2</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T2Video
Instances of this class represent videotapes to be borrowed from the library. This comment intentionally contains errors in the instance variables' descriptions because it is part of the ADvance Tutorial. Instance Variables: producer <String> system <Beta | VHS > date <Date> title <String>
</comment> <class> <name>T2Journal</name> <environment>ICC.Examples</environment> <super>ICC.Examples.T2Lendable</super> <private>false</private> none name date volume issue <imports></imports> <category>ADE-Tutorial 2</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T2Journal
Instances of this class represent technical journals to be borrowed from the library. This comment is intentionally not describing all of the instance variables because it is part of the ADvance Tutorial. Instance Variables: volume <Integer> date <Date> name <String>
</comment> <class> <name>T2Borrower</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none id name borrowedItems fine myFine <imports></imports> <category>ADE-Tutorial 2</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T2Borrower
Instances of this class represent Users who borrow items from the library. Each borrower can be lent up to five items. Materials will be lent to users with no overdue lendables, fewer than five articles out and total fines less than $100. Instance Variables: id <String> fine <Number> name <String> borrowedItems <Set of: T2Lendable>
</comment> <class> <name>T1EditLendableDialog</name> <environment>ICC.Examples</environment> <super>UI.SimpleDialog</super> <private>false</private> none lendable <imports></imports> <category>ADE-Tutorial 1</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T1EditLendableDialog
This class is part of the GUI for the library example. It is responsible for editing lendables. Therefore it uses a subcanvas specified by windowSpecs that depend on the edit values class. Implementation Note: This class contains absolutely NO consistency checks; this is only a simple example. Instance Variables: lendable <ValueHolder on: T1Lendable>
</comment> <class> <name>T1UserConsole</name> <environment>ICC.Examples</environment> <super>UI.ApplicationModel</super> <private>false</private> none librarian lendables menuBar <imports></imports> <category>ADE-Tutorial 1</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T1UserConsole
This class is part of the GUI for the library example. It lets users browse the library contents. Instance Variables: librarian <T1Librarian> The librarian who executes my actions. lendables <SelectionInList> menuBar <Menu>
</comment> <class> <name>T1LibrarianConsole</name> <environment>ICC.Examples</environment> <super>ICC.Examples.T1UserConsole</super> <private>false</private> none <imports></imports> <category>ADE-Tutorial 1</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T1LibrarianConsole
This class is part of the GUI for the library example. It is used by librarians; they enter user IDs and material ID numbers when checking out and returning items. LibrarianConsole extends the facilities of its superclass UserConsole by check in and check out actions and some administration tools.
</comment> <class> <name>ADT1Library_GUI</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none <imports></imports> <category>IC&C ADvance Tutorial</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.ADT1Library_GUI
Missing comment
</comment> <class> <name>T1Librarian</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none library <imports></imports> <category>ADE-Tutorial 1</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T1Librarian
The librarian fulfills user requests to check out, check in, and search for library materials. Additionally he's responsible for administration activities like adding and removing users and items. Instance Variables: library <T1Library>
</comment> <class> <name>T2Book</name> <environment>ICC.Examples</environment> <super>ICC.Examples.T2Lendable</super> <private>false</private> none title author year publisher <imports></imports> <category>ADE-Tutorial 2</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T2Book
Instances of this class represent books to be borrowed from the library. Instance Variables: year <Integer> publisher <String> author <String> title <String>
</comment> <class> <name>T2Library</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none borrowers lendables <imports></imports> <category>ADE-Tutorial 2</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T2Library
The Library class is a container for all lendable items and all known borrowers. It is responsible for object persistency in this demo. At this moment persistency is implemented by holding a default instance of Library in the class variable 'Default'. Future releases may use Library as a persistency wrapper for a real database. Library hides its internal data structure/access. Data is accessed via the SQL-like methods in protocol 'database accessing'. They use #Lendables and #Borrowers as symbolic table names. Instance Variables: lendables <OrderedCollection off: T2Lendable> borrowers <OrderedCollection off: T2Borrower> Class Variables: Default <T2Library> The sole instance of T2Library.
</comment> <class> <name>ADT1Library</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none <imports></imports> <category>IC&C ADvance Tutorial</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.ADT1Library
This application will support the operations of a technical library. This includes the searching for and lending of technical library materials, including books, videos and journals. The system offers two user interfaces. The UserConsole lets users browse the library contents. The LibrarianConsole is used by librarians; they enter user IDs and material ID numbers when checking out and returning items and may do administration. Each borrower can be lent up to five items. Each type of library item can be lent for different period of time (books 4 weeks, journals 2 weeks, videos 1 week). If returned after their due date, the library user will be charged for a fine, based on the type of item (books $1/day, journals $3/day, videos $5/day). Materials will be lent to users with no overdue lendables, fewer than five articles out and total fines less than $100.
</comment> <class> <name>T1Borrower</name> <environment>ICC.Examples</environment> <super>Core.Object</super> <private>false</private> none id name borrowedItems fine <imports></imports> <category>ADE-Tutorial 1</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T1Borrower
Instances of this class represent Users who borrow items from the library. Each borrower can be lent up to five items. Materials will be lent to users with no overdue lendables, fewer than five articles out and total fines less than $100. Instance Variables: id <Integer> fine <Number> name <String> borrowedItems <Set of: T1Lendable>
</comment> <class> <name>T2EditLendableDialog</name> <environment>ICC.Examples</environment> <super>UI.SimpleDialog</super> <private>false</private> none lendable <imports></imports> <category>ADE-Tutorial 2</category> <attributes> <package>ADvance2Tutorial</package> </attributes> </class> <comment> ICC.Examples.T2EditLendableDialog
This class is part of the GUI for the library example. It is responsible for editing lendables. Therefore it uses a subcanvas specified by windowSpecs that depend on the edit values class. Implementation Note: This class contains absolutely NO consitency checks; this is only a simple example. Instance Variables: lendable <ValueHolder>
</comment> <name>Default</name> <environment>ICC.Examples.T1Library</environment> <private>false</private> <constant>false</constant> <category>As yet unclassified</category> <attributes> <package>ADvance2Tutorial</package> </attributes> <name>Default</name> <environment>ICC.Examples.T2Library</environment> <private>false</private> <constant>false</constant> <category>As yet unclassified</category> <attributes> <package>ADvance2Tutorial</package> </attributes> <methods> ICC.Examples.T2Librarian <category>administration</category>
addBorrower: aBorrower self library insertInto: #Borrowers values: (Array with: aBorrower)
addLendable: aLendable self library insertInto: #Lendables values: (Array with: aLendable)
removeBorrower: aBorrower self library deleteFrom: #Borrowers where: [:each | each == aBorrower]
removeLendable: aLendable self library deleteFrom: #Lendables where: [:each | each == aLendable]
</methods> <methods> ICC.Examples.T2Librarian <category>library activities</category>
checkIn: aLendable "^<Integer> Check in aLendable for its borrower. Answer the fine the user is charged." ^aLendable checkIn
checkOut: aLendable for: aBorrower "^<Boolean> Check and answer whether aBorrower can borrow, if so, check out aLendable for him." | canBorrow | (canBorrow := aBorrower canBorrow) ifTrue: [aLendable checkOutFor: aBorrower]. ^canBorrow
findLendable: anID "^<T2Lendable | nil> Answer the lendable with anID from 'table' #Lendables, nil if absent.." ^self find: anID inTable: #Lendables
</methods> <methods> ICC.Examples.T2Librarian <category>private</category>
find: anId inTable: aTablename "^<Object | nil> Answer the element with anId from 'table' aTablename, nil if absent." | result | result := self library selectFrom: aTablename where: [:each | each id = anId]. ^result isEmpty ifTrue: [nil] ifFalse: [result first]
</methods> <methods> ICC.Examples.T2Librarian <category>accessing</category>
getAllBorrowers ^self library selectFrom: #Borrowers where: [:each | true]
getAllLendables ^self library selectFrom: #Lendables where: [:each | true]
</methods> <methods> ICC.Examples.T2Librarian <category>private-accessing</category>
library ^library
library: anT2Library library := anT2Library
</methods> <methods> ICC.Examples.T2Librarian class <category>instance creation</category>
brandNew ^self new setLibrary
newInLibrary: aT2Library ^self new library: aT2Library
</methods> <methods> ICC.Examples.ADvanceTutorial1 class <category>ADvance</category>
ad2diagram_Overview ^#(#{ICC.ADvance.AD2DiagramSpec} #name: 'Overview' #creationDateSeconds: 3025432789 #modificationDateSeconds: 3196482019 #author: #(#{ICC.ADvance.AD2Identity} #nickName: '' #name: '' #company: '' ) #state: #(#{ICC.ADvance.AD2DiagramState} #bits: 31 #zoom: '100%' #translation: #(#{Core.Point} 0 1 ) #scriptDepth: 3 #associationDepth: 2 ) #filter: #(#{ICC.ADvance.AD2MethodFilter} #bits: 14 #filteredInstProtocols: #('access-*' 'accessing-*' 'aspects' 'backward*' 'boss*' 'chang*' 'encode-decod*' 'exampl*' 'fileI*' 'fileO*' 'interface*' 'menu*' 'primitiv*' 'privat*' 'resources' ) #filteredInstMethods: #('displayOn:*' 'displayString' 'init*' 'printOn:' 'printString' 'releas*' 'storeOn:' 'storeString' 'update:*' ) #filteredClassProtocols: #('*declarations' '*specs' 'access-*' 'accessing-*' 'ADvance*' 'backward*' 'constants' 'documentation' 'exampl*' 'fileIn/Out' 'info' 'private*' 'resources' 'signal*' ) #filteredClassMethods: #('initialize' 'new' ) ) #classes: #( #(#{ICC.Examples.ADT1Library_GUI} 152 44 1 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.ADT1Library} #attribute: 'library' #layout1: #(1.0 0.47861 ) #layout2: #(0.0 0.534783 ) ) ) ) #(#{ICC.Examples.ADT1Library} 392 72 1 ) ) )
advanceSubjectSpec ^#(#{ICC.ADvance.AD2Subject} #classNames: #('ICC.Examples.ADT1Library' 'ICC.Examples.ADT1Library_GUI'))
markedAsSubjectClass
</methods> <methods> ICC.Examples.T1Lendable <category>accessing</category>
borrower ^borrower
borrower: aBorrower borrower := aBorrower
dueDate ^dueDate
dueDate: aDate dueDate := aDate
id ^id
id: anInteger id := anInteger
</methods> <methods> ICC.Examples.T1Lendable <category>basic-actions</category>
calculateDueDate "The due date is today plus my lendableLimit (in weeks) * 7." ^Date today addDays: self class lendableLimit * 7
calculateOverdueFine "The overdue fine is the number of overdue days multiplied by my overdueFine." | overdueDays | ^(overdueDays := Date today subtractDate: self dueDate) negative ifTrue: [0] ifFalse: [overdueDays * self class overdueFine]
</methods> <methods> ICC.Examples.T1Lendable <category>actions</category>
checkIn "^<Integer> Calculate the overdue fine and charge the borrower if necessary. Then notify the borrower that I'm in and forget him. Answer the overdue fine (may be zero)." | aFine | aFine := self calculateOverdueFine. aFine isZero ifFalse: [self borrower payFine: aFine]. self borrower checkIn: self. self borrower: nil. ^aFine
checkOutFor: aBorrower "Calculate and update my due date, then update the borrower." self dueDate: self calculateDueDate. self borrower: aBorrower. aBorrower checkOut: self.
</methods> <methods> ICC.Examples.T1Lendable <category>printing</category>
displayString ^self id printString
isOutString "^<String> Answer a printable representation for the in/out status." ^self isInLibrary ifTrue: [''] ifFalse: [self isOverdue ifTrue: ['(overdue: ' , self borrower shortDisplayString , ')'] ifFalse: ['(out until ' , self dueDate printString , ')']]
shortDisplayString ^self subclassResponsibility
</methods> <methods> ICC.Examples.T1Lendable <category>testing</category>
isInLibrary "Check whether I have a borrower." ^self borrower isNil
isOverdue "Compare the current date with the dueDate and answer whether I am overdue." ^self dueDate < Date today
</methods> <methods> ICC.Examples.T1Lendable class <category>examples</category>
allExampleInstances | aCollection | aCollection := OrderedCollection new. self allSubclassesDo: [:eachClass | aCollection addAll: eachClass exampleInstances]. ^aCollection
exampleInstances ^self subclassResponsibility
</methods> <methods> ICC.Examples.T1Lendable class <category>ADvance</category>
isADPersistent ^true
</methods> <methods> ICC.Examples.T1Lendable class <category>constants</category>
label "^<String> Answer a string used for labeling all of my instances. Implementation note: Can't use class names because of the prefix." ^self subclassResponsibility
lendableLimit "Answer the lendable (time) limit in weeks." ^self subclassResponsibility
overdueFine "Answer overdue fine in dollars per day." ^self subclassResponsibility
</methods> <methods> ICC.Examples.T1Lendable class <category>interface specs</category>
subcanvasSpec ^self subclassResponsibility
</methods> <methods> ICC.Examples.T1Video <category>accessing</category>
date ^date
date: aDate date := aDate
producer ^producer
producer: aString producer := aString
system ^system
system: aByteSymbol system := aByteSymbol
title ^title
title: aString title := aString
</methods> <methods> ICC.Examples.T1Video <category>printing</category>
displayString ^super displayString , ' ' , self title , '; ' , self date printString , '; ' , self system asString , '; ' , self producer , ' ', self isOutString
shortDisplayString ^self title
</methods> <methods> ICC.Examples.T1Video class <category>examples</category>
exampleInstances ^Array with: (self title: 'VisualWave Demo' date: (Date newDay: 5 month: #December year: 1995) system: #VHS producer: 'Parcplace-Digitalk')
</methods> <methods> ICC.Examples.T1Video class <category>ADvance</category>
isADPersistent ^true
</methods> <methods> ICC.Examples.T1Video class <category>constants</category>
label ^'Video'
lendableLimit "Answer the lendable limit in weeks." ^1
overdueFine "Answer overdue fine in dollars per day." ^5
</methods> <methods> ICC.Examples.T1Video class <category>instance creation</category>
title: title date: date system: system producer: producer ^self new title: title; date: date; system: system; producer: producer; yourself
</methods> <methods> ICC.Examples.T1Journal <category>accessing</category>
date ^date
date: aDate date := aDate
issue ^issue
issue: anInteger issue := anInteger
name ^name
name: aString name := aString
volume ^volume
volume: anInteger volume := anInteger
</methods> <methods> ICC.Examples.T1Journal <category>printing</category>
displayString ^super displayString , ' ' , self name , '; Vol.' , self volume printString , ' No.' , self issue printString , '; ' , self date printString, ' ', self isOutString
shortDisplayString ^self name
</methods> <methods> ICC.Examples.T1Journal class <category>examples</category>
exampleInstances ^Array with: (self name: 'The Smalltalk Report' date: (Date newDay: 1 month: #July year: 1994) volume: 3 issue: 9)
</methods> <methods> ICC.Examples.T1Journal class <category>ADvance</category>
isADPersistent ^true
</methods> <methods> ICC.Examples.T1Journal class <category>constants</category>
label ^'Journal'
lendableLimit "Answer the lendable limit in weeks." ^2
overdueFine "Answer overdue fine in dollars per day." ^3
</methods> <methods> ICC.Examples.T1Journal class <category>instance creation</category>
name: theName date: date volume: volume issue: issue ^self new name: theName; date: date; volume: volume; issue: issue; yourself
</methods> <methods> ICC.Examples.T1Library <category>private-accessing</category>
borrowers ^borrowers
borrowers: aCollectionOfLendables borrowers := aCollectionOfLendables
contentsOfTable: aTablename ^aTablename == #Lendables ifTrue: [self lendables] ifFalse: [self borrowers]
lendables ^lendables
lendables: aCollectionOfLendables lendables := aCollectionOfLendables
</methods> <methods> ICC.Examples.T1Library <category>database accessing</category>
deleteFrom: aTablename where: aBlock "Remove all elements of 'table' aTablename where the unary aBlock evaluates to true." ^(self contentsOfTable: aTablename) removeAllSuchThat: aBlock
insertInto: aTablename values: newValues "Insert the elements of newValues into 'table' aTablename. Give each inserted element a unique id." | aCollection newId | aCollection := self contentsOfTable: aTablename. newId := (aCollection inject: 0 into: [:max :next | max max: next id]) + 1. newValues do: [:each | each id: newId. newId := newId + 1. aCollection add: each]
selectFrom: aTablename where: aBlock "^<OrderedCollection> Answer an OrderedCollection of those elements of 'table' aTablename where the unary aBlock evaluates to true." ^(self contentsOfTable: aTablename) select: [:each | aBlock value: each]
</methods> <methods> ICC.Examples.T1Library <category>initialize-release</category>
initialize self borrowers: OrderedCollection new. self lendables: OrderedCollection new
</methods> <methods> ICC.Examples.T1Library class <category>accessing</category>
default Default isNil ifTrue: [self initializeContents]. ^Default
default: aLibrary Default := aLibrary
</methods> <methods> ICC.Examples.T1Library class <category>private-example creation</category>
initializeContents "self initializeContents" (Default := self new) insertInto: #Lendables values: T1Lendable allExampleInstances; insertInto: #Borrowers values: T1Borrower allExampleInstances
</methods> <methods> ICC.Examples.T1Library class <category>instance creation</category>
new ^super new initialize
</methods> <methods> ICC.Examples.T1Book <category>accessing</category>
author ^author
author: aString author := aString
publisher ^publisher
publisher: aString publisher := aString
title ^title
title: aString title := aString
year ^year
year: anInteger year := anInteger
</methods> <methods> ICC.Examples.T1Book <category>printing</category>
displayString ^super displayString , ' ' , self title , '; ' , self author , '; ' , self year printString, '; ', self publisher, ' ', self isOutString
shortDisplayString ^self title
</methods> <methods> ICC.Examples.T1Book class <category>examples</category>
exampleInstances ^Array with: (self title: 'Smalltalk with Style' author: 'S. Skublics' year: 1996 publisher: 'Prentice-Hall') with: (self title: 'Using CRC Cards' author: 'N. M. Wilkinson' year: 1995 publisher: 'SIGS Books')
</methods> <methods> ICC.Examples.T1Book class <category>ADvance</category>
isADPersistent ^true
</methods> <methods> ICC.Examples.T1Book class <category>constants</category>
label ^'Book'
lendableLimit "Answer the lendable limit in weeks." ^4
overdueFine "Answer overdue fine in dollars per day." ^1
</methods> <methods> ICC.Examples.T1Book class <category>instance creation</category>
title: title author: author year: year publisher: publisher ^self new title: title; author: author; year: year; publisher: publisher; yourself
</methods> <methods> ICC.Examples.T2UserConsole <category>priv</category>
enable: aBoolean group: aCollectionOfIDs self builder isNil ifTrue: [^self]. aCollectionOfIDs do: [:id | | component | component := builder componentAt: id. component notNil ifTrue: [aBoolean ifTrue: [component enable] ifFalse: [component disable]]]
enableMenuAndButtonItems ^self subclassResponsibility
enableMenuItemsAndButtons "Do nothing. Subclasses may override."
updateLendables self lendables list: self librarian getAllLendables
</methods> <methods> ICC.Examples.T2UserConsole <category>actions</category>
findLendable "Request a lendable from user, ask the librarian to look for it and select it if found." | aLendable | (aLendable := self requestLendable: 'Find item with ID:') isNil ifTrue: [^self]. self lendables selection: aLendable
requestLendable: aLabel "^<T2Lendable | nil> Request a lendable ID from User and answer the corresponding lendable, nil if absent." | anIdString anId aLendable | anIdString := Dialog request: aLabel initialAnswer: '' onCancel: [^nil]. anId := Integer readFrom: anIdString readStream. (aLendable := self librarian findLendable: anId) isNil ifTrue: [Dialog warn: 'There''s no lendable with ID ''' , anIdString , '''.'. ^nil]. ^aLendable
</methods> <methods> ICC.Examples.T2UserConsole <category>initialize-release</category>
initialize super initialize. self librarian: (T2Librarian newInLibrary: T2Library default). self lendables selectionIndexHolder onChangeSend: #enableMenuItemsAndButtons to: self
</methods> <methods> ICC.Examples.T2UserConsole <category>aspects</category>
lendables ^lendables isNil ifTrue: [lendables := SelectionInList new] ifFalse: [lendables]
</methods> <methods> ICC.Examples.T2UserConsole <category>priv-accessing</category>
librarian ^librarian
librarian: aT2Librarian librarian := aT2Librarian
menuBar menuBar == nil ifTrue: [menuBar := self class theMenuBar]. ^menuBar
</methods> <methods> ICC.Examples.T2UserConsole <category>interface opening</category>
postBuildWith: aBuilder super postBuildWith: aBuilder. self updateLendables
</methods> <methods> ICC.Examples.T2LibrarianConsole <category>actions</category>
addItem "Select a lendable type (a concrete subclass of Lendable) then open the 'Add Lendable' dialog. If not canceled add the new item to the library." | selectedClass aDialog | selectedClass := Dialog choose: 'Select the type of lendable you want to add.' labels: (T2Lendable subclasses collect: [:each | each label]) values: T2Lendable subclasses default: nil. (aDialog := T2EditLendableDialog new) lendable value: selectedClass new. aDialog open ifFalse: [^self]. self librarian addLendable: aDialog lendable value. self updateLendables
addUser "Ask for a user name, then create a user with this name and add him to the library. Implementation note: We don't test for duplicate names - this is just a simple example :-)" self librarian addBorrower: (T2Borrower name: (Dialog request: 'Enter the new user''s name:' initialAnswer: '' onCancel: [^self]))
checkIn "Request a lendable ID and test if it is in the library, if not, check it in. Warn, if user is charged for an overdue fine." | aLendable | (aLendable := self requestLendable: 'Check in item with ID:') isNil ifTrue: [^self]. aLendable isInLibrary ifTrue: [Dialog warn: aLendable shortDisplayString printString , ' is already in.'] ifFalse: [| aBorrower overdueFine | aBorrower := aLendable borrower. overdueFine := self librarian checkIn: aLendable. overdueFine >0 ifTrue: [Dialog warn: aBorrower shortDisplayString , ' is charged for an overdue fine of $' , overdueFine printString , '.']. self statusChanged]
checkOut "Request a borrower and check out the selected lendable for him. Pre: A lendable is selected." | aBorrower selectedLendable lendableIsLoan | (aBorrower := self requestBorrower: 'Select a user for check out:') isNil ifTrue: [^self]. selectedLendable := self lendables selection. lendableIsLoan := self librarian checkOut: selectedLendable for: aBorrower. lendableIsLoan ifTrue: [Transcript cr; show: selectedLendable shortDisplayString printString , ' checked out for ' , aBorrower shortDisplayString , '.'. self statusChanged] ifFalse: [Dialog warn: aBorrower shortDisplayString , ' can''t borrow items.']
removeItem "Remove - after a confirmation - the selected item from library. Pre: A lendable is selected." | selectedLendable | selectedLendable := self lendables selection. (Dialog confirm: ('Do you really want to remove ' , selectedLendable shortDisplayString printString , ' from library?') withCRs) ifFalse: [^self]. self librarian removeLendable: selectedLendable. self updateLendables
removeUser "Request a borrower, confirm the removal then remove him from the library." | aBorrower | (aBorrower := self requestBorrower: 'Select a user to remove:') isNil ifTrue: [^self]. (Dialog confirm: 'Do you really want to remove ' , aBorrower shortDisplayString printString , ' from library?') ifFalse: [^self]. self librarian removeBorrower: aBorrower
</methods> <methods> ICC.Examples.T2LibrarianConsole <category>private</category>
enableMenuItemsAndButtons "Check whether a lendable is selected and is in the library. If so, enable 'Check out' and 'Remove item', if not, disable them." | selection selectionIsInLibrary menu | selection := self lendables selection. selectionIsInLibrary := selection notNil and: [selection isInLibrary]. self enable: selectionIsInLibrary group: #(#checkOutButton). self enable: selectionIsInLibrary group: #(#removeItemButton). menu := (self menuBar menuItemLabeled: 'Items') submenu. (menu menuItemLabeled: 'Check out...') enabled: selectionIsInLibrary. (menu menuItemLabeled: 'Remove...') enabled: selectionIsInLibrary
requestBorrower: aLabel "^<T1Borrower> Select a Borrower from a list of all borrowers." | allBorrowers | allBorrowers := self librarian getAllBorrowers. ^Dialog choose: aLabel fromList: (allBorrowers collect: [:each | each name]) values: allBorrowers lines: 10 cancel: nil
statusChanged "The in/out status of an item changed. Enable/disable menus and buttons and update the lendables view." self enableMenuItemsAndButtons. (self builder componentAt: #lendables) widget invalidate
</methods> <methods> ICC.Examples.T2Lendable <category>accessing</category>
borrower ^borrower
borrower: aBorrower borrower := aBorrower
dueDate ^dueDate
dueDate: aDate dueDate := aDate
id ^id
id: anInteger id := anInteger
</methods> <methods> ICC.Examples.T2Lendable <category>basic-actions</category>
calculateDueDate "The due date is today plus my lendableLimit (in weeks) * 7." ^Date today addDays: self class lendableLimit * 7
calculateOverdueFine "The overdue fine is the number of overdue days multiplied by my overdueFine." | overdueDays | ^(overdueDays := Date today subtractDate: self dueDate) negative ifTrue: [0] ifFalse: [overdueDays * self class overdueFine]
</methods> <methods> ICC.Examples.T2Lendable <category>actions</category>
checkIn "^<Integer> Calculate the overdue fine and charge the borrower if necessary. Then notify the borrower that I'm in and forget him. Answer the overdue fine (may be zero)." | aFine | aFine := self calculateOverdueFine. aFine isZero ifFalse: [self borrower payFine: aFine]. self borrower checkIn: self. self borrower: nil. ^aFine
checkOutFor: aBorrower "Calculate and update my due date, then update the borrower." self dueDate: self calculateDueDate. self borrower: aBorrower. aBorrower checkOut: self.
</methods> <methods> ICC.Examples.T2Lendable <category>printing</category>
displayString ^self id printString
isOutString "^<String> Answer a printable representation for the in/out status." ^self isInLibrary ifTrue: [''] ifFalse: [self isOverdue ifTrue: ['(overdue: ' , self borrower shortDisplayString , ')'] ifFalse: ['(out until ' , self dueDate printString , ')']]
shortDisplayString ^self subclassResponsibility
</methods> <methods> ICC.Examples.T2Lendable <category>testing</category>
isInLibrary "Check whether I have a borrower." ^self borrower isNil
isOverdue "Compare the current date with the dueDate and answer whether I am overdue." ^self dueDate < Date today
</methods> <methods> ICC.Examples.T2Lendable class <category>examples</category>
allExampleInstances | aCollection | aCollection := OrderedCollection new. self allSubclassesDo: [:eachClass | aCollection addAll: eachClass exampleInstances]. ^aCollection
exampleInstances ^self subclassResponsibility
</methods> <methods> ICC.Examples.T2Lendable class <category>constants</category>
label "^<String> Answer a string used for labeling all of my instances. Implementation note: Can't use class names because of the prefix." ^self subclassResponsibility
lendableLimit "Answer the lendable (time) limit in weeks." ^self subclassResponsibility
overdueFine "Answer overdue fine in dollars per day." ^self subclassResponsibility
</methods> <methods> ICC.Examples.T2Video <category>accessing</category>
date ^date
date: aDate date := aDate
producer ^producer
producer: aString producer := aString
system ^system
system: aByteSymbol system := aByteSymbol
title ^title
title: aString title := aString
</methods> <methods> ICC.Examples.T2Video <category>printing</category>
displayString ^super displayString , ' ' , self title , '; ' , self date printString , '; ' , self system asString , '; ' , self producer , ' ', self isOutString
shortDisplayString ^self title
</methods> <methods> ICC.Examples.T2Video class <category>examples</category>
exampleInstances ^Array with: (self title: 'VisualWave Demo' date: (Date newDay: 5 month: #December year: 1995) system: #VHS producer: 'Parcplace-Digitalk')
</methods> <methods> ICC.Examples.T2Video class <category>constants</category>
label ^'Video'
lendableLimit "Answer the lendable limit in weeks." ^1
overdueFine "Answer overdue fine in dollars per day." ^5
</methods> <methods> ICC.Examples.T2Video class <category>instance creation</category>
title: title date: date system: system producer: producer ^(self new) title: title; date: date; system: system; producer: producer
</methods> <methods> ICC.Examples.T2Journal <category>accessing</category>
date ^date
date: aDate date := aDate
issue ^issue
issue: anInteger issue := anInteger
name ^name
name: aString name := aString
volume ^volume
volume: anInteger volume := anInteger
</methods> <methods> ICC.Examples.T2Journal <category>printing</category>
displayString ^super displayString , ' ' , self name , '; Vol.' , self volume printString , ' No.' , self issue printString , '; ' , self date printString, ' ', self isOutString
shortDisplayString ^self name
</methods> <methods> ICC.Examples.T2Journal class <category>examples</category>
exampleInstances ^Array with: (self name: 'The Smalltalk Report' date: (Date newDay: 1 month: #July year: 1994) volume: 3 issue: 9)
</methods> <methods> ICC.Examples.T2Journal class <category>constants</category>
label ^'Journal'
lendableLimit "Answer the lendable limit in weeks." ^2
overdueFine "Answer overdue fine in dollars per day." ^3
</methods> <methods> ICC.Examples.T2Journal class <category>instance creation</category>
name: theName date: date volume: volume issue: issue ^(self new) name: theName; date: date; volume: volume; issue: issue
</methods> <methods> ICC.Examples.T2Borrower <category>accessing</category>
borrowedItems ^borrowedItems
borrowedItems: aCollectionOfLendables borrowedItems := aCollectionOfLendables
fine ^fine
fine: aNumber fine := aNumber
id ^id
id: anInteger id := anInteger
name ^name
name: aString name := aString
</methods> <methods> ICC.Examples.T2Borrower <category>testing</category>
canBorrow "See if my fine is less than $100, check if I am over lendable limit and if any of my previously borrowed items is overdue." ^self fine < 100 and: [self isInLendableLimit and: [self hasOverdues not]]
hasOverdues "Check whether one of my borrowed items if over due." ^self borrowedItems inject: false into: [:result :next | result | next isOverdue]
isInLendableLimit "Check whether I have borrowed less than five items." ^self borrowedItems size < 5
</methods> <methods> ICC.Examples.T2Borrower <category>actions</category>
checkIn: aLendable self borrowedItems remove: aLendable
checkOut: aLendable self borrowedItems add: aLendable
payFine: aFine "Arrgh, I'm charged for aFine and I'll pay it. Add aFine to my current fine." self fine: self fine + aFine
</methods> <methods> ICC.Examples.T2Borrower <category>printing</category>
displayString ^self id printString, ' ', self name
shortDisplayString ^self name
</methods> <methods> ICC.Examples.T2Borrower <category>initialize-release</category>
initialize self borrowedItems: Set new. self fine: 0
</methods> <methods> ICC.Examples.T2Borrower class <category>examples</category>
allExampleInstances ^(OrderedCollection new) add: (self name: 'Adrienne'); add: (self name: 'Bob'); add: (self name: 'Cynthia'); add: (self name: 'David'); add: (self name: 'Eric'); add: (self name: 'Ron'); yourself
</methods> <methods> ICC.Examples.T2Borrower class <category>instance creation</category>
name: theName ^self new name: theName
new ^super new initialize
</methods> <methods> ICC.Examples.T1EditLendableDialog <category>actions</category>
doAccept accept value: true. self closeAccept
</methods> <methods> ICC.Examples.T1EditLendableDialog <category>aspects</category>
lendable ^lendable isNil ifTrue: [lendable := ValueHolder new] ifFalse: [lendable]
</methods> <methods> ICC.Examples.T1EditLendableDialog <category>private</category>
lendableClass ^self lendable value class
subcanvasSpec ^UISpecification from: self lendableClass subcanvasSpec
</methods> <methods> ICC.Examples.T1EditLendableDialog <category>interface-opening</category>
postOpenWith: aBuilder super postOpenWith: aBuilder. aBuilder window label: 'Add ' , self lendableClass label. (aBuilder componentAt: #lendableCanvas) widget client: self spec: self subcanvasSpec
</methods> <methods> ICC.Examples.T1UserConsole <category>private</category>
enable: aBoolean group: aCollectionOfIDs self builder isNil ifTrue: [^self]. aCollectionOfIDs do: [:id | | component | component := builder componentAt: id. component notNil ifTrue: [aBoolean ifTrue: [component enable] ifFalse: [component disable]]]
enableMenuItemsAndButtons "Do nothing. Subclasses may override."
updateLendables self lendables list: self librarian getAllLendables
</methods> <methods> ICC.Examples.T1UserConsole <category>actions</category>
findLendable "Request a lendable from user, ask the librarian to look for it and select it if found." | aLendable | (aLendable := self requestLendable: 'Find item with ID:') isNil ifTrue: [^self]. self lendables selection: aLendable
requestLendable: aLabel "^<T1Lendable | nil> Request a lendable ID from User and answer the corresponding lendable, nil if absent." | anIdString anId aLendable | anIdString := Dialog request: aLabel initialAnswer: '' onCancel: [^nil]. anId := Integer readFrom: anIdString readStream. (aLendable := self librarian findLendable: anId) isNil ifTrue: [Dialog warn: 'There''s no lendable with ID ''' , anIdString , '''.'. ^nil]. ^aLendable
</methods> <methods> ICC.Examples.T1UserConsole <category>initialize-release</category>
initialize super initialize. self librarian: (T1Librarian newInLibrary: T1Library default). self lendables selectionIndexHolder onChangeSend: #enableMenuItemsAndButtons to: self
</methods> <methods> ICC.Examples.T1UserConsole <category>aspects</category>
lendables ^lendables isNil ifTrue: [lendables := SelectionInList new] ifFalse: [lendables]
</methods> <methods> ICC.Examples.T1UserConsole <category>private-accessing</category>
librarian ^librarian
librarian: aT1Librarian librarian := aT1Librarian
menuBar menuBar isNil ifTrue: [menuBar := self class theMenuBar]. ^menuBar
</methods> <methods> ICC.Examples.T1UserConsole <category>interface opening</category>
postBuildWith: aBuilder super postBuildWith: aBuilder. self updateLendables
</methods> <methods> ICC.Examples.T1LibrarianConsole <category>actions</category>
addItem "Select a lendable type (a concrete subclass of Lendable) then open the 'Add Lendable' dialog. If not canceled add the new item to the library." | selectedClass aDialog | selectedClass := Dialog choose: 'Select the type of lendable you want to add.' labels: (T1Lendable subclasses collect: [:each | each label]) values: T1Lendable subclasses default: nil. (aDialog := T1EditLendableDialog new) lendable value: selectedClass new. aDialog open ifFalse: [^self]. self librarian addLendable: aDialog lendable value. self updateLendables
addUser "Ask for a user name, then create a user with this name and add him to the library. Implementation note: We don't test for duplicate names - this is just a simple example :-)" self librarian addBorrower: (T1Borrower name: (Dialog request: 'Enter the new user''s name:' initialAnswer: '' onCancel: [^self]))
checkIn "Request a lendable ID and test if it is in the library, if not, check it in. Warn, if user is charged for an overdue fine." | aLendable | (aLendable := self requestLendable: 'Check in item with ID:') isNil ifTrue: [^self]. aLendable isInLibrary ifTrue: [Dialog warn: aLendable shortDisplayString printString , ' is already in.'] ifFalse: [| aBorrower overdueFine | aBorrower := aLendable borrower. overdueFine := self librarian checkIn: aLendable. overdueFine >0 ifTrue: [Dialog warn: aBorrower shortDisplayString , ' is charged for an overdue fine of $' , overdueFine printString , '.']. self statusChanged]
checkOut "Request a borrower and check out the selected lendable for him. Pre: A lendable is selected." | aBorrower selectedLendable lendableIsLoan | (aBorrower := self requestBorrower: 'Select a user for check out:') isNil ifTrue: [^self]. selectedLendable := self lendables selection. lendableIsLoan := self librarian checkOut: selectedLendable for: aBorrower. lendableIsLoan ifTrue: [Transcript cr; show: selectedLendable shortDisplayString printString , ' checked out for ' , aBorrower shortDisplayString , '.'. self statusChanged] ifFalse: [Dialog warn: aBorrower shortDisplayString , ' can''t borrow items.']
removeItem "Remove - after a confirmation - the selected item from library. Pre: A lendable is selected." | selectedLendable | selectedLendable := self lendables selection. (Dialog confirm: ('Do you really want to remove ' , selectedLendable shortDisplayString printString , ' from library?') withCRs) ifFalse: [^self]. self librarian removeLendable: selectedLendable. self updateLendables
removeUser "Request a borrower, confirm the removal then remove him from the library." | aBorrower | (aBorrower := self requestBorrower: 'Select a user to remove:') isNil ifTrue: [^self]. (Dialog confirm: 'Do you really want to remove ' , aBorrower shortDisplayString printString , ' from library?') ifFalse: [^self]. self librarian removeBorrower: aBorrower
</methods> <methods> ICC.Examples.T1LibrarianConsole <category>private</category>
enableMenuItemsAndButtons "Check whether a lendable is selected and is in the library. If so, enable 'Check out' and 'Remove item', if not, disable them." | selection selectionIsInLibrary menu | selection := self lendables selection. selectionIsInLibrary := selection notNil and: [selection isInLibrary]. self enable: selectionIsInLibrary group: #(#checkOutButton). self enable: selectionIsInLibrary group: #(#removeItemButton). menu := (self menuBar menuItemLabeled: 'Items') submenu. (menu menuItemLabeled: 'Check out...') enabled: selectionIsInLibrary. (menu menuItemLabeled: 'Remove...') enabled: selectionIsInLibrary
requestBorrower: aLabel "^<T1Borrower> Select a Borrower from a list of all borrowers." | allBorrowers | allBorrowers := self librarian getAllBorrowers. ^Dialog choose: aLabel fromList: (allBorrowers collect: [:each | each name]) values: allBorrowers lines: 10 cancel: nil
statusChanged "The in/out status of an item changed. Enable/disable menus and buttons and update the lendables view." self enableMenuItemsAndButtons. (self builder componentAt: #lendables) widget invalidate
</methods> <methods> ICC.Examples.ADT1Library_GUI <category>actions</category>
addItem
addUser
checkIn "This method is modified by ADvance." ADT1Library new checkIn: nil
checkOut
find
removeItem
removeUser
</methods> <methods> ICC.Examples.ADT1Library_GUI class <category>ADvance</category>
advanceSubjectSpec ^#(#{ICC.ADvance.AD2Subject} #classNames: #('ICC.Examples.T1EditLendableDialog' 'ICC.Examples.T1LibrarianConsole' 'ICC.Examples.T1UserConsole'))
markedAsSubjectClass
</methods> <methods> ICC.Examples.ADT1Library_GUI class <category>client relation specs</category>
itClientRelationsSpec "^<ITClientRelationsScope> Answer a client relations scope." ^( #(#{ICC.IncrementalTypes.IT1ClientRelationScope} #localScope: #{ICC.Examples.ADT1Library_GUI} #clientRelations: #( #(#{ICC.IncrementalTypes.IT1ClientRelation} #roleContext: #{ICC.Examples.ADT1Library_GUI} #roleName: 'library' #role: 'ADT1Library' #implementation: #instQuery ) ) ) ) decodeAsLiteralArray
</methods> <methods> ICC.Examples.T1Librarian <category>administration</category>
addBorrower: aBorrower self library insertInto: #Borrowers values: (Array with: aBorrower)
addLendable: aLendable self library insertInto: #Lendables values: (Array with: aLendable)
removeBorrower: aBorrower self library deleteFrom: #Borrowers where: [:each | each == aBorrower]
removeLendable: aLendable self library deleteFrom: #Lendables where: [:each | each == aLendable]
</methods> <methods> ICC.Examples.T1Librarian <category>library activities</category>
checkIn: aLendable "^<Integer> Check in aLendable for its borrower. Answer the fine the user is charged." ^aLendable checkIn
checkOut: aLendable for: aBorrower "^<Boolean> Check and answer whether aBorrower can borrow, if so, check out aLendable for him." | canBorrow | (canBorrow := aBorrower canBorrow) ifTrue: [aLendable checkOutFor: aBorrower]. ^canBorrow
findLendable: anID "^<T1Lendable | nil> Answer the lendable with anID from 'table' #Lendables, nil if absent.." ^self find: anID inTable: #Lendables
</methods> <methods> ICC.Examples.T1Librarian <category>private</category>
find: anId inTable: aTablename "^<Object | nil> Answer the element with anId from 'table' aTablename, nil if absent." | result | result := self library selectFrom: aTablename where: [:each | each id = anId]. ^result isEmpty ifTrue: [nil] ifFalse: [result first]
</methods> <methods> ICC.Examples.T1Librarian <category>accessing</category>
getAllBorrowers ^self library selectFrom: #Borrowers where: [:each | true]
getAllLendables ^self library selectFrom: #Lendables where: [:each | true]
</methods> <methods> ICC.Examples.T1Librarian <category>private-accessing</category>
library ^library
library: anT1Library library := anT1Library
</methods> <methods> ICC.Examples.T1Librarian class <category>instance creation</category>
newInLibrary: aT1Library ^self new library: aT1Library
</methods> <methods> ICC.Examples.T2Book <category>accessing</category>
author ^author
author: aString author := aString
publisher ^publisher
publisher: aString publisher := aString
title ^title
title: aString title := aString
year ^year
year: anInteger year := anInteger
</methods> <methods> ICC.Examples.T2Book <category>printing</category>
displayString ^super displayString , ' ' , self title , '; ' , self author , '; ' , self year printString, '; ', self publisher, ' ', self isOutString
shortDisplayString ^self title
</methods> <methods> ICC.Examples.T2Book class <category>examples</category>
exampleInstances ^Array with: (self title: 'Smalltalk with Style' author: 'S. Skublics' year: 1996 publisher: 'Prentice-Hall') with: (self title: 'Using CRC Cards' author: 'N. M. Wilkinson' year: 1995 publisher: 'SIGS Books')
</methods> <methods> ICC.Examples.T2Book class <category>constants</category>
label ^'Book'
lendableLimit "Answer the lendable limit in weeks." ^4
overdueFine "Answer overdue fine in dollars per day." ^1
</methods> <methods> ICC.Examples.T2Book class <category>instance creation</category>
title: title author: author year: publishingYear publisher: publisher ^self new title: title; author: author; year: publishingYear; publisher: publisher
</methods> <methods> ICC.Examples.T2Library <category>private-accessing</category>
borrowers ^borrowers
borrowers: aCollectionOfLendables borrowers := aCollectionOfLendables
contentsOfTable: aTablename ^aTablename == #Lendables ifTrue: [self lendables] ifFalse: [self borrowers]
lendables ^lendables
lendables: aCollectionOfLendables lendables := aCollectionOfLendables
</methods> <methods> ICC.Examples.T2Library <category>database accessing</category>
deleteFrom: aTablename where: aBlock "Remove all elements of 'table' aTablename where the unary aBlock evaluates to true." ^(self contentsOfTable: aTablename) removeAllSuchThat: aBlock
insertInto: aTablename values: newValues "Insert the elements of newValues into 'table' aTablename. Give each inserted element a unique id." | aCollection newId | aCollection := self contentsOfTable: aTablename. newId := (aCollection inject: 0 into: [:max :next | max max: next id]) + 1. newValues do: [:each | each id: newId. newId := newId + 1. aCollection add: each]
selectFrom: aTablename where: aBlock "^<OrderedCollection> Answer an OrderedCollection of those elements of 'table' aTablename where the unary aBlock evaluates to true." ^(self contentsOfTable: aTablename) select: [:each | aBlock value: each]
</methods> <methods> ICC.Examples.T2Library <category>initialize-release</category>
initialize self borrowers: OrderedCollection new. self lendables: OrderedCollection new
</methods> <methods> ICC.Examples.T2Library class <category>accessing</category>
default Default isNil ifTrue: [self initializeContents]. ^Default
default: aLibrary Default := aLibrary
</methods> <methods> ICC.Examples.T2Library class <category>private-example creation</category>
initializeContents "self initializeContents" (Default := self new) insertInto: #Lendables values: T2Lendable allExampleInstances; insertInto: #Borrowers values: T2Borrower allExampleInstances
</methods> <methods> ICC.Examples.T2Library class <category>instance creation</category>
new ^super new initialize
</methods> <methods> ICC.Examples.ADT1Library <category>use cases</category>
checkIn: aLendable
checkOut: aLendable for: aBorrower
findLendable: anID
</methods> <methods> ICC.Examples.ADT1Library class <category>ADvance</category>
ad2diagram_Overview ^#(#{ICC.ADvance.AD2DiagramSpec} #name: 'Overview' #creationDateSeconds: 3023652995 #modificationDateSeconds: 3196482043 #author: #(#{ICC.ADvance.AD2Identity} #nickName: '' #name: '' #company: '' ) #state: #(#{ICC.ADvance.AD2DiagramState} #bits: 31 #zoom: '100%' #translation: #(#{Core.Point} -100 -50 ) #scriptDepth: 3 #associationDepth: 2 ) #filter: #(#{ICC.ADvance.AD2MethodFilter} #bits: 15 ) #classes: #( #(#{ICC.Examples.T1UserConsole} 97 48 0 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Librarian} #attribute: 'librarian' ) ) ) #(#{ICC.Examples.T1EditLendableDialog} 90 464 0 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Lendable} #attribute: 'lendable' ) ) ) #(#{ICC.Examples.T1Library} 456 88 1 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Borrower} #attribute: 'borrowers' ) #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Lendable} #attribute: 'lendables' ) #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Library} #attribute: 'Default' ) ) ) #(#{ICC.Examples.T1Librarian} 224 90 1 #filter: #(#{ICC.ADvance.AD2MethodFilter} #bits: 15 ) #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Library} #attribute: 'library' ) ) ) #(#{ICC.Examples.T1Journal} 480 495 1 ) #(#{ICC.Examples.T1Book} 240 487 1 ) #(#{ICC.Examples.T1Lendable} 456 248 1 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Borrower} #attribute: 'borrower' ) ) ) #(#{ICC.Examples.T1Video} 736 487 1 ) #(#{ICC.Examples.T1LibrarianConsole} 116 192 0 ) #(#{ICC.Examples.T1Borrower} 704 80 1 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Lendable} #attribute: 'borrowedItems' ) ) ) ) )
ad2diagram_T1Librarian__checkIn_ ^#(#{ICC.ADvance.AD2DiagramSpec} #name: 'T1Librarian>>checkIn:' #creationDateSeconds: 3023652995 #modificationDateSeconds: 3196482056 #author: #(#{ICC.ADvance.AD2Identity} #nickName: '' #name: '' #company: '' ) #state: #(#{ICC.ADvance.AD2DiagramState} #bits: 50 #zoom: '100%' #translation: #(#{Core.Point} 22 -17 ) #scriptDepth: 3 #associationDepth: 2 ) #filter: #(#{ICC.ADvance.AD2MethodFilter} #bits: 15 ) #classes: #( #(#{ICC.Examples.T1UserConsole} 97 48 0 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Librarian} #attribute: 'librarian' ) ) ) #(#{ICC.Examples.T1Library} 299 105 0 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Borrower} #attribute: 'borrowers' ) #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Lendable} #attribute: 'lendables' ) #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Library} #attribute: 'Default' ) ) ) #(#{ICC.Examples.T1EditLendableDialog} 97 464 0 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Lendable} #attribute: 'lendable' ) ) ) #(#{ICC.Examples.T1Librarian} 136 111 1 #filter: #(#{ICC.ADvance.AD2MethodFilter} #bits: 14 #filteredInstProtocols: #('access-*' 'accessing-*' #administration #animation 'aspects' 'backward*' 'boss*' #'bounds accessing' #'bounds changing' #broadcast 'chang*' #control #converting #displaying 'encode-decod*' 'exampl*' 'fileI*' 'fileO*' #'input management' 'interface*' #layout 'menu*' 'primitiv*' 'privat*' 'resources' #testing #'THS-extensions' #'visual properties' #'visual properties-overriding' ) ) #scripts: #( #checkIn: ) #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Library} #attribute: 'library' ) ) ) #(#{ICC.Examples.T1Journal} 544 352 0 ) #(#{ICC.Examples.T1Book} 303 362 0 ) #(#{ICC.Examples.T1Lendable} 416 257 1 #scripts: #(#checkIn ) #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Borrower} #attribute: 'borrower' ) ) ) #(#{ICC.Examples.T1Video} 760 352 0 ) #(#{ICC.Examples.T1LibrarianConsole} 112 192 0 ) #(#{ICC.Examples.T1Borrower} 681 92 1 #filter: #(#{ICC.ADvance.AD2MethodFilter} #bits: 15 #filteredInstProtocols: #('access-*' 'accessing-*' 'aspects' 'backward*' 'boss*' 'chang*' 'encode-decod*' 'exampl*' 'fileI*' 'fileO*' 'interface*' 'menu*' 'primitiv*' #printing 'privat*' 'resources' ) #filteredInstMethods: #('displayOn:*' 'displayString' 'init*' 'printOn:' 'printString' 'releas*' 'storeOn:' 'storeString' 'update:*' ) #filteredClassProtocols: #('*declarations' '*specs' 'access-*' 'accessing-*' 'ADvance*' 'backward*' 'constants' 'documentation' 'exampl*' 'fileIn/Out' 'info' 'private*' 'resources' 'signal*' ) #filteredClassMethods: #('initialize' 'new' ) ) #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Lendable} #attribute: 'borrowedItems' ) ) ) ) )
ad2diagram_T1Librarian__checkOut_for_ ^#(#{ICC.ADvance.AD2DiagramSpec} #name: 'T1Librarian>>checkOut:for:' #creationDateSeconds: 3023652995 #modificationDateSeconds: 3196482088 #author: #(#{ICC.ADvance.AD2Identity} #nickName: '' #name: '' #company: '' ) #state: #(#{ICC.ADvance.AD2DiagramState} #bits: 50 #zoom: '100%' #translation: #(#{Core.Point} 7 -28 ) #scriptDepth: 3 #associationDepth: 2 ) #filter: #(#{ICC.ADvance.AD2MethodFilter} #bits: 15 ) #description: 'This diagram describes the librarian check out activity.' #classes: #( #(#{ICC.Examples.T1UserConsole} 97 48 0 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Librarian} #attribute: 'librarian' ) ) ) #(#{ICC.Examples.T1Library} 299 105 0 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Borrower} #attribute: 'borrowers' ) #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Lendable} #attribute: 'lendables' ) #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Library} #attribute: 'Default' ) ) ) #(#{ICC.Examples.T1EditLendableDialog} 97 464 0 #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Lendable} #attribute: 'lendable' ) ) ) #(#{ICC.Examples.T1Librarian} 200 94 1 #filter: #(#{ICC.ADvance.AD2MethodFilter} #bits: 14 #filteredInstProtocols: #('access-*' 'accessing-*' #administration #animation 'aspects' 'backward*' 'boss*' #'bounds accessing' #'bounds changing' #broadcast 'chang*' #control #converting #displaying 'encode-decod*' 'exampl*' 'fileI*' 'fileO*' #'input management' 'interface*' #layout 'menu*' 'primitiv*' 'privat*' 'resources' #testing #'THS-extensions' #'visual properties' #'visual properties-overriding' ) ) #scripts: #( #checkOut:for: ) #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Library} #attribute: 'library' ) ) ) #(#{ICC.Examples.T1Journal} 544 352 0 ) #(#{ICC.Examples.T1Book} 303 362 0 ) #(#{ICC.Examples.T1Lendable} 420 261 1 #scripts: #( #checkOutFor: ) #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Borrower} #attribute: 'borrower' ) ) ) #(#{ICC.Examples.T1Video} 760 352 0 ) #(#{ICC.Examples.T1LibrarianConsole} 112 192 0 ) #(#{ICC.Examples.T1Borrower} 684 93 1 #filter: #(#{ICC.ADvance.AD2MethodFilter} #bits: 15 #filteredInstProtocols: #('access-*' 'accessing-*' 'aspects' 'backward*' 'boss*' 'chang*' 'encode-decod*' 'exampl*' 'fileI*' 'fileO*' 'interface*' 'menu*' 'primitiv*' #printing 'privat*' 'resources' ) #filteredInstMethods: #('displayOn:*' 'displayString' 'init*' 'printOn:' 'printString' 'releas*' 'storeOn:' 'storeString' 'update:*' ) #filteredClassProtocols: #('*declarations' '*specs' 'access-*' 'accessing-*' 'ADvance*' 'backward*' 'constants' 'documentation' 'exampl*' 'fileIn/Out' 'info' 'private*' 'resources' 'signal*' ) #filteredClassMethods: #('initialize' 'new' ) ) #scripts: #(#canBorrow #hasOverdues ) #layouts: #( #(#{ICC.ADvance.AD2LayoutSpec} #{ICC.Examples.T1Lendable} #attribute: 'borrowedItems' ) ) ) ) )
advanceSubjectSpec ^#(#{ICC.ADvance.AD2Subject} #classNames: #('ICC.Examples.T1UserConsole' 'ICC.Examples.T1Borrower' 'ICC.Examples.T1EditLendableDialog' 'ICC.Examples.T1Video' 'ICC.Examples.T1Librarian' 'ICC.Examples.T1Lendable' 'ICC.Examples.T1Journal' 'ICC.Examples.T1Library' 'ICC.Examples.T1LibrarianConsole' 'ICC.Examples.T1Book'))
markedAsSubjectClass
</methods> <methods> ICC.Examples.T1Borrower <category>accessing</category>
borrowedItems ^borrowedItems
borrowedItems: aCollectionOfLendables borrowedItems := aCollectionOfLendables
fine ^fine
fine: aNumber fine := aNumber
id ^id
id: anInteger id := anInteger
name ^name
name: aString name := aString
</methods> <methods> ICC.Examples.T1Borrower <category>testing</category>
canBorrow "See if my fine is less than $100, check if I am over lendable limit and if any of my previously borrowed items is overdue." ^self fine < 100 and: [self isInLendableLimit and: [self hasOverdues not]]
hasOverdues "Check whether one of my borrowed items if over due." ^self borrowedItems inject: false into: [:result :next | result | next isOverdue]
isInLendableLimit "Check whether I have borrowed less than five items." ^self borrowedItems size < 5
</methods> <methods> ICC.Examples.T1Borrower <category>actions</category>
checkIn: aLendable self borrowedItems remove: aLendable
checkOut: aLendable self borrowedItems add: aLendable
payFine: aFine "Arrgh, I'm charged for aFine and I'll pay it. Add aFine to my current fine." self fine: self fine + aFine
</methods> <methods> ICC.Examples.T1Borrower <category>printing</category>
displayString ^self id printString, ' ', self name
shortDisplayString ^self name
</methods> <methods> ICC.Examples.T1Borrower <category>initialize-release</category>
initialize self borrowedItems: Set new. self fine: 0
</methods> <methods> ICC.Examples.T1Borrower class <category>examples</category>
allExampleInstances ^(OrderedCollection new) add: (self name: 'Adrienne'); add: (self name: 'Bob'); add: (self name: 'Cynthia'); add: (self name: 'David'); add: (self name: 'Eric'); add: (self name: 'Ron'); yourself
</methods> <methods> ICC.Examples.T1Borrower class <category>ADvance</category>
isADPersistent ^true
</methods> <methods> ICC.Examples.T1Borrower class <category>instance creation</category>
name: theName ^self new name: theName
new ^super new initialize
</methods> <methods> ICC.Examples.T2EditLendableDialog <category>actions</category>
doAccept accept value: true. self closeAccept
</methods> <methods> ICC.Examples.T2EditLendableDialog <category>aspects</category>
lendable ^lendable isNil ifTrue: [lendable := ValueHolder new] ifFalse: [lendable]
</methods> <methods> ICC.Examples.T2EditLendableDialog <category>private</category>
lendableClass ^self lendable value class
subcanvasSpec ^UISpecification from: self lendableClass subcanvasSpec
</methods> <methods> ICC.Examples.T2EditLendableDialog <category>interface-opening</category>
postOpenWith: aBuilder super postOpenWith: aBuilder. aBuilder window label: 'Add ' , self lendableClass label. (aBuilder componentAt: #lendableCanvas) widget client: self spec: self subcanvasSpec
</methods> <methods> ICC.Examples.T1Video class <category>interface specs</category>
subcanvasSpec "UIPainter new openOnClass: self andSelector: #subcanvasSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 450 489 650 689 ) ) #component: #(#SpecCollection #collection: #( #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 34 0 0 1 ) #label: 'Title:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 68 0 0 1 ) #label: 'Date:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 10 0 -10 1 34 0 ) #model: #'lendable title' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 44 0 -10 1 68 0 ) #model: #'lendable date' #type: #date ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 78 0 -10 1 102 0 ) #model: #'lendable system' #type: #symbol ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 102 0 0 1 ) #label: 'System:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 136 0 0 1 ) #label: 'Producer:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 112 0 -10 1 136 0 ) #model: #'lendable producer' ) ) ) )
</methods> <methods> ICC.Examples.T1Journal class <category>interface specs</category>
subcanvasSpec "UIPainter new openOnClass: self andSelector: #subcanvasSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 450 489 650 689 ) ) #component: #(#SpecCollection #collection: #( #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 34 0 0 1 ) #label: 'Name:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 68 0 0 1 ) #label: 'Date:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 10 0 -10 1 34 0 ) #model: #'lendable name' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 44 0 -10 1 68 0 ) #model: #'lendable date' #type: #date ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 78 0 -10 1 102 0 ) #model: #'lendable volume' #type: #number ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 102 0 0 1 ) #label: 'Volume:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 136 0 0 1 ) #label: 'Issue:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 112 0 -10 1 136 0 ) #model: #'lendable issue' #type: #number ) ) ) )
</methods> <methods> ICC.Examples.T1Book class <category>interface specs</category>
subcanvasSpec "UIPainter new openOnClass: self andSelector: #subcanvasSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 455 438 655 638 ) ) #component: #(#SpecCollection #collection: #( #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 34 0 0 1 ) #label: 'Title:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 68 0 0 1 ) #label: 'Author:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 10 0 -10 1 34 0 ) #model: #'lendable title' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 44 0 -10 1 68 0 ) #model: #'lendable author' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 78 0 -10 1 102 0 ) #model: #'lendable year' #type: #number ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 102 0 0 1 ) #label: 'Year:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 136 0 0 1 ) #label: 'Publisher:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 112 0 -10 1 136 0 ) #model: #'lendable publisher' ) ) ) )
</methods> <methods> ICC.Examples.T2UserConsole class <category>resources</category>
applicationImage "UIMaskEditor new openOnClass: self andSelector: #applicationImage" <resource: #image> ^CachedImage on: (Image extent: 32@38 depth: 4 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 15) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: (ColorValue scaledRed: 0 scaledGreen: 4112 scaledBlue: 0); at: 4 put: ColorValue white; at: 5 put: (ColorValue scaledRed: 0 scaledGreen: 0 scaledBlue: 4112); at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 0); at: 7 put: (ColorValue scaledRed: 0 scaledGreen: 4112 scaledBlue: 4112); at: 8 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 0); at: 9 put: ColorValue blue; at: 10 put: ColorValue red; at: 11 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 12 put: ColorValue green; at: 13 put: ColorValue yellow; at: 14 put: ColorValue lightGray; at: 15 put: ColorValue cyan; yourself)) usingBits: (ByteArray fromPackedString: 'DQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQD@DQ@ADQDQDQDQDQDQDQDQ@ADP@QDQDQDQDQDQDQDQDP@QD@DQDQDQDQDQDQDQDQ@@@@@@DQDQDQDQDQDQDQD@@@@@@@DQDQDQDQDQDQDQCP@@4@@ADQDQDQDQDQDQDP4@@M@@@QDQDQDQDQDQDQD@@@@@@@DQDQDQDQDQDQDQ@@(QF @ADQDQDQDQDQDQDP4ADQDM@QDQDQDQDQDQDQD@@QDQ@@DQDQDQDDQ@DQDQDQDQDQDQDQDQDQA&PADQDQDQDQDQDQDQDQDPY$@@@QDQDQDQDQDQDQDQDFY@; DQDQDQDQDQDQDQDQA&PN8ADQDQDQDQDQDQDQDPY$C.@QDQDQDQDQDQDP@@@FY@Y DQDQDQDQDQDQDK.;A&PN8ADQDQDQDQDQDQ@"H Y$A&@@@@@@@@@QDQDPH<HHY@; 3@3@3@3@DQDQDBL2BFPN8@@@@@@@@ADQ@@@#L !$C.CLCLCLCL@QDP&PH3HHY@; 3@3@3@3@DQDETBH"BFPN8G\G\G\G\ADQBY@"H !$C.A7A7A7A7@QDPUPH"HH!@; ]0]0]0]0DQDITBH"BHPN8G\G\G\G\ADQBU@"H "DC.A7A7A7A7@QDP%P.;,H!@Y ]0]0]0]0DQDITK.;BHPN8G\G\G\G\ADQBU@"H "DA&A7A7A7A7@QDP%PH"HHA@; ]0]0]0]0DQDITK.;BH N8G\G\G\G\AD@@@@@@@@@@@@@@@@@@@@@UUUUUUUUUUUUUUUUUUUUUZ********************(b'))
findImage "UIMaskEditor new openOnClass: self andSelector: #findImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 2 bitsPerPixel: 2 palette: (MappedPalette withColors: ((Array new: 3) at: 1 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 2 put: ColorValue black; at: 3 put: ColorValue white; yourself)) usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 1 80 0 0 0 0 0 25 1 144 0 0 0 0 0 21 1 80 0 0 0 0 0 85 69 84 0 0 0 0 0 101 70 84 0 0 0 0 1 85 85 85 0 0 0 0 5 149 22 85 64 0 0 0 5 149 22 85 64 0 0 0 5 149 86 85 64 0 0 0 5 85 69 85 64 0 0 0 6 84 0 101 64 0 0 0 6 84 0 101 64 0 0 0 5 84 0 85 64 0 0 0 0 0 0 0 0 0 0 0])
</methods> <methods> ICC.Examples.T2UserConsole class <category>menu</category>
lendablesMenu "UIMenuEditor new openOnClass: self andSelector: #lendablesMenu" <resource: #menu> ^#(#Menu #( #(#MenuItem #label: 'Update' ) ) #(1 ) #(#updateLendables ) ) decodeAsLiteralArray
theMenuBar "UIMenuEditor new openOnClass: self andSelector: #theMenuBar" <resource: #menu> ^#(#Menu #( #(#MenuItem #label: 'File' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Update' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Exit' #accessCharacterPosition: 2 ) ) #(1 1 ) #(#updateLendables #closeRequest ) ) ) #(#MenuItem #label: 'Items' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Find...' #accessCharacterPosition: 1 ) ) #(1 ) #(#findLendable ) ) ) ) #(2 ) #(nil nil ) ) decodeAsLiteralArray
</methods> <methods> ICC.Examples.T2UserConsole class <category>interface specs</category>
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'User Console' #min: #(#Point 208 99 ) #bounds: #(#Rectangle 496 418 962 712 ) #flags: 4 #menu: #menuBar #colors: #(#LookPreferences #setBackgroundColor: #(#ColorValue 6167 6167 6167 ) ) ) #component: #(#SpecCollection #collection: #( #(#SequenceViewSpec #layout: #(#LayoutFrame 0 0 26 0 0 1 0 1 ) #name: #lendables #colors: #(#LookPreferences #setBackgroundColor: #(#ColorValue #white ) ) #model: #lendables #menu: #lendablesMenu ) #(#ActionButtonSpec #layout: #(#Rectangle 6 2 30 24 ) #model: #findLendable #label: #findImage #hasCharacterOrientedLabel: false ) ) ) )
</methods> <methods> ICC.Examples.T2LibrarianConsole class <category>resources</category>
addItemImage "UIMaskEditor new openOnClass: self andSelector: #addItemImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 7) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: ColorValue white; at: 4 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 5 put: ColorValue yellow; at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 4112); at: 7 put: ColorValue lightGray; yourself)) usingBits: #[17 17 17 17 17 17 17 17 17 0 0 0 17 17 17 17 17 17 17 17 17 0 0 0 17 19 33 17 17 1 17 17 17 0 0 0 65 19 65 19 37 48 1 17 17 0 0 0 52 19 33 52 83 85 80 1 17 0 0 0 19 67 67 69 53 85 85 80 1 0 0 0 36 52 36 36 85 85 85 85 1 0 0 0 51 50 70 53 85 85 85 80 1 0 0 0 17 35 35 85 85 85 85 3 0 0 0 0 49 19 64 85 85 85 80 54 80 0 0 0 33 19 38 0 85 85 3 101 6 0 0 0 17 17 2 102 0 80 54 80 97 0 0 0 17 17 16 34 102 3 101 1 17 0 0 0 17 17 17 0 34 102 80 17 17 0 0 0 17 17 17 17 0 37 1 17 17 0 0 0 17 17 17 17 17 0 17 17 17 0 0 0])
addUserImage "UIMaskEditor new openOnClass: self andSelector: #addUserImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 6) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: ColorValue white; at: 4 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 5 put: ColorValue yellow; at: 6 put: ColorValue lightGray; yourself)) usingBits: #[17 17 17 16 0 1 17 17 17 0 0 0 17 17 17 0 0 0 17 17 17 0 0 0 17 19 33 0 0 0 17 17 17 0 0 0 65 19 65 3 32 0 17 17 17 0 0 0 52 19 33 52 0 0 17 17 17 0 0 0 19 67 67 64 0 1 17 17 17 0 0 0 36 52 36 36 0 17 17 17 17 0 0 0 51 50 69 48 0 0 1 17 17 0 0 0 17 35 32 0 0 0 0 17 17 0 0 0 49 19 64 0 0 0 0 17 17 0 0 0 33 19 32 0 0 0 0 17 17 0 0 0 17 17 0 0 0 0 0 17 17 0 0 0 17 17 0 0 0 0 0 17 17 0 0 0 17 17 0 0 0 0 0 17 17 0 0 0 17 17 0 0 0 0 0 17 17 0 0 0 17 17 0 0 0 0 0 17 17 0 0 0])
applicationImage "UIMaskEditor new openOnClass: self andSelector: #applicationImage" <resource: #image> ^CachedImage on: (Image extent: 32@38 depth: 4 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 15) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: (ColorValue scaledRed: 0 scaledGreen: 4112 scaledBlue: 0); at: 4 put: ColorValue white; at: 5 put: (ColorValue scaledRed: 0 scaledGreen: 0 scaledBlue: 4112); at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 0); at: 7 put: (ColorValue scaledRed: 0 scaledGreen: 4112 scaledBlue: 4112); at: 8 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 0); at: 9 put: ColorValue green; at: 10 put: ColorValue red; at: 11 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 12 put: ColorValue blue; at: 13 put: ColorValue yellow; at: 14 put: ColorValue lightGray; at: 15 put: ColorValue cyan; yourself)) usingBits: (ByteArray fromPackedString: 'DQDQDQDQDQDQDQDQDQDQDQF1DQDQDQ.;.1DQD@DQ@AD[.1F1DQDQ.;,QDQ@ADP@QD[.;,QDQD[.;DQDP@QD@DQD[.;DQDQ.;.1DQ@@@@@@DQF;.1DQF;,Q,QD@@@@@@@D[.;,QDQF1DQDQCP@@4@@ADQDQDQDQDQDQDP4@@M@@@QDQDQDQDQDQDQD@@@@@@@DQDQDQDQDQDQDQ@@(QF @ADQDQDQDQDQDQDP4ADQDM@QDQDQDQDQDQDQD@@QDQ@@DQDQDQDDQ@DQDQDQDQDQDQDQDQDQA&PADQDQDQDQDQDQDQDQDPY$@@@QDQDQDQDQDQDQDQDFY@; DQDQDQDQDQDQDQDQA&PN8ADQDQDQDQDQDQDQDPY$C.@QDQDQDQDQDQDP@@@FY@Y DQDQDQDQDQDQDH"HA&PN8ADQDQDQDQDQDQ@"H Y$A&@@@@@@@@@QDQDPH<HKY@; 3@3@3@3@DQDQDBL2B6PN8@@@@@@@@ADQ@@@#L -$C.CLCLCLCL@QDP&PH3HKY@; 3@3@3@3@DQDETBH"B6PN8G\G\G\G\ADQBY@"H -$C.A7A7A7A7@QDPUPH"HK-@; ]0]0]0]0DQDITBH"B;PN8G\G\G\G\ADQBU@"H .4C.A7A7A7A7@QDP%P"H K-@Y ]0]0]0]0DQDITH"HB;PN8G\G\G\G\ADQBU@"H .4A&A7A7A7A7@QDP%PH"HKA@; ]0]0]0]0DQDITH"HB;,N8G\G\G\G\AD@@@@@@@@@@@@@@@@@@@@@UUUUUUUUUUUUUUUUUUUUUZ********************(b'))
checkInImage "UIMaskEditor new openOnClass: self andSelector: #checkInImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 7) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: ColorValue white; at: 4 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 5 put: ColorValue lightGray; at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 4112); at: 7 put: ColorValue blue; yourself)) usingBits: #[22 17 17 17 17 17 17 17 17 0 0 0 102 97 22 17 17 17 17 17 17 0 0 0 22 102 102 17 1 17 17 17 17 0 0 0 17 102 102 21 48 1 17 17 17 0 0 0 17 102 102 83 85 80 1 17 17 0 0 0 22 102 102 53 85 85 80 1 17 0 0 0 17 17 83 85 85 85 85 1 17 0 0 0 17 21 53 85 85 85 80 1 17 0 0 0 17 83 85 85 85 85 3 0 17 0 0 0 17 80 85 85 85 80 52 80 17 0 0 0 17 84 0 85 85 3 69 4 17 0 0 0 17 2 68 0 80 52 80 65 17 0 0 0 17 16 34 68 3 69 1 17 17 0 0 0 17 17 0 34 68 80 17 17 17 0 0 0 17 17 17 0 37 1 17 17 17 0 0 0 17 17 17 17 0 17 17 17 17 0 0 0])
checkOutImage "UIMaskEditor new openOnClass: self andSelector: #checkOutImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 7) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: ColorValue white; at: 4 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 5 put: ColorValue lightGray; at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 4112); at: 7 put: ColorValue blue; yourself)) usingBits: #[17 17 17 17 17 17 102 102 97 0 0 0 17 17 17 17 17 17 22 102 97 0 0 0 17 17 17 17 1 17 22 102 97 0 0 0 17 17 17 21 48 1 102 102 97 0 0 0 17 17 17 83 85 86 102 17 97 0 0 0 17 17 21 53 85 85 96 1 17 0 0 0 17 17 83 85 85 85 85 1 17 0 0 0 17 21 53 85 85 85 80 1 17 0 0 0 17 83 85 85 85 85 3 0 17 0 0 0 17 80 85 85 85 80 52 80 17 0 0 0 17 84 0 85 85 3 69 4 17 0 0 0 17 2 68 0 80 52 80 65 17 0 0 0 17 16 34 68 3 69 1 17 17 0 0 0 17 17 0 34 68 80 17 17 17 0 0 0 17 17 17 0 37 1 17 17 17 0 0 0 17 17 17 17 0 17 17 17 17 0 0 0])
removeItemImage "UIMaskEditor new openOnClass: self andSelector: #removeItemImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 8) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: ColorValue white; at: 4 put: (ColorValue scaledRed: 6553 scaledGreen: 0 scaledBlue: 6135); at: 5 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 4112); at: 7 put: (ColorValue scaledRed: 6553 scaledGreen: 0 scaledBlue: 0); at: 8 put: ColorValue lightGray; yourself)) usingBits: #[17 17 17 17 17 17 17 17 17 0 0 0 17 17 17 17 17 17 17 17 17 0 0 0 17 17 17 17 17 1 17 17 17 0 0 0 22 49 17 22 21 64 1 17 17 0 0 0 19 102 97 97 84 85 80 1 17 0 0 0 17 19 102 21 69 85 85 80 1 0 0 0 17 22 54 84 85 85 85 85 1 0 0 0 17 102 22 101 85 85 85 80 1 0 0 0 22 97 84 99 85 85 85 4 0 0 0 0 17 97 80 85 85 85 80 71 80 0 0 0 17 17 87 0 85 85 4 117 7 0 0 0 17 17 2 119 0 80 71 80 113 0 0 0 17 17 16 34 119 4 117 1 17 0 0 0 17 17 17 0 34 119 80 17 17 0 0 0 17 17 17 17 0 37 1 17 17 0 0 0 17 17 17 17 17 0 17 17 17 0 0 0])
removeUserImage "UIMaskEditor new openOnClass: self andSelector: #removeUserImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 2 bitsPerPixel: 2 palette: (MappedPalette withColors: ((Array new: 4) at: 1 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 2 put: ColorValue black; at: 3 put: (ColorValue scaledRed: 6553 scaledGreen: 0 scaledBlue: 0); at: 4 put: (ColorValue scaledRed: 6553 scaledGreen: 0 scaledBlue: 6135); yourself)) usingBits: #[0 1 84 0 0 0 0 0 0 5 85 0 0 0 0 0 0 5 85 0 0 0 0 0 0 5 85 0 0 0 0 0 0 5 85 0 0 0 0 0 44 2 84 0 0 0 0 0 58 136 80 0 0 0 0 0 3 165 85 64 0 0 0 0 2 229 85 80 0 0 0 0 10 105 85 80 0 0 0 0 40 91 85 80 0 0 0 0 8 85 85 80 0 0 0 0 0 85 85 80 0 0 0 0 0 85 85 80 0 0 0 0 0 85 85 80 0 0 0 0 0 85 85 80 0 0 0 0])
theMenuBar "UIMenuEditor new openOnClass: self andSelector: #theMenuBar" <resource: #menu> ^#(#Menu #( #(#MenuItem #label: 'File' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Update' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Exit' #accessCharacterPosition: 2 ) ) #(1 1 ) #(#updateLendables #closeRequest ) ) ) #(#MenuItem #label: 'Items' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Find...' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Check in...' #accessCharacterPosition: 7 ) #(#MenuItem #label: 'Check out...' #accessCharacterPosition: 7 ) #(#MenuItem #label: 'Add...' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Remove...' #accessCharacterPosition: 1 ) ) #(1 2 2 ) #(#findLendable #checkIn #checkOut #addItem #removeItem ) ) ) #(#MenuItem #label: 'User' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Add...' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Remove...' #accessCharacterPosition: 1 ) ) #(2 ) #(#addUser #removeUser ) ) ) ) #(3 ) #(nil nil nil ) ) decodeAsLiteralArray
</methods> <methods> ICC.Examples.T2LibrarianConsole class <category>interface specs</category>
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'Librarian Console' #min: #(#Point 240 135 ) #bounds: #(#Rectangle 453 455 920 753 ) #flags: 4 #menu: #menuBar #colors: #(#LookPreferences #setBackgroundColor: #(#ColorValue 6167 6167 6167 ) ) ) #component: #(#SpecCollection #collection: #( #(#SequenceViewSpec #layout: #(#LayoutFrame 0 0 26 0 0 1 0 1 ) #name: #lendables #colors: #(#LookPreferences #setBackgroundColor: #(#ColorValue #white ) ) #model: #lendables #menu: #lendablesMenu ) #(#ActionButtonSpec #layout: #(#Rectangle 6 2 30 24 ) #model: #findLendable #label: #findImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 30 2 54 24 ) #model: #checkIn #label: #checkInImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 54 2 78 24 ) #name: #checkOutButton #model: #checkOut #label: #checkOutImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 78 2 102 24 ) #model: #addItem #label: #addItemImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 102 2 126 24 ) #name: #removeItemButton #model: #removeItem #label: #removeItemImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 132 2 156 24 ) #model: #addUser #label: #addUserImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 156 2 180 24 ) #model: #removeUser #label: #removeUserImage #hasCharacterOrientedLabel: false ) ) ) )
</methods> <methods> ICC.Examples.T2Video class <category>interface specs</category>
subcanvasSpec "UIPainter new openOnClass: self andSelector: #subcanvasSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 450 489 650 689 ) ) #component: #(#SpecCollection #collection: #( #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 34 0 0 1 ) #label: 'Title:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 68 0 0 1 ) #label: 'Date:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 10 0 -10 1 34 0 ) #model: #'lendable title' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 44 0 -10 1 68 0 ) #model: #'lendable date' #type: #date ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 78 0 -10 1 102 0 ) #model: #'lendable system' #type: #symbol ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 102 0 0 1 ) #label: 'System:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 136 0 0 1 ) #label: 'Producer:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 112 0 -10 1 136 0 ) #model: #'lendable producer' ) ) ) )
</methods> <methods> ICC.Examples.T2Journal class <category>interface specs</category>
subcanvasSpec "UIPainter new openOnClass: self andSelector: #subcanvasSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 450 489 650 689 ) ) #component: #(#SpecCollection #collection: #( #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 34 0 0 1 ) #label: 'Name:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 68 0 0 1 ) #label: 'Date:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 10 0 -10 1 34 0 ) #model: #'lendable name' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 44 0 -10 1 68 0 ) #model: #'lendable date' #type: #date ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 78 0 -10 1 102 0 ) #model: #'lendable volume' #type: #number ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 102 0 0 1 ) #label: 'Volume:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 136 0 0 1 ) #label: 'Issue:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 112 0 -10 1 136 0 ) #model: #'lendable issue' #type: #number ) ) ) )
</methods> <methods> ICC.Examples.T1EditLendableDialog class <category>interface specs</category>
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Unlabeled Canvas' #min: #(#{Core.Point} 320 198 ) #max: #(#{Core.Point} 320 198 ) #bounds: #(#{Graphics.Rectangle} 576 432 896 630 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 10 0 -44 1 -10 1 -42 1 ) ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -165 1 -33 1 -90 1 -10 1 ) #name: #okButton #model: #doAccept #label: 'OK' #isDefault: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -85 1 -33 1 -10 1 -10 1 ) #model: #doCancel #label: 'Cancel' ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 -44 1 ) #name: #lendableCanvas #flags: 0 ) ) ) )
</methods> <methods> ICC.Examples.T1UserConsole class <category>resources</category>
applicationImage "UIMaskEditor new openOnClass: self andSelector: #applicationImage" <resource: #image> ^CachedImage on: (Image extent: 32@38 depth: 4 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 15) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: (ColorValue scaledRed: 0 scaledGreen: 4112 scaledBlue: 0); at: 4 put: ColorValue white; at: 5 put: (ColorValue scaledRed: 0 scaledGreen: 0 scaledBlue: 4112); at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 0); at: 7 put: (ColorValue scaledRed: 0 scaledGreen: 4112 scaledBlue: 4112); at: 8 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 0); at: 9 put: ColorValue blue; at: 10 put: ColorValue red; at: 11 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 12 put: ColorValue green; at: 13 put: ColorValue yellow; at: 14 put: ColorValue lightGray; at: 15 put: ColorValue cyan; yourself)) usingBits: (ByteArray fromPackedString: 'DQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQD@DQ@ADQDQDQDQDQDQDQDQ@ADP@QDQDQDQDQDQDQDQDP@QD@DQDQDQDQDQDQDQDQ@@@@@@DQDQDQDQDQDQDQD@@@@@@@DQDQDQDQDQDQDQCP@@4@@ADQDQDQDQDQDQDP4@@M@@@QDQDQDQDQDQDQD@@@@@@@DQDQDQDQDQDQDQ@@(QF @ADQDQDQDQDQDQDP4ADQDM@QDQDQDQDQDQDQD@@QDQ@@DQDQDQDDQ@DQDQDQDQDQDQDQDQDQA&PADQDQDQDQDQDQDQDQDPY$@@@QDQDQDQDQDQDQDQDFY@; DQDQDQDQDQDQDQDQA&PN8ADQDQDQDQDQDQDQDPY$C.@QDQDQDQDQDQDP@@@FY@Y DQDQDQDQDQDQDK.;A&PN8ADQDQDQDQDQDQ@"H Y$A&@@@@@@@@@QDQDPH<HHY@; 3@3@3@3@DQDQDBL2BFPN8@@@@@@@@ADQ@@@#L !$C.CLCLCLCL@QDP&PH3HHY@; 3@3@3@3@DQDETBH"BFPN8G\G\G\G\ADQBY@"H !$C.A7A7A7A7@QDPUPH"HH!@; ]0]0]0]0DQDITBH"BHPN8G\G\G\G\ADQBU@"H "DC.A7A7A7A7@QDP%P.;,H!@Y ]0]0]0]0DQDITK.;BHPN8G\G\G\G\ADQBU@"H "DA&A7A7A7A7@QDP%PH"HHA@; ]0]0]0]0DQDITK.;BH N8G\G\G\G\AD@@@@@@@@@@@@@@@@@@@@@UUUUUUUUUUUUUUUUUUUUUZ********************(b'))
findImage "UIMaskEditor new openOnClass: self andSelector: #findImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 2 bitsPerPixel: 2 palette: (MappedPalette withColors: ((Array new: 3) at: 1 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 2 put: ColorValue black; at: 3 put: ColorValue white; yourself)) usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 1 80 0 0 0 0 0 25 1 144 0 0 0 0 0 21 1 80 0 0 0 0 0 85 69 84 0 0 0 0 0 101 70 84 0 0 0 0 1 85 85 85 0 0 0 0 5 149 22 85 64 0 0 0 5 149 22 85 64 0 0 0 5 149 86 85 64 0 0 0 5 85 69 85 64 0 0 0 6 84 0 101 64 0 0 0 6 84 0 101 64 0 0 0 5 84 0 85 64 0 0 0 0 0 0 0 0 0 0 0])
lendablesMenu "UIMenuEditor new openOnClass: self andSelector: #lendablesMenu" <resource: #menu> ^#(#Menu #( #(#MenuItem #label: 'Update' ) ) #(1 ) #(#updateLendables ) ) decodeAsLiteralArray
theMenuBar "UIMenuEditor new openOnClass: self andSelector: #theMenuBar" <resource: #menu> ^#(#Menu #( #(#MenuItem #label: 'File' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Update' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Exit' #accessCharacterPosition: 2 ) ) #(1 1 ) #(#updateLendables #closeRequest ) ) ) #(#MenuItem #label: 'Items' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Find...' #accessCharacterPosition: 1 ) ) #(1 ) #(#findLendable ) ) ) ) #(2 ) #(nil nil ) ) decodeAsLiteralArray
</methods> <methods> ICC.Examples.T1UserConsole class <category>interface specs</category>
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'User Console' #min: #(#Point 208 99 ) #bounds: #(#Rectangle 496 418 962 712 ) #flags: 4 #menu: #menuBar #colors: #(#LookPreferences #setBackgroundColor: #(#ColorValue 6167 6167 6167 ) ) ) #component: #(#SpecCollection #collection: #( #(#SequenceViewSpec #layout: #(#LayoutFrame 0 0 26 0 0 1 0 1 ) #name: #lendables #colors: #(#LookPreferences #setBackgroundColor: #(#ColorValue #white ) ) #model: #lendables #menu: #lendablesMenu ) #(#ActionButtonSpec #layout: #(#Rectangle 6 2 30 24 ) #model: #findLendable #label: #findImage #hasCharacterOrientedLabel: false ) ) ) )
</methods> <methods> ICC.Examples.T1LibrarianConsole class <category>resources</category>
addItemImage "UIMaskEditor new openOnClass: self andSelector: #addItemImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 7) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: ColorValue white; at: 4 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 5 put: ColorValue yellow; at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 4112); at: 7 put: ColorValue lightGray; yourself)) usingBits: #[17 17 17 17 17 17 17 17 17 0 0 0 17 17 17 17 17 17 17 17 17 0 0 0 17 19 33 17 17 1 17 17 17 0 0 0 65 19 65 19 37 48 1 17 17 0 0 0 52 19 33 52 83 85 80 1 17 0 0 0 19 67 67 69 53 85 85 80 1 0 0 0 36 52 36 36 85 85 85 85 1 0 0 0 51 50 70 53 85 85 85 80 1 0 0 0 17 35 35 85 85 85 85 3 0 0 0 0 49 19 64 85 85 85 80 54 80 0 0 0 33 19 38 0 85 85 3 101 6 0 0 0 17 17 2 102 0 80 54 80 97 0 0 0 17 17 16 34 102 3 101 1 17 0 0 0 17 17 17 0 34 102 80 17 17 0 0 0 17 17 17 17 0 37 1 17 17 0 0 0 17 17 17 17 17 0 17 17 17 0 0 0])
addUserImage "UIMaskEditor new openOnClass: self andSelector: #addUserImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 6) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: ColorValue white; at: 4 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 5 put: ColorValue yellow; at: 6 put: ColorValue lightGray; yourself)) usingBits: #[17 17 17 16 0 1 17 17 17 0 0 0 17 17 17 0 0 0 17 17 17 0 0 0 17 19 33 0 0 0 17 17 17 0 0 0 65 19 65 3 32 0 17 17 17 0 0 0 52 19 33 52 0 0 17 17 17 0 0 0 19 67 67 64 0 1 17 17 17 0 0 0 36 52 36 36 0 17 17 17 17 0 0 0 51 50 69 48 0 0 1 17 17 0 0 0 17 35 32 0 0 0 0 17 17 0 0 0 49 19 64 0 0 0 0 17 17 0 0 0 33 19 32 0 0 0 0 17 17 0 0 0 17 17 0 0 0 0 0 17 17 0 0 0 17 17 0 0 0 0 0 17 17 0 0 0 17 17 0 0 0 0 0 17 17 0 0 0 17 17 0 0 0 0 0 17 17 0 0 0 17 17 0 0 0 0 0 17 17 0 0 0])
applicationImage "UIMaskEditor new openOnClass: self andSelector: #applicationImage" <resource: #image> ^CachedImage on: (Image extent: 32@38 depth: 4 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 15) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: (ColorValue scaledRed: 0 scaledGreen: 4112 scaledBlue: 0); at: 4 put: ColorValue white; at: 5 put: (ColorValue scaledRed: 0 scaledGreen: 0 scaledBlue: 4112); at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 0); at: 7 put: (ColorValue scaledRed: 0 scaledGreen: 4112 scaledBlue: 4112); at: 8 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 0); at: 9 put: ColorValue green; at: 10 put: ColorValue red; at: 11 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 12 put: ColorValue blue; at: 13 put: ColorValue yellow; at: 14 put: ColorValue lightGray; at: 15 put: ColorValue cyan; yourself)) usingBits: (ByteArray fromPackedString: 'DQDQDQDQDQDQDQDQDQDQDQF1DQDQDQ.;.1DQD@DQ@AD[.1F1DQDQ.;,QDQ@ADP@QD[.;,QDQD[.;DQDP@QD@DQD[.;DQDQ.;.1DQ@@@@@@DQF;.1DQF;,Q,QD@@@@@@@D[.;,QDQF1DQDQCP@@4@@ADQDQDQDQDQDQDP4@@M@@@QDQDQDQDQDQDQD@@@@@@@DQDQDQDQDQDQDQ@@(QF @ADQDQDQDQDQDQDP4ADQDM@QDQDQDQDQDQDQD@@QDQ@@DQDQDQDDQ@DQDQDQDQDQDQDQDQDQA&PADQDQDQDQDQDQDQDQDPY$@@@QDQDQDQDQDQDQDQDFY@; DQDQDQDQDQDQDQDQA&PN8ADQDQDQDQDQDQDQDPY$C.@QDQDQDQDQDQDP@@@FY@Y DQDQDQDQDQDQDH"HA&PN8ADQDQDQDQDQDQ@"H Y$A&@@@@@@@@@QDQDPH<HKY@; 3@3@3@3@DQDQDBL2B6PN8@@@@@@@@ADQ@@@#L -$C.CLCLCLCL@QDP&PH3HKY@; 3@3@3@3@DQDETBH"B6PN8G\G\G\G\ADQBY@"H -$C.A7A7A7A7@QDPUPH"HK-@; ]0]0]0]0DQDITBH"B;PN8G\G\G\G\ADQBU@"H .4C.A7A7A7A7@QDP%P"H K-@Y ]0]0]0]0DQDITH"HB;PN8G\G\G\G\ADQBU@"H .4A&A7A7A7A7@QDP%PH"HKA@; ]0]0]0]0DQDITH"HB;,N8G\G\G\G\AD@@@@@@@@@@@@@@@@@@@@@UUUUUUUUUUUUUUUUUUUUUZ********************(b'))
checkInImage "UIMaskEditor new openOnClass: self andSelector: #checkInImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 7) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: ColorValue white; at: 4 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 5 put: ColorValue lightGray; at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 4112); at: 7 put: ColorValue blue; yourself)) usingBits: #[22 17 17 17 17 17 17 17 17 0 0 0 102 97 22 17 17 17 17 17 17 0 0 0 22 102 102 17 1 17 17 17 17 0 0 0 17 102 102 21 48 1 17 17 17 0 0 0 17 102 102 83 85 80 1 17 17 0 0 0 22 102 102 53 85 85 80 1 17 0 0 0 17 17 83 85 85 85 85 1 17 0 0 0 17 21 53 85 85 85 80 1 17 0 0 0 17 83 85 85 85 85 3 0 17 0 0 0 17 80 85 85 85 80 52 80 17 0 0 0 17 84 0 85 85 3 69 4 17 0 0 0 17 2 68 0 80 52 80 65 17 0 0 0 17 16 34 68 3 69 1 17 17 0 0 0 17 17 0 34 68 80 17 17 17 0 0 0 17 17 17 0 37 1 17 17 17 0 0 0 17 17 17 17 0 17 17 17 17 0 0 0])
checkOutImage "UIMaskEditor new openOnClass: self andSelector: #checkOutImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 7) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: ColorValue white; at: 4 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 5 put: ColorValue lightGray; at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 4112); at: 7 put: ColorValue blue; yourself)) usingBits: #[17 17 17 17 17 17 102 102 97 0 0 0 17 17 17 17 17 17 22 102 97 0 0 0 17 17 17 17 1 17 22 102 97 0 0 0 17 17 17 21 48 1 102 102 97 0 0 0 17 17 17 83 85 86 102 17 97 0 0 0 17 17 21 53 85 85 96 1 17 0 0 0 17 17 83 85 85 85 85 1 17 0 0 0 17 21 53 85 85 85 80 1 17 0 0 0 17 83 85 85 85 85 3 0 17 0 0 0 17 80 85 85 85 80 52 80 17 0 0 0 17 84 0 85 85 3 69 4 17 0 0 0 17 2 68 0 80 52 80 65 17 0 0 0 17 16 34 68 3 69 1 17 17 0 0 0 17 17 0 34 68 80 17 17 17 0 0 0 17 17 17 0 37 1 17 17 17 0 0 0 17 17 17 17 0 17 17 17 17 0 0 0])
removeItemImage "UIMaskEditor new openOnClass: self andSelector: #removeItemImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 8) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 3 put: ColorValue white; at: 4 put: (ColorValue scaledRed: 6553 scaledGreen: 0 scaledBlue: 6135); at: 5 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 0 scaledBlue: 4112); at: 7 put: (ColorValue scaledRed: 6553 scaledGreen: 0 scaledBlue: 0); at: 8 put: ColorValue lightGray; yourself)) usingBits: #[17 17 17 17 17 17 17 17 17 0 0 0 17 17 17 17 17 17 17 17 17 0 0 0 17 17 17 17 17 1 17 17 17 0 0 0 22 49 17 22 21 64 1 17 17 0 0 0 19 102 97 97 84 85 80 1 17 0 0 0 17 19 102 21 69 85 85 80 1 0 0 0 17 22 54 84 85 85 85 85 1 0 0 0 17 102 22 101 85 85 85 80 1 0 0 0 22 97 84 99 85 85 85 4 0 0 0 0 17 97 80 85 85 85 80 71 80 0 0 0 17 17 87 0 85 85 4 117 7 0 0 0 17 17 2 119 0 80 71 80 113 0 0 0 17 17 16 34 119 4 117 1 17 0 0 0 17 17 17 0 34 119 80 17 17 0 0 0 17 17 17 17 0 37 1 17 17 0 0 0 17 17 17 17 17 0 17 17 17 0 0 0])
removeUserImage "UIMaskEditor new openOnClass: self andSelector: #removeUserImage" <resource: #image> ^CachedImage on: (Image extent: 18@16 depth: 2 bitsPerPixel: 2 palette: (MappedPalette withColors: ((Array new: 4) at: 1 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 2 put: ColorValue black; at: 3 put: (ColorValue scaledRed: 6553 scaledGreen: 0 scaledBlue: 0); at: 4 put: (ColorValue scaledRed: 6553 scaledGreen: 0 scaledBlue: 6135); yourself)) usingBits: #[0 1 84 0 0 0 0 0 0 5 85 0 0 0 0 0 0 5 85 0 0 0 0 0 0 5 85 0 0 0 0 0 0 5 85 0 0 0 0 0 44 2 84 0 0 0 0 0 58 136 80 0 0 0 0 0 3 165 85 64 0 0 0 0 2 229 85 80 0 0 0 0 10 105 85 80 0 0 0 0 40 91 85 80 0 0 0 0 8 85 85 80 0 0 0 0 0 85 85 80 0 0 0 0 0 85 85 80 0 0 0 0 0 85 85 80 0 0 0 0 0 85 85 80 0 0 0 0])
theMenuBar "UIMenuEditor new openOnClass: self andSelector: #theMenuBar" <resource: #menu> ^#(#Menu #( #(#MenuItem #label: 'File' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Update' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Exit' #accessCharacterPosition: 2 ) ) #(1 1 ) #(#updateLendables #closeRequest ) ) ) #(#MenuItem #label: 'Items' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Find...' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Check in...' #accessCharacterPosition: 7 ) #(#MenuItem #label: 'Check out...' #accessCharacterPosition: 7 ) #(#MenuItem #label: 'Add...' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Remove...' #accessCharacterPosition: 1 ) ) #(1 2 2 ) #(#findLendable #checkIn #checkOut #addItem #removeItem ) ) ) #(#MenuItem #label: 'User' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Add...' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Remove...' #accessCharacterPosition: 1 ) ) #(2 ) #(#addUser #removeUser ) ) ) ) #(3 ) #(nil nil nil ) ) decodeAsLiteralArray
</methods> <methods> ICC.Examples.T1LibrarianConsole class <category>interface specs</category>
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'Librarian Console' #min: #(#Point 240 135 ) #bounds: #(#Rectangle 453 455 920 753 ) #flags: 4 #menu: #menuBar #colors: #(#LookPreferences #setBackgroundColor: #(#ColorValue 6167 6167 6167 ) ) ) #component: #(#SpecCollection #collection: #( #(#SequenceViewSpec #layout: #(#LayoutFrame 0 0 26 0 0 1 0 1 ) #name: #lendables #colors: #(#LookPreferences #setBackgroundColor: #(#ColorValue #white ) ) #model: #lendables #menu: #lendablesMenu ) #(#ActionButtonSpec #layout: #(#Rectangle 6 2 30 24 ) #model: #findLendable #label: #findImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 30 2 54 24 ) #model: #checkIn #label: #checkInImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 54 2 78 24 ) #name: #checkOutButton #model: #checkOut #label: #checkOutImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 78 2 102 24 ) #model: #addItem #label: #addItemImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 102 2 126 24 ) #name: #removeItemButton #model: #removeItem #label: #removeItemImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 132 2 156 24 ) #model: #addUser #label: #addUserImage #hasCharacterOrientedLabel: false ) #(#ActionButtonSpec #layout: #(#Rectangle 156 2 180 24 ) #model: #removeUser #label: #removeUserImage #hasCharacterOrientedLabel: false ) ) ) )
</methods> <methods> ICC.Examples.T2Book class <category>interface specs</category>
subcanvasSpec "UIPainter new openOnClass: self andSelector: #subcanvasSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 455 438 655 638 ) ) #component: #(#SpecCollection #collection: #( #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 34 0 0 1 ) #label: 'Title:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 68 0 0 1 ) #label: 'Author:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 10 0 -10 1 34 0 ) #model: #'lendable title' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 44 0 -10 1 68 0 ) #model: #'lendable author' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 78 0 -10 1 102 0 ) #model: #'lendable year' #type: #number ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 102 0 0 1 ) #label: 'Year:' ) #(#LabelSpec #layout: #(#AlignmentOrigin 8 0 136 0 0 1 ) #label: 'Publisher:' ) #(#InputFieldSpec #layout: #(#LayoutFrame 110 0 112 0 -10 1 136 0 ) #model: #'lendable publisher' ) ) ) )
</methods> <methods> ICC.Examples.T2EditLendableDialog class <category>interface specs</category>
windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #min: #(#Point 320 198 ) #max: #(#Point 320 198 ) #bounds: #(#Rectangle 474 342 794 540 ) ) #component: #(#SpecCollection #collection: #( #(#DividerSpec #layout: #(#LayoutFrame 10 0 -44 1 -10 1 -42 1 ) ) #(#ActionButtonSpec #layout: #(#LayoutFrame -165 1 -33 1 -90 1 -10 1 ) #name: #okButton #model: #doAccept #label: 'OK' #isDefault: true ) #(#ActionButtonSpec #layout: #(#LayoutFrame -85 1 -33 1 -10 1 -10 1 ) #model: #doCancel #label: 'Cancel' ) #(#SubCanvasSpec #layout: #(#LayoutFrame 0 0 0 0 0 1 -44 1 ) #name: #lendableCanvas #flags: 0 ) ) ) )
</methods> "Imported Classes:" self error: 'Attempting to file-in parcel imports. Choose terminate or close' <class> <name>Object</name> <environment>Core</environment> <super></super> <private>false</private> none <imports></imports> <category>Kernel-Objects</category> <attributes> <package>Kernel-Objects</package> </attributes> </class> <class> <name>ApplicationModel</name> <environment>UI</environment> <super>UI.Model</super> <private>false</private> none builder uiSession eventHandlers savedWindowInformation <imports></imports> <category>UIBuilder-Framework</category> <attributes> <package>UIBuilder-Framework</package> </attributes> </class> <class> <name>SimpleDialog</name> <environment>UI</environment> <super>UI.ApplicationModel</super> <private>false</private> none close accept cancel preBuildBlock postBuildBlock postOpenBlock escapeIsCancel parentView <imports></imports> <category>Interface-Dialogs</category> <attributes> <package>Interface-Dialogs</package> </attributes> </class>