'From VisualWorks®, 7.6 of March 3, 2008 on September 24, 2008 at 7:46:57 am'! Smalltalk defineClass: #ScheduledJobEntryProxy superclass: #{Opentalk.Proxy} indexedType: #none private: false instanceVariableNames: 'category ' classInstanceVariableNames: '' imports: '' category: 'JobHistory'! !ScheduledJobEntryProxy methodsFor: 'accessing'! _category ^category! _category: aCategory category := aCategory! ! !ScheduledJobEntryProxy methodsFor: 'forwarding'! doesNotUnderstand: aMessage "check to see if the ObjRef is nil if so instantiate" objRef isNil ifTrue:[objRef := ScheduledJobEntry jobsInCategory: self _category]. "Forward aMessage to the objRef. Return the result." ^objRef perform: aMessage selector withArguments: aMessage arguments! ! Smalltalk.Core defineClass: #Object superclass: nil indexedType: #none private: false instanceVariableNames: '' classInstanceVariableNames: '' imports: '' category: 'Kernel-Objects'! !Core.Object methodsFor: 'changing'! changed: aSymbol from: anOldValue to: aNewValue "I changed. The nature of the change is denoted by aSymbol. Inform all of my dependents." self myDependents update: aSymbol from: anOldValue to: aNewValue in: self! ! !Core.Object methodsFor: 'copying'! fisCopyFor: parents ^self copy! ! !Core.Object methodsFor: 'testing'! handlesProgressUpdates ^false! isVoid "Return false." ^false! notVoid "Return true." ^true! ! !Core.Object methodsFor: 'updating'! update: aSymbol from: anOldValue to: aNewValue in: aModel "aModel has changed, and I am his dependent. The nature of the change is denoted by aSymbol. Receivers that need to update themselves can override this method. In this implementation, I return the result of a simpler update message." ^self update: aSymbol with: nil from: aModel! ! !Core.Object methodsFor: 'error handling'! althalt InputState default altDown ifTrue:[self halt: 'althalt encountered']! ardenHalt self halt: 'ardenHalt encountered'.! chipHalt self halt: 'chipHalt encountered'.! isCtrlDown ^InputState default ctrlDown and: [InputState default shiftDown]! toBeRemoved "Tag for methods that should be removed" InputState default altDown ifTrue:[self halt: 'althalt encountered']! untestedCode TargSysCodes isDeployment ifTrue:[ TargSysCodes isSlaveProcess ifTrue:[ Error raiseErrorString: 'Untested code at: ' , thisContext sender printString. ] ifFalse:[ Dialog warn: 'Untested code at: ' , thisContext sender printString. ]. ] ifFalse:[self halt: 'Untested Code' ].! ! !Core.Object methodsFor: 'event triggering'! triggerEvent: anEventNameSymbol with: firstArgumentObject with: secondArgumentObject with: thirdArgumentObject "Trigger the event using the and as the arguments. Answer the value returned by the most recently defined event handler action." ^self triggerEvent: anEventNameSymbol withArguments: (Array with: firstArgumentObject with: secondArgumentObject with: thirdArgumentObject)! triggerEvent: anEventNameSymbol with: firstArgumentObject with: secondArgumentObject with: thirdArgumentObject with: fourthArgumentObject "Trigger the event using the and as the arguments. Answer the value returned by the most recently defined event handler action." ^self triggerEvent: anEventNameSymbol withArguments: (Array with: firstArgumentObject with: secondArgumentObject with: thirdArgumentObject with: fourthArgumentObject)! triggerEvent: anEventNameSymbol with: firstArgumentObject with: secondArgumentObject with: thirdArgumentObject with: fourthArgumentObject with: fifthArgumentObject "Trigger the event using the and as the arguments. Answer the value returned by the most recently defined event handler action." | array | array := Array new: 5. array at: 1 put: firstArgumentObject. array at: 2 put: secondArgumentObject. array at: 3 put: thirdArgumentObject. array at: 4 put: fourthArgumentObject. array at: 5 put: fifthArgumentObject. ^self triggerEvent: anEventNameSymbol withArguments: array! triggerEvent: anEventNameSymbol with: firstArgumentObject with: secondArgumentObject with: thirdArgumentObject with: fourthArgumentObject with: fifthArgumentObject with: sixthArgumentObject "Trigger the event using the and as the arguments. Answer the value returned by the most recently defined event handler action." | array | array := Array new: 6. array at: 1 put: firstArgumentObject. array at: 2 put: secondArgumentObject. array at: 3 put: thirdArgumentObject. array at: 4 put: fourthArgumentObject. array at: 5 put: fifthArgumentObject. array at: 6 put: sixthArgumentObject. ^self triggerEvent: anEventNameSymbol withArguments: array! triggerEvent: anEventNameSymbol with: firstArgumentObject with: secondArgumentObject with: thirdArgumentObject with: fourthArgumentObject with: fifthArgumentObject with: sixthArgumentObject with: seventhArgumentObject "Trigger the event using the and as the arguments. Answer the value returned by the most recently defined event handler action." | array | array := Array new: 7. array at: 1 put: firstArgumentObject. array at: 2 put: secondArgumentObject. array at: 3 put: thirdArgumentObject. array at: 4 put: fourthArgumentObject. array at: 5 put: fifthArgumentObject. array at: 6 put: sixthArgumentObject. array at: 7 put: seventhArgumentObject. ^self triggerEvent: anEventNameSymbol withArguments: array! triggerEvent: anEventNameSymbol with: firstArgumentObject with: secondArgumentObject with: thirdArgumentObject with: fourthArgumentObject with: fifthArgumentObject with: sixthArgumentObject with: seventhArgumentObject with: eigthArgumentObject "Trigger the event using the and as the arguments. Answer the value returned by the most recently defined event handler action." | array | array := Array new: 8. array at: 1 put: firstArgumentObject. array at: 2 put: secondArgumentObject. array at: 3 put: thirdArgumentObject. array at: 4 put: fourthArgumentObject. array at: 5 put: fifthArgumentObject. array at: 6 put: sixthArgumentObject. array at: 7 put: seventhArgumentObject. array at: 8 put: eigthArgumentObject. ^self triggerEvent: anEventNameSymbol withArguments: array! ! !Core.Object methodsFor: 'OS-testing'! isTextOrString ^false! isVisualComponentOS ^false! isWrapperOS ^false! ! !Core.Object methodsFor: 'OS-private'! convertLabel: txt "This will take text with an embedded '&' character and convert to underline emphasis while preserving old emphasis" | i aLabel newEmphasis | i := txt findString: '&' startingAt: 1. i = 0 ifTrue: [^txt asText]. ((i + 1 <= txt string size) and:[(txt at: i+1) = Character space]) ifTrue:[^txt asText]. i = 1 ifTrue: [aLabel := txt copyFrom: 2 to: txt size] ifFalse: [aLabel := (txt copyFrom: 1 to: i - 1) , (txt copyFrom: i + 1 to: txt size)]. newEmphasis := self newEmphasisFrom: (aLabel emphasisAt: i). ^aLabel asText emphasizeFrom: i to: i with: newEmphasis! isController ^false! newEmphasisFrom: oldEmphasis "Old emphasis may be a symbol or array of symbols" oldEmphasis == nil ifTrue:[^#underline]. oldEmphasis isSequenceable ifFalse:[^Array with: oldEmphasis with: #underline]. ^(Set new addAll: oldEmphasis; yourself; add: #underline; yourself) asArray! understandsDrop ^false! ! !Core.Object methodsFor: 'FFIS framework testing'! container ^nil! isCompound "true if not a simple single area widget" ^false! isMultiAccount ^false! isMultiBroker ^false! isMultiStrategy ^false! isMultiUser ^false! isValueApp ^false! isVW7 "Return true if we are running VW7" ^(ObjectMemory versionId at: 5) >= 70! isVW73 "Return true if we are running VW73" ^(ObjectMemory versionId at: 5) >= 73! isVW74 "Return true if we are running VW74" ^(ObjectMemory versionId at: 5) >= 74! isVW75 "Return true if we are running VW75" ^(ObjectMemory versionId at: 5) >= 75! isVW76 ^self class isVW76! my "returns self"! revisitArden! revisitChip! ! !Core.Object methodsFor: 'utility'! compareWith: anotherInst ^self = anotherInst! ! Smalltalk.Graphics defineClass: #LayoutFrame superclass: #{Graphics.LayoutOrigin} indexedType: #none private: false instanceVariableNames: 'right rightFraction bottom bottomFraction ' classInstanceVariableNames: '' imports: '' category: 'Interface-Support'! !Graphics.LayoutFrame methodsFor: 'comparing'! = aLayout aLayout class name == #Rectangle ifTrue:[ self leftFraction isZero ifFalse:[^false]. self topFraction isZero ifFalse:[^false]. self rightFraction isZero ifFalse:[^false]. self bottomFraction isZero ifFalse:[^false]. self leftOffset = aLayout left ifFalse:[^false]. self topOffset = aLayout top ifFalse:[^false]. self rightOffset = aLayout right ifFalse:[^false]. self bottomOffset = aLayout bottom ifFalse:[^false]. ^true]. self leftOffset = aLayout leftOffset ifFalse:[^false]. self topOffset = aLayout topOffset ifFalse:[^false]. self rightOffset = aLayout rightOffset ifFalse:[^false]. self bottomOffset = aLayout bottomOffset ifFalse:[^false]. self leftFraction = aLayout leftFraction ifFalse:[^false]. self topFraction = aLayout topFraction ifFalse:[^false]. self rightFraction = aLayout rightFraction ifFalse:[^false]. self bottomFraction = aLayout bottomFraction ifFalse:[^false]. ^true! ! Smalltalk defineClass: #OS_Cursors superclass: #{UI.Cursor} indexedType: #none private: false instanceVariableNames: '' classInstanceVariableNames: '' imports: '' category: 'OSVisualKit-VKInfrastructure'! OS_Cursors comment: 'Copyright (C) 1995/1996 Objectsoft, Inc. This class and all its contents is subject to the license Objectsoft License Agreement. Use of this class indicates agreement to the Objectsoft License Agreement that is defined in the comments of OS_ObjectSoftInstaller. If you have any questions about the license agreement, please contact Objectsoft at 312-587-9945 or via email at info@objsoft.com New cursors NOTE: some methods exists here that are need in VW 2.0 only'! Core.Object class instanceVariableNames: ''! !Core.Object class methodsFor: 'FFIS framework'! isVW7 "Return true if we are running VW7" ^(ObjectMemory versionId at: 5) >= 70! isVW73 "Return true if we are running VW73" ^(ObjectMemory versionId at: 5) >= 73! isVW74 "Return true if we are running VW74" ^(ObjectMemory versionId at: 5) >= 74! isVW75 "Return true if we are running VW75" ^(ObjectMemory versionId at: 5) >= 75! isVW76 "Return true if we are running VW76" ^(ObjectMemory versionId at: 5) >= 76! ! !Core.Object class methodsFor: 'error handling'! writeStackOn: dumpStream | nbr ctx stackTop stackBottom droppedEntries frame stackSize | dumpStream cr; nextPutAll: 'Context Stack:'. nbr := 50 // 2. ctx := thisContext. stackTop := OrderedCollection new: nbr. stackSize := 0. [ ctx notNil and: [ stackTop size < nbr ] ] whileTrue: [ stackTop add: ctx. stackSize := stackSize + 1. ctx := ctx sender ]. stackBottom := OrderedCollection new: nbr + nbr. droppedEntries := false. [ ctx isNil ] whileFalse: [ stackBottom add: ctx. stackBottom size > nbr ifTrue: [ stackBottom removeFirst. droppedEntries := true. ]. stackSize := stackSize + 1. ctx := ctx sender ]. 1 to: stackTop size do: [ :n | frame := stackTop at: n. [ dumpStream cr; nextPut: $[; print: n; nextPut: $]; space; tab; print: frame. ] on: Error do: [ :ex | dumpStream cr; nextPutAll: '--Error printing frame: '; nextPutAll: ex description ] ]. droppedEntries ifTrue: [ dumpStream cr; crtab; nextPutAll: '...stack frames omitted...'; cr. ]. stackBottom isEmpty not ifTrue: [ 1 to: stackBottom size do: [ :n | frame := stackBottom at: n. [ dumpStream cr; nextPut: $[; print: n + stackSize - stackBottom size; nextPut: $]; space; tab; print: frame ] on: Error do: [ :ex | dumpStream cr; nextPutAll: '--Error printing frame: '; nextPutAll: ex description ] ] ]. dumpStream cr.! ! Smalltalk.OS_Cursors class instanceVariableNames: ''! !OS_Cursors class methodsFor: 'resources-VW2.0'! invalidImage "UIMaskEditor new openOnClass: self andSelector: #invalidImage" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: MappedPalette whiteBlack usingBits: #[0 0 0 0 0 0 0 0 7 128 0 0 15 224 0 0 28 112 0 0 24 240 0 0 49 216 0 0 51 152 0 0 55 24 0 0 30 48 0 0 28 112 0 0 15 224 0 0 3 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0])! invalidImageColor "UIMaskEditor new openOnClass: self andSelector: #invalidImageColor" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: (MappedPalette withColors: ((Array new: 2) at: 1 put: ColorValue white; at: 2 put: ColorValue red; yourself)) usingBits: #[0 0 0 0 0 0 0 0 7 128 0 0 15 224 0 0 28 112 0 0 24 240 0 0 49 216 0 0 51 152 0 0 55 24 0 0 30 48 0 0 28 112 0 0 15 224 0 0 3 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0])! invalidImageMsk "UIMaskEditor new openOnClass: self andSelector: #invalidImageMsk" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 3 128 0 0 15 224 0 0 31 240 0 0 60 120 0 0 56 248 0 0 113 220 0 0 115 156 0 0 119 28 0 0 62 56 0 0 60 120 0 0 31 240 0 0 15 224 0 0 3 128 0 0 0 0 0 0 0 0 0 0])! ! !OS_Cursors class methodsFor: 'constants'! dropNotOk "Answer the instance of the receiver that is the shape of the top left corner of a rectangle." OSDropNotOK isNil ifTrue:[ self initDropNotOk ]. ^OSDropNotOK! invalidDrop InvalidDrop isNil ifTrue:[ self initInvalidDrop ]. ^InvalidDrop! MDIBottomLeft MDIBottomLeft isNil ifTrue:[ self initMDIBottomLeft ]. ^MDIBottomLeft! MDICorner MDICorner isNil ifTrue:[ self initMDICorner ]. ^MDICorner! MDIDown MDIDown isNil ifTrue:[ self initMDIDown ]. ^MDIDown! MDILeft MDILeft isNil ifTrue:[ self initMDILeft ]. ^MDILeft! MDIOrigin MDIOrigin isNil ifTrue:[ self initMDIOrigin ]. ^MDIOrigin! MDIRight MDIRight isNil ifTrue:[ self initMDIRight ]. ^MDIRight! MDITopRight MDITopRight isNil ifTrue:[ self initMDITopRight ]. ^MDITopRight! MDIUp MDIUp isNil ifTrue:[ self initMDIUp ]. ^MDIUp! sizeLR SizeLR isNil ifTrue:[ self initSizeLR ]. ^SizeLR! standardDrag "Answer the instance of the receiver that is the shape of the bottom right corner of a rectangle." OSStandardDrag isNil ifTrue:[self initStandardDrag ]. ^OSStandardDrag! standardDragCopy "Answer the instance of the receiver that is the shape of the bottom right corner of a rectangle." OSStandardDragCopy isNil ifTrue:[ self initStandardDragCopy ]. ^OSStandardDragCopy! ! !OS_Cursors class methodsFor: 'initialize'! initDropNotOk OSDropNotOK := (self imageArray: #( 2r0000000000000000 2r0000001111000000 2r0000111111110000 2r0001110000111000 2r0011110000001100 2r0011111000001100 2r0110011100000110 2r0110001110000110 2r0110000111000110 2r0110000011100110 2r0011000001111100 2r0011000000111100 2r0001110000111000 2r0000111111110000 2r0000001111000000 2r0000000000000000) maskArray: #( 2r0000001111000000 2r0000011111100000 2r0001111111111000 2r0011111111111100 2r0111111000011110 2r0111111100011110 2r1111111110001111 2r1111011111001111 2r1111001111101111 2r1111000111111111 2r0111100011111110 2r0111100001111110 2r0011111111111100 2r0001111111111000 2r0000011111100000 2r0000001111000000) hotSpot: 7@8 name: 'no drop').! initialize "OS_Cursors initialize" (ObjectMemory versionId at: 5) = 20 ifTrue:[Smalltalk at: #DragAndDrop put: nil]. Smalltalk at: #OSDragDelay put: nil. InvalidDrop := nil. SizeLR := nil. MDIUp := nil. MDIDown := nil. MDILeft := nil. MDIRight := nil. MDIOrigin := nil. MDICorner := nil. MDITopRight := nil. MDIBottomLeft := nil. "DropNotOK := nil. StandardDrag := nil. StandardDragCopy := nil." "These were wiping out Cursor's cursors"! initInvalidDrop InvalidDrop := self image: self invalidImageColor image mask: self invalidImageMsk image hotSpot: 8@8 name: 'invalid'.! initMDIBottomLeft MDIBottomLeft := self image: self resizeDiagRightImage16 asImage mask: self resizeDiagRightMask16 asImage hotSpot: 8@8 name: 'bottomLeft'.! initMDICorner MDICorner := self image: self resizeDiagLeftImage16 asImage mask: self resizeDiagLeftMask16 asImage hotSpot: 8@8 name: 'corner'.! initMDIDown MDIDown := self image: self resizeVerticallyImage16 asImage mask: self resizeVerticallyMask16 asImage hotSpot: 8@8 name: 'MDIDownCursor'.! initMDILeft MDILeft := self image: self resizeHorizontallyImage16 asImage mask: self resizeHorizontallyMask16 asImage hotSpot: 8@8 name: 'MDILeftCursor'.! initMDIOrigin MDIOrigin := self image: self resizeDiagLeftImage16 asImage mask: self resizeDiagLeftMask16 asImage hotSpot: 8@8 name: 'origin'.! initMDIRight MDIRight := self image: self resizeHorizontallyImage16 asImage mask: self resizeHorizontallyMask16 asImage hotSpot: 8@8 name: 'MDIRightCursor'.! initMDITopRight MDITopRight := self image: self resizeDiagRightImage16 asImage mask: self resizeDiagRightMask16 asImage hotSpot: 8@8 name: 'topRight'.! initMDIUp MDIUp := self image: self resizeVerticallyImage16 asImage mask: self resizeVerticallyMask16 asImage hotSpot: 8@8 name: 'MDIUpCursor'.! initSizeLR SizeLR := self image: self resizeHorizontallyImage16 asImage mask: self resizeHorizontallyMask16 asImage hotSpot: 8@8 name: 'SizeLR'.! initStandardDrag OSStandardDrag := (self imageArray: #( 2r0000000000000000 2r0100000000000000 2r0110000000000000 2r0111000000000000 2r0111100000000000 2r0111110000000000 2r0111111000000000 2r0111111100000000 2r0111110000000000 2r0111110000000000 2r0100110000000000 2r0000111111111111 2r0000111000000001 2r0000101100000001 2r0000101100000001 2r0000111111111111) maskArray: #( 2r1100000000000000 2r1110000000000000 2r1111000000000000 2r1111100000000000 2r1111110000000000 2r1111111000000000 2r1111111100000000 2r1111111110000000 2r1111111000000000 2r1111111000000000 2r1111111000000000 2r1000111111111111 2r0000111111111111 2r0000111111111111 2r0000111111111111 2r0000111111111111) hotSpot: 1@1 name: 'standard drag')! initStandardDragCopy OSStandardDragCopy := (self imageArray: #( 2r0000000000000000 2r0100000000010000 2r0110000000010000 2r0111000001111100 2r0111100000010000 2r0111110000010000 2r0111111000000000 2r0111111100000000 2r0111110000000000 2r0111110000000000 2r0100110000000000 2r0000111111111111 2r0000111000000001 2r0000101100000001 2r0000101100000001 2r0000111111111111) maskArray: #( 2r1100000000000000 2r1110000000010000 2r1111000000010000 2r1111100001111100 2r1111110000010000 2r1111111000010000 2r1111111100000000 2r1111111110000000 2r1111111000000000 2r1111111000000000 2r1111111000000000 2r1000111111111111 2r0000111111111111 2r0000111111111111 2r0000111111111111 2r0000111111111111) hotSpot: 1@1 name: 'standard drag copy')! release "OS_Cursors release" super release. InvalidDrop := nil. MDIUp := nil. MDIDown := nil. MDILeft := nil. MDIRight := nil. MDIOrigin := nil. MDICorner := nil. MDITopRight := nil. MDIBottomLeft := nil. OSDropNotOK := nil. OSStandardDrag := nil. OSStandardDragCopy := nil.! ! !OS_Cursors class methodsFor: 'resources'! resizeDiagLeftImage16 "UIMaskEditor new openOnClass: self andSelector: #resizeDiagLeftImage16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: MonoMappedPalette whiteBlack usingBits: #[0 0 0 0 124 0 0 0 120 0 0 0 112 0 0 0 104 0 0 0 68 0 0 0 2 0 0 0 1 0 0 0 0 128 0 0 0 68 0 0 0 44 0 0 0 28 0 0 0 60 0 0 0 124 0 0 0 0 0 0 0 0 0 0])! resizeDiagLeftMask16 "UIMaskEditor new openOnClass: self andSelector: #resizeDiagLeftMask16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 124 0 0 0 120 0 0 0 112 0 0 0 104 0 0 0 68 0 0 0 2 0 0 0 1 0 0 0 0 128 0 0 0 68 0 0 0 44 0 0 0 28 0 0 0 60 0 0 0 124 0 0 0 0 0 0 0 0 0 0])! resizeDiagRightImage16 "UIMaskEditor new openOnClass: self andSelector: #resizeDiagRightImage16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: MonoMappedPalette whiteBlack usingBits: #[0 0 0 0 0 124 0 0 0 60 0 0 0 28 0 0 0 44 0 0 0 68 0 0 0 128 0 0 1 0 0 0 2 0 0 0 68 0 0 0 104 0 0 0 112 0 0 0 120 0 0 0 124 0 0 0 0 0 0 0 0 0 0 0])! resizeDiagRightMask16 "UIMaskEditor new openOnClass: self andSelector: #resizeDiagRightMask16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 124 0 0 0 60 0 0 0 28 0 0 0 44 0 0 0 68 0 0 0 128 0 0 1 0 0 0 2 0 0 0 68 0 0 0 104 0 0 0 112 0 0 0 120 0 0 0 124 0 0 0 0 0 0 0 0 0 0 0])! resizeHorizontallyImage16 "UIMaskEditor new openOnClass: self andSelector: #resizeHorizontallyImage16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: MonoMappedPalette whiteBlack usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 8 0 0 48 12 0 0 112 14 0 0 255 255 0 0 112 14 0 0 48 12 0 0 16 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])! resizeHorizontallyMask16 "UIMaskEditor new openOnClass: self andSelector: #resizeHorizontallyMask16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 8 0 0 48 12 0 0 112 14 0 0 255 255 0 0 112 14 0 0 48 12 0 0 16 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])! resizeVerticallyImage16 "UIMaskEditor new openOnClass: self andSelector: #resizeVerticallyImage16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: MonoMappedPalette whiteBlack usingBits: #[1 0 0 0 3 128 0 0 7 192 0 0 15 224 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 15 224 0 0 7 192 0 0 3 128 0 0 1 0 0 0])! resizeVerticallyMask16 "UIMaskEditor new openOnClass: self andSelector: #resizeVerticallyMask16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[1 0 0 0 3 128 0 0 7 192 0 0 15 224 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 15 224 0 0 7 192 0 0 3 128 0 0 1 0 0 0])! ! Smalltalk.OS_MDIApplicationWindow class instanceVariableNames: ''! !OS_MDIApplicationWindow class methodsFor: 'Envy'! removing self classPool at: #MDIDamageRepairPolicy put: nil! ! !OS_MDIApplicationWindow class methodsFor: 'class initialization'! initialize "Initialize the class." "self initialize" super initialize. self setWindowDisplayPolicy: WindowDisplayPolicy! setWindowDisplayPolicy: aPolicyClass "Use DoubleBufferingWindowDisplayPolicy alternative" MDIDamageRepairPolicy := aPolicyClass! ! UI.ParagraphEditor class instanceVariableNames: ''! !UI.ParagraphEditor class methodsFor: 'dispatch table access'! dispatchTable "Answer the keyboard dispatch table." ^(UIFeelPolicy defaultFor: self new) dispatchTable! ! Smalltalk.FISInputBoxController class instanceVariableNames: ''! !FISInputBoxController class methodsFor: 'instance creation'! newFrom: pController "Purpose: Create a new instance of self from pController (which must be a super class of self), with all the same instance variables." | treplacingController | treplacingController := self new from: pController. ^treplacingController! ! Smalltalk.FFISDataSetController class instanceVariableNames: ''! !FFISDataSetController class methodsFor: 'instance creation'! newFrom: pController "Purpose: Create a new instance of self from pController (which must be a super class of self), with all the same instance variables." | tInstance | tInstance := self new. 1 to: pController class allInstVarNames size do: [:tIndex | tInstance instVarAt: tIndex put: (pController instVarAt: tIndex)]. ^tInstance! ! Smalltalk.FISDataSetController class instanceVariableNames: ''! !FISDataSetController class methodsFor: 'instance creation'! newFrom: pController "Purpose: Create a new instance of self from pController (which must be a super class of self), with all the same instance variables." | tInstance | tInstance := self new. 1 to: pController class allInstVarNames size do: [:tIndex | tInstance instVarAt: tIndex put: (pController instVarAt: tIndex)]. ^tInstance! ! UI.DataSetControllerProxy class instanceVariableNames: ''! !UI.DataSetControllerProxy class methodsFor: 'instance creation'! masterController: aController ^self new masterController: aController! ! Smalltalk.FISScrollingTabSplitController class instanceVariableNames: ''! !FISScrollingTabSplitController class methodsFor: 'resources'! resizingColumnImage16 "UIMaskEditor new openOnClass: self andSelector: #resizingColumnImage16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: MonoMappedPalette whiteBlack usingBits: #[0 0 0 0 0 0 0 0 2 64 0 0 2 64 0 0 18 72 0 0 50 76 0 0 114 78 0 0 254 127 0 0 114 78 0 0 50 76 0 0 18 72 0 0 2 64 0 0 2 64 0 0 2 64 0 0 0 0 0 0 0 0 0 0])! ! Smalltalk.OS_OpaqueCachedImage class instanceVariableNames: ''! !OS_OpaqueCachedImage class methodsFor: 'instance creation'! figure: figure shape: shape offset: offset "Answer a new instance of the receiver with given figure and shape." | t1 | t1 := self new figure: figure shape: shape. t1 offset: offset. ^t1! ! Smalltalk.OS_LabelAndIcon class instanceVariableNames: ''! !OS_LabelAndIcon class methodsFor: 'instance creation'! label: aTextOrString icon: aIcon | inst | inst := self with: aTextOrString. inst icon: aIcon. ^inst! ! UI.Icon class instanceVariableNames: ''! !UI.Icon class methodsFor: 'resources'! defaultIcon ^self systemIcon figure! defaultIconMask ^self systemIcon shape! setSystemIcon: anIcon | oldBits windowsToRefresh | oldBits := self systemIcon shape asImage bitsInstVar. windowsToRefresh := ScheduledWindow scheduledWindows select: [:ea | ea icon notNil and: [ea icon shape asImage bitsInstVar = oldBits]]. self systemIcon: anIcon; initialize. windowsToRefresh do: [:ea | ea icon: anIcon]! standardIcon ^OpaqueImage figure: self _defaultIcon shape: self _defaultIconMask! systemIcon ^SystemIcon ifNil: [SystemIcon := self new figure: self _defaultIcon shape: self _defaultIconMask]! systemIcon: anIcon SystemIcon := anIcon ifNotNil: [anIcon cleanFigure; yourself]! _defaultIcon "UIMaskEditor new openOnClass: self andSelector: #_defaultIcon" ^CachedImage on: (Image extent: 32@32 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 6) at: 1 put: Graphics.ColorValue black; at: 2 put: Graphics.ColorValue white; at: 3 put: Graphics.ColorValue cyan; at: 4 put: (Graphics.ColorValue scaledRed: 0 scaledGreen: 4227 scaledBlue: 0); at: 5 put: Graphics.ColorValue green; at: 6 put: Graphics.ColorValue blue; yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@AED@@@@@@@@@@@@@@@@@QDQQD@@@@@@@@@@@@@AEDDQDTQD@@@@@@@@@@@QDQQADQEDQD@@@@@@@@@ADQDTDQDQQDQ@@@@@@@@@@QDQQADQD4QDPB@@@@@@@@DQDTPSL3L4PQH"@@@@@@@ADQQDL3USLQDRH"@@@@@@DSL3QEUUUADQD"H"@@@@@CL3L4UUUUPQDQH"H"@@@@@1DQP"IUUTDQDRH"HQ@@@@DQDTH"IUPQDUT"H"DR@@@QDQEBH"ITUUUUT"H!!D"@@DQDQP"H"QEUUD%T"HRH"@ADQEDIDQDPQDQH%T!!D"H"DQL3MDQDP!!DQDRH%TRH"H!!L3L3PQDRHQDQD"H%D"H"H3L3L1DQD"DQDQH"HQT"H"@3L3LQDQH!!DQURH"DUT"H @3L1DQDRIUUUURH!!H%T"@@@3LQDQERIUUUURHRH%T @@@@DQUUURUUUUUQD"H%@@@@@EUUUUT%UUUUDRH"H @@@@AUUUUUT%UUDQD"H"H@@@@@AUUUUUT%DQUUURH"@@@@@@AUUUDQDQUUUUURH@@@@@@@AQDQEUT%UUUUUR@@@@@@@@@UUUUUT%UUUUUP@@@@@@@@AUUUUUH%UUUU@@@@@@@@@@AUUUUUH%UU@@@@@@@@@@@@AUUUUU@@@@@@@@@@@@@@@@AUUP@@@@@@@@@b'))! _defaultIconMask "UIMaskEditor new openOnClass: self andSelector: #_defaultIconMask" ^CachedImage on: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 3 192 0 0 31 224 0 1 255 240 0 15 255 248 0 31 255 248 0 31 255 250 0 31 255 255 0 31 255 255 128 63 255 255 192 63 255 255 224 63 255 255 240 63 255 255 248 127 255 255 252 127 255 255 254 127 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 127 255 255 255 63 255 255 254 31 255 255 254 3 255 255 252 3 255 255 252 3 255 255 252 1 255 255 252 0 255 255 248 0 127 255 248 0 63 255 248 0 31 255 240 0 15 255 192 0 7 248 0 0 3 192 0])! ! UI.RowVisual class instanceVariableNames: ''! !UI.RowVisual class methodsFor: 'initialize'! initialize "RowVisual initialize" "DefaultSelectionMask := CachedImage on: self selectionMask." DefaultSelectionMask := LabelAndIcon checkMark. "This uses a checkmark for row selection"! ! UI.DataSetView class instanceVariableNames: ''! !UI.DataSetView class methodsFor: 'private-events'! constructEventsTriggered ^super constructEventsTriggered remove: #changing; remove: #changed; add: #tabbed; add: #backTabbed; add: #gettingFocus; add: #losingFocus; add: #cellTabbed; add: #cellBackTabbed; add: #cellGettingFocus; add: #cellLosingFocus; add: #cellValueChanged; add: #scrollRight; add: #scrollLeft; add: #scrollUp; add: #scrollDown; add: #columnLabelClicked; add: #rowLabelClicked; add: #popupMenuCreated; add: #popupMenuItemSelected:; add: #selectionListChanged; yourself! ! !UI.DataSetView class methodsFor: 'class initialization'! initialize "DataSetView initialize" Icons := IdentityDictionary new add: #ascending -> (OpaqueImage figure: self sortAscendingIndicatorIcon shape: self sortAscendingIndicatorShape); add: #descending -> (OpaqueImage figure: self sortDescendingIndicatorIcon shape: self sortDescendingIndicatorShape); yourself.! ! !UI.DataSetView class methodsFor: 'resources'! sortAscendingIndicatorIcon "UIMaskEditor new openOnClass: self andSelector: #sortAscendingIndicatorIcon" ^CachedImage on: (Image extent: 8@8 depth: 1 bitsPerPixel: 1 palette: (MappedPalette withColors: ((Array new: 2) at: 1 put: ColorValue white; at: 2 put: (ColorValue scaledRed: 4111 scaledGreen: 4111 scaledBlue: 4111); yourself)) usingBits: #[255 0 0 0 192 0 0 0 64 0 0 0 96 0 0 0 32 0 0 0 48 0 0 0 16 0 0 0 0 0 0 0])! sortAscendingIndicatorShape "UIMaskEditor new openOnClass: self andSelector: #sortAscendingIndicatorShape" ^CachedImage on: (Image extent: 8@8 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[255 0 0 0 195 0 0 0 66 0 0 0 70 0 0 0 36 0 0 0 60 0 0 0 24 0 0 0 0 0 0 0])! sortDescendingIndicatorIcon "UIMaskEditor new openOnClass: self andSelector: #sortDescendingIndicatorIcon" ^CachedImage on: (Image extent: 8@8 depth: 1 bitsPerPixel: 1 palette: (MappedPalette withColors: ((Array new: 2) at: 1 put: ColorValue white; at: 2 put: (ColorValue scaledRed: 4111 scaledGreen: 4111 scaledBlue: 4111); yourself)) usingBits: #[16 0 0 0 48 0 0 0 32 0 0 0 64 0 0 0 64 0 0 0 128 0 0 0 128 0 0 0 0 0 0 0])! sortDescendingIndicatorShape "UIMaskEditor new openOnClass: self andSelector: #sortDescendingIndicatorShape" ^CachedImage on: (Image extent: 8@8 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[24 0 0 0 60 0 0 0 36 0 0 0 66 0 0 0 66 0 0 0 129 0 0 0 255 0 0 0 0 0 0 0])! ! UI.MultiSelectionDataSetView class instanceVariableNames: ''! !UI.MultiSelectionDataSetView class methodsFor: 'private-events'! constructEventsTriggered ^super constructEventsTriggered add: #rowSelectionsChanging; add: #rowSelectionsChanged; yourself.! ! Smalltalk.GraphingCanvas class instanceVariableNames: ''! !GraphingCanvas class methodsFor: 'resources'! leftDomainScroll "UIMaskEditor new openOnClass: self andSelector: #leftDomainScroll" ^CachedImage on: (Image extent: 16 @ 16 depth: 2 bitsPerPixel: 2 palette: (MappedPalette withColors: ((Array new: 4) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 3 put: ColorValue veryLightGray; at: 4 put: ColorValue white; yourself)) usingBits: #[170 170 170 168 191 255 255 244 186 170 170 164 186 170 170 164 186 170 138 164 186 170 10 164 186 168 10 164 186 160 10 164 186 168 10 164 186 170 10 164 186 170 138 164 186 170 170 164 186 170 170 164 186 170 170 164 149 85 85 84 0 0 0 0])! leftPressedDomainScroll "UIMaskEditor new openOnClass: self andSelector: #leftPressedDomainScroll" ^CachedImage on: (Image extent: 16 @ 16 depth: 2 bitsPerPixel: 2 palette: (MappedPalette withColors: ((Array new: 3) at: 1 put: ColorValue black; at: 2 put: ColorValue veryLightGray; at: 3 put: ColorValue white; yourself)) usingBits: #[0 0 0 0 21 85 85 86 21 85 85 86 21 85 85 86 21 85 69 86 21 85 5 86 21 84 5 86 21 80 5 86 21 84 5 86 21 85 5 86 21 85 69 86 21 85 85 86 21 85 85 86 21 85 85 86 21 85 85 86 42 170 170 170])! rightDomainScroll "UIMaskEditor new openOnClass: self andSelector: #rightDomainScroll" ^CachedImage on: (Image extent: 16 @ 16 depth: 2 bitsPerPixel: 2 palette: (MappedPalette withColors: ((Array new: 4) at: 1 put: ColorValue black; at: 2 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 3 put: ColorValue veryLightGray; at: 4 put: ColorValue white; yourself)) usingBits: #[170 170 170 168 191 255 255 244 186 170 170 164 186 170 170 164 186 162 170 164 186 160 170 164 186 160 42 164 186 160 10 164 186 160 42 164 186 160 170 164 186 162 170 164 186 170 170 164 186 170 170 164 186 170 170 164 149 85 85 84 0 0 0 0])! rightPressedDomainScroll "UIMaskEditor new openOnClass: self andSelector: #rightPressedDomainScroll" ^CachedImage on: (Image extent: 16 @ 16 depth: 2 bitsPerPixel: 2 palette: (MappedPalette withColors: ((Array new: 3) at: 1 put: ColorValue black; at: 2 put: ColorValue white; at: 3 put: ColorValue veryLightGray; yourself)) usingBits: #[0 0 0 1 42 170 170 169 42 170 170 169 42 170 170 169 42 162 170 169 42 160 170 169 42 160 42 169 42 160 10 169 42 160 42 169 42 160 170 169 42 162 170 169 42 170 170 169 42 170 170 169 42 170 170 169 42 170 170 169 85 85 85 85])! ! Smalltalk.HistoricalGraphCanvas class instanceVariableNames: ''! !HistoricalGraphCanvas class methodsFor: 'resources'! graphAttributeMenu "OS_ExtendedUIMenuEditor new openOnClass: self andSelector: #graphAttributeMenu" ^#(#Menu #( #(#MenuItem #rawLabel: '&Graph Color Options' #value: #mnuGraphColorOpts ) #(#MenuItem #rawLabel: '&Default Color Options' #value: #mnuDefaultColorOpts ) ) #(1 1 ) nil ) decodeAsLiteralArray! ! !HistoricalGraphCanvas class methodsFor: 'instance creation'! childOf: aParent | aView | aView := self new. aView myParent value: aParent. aView model value: aParent priceList. ^aView! open | | ^ScheduledWindow new open.! ! Smalltalk.HistoricalAppGraphCanvas class instanceVariableNames: ''! !HistoricalAppGraphCanvas class methodsFor: 'instance creation'! childOf: aParent | aView | aView := self new. aView myParent value: aParent. aView model value: aParent priceList. ^aView! open | | ^ScheduledWindow new open.! ! !HistoricalAppGraphCanvas class methodsFor: 'resources'! graphAttributeMenu "OS_ExtendedUIMenuEditor new openOnClass: self andSelector: #graphAttributeMenu" ^#(#Menu #( #(#MenuItem #rawLabel: '&Graph Color Options' #value: #mnuGraphColorOpts ) #(#MenuItem #rawLabel: '&Default Color Options' #value: #mnuDefaultColorOpts ) ) #(1 1 ) nil ) decodeAsLiteralArray! ! Smalltalk.TargetGraphAppView class instanceVariableNames: ''! !TargetGraphAppView class methodsFor: 'instance creation'! childOf: aParent | aView | aView := self new. aView parentApplication value: aParent. ^aView! open ^ScheduledWindow new open.! ! !TargetGraphAppView class methodsFor: 'resources'! graphAttributeMenu "OS_ExtendedUIMenuEditor new openOnClass: self andSelector: #graphAttributeMenu" ^#(#Menu #( #(#MenuItem #rawLabel: '&Graph Color Options' #value: #mnuGraphColorOpts ) #(#MenuItem #rawLabel: '&Default Color Options' #value: #mnuDefaultColorOpts ) ) #(1 1 ) nil ) decodeAsLiteralArray! ! Smalltalk.FIS_SubCanvas class instanceVariableNames: ''! !FIS_SubCanvas class methodsFor: 'instance creation'! new ^self basicNew initialize! ! UI.ComboBoxView class instanceVariableNames: ''! !UI.ComboBoxView class methodsFor: 'private-events'! constructEventsTriggered ^super constructEventsTriggered add: #clicked; add: #rightClicked; add: #doubleClicked; add: #gettingFocus; add: #losingFocus; add: #tabbed; add: #backTabbed; add: #listExposed; add: #listClosed; add: #popupMenuCreated; add: #popupMenuItemSelected:; yourself! ! Graphics.ColorValue class instanceVariableNames: ''! !Graphics.ColorValue class methodsFor: 'instance creation'! hex: anInteger "AnInteger doesn't really have to be in hex, but it commonly is. Example use: Color(Value|Blend) hex: 16rFFFF00 --> ColorValue orange." ^self red: ((anInteger bitShift: -16) bitAnd: 16rFF) asFloat / 255.0 green: ((anInteger bitShift: -8) bitAnd: 16rFF) asFloat / 255.0 blue: (anInteger bitAnd: 16rFF) asFloat / 255.0! ! Smalltalk.CollectionAdaptor class instanceVariableNames: ''! !CollectionAdaptor class methodsFor: 'instance creation'! subjectChannel: aValueModel listSelector: aSymbol ^self subjectChannel: aValueModel listSelector: aSymbol addSelector: nil removeSelector: nil! subjectChannel: aValueModel listSelector: aListSelector addSelector: anAddSelector removeSelector: aRemoveSelector ^self new subjectChannel: aValueModel listSelector: aListSelector addSelector: anAddSelector removeSelector: aRemoveSelector! subjectChannel: aValueModel listSelector: aListSelector addSelector: anAddSelector removeSelector: aRemoveSelector sortBlock: aBlock | adaptor | adaptor := self new. adaptor sortBlock: aBlock. adaptor subjectChannel: aValueModel listSelector: aListSelector addSelector: anAddSelector removeSelector: aRemoveSelector. ^adaptor! ! UI.SimpleDialog class instanceVariableNames: ''! !UI.SimpleDialog class methodsFor: 'interface specs'! widerEmptySpec "UIPainter new openOnClass: self andSelector: #emptySpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: ' ' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 1280 1024 ) #bounds: #(#{Graphics.Rectangle} 556 493 832 532 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #() ) )! ! UI.ColorSelectionDialog class instanceVariableNames: ''! !UI.ColorSelectionDialog class methodsFor: 'api'! request "self request" | dialog | dialog := self new. dialog open. dialog accept value ifTrue: [^dialog selection]. ^nil! ! Smalltalk.FISSimpleDialog class instanceVariableNames: ''! !FISSimpleDialog class methodsFor: 'interface specs'! popUpItemViewHolderSpec "UIPainter new openOnClass: self andSelector: #popUpItemViewHolderSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'PopUpView' #bounds: #(#Rectangle 48 36 688 516 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #( #(#SubCanvasSpec #layout: #(#Rectangle -2 -1 643 481 ) #name: #modelWrapperSubcanvas ) ) ) )! ! Smalltalk.FIS2MultiListDragDropDialog class instanceVariableNames: ''! !FIS2MultiListDragDropDialog class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #min: #(#Point 600 471 ) #max: #(#Point 600 471 ) #bounds: #(#Rectangle 141 75 741 546 ) ) #component: #(#SpecCollection #collection: #( #(#SequenceViewSpec #properties: #(#PropertyListDictionary #dragEnterSelector #dragEnterList1: #dragStartSelector #dragStart: #dragOkSelector #dragOk: #dropSelector #dropInDragTarget: #dragOverSelector #overDragTarget: ) #layout: #(#Rectangle 18 35 290 429 ) #name: #list1View #isOpaque: true #model: #list1 #multipleSelections: true #selectionType: #highlight ) #(#SequenceViewSpec #properties: #(#PropertyListDictionary #dragEnterSelector #dragEnterList2: #dragStartSelector #dragStart: #dragOkSelector #dragOk: #dropSelector #dropInDragTarget: #dragOverSelector #overDragTarget: ) #layout: #(#Rectangle 317 35 589 429 ) #name: #list2View #isOpaque: true #model: #list2 #multipleSelections: true #selectionType: #highlight ) #(#ActionButtonSpec #layout: #(#Rectangle 347 439 457 464 ) #name: #acceptButton #model: #yesClicked #label: 'Accept' #defaultable: true ) #(#ActionButtonSpec #layout: #(#Rectangle 476 439 586 464 ) #name: #cancelButton #model: #cancelClicked #label: 'Cancel' #defaultable: true ) #(#LabelSpec #layout: #(#Point 17 13 ) #label: 'List Number 1:' ) #(#LabelSpec #layout: #(#Point 315 13 ) #label: 'List Number 2;' ) ) ) )! ! Smalltalk.FISIncludeTabsDialog class instanceVariableNames: ''! !FISIncludeTabsDialog class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Tab Setup' #min: #(#Point 600 471 ) #max: #(#Point 600 471 ) #bounds: #(#Rectangle 353 255 953 726 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #( #(#SequenceViewSpec #properties: #(#PropertyListDictionary #dragEnterSelector #dragEnterList1: #dragStartSelector #dragStart: #dragOkSelector #dragOk: #dropSelector #dropInDragTarget: #dragOverSelector #overDragTarget: ) #layout: #(#Rectangle 18 35 290 429 ) #name: #list1View #isOpaque: true #model: #list1 #multipleSelections: true #useModifierKeys: true #selectionType: #highlight ) #(#SequenceViewSpec #properties: #(#PropertyListDictionary #dragEnterSelector #dragEnterList2: #dragStartSelector #dragStart: #dragOkSelector #dragOk: #dropSelector #dropInDragTarget: #dragOverSelector #overDragTarget: ) #layout: #(#Rectangle 317 35 589 429 ) #name: #list2View #isOpaque: true #model: #list2 #multipleSelections: true #useModifierKeys: true #selectionType: #highlight ) #(#ActionButtonSpec #layout: #(#Rectangle 347 439 457 464 ) #name: #acceptButton #model: #yesClicked #label: 'Accept' #defaultable: true ) #(#ActionButtonSpec #layout: #(#Rectangle 476 439 586 464 ) #name: #cancelButton #model: #cancelClicked #label: 'Cancel' #defaultable: true ) #(#LabelSpec #layout: #(#Point 17 13 ) #label: 'Available Tabs:' ) #(#LabelSpec #layout: #(#Point 315 13 ) #label: 'Active Tabs:' ) ) ) )! ! Smalltalk.FISFontsDialog class instanceVariableNames: ''! !FISFontsDialog class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Default fonts list' #min: #(#Point 297 440 ) #max: #(#Point 297 440 ) #bounds: #(#Rectangle 381 110 678 550 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #( #(#SequenceViewSpec #layout: #(#LayoutFrame 0 -0.020202 0 -0.0113636 0 1.0101 0 0.822727 ) #name: #defaultFontsListId #colors: #(#LookPreferences #setForegroundColor: #(#ColorValue #black ) #setBackgroundColor: #(#ColorValue 6553 6553 6553 ) #setSelectionForegroundColor: #(#ColorValue 8191 2048 5119 ) #setSelectionBackgroundColor: #(#ColorValue 2048 2048 8191 ) ) #model: #defaultFontsList #style: #systemDefault #useModifierKeys: true #selectionType: #highlight ) #(#ActionButtonSpec #layout: #(#LayoutFrame 0 0.0875421 0 0.875 0 0.329966 0 0.943182 ) #name: #OKId #model: #ok #label: 'OK' #defaultable: true ) #(#ActionButtonSpec #layout: #(#LayoutFrame 0 0.632997 0 0.875 0 0.875421 0 0.943182 ) #name: #CancelId #model: #cancel #label: 'Cancel' #defaultable: true ) ) ) )! ! Smalltalk.GPDialog class instanceVariableNames: ''! !GPDialog class methodsFor: 'utilities'! about: aProduct version: aVersion "self about:'TM' version:'v3.1' " self new label: aProduct ; icons: aVersion ; openInterface: #aboutSpec! choose: aMessage labels: aLabelArray icons: anIconArray values: aValueArray default: aDefault "Ask the user a question. Let the user pick from a row of buttons made up to match the labels collection. Return the response from the corresponding item from the values collection." ^ self new label:#choose ; icons: anIconArray ; choose:( ' ', aMessage ) labels: aLabelArray values: aValueArray default: aDefault! choose: aMessage labels: aLabelArray values: aValueArray default: aDefault "Ask the user a question. Let the user pick from a row of buttons made up to match the labels collection. Return the response from the corresponding item from the values collection." ^ self choose: aMessage labels: aLabelArray icons: nil values: aValueArray default: aDefault! confirm: aMessage ^ self confirm: aMessage initialAnswer: true! confirm: aMessage initialAnswer: aBoolean ^ self new label: #confirm ; icons: (Array with: self iconYes with: self iconNo) ; choose: (' ', aMessage) labels:#('Yes' 'No' ) values: #(true false) default: aBoolean! confirmOrCancel: aMessage ^ self confirmOrCancel: aMessage initialAnswer: #Yes! confirmOrCancel: aMessage initialAnswer: aSymbol ^ self new label: #confirmOrCancel ; icons: (Array with: self iconYes with: self iconNo with: self iconCancel ) ; choose: (' ', aMessage) labels:#('Yes' 'No' 'Cancel') values: #(#Yes #No #Cancel) default: aSymbol! copyToClipboard: messageString initialAnswer: aText ^ self copyToClipboard: messageString initialAnswer: aText onCancel: nil for: nil! copyToClipboard: messageString initialAnswer: aText onCancel: aBlockOrNil for: aVisualOrNil ^self new icons: (Array with: self iconCopy with: self iconNo) ; copyToClipboard: messageString initialAnswer: aText onCancel: aBlockOrNil for: aVisualOrNil! edit: messageString initialAnswer: aString ^ self edit: messageString initialAnswer: aString onCancel: nil for: nil! edit: messageString initialAnswer: aString onCancel: aBlockOrNil for: aVisualOrNil ^ self new icons: (Array with: self iconYes with: self iconNo) ; edit: messageString initialAnswer: aString onCancel: aBlockOrNil for: aVisualOrNil! report: messageString with: aString ^ self report: messageString with: aString for: nil! report: messageString with: aString for: aVisualOrNil ^ self new icons: (Array with: self iconYes ) ; report: messageString with: aString for: aVisualOrNil! reportAndRequest: messageString with: aString ^ self reportAndRequest: messageString with: aString for: nil! reportAndRequest: messageString with: aString for: aVisualOrNil Screen default ringBell. ^ self new icons: (Array with: self iconYes with: self iconNo) ; reportAndRequest: messageString with: aString for: aVisualOrNil! request: messageStringOrArray ^ (messageStringOrArray isEmpty or: [ messageStringOrArray first isKindOf: Character ]) ifTrue: [ self request: messageStringOrArray initialAnswer: String new ] ifFalse: [ self request: messageStringOrArray initialAnswer: String new and: String new ]! request: messageString initialAnswer: aString ^ self request: messageString initialAnswer: aString onCancel: nil for: nil! request: messageStringArray initialAnswer: aString and: secondString ^ self request: messageStringArray initialAnswer: aString and: secondString onCancel: nil for: nil! request: messageStringArray initialAnswer: aString and: secondString onCancel: aBlockOrNil for: aVisualOrNil ^ self new icons: (Array with: self iconYes with: self iconNo) ; request: messageStringArray initialAnswer: aString and: secondString onCancel: aBlockOrNil for: aVisualOrNil! request: messageString initialAnswer: aString onCancel: aBlockOrNil for: aVisualOrNil ^ self new icons: (Array with: self iconYes with: self iconNo) ; request: messageString initialAnswer: aString onCancel: aBlockOrNil for: aVisualOrNil! select: messageString fromList: list lines: maxLines "Select from list or let a user enter his own string" ^ self select: messageString fromList: list lines: maxLines cancel: nil for: nil! select: messageString fromList: list lines: maxLines cancel: cancelBlockOrNil for: aVisualOrNil "Select from list or let a user enter his own string" ^ self new icons: (Array with: self iconYes with: self iconNo) ; select: messageString fromList: list lines: maxLines cancel: cancelBlockOrNil for: aVisualOrNil! warn: aMessage self new label: #warning ; icons: (Array with: self iconOk) ; choose: (' ', aMessage) labels:#('OK') values: #(nil) default: nil! ! !GPDialog class methodsFor: 'interface specs'! aboutSpec "UIPainter new openOnClass: self andSelector: #aboutSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'About' #min: #(#Point 206 227 ) #max: #(#Point 206 227 ) #bounds: #(#Rectangle 433 207 639 434 ) ) #component: #(#SpecCollection #collection: #( #(#LabelSpec #layout: #(#Point 0 0 ) #label: #GP #hasCharacterOrientedLabel: false ) #(#LabelSpec #layout: #(#AlignmentOrigin 10 0.5 10 0 0.5 0 ) #name: #product #colors: #(#LookPreferences #setForegroundColor: #(#ColorValue 0 3580 7158 ) ) #label: 'product' ) #(#DividerSpec #layout: #(#LayoutFrame 5 0 62 0 -5 1 66 0 ) ) #(#LabelSpec #layout: #(#AlignmentOrigin 0 0.5 43 0 0.5 0 ) #name: #version #label: 'version' #style: #small ) #(#LabelSpec #layout: #(#AlignmentOrigin 0 0.5 65 0 0.5 0 ) #label: 'Copyright 1994, 1995 GreenPoint, Inc' #style: #small ) #(#DividerSpec #layout: #(#LayoutFrame 5 0 86 0 -5 1 90 0 ) ) #(#ActionButtonSpec #layout: #(#LayoutFrame 56 0 184 0 -56 1 221 0 ) #name: #close #model: #close #label: 'Close' #defaultable: true ) #(#LabelSpec #layout: #(#AlignmentOrigin 0 0.5 92 0 0.5 0 ) #label: '77 West 55 St., Suite 11G' #style: #small ) #(#LabelSpec #layout: #(#AlignmentOrigin 0 0.5 106 0 0.5 0 ) #label: 'New York, NY 10019' #style: #small ) #(#LabelSpec #layout: #(#AlignmentOrigin 0 0.5 120 0 0.5 0 ) #label: 'tel: (212) 765-6982' #style: #small ) #(#LabelSpec #layout: #(#AlignmentOrigin 0 0.5 134 0 0.5 0 ) #label: 'fax: (212) 765-6920' #style: #small ) #(#LabelSpec #layout: #(#AlignmentOrigin 0 0.5 151 0 0.5 0 ) #label: 'E-Mail: 75070.3353@compuserve.com' #style: #small ) ) ) )! emptySpec "UIPainter new openOnClass: self andSelector: #emptySpec" ^#(#FullSpec #window: #(#WindowSpec #label: ' ' #min: #(#Point 20 20 ) #max: #(#Point 1280 1024 ) #bounds: #(#Rectangle 428 365 596 404 ) ) #component: #(#SpecCollection #collection: #( #(#LabelSpec #layout: #(#Point -5 1 ) #name: #label #hasCharacterOrientedLabel: false ) ) ) )! ! !GPDialog class methodsFor: 'resources'! checkMark " Created by GPImageEditor v1.2" ^OpaqueImage figure: ( CachedImage on: (Image extent: 20@20 depth: 4 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 16) at: 1 put: ColorValue black; at: 2 put: ColorValue darkRed; at: 3 put: ColorValue darkGreen; at: 4 put: ColorValue yellow; at: 5 put: ColorValue lightCyan; at: 6 put: ColorValue darkMagenta; at: 7 put: ColorValue darkCyan; at: 8 put: ColorValue darkGray; at: 9 put: ColorValue lightGray; at: 10 put: ColorValue red; at: 11 put: ColorValue green; at: 12 put: ColorValue lightYellow; at: 13 put: ColorValue blue; at: 14 put: ColorValue magenta; at: 15 put: ColorValue cyan; at: 16 put: ColorValue white; yourself)) usingBits: (ByteArray fromPackedString: '??????????(/?0@@?????????:+G?0@@????????>*KG?0@@????????("KG?0@@???????:("17?0@@???????:H,17?0@@>*(/??*"KG]??0@@>"KO?:("17_??0@@("KG>"H,17???0@@("KG*"H,]????0@@("KG("KG]????0@@("H"H,17_????0@@("H"H,]7?????0@@("H"3G]??????0@@("H"17_??????0@@>"H,]7???????0@@??3G]????????0@@??]7_????????0@@?????????????0@@?????????????0@@'))) shape: ( CachedImage on: (Image extent: 20@20 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 1 128 0 0 3 192 0 0 7 192 0 0 15 192 0 0 31 192 0 0 31 192 0 120 127 128 0 120 255 0 0 253 254 0 0 255 252 0 0 255 252 0 0 255 248 0 0 255 240 0 0 255 224 0 0 255 192 0 0 127 128 0 0 31 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0]))! copyMark " Created by GPImageEditor v1.2" ^OpaqueImage figure: ( CachedImage on: (Image extent: 20@20 depth: 2 bitsPerPixel: 2 palette: (MappedPalette withColors: ((Array new: 4) at: 1 put: ColorValue black; at: 2 put: ColorValue darkGreen; at: 3 put: ColorValue yellow; at: 4 put: ColorValue white; yourself)) usingBits: #[255 252 0 63 255 0 0 0 255 252 85 15 255 0 0 0 255 252 105 19 255 0 0 0 255 252 85 0 255 0 0 0 255 252 105 84 255 0 0 0 240 0 85 84 255 0 0 0 241 84 102 148 255 0 0 0 241 164 85 84 255 0 0 0 241 84 105 164 255 0 0 0 241 164 85 84 255 0 0 0 241 84 102 164 255 0 0 0 241 152 85 84 255 0 0 0 241 84 0 0 255 0 0 0 241 166 147 255 255 0 0 0 241 85 83 255 255 0 0 0 241 154 147 255 255 0 0 0 241 85 83 255 255 0 0 0 240 0 3 255 255 0 0 0 255 255 255 255 255 0 0 0 255 255 255 255 255 0 0 0])) shape: ( CachedImage on: (Image extent: 20@20 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[1 248 0 0 1 252 0 0 1 254 0 0 1 255 0 0 1 255 0 0 63 255 0 0 63 255 0 0 63 255 0 0 63 255 0 0 63 255 0 0 63 255 0 0 63 255 0 0 63 255 0 0 63 224 0 0 63 224 0 0 63 224 0 0 63 224 0 0 63 224 0 0 0 0 0 0 0 0 0 0]))! crossMark " Created by GPImageEditor v1.2" ^OpaqueImage figure: ( CachedImage on: (Image extent: 20@20 depth: 4 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 16) at: 1 put: ColorValue black; at: 2 put: ColorValue darkRed; at: 3 put: ColorValue darkGreen; at: 4 put: ColorValue yellow; at: 5 put: ColorValue lightCyan; at: 6 put: ColorValue darkMagenta; at: 7 put: ColorValue darkCyan; at: 8 put: ColorValue darkGray; at: 9 put: ColorValue lightGray; at: 10 put: ColorValue red; at: 11 put: ColorValue green; at: 12 put: ColorValue lightYellow; at: 13 put: ColorValue blue; at: 14 put: ColorValue magenta; at: 15 put: ColorValue cyan; at: 16 put: ColorValue white; yourself)) usingBits: (ByteArray fromPackedString: '?????????9???0@@??&_????>QG??0@@>Y$P????&QDO?0@@?9DQA?>YDPA7?0@@??$QA?&QDP]7?0@@??$QDG$QDG]7?0@@??>QDQDQA7_??0@@???1DQDPA7???0@@???1DQDG]????0@@??>QDQDG]????0@@??&QDQDP_????0@@>YDQDQDQDO???0@@>QDQ@ADQD_???0@@$QDP]7DQDG_??0@@$QDG]7$Q@G]??0@@$QDG]?$PA7_??0@@?0A7???7]????0@@?7]7????]????0@@?????????????0@@?????????????0@@'))) shape: ( CachedImage on: (Image extent: 20@20 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 2 0 0 24 7 0 0 124 15 128 0 63 63 192 0 31 127 192 0 31 255 192 0 15 255 0 0 7 254 0 0 7 252 0 0 15 252 0 0 31 248 0 0 127 252 0 0 127 252 0 0 255 255 0 0 255 255 128 0 255 127 0 0 60 28 0 0 60 12 0 0 0 0 0 0 0 0 0 0]))! exclamationMark " Created by GPImageEditor v1.2" ^OpaqueImage figure: (Image extent: 32@32 depth: 4 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 16) at: 1 put: ColorValue black; at: 2 put: ColorValue darkRed; at: 3 put: ColorValue darkGreen; at: 4 put: ColorValue yellow; at: 5 put: ColorValue lightCyan; at: 6 put: ColorValue darkMagenta; at: 7 put: ColorValue darkCyan; at: 8 put: ColorValue darkGray; at: 9 put: ColorValue lightGray; at: 10 put: ColorValue red; at: 11 put: ColorValue green; at: 12 put: ColorValue lightYellow; at: 13 put: ColorValue blue; at: 14 put: ColorValue magenta; at: 15 put: ColorValue cyan; at: 16 put: ColorValue white; yourself)) usingBits: (ByteArray fromPackedString: '"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"Y&X"H"H"H"H"H"H"H"H"I&Q$X"H"H"H"H"H"H"H"H"YFQDX"H"H"H"H"H"H"H"H$YDQEW"H"H"H"H"H"H"H"I$QDQU7"H"H"H"H"H"H"H"Q$QEU]8"H"H"H"H"H"H"H&QDQU7^H"H"H"H"H"H"H"IDQDU]8"H"H"H"H"H"H"H"YDQUW^H"H"H"H"H"H"H"H$QDU]7"H"H"H"H"H"H"H"I$QUW^H"H"H"H"H"H"H"H"QDU]7"H"H"H"H"H"H"H"H&QUW^H"H"H"H"H"H"H"H"IDU]7"H"H"H"H"H"H"H"H"AEW^H"H"H"H"H"H"H"H"Y&UU7"H"H"H"H"H"H"H"I$YFX]8"H"H"H"H"H"H"H"Q$QDX"H"H"H"H"H"H"H"H&QDQEW"H"H"H"H"H"H"H"IDQDQU7"H"H"H"H"H"H"H"IDQDU]8"H"H"H"H"H"H"H"ADQUW^H"H"H"H"H"H"H"H"EUU]7"H"H"H"H"H"H"H"H"H]7^H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H b')) shape: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 7 128 0 0 15 192 0 0 15 224 0 0 15 248 0 0 15 252 0 0 15 252 0 0 15 252 0 0 15 248 0 0 15 248 0 0 15 248 0 0 15 240 0 0 15 240 0 0 15 224 0 0 15 224 0 0 7 192 0 0 63 192 0 0 126 192 0 0 127 0 0 0 127 192 0 0 127 224 0 0 63 224 0 0 31 224 0 0 15 224 0 0 3 192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])! GP " Created by GPImageEditor v1.2" ^OpaqueImage figure: (Image extent: 45@38 depth: 4 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 16) at: 1 put: ColorValue black; at: 2 put: ColorValue darkRed; at: 3 put: ColorValue darkGreen; at: 4 put: ColorValue yellow; at: 5 put: ColorValue lightCyan; at: 6 put: ColorValue darkMagenta; at: 7 put: ColorValue darkCyan; at: 8 put: ColorValue darkGray; at: 9 put: ColorValue lightGray; at: 10 put: ColorValue red; at: 11 put: ColorValue green; at: 12 put: ColorValue lightYellow; at: 13 put: ColorValue blue; at: 14 put: ColorValue magenta; at: 15 put: ColorValue cyan; at: 16 put: ColorValue white; yourself)) usingBits: (ByteArray fromPackedString: '????=DQDQO??S?????????????????@@???4QFY&Y&S4Q/????????????????@@??=DY&Y&Y&Y$Y,????????????????@@??QFY&3L3FY&Y,????????????????@@?4Q&Y,3???1&Y,????????????????@@=DY&[L??=7]6Y,??_?????????????@@=FY&[O?7]7]4Y,_7_?????????????@@QFY&[O=7]???Y,]7_?????????????@@Q&Y&3O]7_???=,]7_?????????????@@Q&Y&37]7?????<=7_?????????????@@Q&Y&17]7?????4QDQDQDQDS???????@@Q&Y&17]7??????Y&Y&Y&Y&Y$S?????@@Q&Y&17]????????FY&Y,3FY&Y/????@@Q&Y&17]4QDQDQDS4Y&Y,??Y&Y&????@@Q&Y&17]?Y&Y&Y&Y$Y&Y,??Q&Y&3???@@Q&Y&17]??FY&Y&3LY&Y,]7]&Y&[???@@=&Y&17]??4Y&Y,34Y&Y,]7]FY&[G_?@@=FY&Y7]??4Y&Y,?4Y&Y,]7]FY&[G]?@@?6Y&[G]??4Y&Y,]4Y&Y,]7]FY&[G]?@@?4Y&[G]??4Y&Y,]4Y&Y,]7QFY&[G]7@@??Y&Y'']?=DY&Y,]4Y&Y,]7Q&Y&3G]7@@??=&Y,]7QFY&Y,]4Y&Y,]DQ&Y&17]7@@???6Y&YDQ&Y&Y,]4Y&Y,QFY&Y,17]7@@????1&Y&Y&Y,3L]4Y&Y&Y&Y&3L=7]7@@?????<3L3L3L?7]4Y&Y,3L3L3?]7]?@@??????]7_???=7]4Y&Y,]7_???]7]?@@??????=7]7??]7]4Y&Y,]7_?=7]7_?@@????????]7]7]7_4Y&Y,]7]7]7]???@@???????????????4Y&Y,]7_???????@@???????????????4Y&Y,]7_???????@@???????????????4Y&Y,]7_???????@@??????????????=DY&Y,]7_???????@@?????????????4QFY&Y&Q7_???????@@??????????????Y&Y&Y&Y''_???????@@???????????????L3L3L3L_???????@@???????????????????7]7_???????@@??????????????????=7]7]???????@@?????????????????7]7]7]7_?????@@')) shape: (Image extent: 45@38 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: (ByteArray fromPackedString: '@_0 @@@@@@@G?7@@@@@@@@??>@@@@@@@G??8@@@@@@@?0_ @@@@@@G>G>H@@@@@@_1?= @@@@@C?OC>@@@@@@O=8G8@@@@@@?/@K @@@@@C?<@??0@@@@O?0A??8@@@@?>@C??0@@@C???7<_ @@@O?/??1?@@@@?>_???<@@@A?8?7??>@@@G?#>_??<@@@O>O????0@@@?8????? @@A?''????>@@@C??????8@@@G?????? @@@O????>>@@@@O?O??''0@@@@^A??0_@@@@@>O??G8@@@@@?=??>@@@@@@@G?0@@@@@@@@_?@@@@@@@@A?<@@@@@@@@O?0@@@@@@@C??@@@@@@@@G?<@@@@@@@@O?0@@@@@@@@@_@@@@@@@@@C>@@@@@@@@@?>@@@@@@a'))! questionMark " Created by GPImageEditor v1.2" ^OpaqueImage figure: (Image extent: 32@32 depth: 4 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 16) at: 1 put: ColorValue black; at: 2 put: ColorValue darkRed; at: 3 put: ColorValue darkGreen; at: 4 put: ColorValue yellow; at: 5 put: ColorValue lightCyan; at: 6 put: ColorValue darkMagenta; at: 7 put: ColorValue darkCyan; at: 8 put: ColorValue darkGray; at: 9 put: ColorValue lightGray; at: 10 put: ColorValue red; at: 11 put: ColorValue green; at: 12 put: ColorValue lightYellow; at: 13 put: ColorValue blue; at: 14 put: ColorValue magenta; at: 15 put: ColorValue cyan; at: 16 put: ColorValue white; yourself)) usingBits: (ByteArray fromPackedString: '"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H;.;.:H"H"H"H"H"H"H"H;.9.[&:H"H"H"H"H"H"H#.[&Y&Y&Y("H"H"H"H"H"N9.Y,3FY&[H"H"H"H"H"H#&9&[H]>Y&[H"H"H"H"H"H#&9,17_&Y,[H"H"H"H"H"H#&3G]89&Y,18"H"H"H"H"H#L]7_.Y&1,]8"H"H"H"H"H!!7_.9&[F3G^H"H"H"H"H"H#.9&Y,[L]7"H"H"H"H"H#.9&Y,[L17]8"H"H"H"H"H9&Y&1,3G]7"H"H"H"H"H"NY&[L3G]7^H"H"H"H"H"H;&[L17]7]8"H"H"H"H"H"H[F17]7]8"H"H"H"H"H"H;.#L]7^H"H"H"H"H"H"H#.[&:G^H"H"H"H"H"H"H"H9.Y&Y7"H"H"H"H"H"H"H"N9&Y&2H"H"H"H"H"H"H"H#&Y&[L^H"H"H"H"H"H"H"H#&Y,3G^H"H"H"H"H"H"H"H#F1,17"H"H"H"H"H"H"H"H#L3G]8"H"H"H"H"H"H"H"H!!7]7^H"H"H"H"H"H"H"H"H!!7]8"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H b')) shape: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 240 0 0 31 248 0 0 63 254 0 0 127 255 0 0 127 127 128 0 63 255 192 0 31 223 224 0 15 255 240 0 7 255 240 0 3 255 240 0 15 255 240 0 15 255 224 0 15 255 192 0 31 255 128 0 15 254 0 0 59 240 0 0 126 192 0 0 127 192 0 0 127 128 0 0 127 192 0 0 63 224 0 0 31 224 0 0 15 224 0 0 7 224 0 0 3 192 0 0 0 0 0 0 0 0 0 0 0 0 0])! stopMark " Created by GPImageEditor v1.2" ^OpaqueImage figure: ( CachedImage on: (Image extent: 20@20 depth: 4 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 16) at: 1 put: ColorValue black; at: 2 put: ColorValue darkRed; at: 3 put: ColorValue darkGreen; at: 4 put: ColorValue yellow; at: 5 put: ColorValue lightCyan; at: 6 put: ColorValue darkMagenta; at: 7 put: ColorValue darkCyan; at: 8 put: ColorValue darkGray; at: 9 put: ColorValue lightGray; at: 10 put: ColorValue red; at: 11 put: ColorValue green; at: 12 put: ColorValue lightYellow; at: 13 put: ColorValue blue; at: 14 put: ColorValue magenta; at: 15 put: ColorValue cyan; at: 16 put: ColorValue white; yourself)) usingBits: (ByteArray fromPackedString: '????>Y&_?????0@@????$QDY?????0@@??>QD@@AD_???0@@??$QA7]1FQ???0@@?9FQ]???\YC??0@@?1DYG???QA1$_???9DO?0@@$P]?FQ????DW?0@@$P_?QG??? 0 ifTrue:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr - 1 ] ifFalse:[ theText at: xCtr put: Character space ] ]. ] ifFalse:[ ctr := 1. 1 to: theText size do: [:xCtr | ctr > theValue size ifTrue:[ theText at: xCtr put: Character space ] ifFalse:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr + 1 ] ]. ]. aFileStream nextPutAll: theText, ' '. ]. aFileStream nextPutAll: sCR ].! oprintTable: aTableInterface title: aTitleString fieldWidths: colWidths | document font style sCR theTable colLabels theText colFormats colLabelFormats theFormat ctr pageWidth pointSize | pointSize := 12. theTable := aTableInterface table. colLabels := aTableInterface columnLabels value baseCollection. " colWidths := self getColWidthsFor: aTableInterface. " colFormats := self isVW7 ifTrue:[aTableInterface elementFormats] ifFalse:[aTableInterface columnFormats]. colLabelFormats := aTableInterface columnLabelsFormats. pageWidth := 0. colWidths do: [:n | pageWidth := pageWidth + 1 + n ]. sCR := String new: 1. sCR at: 1 put: Character cr. sCR := sCR asText. document := Document new. document addItalicHeader: aTitleString pixelSize: pointSize + 4. document doFooter: true footerString: 'Printout' doPageNumbers: true. " document setRightMargin: (document margins left + pageWidth). document setBottomMargin: (document margins left + pageWidth). " font := FontDescription new family: 'times'; boldness: 0.5; italic: false. font pixelSize: pointSize. style := TextAttributes defaultFontQuery: font copy. style baseline: pointSize. style lineGrid: pointSize * 12 // 10. document startParagraph. " document addText: font pixelSize printString under: (TextAttributes styleNamed: #default)." document startParagraph. self printColumnHeaders: colLabels onDocument: document colWidths: colWidths colFormats: colLabelFormats. 1 to: theTable columnSize do: [:x | | aLine | aLine := theTable rowAt: x. 1 to: aLine size do: [:y | | theValue | theValue := aLine at: y. theText := String new: (colWidths at: y). (theValue isKindOf: String) ifFalse:[ theValue := theValue printString ]. theFormat := colFormats at: y. theFormat == #right ifTrue:[ ctr := theValue size. theText size to: 1 by: -1 do: [:xCtr | ctr > 0 ifTrue:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr - 1 ] ifFalse:[ theText at: xCtr put: Character space ]. ]. ] ifFalse:[ ctr := 1. 1 to: theText size do: [:xCtr | ctr > theValue size ifTrue:[ theText at: xCtr put: Character space ] ifFalse:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr + 1 ] ]. ]. document addText: (theText, ' ') asText under: style copy. ]. document addText: sCR under: style copy. ]. document toPrinter.! printColumnHeaders: cArray onDocument: document colWidths: colWidths colFormats: colFormats | theText theFormat ctr style sCR font pointSize colLabels numRows textUnderLine | pointSize := 12. sCR := String new: 1. sCR at: 1 put: Character cr. sCR := sCR asText. colLabels := cArray at: 1. numRows := 0. colLabels do: [:aLabel | | tCount | tCount := (aLabel occurrencesOf: (Character cr)) + 1. numRows < tCount ifTrue:[ numRows := tCount ]. ]. font := FontDescription new family: 'times'; boldness: 0.5; italic: false; fixedWidth: true. font pixelSize: pointSize. style := TextAttributes defaultFontQuery: font copy. style baseline: pointSize. style lineGrid: pointSize * 12 // 10. 1 to: numRows do: [:theRowNumber | 1 to: colLabels size do: [:y | | theValue | theValue := colLabels at: y. theValue := theValue asComposedText. theValue numberOfLines >= theRowNumber ifTrue:[ theValue := theValue string copyFrom: (theValue lineAt: theRowNumber) first to: (theValue lineAt: theRowNumber) last. ] ifFalse:[ theValue := ''. ]. (theValue indexOf: Character cr) > 0 ifTrue:[ theValue := theValue copyFrom: 1 to: (theValue indexOf: Character cr)-1 ]. theText := String new: (colWidths at: y). theFormat := colFormats at: y. theFormat == #right ifTrue:[ ctr := theValue size. theText size to: 1 by: -1 do: [:xCtr | ctr > 0 ifTrue:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr - 1 ] ifFalse:[ theText at: xCtr put: Character space ]. ]. ] ifFalse:[ ctr := 1. 1 to: theText size do: [:xCtr | ctr > theValue size ifTrue:[ theText at: xCtr put: Character space ] ifFalse:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr + 1 ] ]. ]. "theText := self alignText: theText with: theText copy." document addText: (theText, ' ') asText under: style copy. ]. document addText: sCR under: style copy. ]. "Add title under line." 1 to: colLabels size do: [:L | textUnderLine := String new: (colWidths at: L). 1 to: textUnderLine size do: [:xCh | textUnderLine at: xCh put: $_. ]. document addText: textUnderLine under: style copy. ]. document addText: sCR under: style copy. document addText: sCR under: style copy.! printColumnHeadersOnString: cArray colWidths: colWidths colFormats: colFormats | theText theFormat ctr sCR colLabels numRows tString | tString := String new. sCR := Character cr asSymbol asString. colLabels := cArray at: 1. numRows := 0. colLabels do: [:aLabel | | tCount | tCount := (aLabel occurrencesOf: (Character cr)) + 1. numRows < tCount ifTrue:[ numRows := tCount ]. ]. 1 to: numRows do: [:theRowNumber | 1 to: colLabels size do: [:y | | theValue | theValue := colLabels at: y. theValue := theValue asComposedText. theValue numberOfLines >= theRowNumber ifTrue:[ theValue := theValue string copyFrom: (theValue lineAt: theRowNumber) first to: (theValue lineAt: theRowNumber) last. ] ifFalse:[ theValue := ''. ]. (theValue indexOf: Character cr) > 0 ifTrue:[ theValue := theValue copyFrom: 1 to: (theValue indexOf: Character cr)-1 ]. theText := String new: (colWidths at: y). theFormat := colFormats at: y. theFormat == #right ifTrue:[ ctr := theValue size. theText size to: 1 by: -1 do: [:xCtr | ctr > 0 ifTrue:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr - 1 ] ifFalse:[ theText at: xCtr put: Character space ]. ]. ] ifFalse:[ ctr := 1. 1 to: theText size do: [:xCtr | ctr > theValue size ifTrue:[ theText at: xCtr put: Character space ] ifFalse:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr + 1 ] ]. ]. tString := tString, theText, ' '. ]. tString := tString, sCR ]. ^tString := tString, sCR.! printTable: aTableInterface title: aTitleString | document font style sCR theTable colLabels theText colFormats colLabelFormats theFormat ctr pageWidth pointSize rowAdaptor colWidths | pointSize := 12. theTable := aTableInterface table. colLabels := aTableInterface columnLabels value baseCollection. colFormats := self isVW7 ifTrue:[aTableInterface elementFormats] ifFalse:[aTableInterface columnFormats]. colLabelFormats := aTableInterface columnLabelsFormats. colWidths := List new. aTableInterface columnWidths do: [ :width | colWidths add: (width//5) ]. pageWidth := 0. colWidths do: [:n | pageWidth := pageWidth + 1 + n ]. colFormats isNil ifTrue: [ theFormat := #left. ]. sCR := String new: 1. sCR at: 1 put: Character cr. sCR := sCR asText. document := Document new. document setLandscape. document addItalicHeader: aTitleString asText allBold pixelSize: pointSize + 10. document doFooter: true footerString: 'Printout' doPageNumbers: true. font := FontDescription new family: 'MS Serif'; boldness: 0.5; italic: false. font fixedWidth: true. font pixelSize: pointSize. style := TextAttributes defaultFontQuery: font copy. style baseline: pointSize. style lineGrid: pointSize * 12 // 10. document startParagraph. " document setLeftMargin: 5." " document setRightMargin: (document margins left + pageWidth). document setBottomMargin: (document margins left + pageWidth). " self printColumnHeaders: colLabels onDocument: document colWidths: colWidths colFormats: colLabelFormats. rowAdaptor := theTable adaptors. 1 to: theTable rowSize do: [:x | | aLine | aLine := theTable rowAt: x. 1 to: rowAdaptor numberOfColumns do: [:y | | theValue | theValue := rowAdaptor access: aLine at: y. theText := String new: (colWidths at: y). (theValue isKindOf: String) ifFalse:[ theValue := theValue printString ]. colFormats isNil ifFalse: [ colFormats size < y ifFalse: [ theFormat := colFormats at: y. ] ]. theFormat == #right ifTrue:[ ctr := theValue size. theText size to: 1 by: -1 do: [:xCtr | ctr > 0 ifTrue:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr - 1 ] ifFalse:[ theText at: xCtr put: Character space ]. ]. ] ifFalse:[ ctr := 1. 1 to: theText size do: [:xCtr | ctr > theValue size ifTrue:[ theText at: xCtr put: Character space ] ifFalse:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr + 1 ] ]. ]. document addText: (theText, ' ') asText under: style copy. ]. document addText: sCR under: style copy. ]. document toPrinter.! printTable: aTableInterface title: aTitleString font: pointSize orientation: anO | document font style sCR theTable colLabels theText colFormats colLabelFormats theFormat ctr pageWidth rowAdaptor colWidths tableSize | theTable := aTableInterface table. colLabels := aTableInterface columnLabels value baseCollection. colFormats := self isVW7 ifTrue:[aTableInterface elementFormats] ifFalse:[aTableInterface columnFormats]. colLabelFormats := aTableInterface columnLabelsFormats. colWidths := List new. aTableInterface columnWidths do: [ :width | colWidths add: (width//5) ]. pageWidth := 0. colWidths do: [:n | pageWidth := pageWidth + 1 + n ]. colFormats isNil ifTrue: [ theFormat := #left. ]. sCR := String new: 1. sCR at: 1 put: Character cr. sCR := sCR asText. document := Document new. anO = 'L' ifTrue: [ document setLandscape ]. document addItalicHeader: aTitleString asText allBold pixelSize: pointSize + 10. document doFooter: true footerString: 'Printout' doPageNumbers: true. font := FontDescription new family: 'MS Serif'; boldness: 0.5; italic: false. font fixedWidth: true. font pixelSize: pointSize. style := TextAttributes defaultFontQuery: font copy. style baseline: pointSize. style lineGrid: pointSize * 12 // 10. document startParagraph. " document setLeftMargin: 5." " document setRightMargin: (document margins left + pageWidth). document setBottomMargin: (document margins left + pageWidth). " self printColumnHeaders: colLabels onDocument: document colWidths: colWidths colFormats: colLabelFormats. rowAdaptor := theTable adaptors. tableSize := theTable rowSize. "tableSize > 10 ifTrue: [ tableSize := 10 ]." 1 to: tableSize do: [:x | | aLine | aLine := theTable rowAt: x. 1 to: rowAdaptor numberOfColumns do: [:y | | theValue | theValue := rowAdaptor access: aLine at: y. theText := String new: (colWidths at: y). (theValue isKindOf: String) ifFalse:[ theValue isNil ifTrue: [ theValue := String new ] ifFalse: [ theValue := theValue printString ] ]. colFormats isNil ifFalse: [ colFormats size < y ifFalse: [ theFormat := colFormats at: y. ] ]. theFormat == #right ifTrue:[ ctr := theValue size. theText size to: 1 by: -1 do: [:xCtr | ctr > 0 ifTrue:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr - 1 ] ifFalse:[ theText at: xCtr put: Character space ] ]. ] ifFalse:[ ctr := 1. 1 to: theText size do: [:xCtr | ctr > theValue size ifTrue:[ theText at: xCtr put: Character space ] ifFalse:[ theText at: xCtr put: (theValue at: ctr). ctr := ctr + 1 ] ]. ]. document addText: (theText, ' ') asText under: style copy. ]. document addText: sCR under: style copy. ]. document close. document toPrinter.! ! Smalltalk.HistoricalGraphSettingsDialog class instanceVariableNames: ''! !HistoricalGraphSettingsDialog class methodsFor: 'interface specs'! fontsSpec "UIPainter new openOnClass: self andSelector: #fontsSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 450 330 789 591 ) ) #component: #(#SpecCollection #collection: #( #(#LabelSpec #layout: #(#Point 78 11 ) #label: 'Left side' ) #(#LabelSpec #layout: #(#Point 222 14 ) #label: 'Right Side' ) #(#LabelSpec #layout: #(#Point 4 34 ) #label: 'Y Titles' ) #(#LabelSpec #layout: #(#Point 4 57 ) #label: 'Y Values' ) #(#LabelSpec #layout: #(#Point 4 80 ) #label: 'X Labels' ) #(#LabelSpec #layout: #(#Point 4 103 ) #label: 'Legend' ) #(#LabelSpec #layout: #(#Point 4 126 ) #label: 'Bar Data' ) #(#MenuButtonSpec #layout: #(#Rectangle 60 36 193 55 ) #name: #fontListMenu #model: #y1TitleFont #menu: #fontListMenu ) #(#MenuButtonSpec #layout: #(#Rectangle 204 36 337 55 ) #name: #fontListMenu #model: #y2TitleFont #menu: #fontListMenu ) #(#MenuButtonSpec #layout: #(#Rectangle 60 59 193 78 ) #name: #fontListMenu #model: #y1LabelsFont #menu: #fontListMenu ) #(#MenuButtonSpec #layout: #(#Rectangle 204 59 337 78 ) #name: #fontListMenu #model: #y2LabelsFont #menu: #fontListMenu ) #(#MenuButtonSpec #layout: #(#Rectangle 60 82 193 101 ) #name: #fontListMenu #model: #xLabelsFont #menu: #fontListMenu ) #(#MenuButtonSpec #layout: #(#Rectangle 60 105 193 124 ) #name: #fontListMenu #model: #legendFont #menu: #fontListMenu ) #(#MenuButtonSpec #layout: #(#Rectangle 60 128 193 147 ) #name: #fontListMenu #model: #barDataFont #menu: #fontListMenu ) ) ) )! settingsSpec "UIPainter new openOnClass: self andSelector: #settingsSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 487 423 826 684 ) ) #component: #(#SpecCollection #collection: #( #(#RegionSpec #layout: #(#Rectangle 13 27 317 214 ) #lineWidth: 1 ) #(#DividerSpec #layout: #(#Rectangle 16 114 315 118 ) ) #(#MenuButtonSpec #layout: #(#Rectangle 24 40 157 59 ) #name: #yValuesListMenu #model: #y1aValue #menu: #yValuesListMenu ) #(#MenuButtonSpec #layout: #(#Rectangle 177 40 310 59 ) #name: #yValuesListMenu #model: #y2aValue #menu: #yValuesListMenu ) #(#MenuButtonSpec #layout: #(#Rectangle 24 157 157 176 ) #name: #yValuesListMenu #model: #y1bValue #menu: #yValuesListMenu ) #(#MenuButtonSpec #layout: #(#Rectangle 177 157 310 176 ) #name: #yValueslistMenu #model: #y2bValue #menu: #yValuesListMenu ) ) ) )! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 285 99 785 444 ) ) #component: #(#SpecCollection #collection: #( #(#NoteBookSpec #layout: #(#Rectangle 5 6 501 328 ) #name: #pageHolder #model: #settingsTabs ) #(#ActionButtonSpec #layout: #(#Rectangle 237 312 289 337 ) #model: #cancel #label: 'Cancel' #defaultable: true ) #(#ActionButtonSpec #layout: #(#Rectangle 111 311 163 336 ) #model: #accept #label: 'OK' #isDefault: true #defaultable: true ) ) ) )! ! Smalltalk.RiskConcentrationTableView class instanceVariableNames: ''! !RiskConcentrationTableView class methodsFor: 'interface specs'! detailsSpec "UIPainter new openOnClass: self andSelector: #detailsSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Details View' #min: #(#Point 640 480 ) #max: #(#Point 794 561 ) #bounds: #(#Rectangle 253 313 1047 874 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #( #(#DividerSpec #layout: #(#Rectangle 791 2 1201 143 ) #name: #displayDivider4ID #orientation: #vertical ) #(#TextEditorSpec #layout: #(#LayoutFrame 0 0.00503778 0 0.00713012 0 0.994962 0 1.0 ) #name: #detailsID #flags: 15 #model: #details #tabable: false #style: #'Target Default' #isReadOnly: true ) ) ) )! tableSpec "UIPainter new openOnClass: self andSelector: #tableSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Details View' #min: #(#Point 640 480 ) #max: #(#Point 793 561 ) #bounds: #(#Rectangle 211 339 1004 900 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #( #(#DividerSpec #layout: #(#Rectangle 791 2 1201 143 ) #name: #displayDivider4ID #orientation: #vertical ) #(#TableViewSpec #layout: #(#LayoutFrame 3 0 0 -0.00178253 0 0.997478 0 0.99287 ) #name: #tableInterfaceID #model: #tableInterface #tabable: false #style: #'Target Default' #showHGrid: true #showVGrid: true ) ) ) )! tableWithDetailsSpec "UIPainter new openOnClass: self andSelector: #tableWithDetailsSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Details View' #min: #(#Point 640 480 ) #max: #(#Point 793 561 ) #bounds: #(#Rectangle 282 353 1075 914 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #( #(#DividerSpec #layout: #(#Rectangle 791 2 1201 143 ) #name: #displayDivider4ID #orientation: #vertical ) #(#TableViewSpec #layout: #(#LayoutFrame 3 0 0 -0.00208333 0 0.996875 0 0.45625 ) #name: #tableInterfaceID #model: #tableInterface #tabable: false #style: #'Target Default' #showHGrid: true #showVGrid: true ) #(#TextEditorSpec #layout: #(#LayoutFrame 0 0.0046875 0 0.4625 0 0.995312 0 0.960417 ) #name: #detailsID #flags: 15 #model: #details #tabable: false #style: #'Target Default' #isReadOnly: true ) #(#ActionButtonSpec #layout: #(#LayoutFrame 0 0.00625 0 0.960417 0 0.110938 0 0.99375 ) #flags: 24 #model: #sendToExcel #tabable: false #label: '-> Excel' #defaultable: true ) ) ) )! ! Smalltalk.RiskConcentrationPortfolioSummaryTableView class instanceVariableNames: ''! !RiskConcentrationPortfolioSummaryTableView class methodsFor: 'instance creation'! accountApplication ^self accountApplicationUsing: nil.! accountApplicationPopup "self testAccount" | anInstance tDict | anInstance := self new. anInstance dataCollectorMethod: #accountPortfolioData. anInstance collectData. anInstance currentAccountGroupSymbol value: 'Global'. anInstance setTableData. anInstance setTableInterface. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: anInstance. ^tDict! accountApplicationUsing: pDbAdmin "self testAccount" | anInstance | anInstance := self new. anInstance dataCollectorMethod: #accountPortfolioDataForSummaryView. anInstance dbAdministrator: pDbAdmin. anInstance collectData. anInstance currentAccountGroupSymbol value: 'Global'. anInstance setTableData. anInstance setTableInterface. ^anInstance! crossSectionApps | tDict tAppDict | tAppDict := Dictionary new. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: self gradeApplication. tAppDict at: 'Grade' put: tDict. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: self sectorApplication. tAppDict at: 'Sector' put: tDict. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: self securityTypeApplication. tAppDict at: 'Security Type' put: tDict. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: self accountApplication. tAppDict at: 'Account' put: tDict. ^tAppDict! crossSectionAppsUsing: pDbAdmin | tDict tAppDict | tAppDict := Dictionary new. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: (self gradeApplicationUsing: pDbAdmin). tAppDict at: 'Grade' put: tDict. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: (self sectorApplicationUsing: pDbAdmin). tAppDict at: 'Sector' put: tDict. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: (self securityTypeApplicationUsing: pDbAdmin). tAppDict at: 'Security Type' put: tDict. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: (self accountApplicationUsing: pDbAdmin). tAppDict at: 'Account' put: tDict. ^tAppDict! gradeApplication ^self gradeApplicationUsing: nil.! gradeApplicationPopup "Returns a Dictionary with #WindowSpec and #Application settings" | anInstance tDict | anInstance := self new. anInstance dataCollectorMethod: #gradeRiskPortfolioData. anInstance collectData. anInstance currentAccountGroupSymbol value: 'Global'. anInstance setTableData. anInstance setTableInterface. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: anInstance. ^tDict! gradeApplicationUsing: pDbAdmin "self testGrade" | anInstance | anInstance := self new. anInstance dataCollectorMethod: #gradeRiskPortfolioData. anInstance dbAdministrator: pDbAdmin. anInstance collectData. anInstance currentAccountGroupSymbol value: 'Global'. anInstance setTableData. anInstance setTableInterface. ^anInstance! proofApps | tAppDict | tAppDict := Dictionary new. tAppDict at: 'Grade' put: (self testSummary: 'Grade Proof'). tAppDict at: 'Sector' put: (self testSummary: 'Sector Proof'). tAppDict at: 'Security Type' put: (self testSummary: 'Security Type Proof'). tAppDict at: 'Account' put: (self testSummary: 'Account Proof'). ^tAppDict! sectorApplication ^self sectorApplicationUsing: nil! sectorApplicationPopup "Returns a Dictionary with #WindowSpec and #Application settings" | anInstance tDict | anInstance := self new. anInstance dataCollectorMethod: #sectorPortfolioData. anInstance collectData. anInstance currentAccountGroupSymbol value: 'Global'. anInstance setTableData. anInstance setTableInterface. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: anInstance. ^tDict! sectorApplicationUsing: pDbAdmin "self testSector" | anInstance | anInstance := self new. anInstance dataCollectorMethod: #sectorPortfolioData. anInstance dbAdministrator: pDbAdmin. anInstance collectData. anInstance currentAccountGroupSymbol value: 'Global'. anInstance setTableData. anInstance setTableInterface. ^anInstance! securityTypeApplication ^self securityTypeApplicationUsing: nil.! securityTypeApplicationPopup "Returns a Dictionary with #WindowSpec and #Application settings" | anInstance tDict | anInstance := self new. anInstance dataCollectorMethod: #securityTypePortfolioData. anInstance collectData. anInstance currentAccountGroupSymbol value: 'Global'. anInstance setTableData. anInstance setTableInterface. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: anInstance. ^tDict! securityTypeApplicationUsing: pDbAdmin "self testSecurityType" | anInstance | anInstance := self new. anInstance dataCollectorMethod: #securityTypePortfolioData. anInstance dbAdministrator: pDbAdmin. anInstance collectData. anInstance currentAccountGroupSymbol value: 'Global'. anInstance setTableData. anInstance setTableInterface. ^anInstance! summaryApps | tAppDict | tAppDict := Dictionary new. tAppDict at: 'Grade' put: (self testSummary: 'Grade Summary'). tAppDict at: 'Sector' put: (self testSummary: 'Sector Summary'). tAppDict at: 'Security Type' put: (self testSummary: 'Security Type Summary'). tAppDict at: 'Account' put: (self testSummary: 'Account Proof'). ^tAppDict! testAccount "self testAccount" | anInstance | anInstance := self accountApplication. ^anInstance openInterface: #tableSpec.! testAllNew "self testAllNew" | tAppDict pTabList pMinorKeyList | tAppDict := Dictionary new. tAppDict at: 'Cross-Section' put: self crossSectionApps. tAppDict at: 'Summary' put: self summaryApps. tAppDict at: 'Proof' put: self proofApps. pTabList := List new. pTabList add: 'Grade'; add: 'Sector'; add: 'Security Type'; add: 'Account'. pMinorKeyList := List new. pMinorKeyList add: 'Cross-Section'; add: 'Summary'; add: 'Proof'. RiskConcentrationCrossTabView openForApplications: tAppDict tabs: pTabList minorKeys: pMinorKeyList titled: 'Portfolio Analysis'.! testGrade "self testGrade" | anInstance | anInstance := self gradeApplication. ^anInstance openInterface: #tableSpec.! testSector "self testSector" | anInstance | anInstance := self sectorApplication. ^anInstance openInterface: #tableSpec.! testSecurityType "self testSecurityType" | anInstance | anInstance := self securityTypeApplication. ^anInstance openInterface: #tableSpec.! testSummary: aString | tDialog tDict | tDialog := RiskConcentrationTableView new. tDialog windowTitle: 'Security Type Risk Portfolio Summary'. tDialog wordWrap: true. tDialog setDetails: aString. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #detailsSpec. tDict at: #Application put: tDialog. ^tDict! ! !RiskConcentrationPortfolioSummaryTableView class methodsFor: 'interface specs'! tableSpec "UIPainter new openOnClass: self andSelector: #tableSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Portfolio Cross-Section Analysis' #min: #(#Point 640 473 ) #max: #(#Point 793 561 ) #bounds: #(#Rectangle 246 427 1002 900 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #( #(#DividerSpec #layout: #(#Rectangle 791 2 1201 143 ) #name: #displayDivider4ID #orientation: #vertical ) #(#ComboBoxSpec #layout: #(#LayoutFrame 0 0.00793651 0 0.00211416 0 0.27381 0 0.0549683 ) #name: #accountGroupListID #model: #currentAccountGroupSymbol #tabable: false #type: #string #comboList: #accountGroupSymbolsList ) #(#ComboBoxSpec #layout: #(#LayoutFrame 0 0.716931 0 0.00422833 0 0.997354 0 0.0570825 ) #model: #valueToDisplay #tabable: false #comboList: #valueToDisplayChoices ) #(#LabelSpec #layout: #(#LayoutOrigin 0 0.625661 0 0.0211416 ) #label: 'Show Value' ) #(#SubCanvasSpec #layout: #(#LayoutFrame 0 0.15873 0 0.792812 0 0.956349 0 0.987315 ) #name: #portfolioViewID #flags: 0 #majorKey: #RiskConcentrationPortfolioView #minorKey: #keyedPortfolioWindowSpec #clientKey: #portfolioView ) #(#TableViewSpec #layout: #(#LayoutFrame 0 0.00396825 0 0.0613108 0 0.997354 0 0.84778 ) #name: #tableInterfaceID #model: #tableInterface #tabable: false #style: #'Target Default' #showHGrid: true #showVGrid: true ) #(#ActionButtonSpec #layout: #(#LayoutFrame 0 0.0132275 0 0.942918 0 0.0873016 0 0.985201 ) #name: #updatedataID #model: #updateData #tabable: false #label: 'Update' #defaultable: true ) ) ) )! ! Smalltalk.RiskConcentrationROIProofView class instanceVariableNames: ''! !RiskConcentrationROIProofView class methodsFor: 'interface specs'! tableSpec "UIPainter new openOnClass: self andSelector: #tableSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'ROI Proof View' #min: #(#Point 640 473 ) #max: #(#Point 793 561 ) #bounds: #(#Rectangle 295 527 1051 1000 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #( #(#DividerSpec #layout: #(#Rectangle 791 2 1201 143 ) #name: #displayDivider4ID #orientation: #vertical ) #(#LabelSpec #layout: #(#LayoutOrigin 0 0.625661 0 0.0211416 ) #label: 'Show Value' ) #(#ComboBoxSpec #layout: #(#LayoutFrame 0 0.146825 0 0.00211416 0 0.412698 0 0.0549683 ) #name: #accountGroupListID #model: #currentAccountGroupSymbol #tabable: false #type: #string #comboList: #accountGroupSymbolsList ) #(#ComboBoxSpec #layout: #(#LayoutFrame 0 0.716931 0 0.00422833 0 0.997354 0 0.0570825 ) #model: #valueToDisplay #tabable: false #comboList: #valueToDisplayChoices ) #(#TableViewSpec #layout: #(#LayoutFrame 0 0.00396825 0 0.0613108 0 0.997354 0 0.786469 ) #name: #tableInterfaceID #model: #tableInterface #tabable: false #style: #'Target Default' #showHGrid: true #showVGrid: true ) #(#ActionButtonSpec #layout: #(#LayoutFrame 0 0.546296 0 0.0190275 0 0.62037 0 0.0613108 ) #name: #updatedataID #model: #updateData #tabable: false #label: 'Update' #defaultable: true ) #(#RadioButtonSpec #layout: #(#Point 8 0 ) #model: #currentAccountGroupType #label: 'Account Groups' #select: #Group ) #(#RadioButtonSpec #layout: #(#Point 8 14 ) #model: #currentAccountGroupType #label: 'Accounts' #select: #Account ) #(#TextEditorSpec #layout: #(#LayoutFrame 0 0.00396825 0 0.788583 0 0.997354 0 1.0 ) #name: #detailsID #flags: 15 #model: #details #tabable: false #style: #'Target Default' #isReadOnly: true ) ) ) )! ! !RiskConcentrationROIProofView class methodsFor: 'instance creation'! roiProofAppsUsing: pDbAdmin | tDict tAppDict | tAppDict := Dictionary new. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: (self gradeApplicationUsing: pDbAdmin). tAppDict at: 'Grade' put: tDict. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: (self sectorApplicationUsing: pDbAdmin). tAppDict at: 'Sector' put: tDict. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: (self securityTypeApplicationUsing: pDbAdmin). tAppDict at: 'Security Type' put: tDict. tDict := IdentityDictionary new. tDict at: #WindowSpec put: #tableSpec. tDict at: #Application put: (self accountApplicationUsing: pDbAdmin). tAppDict at: 'Account' put: tDict. ^tAppDict! ! Smalltalk.RiskConcentrationTabView class instanceVariableNames: ''! !RiskConcentrationTabView class methodsFor: 'instance creation'! openForApplications: pAppList tabs: pTabList titled: pTitle | anInstance | anInstance := self new. anInstance title: pTitle. anInstance applicationDictionary: pAppList. anInstance applicationList: pTabList. ^anInstance open.! openOnDictionary: pDict titled: pTitle | anInstance | anInstance := self new. anInstance title: pTitle. anInstance applicationDictionary: pDict. ^anInstance open.! ! !RiskConcentrationTabView class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Risk Concentration Backup Tab' #min: #(#Point 640 480 ) #max: #(#Point 794 561 ) #bounds: #(#Rectangle 244 319 1038 880 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #( #(#DividerSpec #layout: #(#Rectangle 791 2 1201 143 ) #name: #displayDivider4ID #orientation: #vertical ) #(#ActionButtonSpec #layout: #(#LayoutFrame 0 0.021875 0 0.945833 0 0.109375 0 0.9875 ) #model: #closeRequest #tabable: false #label: 'Close' #defaultable: true ) #(#NoteBookSpec #layout: #(#LayoutFrame 0 0.00503778 0 0.00356506 0 1.06549 0 0.921569 ) #name: #noteBookID #model: #notebookTabs #binderWidth: 0 #majorTabsOnRight: false ) ) ) )! ! Smalltalk.RiskConcentrationCrossTabView class instanceVariableNames: ''! !RiskConcentrationCrossTabView class methodsFor: 'instance creation'! openForApplications: pAppList tabs: pTabList minorKeys: pMinorKeyList titled: pTitle | anInstance | anInstance := self new. anInstance title: pTitle. anInstance applicationDictionary: pAppList. anInstance applicationList: pTabList. anInstance minorKeys: pMinorKeyList. ^anInstance open.! ! !RiskConcentrationCrossTabView class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Risk Concentration Backup Tab' #min: #(#Point 640 480 ) #max: #(#Point 794 561 ) #bounds: #(#Rectangle 221 409 1015 970 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #( #(#DividerSpec #layout: #(#Rectangle 791 2 1201 143 ) #name: #displayDivider4ID #orientation: #vertical ) #(#ActionButtonSpec #layout: #(#LayoutFrame 0 0.021875 0 0.945833 0 0.109375 0 0.9875 ) #model: #closeRequest #tabable: false #label: 'Close' #defaultable: true ) #(#NoteBookSpec #layout: #(#LayoutFrame 0 0.00503778 0 0.00356506 0 1.0 0 0.921569 ) #name: #noteBookID #model: #notebookTabs #secondModel: #minorTabs #binderWidth: 0 #majorTabsOnRight: false ) ) ) )! ! UI.UISettings class instanceVariableNames: ''! !UI.UISettings class methodsFor: 'accessing preferences'! preferenceModelFor: aSubject put: aModel UserPreferences isNil ifTrue: [self initializeUserPreferences]. ^UserPreferences at: aSubject put: aModel! ! Tools.SimpleWorkspace class instanceVariableNames: ''! !Tools.SimpleWorkspace class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Workspace' #bounds: #(#{Graphics.Rectangle} 539 461 1077 821 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0 0 0.0 0 1.0 0 1.0 ) #name: #workspace #model: #workspace ) ) ) )! ! Tools.VisualLauncher class instanceVariableNames: ''! !Tools.VisualLauncher class methodsFor: 'class initialization'! applyEnvironmentColor | policy | policy := Screen default defaultPaintPreferences. EnvironmentColor ifNil: [Screen default updatePaintPreferences] ifNotNil: [(Array with: SymbolicPaint menuBarBackground with: SymbolicPaint menuBackground with: SymbolicPaint background) do: [:paint | policy matchAt: paint put: EnvironmentColor]]. WindowManager restoreAll! ! !Tools.VisualLauncher class methodsFor: 'resources'! bookIcon ^ToolbarIconLibrary visualFor: #noteBookWidget ifAbsent: [nil]! cubesIcon ^ToolbarIconLibrary visualFor: #namedFonts ifAbsent: [nil]! explorerIcon ^ToolbarIconLibrary visualFor: #exploreVisited ifAbsent: [nil]! globeIcon ^ToolbarIconLibrary visualFor: #globe ifAbsent: [nil]! homeIcon ^ToolbarIconLibrary visualFor: #home ifAbsent: [nil]! lightningIcon ^ToolbarIconLibrary visualFor: #doIt ifAbsent: [nil]! notepadIcon ^ToolbarIconLibrary visualFor: #workspace ifAbsent: [nil]! openBookIcon ^ToolbarIconLibrary visualFor: #toggleEvalPane ifAbsent: [nil]! squaresIcon ^ToolbarIconLibrary visualFor: #sendBackOne ifAbsent: [nil]! standardIcon ^Icon standardIcon! storeIcon ^ToolbarIconLibrary visualFor: #store ifAbsent: [nil]! ! Store.PublishPundleDialog class instanceVariableNames: ''! !Store.PublishPundleDialog class methodsFor: 'interface specs'! mainSpec "UIPainter new openOnClass: self andSelector: #mainSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Publish Pundles' #min: #(#{Core.Point} 331 321 ) #bounds: #(#{Graphics.Rectangle} 405 272 876 752 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.GroupBoxSpec} #layout: #(#{Graphics.LayoutFrame} 4 0 5 0 -4 1 -83 1 ) #label: 'Publish Bundles and Packages' ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 3 0 -41 1 -3 1 -39 1 ) ) #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 11 0 25 0 -11 1 -280 1 ) #name: #itemsList #flags: 15 #model: #items ) #(#{UI.CompositeSpecCollection} #collection: #( #(#{UI.CheckBoxSpec} #layout: #(#{Graphics.Rectangle} 0 0 90 25 ) #name: #binarySave #model: #binarySave #label: 'Publish Binary' ) #(#{UI.MenuButtonSpec} #layout: #(#{Graphics.LayoutFrame} 100 0 -25 1 0 1 0 1 ) #name: #blessingLevelButton #model: #blessingLevel #menu: #blessingLevelMenu ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0 -23 1 ) #label: 'Blessing level:' ) ) #compositeSpec: #(#{UI.CompositeSpec} #layout: #(#{Graphics.LayoutFrame} 11 0 -275 1 -11 1 -225 1 ) ) ) #(#{UI.CompositeSpecCollection} #collection: #( #(#{UI.LabelSpec} #layout: #(#{Core.Point} 0 0 ) #name: #bCommentLabel #label: 'Blessing comment:' ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 19 0 0 1 0 1 ) #name: #blessingComment #model: #blessingComment #tabRequiresControl: true ) ) #compositeSpec: #(#{UI.CompositeSpec} #layout: #(#{Graphics.LayoutFrame} 11 0 -220 1 -11 1 -90 1 ) ) ) #(#{UI.ActionButtonSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.25 -50 1 0.5 1 ) #model: #allBlessings #label: 'Set Global Blessing Level and Comment' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{UI.AlignmentOrigin} 10 0 -5 1 0 1 ) #model: #accept #label: 'Publish' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.5 -5 1 0.5 1 ) #model: #cancel #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{UI.AlignmentOrigin} -10 1 -5 1 1 1 ) #name: #helpAction #model: #helpAction #label: 'Help' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.75 -50 1 0.5 1 ) #model: #blessingsToBundle #label: 'Bring Blessing Levels up to Bundle''s' #defaultable: true ) ) ) )! ! Tools.FullSystemBrowser class instanceVariableNames: ''! !Tools.FullSystemBrowser class methodsFor: 'interface specs'! windowSpec ^self windowSpec4! windowSpec0 "UIPainter new openOnClass: self andSelector: #windowSpec0" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #windowLabel #bounds: #(#{Graphics.Rectangle} 379 45 1114 593 ) #flags: 4 #menu: #menuBar #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0 -1 1 -1 1 ) #name: #text #model: #text #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #textAccepted: ) #menu: #textMenu ) ) ) )! windowSpec1 "UIPainter new openOnClass: self andSelector: #windowSpec1" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #windowLabel #bounds: #(#{Graphics.Rectangle} 378 44 1115 593 ) #flags: 4 #menu: #menuBar #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 0.4 ) #flags: 0 #minorKey: #list1 #clientKey: #component1 ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0.4 -1 1 -1 1 ) #name: #text #model: #text #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #textAccepted: ) #menu: #textMenu ) ) ) )! windowSpec2 "UIPainter new openOnClass: self andSelector: #windowSpec2" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #windowLabel #bounds: #(#{Graphics.Rectangle} 378 44 1114 594 ) #flags: 4 #menu: #menuBar #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.5 0 0.4 ) #flags: 0 #minorKey: #list1 #clientKey: #component1 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0 0 1 0 0.4 ) #flags: 0 #minorKey: #list2 #clientKey: #component2 ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0.4 -1 1 -1 1 ) #name: #text #model: #text #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #textAccepted: ) #menu: #textMenu ) ) ) )! windowSpec3 "UIPainter new openOnClass: self andSelector: #windowSpec3" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #windowLabel #bounds: #(#{Graphics.Rectangle} 147 275 885 826 ) #flags: 4 #menu: #menuBar #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.333 0 0.4 ) #flags: 0 #minorKey: #list1 #clientKey: #component1 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.333 0 0 0 0.667 0 0.4 ) #flags: 0 #minorKey: #list2 #clientKey: #component2 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.667 0 0 0 1 0 0.4 ) #flags: 0 #minorKey: #list3 #clientKey: #component3 ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0.4 -1 1 -1 1 ) #name: #text #model: #text #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #textAccepted: ) #menu: #textMenu ) ) ) )! windowSpec4 "UIPainter new openOnClass: self andSelector: #windowSpec4" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #windowLabel #bounds: #(#{Graphics.Rectangle} 377 43 1113 592 ) #flags: 4 #menu: #menuBar #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.25 0 0.4 ) #flags: 0 #minorKey: #list1 #clientKey: #component1 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 0 0 0 0.5 0 0.4 ) #flags: 0 #minorKey: #list2 #clientKey: #component2 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0 0 0.75 0 0.4 ) #flags: 0 #minorKey: #list3 #clientKey: #component3 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 0 0 0 1 0 0.4 ) #flags: 0 #minorKey: #list4 #clientKey: #component4 ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0.4 -1 1 -1 1 ) #name: #text #model: #text #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #textAccepted: ) #menu: #textMenu ) ) ) )! windowSpec5 "UIPainter new openOnClass: self andSelector: #windowSpec5" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #windowLabel #bounds: #(#{Graphics.Rectangle} 377 43 1113 591 ) #flags: 4 #menu: #menuBar #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.2 0 0.4 ) #flags: 0 #minorKey: #list1 #clientKey: #component1 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.2 0 0 0 0.4 0 0.4 ) #flags: 0 #minorKey: #list2 #clientKey: #component2 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 0 0 0 0.6 0 0.4 ) #flags: 0 #minorKey: #list3 #clientKey: #component3 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.6 0 0 0 0.8 0 0.4 ) #flags: 0 #minorKey: #list4 #clientKey: #component4 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.8 0 0 0 1 0 0.4 ) #flags: 0 #minorKey: #list5 #clientKey: #component5 ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0.4 -1 1 -1 1 ) #name: #text #model: #text #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #textAccepted: ) #menu: #textMenu ) ) ) )! windowSpec6 "UIPainter new openOnClass: self andSelector: #windowSpec6" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #windowLabel #bounds: #(#{Graphics.Rectangle} 377 43 1115 593 ) #flags: 4 #menu: #menuBar #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.2 0 0.4 ) #flags: 0 #minorKey: #list1 #clientKey: #component1 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.2 0 0 0 0.4 0 0.4 ) #flags: 0 #minorKey: #list2 #clientKey: #component2 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 0 0 0 0.6 0 0.4 ) #flags: 0 #minorKey: #list3 #clientKey: #component3 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.6 0 0 0 0.8 0 0.4 ) #flags: 0 #minorKey: #list4 #clientKey: #component4 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.8 0 0 0 1 0 0.4 ) #flags: 0 #minorKey: #list5 #clientKey: #component5 ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0.4 -1 1 -1 1 ) #name: #text #model: #text #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #textAccepted: ) #menu: #textMenu ) ) ) )! ! Tools.FullNotebookSystemBrowser class instanceVariableNames: ''! !Tools.FullNotebookSystemBrowser class methodsFor: 'interface specs'! windowSpec5 "UIPainter new openOnClass: self andSelector: #windowSpec5" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #windowLabel #bounds: #(#{Graphics.Rectangle} 274 242 1011 790 ) #flags: 4 #menu: #menuBar #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0.4 -1 1 -1 1 ) #name: #text #model: #text #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #textAccepted: ) #menu: #textMenu ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.25 1 0 -1 0.5 -1 0.4 ) #name: #component1 #flags: 0 #minorKey: #list1 #clientKey: #component1 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.5 1 0 -1 0.75 -1 0.4 ) #name: #component2 #flags: 0 #minorKey: #list2 #clientKey: #component2 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.75 1 0 -1 1 -1 0.4 ) #name: #component3 #flags: 0 #minorKey: #list3 #clientKey: #component3 ) #(#{UI.ButtonTabNoteBookSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0 -1 0.25 -1 0.4 ) #name: #notebook #model: #majorTabs #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #changedMajorTab ) #binderWidth: 0 #majorTabsOnRight: false #rightInset: -19 #bottomInset: 7 ) ) ) )! ! Tools.TabApplicationSystemBrowser class instanceVariableNames: ''! !Tools.TabApplicationSystemBrowser class methodsFor: 'store-application configuration'! openOnOurPackages "self openOnPackages" self ardenHalt. ^self openOnPackagesWith: self defaultPackageTab! ! Smalltalk.FISImageCreatorVW76 class instanceVariableNames: 'LoadedImageList '! !FISImageCreatorVW76 class methodsFor: 'accessing'! loadedImageList LoadedImageList isNil ifTrue:[LoadedImageList := Dictionary new]. ^LoadedImageList! ! !FISImageCreatorVW76 class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'FIS Image Creator' #bounds: #(#{Graphics.Rectangle} 436 272 844 752 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0122549 0 0.075 0 0.990196 0 0.41875 ) #model: #imageSelectionInList #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #doubleClickSelector: #loadSelectedCategory ) #useModifierKeys: true #selectionType: #highlight ) #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0122549 0 0.497917 0 0.995098 0 0.89375 ) #model: #loadedImagesSelectionInList #useModifierKeys: true #selectionType: #highlight ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.0147059 0 0.0125 ) #label: 'Available Image Categories' ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.0147059 0 0.4375 ) #label: 'Loaded Image Categories' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0122549 0 0.916667 0 0.20098 0 0.975 ) #model: #resetLoadedImageList #label: 'Reset' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.205882 0 0.916667 0 0.428922 0 0.975 ) #model: #condenseChanges #label: 'Condense' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.767157 0 0.916667 0 0.990196 0 0.975 ) #name: #openImageMaker #flags: 40 #model: #openImageMaker #label: 'Image Maker' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.52451 0 0.916667 0 0.747549 0 0.975 ) #name: #unloadStore #model: #unloadStore #label: 'Unload Store' #defaultable: true ) ) ) )! ! !FISImageCreatorVW76 class methodsFor: 'reports'! imageAndFileinReport Transcript cr; show: self new imageAndFileinReport.! imageList "Return a list of the images that can be created" ^self new imageList! runtimeFileIn "save this as runtime.imr , use to configure runtime" "(ImageMaker current optionNamed: #lensToolsOption) elected: true!! (ImageMaker current optionNamed: #extrnToolsOption) elected: false!! (ImageMaker current optionNamed: #bgokToolsOption) elected: true!! (ImageMaker current optionNamed: #advToolsOption) elected: true!! (ImageMaker current optionNamed: #miscToolsOption) elected: true!! (ImageMaker current optionNamed: #uiToolsOption) elected: true!! (ImageMaker current optionNamed: #progOption) elected: true!! (ImageMaker current optionNamed: #compatOption) elected: true!! (ImageMaker current optionNamed: #headlessOption) elected: false!! (ImageMaker current optionNamed: #lensAppOption) elected: true!! (ImageMaker current optionNamed: #lensBaseOption) elected: true!! (ImageMaker current optionNamed: #exdiOption) elected: false!! (ImageMaker current optionNamed: #dsetViewOption) elected: false!! (ImageMaker current optionNamed: #ntbkViewOption) elected: false!! (ImageMaker current optionNamed: #tablViewOption) elected: false!! (ImageMaker current optionNamed: #os2LookOption) elected: true!! (ImageMaker current optionNamed: #macLookOption) elected: true!! (ImageMaker current optionNamed: #winLookOption) elected: false!! (ImageMaker current optionNamed: #printingOption) elected: false!! (ImageMaker current optionNamed: #bossOption) elected: false!! (ImageMaker current optionNamed: #loggingDeploymentNotifierOption) elected: true!! (ImageMaker current optionNamed: #xtrClassesOption) elected: false!! ImageMaker current additionalClasses: #() asOrderedCollection!!"! ! Tools.DataSetSpecColumnDetailsModel class instanceVariableNames: ''! !Tools.DataSetSpecColumnDetailsModel class methodsFor: 'resources'! fieldsDictionary | d | d := Dictionary new. d at: #all put: #(menu: choices: size: font: alignment: type: popUpStyle: cellLabel: formatString:). d at: #None put: #(font: alignment: type: formatString:). d at: #InputField put: #(menu: size: font: type: alignment: formatString:). d at: #ActionButton put: #(menu: size: font: type: alignment: formatString:). d at: #ComboBox put: #(menu: choices: size: font: alignment: popUpStyle: formatString: type: readSelector: printSelector:). d at: #CheckBox put: #(). ^d! ! Tools.DataSetSpecColumnModel class instanceVariableNames: ''! !Tools.DataSetSpecColumnModel class methodsFor: 'resources'! columnTypesMenu "MenuEditor new openOnClass: self andSelector: #columnTypesMenu" ^#(#{UI.Menu} #( #(#{UI.MenuItem} #rawLabel: 'Read Only' #value: #None ) #(#{UI.MenuItem} #rawLabel: 'Input Field' #value: #InputField ) #(#{UI.MenuItem} #rawLabel: 'Combo Box' #value: #ComboBox ) #(#{UI.MenuItem} #rawLabel: 'Check Box' #value: #CheckBox ) #(#{UI.MenuItem} #rawLabel: 'Row Button' #value: #rowButton ) #(#{UI.MenuItem} #rawLabel: 'Row Selector' #value: #rowSelector #hidden: true ) #(#{UI.MenuItem} #rawLabel: 'Action Button' #value: #ActionButton ) ) #(7 ) nil ) decodeAsLiteralArray! ! Tools.UIPalette class instanceVariableNames: 'selectIcon stickyIcon '! !Tools.UIPalette class methodsFor: 'private'! standardSpecsForPalette ^#(#ActionButtonSpec #CheckBoxSpec #RadioButtonSpec #LabelSpec #InputFieldSpec #TextEditorSpec #MenuButtonSpec #SequenceViewSpec #ComboBoxSpec #DividerSpec #GroupBoxSpec #RegionSpec #SliderSpec #TableViewSpec #DataSetSpec #NoteBookSpec #ArbitraryComponentSpec #SubCanvasSpec #SpinButtonSpec #MappedClickWidgetSpec #ButtonTabNoteBookSpec #HierarchicalViewSpec #ProgressWidgetSpec #FFISShadowFieldSpec)! ! Store.PublishedPundlesTool class instanceVariableNames: ''! !Store.PublishedPundlesTool class methodsFor: 'interface opening'! openOnBundles: bundleNames packages: packageNames windowTitle: winTitleString | updateBlock | updateBlock := [ | list | list := bundleNames asSortedCollection collect: [ :bname | Bundle new name: bname ]. list addAll: ( packageNames asSortedCollection collect: [ :pname | Package new name: pname ] ). list asList. ]. self openOnBlock: updateBlock sendUpdatesFor: #( ) menu: self publishedMenuBarSkeleton popup: self publishedPopupSkeleton windowTitle: winTitleString! ! Smalltalk.ParcelCreatorReleaseApp class instanceVariableNames: ''! !ParcelCreatorReleaseApp class methodsFor: 'interface specs'! windowSpec731 "Tools.UIPainter new openOnClass: self andSelector: #windowSpec731" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Release' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 0 0 ) #bounds: #(#{Graphics.Rectangle} 1280 512 1726 824 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 18 0 -5 1 -25 1 ) #name: #releaseKeysInList #model: #releaseKeysInList #multipleSelections: true #style: #system #selectionType: #checkMark ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 5 -2 ) #label: 'Release to :' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 -25 1 65 0 -2 1 ) #name: #okButton #model: #accept #tabable: false #label: 'OK' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 65 0 -25 1 130 0 -2 1 ) #name: #cancelButton #model: #cancel #tabable: false #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -248 1 -25 1 -187 1 -2 1 ) #name: #production731 #model: #production731 #tabable: false #label: 'Prod 731' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -186 1 -25 1 -125 1 -2 1 ) #name: #beta731 #model: #beta731 #tabable: false #label: 'Beta 731' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -62 1 -25 1 -1 1 -2 1 ) #name: #dev731 #model: #dev731 #tabable: false #label: 'Dev 731' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -310 1 -25 1 -249 1 -2 1 ) #name: #all731 #model: #all731 #tabable: false #label: 'All 731' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -124 1 -25 1 -63 1 -2 1 ) #name: #alpha731 #model: #alpha731 #tabable: false #label: 'Alpha 7.3.1' #defaultable: true ) ) ) )! windowSpec741 "Tools.UIPainter new openOnClass: self andSelector: #windowSpec741" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Release' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 0 0 ) #bounds: #(#{Graphics.Rectangle} 1280 512 1726 824 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 18 0 -5 1 -25 1 ) #name: #releaseKeysInList #model: #releaseKeysInList #multipleSelections: true #style: #system #selectionType: #checkMark ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 5 -2 ) #label: 'Release to :' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 -25 1 65 0 -2 1 ) #name: #okButton #model: #accept #tabable: false #label: 'OK' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 65 0 -25 1 130 0 -2 1 ) #name: #cancelButton #model: #cancel #tabable: false #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -186 1 -25 1 -125 1 -2 1 ) #name: #beta741 #model: #beta741 #tabable: false #label: 'Beta 7.4.1' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -124 1 -25 1 -63 1 -2 1 ) #name: #alpha741 #model: #alpha741 #tabable: false #label: 'Alpha 7.4.1' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -248 1 -25 1 -187 1 -2 1 ) #name: #prod741 #model: #prod741 #tabable: false #label: 'Prod 7.4.1' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -310 1 -25 1 -249 1 -2 1 ) #name: #all741 #model: #all741 #tabable: false #label: 'All 7.4.1' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -62 1 -25 1 -1 1 -2 1 ) #name: #dev741 #model: #dev741 #tabable: false #label: 'Dev 7.4.1' #defaultable: true ) ) ) )! windowSpec75 "Tools.UIPainter new openOnClass: self andSelector: #windowSpec75" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Release' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 0 0 ) #bounds: #(#{Graphics.Rectangle} 1920 512 2366 824 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 18 0 -5 1 -25 1 ) #name: #releaseKeysInList #model: #releaseKeysInList #multipleSelections: true #style: #system #selectionType: #checkMark ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 5 -2 ) #label: 'Release to :' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 -25 1 65 0 -2 1 ) #name: #okButton #model: #accept #tabable: false #label: 'OK' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 65 0 -25 1 130 0 -2 1 ) #name: #cancelButton #model: #cancel #tabable: false #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -186 1 -25 1 -125 1 -2 1 ) #name: #beta75 #model: #beta75 #tabable: false #label: 'Beta 7.5' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -124 1 -25 1 -63 1 -2 1 ) #name: #alpha75 #model: #alpha75 #tabable: false #label: 'Alpha 7.5' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -248 1 -25 1 -187 1 -2 1 ) #name: #prod75 #model: #prod75 #tabable: false #label: 'Prod 7.5' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -310 1 -25 1 -249 1 -2 1 ) #name: #all75 #model: #all75 #tabable: false #label: 'All 7.5' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -62 1 -25 1 -1 1 -2 1 ) #name: #dev75 #model: #dev75 #tabable: false #label: 'Dev 7.5' #defaultable: true ) ) ) )! windowSpec76 "Tools.UIPainter new openOnClass: self andSelector: #windowSpec76" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Release' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 0 0 ) #bounds: #(#{Graphics.Rectangle} 835 822 1281 1134 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 18 0 -5 1 -25 1 ) #name: #releaseKeysInList #model: #releaseKeysInList #multipleSelections: true #style: #system #selectionType: #checkMark ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 5 -2 ) #label: 'Release to :' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 -25 1 65 0 -2 1 ) #name: #okButton #model: #accept #tabable: false #label: 'OK' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 65 0 -25 1 130 0 -2 1 ) #name: #cancelButton #model: #cancel #tabable: false #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -186 1 -25 1 -125 1 -2 1 ) #name: #beta76 #model: #beta76 #tabable: false #label: 'Beta 7.6' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -124 1 -25 1 -63 1 -2 1 ) #name: #alpha76 #model: #alpha76 #tabable: false #label: 'Alpha 7.6' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -248 1 -25 1 -187 1 -2 1 ) #name: #prod76 #model: #prod76 #tabable: false #label: 'Prod 7.6' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -310 1 -25 1 -249 1 -2 1 ) #name: #all76 #model: #all76 #tabable: false #label: 'All 7.6' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -62 1 -25 1 -1 1 -2 1 ) #name: #dev76 #model: #dev76 #tabable: false #label: 'Dev 7.6' #defaultable: true ) ) ) )! ! !ParcelCreatorReleaseApp class methodsFor: 'instance creation'! newWith: choiceList | app | app := self new. app releaseKeysInList list: choiceList. "app releaseKeysInList selectionIndexHolder compute:[:selections | app value: app releaseKeysInList selections ]." ^app! ! Smalltalk.DeveloperToolApp class instanceVariableNames: ''! !DeveloperToolApp class methodsFor: 'resources'! blocksIcon "UIMaskEditor new openOnClass: self andSelector: #blocksIcon" ^CachedImage on: (Image extent: 32@32 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 6) at: 1 put: Graphics.ColorValue white; at: 2 put: (Graphics.ColorValue scaledRed: 5460 scaledGreen: 5460 scaledBlue: 5460); at: 3 put: Graphics.ColorValue magenta; at: 4 put: Graphics.ColorValue red; at: 5 put: Graphics.ColorValue green; at: 6 put: Graphics.ColorValue blue; yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QDQDQDQDQDQDQDQDQ@@@@DQDQDQDQDQDQDQDQDP@@@AD3L1D@@AEDQAD@@AD@@@@QL3LQ@@@QQDPQ@@@Q@@@@DSL3DP@@DTQDDP@@DP@@@AD3L1D@@AEDQAD@@AD@@@@QDQDQDQDQDQDQDQDQ@@@@DQDQDQDQDQDQDQDQDP@@@AD@@AD@@AD@@AD"H!!D@@@@Q@@@Q@@@Q@@@QH"HQ@@@@DP@@DP@@DP@@DRH"DP@@@AD@@AD@@AD@@AD"H!!D@@@@QDQDQDQDQDQDQDQDQ@@@@DQDQDQDQDQDQDQDQDP@@@AD@@AEUUQD@@AD@@AD@@@@Q@@@QUUTQ@@@Q@@@Q@@@@DP@@DUUUDP@@DP@@DP@@@AD@@AEUUQD@@AD@@AD@@@@QDQDQDQDQDQDQDQDQ@@@@DQDQDQDQDQDQDQDQDP@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b'))! blueIcon "UIMaskEditor new openOnClass: self andSelector: #blueIcon" ^CachedImage on: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 2) at: 1 put: Graphics.ColorValue blue; at: 2 put: Graphics.ColorValue white; yourself)) usingBits: #[255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 127 255 255 254 63 255 255 252 31 255 255 248 15 255 255 240 7 255 255 224 3 255 255 192 1 255 255 128 0 255 255 0 0 127 255 128 0 255 255 192 1 255 255 224 3 255 255 240 7 255 255 248 15 255 255 252 31 255 255 254 63 255 255 255 127 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255])! bookIcon ^ToolbarIconLibrary visualFor: #noteBookWidget ifAbsent: [nil]! browseClassIcon ^ToolbarIconLibrary visualFor: #findClass! browseImplementorsIcon ^ToolbarIconLibrary visualFor: #selectorImplementors! browseSendersIcon ^ToolbarIconLibrary visualFor: #selectorReferences! browseSystemIcon ^ToolbarIconLibrary visualFor: #systemBrowser! cardfile ^ToolbarIconLibrary visualFor: #cardfile! cubesIcon ^ToolbarIconLibrary visualFor: #namedFonts ifAbsent: [nil]! defaultIconMask "UIMaskEditor new openOnClass: self andSelector: #defaultIconMask" ^CachedImage on: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255])! defaultRedIcon "UIMaskEditor new openOnClass: self andSelector: #defaultRedIcon" ^CachedImage on: (Image extent: 32@32 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 6) at: 1 put: Graphics.ColorValue black; at: 2 put: Graphics.ColorValue white; at: 3 put: Graphics.ColorValue magenta; at: 4 put: Graphics.ColorValue cyan; at: 5 put: Graphics.ColorValue green; at: 6 put: Graphics.ColorValue red; yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@AED@@@@@@@@@@@@@@@@@QDQQD@@@@@@@@@@@@@AEDDQDTQD@@@@@@@@@@@QDQQADQEDQD@@@@@@@@@ADQDTDQDQQDQ@@@@@@@@@@QDQQADQD$QDPC@@@@@@@@DQDTPRH"H$PQL3@@@@@@@ADQQDH"URHQDSL3@@@@@@DRH"QEUUUADQD3L3@@@@@BH"H$UUUUPQDQL3L3@@@@@!!DQP3MUUTDQDSL3LQ@@@@DQDTL3MUPQDUT3L3DS@@@QDQECL3MTUUUUT3L1D3@@DQDQP3L3QEUUD5T3LSL3@ADQEDMDQDPQDQL5T1D3L3DQH"IDQDP1DQDSL5TSL3L1H"H"PQDSLQDQD3L5D3L3L"H"H!!DQD3DQDQL3LQT3L3@"H"HQDQL1DQUSL3DUT3L0@"H!!DQDSMUUUUSL1L5T3@@@"HQDQESMUUUUSLSL5T0@@@@DQUUUSUUUUUQD3L5@@@@@EUUUUT5UUUUDSL3L0@@@@AUUUUUT5UUDQD3L3L@@@@@AUUUUUT5DQUUUSL3@@@@@@AUUUDQDQUUUUUSL@@@@@@@AQDQEUT5UUUUUS@@@@@@@@@UUUUUT5UUUUUP@@@@@@@@AUUUUUL5UUUU@@@@@@@@@@AUUUUUL5UU@@@@@@@@@@@@AUUUUU@@@@@@@@@@@@@@@@AUUP@@@@@@@@@b'))! explorerIcon ^ToolbarIconLibrary visualFor: #exploreVisited ifAbsent: [nil]! fileBrowser ^ToolbarIconLibrary visualFor: #fileBrowser! fileExit20x20 "UIMaskEditor new openOnClass: self andSelector: #fileExit20x20" ^CachedImage on: (Image extent: 20@20 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 8) at: 1 put: Graphics.ColorValue black; at: 2 put: (Graphics.ColorValue scaledRed: 6874 scaledGreen: 6874 scaledBlue: 6874); at: 3 put: (Graphics.ColorValue scaledRed: 2120 scaledGreen: 2120 scaledBlue: 2120); at: 4 put: (Graphics.ColorValue scaledRed: 3180 scaledGreen: 3180 scaledBlue: 3180); at: 5 put: (Graphics.ColorValue scaledRed: 5557 scaledGreen: 7387 scaledBlue: 7934); at: 6 put: Graphics.ColorValue white; at: 7 put: (Graphics.ColorValue scaledRed: 5557 scaledGreen: 5557 scaledBlue: 5557); at: 8 put: Graphics.ColorValue red; yourself)) usingBits: (ByteArray fromPackedString: 'UUUUUUUUUUUUUP@@UUUUUUUUUUUUUP@@UUUUUUUUUUUUUP@@UUH"@@@@@@UUUP@@UUHQD@A&XFAUUP@@UUHVX@A&XFXEUP@@UUHVX@A&XFXEUP@@UUHVX@@@A&XEUP@@UUHVY&Y&Y&XEUP@@UUHVL3L3L6XEUP@@UUHSUUUUUCXEUP@@UUHSUUUW]SXEUP@@UUHSUUU7]3XEUP@@UUHSUUUG]7XEUP@@UUHSUUQT]7\EU0@@UUHSUTUDQ7]5]0@@UU@@@@@@@G]7]0@@UUUUUUUUUU]7]0@@UUUUUUUUUU]7]0@@UUUUUUUUUW]7]0@@'))! globeIcon ^ToolbarIconLibrary visualFor: #globe ifAbsent: [nil]! graphIcon "UIMaskEditor new openOnClass: self andSelector: #graphIcon" ^CachedImage on: (Image extent: 32@32 depth: 4 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 9) at: 1 put: Graphics.ColorValue black; at: 2 put: Graphics.ColorValue white; at: 3 put: (Graphics.ColorValue scaledRed: 5460 scaledGreen: 5460 scaledBlue: 5460); at: 4 put: (Graphics.ColorValue scaledRed: 4111 scaledGreen: 4111 scaledBlue: 4111); at: 5 put: (Graphics.ColorValue scaledRed: 0 scaledGreen: 4111 scaledBlue: 4111); at: 6 put: Graphics.ColorValue cyan; at: 7 put: (Graphics.ColorValue scaledRed: 0 scaledGreen: 0 scaledBlue: 4111); at: 8 put: (Graphics.ColorValue scaledRed: 0 scaledGreen: 4111 scaledBlue: 0); at: 9 put: (Graphics.ColorValue scaledRed: 4111 scaledGreen: 0 scaledBlue: 0); yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@@@@@@@@@@@@DQDQDQDQDQDQDQDQDQDS@AH"H"H"H"H"H"H"H"H"H0@RH"H"H"H"H"H"H"H"H"L@D @@@@@@@@@@@@@@@@@#@AHADQDQDQDQDQDQDQDPH0@R@QDQDQDQDQDVE1 TDBL@D DQDQDQDQDQE!!\XEQ@#@AHADQDQDQDQDQ@@@@@PH0@R@QDQDQDQDQDQDQDQDBL@D DQDQDQDQDQDQDQDQ@#@AHADQDQDQDQDQDQDQDPH0@R@@E&Y!!DQDQDQDQDQDBL@D DQY&XQDQDQDQDQDQ@#@AHADVY&DQDQDQDTQDDPH0@R@QE&Y!!DQDQDQEDQADBL@D @AY&XW]7DQDQQDPQ@#@AHADVY&E7]1DQDTQDDPH0@R@QE&Y!!]7\QDQEDQADBL@D DQY&XW]7DQDQQDPQ@#@AH@@VY&E7]1"H TQDDPH0@R@QE&Y!!]7\X"HEDQADBL@D DQY&XW]7FH"AQDPQ@#@AHADVY&E7]1"H TQDDPH0@R@@E&Y!!]7\X"HEDQADBL@D DQY&XW]7FH"AQDPQ@#@AHADVY&E7]1"H TQDDPH0@R@QE&Y!!]7\X"HEDQADBL@D @@@@@@@@@@@@@@@@@#@AH"H"H"H"H"H"H"H"H"H0@3L3L3L3L3L3L3L3L3L3L@@@@@@@@@@@@@@@@@@@@@@b'))! greenLinesIcon "UIMaskEditor new openOnClass: self andSelector: #greenLinesIcon" ^CachedImage on: (Image extent: 32@32 depth: 2 bitsPerPixel: 2 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 3) at: 1 put: (Graphics.ColorValue scaledRed: 5460 scaledGreen: 5460 scaledBlue: 5460); at: 2 put: Graphics.ColorValue black; at: 3 put: (Graphics.ColorValue scaledRed: 0 scaledGreen: 4111 scaledBlue: 0); yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B*******@@@J******(@@@@@@@@@@@@@@@@@@@@@@@@J******(@@@******* @@@@@@@@@@@@@@@@@@@@@@@@******* @@B*******@@@@@@@@@@@@@@@@@@@@@@@@AUUUUUUU@@@EUUUUUUT@@@@@@@@@@@@@@@@@@@@@@@@J******(@@@******* @@@@@@@@@@@@@@@@@@@@@@@@******* @@B*******@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a'))! homeIcon ^ToolbarIconLibrary visualFor: #home ifAbsent: [nil]! launcherToolBar "Tools.MenuEditor new openOnClass: self andSelector: #launcherToolBar" ^#(#{UI.Menu} #( #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #saveImage #defaultString: 'Save image' ) #value: #imageSave #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #fileSave ) #helpText: 'Save Image' ) #(#{UI.MenuItem} #rawLabel: 'Save and Exit' #nameKey: #fileExit #value: #fileExit #labelImage: #(#{UI.ResourceRetriever} #{DeveloperToolApp} #fileExit20x20 ) #helpText: 'Exit' ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #browseSystem #defaultString: 'Browse system' ) #nameKey: #systemButton #value: #browseSystem #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #systemBrowser ) #helpText: 'System Browser' ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #browseClasses #defaultString: 'Browse classes' ) #nameKey: #classesButton #value: #browseAllNamespacesNoTabs #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #classBrowser ) #helpText: 'Class Browser' ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #browseParcels #defaultString: 'Browse parcels' ) #nameKey: #parcelsButton #value: #browseAllParcelsAndNamespaces #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #parcelBrowser ) #helpText: 'Parcel Browser' ) #(#{UI.MenuItem} #rawLabel: 'Change List' #nameKey: #changesOpenChangeList #value: #changesOpenChangeList #labelImage: #(#{UI.ResourceRetriever} #{DeveloperToolApp} #changesBrowser20x20 ) #helpText: 'Change List' ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #fileBrowser #defaultString: 'File list' ) #nameKey: #filesButton #value: #openFileList #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #fileFinder ) #helpText: 'File List' ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #workspace #defaultString: 'Workspace' ) #value: #toolsNewWorkspace #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #workspace ) #helpText: 'New Workspace' ) ) #(2 3 1 2 ) nil ) decodeAsLiteralArray! lightningIcon ^ToolbarIconLibrary visualFor: #doIt ifAbsent: [nil]! notebookIcon "UIMaskEditor new openOnClass: self andSelector: #notebookIcon" ^CachedImage on: (Image extent: 32@32 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 6) at: 1 put: Graphics.ColorValue black; at: 2 put: Graphics.ColorValue white; at: 3 put: (Graphics.ColorValue scaledRed: 5460 scaledGreen: 5460 scaledBlue: 5460); at: 4 put: (Graphics.ColorValue scaledRed: 4111 scaledGreen: 4111 scaledBlue: 4111); at: 5 put: Graphics.ColorValue cyan; at: 6 put: Graphics.ColorValue blue; yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@@@@@@@@@@@@DQDQDQDQDQDQDQDQDQDS@AH"H"H"H"H"H"H"H"H"H0@RH"H"H"H"H"H"H"H"H"L@D"@@@@@@@@@@@@@@@@H#@AH MUUUUUUUUUUUUULBH0@RHCUUUUUUUUUUUUUS@"L@D"@4QDQDQDQDQDQDP0H#@AH MDQDQDQDQDQDQDLBH0@RHCL3L3L3L3L3L3L3@"L@D"@@@@@@@@@@@@@@@@H#@AH DQDQDQDQDQDQDQDBH0@RHADQDQDQDQDQDQDQ@"L@D"@P@@@@DP@@@@@@DPH#@AH DEUUTADQDQDQDQDBH0@RHAAUUU@Q@@@@@@@Q@"L@D"@PUUUPDQDQDQDQDPH#@AH DEUUTAD@@@@@@ADBH0@RHAAUUU@QDQDQDQDQ@"L@D"@P@@@@DP@@@@@@DPH#@AH DQDQDQDQDQDQDQDBH0@RH@@@@@@@@@@@@@@@@"L@D"@2H"H"H"H"H"H"H0H#@AH L"H"H"H"H"H"H"LBH0@RHCUUUUUUUUUUUUUS@"L@D"@5UUUUUUUUUUUUT0H#@AH MDQDQDQDQDQDQDLBH0@RH@@@@@@@@@@@@@@@@"L@D"H"H"H"H"H"H"H"H"H#@AH"H"H"H"H"H"H"H"H"H0@3L3L3L3L3L3L3L3L3L3L@@@@@@@@@@@@@@@@@@@@@@b'))! notepadIcon ^ToolbarIconLibrary visualFor: #workspace ifAbsent: [nil]! openBookIcon ^ToolbarIconLibrary visualFor: #toggleEvalPane ifAbsent: [nil]! properties ^ToolbarIconLibrary visualFor: #properties! redIcon "UIMaskEditor new openOnClass: self andSelector: #redIcon" ^CachedImage on: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 2) at: 1 put: Graphics.ColorValue red; at: 2 put: Graphics.ColorValue white; yourself)) usingBits: #[255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 127 255 255 254 63 255 255 252 31 255 255 248 15 255 255 240 7 255 255 224 3 255 255 192 1 255 255 128 0 255 255 0 0 127 255 128 0 255 255 192 1 255 255 224 3 255 255 240 7 255 255 248 15 255 255 252 31 255 255 254 63 255 255 255 127 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255])! squaresIcon ^ToolbarIconLibrary visualFor: #sendBackOne ifAbsent: [nil]! standardIcon ^Icon standardIcon! storeIcon ^ToolbarIconLibrary visualFor: #store ifAbsent: [nil]! yellowIcon "UIMaskEditor new openOnClass: self andSelector: #yellowIcon" ^CachedImage on: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 2) at: 1 put: Graphics.ColorValue yellow; at: 2 put: Graphics.ColorValue white; yourself)) usingBits: #[255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 127 255 255 254 63 255 255 252 31 255 255 248 15 255 255 240 7 255 255 224 3 255 255 192 1 255 255 128 0 255 255 0 0 127 255 128 0 255 255 192 1 255 255 224 3 255 255 240 7 255 255 248 15 255 255 252 31 255 255 254 63 255 255 255 127 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255])! ! !DeveloperToolApp class methodsFor: 'interface specs'! checkBoxSpec "UIPainter new openOnClass: self andSelector: #checkBoxSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Parcel Creator' #bounds: #(#{Graphics.Rectangle} 452 439 828 499 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.CheckBoxSpec} #layout: #(#{Core.Point} 3 -2 ) #model: #pluginParcel #label: 'Plug-in Parcel' ) #(#{UI.CheckBoxSpec} #layout: #(#{Core.Point} 108 -2 ) #model: #includeSourcecode #label: 'Include Source' ) #(#{UI.CheckBoxSpec} #layout: #(#{Core.Point} 212 -2 ) #model: #allowUnpublished #label: 'Allow Unpublished' ) ) ) )! optionsSpec "Tools.UIPainter new openOnClass: self andSelector: #optionsSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Parcel Creator' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 1920 512 2389 648 ) #menu: #mainMenuHolder #toolBar: #toolbarHolder #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 49 0 0 0.200426 74 0 ) #name: #windowNewLauncher #model: #windowNewLauncher #tabable: false #label: 'Visual Launcher' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.200426 49 0 0 0.400853 74 0 ) #name: #refreshParcelList #model: #refreshParcelList #tabable: false #label: 'Refresh' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 73 0 0 0.200426 98 0 ) #name: #createParcel #model: #createParcel #tabable: false #label: 'Create' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.200426 73 0 0 0.400853 98 0 ) #name: #checkreferences #model: #checkreferences #tabable: false #label: 'Check References' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.599147 73 0 0 0.799573 98 0 ) #name: #releaseParcel #model: #releaseParcel #tabable: false #label: 'Release' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 25 0 0 0.200426 50 0 ) #name: #browseOurPackages #model: #browseOurPackages #tabable: false #label: 'Our Pkgs' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.200426 25 0 0 0.400853 50 0 ) #name: #openRecentPublishedItems #model: #openRecentPublishedItems #tabable: false #label: 'More Recent' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.400853 25 0 0 0.599147 50 0 ) #name: #alphaSweep #model: #alphaSweep #tabable: false #label: 'Sweep Alpha' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.599147 25 0 0 0.799573 50 0 ) #name: #betaSweep #model: #betaSweep #tabable: false #label: 'Sweep Beta' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.599147 49 0 0 0.799573 74 0 ) #name: #openPublishedItems #model: #openPublishedItems #tabable: false #label: 'Published' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.6 1 0 0 0.8 26 0 ) #name: #collectAllGarbage #model: #collectAllGarbage #tabable: false #label: 'Garbage' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 1 0 0 0.2 26 0 ) #name: #browseClassNamed #model: #browseClassNamed #tabable: false #label: 'Browse Class' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.2 1 0 0 0.4 26 0 ) #name: #browseImplementorsOf #model: #browseImplementorsOf #tabable: false #label: 'Implementors' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.8 1 0 0 1 26 0 ) #name: #toggleShowSQL #model: #toggleShowSQL #tabable: false #label: 'Show SQL' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 1 0 0 0.6 26 0 ) #name: #browseSendersOf #model: #browseSendersOf #tabable: false #label: 'Senders' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.799573 73 0 0 1.0 98 0 ) #name: #launchTargetII #model: #launchTargetII #tabable: false #label: 'Target' #defaultable: true ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -15 1 -1 1 0 1 ) #name: #checkBoxSpec #flags: 0 #majorKey: #{DeveloperToolApp} #minorKey: #checkBoxSpec ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.400853 49 0 0 0.599147 74 0 ) #name: #browseBundle #model: #browseBundle #tabable: false #label: 'Browse Bundle' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.799573 25 0 0 1.0 50 0 ) #name: #productionSweep #model: #productionSweep #tabable: false #label: 'Sweep Prod' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.799573 49 0 0 1.0 74 0 ) #name: #recoverChangesButton #model: #recoverChanges #tabable: false #label: 'Recover' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.400853 73 0 0 0.599147 98 0 ) #name: #openProcessMonitorButton #model: #openProcessMonitor #tabable: false #label: 'Process Monitor' #defaultable: true ) ) ) )! transcriptSpec "UIPainter new openOnClass: self andSelector: #transcriptSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #title #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 394 443 886 582 ) #menu: #newMenuBar ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ArbitraryComponentSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0 -1 1 -1 1 ) #name: #textViewID #flags: 9 #component: #textView ) ) ) )! windowSpec "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Parcel Creator' #bounds: #(#{Graphics.Rectangle} 1920 512 2551 967 ) #flags: 4 #menu: #menuHolder #toolBar: #toolbarHolder #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -133 1 0 0.25 0 1 ) #name: #parcelList #model: #bundlesInList #multipleSelections: false #style: #system #selectionType: #highlight ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 -139 1 ) #name: #transcriptSpec #flags: 0 #majorKey: #{DeveloperToolApp} #minorKey: #transcriptSpec ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.25 -133 1 0 1 0 1 ) #name: #optionsSpec #majorKey: #{DeveloperToolApp} #minorKey: #optionsSpec ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 -133 1 3 0.25 0 1 ) #name: #ResizingSplitter2 #flags: 8 #horizontal: false #minAboveSize: 5 #minBelowSize: 5 #aboveWidgets: 'parcelList' #belowWidgets: 'optionsSpec' ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -138 1 0 1 -133 1 ) #name: #ResizingSplitter1 #flags: 8 #horizontal: true #minAboveSize: 5 #minBelowSize: 5 #aboveWidgets: 'transcriptSpec' #belowWidgets: 'optionsSpec parcelList ResizingSplitter2' ) ) ) )! ! !DeveloperToolApp class methodsFor: 'class initialization'! applyEnvironmentColor | policy | policy := Screen default defaultPaintPreferences. EnvironmentColor ifNil: [Screen default updatePaintPreferences] ifNotNil: [(Array with: SymbolicPaint menuBarBackground with: SymbolicPaint menuBackground with: SymbolicPaint background) do: [:paint | policy matchAt: paint put: EnvironmentColor]]. WindowManager restoreAll! ! !DeveloperToolApp class methodsFor: 'toolbar'! changesBrowser20x20 "UIMaskEditor new openOnClass: self andSelector: #cpokBrowser20x20" ^CachedImage on: (Image extent: 20@20 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 6) at: 1 put: Graphics.ColorValue black; at: 2 put: (Graphics.ColorValue scaledRed: 4227 scaledGreen: 4227 scaledBlue: 8191); at: 3 put: (Graphics.ColorValue scaledRed: 6869 scaledGreen: 6869 scaledBlue: 6869); at: 4 put: (Graphics.ColorValue scaledRed: 4491 scaledGreen: 6077 scaledBlue: 6605); at: 5 put: Graphics.ColorValue white; at: 6 put: (Graphics.ColorValue scaledRed: 2113 scaledGreen: 2113 scaledBlue: 2113); yourself)) usingBits: (ByteArray fromPackedString: 'QDQDQDQDQDQDQ@@@QDQEUUUDQDQDQ@@@QDQTDQDDQDQDQ@@@QDUA@@DPQDQDQ@@@QEPPQD@@QDQDQ@@@QEDDQDQDQDQDQ@@@QEDDQDQDQDQDQ@@@QEDDQDQDQDQDQ@@@QEDPQDUUQDQDQ@@@QD@QUUPPQDQDQ@@@QDPADQDDQDQDA@@@QDQ@@@ADQDQ@P@@@Q@@DQDP@ADPDP@@@PCL0QD@3LDADQ@@@@4P3@@MDL0QDQ@@@@4L3A@MCL0QDQ@@@@3L2A@L3L QDQ@@@PCL QD@3HDQDQ@@@Q@@DQDP@ADQDQ@@@QDQDQDQDQDQDQ@@@'))! ! Smalltalk.FISMemoryApplication class instanceVariableNames: ''! !FISMemoryApplication class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'FIS Memory Tool' #bounds: #(#{Graphics.Rectangle} 372 280 909 744 ) #flags: 4 #menu: #mainMenuHolder #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 6553 6553 6553 ) ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.00372439 0 0.0870536 0 0.994413 0 0.986607 ) #model: #details ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 4 22 ) #label: 'Output' ) ) ) )! ! Smalltalk.DevApp class instanceVariableNames: ''! !DevApp class methodsFor: 'resources'! blocksIcon "UIMaskEditor new openOnClass: self andSelector: #blocksIcon" ^CachedImage on: (Image extent: 32@32 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 6) at: 1 put: Graphics.ColorValue white; at: 2 put: (Graphics.ColorValue scaledRed: 5460 scaledGreen: 5460 scaledBlue: 5460); at: 3 put: Graphics.ColorValue magenta; at: 4 put: Graphics.ColorValue red; at: 5 put: Graphics.ColorValue green; at: 6 put: Graphics.ColorValue blue; yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QDQDQDQDQDQDQDQDQ@@@@DQDQDQDQDQDQDQDQDP@@@AD3L1D@@AEDQAD@@AD@@@@QL3LQ@@@QQDPQ@@@Q@@@@DSL3DP@@DTQDDP@@DP@@@AD3L1D@@AEDQAD@@AD@@@@QDQDQDQDQDQDQDQDQ@@@@DQDQDQDQDQDQDQDQDP@@@AD@@AD@@AD@@AD"H!!D@@@@Q@@@Q@@@Q@@@QH"HQ@@@@DP@@DP@@DP@@DRH"DP@@@AD@@AD@@AD@@AD"H!!D@@@@QDQDQDQDQDQDQDQDQ@@@@DQDQDQDQDQDQDQDQDP@@@AD@@AEUUQD@@AD@@AD@@@@Q@@@QUUTQ@@@Q@@@Q@@@@DP@@DUUUDP@@DP@@DP@@@AD@@AEUUQD@@AD@@AD@@@@QDQDQDQDQDQDQDQDQ@@@@DQDQDQDQDQDQDQDQDP@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b'))! blueIcon "UIMaskEditor new openOnClass: self andSelector: #blueIcon" ^CachedImage on: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 2) at: 1 put: Graphics.ColorValue blue; at: 2 put: Graphics.ColorValue white; yourself)) usingBits: #[255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 127 255 255 254 63 255 255 252 31 255 255 248 15 255 255 240 7 255 255 224 3 255 255 192 1 255 255 128 0 255 255 0 0 127 255 128 0 255 255 192 1 255 255 224 3 255 255 240 7 255 255 248 15 255 255 252 31 255 255 254 63 255 255 255 127 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255])! bookIcon ^ToolbarIconLibrary visualFor: #noteBookWidget ifAbsent: [nil]! browseClassIcon ^ToolbarIconLibrary visualFor: #findClass! browseImplementorsIcon ^ToolbarIconLibrary visualFor: #selectorImplementors! browseSendersIcon ^ToolbarIconLibrary visualFor: #selectorReferences! browseSystemIcon ^ToolbarIconLibrary visualFor: #systemBrowser! cardfile ^ToolbarIconLibrary visualFor: #cardfile! cubesIcon ^ToolbarIconLibrary visualFor: #namedFonts ifAbsent: [nil]! defaultIconMask "UIMaskEditor new openOnClass: self andSelector: #defaultIconMask" ^CachedImage on: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255])! defaultRedIcon "UIMaskEditor new openOnClass: self andSelector: #defaultRedIcon" ^CachedImage on: (Image extent: 32@32 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 6) at: 1 put: Graphics.ColorValue black; at: 2 put: Graphics.ColorValue white; at: 3 put: Graphics.ColorValue magenta; at: 4 put: Graphics.ColorValue cyan; at: 5 put: Graphics.ColorValue green; at: 6 put: Graphics.ColorValue red; yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@AED@@@@@@@@@@@@@@@@@QDQQD@@@@@@@@@@@@@AEDDQDTQD@@@@@@@@@@@QDQQADQEDQD@@@@@@@@@ADQDTDQDQQDQ@@@@@@@@@@QDQQADQD$QDPC@@@@@@@@DQDTPRH"H$PQL3@@@@@@@ADQQDH"URHQDSL3@@@@@@DRH"QEUUUADQD3L3@@@@@BH"H$UUUUPQDQL3L3@@@@@!!DQP3MUUTDQDSL3LQ@@@@DQDTL3MUPQDUT3L3DS@@@QDQECL3MTUUUUT3L1D3@@DQDQP3L3QEUUD5T3LSL3@ADQEDMDQDPQDQL5T1D3L3DQH"IDQDP1DQDSL5TSL3L1H"H"PQDSLQDQD3L5D3L3L"H"H!!DQD3DQDQL3LQT3L3@"H"HQDQL1DQUSL3DUT3L0@"H!!DQDSMUUUUSL1L5T3@@@"HQDQESMUUUUSLSL5T0@@@@DQUUUSUUUUUQD3L5@@@@@EUUUUT5UUUUDSL3L0@@@@AUUUUUT5UUDQD3L3L@@@@@AUUUUUT5DQUUUSL3@@@@@@AUUUDQDQUUUUUSL@@@@@@@AQDQEUT5UUUUUS@@@@@@@@@UUUUUT5UUUUUP@@@@@@@@AUUUUUL5UUUU@@@@@@@@@@AUUUUUL5UU@@@@@@@@@@@@AUUUUU@@@@@@@@@@@@@@@@AUUP@@@@@@@@@b'))! explorerIcon ^ToolbarIconLibrary visualFor: #exploreVisited ifAbsent: [nil]! fileBrowser ^ToolbarIconLibrary visualFor: #fileBrowser! fileExit20x20 "UIMaskEditor new openOnClass: self andSelector: #fileExit20x20" ^CachedImage on: (Image extent: 20@20 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 8) at: 1 put: Graphics.ColorValue black; at: 2 put: (Graphics.ColorValue scaledRed: 6874 scaledGreen: 6874 scaledBlue: 6874); at: 3 put: (Graphics.ColorValue scaledRed: 2120 scaledGreen: 2120 scaledBlue: 2120); at: 4 put: (Graphics.ColorValue scaledRed: 3180 scaledGreen: 3180 scaledBlue: 3180); at: 5 put: (Graphics.ColorValue scaledRed: 5557 scaledGreen: 7387 scaledBlue: 7934); at: 6 put: Graphics.ColorValue white; at: 7 put: (Graphics.ColorValue scaledRed: 5557 scaledGreen: 5557 scaledBlue: 5557); at: 8 put: Graphics.ColorValue red; yourself)) usingBits: (ByteArray fromPackedString: 'UUUUUUUUUUUUUP@@UUUUUUUUUUUUUP@@UUUUUUUUUUUUUP@@UUH"@@@@@@UUUP@@UUHQD@A&XFAUUP@@UUHVX@A&XFXEUP@@UUHVX@A&XFXEUP@@UUHVX@@@A&XEUP@@UUHVY&Y&Y&XEUP@@UUHVL3L3L6XEUP@@UUHSUUUUUCXEUP@@UUHSUUUW]SXEUP@@UUHSUUU7]3XEUP@@UUHSUUUG]7XEUP@@UUHSUUQT]7\EU0@@UUHSUTUDQ7]5]0@@UU@@@@@@@G]7]0@@UUUUUUUUUU]7]0@@UUUUUUUUUU]7]0@@UUUUUUUUUW]7]0@@'))! fixIcon ^(OpaqueImage figure: self fixIconFigure shape: self fixIconShape) asIcon! fixIconFigure "Tools.UIMaskEditor new openOnClass: self andSelector: #fixIconFigure" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: (Graphics.MappedPalette withColors: (#(#(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8062 7709)) ) collect: [:each | (each at: 1) value perform: (each at: 2) withArguments: (each at: 3)])) usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 128 0 0 0 0 0 0 0 32 0 0 0 32 0 0 0 0 0 0 0 8 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])! fixIconFigure2 "Tools.UIMaskEditor new openOnClass: self andSelector: #fixIconFigure2" ^CachedImage on: (Image extent: 16@16 depth: 2 bitsPerPixel: 2 palette: (Graphics.MappedPalette withColors: (#(#(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8062 7709)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(0 4111 4111)) ) collect: [:each | (each at: 1) value perform: (each at: 2) withArguments: (each at: 3)])) usingBits: #[85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 170 154 105 74 170 154 42 106 165 90 90 169 170 154 82 165 170 154 82 165 165 90 90 169 165 90 106 42 165 90 105 74 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85])! fixIconShape "Tools.UIMaskEditor new openOnClass: self andSelector: #fixIconShape" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 99 0 0 251 119 0 0 195 62 0 0 251 28 0 0 251 28 0 0 195 62 0 0 195 119 0 0 195 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])! globeIcon ^ToolbarIconLibrary visualFor: #globe ifAbsent: [nil]! graphIcon "UIMaskEditor new openOnClass: self andSelector: #graphIcon" ^CachedImage on: (Image extent: 32@32 depth: 4 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 9) at: 1 put: Graphics.ColorValue black; at: 2 put: Graphics.ColorValue white; at: 3 put: (Graphics.ColorValue scaledRed: 5460 scaledGreen: 5460 scaledBlue: 5460); at: 4 put: (Graphics.ColorValue scaledRed: 4111 scaledGreen: 4111 scaledBlue: 4111); at: 5 put: (Graphics.ColorValue scaledRed: 0 scaledGreen: 4111 scaledBlue: 4111); at: 6 put: Graphics.ColorValue cyan; at: 7 put: (Graphics.ColorValue scaledRed: 0 scaledGreen: 0 scaledBlue: 4111); at: 8 put: (Graphics.ColorValue scaledRed: 0 scaledGreen: 4111 scaledBlue: 0); at: 9 put: (Graphics.ColorValue scaledRed: 4111 scaledGreen: 0 scaledBlue: 0); yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@@@@@@@@@@@@DQDQDQDQDQDQDQDQDQDS@AH"H"H"H"H"H"H"H"H"H0@RH"H"H"H"H"H"H"H"H"L@D @@@@@@@@@@@@@@@@@#@AHADQDQDQDQDQDQDQDPH0@R@QDQDQDQDQDVE1 TDBL@D DQDQDQDQDQE!!\XEQ@#@AHADQDQDQDQDQ@@@@@PH0@R@QDQDQDQDQDQDQDQDBL@D DQDQDQDQDQDQDQDQ@#@AHADQDQDQDQDQDQDQDPH0@R@@E&Y!!DQDQDQDQDQDBL@D DQY&XQDQDQDQDQDQ@#@AHADVY&DQDQDQDTQDDPH0@R@QE&Y!!DQDQDQEDQADBL@D @AY&XW]7DQDQQDPQ@#@AHADVY&E7]1DQDTQDDPH0@R@QE&Y!!]7\QDQEDQADBL@D DQY&XW]7DQDQQDPQ@#@AH@@VY&E7]1"H TQDDPH0@R@QE&Y!!]7\X"HEDQADBL@D DQY&XW]7FH"AQDPQ@#@AHADVY&E7]1"H TQDDPH0@R@@E&Y!!]7\X"HEDQADBL@D DQY&XW]7FH"AQDPQ@#@AHADVY&E7]1"H TQDDPH0@R@QE&Y!!]7\X"HEDQADBL@D @@@@@@@@@@@@@@@@@#@AH"H"H"H"H"H"H"H"H"H0@3L3L3L3L3L3L3L3L3L3L@@@@@@@@@@@@@@@@@@@@@@b'))! greenLinesIcon "UIMaskEditor new openOnClass: self andSelector: #greenLinesIcon" ^CachedImage on: (Image extent: 32@32 depth: 2 bitsPerPixel: 2 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 3) at: 1 put: (Graphics.ColorValue scaledRed: 5460 scaledGreen: 5460 scaledBlue: 5460); at: 2 put: Graphics.ColorValue black; at: 3 put: (Graphics.ColorValue scaledRed: 0 scaledGreen: 4111 scaledBlue: 0); yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B*******@@@J******(@@@@@@@@@@@@@@@@@@@@@@@@J******(@@@******* @@@@@@@@@@@@@@@@@@@@@@@@******* @@B*******@@@@@@@@@@@@@@@@@@@@@@@@AUUUUUUU@@@EUUUUUUT@@@@@@@@@@@@@@@@@@@@@@@@J******(@@@******* @@@@@@@@@@@@@@@@@@@@@@@@******* @@B*******@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a'))! homeIcon ^ToolbarIconLibrary visualFor: #home ifAbsent: [nil]! launcherToolBar "Tools.MenuEditor new openOnClass: self andSelector: #launcherToolBar" ^#(#{UI.Menu} #( #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #saveImage #defaultString: 'Save image' ) #value: #imageSave #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #fileSave ) #helpText: 'Save Image' ) #(#{UI.MenuItem} #rawLabel: 'Save and Exit' #nameKey: #fileExit #value: #fileExit #labelImage: #(#{UI.ResourceRetriever} #{DevApp} #fileExit20x20 ) #helpText: 'Exit' ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #browseSystem #defaultString: 'Browse system' ) #nameKey: #systemButton #value: #browseSystem #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #systemBrowser ) #helpText: 'System Browser' ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #browseClasses #defaultString: 'Browse classes' ) #nameKey: #classesButton #value: #browseAllNamespacesNoTabs #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #classBrowser ) #helpText: 'Class Browser' ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #browseParcels #defaultString: 'Browse parcels' ) #nameKey: #parcelsButton #value: #browseAllParcelsAndNamespaces #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #parcelBrowser ) #helpText: 'Parcel Browser' ) #(#{UI.MenuItem} #rawLabel: 'Change List' #nameKey: #changesOpenChangeList #value: #changesOpenChangeList #labelImage: #(#{UI.ResourceRetriever} #{DevApp} #changesBrowser20x20 ) #helpText: 'Change List' ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #fileBrowser #defaultString: 'File list' ) #nameKey: #filesButton #value: #openFileList #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #fileFinder ) #helpText: 'File List' ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #workspace #defaultString: 'Workspace' ) #value: #toolsNewWorkspace #labelImage: #(#{UI.ResourceRetriever} #{ToolbarIconLibrary} #workspace ) #helpText: 'New Workspace' ) ) #(2 3 1 2 ) nil ) decodeAsLiteralArray! lightningIcon ^ToolbarIconLibrary visualFor: #doIt ifAbsent: [nil]! notebookIcon "UIMaskEditor new openOnClass: self andSelector: #notebookIcon" ^CachedImage on: (Image extent: 32@32 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 6) at: 1 put: Graphics.ColorValue black; at: 2 put: Graphics.ColorValue white; at: 3 put: (Graphics.ColorValue scaledRed: 5460 scaledGreen: 5460 scaledBlue: 5460); at: 4 put: (Graphics.ColorValue scaledRed: 4111 scaledGreen: 4111 scaledBlue: 4111); at: 5 put: Graphics.ColorValue cyan; at: 6 put: Graphics.ColorValue blue; yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@@@@@@@@@@@@DQDQDQDQDQDQDQDQDQDS@AH"H"H"H"H"H"H"H"H"H0@RH"H"H"H"H"H"H"H"H"L@D"@@@@@@@@@@@@@@@@H#@AH MUUUUUUUUUUUUULBH0@RHCUUUUUUUUUUUUUS@"L@D"@4QDQDQDQDQDQDP0H#@AH MDQDQDQDQDQDQDLBH0@RHCL3L3L3L3L3L3L3@"L@D"@@@@@@@@@@@@@@@@H#@AH DQDQDQDQDQDQDQDBH0@RHADQDQDQDQDQDQDQ@"L@D"@P@@@@DP@@@@@@DPH#@AH DEUUTADQDQDQDQDBH0@RHAAUUU@Q@@@@@@@Q@"L@D"@PUUUPDQDQDQDQDPH#@AH DEUUTAD@@@@@@ADBH0@RHAAUUU@QDQDQDQDQ@"L@D"@P@@@@DP@@@@@@DPH#@AH DQDQDQDQDQDQDQDBH0@RH@@@@@@@@@@@@@@@@"L@D"@2H"H"H"H"H"H"H0H#@AH L"H"H"H"H"H"H"LBH0@RHCUUUUUUUUUUUUUS@"L@D"@5UUUUUUUUUUUUT0H#@AH MDQDQDQDQDQDQDLBH0@RH@@@@@@@@@@@@@@@@"L@D"H"H"H"H"H"H"H"H"H#@AH"H"H"H"H"H"H"H"H"H0@3L3L3L3L3L3L3L3L3L3L@@@@@@@@@@@@@@@@@@@@@@b'))! notepadIcon ^ToolbarIconLibrary visualFor: #workspace ifAbsent: [nil]! openBookIcon ^ToolbarIconLibrary visualFor: #toggleEvalPane ifAbsent: [nil]! properties ^ToolbarIconLibrary visualFor: #properties! redIcon "UIMaskEditor new openOnClass: self andSelector: #redIcon" ^CachedImage on: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 2) at: 1 put: Graphics.ColorValue red; at: 2 put: Graphics.ColorValue white; yourself)) usingBits: #[255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 127 255 255 254 63 255 255 252 31 255 255 248 15 255 255 240 7 255 255 224 3 255 255 192 1 255 255 128 0 255 255 0 0 127 255 128 0 255 255 192 1 255 255 224 3 255 255 240 7 255 255 248 15 255 255 252 31 255 255 254 63 255 255 255 127 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255])! squaresIcon ^ToolbarIconLibrary visualFor: #sendBackOne ifAbsent: [nil]! standardIcon ^Icon standardIcon! storeIcon ^ToolbarIconLibrary visualFor: #store ifAbsent: [nil]! yellowIcon "UIMaskEditor new openOnClass: self andSelector: #yellowIcon" ^CachedImage on: (Image extent: 32@32 depth: 1 bitsPerPixel: 1 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 2) at: 1 put: Graphics.ColorValue yellow; at: 2 put: Graphics.ColorValue white; yourself)) usingBits: #[255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 127 255 255 254 63 255 255 252 31 255 255 248 15 255 255 240 7 255 255 224 3 255 255 192 1 255 255 128 0 255 255 0 0 127 255 128 0 255 255 192 1 255 255 224 3 255 255 240 7 255 255 248 15 255 255 252 31 255 255 254 63 255 255 255 127 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255])! ! !DevApp class methodsFor: 'class initialization'! applyEnvironmentColor | policy | policy := Screen default defaultPaintPreferences. EnvironmentColor ifNil: [Screen default updatePaintPreferences] ifNotNil: [(Array with: SymbolicPaint menuBarBackground with: SymbolicPaint menuBackground with: SymbolicPaint background) do: [:paint | policy matchAt: paint put: EnvironmentColor]]. WindowManager restoreAll! ! !DevApp class methodsFor: 'toolbar'! changesBrowser20x20 "UIMaskEditor new openOnClass: self andSelector: #cpokBrowser20x20" ^CachedImage on: (Image extent: 20@20 depth: 3 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 6) at: 1 put: Graphics.ColorValue black; at: 2 put: (Graphics.ColorValue scaledRed: 4227 scaledGreen: 4227 scaledBlue: 8191); at: 3 put: (Graphics.ColorValue scaledRed: 6869 scaledGreen: 6869 scaledBlue: 6869); at: 4 put: (Graphics.ColorValue scaledRed: 4491 scaledGreen: 6077 scaledBlue: 6605); at: 5 put: Graphics.ColorValue white; at: 6 put: (Graphics.ColorValue scaledRed: 2113 scaledGreen: 2113 scaledBlue: 2113); yourself)) usingBits: (ByteArray fromPackedString: 'QDQDQDQDQDQDQ@@@QDQEUUUDQDQDQ@@@QDQTDQDDQDQDQ@@@QDUA@@DPQDQDQ@@@QEPPQD@@QDQDQ@@@QEDDQDQDQDQDQ@@@QEDDQDQDQDQDQ@@@QEDDQDQDQDQDQ@@@QEDPQDUUQDQDQ@@@QD@QUUPPQDQDQ@@@QDPADQDDQDQDA@@@QDQ@@@ADQDQ@P@@@Q@@DQDP@ADPDP@@@PCL0QD@3LDADQ@@@@4P3@@MDL0QDQ@@@@4L3A@MCL0QDQ@@@@3L2A@L3L QDQ@@@PCL QD@3HDQDQ@@@Q@@DQDP@ADQDQ@@@QDQDQDQDQDQDQ@@@'))! ! !DevApp class methodsFor: 'interface specs'! checkBoxSpec "UIPainter new openOnClass: self andSelector: #checkBoxSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Parcel Creator' #bounds: #(#{Graphics.Rectangle} 452 439 828 499 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.CheckBoxSpec} #layout: #(#{Core.Point} 3 -2 ) #model: #pluginParcel #label: 'Plug-in Parcel' ) #(#{UI.CheckBoxSpec} #layout: #(#{Core.Point} 108 -2 ) #model: #includeSourcecode #label: 'Include Source' ) #(#{UI.CheckBoxSpec} #layout: #(#{Core.Point} 212 -2 ) #model: #allowUnpublished #label: 'Allow Unpublished' ) ) ) )! optionsSpec "Tools.UIPainter new openOnClass: self andSelector: #optionsSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Parcel Creator' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 1920 600 2389 736 ) #menu: #mainMenuHolder #toolBar: #toolbarHolder #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 49 0 0 0.200426 74 0 ) #name: #windowNewLauncher #model: #windowNewLauncher #tabable: false #label: 'Visual Launcher' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.200426 49 0 0 0.400853 74 0 ) #name: #refreshBundlesInList #model: #refreshBundlesInList #tabable: false #label: 'Refresh' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 73 0 0 0.200426 98 0 ) #name: #createParcel #model: #createParcel #tabable: false #label: 'Create' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.200426 73 0 0 0.400853 98 0 ) #name: #checkreferences #model: #checkreferences #tabable: false #label: 'Check References' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.599147 73 0 0 0.799573 98 0 ) #name: #releaseParcel #model: #releaseParcel #tabable: false #label: 'Release' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 25 0 0 0.200426 50 0 ) #name: #releaseSQLGuard #model: #releaseSQLGuard #tabable: false #label: 'SQL Guard' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.200426 25 0 0 0.400853 50 0 ) #name: #openRecentPublishedItems #model: #openRecentPublishedItems #tabable: false #label: 'More Recent' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.400853 25 0 0 0.599147 50 0 ) #name: #alphaSweep #model: #alphaSweep #tabable: false #label: 'Sweep Alpha' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.599147 25 0 0 0.799573 50 0 ) #name: #betaSweep #model: #betaSweep #tabable: false #label: 'Sweep Beta' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.599147 49 0 0 0.799573 74 0 ) #name: #openPublishedItems #model: #openPublishedItems #tabable: false #label: 'Published' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.6 1 0 0 0.8 26 0 ) #name: #collectAllGarbage #model: #collectAllGarbage #tabable: false #label: 'Garbage' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 1 0 0 0.2 26 0 ) #name: #browseClassNamed #model: #browseClass #tabable: false #label: 'Browse Class' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.2 1 0 0 0.4 26 0 ) #name: #browseImplementorsOf #model: #browseImplementorsOf #tabable: false #label: 'Implementors' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.8 1 0 0 1 26 0 ) #name: #toggleShowSQL #model: #toggleShowSQL #tabable: false #label: 'Show SQL' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 1 0 0 0.6 26 0 ) #name: #browseSendersOf #model: #browseSendersOf #tabable: false #label: 'Senders' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.799573 73 0 0 1.0 98 0 ) #name: #launchTargetII #model: #launchTargetII #tabable: false #label: 'Target' #defaultable: true ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -15 1 -1 1 0 1 ) #name: #checkBoxSpec #flags: 0 #majorKey: #{DevApp} #minorKey: #checkBoxSpec ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.400853 49 0 0 0.599147 74 0 ) #name: #reportChanges #model: #reportChanges #tabable: false #label: 'Report Changes' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.799573 25 0 0 1.0 50 0 ) #name: #productionSweep #model: #productionSweep #tabable: false #label: 'Sweep Prod' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.799573 49 0 0 1.0 74 0 ) #name: #recoverChangesButton #model: #recoverChanges #tabable: false #label: 'Recover' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.400853 73 0 0 0.599147 98 0 ) #name: #openProcessMonitorButton #model: #openProcessMonitor #tabable: false #label: 'Process Monitor' #defaultable: true ) ) ) )! transcriptSpec "UIPainter new openOnClass: self andSelector: #transcriptSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #title #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 394 443 886 582 ) #menu: #newMenuBar ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ArbitraryComponentSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 1 0 -1 1 -1 1 ) #name: #textViewID #flags: 9 #component: #textView ) ) ) )! windowSpec "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Parcel Creator' #bounds: #(#{Graphics.Rectangle} 1920 512 2551 967 ) #flags: 4 #menu: #menuHolder #toolBar: #toolbarHolder #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -133 1 0 0.25 0 1 ) #name: #parcelList #model: #bundlesInList #multipleSelections: true #style: #systemDefault #useModifierKeys: true #selectionType: #highlight #autoSelect: true ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 -139 1 ) #name: #transcriptSpec #flags: 0 #majorKey: #{DevApp} #minorKey: #transcriptSpec ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 2 0.25 -133 1 0 1 0 1 ) #name: #optionsSpec #majorKey: #{DevApp} #minorKey: #optionsSpec ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 -133 1 3 0.25 0 1 ) #name: #ResizingSplitter2 #flags: 8 #horizontal: false #minAboveSize: 5 #minBelowSize: 5 #aboveWidgets: 'parcelList' #belowWidgets: 'optionsSpec' ) #(#{UI.ResizingSplitterSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -138 1 0 1 -133 1 ) #name: #ResizingSplitter1 #flags: 8 #horizontal: true #minAboveSize: 5 #minBelowSize: 5 #aboveWidgets: 'transcriptSpec' #belowWidgets: 'optionsSpec parcelList ResizingSplitter2' ) ) ) )! ! Smalltalk.OS_MDIApplicationFrameModel class instanceVariableNames: ''! !OS_MDIApplicationFrameModel class methodsFor: 'resources'! builderClass ^OS_UIBuilder! fileImage "UIMaskEditor new openOnClass: self andSelector: #fileImage" ^CachedImage on: (Image extent: 30@31 depth: 3 bitsPerPixel: 4 palette: (MappedPalette withColors: ((Array new: 5) at: 1 put: (ColorValue scaledRed: 6167 scaledGreen: 6167 scaledBlue: 6167); at: 2 put: ColorValue black; at: 3 put: ColorValue yellow; at: 4 put: ColorValue white; at: 5 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 0); yourself)) usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QDQDQDQDQDQD@@@@@@@@A@ HB@ HB@ H1@@@@@@@@DB@ HB@ HB@#PP@@@@@@@PHB@ HB@ HBMDD@@@@@@AL3L3L3L3L3L4QA@@@@@@@R@ HB@ HB@ ADPP@@@@@@DDQDQDQDQDD QDD@@@@@@AICL3L3L3L1@DQA@@@@@@@PP2@ HB@ HRADPP@@@@@@D$LBDQDQ@ D@QDD@@@@@@AACHAQDPR@!!HDQA@@@@@@@RP0HTQDDB@PADPP@@@@@@DDL L3L3HBD QDD@@@@@@AIC@ HB@ HA@DQA@@@@@@@PP2@ HB@ HRADPP@@@@@@D!!DQDQDQDQD@QDD@@@@@@A@ HB@ HB@ HDQA@@@@@@@RQDQDQDQDPPADPP@@@@@@DDL3L3L3L3D QDD@@@@@@AIC@ HB@ HA@DQA@@@@@@@PP2@QDQD HRADPP@@@@@@D$LBEDQA@ D@QDD@@@@@@AACHAQDPR@!!HDQA@@@@@@@RP0H3L3LB@PADPP@@@@@@DDL HB@ HBD QDD@@@@@@AIC@ HB@ HA@DPP@@@@@@@PDQDQDQDQDRAA@@@@@@@@D HB@ HB@ H@D@@@@@@@@ADQDQDQDQDQDP@@@@@@@a'))! mainMenu "UIMenuEditor new openOnClass: self andSelector: #mainMenu" ^#(#Menu #( #(#MenuItem #label: 'File' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'New' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Open' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Inspect' ) #(#MenuItem #label: 'Exit' ) ) #(4 ) #(#newDocument #openDocument #inspect #closeRequest ) ) ) #(#MenuItem #label: 'Window' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Next Window' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Arrange Icons' #accessCharacterPosition: 9 ) #(#MenuItem #label: 'Cascade Windows' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Tile Windows' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Tile Vertical' #accessCharacterPosition: 6 ) #(#MenuItem #label: 'Tile Horizontal' #accessCharacterPosition: 6 ) #(#MenuItem #label: 'Minimize All' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Restore All' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'None' ) ) #(8 1 ) #(#nextWindow #arrangeIcons #cascadeWindows #tileWindows #tileVertical #tileHorizontal #minAll #restoreAll nil ) ) ) #(#MenuItem #label: 'Tool Bar' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'Hide' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Show' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Enable' #accessCharacterPosition: 1 ) #(#MenuItem #label: 'Disable' #accessCharacterPosition: 1 ) ) #(4 ) #(#hideToolBar #showToolBar #enableToolBar #disableToolBar ) ) ) #(#MenuItem #label: 'Help' #accessCharacterPosition: 1 #submenu: #(#Menu #( #(#MenuItem #label: 'About' #accessCharacterPosition: 1 ) ) #(1 ) #(#about ) ) ) ) #(4 ) #(nil nil nil nil ) ) decodeAsLiteralArray! menuBarHeight ^self builderClass defaultPolicyClass menuBarHeight! ! !OS_MDIApplicationFrameModel class methodsFor: 'interface specs'! toolBar "UIPainter new openOnClass: self andSelector: #toolBar" ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 321 427 521 627 ) ) #component: #(#SpecCollection #collection: #() ) )! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 279 470 666 694 ) #flags: 4 #menu: #mainMenu #keyEvents: #(#(#GLOBALKEY 'Ctrl ' #F4 #close ) #(#GLOBALKEY 'Ctrl ' #F6 #nextWindow ) #(#GLOBALKEY 'Ctrl ' #F5 #restore ) #(#GLOBALKEY 'Ctrl ' #F7 #move ) #(#GLOBALKEY 'Ctrl ' #F8 #size ) #(#GLOBALKEY 'Ctrl ' #F10 #max ) #(#GLOBALKEY 'Ctrl ' #F9 #min ) ) ) #component: #(#SpecCollection #collection: #( #(#SubCanvasSpec #layout: #(#LayoutFrame 0 0 0 0 0 1 25 0 ) #name: #toolBar #flags: 16 #majorKey: #OS_MDIApplicationFrameModel #minorKey: #toolBar ) ) ) )! ! Smalltalk.FISMDIApplicationFrameModel class instanceVariableNames: ''! !FISMDIApplicationFrameModel class methodsFor: 'ini constants'! iniFileName ^'TargetTrading.Ini'! nonOptionalIniSections |oc| oc := OrderedCollection new. oc add: 'System'. ^oc! nonOptionalIniSettingsFor: aSection |oc answer| answer := OrderedCollection new. oc := OrderedCollection new. aSection='System' ifTrue:[ oc add: #( 'System' 'server' 'connectionType')]. oc do: [:array | (array at: 1) = aSection ifTrue: [2 to: array size do: [:i | answer add: (array at: i)]]]. ^answer! ! !FISMDIApplicationFrameModel class methodsFor: 'resources'! builderClass ^UIBuilder! ! Smalltalk.TargSysMDIFrame class instanceVariableNames: ''! !TargSysMDIFrame class methodsFor: 'testing'! isDeployment ^(Smalltalk at: #DeploymentNotifier ifAbsent: [nil]) notNil! ! !TargSysMDIFrame class methodsFor: 'resources'! contextHelpImage16 "UIMaskEditor new openOnClass: self andSelector: #contextHelpImage16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: MonoMappedPalette blackWhite usingBits: #[255 199 0 0 191 187 0 0 159 61 0 0 174 126 0 0 182 198 0 0 186 54 0 0 189 246 0 0 190 238 0 0 188 93 0 0 171 219 0 0 149 195 0 0 181 255 0 0 250 129 0 0 250 189 0 0 250 189 0 0 252 129 0 0])! contextHelpMask16 "UIMaskEditor new openOnClass: self andSelector: #contextHelpMask16" ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 64 0 0 0 96 56 0 0 112 124 0 0 120 206 0 0 124 206 0 0 126 14 0 0 127 28 0 0 127 184 0 0 124 48 0 0 110 0 0 0 78 48 0 0 7 48 0 0 7 0 0 0 3 0 0 0 0 0 0 0])! ! !TargSysMDIFrame class methodsFor: 'notifier-correction'! setExceptionNotifier "If you have TargSysNotifier opened in your Target Tarding image and class variable ExceptionNotifier is not #TargSysNotifier, please run the method below." "self setExceptionNotifier" self exceptionNotifier: #TargSysNotifier! ! !TargSysMDIFrame class methodsFor: 'accessing'! exceptionNotifier ^ExceptionNotifier isNil ifTrue: [self isDeployment ifTrue: [ExceptionNotifier := #DeploymentNotifier] ifFalse: [ExceptionNotifier := #NotifierView]. ExceptionNotifier] ifFalse: [ExceptionNotifier]! exceptionNotifier: aSymbol ExceptionNotifier := aSymbol! ! !TargSysMDIFrame class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Target Trading System' #min: #(#{Core.Point} 40 20 ) #max: #(#{Core.Point} 2048 1600 ) #bounds: #(#{Graphics.Rectangle} 5 30 955 680 ) #flags: 4 #menu: #menuHolder #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #() ) )! ! !TargSysMDIFrame class methodsFor: 'interface opening'! open "Purpose: Register as a dependent of ObjectMemory. This is necessary to facilitate a stack dump upon a quit primitive. Remove the association with ObjectMemory upon the primitive quit or when the instance created here results in a change request value of true. " | tApp tBuilder | self isVW7 ifTrue:[ Win98LookPolicy installLookPreferences. UIBuilder defaultPolicyClass: Win98LookPolicy ]. tApp := self new. ObjectMemory addDependent: tApp. ObjectStore initialize. "Done here so that it can be removed from the initialize and not hose opening from new Target" tBuilder := self openOn: tApp. tApp fileLogin. tBuilder window raise. ^tBuilder! ! Smalltalk.OS_MDIDocumentModel class instanceVariableNames: ''! !OS_MDIDocumentModel class methodsFor: 'resources'! builderClass ^Smalltalk at: #OS_UIBuilder ifAbsent:[UIBuilder]! closeButton ^self builderClass defaultPolicyClass closeButton! icon "UIMaskEditor new openOnClass: self andSelector: #icon" ^CachedImage on: (Image extent: 34@34 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 red; at: 6 put: (ColorValue scaledRed: 0 scaledGreen: 0 scaledBlue: 4112); yourself)) usingBits: (ByteArray fromPackedString: 'DQDQDQDQDQDQDQDQDQDQDQD@@@@"H"H"H"H"H"H"H"H"H"H"H0@@@BH"H"H"H"H"H"H"H"H"H"H#@@@@H"H"H"H"H"H"H"H"H"H"H"L@@@@"H"H"H"H"H"H"H"H"H"H"H0@@@BH"H"H"H"H"H"H"H"H"H"H#@@@@H"H"H"H"H"H"H"H"H"H"H"L@@@@"H"H"H"H"H"H"H"H"H"H"H0@@@BH"H"H"H"H"H"H"H"H"H"H#@@@@H"H"H"H"H"H"H"H"H"H"H"L@@@@"H"UUUUUUUUUUUUUUH"H"H0@@@BH"IUUUUUUUUUUUUUTBH"H#@@@@H"H%UUUUUUUUUUUUUPH"H"L@@@@#L3L3L3L3L3L3L3L3L3L3@0@@@BL3L3L3L3QDP3L3L3L3L0@#@@@@H3L3L3ADQDQDQCL3L3L@H"L@@@@#L3L3MDPDP@A@P3L3@BH"H0@@@BL3L3MDPDQDQDQCL0@BH"H#@@@@H3L3MDQDQ@AD@DP@UPH"H"L@@@@#L3L4QD@DQDA@ADUU@"H"H0@@@BL3L4A@P@AD@@QDAUTBH"H#@@@@H3L3PD@DQDP@ADQEUPH"H"L@@@@#L3MDQDQ@@DADPDUU@"H"H0@@@BL3L4AD@D@@QDADQUTBH"H#@@@@H3L3P@P@P@AD@@PEUPH"H"L@@@@#L3LDA@@DQ@P@QDUU@"H"H0@@@BL3LEQDQDQ@@DQDUUTBH"H#@@@@H3@EUDA@@D@DPDAUUPH"H"L@@@@ @"UUADP@QDQDQUUU@"H"H0@@@BH"IUUTQDQDQDAUUUTBH"H#@@@@H"H%UUUTQDPDUUUUUPH"H"L@@@@"H"UUUUUUUUUUUUUU@"H"H0@@@BH"H @@@@@@@@@@@@@BH"H#@@@@H"H"H"H"H"H"H"H"H"H"H"L@@@@b'))! maxButton ^self builderClass defaultPolicyClass maxButton! minButton ^self builderClass defaultPolicyClass minButton! minmaxButton ^self builderClass defaultPolicyClass minmaxButton! titleCommand ^self builderClass defaultPolicyClass titleCommandWith: self! titleMenu ^self builderClass defaultPolicyClass titleMenu! ! !OS_MDIDocumentModel class methodsFor: 'interface specs'! activeTitleSpec ^self builderClass defaultPolicyClass activeTitleSpec! emptySpec ^self builderClass defaultPolicyClass emptySpec! inactiveTitleSpec ^self builderClass defaultPolicyClass activeTitleSpec! lineSpec "UIPainter new openOnClass: self andSelector: #lineSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Unlabeled Canvas' #bounds: #(#Rectangle 496 326 740 419 ) ) #component: #(#SpecCollection #collection: #( #(#DividerSpec #layout: #(#LayoutFrame 0 0 3 0 0 1 4 0 ) #colors: #(#LookPreferences #setForegroundColor: #(#ColorValue 6553 6553 6553 ) ) ) #(#DividerSpec #layout: #(#LayoutFrame 0 0 6 0 0 1 7 0 ) #colors: #(#LookPreferences #setForegroundColor: #(#ColorValue 6553 6553 6553 ) ) ) #(#DividerSpec #layout: #(#LayoutFrame 0 0 9 0 0 1 10 0 ) #colors: #(#LookPreferences #setForegroundColor: #(#ColorValue 6553 6553 6553 ) ) ) #(#DividerSpec #layout: #(#LayoutFrame 0 0 12 0 0 1 13 0 ) #colors: #(#LookPreferences #setForegroundColor: #(#ColorValue 6553 6553 6553 ) ) ) #(#DividerSpec #layout: #(#LayoutFrame 0 0 15 0 0 1 16 0 ) #colors: #(#LookPreferences #setForegroundColor: #(#ColorValue 6553 6553 6553 ) ) ) #(#DividerSpec #layout: #(#LayoutFrame 0 0 18 0 0 1 19 0 ) #colors: #(#LookPreferences #setForegroundColor: #(#ColorValue 6553 6553 6553 ) ) ) ) ) )! maxActiveTitleSpec ^self builderClass defaultPolicyClass maxActiveTitleSpec! minActiveTitleSpec ^self builderClass defaultPolicyClass minActiveTitleSpec! minInactiveTitleSpec ^self builderClass defaultPolicyClass minInactiveTitleSpec! windowSpec ^self builderClass defaultPolicyClass documentSpec! ! !OS_MDIDocumentModel class methodsFor: 'class creation'! icon: aIcon "Create a new class and assign a icon" | inst | inst := self new. inst icon value: aIcon. ^inst! ! !OS_MDIDocumentModel class methodsFor: 'layouts'! layoutAbsolute: aBounds ^LayoutFrame leftFraction: 0 offset: aBounds origin x rightFraction: 0 offset: aBounds extent x topFraction: 0 offset: aBounds origin y bottomFraction: 0 offset: aBounds extent y.! ! Smalltalk.TargSysBookWindow class instanceVariableNames: ''! !TargSysBookWindow class methodsFor: 'instance creation - DataSet'! OLDframe: aFrame book: aTargSysBookClass itemView: anItemBasedViewClassOrList dataSet: aDataSetOrNil title: aTitle ^self frame: aFrame book: aTargSysBookClass itemView: anItemBasedViewClassOrList label: nil dataSet: aDataSetOrNil title: aTitle! OLDframe: aFrame book: aTargSysBookClass itemView: anItemBasedViewClassOrList label: aStringOrListOrNil dataSet: aDataSetOrNil title: aTitle "The window (an OS_MDIDocumentModel subclass such as TargSysWindow) has an app The app is a subclass of TargSysBook The app has one or more itemViews (Subclasses of ItemBasedView) This method ties them all together" | anMDIWindow | anMDIWindow := self new. anMDIWindow frame: aFrame. "The frame is the MDI Frame that launched this window" anMDIWindow appClassSymbol: aTargSysBookClass name. "Any subclass of TargSysBook" anMDIWindow app parentApplication: anMDIWindow. "The app's parent is the window" "This method takes a list of classes (or one), instantiates them and sets the parentApplication, then adds them to the itemViewList instVar" anMDIWindow app setItemViewListFromClasses: anItemBasedViewClassOrList. " anItemBasedView builder spec: aSpec." "This does not appear to be needed" anMDIWindow app itemLabelList: aStringOrListOrNil. "The labels describing tabs. Can be one string or a list" anMDIWindow app dataSet: aDataSetOrNil. Cursor database showWhile: [ anMDIWindow app refreshDataSet ]. "Set the dataSet" aFrame open: anMDIWindow with: #windowSpec. "Tell the frame to open the window" aTitle notNil ifTrue:[ anMDIWindow title value: aTitle]. "Set the title" ^anMDIWindow "answer the new model"! ! !TargSysBookWindow class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#FullSpec #window: #(#WindowSpec #label: '' #bounds: #(#Rectangle 193 78 670 502 ) #isEventDriven: true ) #component: #(#SpecCollection #collection: #() ) )! ! !TargSysBookWindow class methodsFor: 'instance creation'! OLDframe: aFrame book: aTargSysBookClass itemView: anItemBasedViewClass ^self frame: aFrame book: aTargSysBookClass itemView: anItemBasedViewClass label: nil! OLDframe: aFrame book: aTargSysBookClass itemView: anItemBasedViewClassOrList label: aStringOrListOrNil ^self frame: aFrame book: aTargSysBookClass itemView: anItemBasedViewClassOrList label: aStringOrListOrNil title: nil! OLDframe: aFrame book: aTargSysBookClass itemView: anItemBasedViewClassOrList label: aStringOrListOrNil title: aTitle "The window (an OS_MDIDocumentModel subclass such as TargSysWindow) has an app The app is a subclass of TargSysBook The app has one or more itemViews (Subclasses of ItemBasedView) This method ties them all together" | anMDIWindow | anMDIWindow := super new. anMDIWindow frame: aFrame. "The frame is the MDI Frame that launched this window" anMDIWindow appClassSymbol: aTargSysBookClass name. "Any subclass of TargSysBook" anMDIWindow app parentApplication: anMDIWindow. "The app's parent is the window" "This method takes a list of classes (or one), instantiates them and sets the parentApplication, then adds them to the itemViewList instVar" anMDIWindow app setItemViewListFromClasses: anItemBasedViewClassOrList. " anItemBasedView builder spec: aSpec." "This does not appear to be needed" anMDIWindow app itemLabelList: aStringOrListOrNil. "The labels describing tabs. Can be one string or a list" aFrame open: anMDIWindow with: #windowSpec. "Tell the frame to open the window" aTitle notNil ifTrue:[ anMDIWindow title value: aTitle].! OLDframe: aFrame book: aTargSysBookClass itemView: anItemBasedViewClass title: aStringOrNil ^self frame: aFrame book: aTargSysBookClass itemView: anItemBasedViewClass label: nil title: aStringOrNil! open: pUserBookEntry onFrame: aFrame "Called from TargSysMDIFrame>openBookTitled: aString fromIni: ini bookId: anIdOrNil " "Create a new instance using pUserBookEntry. Open it on the Frame return it. " | bookWindow currentTab app bf tVer rc | bookWindow := self new. bookWindow frame: aFrame. bookWindow userBookEntry: pUserBookEntry. bf := IniFile onString: pUserBookEntry bookDefinition. " pUserBookEntry positionSource: (PositionSourceForMDI new fromIni: bf)." tVer := (bf valueForSetting: 'Version' section: 'TargSysBook'). tVer isEmpty ifTrue:[ rc := (bf valueForSetting: 'ResultClass' section: 'DataSet'). rc = 'TradePosition' ifTrue:[(aFrame bookError: pUserBookEntry) ifFalse:[^self]]. ]. app := bookWindow readUsingIni: (IniFile onString: pUserBookEntry bookDefinition). app isNil ifTrue: [^nil]. bookWindow appClassSymbol: bookWindow app class name. " bookWindow app dataSet positionSource: pUserBookEntry positionSource." currentTab := bookWindow app currentPageLabel. bookWindow title setValue: pUserBookEntry bookWindowName. bookWindow frame open: bookWindow with: #windowSpec. bookWindow app currentPageLabel: currentTab. " Cursor database showWhile: [" bookWindow app refreshDataSetUsing: aFrame dbConnectionValue restoreDomain: bookWindow app domain. "]." ^bookWindow! readFromIni: anIniFile usingFrame: aFrame "Called from TargSysMDIFrame>>fileImportBookDefinition" "Creates a new instance of the receiver, sets the new instance's frame to be aFrame, and has the new instance read its attributes from anIniFile. Then it opens and updates the new instance." | bookWindow currentTab app | bookWindow := self new. "bookWindow is the new instance." bookWindow frame: aFrame. "Here we set the frame." app := bookWindow readUsingIni: anIniFile. "Here we read in anIniFile." app isNil ifTrue: [^nil]. "fs- Validation of IniFile" bookWindow appClassSymbol: bookWindow app class name. "Here we update an instance variable needed for opening." currentTab := bookWindow app currentPageLabel. "Here we grab the correct page, so we can later set it." bookWindow frame "This opens the new instance on a cascade." open: bookWindow with: #windowSpec. "To open in saved dimensions, add: at: bookWindow normalLayout origin layout: bookWindow normalLayout" bookWindow app currentPageLabel: currentTab. "This lets the opened instance know what its correct page is." Cursor database showWhile: [ bookWindow app refreshDataSetUsing: aFrame dbConnectionValue restoreDomain: bookWindow app domain]. "This updates the dataset and domain." ^bookWindow! readFromIni: anIniFile usingFrame: aFrame with: aString "Called from TargSysMDIFrame>openBookTitled: aString fromIni: ini bookId: anIdOrNil " "Creates a new instance of the receiver, sets the new instance's frame to be aFrame, and has the new instance read its attributes from anIniFile. Then it opens and updates the new instance." | bookWindow currentTab app | bookWindow := self new. bookWindow frame: aFrame. app := bookWindow readUsingIni: anIniFile. app isNil ifTrue: [^nil]. bookWindow appClassSymbol: bookWindow app class name. currentTab := bookWindow app currentPageLabel. bookWindow title setValue: aString. bookWindow frame open: bookWindow with: #windowSpec. bookWindow app currentPageLabel: currentTab. Cursor database showWhile: [bookWindow app refreshDataSetUsing: aFrame dbConnectionValue restoreDomain: bookWindow app domain]. ^bookWindow! ! !TargSysBookWindow class methodsFor: 'resources'! icon "UIMaskEditor new openOnClass: self andSelector: #money3" ^CachedImage on: (Image extent: 30@23 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 green; at: 6 put: (ColorValue scaledRed: 0 scaledGreen: 4112 scaledBlue: 0); yourself)) usingBits: (ByteArray fromPackedString: 'H"H"H"H"H"H"H"H"H"H"@BH"H"H"H"H"H"H"H"H"H @%UUUUUUUUUUUUUUUUUUH@IUQTUUUUUUUUUUUUQTTB@BUEATPEA@PD@DA@QEAT@ @%TBATPDA@@DPDQDTBAPH@IT@ UDQD@C@DQUAU@ TB@BUTUDPBA@L3@3L3LDUE@ @%QUADPDP@H3HQDQLEU@H@IUTDQDQD@RDQDQDS@ETB@BU@HDQDQ@@0L"L3L@HD@ @%TBA@@DQ@@AL@@@LBAPH@H@@@@@@@@@@1D3L0@@@B@BH"H"H"H"H"D0@@@0H"H @"H"L3L2H"H#DSL3@"H"H@H"H1DQDBH"H#@@@BH"H"@BH"L#L3@"L3L2H"H"H"H @"H"L@@BH1DQDBH"H"H"H@H"H"H"H"L#L3@"H"H"H"@BH"H"H"H"L@@BH"H"H"H @"H"H"H"H"H"H"H"H"H"H@H"H"H"H"H"H"H"H"H"H"@BH"H"H"H"H"H"H"H"H"H @b'))! ! Smalltalk.ValueAdaptor class instanceVariableNames: ''! !ValueAdaptor class methodsFor: 'updating-old'! aboutToQuit "Override #shutdown if I have shutdown code." ^[:aReceiver :anAspect :aValue :aModel | aModel == ObjectMemory ifTrue: [aReceiver shutdown]]! at: anIndex from: aModel "Override this method if you want to catch list updates."! returnFromSnapshot "Override #startup if I have startup code." ^[:aReceiver :anAspect :aValue :aModel | aModel == ObjectMemory ifTrue: [aReceiver startup]]! update: anAspect with: aValue from: aModel "Do the right thing." #at: == anAspect ifTrue: [self at: aValue from: aModel] ifFalse: [(self respondsTo: anAspect) ifTrue: [(self perform: anAspect) valueWithArguments: (Array with: self with: anAspect with: aValue with: aModel)]]! ! !ValueAdaptor class methodsFor: 'interface specs'! acceptCancelSpec "UIPainter new openOnClass: self andSelector: #acceptCancelSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'AcceptCancel Buttons' #bounds: #(#{Graphics.Rectangle} 540 498 740 526 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.5 0 1 ) #name: #accept #model: #accept #tabable: true #label: 'OK' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0 0 1 0 1 ) #name: #cancel #model: #cancel #tabable: true #label: 'Cancel' ) ) ) )! borderlessSpec "UIPainter new openOnClass: self andSelector: #borderlessSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Borderless Canvas' #bounds: #(#Rectangle 540 412 740 612 ) ) #component: #(#SpecCollection #collection: #() ) )! dialogSpec "UIPainter new openOnClass: self andSelector: #dialogSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Generic Dialog' #bounds: #(#Rectangle 241 137 620 438 ) ) #component: #(#SpecCollection #collection: #( #(#SubCanvasSpec #layout: #(#LayoutFrame 1 0 0 0 0 1 -25 1 ) #name: #dialogSubcanvas #flags: 0 #minorKey: #windowSpec ) #(#SubCanvasSpec #layout: #(#LayoutFrame 0 0 -25 1 0 1 0 1 ) #flags: 0 #minorKey: #acceptCancelSpec ) ) ) )! nullSpec "UIPainter new openOnClass: self andSelector: #nullSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Null Canvas' #bounds: #(#Rectangle 195 141 394 341 ) ) #component: #(#SpecCollection #collection: #() ) )! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#FullSpec #window: #(#WindowSpec #label: 'Subcanvas with Border' #bounds: #(#Rectangle 540 412 740 612 ) ) #component: #(#SpecCollection #collection: #( #(#SubCanvasSpec #layout: #(#LayoutFrame 4 0 4 0 -4 1 -4 1 ) #name: #borderlessSubcanvas #flags: 0 #minorKey: #borderlessSpec ) ) ) )! ! !ValueAdaptor class methodsFor: 'collaborator access'! agentClass ^TargetServerAgent! ! !ValueAdaptor class methodsFor: 'binding'! aspectPathClass ^ValuePath! interfaceSpecFor: aSymbol "Return a FullSpec that is adjusted to contain a borderlessSpec if it exists. This is based on the current structure of #windowSpec, which has four pixels of space around the borderlessSpec." | borderlessSpec decodedSpec spec | spec := self perform: aSymbol. decodedSpec := spec decodeAsLiteralArray. spec == ValueAdaptor windowSpec ifTrue: [(borderlessSpec := self borderlessSpec) == ValueAdaptor borderlessSpec ifFalse: [borderlessSpec := borderlessSpec decodeAsLiteralArray. decodedSpec window label: borderlessSpec window label; bounds: (borderlessSpec window bounds expandedBy: 4)]]. ^decodedSpec! ! !ValueAdaptor class methodsFor: 'instance creation'! broker: aValueModel "Return a new instance with aValueModel as its broker." ^self new broker: aValueModel! container: aValueInterface "Return a new instance with aValueInterface as its container." ^self new container: aValueInterface! forAspect: anAspect "Return a new instance with an appropriate AspectAdaptor as its broker." ^self new forAspect: anAspect! forAspect: anAspect in: aValueInterface "Return a new instance configured as a subapplication on anAspect within aValueInterface." ^self new forAspect: anAspect in: aValueInterface! in: aValueInterface ^self new in: aValueInterface! new ^super new initForStartup! open "Open on a new instance of my domain class." | instance | ^((instance := self valueInstance) isNil ifTrue: [self new] ifFalse: [self value: instance]) open! openDialog "Open on a new instance of my domain class." | instance | ^((instance := self valueInstance) isNil ifTrue: [self new] ifFalse: [(self value: instance)]) openDialog! openDialogInterface "Open on a new instance of my domain class using the default interface." | instance | ^((instance := self valueInstance) isNil ifTrue: [self new] ifFalse: [(self value: instance)]) openDialogInterface! openDialogInterface: aSymbol "Open on a new instance of my domain class using the named interface." | instance | ^((instance := self valueInstance) isNil ifTrue: [self new] ifFalse: [(self value: instance)]) openDialogInterface: aSymbol! openWithValue: aModel "Return a new instance with a ValueHolder as its broker. That ValueHolder's value is aModel." ^(self withValueHolder value: aModel) open! value: aModel "Return a new instance with a ValueHolder as its broker. That ValueHolder's value is aModel." ^self withValueHolder value: aModel! withValue "Return a new instance with a new instance of my domain model." ^self value: self valueInstance! withValueHolder "Return a new instance with a ValueHolder as its broker." ^self new broker: ValueHolder new! ! !ValueAdaptor class methodsFor: 'events'! events "By convention, windows send all events to me." ^#(#bounds #close #collapse #enter #exit #expand #hibernate #move #release #reopen resize) copy! selectorForEvent: aSymbol "By convention, window event methods are named Event." ^(aSymbol , 'Event') asSymbol! ! !ValueAdaptor class methodsFor: 'class initialization'! initForStartup "If I have startup code, make me a dependent of ObjectMemory so I can perform my startup method whenever the image is started. Unlike the instance message of the same name, this class message is not sent automatically by ValueInterface; you must send it explicitly." self releaseStartup. self startup isNil ifFalse: [ObjectMemory addDependent: self]! initialize "self initialize" WindowEventDict := IdentityDictionary new. self events do: [:anEventSymbol | WindowEventDict at: anEventSymbol put: (self selectorForEvent: anEventSymbol)]! obsolete super obsolete. self releaseStartup! releaseStartup "Don't do startup or shutdown processing anymore." ObjectMemory removeDependent: self! shutdown "Do the shutdown procedure. Override #startup to return non-nil if you need shutdown processing."! startup "Do the startup procedure and return non-nil if you need startup or shutdown processing." ^nil! ! !ValueAdaptor class methodsFor: 'version'! releaseDate ^Date newDay: 12 month: #February year: 1999! version ^'3' copy! ! !ValueAdaptor class methodsFor: 'domain'! valueClass "Return the class of my intended domain model. Do not override this method; override valueClassName instead. This method looks excessively complex. It needs to be this way." | className | ^self == (className := self valueClassName) ifTrue: "Defend against a very common programmer error" [self error: 'You forgot the ^ in your valueClassName method'. nil] ifFalse: "Obtain the named class" [Smalltalk at: className asSymbol ifAbsent: [self error: 'There is no class named ', className. nil]]! valueClassName "Return the symbol that is the NAME of the class of my intended domain model. !!!!!! DO NOT RETURN THE CLASS ITSELF !!!!!!" ^#UndefinedObject! valueInstance "Return an instance of my intended domain class. This method looks excessively complex. It needs to be this way." | class | ^(class := self valueClass) isNil ifTrue: "The domain class is not defined" [nil] ifFalse: "Obtain an instance of the domain class" [UndefinedObject == class ifTrue: "UndefinedObject class #new is overly defensive" [nil] ifFalse: "Create a new instance of the domain class" [class new]]! ! Smalltalk.FFISDomainAdaptor class instanceVariableNames: 'cleanupProcess '! !FFISDomainAdaptor class methodsFor: 'interface specs'! testColorWindowSpec "UIPainter new openOnClass: self andSelector: #testColorWindowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Test Color Values' #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 436 418 899 807 ) #colors: #(#{UI.LookPreferences} #setForegroundColor: nil #setBackgroundColor: nil #setSelectionForegroundColor: nil #setSelectionBackgroundColor: nil ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.RegionSpec} #layout: #(#{Graphics.Rectangle} 19 17 453 352 ) #name: #testColorValue #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5422 0 325 ) ) #lineWidth: 1 ) ) ) )! ! !FFISDomainAdaptor class methodsFor: 'resources'! closeButtonImage "UIMaskEditor new openOnClass: self andSelector: #closeButtonImage" ^CachedImage on: (Image extent: 14@14 depth: 1 bitsPerPixel: 1 palette: MonoMappedPalette whiteBlack usingBits: #[0 0 0 0 0 0 0 0 0 0 0 0 24 96 0 0 12 192 0 0 7 128 0 0 3 0 0 0 7 128 0 0 12 192 0 0 24 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])! firstRowImage "UIMaskEditor new openOnClass: self andSelector: #firstRowImage" ^Image extent: 16@15 depth: 1 palette: CoveragePalette monoMaskPalette bits: #[0 0 0 0 0 0 0 0 0 0 0 0 48 132 0 0 49 140 0 0 51 156 0 0 55 188 0 0 63 252 0 0 63 252 0 0 55 188 0 0 51 156 0 0 49 140 0 0 48 132 0 0 0 0 0 0 0 0 0 0 ] pad: 32! lastRowImage "UIMaskEditor new openOnClass: self andSelector: #lastRowImage" ^Image extent: 16@15 depth: 1 palette: CoveragePalette monoMaskPalette bits: #[0 0 0 0 0 0 0 0 0 0 0 0 33 12 0 0 49 140 0 0 57 204 0 0 61 236 0 0 63 252 0 0 63 252 0 0 61 236 0 0 57 204 0 0 49 140 0 0 33 12 0 0 0 0 0 0 0 0 0 0 ] pad: 32! minusImage "UIMaskEditor new openOnClass: self andSelector: #minusImage" ^Image extent: 16@15 depth: 1 palette: CoveragePalette monoMaskPalette bits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 240 0 0 31 240 0 0 31 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] pad: 32! nextPageRowImage "UIMaskEditor new openOnClass: self andSelector: #nextPageRowImage" ^Image extent: 16@15 depth: 1 palette: CoveragePalette monoMaskPalette bits: #[0 0 0 0 0 0 0 0 0 0 0 0 16 128 0 0 24 192 0 0 28 224 0 0 30 240 0 0 31 248 0 0 31 248 0 0 30 240 0 0 28 224 0 0 24 192 0 0 16 128 0 0 0 0 0 0 0 0 0 0 ] pad: 32! nextRowImage "UIMaskEditor new openOnClass: self andSelector: #nextRowImage" ^Image extent: 16@15 depth: 1 palette: CoveragePalette monoMaskPalette bits: #[0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 6 0 0 0 7 0 0 0 7 128 0 0 7 192 0 0 7 192 0 0 7 128 0 0 7 0 0 0 6 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 ] pad: 32! plusImage "UIMaskEditor new openOnClass: self andSelector: #plusImage" ^Image extent: 16@15 depth: 1 palette: CoveragePalette monoMaskPalette bits: #[0 0 0 0 0 0 0 0 3 128 0 0 3 128 0 0 3 128 0 0 3 128 0 0 63 248 0 0 63 248 0 0 63 248 0 0 3 128 0 0 3 128 0 0 3 128 0 0 3 128 0 0 0 0 0 0 0 0 0 0 ] pad: 32! prevPageRowImage "UIMaskEditor new openOnClass: self andSelector: #prevPageRowImage" ^Image extent: 16@15 depth: 1 palette: CoveragePalette monoMaskPalette bits: #[0 0 0 0 0 0 0 0 0 0 0 0 1 8 0 0 3 24 0 0 7 56 0 0 15 120 0 0 31 248 0 0 31 248 0 0 15 120 0 0 7 56 0 0 3 24 0 0 1 8 0 0 0 0 0 0 0 0 0 0 ] pad: 32! prevRowImage "UIMaskEditor new openOnClass: self andSelector: #prevRowImage" ^Image extent: 16@15 depth: 1 palette: CoveragePalette monoMaskPalette bits: #[0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 192 0 0 1 192 0 0 3 192 0 0 7 192 0 0 7 192 0 0 3 192 0 0 1 192 0 0 0 192 0 0 0 64 0 0 0 0 0 0 0 0 0 0 ] pad: 32! restoreImage "UIMaskEditor new openOnClass: self andSelector: #restoreImage" ^(Image extent: 28@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 0 0 0 0 31 240 0 0 126 252 0 0 252 126 0 1 248 63 0 1 248 31 128 3 240 15 128 3 240 15 192 7 224 15 192 63 248 15 192 31 240 15 224 15 224 7 224 3 128 7 224 1 0 7 224 0 0 0 0])! restoreImageLarge "UIMaskEditor new openOnClass: self andSelector: #restoreImageLarge" ^(Image extent: 115@92 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: (ByteArray fromPackedString: '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G???>@@@@@@@@@@@@@@@@_????>@@@@@@@@@@@@@@@_?????8@@@@@@@@@@@@@@_?????? @@@@@@@@@@@@@_??>???<@@@@@@@@@@@@@O???G???0@@@@@@@@@@@@G??? ???>@@@@@@@@@@@@C???0G???0@@@@@@@@@@@A???8@_??>@@@@@@@@@@@@???<@G???0@@@@@@@@@@@_??>@@???>@@@@@@@@@@@O???@@G??? @@@@@@@@@@G???0@@???<@@@@@@@@@@A???8@@O??? @@@@@@@@@@???>@@A???<@@@@@@@@@@_???@@@O??? @@@@@@@@@O??? @@C???8@@@@@@@@@C???8@@@_???@@@@@@@@@A???<@@@C???0@@@@@@@@@_???@@@@???>@@@@@@@@@O??? @@@G??? @@@@@@@@C???8@@@A???<@@@@@@@@A???<@@@@O???@@@@@@@@@_??>@@@@C???8@@@@@@@@O??? @@@@_??>@@@@@@@@C???8@@@@G???0@@@@@@@A???<@@@@A???<@@@@@@@@_???@@@@@O??? @@@@@@@O???0@@@@C???8@@@@@@@C???8@@@@@_??>@@@@@@@@???>@@@@@G???0@@@@@@@_??? @@@@A???<@@@@@@@G???0@@@@@O??? @@@@@@C???<@@@@@C???8@@@@@@@???>@@@@@@_??>@@@@@@@O??? @@@@@G???0@@@@@@C???8@@@@@A???<@@@@@@A???<@@@@@@_???@@@@@@@_???@@@@@@C???8@@@@@@G???0@@@@@@???>@@@@@@C???<@@@@@@O??? @@@@@@???>@@@@@@A???8@@@@@@O??? @@@@@@_???@@@@@@C???8@@@@@@G???0@@@@@A???>@@@@@@A???<@@@@@@_???@@@@@@@O???@@@@@@G???0@@@@@@C???8@@@@@A???<@@@@@@@???>@@@@@@_???@@@@@@@O??? @@@@@O???0@@@@@@C???8@@@@@C???8@@@@@@@_???@@@@@@???>@@@@@@@G???0@@@@@O??? @@@@@@A???<@@@@@C???8@@@@@@@_???@@@@@A???<@@@@@@@G???0@@@@@_???@@@@@@@@???>@@@C???????@@@@@@O??? @@@_?????? @@@@@C???8@@@G??????0@@@@@@???>@@@@??????<@@@@@@O??? @@@G?????>@@@@@@C???8@@@@??????@@@@@@@???>@@@@O????? @@@@@@G???0@@@A?????0@@@@@@A???<@@@@O????8@@@@@@@_???@@@@C????>@@@@@@@G???0@@@@_????@@@@@@@A???<@@@@C???? @@@@@@@_???@@@@@_???0@@@@@@@G???0@@@@G???8@@@@@@@A???<@@@@@???<@@@@@@@@_???@@@@@G???@@@@@@@@C???0@@@@A??? @@@@@@@@???<@@@@@O??0@@@@@@@@O??? @@@@A??8@@@@@@@@C???8@@@@@O?<@@@@@@@@@???>@@@@@C??@@@@@@@@@O??? @@@@@_? @@@@@@@@C???8@@@@@C?0@@@@@@@@@???>@@@@@@?8@@@@@@@@@O??? @@@@@G<@@@@@@@@@C???8@@@@@@>@@@@@@@@@@???>@@@@@@G @@@@@@@@@O??? @@@@@A0@@@@@@@@@C???8@@@@@@H@@@@@@@@@@???>@@@@@@@@@@@@@@@@@@@@@@@@b'))! ! !FFISDomainAdaptor class methodsFor: 'color schemes - bar colors'! barColorSchemes "See barColorSchemeFor: for defaulting" ^TargSysCodes barColorSchemes " BarColorSchemes isNil ifTrue:[self initalizeBarColorSchemes]. ^BarColorSchemes"! ! !FFISDomainAdaptor class methodsFor: 'color schemes'! colorSchemes ^TargSysCodes colorSchemes "Use colorSchemeFor: method to handle defaults" " self initalizeColorSchemes." " ColorSchemes isNil ifTrue:[ self initalizeColorSchemes]. ^ColorSchemes"! ! !FFISDomainAdaptor class methodsFor: 'private actions'! cleanup self quietCleanup.! quietCleanup FISModel quietCleanup! quietCleanupNow FISModel quietCleanupNow! quietCleanupSoon FISModel quietCleanupSoon! ! !FFISDomainAdaptor class methodsFor: 'binding'! aspectPathClass ^FFISValuePath! ! Smalltalk.BasketsMaintenanceApp class instanceVariableNames: ''! !BasketsMaintenanceApp class methodsFor: 'interface specs'! buttonSpec "UIPainter new openOnClass: self andSelector: #buttonSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Basket Pairings' #min: #(#{Core.Point} 530 302 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 640 512 974 603 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 27 0 -1 0.75 53 0 ) #name: #newBasketDefinition #model: #newBasketDefinition #tabable: false #label: 'New' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 27 0 -1 0.5 53 0 ) #name: #renameBasketDefinition #model: #renameBasketDefinition #tabable: false #label: 'Rename' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 27 0 -1 0.25 53 0 ) #name: #editBasketDefinition #model: #editBasketDefinition #tabable: false #label: 'Edit' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 27 0 -1 1 53 0 ) #name: #deleteBasketDefinition #model: #deleteBasketDefinition #tabable: false #label: 'Delete' #defaultable: true ) ) ) )! nameSpec "UIPainter new openOnClass: self andSelector: #nameSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Basket Pairings' #min: #(#{Core.Point} 530 302 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 638 865 972 927 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 27 0 -1 1 53 0 ) #name: #cancelNameChange #model: #cancelNameChange #tabable: false #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 27 0 -1 0.5 53 0 ) #name: #saveName #model: #saveName #tabable: false #label: 'Save' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 0 0 -2 1 25 0 ) #name: #currentBasketName #model: #currentBasketName #numChars: 20 ) ) ) )! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Basket Pairings' #min: #(#{Core.Point} 530 302 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 757 350 1091 893 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.DataSetSpec} #properties: #(#{UI.PropertyListDictionary} #showHorizontalLines false #allowColumnResizing true #showVerticalLines false #allowColumnReordering false #allowSorting false ) #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 -60 1 ) #name: #dataSetModel #flags: 13 #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow name' #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #setCurrentRowDirty ) #label: 'Name' #labelIsImage: false #width: 313 #rendererType: #Text #editorType: #None #noScroll: false #formatString: '' ) ) #horizontalPolicy: #noWrap #labelsAsButtons: true ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -60 1 0 1 0 1 ) #name: #buttonSpec #flags: 0 #minorKey: #buttonSpec ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -60 1 0 1 0 1 ) #name: #nameSpec #flags: 0 #minorKey: #nameSpec ) ) ) )! ! Smalltalk.ImportFixedCurvesApp class instanceVariableNames: ''! !ImportFixedCurvesApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Import Fixed Curves' #min: #(#{Core.Point} 269 173 ) #max: #(#{Core.Point} 714 561 ) #bounds: #(#{Graphics.Rectangle} 201 272 915 833 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.116246 0 0.00713012 0 0.60084 0 0.0516934 ) #name: #inputFile #model: #inputFile #tabable: false #isReadOnly: true ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.00840336 0 0.0142602 ) #label: 'Input file' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.605042 0 0.00534759 0 0.647059 0 0.0516934 ) #name: #browseInputFile #model: #browseInputFile #tabable: false #label: '...' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0728291 0 0.942959 0 0.141457 0 0.987522 ) #name: #update #flags: 40 #model: #updateRecs #tabable: false #label: 'Update' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.00140056 0 0.942959 0 0.070028 0 0.987522 ) #name: #parse #flags: 40 #model: #parseInputFile #tabable: false #label: 'Parse' #defaultable: true ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 0 0.0784314 0 0.998599 0 0.445633 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow symbol' #label: 'Security' #labelIsImage: false #width: 181 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow inputString' #label: 'Input String' #labelIsImage: false #width: 800 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: false #formatString: '' ) ) #multipleSelections: false #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.Rectangle} 654 529 703 554 ) #model: #closeClicked #label: 'Close' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 578 529 651 554 ) #model: #dataSetModelSizeModel #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 523 534 ) #label: 'Records' ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.Rectangle} 1 270 713 523 ) #name: #invalidRows #model: #invalidRowDataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow last' #label: 'Error' #labelIsImage: false #width: 198 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow first' #label: 'Original Line' #labelIsImage: false #width: 731 #rendererType: #Text #editorType: #None #noScroll: false ) ) #labelsAsButtons: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 6 252 ) #label: 'Errors' ) ) ) )! ! !ImportFixedCurvesApp class methodsFor: 'defaults'! defaultInputFilename ^'I:\Forest\Departments\Trading\JY\FixedCurves.csv'! ! Smalltalk.ImportForeignApp class instanceVariableNames: ''! !ImportForeignApp class methodsFor: 'defaults'! defaultInputFilename ^'J:\Infoservices\Apps\FrgnImport\jpyBond.csv'! ! !ImportForeignApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Import Foreign App' #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 1563 232 2277 793 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.116246 0 0.00713012 0 0.60084 0 0.0516934 ) #name: #inputFile #model: #inputFile #tabable: false #isReadOnly: true ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.00840336 0 0.0142602 ) #label: 'Input file' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.605042 0 0.00534759 0 0.647059 0 0.0516934 ) #name: #browseInputFile #model: #browseInputFile #tabable: false #label: '...' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0728291 0 0.942959 0 0.141457 0 0.987522 ) #name: #update #flags: 40 #model: #updateRecs #tabable: false #label: 'Update' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.00140056 0 0.942959 0 0.070028 0 0.987522 ) #name: #parse #flags: 40 #model: #parseInputFile #tabable: false #label: 'Parse' #defaultable: true ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 0 0.0784314 0 0.998599 0 0.445633 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow seniorSecId' #label: 'SecId' #labelIsImage: false #width: 50 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: true #formatString: '#,##0' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow displayString' #label: 'Position' #labelIsImage: false #width: 200 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow seniorPersistentStorageCurrency' #label: 'Crncy' #labelIsImage: false #width: 50 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: true #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow seniorTargUnForDisplay' #label: 'Senior Price' #labelIsImage: false #width: 100 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: true #formatString: '#,##0.000;[Red]-#,##0.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow undrPersistentStorageCurrency' #label: 'Crncy' #labelIsImage: false #width: 50 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: true #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow undTargUnForDisplay' #label: 'Undr Price' #labelIsImage: false #width: 100 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.000;[Red]-#,##0.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow hedgeRatio' #label: 'Hedge' #labelIsImage: false #width: 100 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.00;[Red]-#,##0.00' ) ) #multipleSelections: false #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.Rectangle} 654 529 703 554 ) #model: #closeClicked #label: 'Close' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 578 529 651 554 ) #model: #dataSetModelSizeModel #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 523 534 ) #label: 'Records' ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.Rectangle} 1 270 713 523 ) #name: #invalidRows #model: #invalidRowDataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow first' #label: 'Error' #labelIsImage: false #width: 198 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow last' #label: 'Original Line' #labelIsImage: false #width: 731 #rendererType: #Text #editorType: #None #noScroll: false ) ) #labelsAsButtons: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 6 252 ) #label: 'Errors' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.215686 0 0.942959 0 0.446779 0 0.987522 ) #name: #delete #flags: 40 #model: #deleteExisting #tabable: false #label: 'Delete Existing Foreign Positions' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.144258 0 0.942959 0 0.212885 0 0.987522 ) #name: #archive #flags: 40 #model: #archiveInputFile #tabable: false #label: 'Archive' #defaultable: true ) ) ) )! windowSpecOld "UIPainter new openOnClass: self andSelector: #windowSpecOld" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Import Foreign App' #min: #(#{Core.Point} 269 173 ) #max: #(#{Core.Point} 714 561 ) #bounds: #(#{Graphics.Rectangle} 219 152 933 713 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.116246 0 0.00713012 0 0.60084 0 0.0516934 ) #name: #inputFile #model: #inputFile #tabable: false #isReadOnly: true ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.00840336 0 0.0142602 ) #label: 'Input file' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.605042 0 0.00534759 0 0.647059 0 0.0516934 ) #name: #browseInputFile #model: #browseInputFile #tabable: false #label: '...' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0728291 0 0.942959 0 0.141457 0 0.987522 ) #name: #update #flags: 40 #model: #updateRecs #tabable: false #label: 'Update' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.00140056 0 0.942959 0 0.070028 0 0.987522 ) #name: #parse #flags: 40 #model: #parseInputFile #tabable: false #label: 'Parse' #defaultable: true ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 0 0.0784314 0 0.998599 0 0.445633 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow displayString' #label: 'Position' #labelIsImage: false #width: 181 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow baseQtyUn' #label: 'Senior Qty' #labelIsImage: false #width: 100 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.000;-#,##0.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow baseTargUn' #label: 'Senior Price' #labelIsImage: false #width: 100 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: true #formatString: '#,##0.000;[Red]-#,##0.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow undQtyUn' #label: 'Undr Qty' #labelIsImage: false #width: 100 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.000;-#,##0.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow undTargUn' #label: 'Undr Price' #labelIsImage: false #width: 100 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.000;[Red]-#,##0.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow lmvUn' #label: 'LMV' #labelIsImage: false #width: 100 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '$#,##0;-$#,##0' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow premPtsUnForDisplay' #label: 'Prem Pts' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.00;[Red]-#,##0.00' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow premPctUn' #label: 'Prem %' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '0.00%' ) ) #multipleSelections: false #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.Rectangle} 654 529 703 554 ) #model: #closeClicked #label: 'Close' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 578 529 651 554 ) #model: #dataSetModelSizeModel #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 523 534 ) #label: 'Records' ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.Rectangle} 1 270 713 523 ) #name: #invalidRows #model: #invalidRowDataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow first' #label: 'Error' #labelIsImage: false #width: 198 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow last' #label: 'Original Line' #labelIsImage: false #width: 731 #rendererType: #Text #editorType: #None #noScroll: false ) ) #labelsAsButtons: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 6 252 ) #label: 'Errors' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.215686 0 0.942959 0 0.446779 0 0.987522 ) #name: #delete #model: #deleteExisting #tabable: false #label: 'Delete Existing Foreign Positions' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.144258 0 0.942959 0 0.212885 0 0.987522 ) #name: #archive #flags: 40 #model: #archiveInputFile #tabable: false #label: 'Archive' #defaultable: true ) ) ) )! ! Smalltalk.ImportForeignMarketPricesApp class instanceVariableNames: ''! !ImportForeignMarketPricesApp class methodsFor: 'defaults'! defaultInputFilename ^'C:\vw5i.3\image\BBPricesIn.csv' " ^'I:\Forest\Departments\Trading\JY\DevoeRisk_bb.csv'" "^'J:\Infoservices\Apps\TheoreticalModels\DevoeRisk_bb.csv'" "^'C:\TheoreticalValuations\DevoeRisk_BB.csv'" "^'J:\Infoservices\Apps\FrgnImport\jpyBond.csv'"! ! !ImportForeignMarketPricesApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Import Foreign Market Prices' #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 1438 119 2238 719 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 2 0 -100 1 25 0 ) #name: #inputFile #model: #inputFile #tabable: false #isReadOnly: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 5 5 ) #label: 'Input file' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -95 1 2 0 -47 1 25 0 ) #name: #browseInputFile #model: #browseInputFile #tabable: false #label: '...' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 62 0 -20 1 124 0 -2 1 ) #name: #update #flags: 40 #model: #updateRecs #tabable: false #label: 'Update' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 -20 1 60 0 -2 1 ) #name: #parse #flags: 40 #model: #parseInputFile #tabable: false #label: 'Parse' #defaultable: true ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 3 0 34 0 0 1.0 -6 0.5 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow symbol' #label: 'Security' #labelIsImage: false #width: 85 #rendererType: #Text #editorType: #None #type: #object #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow secTypeDescription' #label: 'Type' #labelIsImage: false #width: 76 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow persistentStorageCurrency' #label: 'Currency' #labelIsImage: false #width: 76 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow priorUnd' #label: 'Prior Und' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;-#,##0.0000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow priorForDisplay' #label: 'Prior' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;-#,##0.0000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow priceForDisplay' #label: 'Price' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;-#,##0.0000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow dailyPriceChangeForDisplay' #label: 'Change' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;-#,##0.0000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow priorBidForDisplay' #label: 'Prior Bid' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;-#,##0.0000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow bidForDisplay' #label: 'Bid' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;-#,##0.0000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow priorAskForDisplay' #label: 'Prior Ask' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;-#,##0.0000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow askForDisplay' #label: 'Ask' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;-#,##0.0000' ) ) #multipleSelections: false #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -60 1 -20 1 -2 1 -2 1 ) #model: #closeClicked #label: 'Close' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} -120 1 -20 1 -65 1 -2 1 ) #model: #dataSetModelSizeModel #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} -185 1 -20 1 ) #label: 'Records' ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 15 0.5 -2 1 -35 1 ) #name: #invalidRows #model: #invalidRowDataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow last' #label: 'Error' #labelIsImage: false #width: 198 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow first' #label: 'Original Line' #labelIsImage: false #width: 731 #rendererType: #Text #editorType: #None #noScroll: false ) ) #labelsAsButtons: true ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 6 0 -5 0.5 ) #label: 'Errors' ) ) ) )! windowSpecOld "UIPainter new openOnClass: self andSelector: #windowSpecOld" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Import Foreign Market Prices' #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 1383 222 2183 822 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 2 0 -100 1 25 0 ) #name: #inputFile #model: #inputFile #tabable: false #isReadOnly: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 5 5 ) #label: 'Input file' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -95 1 2 0 -47 1 25 0 ) #name: #browseInputFile #model: #browseInputFile #tabable: false #label: '...' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 62 0 -20 1 124 0 -2 1 ) #name: #update #flags: 40 #model: #updateRecs #tabable: false #label: 'Update' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 -20 1 60 0 -2 1 ) #name: #parse #flags: 40 #model: #parseInputFile #tabable: false #label: 'Parse' #defaultable: true ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 35 0 -2 1 -5 0.5 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow security' #label: 'Security' #labelIsImage: false #width: 85 #rendererType: #Text #editorType: #None #type: #object #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow secid' #label: 'SecId' #labelIsImage: false #width: 50 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow bloombergcusip' #label: 'BB Cusip' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow bloombergid' #label: 'BB Id' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow ticker' #label: 'Ticker' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow pxlast' #label: 'Last' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow chgnet1d' #label: 'Change' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow pxvolume' #label: 'Volume' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow pxbid' #label: 'Bid' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow pxask' #label: 'Ask' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow pxopen' #label: 'Open' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow pxclose1d' #label: 'Close' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) ) #multipleSelections: false #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -60 1 -20 1 -2 1 -2 1 ) #model: #closeClicked #label: 'Close' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} -120 1 -20 1 -65 1 -2 1 ) #model: #dataSetModelSizeModel #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} -185 1 -20 1 ) #label: 'Records' ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 15 0.5 -2 1 -35 1 ) #name: #invalidRows #model: #invalidRowDataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow last' #label: 'Error' #labelIsImage: false #width: 198 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow first' #label: 'Original Line' #labelIsImage: false #width: 731 #rendererType: #Text #editorType: #None #noScroll: false ) ) #labelsAsButtons: true ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 6 0 -5 0.5 ) #label: 'Errors' ) ) ) )! ! Smalltalk.ImportTheoreticalValuationApp class instanceVariableNames: ''! !ImportTheoreticalValuationApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Import TheoreticalValuations App' #min: #(#{Core.Point} 269 173 ) #max: #(#{Core.Point} 714 561 ) #bounds: #(#{Graphics.Rectangle} 283 232 997 793 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.116246 0 0.00713012 0 0.60084 0 0.0516934 ) #name: #inputFile #model: #inputFile #tabable: false #isReadOnly: true ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.00840336 0 0.0142602 ) #label: 'Input file' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.605042 0 0.00534759 0 0.647059 0 0.0516934 ) #name: #browseInputFile #model: #browseInputFile #tabable: false #label: '...' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0728291 0 0.942959 0 0.141457 0 0.987522 ) #name: #update #flags: 40 #model: #updateRecs #tabable: false #label: 'Update' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.00140056 0 0.942959 0 0.070028 0 0.987522 ) #name: #parse #flags: 40 #model: #parseInputFile #tabable: false #label: 'Parse' #defaultable: true ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 0 0.0748663 0 0.994398 0 0.442068 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow ticker' #label: 'Ticker' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow modelSource' #label: 'Model Source' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #center #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow secId' #label: 'Sec Id' #labelIsImage: false #width: 50 #rendererType: #Text #editorType: #None #alignment: #center #type: #number #noScroll: true #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow theoreticalValue' #label: 'Theor. val' #labelIsImage: false #width: 60 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow delta' #label: 'Delta' #labelIsImage: false #width: 47 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow rho' #label: 'Rho' #labelIsImage: false #width: 50 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow vega' #label: 'Vega' #labelIsImage: false #width: 50 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow spreadDuration' #label: 'Spread Duration' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow impliedVolatility' #label: 'Implied Volatility' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow overrideRho' #label: 'Override Rho' #labelIsImage: false #width: 70 #rendererType: #Text #editorType: #None #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow volatility' #label: 'Volatility' #labelIsImage: false #width: 50 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow creditSpread' #label: 'Credit Spread' #labelIsImage: false #width: 70 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow underlyingPrice' #label: 'Underlying Price' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow calculationDate' #label: 'Calculation Date' #labelIsImage: false #width: 100 #rendererType: #Text #editorType: #None #alignment: #center #type: #date #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow callPremium' #label: 'Call Prem' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow seniorPrice' #label: 'Senior Price' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,###.000;[Red]-#,###.000' ) ) #multipleSelections: false #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.Rectangle} 654 529 703 554 ) #model: #closeClicked #label: 'Close' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 578 529 651 554 ) #model: #dataSetModelSizeModel #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 523 534 ) #label: 'Records' ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.Rectangle} 1 270 713 523 ) #name: #invalidRows #model: #invalidRowDataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow first' #label: 'Error' #labelIsImage: false #width: 198 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentInvalidRow last' #label: 'Original Line' #labelIsImage: false #width: 731 #rendererType: #Text #editorType: #None #noScroll: false ) ) #labelsAsButtons: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 6 252 ) #label: 'Errors' ) ) ) )! ! !ImportTheoreticalValuationApp class methodsFor: 'defaults'! defaultInputFilename ^'I:\Forest\Departments\Trading\JY\DevoeRisk_bb.csv' "^'J:\Infoservices\Apps\TheoreticalModels\DevoeRisk_bb.csv'" "^'C:\TheoreticalValuations\DevoeRisk_BB.csv'" "^'J:\Infoservices\Apps\FrgnImport\jpyBond.csv'"! ! Smalltalk.PushClientImageStatusApp class instanceVariableNames: ''! !PushClientImageStatusApp class methodsFor: 'resources'! allocatedMemLabel ^self asLabel: 'Allocated\Memory'! asLabel: aString | text newStyle | newStyle := VariableSizeTextAttributes styleNamed: #systemDefault. text := aString withCRs asComposedText. newStyle lineGrid: 12. newStyle baseline: 12. text textStyle: newStyle. text setHeight: 28. ^text! blpCommLabel ^self asLabel: 'Bloomberg\Com'.! edenUsedBytesLabel ^self asLabel: 'Eden\Used'! forestModelLabel ^self asLabel: 'Forest\Model'! graphingAppsLabel ^self asLabel: 'Graphing\Apps'.! hostNameLabel ^self asLabel: '\Machine'.! incrementalGCStateLabel ^self asLabel: 'Incremental\GC State'! largeUsedBytesLabel ^self asLabel: 'Large\Used'! lastCommTimeLabel ^self asLabel: 'Last\Comm'.! lastFailureTimeLabel ^self asLabel: 'Last\Failure'.! loginTimeLabel ^self asLabel: 'Login\Time'.! oldDataBytesLabel ^self asLabel: 'Old\Used'! permDataBytesLabel ^self asLabel: 'Perm\Used'! portLabel ^self asLabel: '\Port'.! slaveProcessLabel ^self asLabel: 'Slave\Process'! statusLabel ^self asLabel: '\Status'.! survUsedBytesLabel ^self asLabel: 'Survivor\Used'! targetCommonLabel ^self asLabel: 'Target\Common'.! tradingLabel ^self asLabel: '\Trading'.! updatesLabel ^self asLabel: '\Updates'.! userLabel ^self asLabel: '\User'.! versionLabel ^self asLabel: '\Ver.'.! vwVersionLabel ^self asLabel: 'VW\Ver.'.! ! !PushClientImageStatusApp class methodsFor: 'interface specs'! windowSpec "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Push Clients Image Status' #min: #(#{Core.Point} 40 20 ) #max: #(#{Core.Point} 0 0 ) #bounds: #(#{Graphics.Rectangle} 47 185 1071 953 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.DataSetSpec} #properties: #(#{UI.PropertyListDictionary} #showHorizontalLines true #allowColumnResizing true #showVerticalLines true #allowColumnReordering false #allowSorting false ) #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 -50 1 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow user' #label: 'userLabel' #labelIsImage: true #width: 55 #rendererType: #Text #editorType: #None #noScroll: true ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow hostName' #label: #hostNameLabel #labelIsImage: true #width: 100 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow port' #label: #portLabel #labelIsImage: true #width: 35 #rendererType: #Text #editorType: #None #alignment: #center #type: #number #noScroll: false #formatString: '0' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow status' #label: #statusLabel #labelIsImage: true #width: 75 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow loginTime' #label: #loginTimeLabel #labelIsImage: true #width: 100 #rendererType: #Text #editorType: #None #alignment: #left #type: #timestamp #noScroll: false #formatString: 'm/d/yy h:mm AM/PM' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #labelFromApplication true #allowSorting true ) #model: #'currentRow vwVersion' #label: #vwVersionLabel #labelIsImage: true #width: 40 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleBlessing_Trading' #label: #tradingLabel #labelIsImage: true #width: 60 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleVersion_Trading' #label: #versionLabel #labelIsImage: true #width: 50 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleBlessing_TargetCommon' #label: #targetCommonLabel #labelIsImage: true #width: 60 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleVersion_TargetCommon' #label: #versionLabel #labelIsImage: true #width: 50 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleBlessing_SlaveProcesses' #label: #slaveProcessLabel #labelIsImage: true #width: 60 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleVersion_SlaveProcesses' #label: #versionLabel #labelIsImage: true #width: 50 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleBlessing_ForestModel' #label: #forestModelLabel #labelIsImage: true #width: 50 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleVersion_ForestModel' #label: #versionLabel #labelIsImage: true #width: 50 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleBlessing_Bloomberg_Com' #label: #blpCommLabel #labelIsImage: true #width: 70 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleVersion_Bloomberg_Com' #label: #versionLabel #labelIsImage: true #width: 50 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleBlessing_GraphingApps' #label: #graphingAppsLabel #labelIsImage: true #width: 60 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bundleVersion_GraphingApps' #label: #versionLabel #labelIsImage: true #width: 50 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow allocatedMem' #label: #allocatedMemLabel #labelIsImage: true #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #number #noScroll: false #formatString: '#,##0' ) ) #horizontalPolicy: #noWrap #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -25 1 75 0 -1 1 ) #name: #refreshData #model: #refreshData #tabable: false #label: 'Refresh' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 162 0 -25 1 326 0 -1 1 ) #name: #lastRefreshTime #flags: 0 #model: #lastRefreshTime #tabable: false #isReadOnly: true #type: #timestamp #formatString: 'm/d/yy h:mm:ss AM/PM' ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 90 0 -20 1 ) #name: #lastRefreshLabel #label: 'Last Refresh' ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -27 1 0 1 -26 1 ) #name: #Divider1 ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 12 369 ) #name: #Label1 ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 2 0 -45 1 ) #name: #Label2 #label: '* Allocated Memory is not complete' #style: #small ) ) ) )! ! Smalltalk.ActualMarketPriceApp class instanceVariableNames: ''! !ActualMarketPriceApp class methodsFor: 'application framework'! displayContext ^#'Price Marks'! ! !ActualMarketPriceApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Actual Price Marks' #min: #(#{Core.Point} 3350 440 ) #max: #(#{Core.Point} 767 563 ) #bounds: #(#{Graphics.Rectangle} 1300 362 1900 925 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.DataSetSpec} #properties: #(#{UI.PropertyListDictionary} #showHorizontalLines true #allowColumnResizing true #allowSorting false #allowColumnReordering false #showVerticalLines true ) #layout: #(#{Graphics.LayoutFrame} 2 0 33 0 0 0.996248 0 0.946714 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow pricedAt' #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #setCurrentRowDirty ) #label: 'Time' #labelIsImage: false #width: 126 #rendererType: #Text #editorType: #None #type: #timestamp #noScroll: false #formatString: 'mm/dd/yyyy h:mm AM/PM' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow pricedBy' #label: 'Priced by' #labelIsImage: false #width: 55 #rendererType: #Text #editorType: #None #type: #object #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow priceSource' #label: 'Price Source' #labelIsImage: false #width: 75 #rendererType: #Text #editorType: #None #type: #object #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bidForDisplay' #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #setCurrentRowDirty ) #label: 'Bid' #labelIsImage: false #width: 60 #rendererType: #Text #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow askForDisplay' #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #setCurrentRowDirty ) #label: 'Ask' #labelIsImage: false #width: 60 #rendererType: #Text #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow lastForDisplay' #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #setCurrentRowDirty ) #label: 'Last' #labelIsImage: false #width: 60 #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow priceForDisplay' #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #setCurrentRowDirty ) #label: 'Price' #labelIsImage: false #width: 60 #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow undPriceForDisplay' #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #setCurrentRowDirty ) #label: 'Undr Price' #labelIsImage: false #width: 60 #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.000' ) ) #horizontalPolicy: #noWrap #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.902439 0 0.953819 0 0.994371 0 0.998224 ) #name: #closeButton #model: #closeClicked #label: 'Close' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.00750469 0 0.953819 0 0.0994371 0 0.998224 ) #name: #save #flags: 40 #model: #saveClicked #tabable: false #label: 'Save' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.103189 0 0.953819 0 0.195122 0 0.998224 ) #name: #delete #flags: 40 #model: #deleteClicked #tabable: false #label: 'Delete' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 2 6 531 31 ) #flags: 0 #model: #'my displayString' #tabable: false #alignment: #center #isReadOnly: true ) ) ) )! ! Smalltalk.CreditDefaultSpotRateDisplayApp class instanceVariableNames: ''! !CreditDefaultSpotRateDisplayApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Credit Default Swap - Rates Display' #min: #(#{Core.Point} 297 440 ) #max: #(#{Core.Point} 2048 2048 ) #bounds: #(#{Graphics.Rectangle} 640 461 1173 1024 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.DataSetSpec} #properties: #(#{UI.PropertyListDictionary} #showHorizontalLines true #allowColumnResizing true #showVerticalLines true #allowColumnReordering false #allowSorting false ) #layout: #(#{Graphics.LayoutFrame} 2 0 33 0 0 0.996248 0 0.946714 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow yieldDate' #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #setCurrentRowDirty ) #label: 'Term Dates' #labelIsImage: false #width: 75 #rendererType: #Text #editorType: #None #alignment: #right #type: #date #noScroll: false #formatString: 'm/d/yyyy' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow yieldRate * 100' #label: 'Yield' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;[Red]-#,##0.0000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow spotRate * 100' #label: 'Spot' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;[Red]-#,##0.0000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow adjustedSpotRate * 100' #label: 'Adj. Spot' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;[Red]-#,##0.0000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow defaultProbability' #label: 'Def Prob.' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.0000;[Red]-#,##0.0000' ) ) #horizontalPolicy: #noWrap #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 -25 1 100 0 -1 1 ) #name: #accept #model: #accept #tabable: false #label: 'Close' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 2 6 531 31 ) #name: #title #flags: 0 #model: #title #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -100 1 -25 1 -2 1 -1 1 ) #name: #recalc #model: #recalc #tabable: false #label: 'Recalc' #defaultable: true ) ) ) )! ! Smalltalk.ExternalPricingApp class instanceVariableNames: ''! !ExternalPricingApp class methodsFor: 'application framework'! displayContext ^#'Pricing'! ! !ExternalPricingApp class methodsFor: 'interface specs'! windowSpec "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'External Pricing' #min: #(#{Core.Point} 269 173 ) #max: #(#{Core.Point} 2048 2048 ) #bounds: #(#{Graphics.Rectangle} 1600 600 2430 1200 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 75 0 1 0 0 0.500555 25 0 ) #name: #name #model: #'my name' #tabable: false #isReadOnly: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 1 3 ) #label: 'Pricing Source' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 75 0 26 0 0 0.500555 50 0 ) #name: #inputFile #model: #inputFile #tabable: false #isReadOnly: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 1 28 ) #label: 'Price File' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.5 26 0 25 0.5 50 0 ) #name: #browseInputFile #model: #browseInputFile #tabable: false #label: '...' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 76 0 -25 1 150 0 -1 1 ) #name: #update #flags: 40 #model: #updatePrices #tabable: false #label: 'Update' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -25 1 75 0 -1 1 ) #name: #parse #flags: 40 #model: #parseInputFile #tabable: false #label: 'Parse' #defaultable: true ) #(#{UI.DataSetSpec} #properties: #(#{UI.PropertyListDictionary} #showHorizontalLines true #allowColumnResizing true #showVerticalLines true #allowColumnReordering false ) #layout: #(#{Graphics.LayoutFrame} 1 0 51 0 -1 1 -26 1 ) #name: #dataSetModel #model: #dataSetModel #menu: #dataSetMenuHolder #columns: #( #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow priceAllInTraunchAsString' #callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #valueChangeSelector: #currentPriceInTraunchChanged ) #label: 'Trch' #labelIsImage: false #width: 18 #rendererType: #Text #editorType: #InputField #size: 1 #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow targetSymbol' #label: 'Target' #labelIsImage: false #width: 240 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow externalSymbolWithErrorColor' #label: 'External' #labelIsImage: false #width: 125 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow bid' #label: 'Bid' #labelIsImage: false #width: 60 #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: true #formatString: '$#,##0.000;[Red]-$#,##0.000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow ask' #label: 'Ask' #labelIsImage: false #width: 60 #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '$#,##0.000;[Red]-$#,##0.000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow last' #label: 'Last' #labelIsImage: false #width: 60 #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '$#,##0.000;[Red]-$#,##0.000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow price' #label: 'Price' #labelIsImage: false #width: 60 #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '$#,##0.000;[Red]-$#,##0.000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow undPrice' #label: 'Undr Price' #labelIsImage: false #width: 60 #rendererType: #Text #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '$#,##0.000;[Red]-$#,##0.000' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow pricedAt' #label: 'Priced at' #labelIsImage: false #width: 61 #rendererType: #Text #editorType: #None #type: #timestamp #noScroll: false #formatString: 'mm/dd/yyyy' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow pricedBy' #label: 'Source' #labelIsImage: false #width: 60 #rendererType: #Text #editorType: #None #noScroll: false ) ) #multipleSelections: false #labelsAsButtons: true ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} -200 1 3 0 ) #label: 'Price Update Date' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} -100 1 1 0 -1 1 25 0 ) #name: #inputDate #model: #inputDate #tabable: true #alignment: #center #isReadOnly: false #type: #date #formatString: 'mm/dd/yyyy' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -75 1 -25 1 -1 1 -1 1 ) #model: #closeClicked #label: 'Close' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} -150 1 -25 1 -76 1 -1 1 ) #model: #dataSetModelSizeModel #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} -200 1 -20 1 ) #label: 'Records' ) ) ) )! ! Smalltalk.TimeProfilingApp class instanceVariableNames: ''! !TimeProfilingApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Time Profiles' #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 304 259 834 767 ) #flags: 8 ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 4 0 -5 1 -25 1 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow profileContext' #label: 'Context' #labelIsImage: false #width: 250 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow startTime' #label: 'Start Time' #labelIsImage: false #width: 125 #rendererType: #Text #editorType: #None #alignment: #left #type: #timestamp #noScroll: false #formatString: 'm/d/yy h:mm AM/PM' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow runTime' #label: 'Run Time' #labelIsImage: false #width: 125 #rendererType: #Text #editorType: #None #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0.000' ) ) #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -20 0.25 -20 1 20 0.25 0 1 ) #name: #details #model: #details #tabable: false #label: 'Details' #defaultable: true ) #(#{UI.CheckBoxSpec} #layout: #(#{Core.Point} 363 484 ) #name: #enableProfiling #model: #enableProfiling #tabable: false #label: 'Enable Time Profiling' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 25 0.25 -20 1 75 0.25 0 1 ) #name: #refresh #model: #refresh #tabable: false #label: 'Refresh' #defaultable: true ) ) ) )! ! Smalltalk.CurveToMarketCapApp class instanceVariableNames: ''! !CurveToMarketCapApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Curve to Market Capital' #min: #(#{Core.Point} 269 173 ) #max: #(#{Core.Point} 652 497 ) #bounds: #(#{Graphics.Rectangle} 522 296 799 575 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.DataSetSpec} #layout: #(#{Graphics.Rectangle} 2 8 273 226 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow curve' #label: 'Curve' #labelIsImage: false #width: 50 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow minMarketCap' #label: 'From' #labelIsImage: false #width: 100 #rendererType: #Text #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow maxMarketCap' #label: 'To' #labelIsImage: false #width: 100 #editorType: #InputField #alignment: #right #type: #doubleFloat #noScroll: false #formatString: '#,##0;[Red]-#,##0' ) ) #labelsAsButtons: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.Rectangle} 2 237 55 262 ) #model: #save #label: 'Save all' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.Rectangle} 64 237 117 262 ) #model: #cancelClicked #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.Rectangle} 220 237 273 262 ) #model: #reload #label: 'Reload' #defaultable: true ) ) ) )! ! !CurveToMarketCapApp class methodsFor: 'utility'! createInitialTable "self createInitialTable" | tScan tExistingEntries tEntry | FullCurveScale all do: [:aCurveScale | tScan := Scan withFilter: (#(curve =) copyWith: aCurveScale curve). tExistingEntries := CurveToMarketCapital where: tScan. tExistingEntries isEmpty ifTrue:[ tEntry := CurveToMarketCapital new. tEntry curve: aCurveScale curve. tEntry save. ]. ].! ! !CurveToMarketCapApp class methodsFor: 'application framework'! displayContext ^#'Definition'! ! Smalltalk.InterestRateWorkoutApp class instanceVariableNames: ''! !InterestRateWorkoutApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Interest Rate Analysis' #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 261 203 891 662 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 6 5 176 32 ) #name: #displayString #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #red ) ) #model: #my #tabable: false #isReadOnly: true #type: #object ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.Rectangle} 2 65 156 417 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow timeDescription' #label: 'Time' #labelIsImage: false #width: 55 #rendererType: #Text #editorType: #None #noScroll: true ) #(#{UI.DataSetColumnSpec} #model: #'currentRow currentRate' #label: 'Rate' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #number #noScroll: false #formatString: '0.00000%' ) ) #horizontalPolicy: #noWrap #labelsAsButtons: true ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.Rectangle} 157 65 311 417 ) #name: #spotRateModel #model: #spotRateModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentSpotCurveRow timeDescription' #label: 'Time' #labelIsImage: false #width: 55 #rendererType: #Text #editorType: #None #noScroll: true ) #(#{UI.DataSetColumnSpec} #model: #'currentSpotCurveRow currentRate' #label: 'Rate' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #number #noScroll: false #formatString: '0.00000%' ) ) #horizontalPolicy: #noWrap #labelsAsButtons: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 10 43 ) #label: 'Yield Curve' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 157 43 ) #label: 'Spot Rate' ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.Rectangle} 312 65 466 417 ) #name: #forwardCurveModel #model: #forwardCurveModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentForwardCurveRow timeDescription' #label: 'Time' #labelIsImage: false #width: 55 #rendererType: #Text #editorType: #None #noScroll: true ) #(#{UI.DataSetColumnSpec} #model: #'currentForwardCurveRow currentRate' #label: 'Rate' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #number #noScroll: false #formatString: '0.00000%' ) ) #horizontalPolicy: #noWrap #labelsAsButtons: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 312 42 ) #label: 'Forward Curve' ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.Rectangle} 467 65 621 417 ) #name: #discountFactorModel #model: #discountFactorModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentDiscountFactorRow timeDescription' #label: 'Time' #labelIsImage: false #width: 55 #rendererType: #Text #editorType: #None #noScroll: true ) #(#{UI.DataSetColumnSpec} #model: #'currentDiscountFactorRow currentRate' #label: 'Rate' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #alignment: #right #type: #number #noScroll: false #formatString: '0.00000%' ) ) #horizontalPolicy: #noWrap #labelsAsButtons: true ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 466 41 ) #label: 'Discount Factor' ) ) ) )! ! Smalltalk.ExternalPriceSourceApp class instanceVariableNames: ''! !ExternalPriceSourceApp class methodsFor: 'application framework'! displayContext ^#'Mappings'! ! !ExternalPriceSourceApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'External Price Source' #min: #(#{Core.Point} 269 173 ) #max: #(#{Core.Point} 652 497 ) #bounds: #(#{Graphics.Rectangle} 1280 512 1802 1005 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.142035 0 0.0306122 ) #label: 'ID' ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.64751 0 0.0365112 ) #label: 'Last Updated' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.172414 0 0.0223124 0 0.363985 0 0.0730223 ) #name: #id #model: #'my id' #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.779693 0 0.0223124 0 0.971264 0 0.0730223 ) #name: #lastUpdated #model: #'my lastUpdated' #tabable: false #isReadOnly: true #type: #timestamp #formatString: 'm/d/yy h:mm AM/PM' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.172414 0 0.0730223 0 0.676245 0 0.123732 ) #name: #name #model: #'my name' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.854406 0 0.0750507 0 0.971264 0 0.123732 ) #name: #abbreviation #model: #'my abbreviation' #numChars: 10 ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.105364 0 0.0811359 ) #label: 'Name' ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.731801 0 0.0811359 ) #label: 'Abbreviation' ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} -1 0 0 0.133874 ) #label: 'Parse File Method' ) #(#{UI.ComboBoxSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.172414 0 0.123732 0 0.532567 0 0.174442 ) #name: #parseFileMethod #model: #'my parseFileMethod' #comboList: #parseFileMethodChoices ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0.0344828 0 0.186613 ) #label: 'Root input file' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.172414 0 0.174442 0 0.363985 0 0.225152 ) #name: #inputFileRoot #model: #'my inputFileRoot' ) #(#{UI.DataSetSpec} #properties: #(#{UI.PropertyListDictionary} #showHorizontalLines true #allowColumnResizing true #allowSorting false #allowColumnReordering false #showVerticalLines true ) #layout: #(#{Graphics.LayoutFrame} 0 0.00383142 0 0.288032 0 1.0 0 0.991886 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow targetSymbol' #label: 'Target Symbol' #labelIsImage: false #width: 300 #rendererType: #Text #editorType: #None #alignment: #left #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true ) #model: #'currentRow externalKey' #label: 'Source Key' #labelIsImage: false #width: 200 #rendererType: #Text #editorType: #None #noScroll: false ) ) #labelsAsButtons: true ) ) ) )! ! Smalltalk.SetTradeUploadStatusApp class instanceVariableNames: ''! !SetTradeUploadStatusApp class methodsFor: 'interface specs'! buttonSpec "Tools.UIPainter new openOnClass: self andSelector: #buttonSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Ticket Upload Status' #min: #(#{Core.Point} 100 100 ) #max: #(#{Core.Point} 767 563 ) #bounds: #(#{Graphics.Rectangle} 1920 600 2403 629 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -80 1 0 0 -5 1 0 1 ) #name: #cancelClicked #model: #cancel #tabable: false #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 0 0 80 0 0 1 ) #name: #save #model: #saveClicked #tabable: false #label: 'Save' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 90 0 0 0 165 0 0 1 ) #name: #selectAllButton #model: #selectAllClicked #tabable: false #label: 'Select ALL' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 165 0 0 0 240 0 0 1.0 ) #name: #unselectAllButton #model: #unselectAllClicked #tabable: false #label: 'Unselect ALL' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -165 1 0 0 -90 1 0 1 ) #name: #markAsNEWButton #model: #markAsNEWClicked #tabable: false #label: 'Mark as NEW' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -240 1 0 0 -165 1 0 1 ) #name: #markAsCORButton #model: #markAsCORClicked #tabable: false #label: 'Mark as COR' #defaultable: true ) ) ) )! windowSpec "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Ticket Upload Status' #min: #(#{Core.Point} 100 100 ) #max: #(#{Core.Point} 767 563 ) #bounds: #(#{Graphics.Rectangle} 1920 600 2431 949 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ProgressWidgetSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -25 1 0 1 0 1 ) #name: #progressBar #isOpaque: true #model: #progressModel #direction: #horizontal #position: #topLeft #area: true #reverse: false ) #(#{UI.DataSetSpec} #properties: #(#{UI.PropertyListDictionary} #showHorizontalLines true #allowColumnResizing true #showVerticalLines true #allowColumnReordering false #allowSorting false ) #layout: #(#{Graphics.LayoutFrame} 2 0 33 0 -2 1 -27 1 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true #labelFromApplication false ) #model: #'currentRow uploadIndicator' #label: 'Upload?' #labelIsImage: false #width: 50 #rendererType: #CheckBox #editorType: #CheckBox #type: #timestamp #noScroll: false #formatString: 'mm/dd/yyyy h:mm AM/PM' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true #labelFromApplication false ) #model: #'currentRow uploadType' #label: 'Type' #labelIsImage: false #width: 75 #rendererType: #Text #editorType: #ComboBox #choices: #uploadTypeChoices #noScroll: false #formatString: '' ) #(#{UI.DataSetColumnSpec} #properties: #(#{UI.PropertyListDictionary} #allowSorting true #labelFromApplication false ) #model: #'currentRow uploadPartyName' #label: 'To' #labelIsImage: false #width: 250 #rendererType: #Text #editorType: #None #type: #object #noScroll: false #formatString: '' ) ) #horizontalPolicy: #noWrap #labelsAsButtons: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 0 0 -2 1 31 0 ) #flags: 0 #model: #titleHolder #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -25 1 0 1 0 1 ) #name: #buttonCanvas #flags: 0 #minorKey: #buttonSpec ) ) ) )! ! Smalltalk.RiskExposureApp class instanceVariableNames: ''! !RiskExposureApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Risk Exposure' #bounds: #(#{Graphics.Rectangle} 1530 250 2311 775 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 30 0 -2 1 -150 1 ) #name: #dataSetModel #model: #dataSetModel #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow enabled' #label: 'Enabled' #labelIsImage: false #width: 80 #rendererType: #CheckBox #editorType: #CheckBox #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow descriptionWithParams' #label: 'Rule' #labelIsImage: false #width: 595 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow result' #label: 'Results' #labelIsImage: false #width: 80 #rendererType: #ActionButton #editorType: #ActionButton #noScroll: false ) ) #horizontalPolicy: #noWrap #labelsAsButtons: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 66 0 2 0 -2 1 30 0 ) #name: #name #model: #'my name' #tabable: true #isReadOnly: false ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 -45 1 56 0 -23 1 ) #name: #addRule #model: #addRule #tabable: false #label: 'Add Rule' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 56 0 -45 1 110 0 -23 1 ) #name: #removeRule #model: #removeRule #tabable: false #label: 'Remove' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 110 0 -45 1 164 0 -23 1 ) #name: #modifyRule #model: #modifyRule #tabable: false #label: 'Modify' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 -23 1 56 0 -1 1 ) #name: #save #model: #saveRuleSet #tabable: false #label: 'Save' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 56 0 -23 1 110 0 -1 1 ) #name: #load #model: #loadRuleSet #tabable: false #label: 'Load' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 110 0 -23 1 164 0 -1 1 ) #name: #newRuleSet #model: #newRuleSet #tabable: false #label: 'New' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 205 0 -24 1 259 0 -2 1 ) #name: #analyze #model: #analyze #tabable: false #label: 'Analyze' #defaultable: true ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.399488 -47 1 0 1.0 0 0.99619 ) #name: #sourceParametersSpec #flags: 0 #majorKey: #{BasketGroupMakerApp} #minorKey: #sourceParametersSpec #clientKey: #sourceApp ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 2 0 -150 1 -2 1 -50 1 ) #name: #descriptionWithParams #flags: 12 #model: #'currentRow descriptionWithParams' #tabable: false #isReadOnly: true #tabRequiresControl: false ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 2 2 65 30 ) #name: #nameLabel #flags: 0 #model: #'''Name: ''' #tabable: false #isReadOnly: true ) ) ) )! ! !RiskExposureApp class methodsFor: 'testing'! test "self test" (self value: RiskExposureRuleSet testRuleSet) open! ! !RiskExposureApp class methodsFor: 'domain'! valueClassName ^#RiskExposureRuleSet! ! Smalltalk.FISStatusDisplay class instanceVariableNames: ''! !FISStatusDisplay class methodsFor: 'actions'! oldTitled: aTitle message: aString | anInstance dlg | "Create and instance of SimpleDialog to hold the loginDialog View" anInstance := self new. anInstance statusMessage value: aString. dlg := FISSimpleDialog new. aTitle notNil ifTrue:[ anInstance windowTitle: aTitle]. dlg openFrom: anInstance centered: #progressStatusSpec. ^anInstance! titled: aTitle message: aString | statusDisplay | statusDisplay := self new. statusDisplay statusMessage value: aString. aTitle notNil ifTrue:[ statusDisplay windowTitle: aTitle]. statusDisplay open "CenteredDialog". "openInterfaceCentered: #progressStatusSpec from: statusDisplay." ^statusDisplay! ! !FISStatusDisplay class methodsFor: 'interface specs'! progressStatusSpec "UIPainter new openOnClass: self andSelector: #progressStatusSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'WindowTitle' #min: #(#{Core.Point} 340 173 ) #max: #(#{Core.Point} 485 385 ) #bounds: #(#{Graphics.Rectangle} 335 330 818 535 ) #flags: 8 #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0125261 0 0.039801 0 0.997912 0 0.472637 ) #flags: 4 #model: #statusMessage #isReadOnly: true #tabRequiresControl: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.367432 0 0.820895 0 0.5762 0 0.935323 ) #model: #cancelClicked #label: 'Cancel' #isDefault: false #defaultable: true ) #(#{UI.ProgressWidgetSpec} #layout: #(#{Graphics.Rectangle} 32 109 429 136 ) #isOpaque: true #model: #progressRatio #direction: #horizontal #position: #topLeft #area: true #reverse: false ) ) ) )! windowSpec "UIPainter new openOnClass: self andSelector: #progressStatusSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'WindowTitle' #min: #(#{Core.Point} 340 173 ) #max: #(#{Core.Point} 485 385 ) #bounds: #(#{Graphics.Rectangle} 335 330 818 535 ) #flags: 8 #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0125261 0 0.039801 0 0.997912 0 0.472637 ) #flags: 4 #model: #statusMessage #isReadOnly: true #tabRequiresControl: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.367432 0 0.820895 0 0.5762 0 0.935323 ) #model: #cancelClicked #label: 'Cancel' #isDefault: false #defaultable: true ) #(#{UI.ProgressWidgetSpec} #layout: #(#{Graphics.Rectangle} 32 109 429 136 ) #isOpaque: true #model: #progressRatio #direction: #horizontal #position: #topLeft #area: true #reverse: false ) ) ) )! ! Smalltalk.FISProcessStatusDisplay class instanceVariableNames: ''! !FISProcessStatusDisplay class methodsFor: 'utility'! showProgressWhile: pBlock ^self new showProgressWhile: pBlock! ! Smalltalk.EnvironmentLoginApplication class instanceVariableNames: ''! !EnvironmentLoginApplication class methodsFor: 'resources'! connectImage "UIMaskEditor new openOnClass: self andSelector: #connectImage" ^CachedImage on: (Image extent: 48@32 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 yellow; at: 5 put: ColorValue cyan; at: 6 put: (ColorValue scaledRed: 4112 scaledGreen: 4112 scaledBlue: 4112); at: 7 put: (ColorValue scaledRed: 0 scaledGreen: 4112 scaledBlue: 0); yourself)) usingBits: (ByteArray fromPackedString: 'DQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQD@@@@@@@@@@QDQDQDQDQDQDQDQDQDQDQ@RD!!HPD!!HRDADQDQDQDQDQDQDQDQDQDPD2H2HPD"L"LPDQDQDQDQDQDQDQDQDQDAL"A@HPD DBH1@QDQDQDQDQDQDP@@@@@CH"@PLPD0DBH#@@@@@@DQDQDQDRH2H2H2H"A@HPD DBL"L"L"L"DQDQDQDQDQDQDRH2@PHPD DBH"DQDQDQDQDQDQDVU%YVU!!H"A@HPD DBH!!YVU%YVDQDQDQDP@@@@@AL"@PLPD0DBH1@@@@@@DQDQDQDQDQDQDFD2A@HPD DBLV@QDQDQDQDQDQDQDQDQDPXQDQDPDQDQE DQDQDQDQDQDQDQDQDQDQA%YVU YVU%XADQDQDQDQDQDQDQDQDQDQD@@@@@@@@@@QDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDP@@DQDQDQDQDQDQDQDQDQDQDQDQDQDQDADQ@QDQDQDQDQDQDQDQDQDQDPDQDQDQDADQDQDQDQDQDQDQDQDQDQDQDPDQDQDQDADQDQ@@DPD@DPD@DQ@@DQ@@DP@QDQDQDADQDPDQ@P@Q@P@Q@PDQ@PDQ@PDQDQDQDADQDPDQ@PDQ@PDQ@P@@@PDQDPDQDQDQDADQDPDQ@PDQ@PDQ@PDQDPDQDPDQDQDQDADQ@PDQ@PDQ@PDQ@PDQ@PDQ@PDQDQDQDP@@DQ@@DPDQ@PDQ@Q@@DQ@@DQ@QDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQ'))! ! !EnvironmentLoginApplication class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Login' #min: #(#{Core.Point} 269 173 ) #max: #(#{Core.Point} 424 186 ) #bounds: #(#{Graphics.Rectangle} 428 426 852 599 ) #flags: 8 #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.LabelSpec} #layout: #(#{Core.Point} 30 32 ) #label: 'Environment' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 43 85 ) #label: 'Login Id:' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 35 116 ) #label: 'Password:' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 323 0 -55 0.5 392 0 -5 0.5 ) #model: #accept #tabable: false #label: #connectImage #hasCharacterOrientedLabel: false #isDefault: true #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 324 0 5 0.5 393 0 55 0.5 ) #model: #cancel #tabable: false #label: 'Cancel' #defaultable: true ) #(#{UI.GroupBoxSpec} #layout: #(#{Graphics.Rectangle} 5 7 402 156 ) ) #(#{UI.GroupBoxSpec} #layout: #(#{Graphics.Rectangle} 11 57 313 147 ) #label: 'Login' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 98 76 298 103 ) #name: #userName #model: #userName #isReadOnly: false ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 98 107 298 134 ) #model: #password #isReadOnly: false #type: #password ) #(#{UI.ComboBoxSpec} #layout: #(#{Graphics.Rectangle} 99 31 299 58 ) #model: #environment #comboList: #environments ) ) ) )! ! Smalltalk.ProgressApp class instanceVariableNames: ''! !ProgressApp class methodsFor: 'interface specs'! oneLineSpec "UIPainter new openOnClass: self andSelector: #oneLineSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Review Transactions' #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 241 501 1040 523 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ProgressWidgetSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.5 0 0 0 1 18 0 ) #name: #progressModel #isOpaque: true #model: #progressModel #direction: #horizontal #position: #topLeft #area: true #reverse: false ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.498123 18 0 ) #name: #progressActivity #flags: 0 #model: #progressActivityModel #tabable: false #alignment: #right #isReadOnly: true ) ) ) )! progressSpec "UIPainter new openOnClass: self andSelector: #progressSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Review Transactions' #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 1521 492 2320 533 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ProgressWidgetSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 20 0 0 1 38 0 ) #name: #progressModel #isOpaque: true #model: #progressModel #direction: #horizontal #position: #topLeft #area: true #reverse: false ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 0 0 0 1 18 0 ) #name: #progressActivity #flags: 0 #model: #progressActivityModel #tabable: false #alignment: #center #isReadOnly: true ) ) ) )! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Progress' #min: #(#{Core.Point} 40 20 ) #bounds: #(#{Graphics.Rectangle} 329 263 662 304 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ProgressWidgetSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 20 0 0 1 38 0 ) #name: #progressModel #isOpaque: true #model: #progressModel #direction: #horizontal #position: #topLeft #area: true #reverse: false ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 0 0 0 1 18 0 ) #name: #progressActivity #flags: 0 #model: #progressActivityModel #tabable: false #alignment: #center #isReadOnly: true ) ) ) )! ! Smalltalk.SlaveStatusBrowser class instanceVariableNames: ''! !SlaveStatusBrowser class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Slave Status' #bounds: #(#{Graphics.Rectangle} 1725 351 2116 674 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 1 0 80 25 ) #name: #currentActivityLabel #model: #'''Activity''' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 0 0 -1 1 25 0 ) #name: #currentActivity #model: #'my currentActivity' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -101 1 80 0 -76 1 ) #name: #highestErrorLabel #model: #'''Highest''' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 -101 1 154 0 -76 1 ) #name: #highestErrorString #model: #'my highestErrorString' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 155 0 -101 1 -1 1 -76 1 ) #name: #highestErrorMessage #model: #'my highestErrorMessage' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -75 1 80 0 -51 1 ) #name: #currentErrorLabel #model: #'''Current''' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 -75 1 154 0 -51 1 ) #name: #currentErrorString #model: #'my currentErrorString' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 155 0 -75 1 -1 1 -51 1 ) #name: #currentErrorMessage #model: #'my currentErrorMessage' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -50 1 80 0 -26 1 ) #name: #objectStoreEnvironmentLabel #model: #'''Environment''' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 -50 1 -100 1 -26 1 ) #name: #objectStoreEnvironment #model: #'my objectStoreEnvironment' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.ProgressWidgetSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -25 1 0 1 0 1 ) #name: #progress #isOpaque: true #model: #progress #direction: #horizontal #position: #topLeft #area: true #reverse: false ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} -99 1 -50 1 -1 1 -26 1 ) #name: #currentState #model: #'my currentState' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 26 0 -1 1 51 0 ) #name: #currentDetails #model: #'my currentDetails' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 52 0 -1 1 -102 1 ) #name: #dataSetModel #model: #dataSetModel #tabable: false #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow activityDateTime' #label: 'Time' #labelIsImage: false #width: 65 #rendererType: #Text #editorType: #None #type: #timestamp #noScroll: false #formatString: 'hh:mm:ss AM/PM' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow activityKey' #label: 'Key' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow activityErrorCode' #label: 'Err' #labelIsImage: false #width: 20 #rendererType: #Text #editorType: #None #alignment: #center #type: #number #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow activityDetail' #label: 'Details' #labelIsImage: false #width: 500 #rendererType: #Text #editorType: #None #noScroll: false ) ) #labelsAsButtons: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 1 26 80 51 ) #name: #blankLabel1 #model: #'''Details''' #tabable: false #alignment: #center #isReadOnly: true ) ) ) )! windowSpec2 "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Slave Status' #bounds: #(#{Graphics.Rectangle} 1725 351 2116 674 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 1 0 80 25 ) #name: #currentActivityLabel #model: #'''Activity''' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 0 0 -1 1 25 0 ) #name: #currentActivity #model: #'my currentActivity' #tabable: false #isReadOnly: true ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 26 0 -1 1 -102 1 ) #name: #slaveCurrentDetails #flags: 12 #model: #'my currentDetails' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -101 1 80 0 -76 1 ) #name: #highestErrorLabel #model: #'''Highest''' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 -101 1 154 0 -76 1 ) #name: #highestErrorString #model: #'my highestErrorString' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 155 0 -101 1 -1 1 -76 1 ) #name: #highestErrorMessage #model: #'my highestErrorMessage' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -75 1 80 0 -51 1 ) #name: #currentErrorLabel #model: #'''Current''' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 -75 1 154 0 -51 1 ) #name: #currentErrorString #model: #'my currentErrorString' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 155 0 -75 1 -1 1 -51 1 ) #name: #currentErrorMessage #model: #'my currentErrorMessage' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -50 1 80 0 -26 1 ) #name: #objectStoreEnvironmentLabel #model: #'''Environment''' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 -50 1 -100 1 -26 1 ) #name: #objectStoreEnvironment #model: #'my objectStoreEnvironment' #tabable: false #isReadOnly: true ) #(#{UI.ProgressWidgetSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -25 1 0 1 0 1 ) #name: #progress #isOpaque: true #model: #progress #direction: #horizontal #position: #topLeft #area: true #reverse: false ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} -99 1 -50 1 -1 1 -26 1 ) #name: #currentState #model: #'my currentState' #tabable: false #isReadOnly: true ) ) ) )! windowSpec3 "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Slave Status' #bounds: #(#{Graphics.Rectangle} 1085 351 1476 674 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 1 0 80 25 ) #name: #currentActivityLabel #model: #'''Activity''' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 0 0 -1 1 25 0 ) #name: #currentActivity #model: #'my currentActivity' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -101 1 80 0 -76 1 ) #name: #highestErrorLabel #model: #'''Highest''' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 -101 1 154 0 -76 1 ) #name: #highestErrorString #model: #'my highestErrorString' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 155 0 -101 1 -1 1 -76 1 ) #name: #highestErrorMessage #model: #'my highestErrorMessage' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -75 1 80 0 -51 1 ) #name: #currentErrorLabel #model: #'''Current''' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 -75 1 154 0 -51 1 ) #name: #currentErrorString #model: #'my currentErrorString' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 155 0 -75 1 -1 1 -51 1 ) #name: #currentErrorMessage #model: #'my currentErrorMessage' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 -50 1 80 0 -26 1 ) #name: #objectStoreEnvironmentLabel #model: #'''Environment''' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 81 0 -50 1 -100 1 -26 1 ) #name: #objectStoreEnvironment #model: #'my objectStoreEnvironment' #tabable: false #isReadOnly: true ) #(#{UI.ProgressWidgetSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -25 1 0 1 0 1 ) #name: #progress #isOpaque: true #model: #progress #direction: #horizontal #position: #topLeft #area: true #reverse: false ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} -99 1 -50 1 -1 1 -26 1 ) #name: #currentState #model: #'my currentState' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 26 0 -1 1 51 0 ) #name: #currentDetails #model: #'my currentDetails' #tabable: false #isReadOnly: true ) #(#{UI.DataSetSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 52 0 -1 1 -102 1 ) #name: #dataSetModel #model: #dataSetModel #tabable: false #columns: #( #(#{UI.DataSetColumnSpec} #model: #'currentRow activityDateTime' #label: 'Time' #labelIsImage: false #width: 65 #rendererType: #Text #editorType: #None #type: #timestamp #noScroll: false #formatString: 'hh:mm:ss AM/PM' ) #(#{UI.DataSetColumnSpec} #model: #'currentRow activityKey' #label: 'Key' #labelIsImage: false #width: 80 #rendererType: #Text #editorType: #None #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow activityErrorCode' #label: 'Err' #labelIsImage: false #width: 20 #rendererType: #Text #editorType: #None #alignment: #center #type: #number #noScroll: false ) #(#{UI.DataSetColumnSpec} #model: #'currentRow activityDetail' #label: 'Details' #labelIsImage: false #width: 500 #rendererType: #Text #editorType: #None #noScroll: false ) ) #labelsAsButtons: true ) ) ) )! ! Smalltalk.JobLauncherStatusApp class instanceVariableNames: ''! !JobLauncherStatusApp class methodsFor: 'interface specs'! runningButtonsSpec "UIPainter new openOnClass: self andSelector: #runningButtonsSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Job Launcher Status' #bounds: #(#{Graphics.Rectangle} 919 872 1292 912 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 1 0 0 0.5 -1 1 ) #name: #resumeJob #flags: 24 #model: #resumeJob #tabable: false #label: 'Resume' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 1 0 0 0.25 -1 1 ) #name: #cancelJob #model: #cancelJob #tabable: false #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 1 0 0 0.5 -1 1 ) #name: #pauseJob #model: #pauseJob #tabable: false #label: 'Pause' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 1 0 0 1 -1 1 ) #name: #inspectJob #model: #inspectJob #tabable: false #label: 'Inspect' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 1 0 0 0.75 -1 1 ) #name: #debugForkedProcess #model: #debugForkedProcess #tabable: false #label: 'Debug' #defaultable: true ) ) ) )! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Job Launcher Status' #bounds: #(#{Graphics.Rectangle} 1597 244 2243 781 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 1 80 25 ) #name: #jobId #model: #'my jobId' #tabable: false #alignment: #center #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 1 0 -1 1 25 0 ) #name: #jobName #model: #'my jobName' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 26 80 51 ) #name: #currentActivityLabel #model: #'''Job Activity''' #tabable: false #alignment: #center #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 26 0 -1 1 51 0 ) #name: #currentActivity #model: #'my currentActivity' #tabable: false #alignment: #center #isReadOnly: true ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 52 0 0 1 -26 1 ) #name: #slaveStatusApp #flags: 0 #majorKey: #{SlaveStatusBrowser} #minorKey: #windowSpec #clientKey: #slaveStatusApp ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -25 1 1 1 0 1 ) #name: #runningSpec #flags: 0 #majorKey: #{JobLauncherStatusApp} #minorKey: #runningButtonsSpec ) ) ) )! windowSpec1 "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Job Launcher Status' #bounds: #(#{Graphics.Rectangle} 439 217 826 592 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.142119 0 0.922667 0 0.260982 0 0.989333 ) #name: #resumeJob #flags: 24 #model: #resumeJob #tabable: false #label: 'Resume' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 1 80 25 ) #name: #jobIdLabel #model: #'''Job id''' #tabable: false #alignment: #right #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 82 1 200 25 ) #name: #jobId #model: #'domainHolder jobId' #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 26 80 51 ) #name: #jobNameLabel #model: #'''Name''' #tabable: false #alignment: #right #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 82 0 26 0 -1 1 51 0 ) #name: #jobName #model: #'domainHolder jobName' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 52 80 77 ) #name: #processLabel #model: #'''Process''' #tabable: false #alignment: #right #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 52 0 -1 1 77 0 ) #model: #'domainHolder jobClassName' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 78 80 103 ) #name: #errorCodeLabel #model: #'''Error Code''' #tabable: false #alignment: #right #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 80 78 200 103 ) #name: #jobErrorCode #model: #'domainHolder jobErrorCode' #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 300 0 78 0 -1 1 103 0 ) #name: #job #model: #'domainHolder job' #tabable: false #isReadOnly: true #type: #object ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 104 80 129 ) #name: #currentActivityLabel #model: #'''Current Activity''' #tabable: false #alignment: #right #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 104 0 -1 1 129 0 ) #model: #'domainHolder currentActivity' #tabable: false #isReadOnly: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.0258398 0 0.922667 0 0.144703 0 0.989333 ) #model: #cancelJob #tabable: false #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.142119 0 0.922667 0 0.260982 0 0.989333 ) #name: #pauseJob #model: #pauseJob #tabable: false #label: 'Pause' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 201 78 299 103 ) #name: #definitionLabel #model: #'''Definition''' #tabable: false #isReadOnly: true #type: #string ) ) ) )! windowSpec2 "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Job Launcher Status' #bounds: #(#{Graphics.Rectangle} 1727 325 2114 700 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 51 0 -25 1 102 0 -1 1 ) #name: #resumeJob #flags: 24 #model: #resumeJob #tabable: false #label: 'Resume' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 1 80 25 ) #name: #jobIdLabel #model: #'''Job id''' #tabable: false #alignment: #center #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 80 1 200 25 ) #name: #jobId #model: #'my jobId' #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 26 80 51 ) #name: #jobNameLabel #model: #'''Name''' #tabable: false #alignment: #center #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 26 0 -1 1 51 0 ) #name: #jobName #model: #'my jobName' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 52 80 77 ) #name: #processLabel #model: #'''Process''' #tabable: false #alignment: #center #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 52 0 -1 1 77 0 ) #name: #jobClassName #model: #'my jobClassName' #tabable: false #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 78 80 103 ) #name: #errorCodeLabel #model: #'''Error Code''' #tabable: false #alignment: #center #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 80 78 200 103 ) #name: #jobErrorCode #model: #'my jobErrorCode' #tabable: false #alignment: #right #isReadOnly: true #type: #number #formatString: '0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 300 0 78 0 -1 1 103 0 ) #name: #job #model: #'my job' #tabable: false #isReadOnly: true #type: #object ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 0 104 80 129 ) #name: #currentActivityLabel #model: #'''Current Activity''' #tabable: false #alignment: #center #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 80 0 104 0 -1 1 129 0 ) #name: #currentActivity #model: #'my currentActivity' #tabable: false #isReadOnly: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 5 0 -25 1 50 0 -1 1 ) #model: #cancelJob #tabable: false #label: 'Cancel' #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 51 0 -25 1 102 0 -1 1 ) #name: #pauseJob #model: #pauseJob #tabable: false #label: 'Pause' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 201 78 299 103 ) #name: #definitionLabel #model: #'''Definition''' #tabable: false #alignment: #center #isReadOnly: true #type: #string ) ) ) )! ! Smalltalk.TargetDomainNewAdaptor class instanceVariableNames: ''! !TargetDomainNewAdaptor class methodsFor: 'resources'! asLabel: aString | text newStyle | newStyle := VariableSizeTextAttributes styleNamed: #systemDefault. text := aString withCRs asComposedText. newStyle lineGrid: 12. newStyle baseline: 12. text textStyle: newStyle. text setHeight: 14. ^text! ! Smalltalk.UserNotesBoxApp class instanceVariableNames: ''! !UserNotesBoxApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'User Notes' #bounds: #(#{Graphics.Rectangle} 378 450 903 575 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{FFISShadowFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #userNotes #flags: 0 #colorPolicy: #bar #model: #'my userNotes' #tabable: true #style: #'Target Default' #isReadOnly: false ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #flags: 0 #colorPolicy: #none #model: #displayUserNotes #tabable: false #defaultable: true ) ) ) )! ! Smalltalk.TradeScenarioValuationApp class instanceVariableNames: ''! !TradeScenarioValuationApp class methodsFor: 'shared specs'! breakEvenSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: #baseBreakEvenLabel); add: (self strLabelFieldSpec model: #undBreakEvenLabel). ^specs! breakEvenStraightSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: #baseBreakEvenStraightLabel); add: ((self emptyFieldSpec ) name:#emptyA3). ^specs! breakEvenZeroSpecs | tSpecs | tSpecs := self breakEvenSpecs. " tSpecs addFirst: ((self emptyFieldSpec ) name:#empty). tSpecs addFirst: ((self emptyFieldSpec ) name:#empty1). tSpecs addFirst: ((self emptyFieldSpec ) name:#empty9)." ^tSpecs! emptySpecs: aCount "Generate aCount empty specs" | specs | specs := OrderedCollection new. aCount timesRepeat: [specs add: ((self emptyFieldSpec ) name:#empty)]. ^specs! fvIntSensSpecs | specs | specs :=OrderedCollection new. specs add: (self strBarLabelFieldSpec model: 'FV' printString asSymbol ); add: (self strBarLabelFieldSpec model: 'Risk Limits' printString asSymbol). ^specs! fvIntSensSwapSpecs | specs | specs :=OrderedCollection new. specs add: (self strBarLabelFieldSpec model: 'FV' printString asSymbol ). " add: (self strBarLabelFieldSpec model: 'Int Sens' printString asSymbol)." ^specs! fvSensSpecs | specs | specs :=OrderedCollection new. specs add: (self strBarLabelFieldSpec model: 'Risk Limits' printString asSymbol ). ^specs! leverageSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'Leverage' printString asSymbol). ^specs! parityPremiumSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'Parity' printString asSymbol); add: (self strLabelFieldSpec model: 'Prm %' printString asSymbol); add: (self strLabelFieldSpec model: 'Prm' printString asSymbol). ^specs! premiumWarrantSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'Prm %' printString asSymbol); add: (self strLabelFieldSpec model: 'Wrt Prem' printString asSymbol). ^specs! roiAcrSpecs | specs | specs := self roiSpecs. specs add: (self strBarROFieldSpec model: 'Acr %' printString asSymbol). specs add: ((self emptyFieldSpec ) name:#empty111). specs add: ((self emptyFieldSpec ) name:#empty112). specs add: ((self emptyFieldSpec ) name:#empty113). ^specs! roiSpecs | specs | specs := OrderedCollection new. specs add: (self strBarShadowFieldSpec model: 'ROI %' printString asSymbol); add: (self shadowButtonSpec model: #displayROI); add: (self strBarShadowFieldSpec model: 'ROI $ (USD)' printString asSymbol); add: (self shadowButtonSpec model: #displayROI). ^specs! seniorQtySpecs ^OrderedCollection with: (self strLabelFieldSpec model: 'Qty' printString asSymbol).! seniorStockQtySpecs ^Array with: (self strLabelFieldSpec model: #'my baseQtyLabel') with: ((self emptyFieldSpec ) name:#emptyLabel1).! seniorStockSpecs | specs | specs := OrderedCollection new. specs add: (self strShadowFieldSpec model: #'my baseSymbol'); add: (self shadowButtonSpec model: #backupViewOnSeniorSecurityPopup). ^specs! seniorUnderlyingCreditDefaultSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'Spread' printString asSymbol); add: (self strShadowFieldSpec model: #'my seniorSymbol'); add: (self shadowButtonSpec model: #backupViewOnSeniorSecurityPopup); add: (self strShadowFieldSpec model: #'my undrSymbol'); add: (self shadowButtonSpec model: #backupViewOnUnderlyingSecurityPopup). "add: (self shadowButtonSpec model: #swapPaidOutTradingPopup)." ^specs! seniorUnderlyingPaidOutSwapSpecs | specs | specs := OrderedCollection new. specs add: (self strShadowFieldSpec model: #'my securityPaidOut symbol'); add: (self shadowButtonSpec model: #backupViewOnTradedSecurityPopup); add: (self strShadowFieldSpec model: #'my seniorSymbol'); add: (self shadowButtonSpec model: #backupViewOnSeniorSecurityPopup); add: (self strShadowFieldSpec model: #'''Strike'''); add: (self shadowButtonSpec model: #swapWorkoutPopup); add: (self strShadowFieldSpec model: #'my undrSymbol'); add: (self shadowButtonSpec model: #backupViewOnUnderlyingSecurityPopup). ^specs! seniorUnderlyingQtySpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: #baseQtyLabel); add: (self strLabelFieldSpec model: #undQtyLabel). ^specs! seniorUnderlyingReceivedSwapSpecs | specs | specs := OrderedCollection new. specs add: (self strShadowFieldSpec model: #'my securityReceived symbol'); add: (self shadowButtonSpec model: #swapReceivedTradingPopup); add: (self strShadowFieldSpec model: #'my seniorSymbol'); add: (self shadowButtonSpec model: #swapWorkoutPopup); add: (self strShadowFieldSpec model: #'my undrSymbol'); add: (self shadowButtonSpec model: #swapReceivedTradingPopup). ^specs! seniorUnderlyingSpecs | specs | specs := OrderedCollection new. specs add: (self strShadowFieldSpec model: #'my baseSymbol'); add: (self shadowButtonSpec model: #backupViewOnSeniorSecurityPopup); add: (self strShadowFieldSpec model: #'my undSymbol'); add: (self shadowButtonSpec model: #backupViewOnUnderlyingSecurityPopup). ^specs! seniorUnderlyingSwapQtySpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: #baseQtyLabel); add: (self strLabelFieldSpec model: #undQtyLabel). ^specs! targetHorizonDateSpecs | spec | spec := self dateBarFieldSpec. spec alignment: #left. spec menu: #standardDateMenu. ^OrderedCollection with: (spec model: #'my targetHorizonDate').! volSpecs "Changed to use horizon date" ^self targetHorizonDateSpecs! volTargCreditDefaultQtySpecs ^self volSpecs , self seniorUnderlyingCreditDefaultSpecs , self seniorUnderlyingQtySpecs! volTargPaidOutSwapQtySpecs ^self volSpecs , self seniorUnderlyingPaidOutSwapSpecs , self seniorUnderlyingSwapQtySpecs! volTargQtySpecs ^self volSpecs , self seniorUnderlyingSpecs , self seniorUnderlyingQtySpecs! volTargQtySpecsStraightSecurities ^self volSpecs , self seniorUnderlyingSpecs, self seniorQtySpecs! volTargQtyStockSpecs ^self volSpecs , self seniorStockSpecs , self seniorStockQtySpecs! volTargReceivedSwapQtySpecs ^self volSpecs , self seniorUnderlyingReceivedSwapSpecs , self seniorUnderlyingSwapQtySpecs! warrantYieldTanSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: #undYieldLabel); add: (self strLabelFieldSpec model: 'Tan Val' printString asSymbol). ^specs! yield5Specs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'YTM' printString asSymbol); add: (self strShadowFieldSpec model: 'YTP' printString asSymbol); add: (self shadowButtonSpec model: #displayPutSchedule); add: (self strLabelFieldSpec model: 'YTC' printString asSymbol); add: (self strLabelFieldSpec model: #baseYieldLabel); add: (self strLabelFieldSpec model: #undYieldLabel). ^specs! yieldSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'YTM' printString asSymbol); add: (self strShadowFieldSpec model: 'YTP' printString asSymbol); add: (self shadowButtonSpec model: #displayPutSchedule); add: (self strLabelFieldSpec model: #baseYieldLabel); add: (self strLabelFieldSpec model: #undYieldLabel). ^specs! yieldSpecsBankDebt | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'YTM' printString asSymbol); add: (self strLabelFieldSpec model: #baseYieldLabel); add: (self strLabelFieldSpec model: #undYieldLabel). ^specs! yieldStockSpecs | specs | specs := OrderedCollection new. specs add: ((self emptyFieldSpec ) name:#empty); add: (self strLabelFieldSpec model: #baseYieldLabel). ^specs! yieldSwapSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'YTM' printString asSymbol); add: (self strShadowFieldSpec model: 'YTP' printString asSymbol); add: (self shadowButtonSpec model: #displayPutSchedule); add: (self strLabelFieldSpec model: #tradedYieldLabel); add: (self strLabelFieldSpec model: #undYieldLabel). ^specs! ! !TradeScenarioValuationApp class methodsFor: 'new widget '! baseButtonSpec | baseButtonSpec | baseButtonSpec :=ActionButtonSpec named: nil model: nil layout: (LayoutFrame originFractions: 0@0 cornerFractions: 1@1) properties: nil. baseButtonSpec style: #'Target Default'; tabable: false; "alignment: #right; " hasBorder: false. ^baseButtonSpec! baseFieldSpec | baseFieldSpec | baseFieldSpec :=InputFieldSpec named: nil model: nil layout: (LayoutFrame originFractions: 0@0 cornerFractions: 1@1) properties: nil. baseFieldSpec colorPolicy: #standard; style: #'Target Default'; alignment: #right; isReadOnly: false; hasBorder: false. ^baseFieldSpec! baseROFieldSpec | baseFieldSpec | baseFieldSpec :=InputFieldSpec named: nil model: nil layout: (LayoutFrame originFractions: 0@0 cornerFractions: 1@1) properties: nil. baseFieldSpec colorPolicy: #standardRO; isReadOnly: true; style: #'Target Default'; alignment: #right; hasBorder: false. ^baseFieldSpec! dateBarFieldSpec | dateFieldSpec | dateFieldSpec :=self dateFieldSpec. dateFieldSpec colorPolicy: #bar; isReadOnly: false. ^dateFieldSpec! dateFieldSpec | dateFieldSpec | dateFieldSpec :=self baseFieldSpec. dateFieldSpec type: #date; formatString: 'mm/dd/yy'. dateFieldSpec callbacksSpec:(UIEventCallbackSubSpec new requestValueChangeSelector: #validateDate:). ^dateFieldSpec! dblBarFieldSpec | dblFieldSpec | dblFieldSpec :=self dblFieldSpec. dblFieldSpec colorPolicy: #bar; isReadOnly: false. ^dblFieldSpec! dblBarLiteFieldSpec ^self dblBarFieldSpec colorPolicy: #barLite! dblBarLiteShadowFieldSpec ^self dblBarShadowFieldSpec colorPolicy: #barLite.! dblBarROFieldSpec | dblFieldSpec | dblFieldSpec :=self dblFieldSpec. dblFieldSpec colorPolicy: #barRO; isReadOnly: true. ^dblFieldSpec! dblBarROLiteFieldSpec ^self dblBarROFieldSpec colorPolicy: #barROLite! dblBarShadowFieldSpec | dblFieldSpec | dblFieldSpec :=self dblShadowFieldSpec. dblFieldSpec colorPolicy: #bar; isReadOnly: false. ^dblFieldSpec! dblFieldSpec | dblFieldSpec | dblFieldSpec :=self baseFieldSpec. dblFieldSpec type: #doubleFloat; formatString: '#,##0.00;-#,##0.00'. ^dblFieldSpec! dblLabelFieldSpec | dblFieldSpec | dblFieldSpec :=self dblFieldSpec. dblFieldSpec colorPolicy: #label; isReadOnly: true. ^dblFieldSpec! dblLabelROFieldSpec | dblFieldSpec | dblFieldSpec :=self dblFieldSpec. dblFieldSpec colorPolicy: #labelRO; isReadOnly: true. ^dblFieldSpec! dblROFieldSpec | dblFieldSpec | dblFieldSpec :=self dblFieldSpec. dblFieldSpec colorPolicy: #standardRO; isReadOnly: true. ^dblFieldSpec! dblROLiteFieldSpec ^self dblROFieldSpec colorPolicy: #barROLite! dblShadowFieldSpec | dblActiveFieldSpec | dblActiveFieldSpec :=self shadowFieldSpec. dblActiveFieldSpec type: #doubleFloat; formatString: '#,##0.00;-#,##0.00'. dblActiveFieldSpec colorPolicy: #standard; isReadOnly: false. ^dblActiveFieldSpec! emptyBarFieldSpec ^self strBarROFieldSpec! emptyFieldSpec ^self baseROFieldSpec! numberFieldSpec | numberFieldSpec | numberFieldSpec :=self baseFieldSpec. numberFieldSpec type: #number; formatString: '#,##0;-#,##0'. ^numberFieldSpec! numberROFieldSpec | numberFieldSpec | numberFieldSpec :=self baseROFieldSpec. numberFieldSpec type: #number; formatString: '#,##0;-#,##0'. ^numberFieldSpec! shadowButtonSpec | baseButtonSpec | baseButtonSpec := ActionButtonSpec named: nil model: nil layout: (LayoutFrame originFractions: 1@1 cornerFractions: 1@1) properties: nil. baseButtonSpec colorPolicy: #none; tabable: false; style: #'Target Default'; "alignment: #right; " hasBorder: false. ^baseButtonSpec! shadowFieldSpec | baseFieldSpec | baseFieldSpec := FFISShadowFieldSpec named: nil model: nil layout: (LayoutFrame originFractions: 0@0 cornerFractions: 1@1) properties: nil. baseFieldSpec colorPolicy: #standard; style: #'Target Default'; alignment: #right; isReadOnly: false; hasBorder: false. ^baseFieldSpec! standardButtonSpec | baseButtonSpec | baseButtonSpec := self baseButtonSpec. baseButtonSpec colorPolicy: #standard. ^baseButtonSpec! strBarFieldSpec | strFieldSpec | strFieldSpec :=self strFieldSpec. strFieldSpec colorPolicy: #bar; isReadOnly: false. ^strFieldSpec! strBarLabelFieldSpec | dblFieldSpec | dblFieldSpec :=self strLabelFieldSpec. dblFieldSpec colorPolicy: #barRO. ^dblFieldSpec! strBarROFieldSpec | strFieldSpec | strFieldSpec :=self strFieldSpec. strFieldSpec colorPolicy: #barRO; isReadOnly: true. ^strFieldSpec! strBarShadowFieldSpec | strFieldSpec | strFieldSpec :=self strShadowFieldSpec. strFieldSpec colorPolicy: #bar; isReadOnly: false. ^strFieldSpec! strFieldSpec | strFieldSpec | strFieldSpec :=self baseFieldSpec. strFieldSpec type: #string; alignment: #left. ^strFieldSpec! strLabelFieldSpec | dblFieldSpec | dblFieldSpec :=self strFieldSpec. dblFieldSpec colorPolicy: #label; isReadOnly: true. ^dblFieldSpec! strROFieldSpec | strFieldSpec | strFieldSpec :=self strFieldSpec. strFieldSpec colorPolicy: #standardRO; isReadOnly: true. ^strFieldSpec! strShadowFieldSpec | strActiveFieldSpec | strActiveFieldSpec :=self shadowFieldSpec. strActiveFieldSpec type: #string; alignment: #left. strActiveFieldSpec colorPolicy: #standard; isReadOnly: false. ^strActiveFieldSpec! ! !TradeScenarioValuationApp class methodsFor: 'accessing'! defaultLookPreference ^DefaultLookPreference! defaultReadOnlyFieldSpec | readOnlyFieldSpec | readOnlyFieldSpec :=InputFieldSpec named: #accruedInterest model: nil layout: (LayoutFrame originFractions: 0@1 cornerFractions: 1@1) properties: nil. readOnlyFieldSpec type: #doubleFloat; isReadOnly: true; alignment: #right; colors: self defaultReadOnlyLookPreference; style: #'Target Default'; hasBorder: false. ^readOnlyFieldSpec! defaultReadOnlyLookPreference ^DefaultReadOnlyLookPreference! ! !TradeScenarioValuationApp class methodsFor: 'antiquated'! bondSpecsX ^self volTargQtySpecs , self roiSpecs , self breakEvenSpecs , self fvIntSensSpecs , self yieldSpecs , self parityPremiumSpecs.! zeroSpecsX | specs ref1 ref2 add2 | specs := self bondSpecs. ref1 := specs detect:[:spec | spec model = 'ROI $' printString asSymbol]. ref2 := specs detect:[:spec | spec model = 'YTM' printString asSymbol]. specs add: (self strBarLabelFieldSpec model: 'Acr %' printString asSymbol) after: ref1; add: (add2 := self strLabelFieldSpec model: 'YTP' printString asSymbol) after:ref2; add: (self strLabelFieldSpec model: 'YTC' printString asSymbol) after: add2. ^specs "add: (self shadowButtonSpec model: #roiPopup); "! ! !TradeScenarioValuationApp class methodsFor: 'auto build specs'! bankDebtOldSpecs ^self volTargQtySpecsStraightSecurities , self roiSpecs , self breakEvenStraightSpecs, self fvIntSensSpecs , self yieldSpecsBankDebt! bankDebtSpecs ^self volTargQtySpecsStraightSecurities , self roiSpecs , self breakEvenStraightSpecs, self fvIntSensSpecs , self yieldSpecsBankDebt! bondSpecs ^self volTargQtySpecs , self roiSpecs , self breakEvenSpecs , self fvIntSensSpecs , self yieldSpecs , self parityPremiumSpecs.! cashSpecs ^self volTargQtyStockSpecs, (self emptySpecs: 15)! creditDefaultSpecs ^self volTargCreditDefaultQtySpecs , self roiSpecs , self breakEvenSpecs , self fvIntSensSpecs , self yieldSpecs , self parityPremiumSpecs. " ^self volTargCreditDefaultQtySpecs , self roiSpecs , self breakEvenSpecs , self fvIntSensSpecs , self yieldSwapSpecs , self parityPremiumSpecs."! derivativeSpecs | specs | specs := self bondSpecs. specs add: (self strLabelFieldSpec model: #numDaysLabel). ^specs! oidSpecs ^self volTargQtySpecs , self roiSpecs , self breakEvenSpecs , self fvIntSensSpecs , self yieldSpecs , self parityPremiumSpecs.! optionSpecs | specs | specs :=self warrantSpecs. specs last model: ('Opt Prem' printString asSymbol ). ^specs! paidOutAscotSpecs ^self volTargPaidOutSwapQtySpecs , self roiSpecs , self breakEvenSpecs , self fvIntSensSwapSpecs , self yieldSwapSpecs , self parityPremiumSpecs.! receivedAscotSpecs ^self volTargReceivedSwapQtySpecs , self roiSpecs , self breakEvenSpecs , self fvIntSensSwapSpecs , self yieldSwapSpecs , self parityPremiumSpecs.! stockSpecs ^self volTargQtyStockSpecs , self roiSpecs , self yieldStockSpecs! straightBondSpecs ^self volTargQtySpecsStraightSecurities , self roiSpecs , self breakEvenSpecs , self fvIntSensSpecs , self yieldSpecs , self parityPremiumSpecs.! straightDerivativeSpecs | specs | specs := self straightBondSpecs. specs add: (self strLabelFieldSpec model: #numDaysLabel). ^specs! straightOIDSpecs ^self volTargQtySpecsStraightSecurities , self roiSpecs , self breakEvenSpecs , self fvIntSensSpecs , self yieldSpecs , self parityPremiumSpecs.! straightZeroSpecs ^self volTargQtySpecs , self roiAcrSpecs , self fvSensSpecs , self breakEvenZeroSpecs , self yield5Specs , self parityPremiumSpecs.! warrantSpecs ^self volTargQtySpecs , self roiSpecs , self breakEvenSpecs , self leverageSpecs , self warrantYieldTanSpecs , self premiumWarrantSpecs. " ^self volTargQtySpecs , self roiOptionWarrantSpecs , self breakEvenOptionWarrantSpecs , self leverageSpecs , self warrantYieldTanSpecs , self premiumWarrantSpecs."! zeroSpecs ^self volTargQtySpecs , self roiAcrSpecs , self fvSensSpecs , self breakEvenZeroSpecs , self yield5Specs , self parityPremiumSpecs.! ! !TradeScenarioValuationApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'TargetXApp' #bounds: #(#{Graphics.Rectangle} 535 227 746 797 ) ) #component: #(#{UI.SpecCollection} #collection: #() ) )! ! Smalltalk.TradeScenarioValuationUpApp class instanceVariableNames: ''! !TradeScenarioValuationUpApp class methodsFor: 'shared specs'! breakEvenSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my baseBreakEvenUp * seniorExchangeRateModel / seniorMFactorModel'); add: (self dblROFieldSpec model: #'my undBreakEvenUp * undrExchangeRateModel'). ^specs! breakEvenStraightSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my baseBreakEvenUp * seniorExchangeRateModel / seniorMFactorModel'); add: ((self emptyFieldSpec ) name:#emptyA1). ^specs! breakEvenZeroSpecs ^self breakEvenSpecs.! fvIntSensSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarROFieldSpec model: #'my fairValuePct * 100'); add: ((self emptyBarFieldSpec) name: #green). ^specs! fvIntSensSwapSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarROFieldSpec model: #'my fairValuePct * 100'). " add: ((self emptyBarFieldSpec) name: #green)." ^specs! fvSensSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarROFieldSpec ) name:#empty122). ^specs! leverageSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my leverageUp/mFactorModel'). ^specs! parityPremiumSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my parityUp * seniorExchangeRateModel / seniorMFactorModel'); add: (self dblFieldSpec model: #'my premPctUp * 100'); add: (self dblFieldSpec model: #'my premPtsUp * seniorExchangeRateModel / seniorMFactorModel'). ^specs! premiumWarrantSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my premPctUp * 100'); add: (self dblFieldSpec model: #'my premPtsUp * seniorExchangeRateModel / seniorMFactorModel'). ^specs! roiAcrSpecs | specs | specs := self roiSpecs. specs add: (self dblBarROFieldSpec model: #'my accretedRoiPctUp *100'). specs add: ((self emptyFieldSpec ) name:#empty25). specs add: ((self emptyFieldSpec ) name:#empty26). specs add: ((self emptyFieldSpec ) name:#empty27). ^specs! roiSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarShadowFieldSpec model: #'my roiPctUp * 100') formatString: '#,##0.0;-#,##0.0'); add: (self shadowButtonSpec model: #displayROI); add: ((self dblBarShadowFieldSpec model: #'my roiPtsUpUSD') formatString: '#,##0;-#,##0'); add: (self shadowButtonSpec model: #displayROI). "add: (self dblBarROFieldSpec model: #'my accretedRoiPctUp'); add: (self shadowButtonSpec model: #roiPopup); " ^specs! volTargCreditDefaultQtySpecs | specs | specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetUpPctString') alignment: #right); add: ((self emptyFieldSpec ) name:#navyUp); add: ((self dblFieldSpec model: #'my baseTargUp * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUp * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#navy); add: ((self dblROFieldSpec model: #'my undQtyUp') formatString: '#,##0;-#,##0'). ^specs! volTargPaidOutSwapQtySpecs | specs | specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetUpPctString') alignment: #right); add: ((self dblFieldSpec model: #'my seniorPaidOutTargUp * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my seniorTargUp * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblROFieldSpec model: #'my strikeAtHorizon *seniorExchangeRateModel /seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undrPaidOutTargUp * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#navy); add: ((self dblROFieldSpec model: #'my undQtyUp') formatString: '#,##0;-#,##0'). self revisitChip. "MFactorModel for Und" ^specs! volTargQtySpecs | specs | specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetUpPctString') alignment: #right); add: ((self dblFieldSpec model: #'my seniorTargUp * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUp * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#navy); add: ((self dblROFieldSpec model: #'my undQtyUp') formatString: '#,##0;-#,##0'). ^specs! volTargQtySpecsStraightSecurities | specs | specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetUpPctString') alignment: #right); add: ((self dblFieldSpec model: #'my seniorTargUp * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUp * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#navy). ^specs! volTargQtyStockSpecs | specs | specs := OrderedCollection new. specs add:( (self strBarFieldSpec model: #'my targetUpPctString') alignment: #right); add: ((self dblFieldSpec model: #'my seniorTargUp * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#emptyUp2); add: ((self emptyFieldSpec ) name:#emptyUp3). ^specs! volTargReceivedSwapQtySpecs | specs | specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetUpPctString') alignment: #right); add: ((self dblFieldSpec model: #'my seniorReceivedTargUp * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my seniorTargUp * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undrReceivedTargDn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#navy); add: ((self dblROFieldSpec model: #'my undQtyUp') formatString: '#,##0;-#,##0'). self revisitChip. "MFactorModel for Und" ^specs! warrantYieldTanSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my undCurrentYieldUp * 100'); add: (self dblROFieldSpec model: #'my tanValueUp *seniorExchangeRateModel /mFactorModel'). ^specs! yield5Specs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my baseYtmUp * 100'); add: (self dblFieldSpec model: #'my baseYtpUp * 100'); add: (self dblFieldSpec model: #'my baseYtcUp * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldUp * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldUp * 100'). ^specs! yieldSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my baseYtmUp * 100'); add: (self dblFieldSpec model: #'my baseYtpUp * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldUp * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldUp * 100'). ^specs! yieldSpecsBankDebt | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my baseYtmUp * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldUp * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldUp * 100'). ^specs! yieldStockSpecs | specs | specs := OrderedCollection new. specs add: ((self emptyFieldSpec ) name:#empty); add: (self dblROFieldSpec model: #'my baseCurrentYieldUp * 100'). ^specs! yieldSwapSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my baseYtmUp * 100'); add: (self dblFieldSpec model: #'my baseYtpUp * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldUp * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldUp * 100'). ^specs! ! !TradeScenarioValuationUpApp class methodsFor: 'auto build specs'! derivativeSpecs | specs | specs := self bondSpecs. specs add: (self numberROFieldSpec model: #'my baseAccruedDays'). ^specs! optionSpecs ^self warrantSpecs.! straightDerivativeSpecs | specs | specs := self straightBondSpecs. specs add: (self numberROFieldSpec model: #'my baseAccruedDays'). ^specs! ! !TradeScenarioValuationUpApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'TargetXApp' #bounds: #(#{Graphics.Rectangle} 431 89 642 659 ) ) #component: #(#{UI.SpecCollection} #collection: #() ) )! zeroSpec "UIPainter new openOnClass: self andSelector: #zeroSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'TargetXApp' #bounds: #(#{Graphics.Rectangle} 572 96 783 666 ) ) #component: #(#{UI.SpecCollection} #collection: #() ) )! ! Smalltalk.TradeScenarioValuationNewApp class instanceVariableNames: ''! !TradeScenarioValuationNewApp class methodsFor: 'auto build specs'! bondSpecs ^self columnHeaderSpecs, self targetPriceSpecs, self qtySpecs, self hedgeSpecs, self roiNewSpecs, self parAnalysisSpecs, self yieldNewSpecs, self parityPremiumNewSpecs.! ! Smalltalk.TradeScenarioValuationLabelApp class instanceVariableNames: ''! !TradeScenarioValuationLabelApp class methodsFor: 'auto build specs'! creditDefaultSpecs ^TradeScenarioValuationApp creditDefaultSpecs! derivativeSpecs ^TradeScenarioValuationApp derivativeSpecs! oidSpecs ^TradeScenarioValuationApp oidSpecs! optionSpecs ^TradeScenarioValuationApp optionSpecs! paidOutAscotSpecs ^TradeScenarioValuationApp paidOutAscotSpecs! receivedAscotSpecs ^TradeScenarioValuationApp receivedAscotSpecs! stockSpecs ^TradeScenarioValuationApp stockSpecs! straightBondSpecs ^TradeScenarioValuationApp straightBondSpecs! straightDerivativeSpecs ^TradeScenarioValuationApp straightDerivativeSpecs! straightOIDSpecs ^TradeScenarioValuationApp straightOIDSpecs! straightZeroSpecs ^TradeScenarioValuationApp straightZeroSpecs! warrantSpecs ^TradeScenarioValuationApp warrantSpecs! zeroSpecs ^TradeScenarioValuationApp zeroSpecs! ! !TradeScenarioValuationLabelApp class methodsFor: 'shared specs - new'! columnHeaderSpecs | specs | specs := OrderedCollection new. specs add: ((self dateBarFieldSpec model: #'my targetHorizonDate') alignment: #left; menu: #standardDateMenu). ^specs! hedgeSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'Hedge %' printString asSymbol; alignment: #left). ^specs! parAnalysisSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'Stk (Par)' printString asSymbol; alignment: #left); add: (self strLabelFieldSpec model: 'Pts (Par)' printString asSymbol; alignment: #left); add: (self strLabelFieldSpec model: 'Prm (Par)' printString asSymbol; alignment: #left). ^specs! parityPremiumNewSpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: 'Parity' printString asSymbol; alignment: #left); add: (self strLabelFieldSpec model: 'Prm %' printString asSymbol; alignment: #left); add: (self strLabelFieldSpec model: 'Prm' printString asSymbol; alignment: #left). ^specs! qtySpecs | specs | specs := OrderedCollection new. specs add: (self strLabelFieldSpec model: #baseQtyLabel; alignment: #left); add: (self strLabelFieldSpec model: #undQtyLabel; alignment: #left). ^specs! roiNewSpecs | specs | specs := OrderedCollection new. specs add: (self strBarShadowFieldSpec model: 'ROI %' printString asSymbol; alignment: #left); add: (self shadowButtonSpec model: #displayROI); add: (self strBarShadowFieldSpec model: 'ROI $' printString asSymbol; alignment: #left); add: (self shadowButtonSpec model: #displayROI). ^specs! targetPriceSpecs | specs | specs := OrderedCollection new. specs add: (self strShadowFieldSpec model: #'my baseSymbol'; alignment: #left); add: (self shadowButtonSpec model: #backupViewOnSeniorSecurityPopup); add: (self strShadowFieldSpec model: #'my undSymbol'; alignment: #left); add: (self shadowButtonSpec model: #backupViewOnUnderlyingSecurityPopup). ^specs! yieldNewSpecs | specs | specs := OrderedCollection new. specs add: (self strBarLabelFieldSpec model: 'YTM' printString asSymbol; alignment: #left); add: (self strShadowFieldSpec model: 'YTP' printString asSymbol; alignment: #left); add: (self shadowButtonSpec model: #displayPutSchedule); add: (self strLabelFieldSpec model: #baseYieldLabel; alignment: #left); add: (self strLabelFieldSpec model: #undYieldLabel; alignment: #left). ^specs! ! Smalltalk.TradeScenarioValuationNewUpApp class instanceVariableNames: ''! !TradeScenarioValuationNewUpApp class methodsFor: 'auto build specs'! creditDefaultSpecs ^TradeScenarioValuationUpApp creditDefaultSpecs! derivativeSpecs ^TradeScenarioValuationUpApp derivativeSpecs! oidSpecs ^TradeScenarioValuationUpApp oidSpecs! optionSpecs ^TradeScenarioValuationUpApp optionSpecs! paidOutAscotSpecs ^TradeScenarioValuationUpApp paidOutAscotSpecs! receivedAscotSpecs ^TradeScenarioValuationUpApp receivedAscotSpecs! stockSpecs ^TradeScenarioValuationUpApp stockSpecs! straightBondSpecs ^TradeScenarioValuationUpApp straightBondSpecs! straightDerivativeSpecs ^TradeScenarioValuationUpApp straightDerivativeSpecs! straightOIDSpecs ^TradeScenarioValuationUpApp straightOIDSpecs! straightZeroSpecs ^TradeScenarioValuationUpApp straightZeroSpecs! warrantSpecs ^TradeScenarioValuationUpApp warrantSpecs! zeroSpecs ^TradeScenarioValuationUpApp zeroSpecs! ! !TradeScenarioValuationNewUpApp class methodsFor: 'shared specs - new'! columnHeaderSpecs ^OrderedCollection with: ((self strBarFieldSpec model: #'my targetUpPctString') alignment: #right).! hedgeSpecs ^OrderedCollection with: ((self dblROFieldSpec model: #'my hedgeAtVol *100') formatString: '#,##0.00;-#,##0.00').! parAnalysisSpecs | specs | specs := OrderedCollection new. specs add: ((self dblROFieldSpec model: #'my undAtParUp *undrExchangeRateModel') formatString: '##0.000;-##0.000'); add: ((self dblROFieldSpec model: #'my premPtsAtParUp *seniorExchangeRateModel /mFactorModel') formatString: '##0.000;-##0.000'); add: ((self dblROFieldSpec model: #'my premPctAtParUp *100') formatString: '#,##0.00;-#,##0.00'). ^specs! parityPremiumNewSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my parityUp * seniorExchangeRateModel / seniorMFactorModel'); add: (self dblFieldSpec model: #'my premPctUp * 100'); add: (self dblFieldSpec model: #'my premPtsUp * seniorExchangeRateModel / seniorMFactorModel'). ^specs! qtySpecs | specs | specs := OrderedCollection new. specs add: ((self emptyFieldSpec ) name: #emptyQty); add: ((self dblROFieldSpec model: #'my undQtyUp') formatString: '#,##0;-#,##0'). ^specs! roiNewSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarShadowFieldSpec model: #'my roiPctUp * 100') formatString: '#,##0.0;-#,##0.0'); add: (self shadowButtonSpec model: #displayROI); add: ((self dblBarShadowFieldSpec model: #'my roiPtsUp * seniorExchangeRateModel ') formatString: '#,##0;-#,##0'); add: (self shadowButtonSpec model: #displayROI). ^specs! targetPriceSpecs | specs | specs := OrderedCollection new. specs add: ((self dblFieldSpec model: #'my seniorTargUp * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUp * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'). ^specs! yieldNewSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarFieldSpec model: #'my baseYtmUp * 100'); add: (self dblFieldSpec model: #'my baseYtpUp * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldUp * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldUp * 100'). ^specs! ! Smalltalk.TradeScenarioValuationNewDownApp class instanceVariableNames: ''! !TradeScenarioValuationNewDownApp class methodsFor: 'auto build specs'! creditDefaultSpecs ^TradeScenarioValuationDownApp creditDefaultSpecs! derivativeSpecs ^TradeScenarioValuationDownApp derivativeSpecs! oidSpecs ^TradeScenarioValuationDownApp oidSpecs! optionSpecs ^TradeScenarioValuationDownApp optionSpecs! paidOutAscotSpecs ^TradeScenarioValuationDownApp paidOutAscotSpecs! receivedAscotSpecs ^TradeScenarioValuationDownApp receivedAscotSpecs! stockSpecs ^TradeScenarioValuationDownApp stockSpecs! straightBondSpecs ^TradeScenarioValuationDownApp straightBondSpecs! straightDerivativeSpecs ^TradeScenarioValuationDownApp straightDerivativeSpecs! straightOIDSpecs ^TradeScenarioValuationDownApp straightOIDSpecs! straightZeroSpecs ^TradeScenarioValuationDownApp straightZeroSpecs! warrantSpecs ^TradeScenarioValuationDownApp warrantSpecs! zeroSpecs ^TradeScenarioValuationDownApp zeroSpecs! ! !TradeScenarioValuationNewDownApp class methodsFor: 'shared specs - new'! columnHeaderSpecs | specs | specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetDnPctString') alignment: #right). ^specs! hedgeSpecs | specs | specs := OrderedCollection new. specs add: ((self dblROFieldSpec model: #'my hedgeAtVol *100') formatString: '#,##0.00;-#,##0.00'). ^specs! parAnalysisSpecs | specs | specs := OrderedCollection new. specs add: ((self dblROFieldSpec model: #'my undAtParDn *undrExchangeRateModel') formatString: '##0.000;-##0.000'); add: ((self dblROFieldSpec model: #'my premPtsAtParDn *seniorExchangeRateModel /mFactorModel') formatString: '##0.000;-##0.000'); add: ((self dblROFieldSpec model: #'my premPctAtParDn *100') formatString: '#,##0.00;-#,##0.00'). ^specs! parityPremiumNewSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my parityDn * seniorExchangeRateModel / seniorMFactorModel'); add: (self dblFieldSpec model: #'my premPctDn * 100'); add: (self dblFieldSpec model: #'my premPtsDn * seniorExchangeRateModel / seniorMFactorModel'). ^specs! qtySpecs | specs | specs := OrderedCollection new. specs add: ((self emptyFieldSpec ) name:#emptyQty); add: ((self dblROFieldSpec model: #'my undQtyDn') formatString: '#,##0;-#,##0'). ^specs! roiNewSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarShadowFieldSpec model: #'my roiPctDn * 100') formatString: '#,##0.0;-#,##0.0'); add: (self shadowButtonSpec model: #displayROI); add: ((self dblBarShadowFieldSpec model: #'my roiPtsDn * seniorExchangeRateModel ') formatString: '#,##0;-#,##0'); add: (self shadowButtonSpec model: #displayROI). ^specs! targetPriceSpecs | specs | specs := OrderedCollection new. specs add: ((self dblFieldSpec model: #'my seniorTargDn * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargDn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'). ^specs! yieldNewSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarFieldSpec model: #'my baseYtmDn * 100'); add: (self dblFieldSpec model: #'my baseYtpDn * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldDn * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldDn * 100'). ^specs! ! Smalltalk.TradeScenarioValuationPositionApp class instanceVariableNames: ''! !TradeScenarioValuationPositionApp class methodsFor: 'interface specs'! creditDefaultSpecs ^TradeScenarioValuationUnchangedApp creditDefaultSpecs! derivativeSpecs ^TradeScenarioValuationUnchangedApp derivativeSpecs! oidSpecs ^TradeScenarioValuationUnchangedApp oidSpecs! optionSpecs ^TradeScenarioValuationUnchangedApp optionSpecs! paidOutAscotSpecs ^TradeScenarioValuationUnchangedApp paidOutAscotSpecs! receivedAscotSpecs ^TradeScenarioValuationUnchangedApp receivedAscotSpecs! stockSpecs ^TradeScenarioValuationUnchangedApp stockSpecs! straightBondSpecs ^TradeScenarioValuationUnchangedApp straightBondSpecs! straightDerivativeSpecs ^TradeScenarioValuationUnchangedApp straightDerivativeSpecs! straightOIDSpecs ^TradeScenarioValuationUnchangedApp straightOIDSpecs! straightZeroSpecs ^TradeScenarioValuationUnchangedApp straightZeroSpecs! warrantSpecs ^TradeScenarioValuationUnchangedApp warrantSpecs! zeroSpecs ^TradeScenarioValuationUnchangedApp zeroSpecs! ! !TradeScenarioValuationPositionApp class methodsFor: 'shared specs - new'! columnHeaderSpecs | specs | specs := OrderedCollection new. specs add:((self strBarShadowFieldSpec model: 'Position' printString asSymbol) alignment: #right); add: (self shadowButtonSpec model: #targetsGraphViewPopup). ^specs! hedgeSpecs | specs | specs := OrderedCollection new. specs add: ((self dblFieldSpec model: #'my hedgeRatio *100') formatString: '#,##0.00;-#,##0.00'). ^specs! parAnalysisSpecs | specs | specs := OrderedCollection new. specs add: ((self dblFieldSpec model: #'my undAtPar *undrExchangeRateModel') formatString: '##0.000;-##0.000'); add: ((self dblFieldSpec model: #'my premPtsAtPar *seniorExchangeRateModel /mFactorModel') formatString: '##0.000;-##0.000'); add: ((self dblFieldSpec model: #'my premPctAtPar *100') formatString: '#,##0.00;-#,##0.00'). ^specs! parityPremiumNewSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my parityUn * seniorExchangeRateModel / seniorMFactorModel'); add: (self dblFieldSpec model: #'my premPctUn * 100'); add: (self dblFieldSpec model: #'my premPtsUn * seniorExchangeRateModel / seniorMFactorModel'). ^specs! qtySpecs | specs | specs := OrderedCollection new. specs add: ((self dblFieldSpec model: #'my baseQtyUn') formatString: '#,##0;-#,##0'); add: (((self dblFieldSpec model: #'my undQtyUn') formatString: '#,##0;-#,##0') callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #requestValueChangeSelector: #negativeDefaultQtyChange: )). ^specs! roiNewSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarShadowFieldSpec model: #'my roiPctUn * 100') formatString: '#,##0.0;-#,##0.0'); add: (self shadowButtonSpec model: #displayROI); add: ((self dblBarShadowFieldSpec model: #'my roiPtsUn * seniorExchangeRateModel ') formatString: '#,##0;-#,##0'); add: (self shadowButtonSpec model: #displayROI). ^specs! targetPriceSpecs | specs | specs := OrderedCollection new. specs add: ((self dblFieldSpec model: #'my seniorTargUn * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'). ^specs! yieldNewSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarFieldSpec model: #'my baseYtmUn * 100'); add: (self dblFieldSpec model: #'my baseYtpUn * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldUn * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldUn * 100'). ^specs! ! Smalltalk.TradeScenarioValuationFairValueApp class instanceVariableNames: ''! !TradeScenarioValuationFairValueApp class methodsFor: 'shared specs - new'! columnHeaderSpecs | specs | specs := OrderedCollection new. specs add: ((self strBarShadowFieldSpec model: #'my targetVolLabel') alignment: #right); add: (self shadowButtonSpec model: #targetsSetVolatilityAction). ^specs! hedgeSpecs | specs | specs := OrderedCollection new. specs add: ((self dblROFieldSpec model: #'my hedgeAtVol *100') formatString: '#,##0.00;-#,##0.00'). ^specs! parAnalysisSpecs | specs | specs := OrderedCollection new. specs add: ((self dblROFieldSpec model: #'my undAtVol *undrExchangeRateModel') formatString: '##0.000;-##0.000'); add: ((self dblROFieldSpec model: #'my premPtsAtVol *seniorExchangeRateModel /mFactorModel') formatString: '##0.000;-##0.000'); add: ((self dblROFieldSpec model: #'my premPctAtVol *100') formatString: '#,##0.00;-#,##0.00'). ^specs! parityPremiumNewSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my parityFV * seniorExchangeRateModel / seniorMFactorModel'); add: (self dblROFieldSpec model: #'my premPctFV * 100'); add: (self dblROFieldSpec model: #'my premPtsFV * seniorExchangeRateModel / seniorMFactorModel'). ^specs! qtySpecs | specs | specs := OrderedCollection new. specs add: ((self emptyFieldSpec ) name:#emptyQty1); add: ((self emptyFieldSpec ) name:#emptyQty2). " add: ((self dblFieldSpec model: #'my seniorSecurity qty') formatString: '#,##0;-#,##0'); add: (((self dblFieldSpec model: #'my undrSecurity qty') formatString: '#,##0;-#,##0') callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #requestValueChangeSelector: #negativeDefaultQtyChange: )). " ^specs! roiNewSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarShadowFieldSpec model: #'my roiPctFV * 100') formatString: '#,##0.0;-#,##0.0'); add: (self shadowButtonSpec model: #displayROI); add: ((self dblBarShadowFieldSpec model: #'my roiPtsFV * seniorExchangeRateModel ') formatString: '#,##0;-#,##0'); add: (self shadowButtonSpec model: #displayROI). ^specs! targetPriceSpecs | specs | specs := OrderedCollection new. specs add: ((self dblROFieldSpec model: #'my seniorFairValue * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'). ^specs! yieldNewSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarROFieldSpec model: #'my baseYtmFV * 100'); add: (self dblROFieldSpec model: #'my baseYtpFV * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldFV * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldFV * 100'). ^specs! ! Smalltalk.TradeScenarioValuationDownApp class instanceVariableNames: ''! !TradeScenarioValuationDownApp class methodsFor: 'shared specs'! breakEvenSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my baseBreakEvenDn * seniorExchangeRateModel / seniorMFactorModel'); add: (self dblROFieldSpec model: #'my undBreakEvenDn * undrExchangeRateModel'). ^specs! breakEvenStraightSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my baseBreakEvenDn * seniorExchangeRateModel / seniorMFactorModel'); add: ((self emptyFieldSpec ) name:#emptyA2). ^specs! breakEvenZeroSpecs ^self breakEvenSpecs.! fvIntSensSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarROFieldSpec model: #'my fairValuePoints * seniorExchangeRateModel / mFactorModel'); add: ((self emptyBarFieldSpec) name: #green). ^specs! fvIntSensSwapSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarROFieldSpec model: #'my fairValuePoints * seniorExchangeRateModel / mFactorModel'). " add: ((self emptyBarFieldSpec) name: #green)." ^specs! fvSensSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarROFieldSpec ) name:#empty124). ^specs! leverageSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my leverageDn/mFactorModel'). ^specs! parityPremiumSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my parityDn * seniorExchangeRateModel / seniorMFactorModel'); add: (self dblFieldSpec model: #'my premPctDn * 100'); add: (self dblFieldSpec model: #'my premPtsDn * seniorExchangeRateModel / seniorMFactorModel'). ^specs! premiumWarrantSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my premPctDn * 100'); add: (self dblFieldSpec model: #'my premPtsDn * seniorExchangeRateModel / seniorMFactorModel'). ^specs! roiAcrSpecs | specs | specs := self roiSpecs. specs add: (self dblBarROFieldSpec model: #'my accretedRoiPctDn *100'). specs add: ((self emptyFieldSpec ) name:#empty10). specs add: ((self emptyFieldSpec ) name:#empty11). specs add: ((self emptyFieldSpec ) name:#empty12). ^specs! roiSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarShadowFieldSpec model: #'my roiPctDn * 100') formatString: '#,##0.0;-#,##0.0'); add: (self shadowButtonSpec model: #displayROI); add: ((self dblBarShadowFieldSpec model: #'my roiPtsDnUSD') formatString: '#,##0;-#,##0'); add: (self shadowButtonSpec model: #displayROI). "add: (self dblBarROFieldSpec model: #'my accretedRoiPctDn'); add: (self shadowButtonSpec model: #roiPopup); " ^specs! volTargCreditDefaultQtySpecs | specs | self revisitArden. specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetDnPctString') alignment: #right); add: ((self strShadowFieldSpec model: ' Bps' printString asSymbol) alignment: #left; colorPolicy: #label); add: ((self dblFieldSpec model: #'my baseTargDn * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargDn * undrExchangeRateModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#empty); add: ((self dblROFieldSpec model: #'my undQtyDn') formatString: '#,##0;-#,##0'). ^specs! volTargPaidOutSwapQtySpecs | specs | specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetDnPctString') alignment: #right); add: ((self dblFieldSpec model: #'my seniorPaidOutTargDn * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my seniorTargDn * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblROFieldSpec model: #'my strikeAtHorizon *seniorExchangeRateModel /seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undrPaidOutTargDn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#empty); add: ((self dblROFieldSpec model: #'my undQtyDn') formatString: '#,##0;-#,##0'). self revisitChip. "MFactorModel for Und" ^specs! volTargQtySpecs | specs | self revisitArden. specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetDnPctString') alignment: #right); add: ((self dblFieldSpec model: #'my seniorTargDn * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargDn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#empty); add: ((self dblROFieldSpec model: #'my undQtyDn') formatString: '#,##0;-#,##0'). ^specs! volTargQtySpecsStraightSecurities | specs | specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetDnPctString') alignment: #right); add: ((self dblFieldSpec model: #'my seniorTargDn * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargDn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#navy). " add: ((self dblROFieldSpec model: #'my undQtyDn') formatString: '#,##0;-#,##0')." ^specs! volTargQtyStockSpecs | specs | specs := OrderedCollection new. specs add:( (self strBarFieldSpec model: #'my targetDnPctString') alignment: #right); add: ((self dblFieldSpec model: #'my seniorTargDn * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#emptyD); add: ((self emptyFieldSpec ) name:#emptyD2). ^specs! volTargReceivedSwapQtySpecs | specs | specs := OrderedCollection new. specs add:((self strBarFieldSpec model: #'my targetDnPctString') alignment: #right); add: ((self dblFieldSpec model: #'my seniorReceivedTargDn * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my seniorTargDn * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undrReceivedTargDn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self emptyFieldSpec ) name:#empty); add: ((self dblROFieldSpec model: #'my undQtyDn') formatString: '#,##0;-#,##0'). self revisitChip. "MFactorModel for Und" ^specs! warrantYieldTanSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my undCurrentYieldDn * 100'); add: (self dblROFieldSpec model: #'my tanValueDn *seniorExchangeRateModel /mFactorModel'). ^specs! yield5Specs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my baseYtmDn * 100'); add: (self dblFieldSpec model: #'my baseYtpDn * 100'); add: (self dblFieldSpec model: #'my baseYtcDn * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldDn * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldDn * 100'). ^specs! yieldSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my baseYtmDn * 100'); add: (self dblFieldSpec model: #'my baseYtpDn * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldDn * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldDn * 100'). ^specs! yieldSpecsBankDebt | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my baseYtmDn * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldDn * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldDn * 100'). ^specs! yieldStockSpecs | specs | specs := OrderedCollection new. specs add: ((self emptyFieldSpec ) name:#empty); add: (self dblROFieldSpec model: #'my baseCurrentYieldDn * 100'). ^specs! yieldSwapSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my baseYtmDn * 100'); add: (self dblFieldSpec model: #'my baseYtpDn * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldDn * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldDn * 100'). ^specs! ! !TradeScenarioValuationDownApp class methodsFor: 'auto build specs'! derivativeSpecs | specs | specs := self bondSpecs. specs add: (self dblROFieldSpec model: #'my seniorTheorecticalAccruedInterestAmount'). ^specs! optionSpecs ^self warrantSpecs.! straightDerivativeSpecs | specs | specs := self straightBondSpecs. specs add: (self dblROFieldSpec model: #'my seniorTheorecticalAccruedInterestAmount'). ^specs! ! !TradeScenarioValuationDownApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'TargetXApp' #bounds: #(#{Graphics.Rectangle} 407 99 618 669 ) ) #component: #(#{UI.SpecCollection} #collection: #() ) )! zeroSpec "UIPainter new openOnClass: self andSelector: #zeroSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'TargetXApp' #bounds: #(#{Graphics.Rectangle} 262 157 473 727 ) ) #component: #(#{UI.SpecCollection} #collection: #() ) )! ! Smalltalk.TradeScenarioValuationSpecialApp class instanceVariableNames: ''! !TradeScenarioValuationSpecialApp class methodsFor: 'shared specs'! volatilitySpecs ^OrderedCollection with: ((self strBarShadowFieldSpec model: #'my targetVolLabel') alignment: #center) with: (self shadowButtonSpec model: #targetsSetVolatilityAction).! ! !TradeScenarioValuationSpecialApp class methodsFor: 'interface specs'! volatilitySpec "UIPainter new openOnClass: self andSelector: #volatilitySpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'TargetXApp' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 684 616 895 816 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.LabelSpec} #layout: #(#{Core.Point} 78 14 ) #name: #volatilitySpecs #label: 'volatilitySpecs' ) ) ) )! ! Smalltalk.TradeScenarioValuationUnchangedApp class instanceVariableNames: ''! !TradeScenarioValuationUnchangedApp class methodsFor: 'shared specs'! breakEvenSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarLiteShadowFieldSpec model: #'my roiPctUn * 100') formatString: '#,##0.00;-#,##0.00'); add: (self shadowButtonSpec model: #displayROI); add: ((self dblBarLiteShadowFieldSpec model: #'my roiPtsUnUSD') formatString: '#,##0;-#,##0'); add: (self shadowButtonSpec model: #displayROI). ^specs! breakEvenStraightSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarLiteShadowFieldSpec model: #'my roiPctUn * 100') formatString: '#,##0.00;-#,##0.00'); add: (self shadowButtonSpec model: #displayROI); add: ((self dblBarLiteShadowFieldSpec model: #'my roiPtsUnUSD') formatString: '#,##0;-#,##0'); add: (self shadowButtonSpec model: #displayROI). ^specs! breakEvenZeroSpecs | specs | specs := OrderedCollection new. specs add: ((self emptyFieldSpec ) name:#empty). specs add: ((self emptyFieldSpec ) name:#empty3). ^specs! fvIntSensSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarROFieldSpec model: #'my seniorFairValue * seniorExchangeRateModel / seniorMFactorModel'); add: ((self dblBarROFieldSpec model: #'my dollarsRiskClientCapCanAddUSD') formatString: '#,##0;-#,##0'). " add: (self dblBarROFieldSpec model: #'my intSensUn * 100')." ^specs! fvIntSensSwapSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarROFieldSpec model: #'my tradedSecurityFairValue * seniorExchangeRateModel / seniorMFactorModel'). " add: (self dblBarROFieldSpec model: #'my intSensUn * 100')." ^specs! fvSensSpecs ^OrderedCollection with: (((self dblBarROFieldSpec model: #'my dollarsRiskClientCapCanAddUSD') formatString: '#,##0;-#,##0')).! leverageSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my leverageUn/mFactorModel'). ^specs! parityPremiumSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my parityUn * seniorExchangeRateModel / seniorMFactorModel'); add: (self dblFieldSpec model: #'my premPctUn * 100'); add: (self dblFieldSpec model: #'my premPtsUn * seniorExchangeRateModel / seniorMFactorModel'). ^specs! premiumWarrantSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my premPctUn * 100'); add: (self dblFieldSpec model: #'my premPtsUn * seniorExchangeRateModel / seniorMFactorModel'). ^specs! roiAcrSpecs | specs | specs := self roiSpecs. specs add: (self dblBarROFieldSpec model: #'my accretedRoiPctFV *100'); add: (self dblBarLiteShadowFieldSpec model: #'my roiPctUn * 100'); add: (self shadowButtonSpec model: #displayROI); add: ((self dblBarLiteShadowFieldSpec model: #'my roiPtsUnUSD') formatString: '#,##0;-#,##0'); add: (self shadowButtonSpec model: #displayROI); add: (self dblBarROLiteFieldSpec model: #'my accretedRoiPctUn *100'). ^specs! roiSpecs | specs | specs := OrderedCollection new. specs add: ((self dblBarShadowFieldSpec model: #'my roiPctFV * 100') formatString: '#,##0.0;-#,##0.0'); add: (self shadowButtonSpec model: #displayROI); add: ((self dblBarShadowFieldSpec model: #'my roiPtsFVUSD') formatString: '#,##0;-#,##0'); add: (self shadowButtonSpec model: #displayROI). "add: (self dblBarROFieldSpec model: #'my accretedRoiPctUn'); add: (self shadowButtonSpec model: #roiPopup); " ^specs! volTargCreditDefaultQtySpecs | specs | self revisitArden. specs := OrderedCollection new. specs add:((self strBarShadowFieldSpec model: 'Unch' printString asSymbol) alignment: #right); add: (self shadowButtonSpec model: #targetsGraphViewPopup); add: ((self dblFieldSpec model: #'my swapMarketSpread * 100') formatString: '#,##0;-#,##0'); add: ((self dblFieldSpec model: #'my seniorTargUn * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my baseQtyUn') formatString: '#,##0;-#,##0'); add: (((self dblFieldSpec model: #'my undQtyUn') formatString: '#,##0;-#,##0') callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #requestValueChangeSelector: #negativeDefaultQtyChange: )). ^specs! volTargPaidOutSwapQtySpecs | specs | specs := OrderedCollection new. specs add:((self strBarShadowFieldSpec model: 'Unch' printString asSymbol) alignment: #right); add: (self shadowButtonSpec model: #targetsGraphViewPopup); add: ((self dblFieldSpec model: #'my seniorPaidOutTargUn * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my seniorTargUn * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my strikeAtUnch *seniorExchangeRateModel /seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUn * undrExchangeRateModel / undrMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my baseQtyUn') formatString: '#,##0;-#,##0'); add: (((self dblFieldSpec model: #'my undQtyUn') formatString: '#,##0;-#,##0') callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #requestValueChangeSelector: #negativeDefaultQtyChange: )). self revisitChip. "MFactorModel for Und" ^specs! volTargQtySpecs | specs | self revisitArden. specs := OrderedCollection new. specs add:((self strBarShadowFieldSpec model: 'Unch' printString asSymbol) alignment: #right); add: (self shadowButtonSpec model: #targetsGraphViewPopup); add: ((self dblFieldSpec model: #'my seniorTargUn * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my baseQtyUn') formatString: '#,##0;-#,##0'); add: (((self dblFieldSpec model: #'my undQtyUn') formatString: '#,##0;-#,##0') callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #requestValueChangeSelector: #negativeDefaultQtyChange: )). ^specs! volTargQtySpecsStraightSecurities | specs | specs := OrderedCollection new. specs add:((self strBarShadowFieldSpec model: 'Unch' printString asSymbol) alignment: #right); add: (self shadowButtonSpec model: #targetsGraphViewPopup); add: ((self dblFieldSpec model: #'my seniorTargUn * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUn * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my baseQtyUn') formatString: '#,##0;-#,##0'). ^specs! volTargQtySpecsX | specs | self revisitArden. specs := OrderedCollection new. specs add:((self strBarShadowFieldSpec model: 'Unch' printString asSymbol) alignment: #right); add: (self shadowButtonSpec model: #targetsGraphViewPopup); add: ((self dblFieldSpec model: #'my seniorFairValue * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargFV * undrExchangeRateModel / undrMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my seniorSecurity qty ') formatString: '#,##0;-#,##0'); add: (((self dblFieldSpec model: #'my seniorSecurity undQty') formatString: '#,##0;-#,##0') callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #requestValueChangeSelector: #negativeDefaultQtyChange: )). ^specs! volTargQtyStockSpecs | specs | specs := OrderedCollection new. specs add:( (self strBarFieldSpec model: 'Unch' printString asSymbol) alignment: #right); add: (self shadowButtonSpec model: #targetsGraphViewPopup); add: ((self dblFieldSpec model: #'my seniorTargUn * seniorExchangeRateModel / seniorMFactorModel') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my baseQtyUn * seniorQtyDisplayFactorModel') formatString: '#,##0;-#,##0'); add: ((self emptyFieldSpec ) name:#emptyUnch1). ^specs! volTargReceivedSwapQtySpecs | specs | specs := OrderedCollection new. specs add:((self strBarShadowFieldSpec model: 'Unch' printString asSymbol) alignment: #right); add: (self shadowButtonSpec model: #targetsGraphViewPopup); add: ((self dblFieldSpec model: #'my seniorReceivedTargUn * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my seniorTargUn * seniorExchangeRateModel / seniorMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my undTargUn * undrExchangeRateModel / undrMFactorModel ') formatString: '#,##0.000;-#,##0.000'); add: ((self dblFieldSpec model: #'my baseQtyUn') formatString: '#,##0;-#,##0'); add: (((self dblFieldSpec model: #'my undQtyUn') formatString: '#,##0;-#,##0') callbacksSpec: #(#{UI.UIEventCallbackSubSpec} #requestValueChangeSelector: #negativeDefaultQtyChange: )). self revisitChip. "MFactorModel for Und" ^specs! warrantYieldTanSpecs | specs | specs := OrderedCollection new. specs add: (self dblROFieldSpec model: #'my undCurrentYieldUn * 100'); add: (self dblROFieldSpec model: #'my tanValueUn *seniorExchangeRateModel /mFactorModel'). ^specs! yield5Specs | specs | specs := OrderedCollection new. specs add: (self dblBarLiteFieldSpec model: #'my baseYtmUn * 100'); add: (self dblBarLiteFieldSpec model: #'my baseYtpUn * 100'); add: (self dblBarLiteFieldSpec model: #'my baseYtcUn * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldUn * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldUn * 100'). ^specs! yieldSpecs | specs | specs := OrderedCollection new. specs add: (self dblBarLiteFieldSpec model: #'my baseYtmUn * 100'); add: (self dblBarLiteFieldSpec model: #'my baseYtpUn * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldUn * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldUn * 100'). ^specs! yieldSpecsBankDebt | specs | specs := OrderedCollection new. specs add: (self dblBarLiteFieldSpec model: #'my baseYtmUn * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldUn * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldUn * 100'). ^specs! yieldStockSpecs | specs | specs := OrderedCollection new. specs add: ((self emptyFieldSpec ) name:#empty); add: (self dblROFieldSpec model: #'my baseCurrentYieldUn * 100'). ^specs! yieldSwapSpecs | specs | specs := OrderedCollection new. specs add: (self dblFieldSpec model: #'my baseYtmUn * 100'); add: (self dblFieldSpec model: #'my baseYtpUn * 100'); add: (self dblROFieldSpec model: #'my baseCurrentYieldUn * 100'); add: (self dblROFieldSpec model: #'my undCurrentYieldUn * 100'). ^specs! ! !TradeScenarioValuationUnchangedApp class methodsFor: 'auto build specs'! derivativeSpecs | specs | specs := self bondSpecs. specs add: ((self dblROFieldSpec model: #'my seniorTheorecticalAccruedInterest') formatString: '#,##0.0000;-#,##0.0000'). ^specs! optionSpecs ^self warrantSpecs.! straightDerivativeSpecs | specs | specs := self straightBondSpecs. specs add: ((self dblROFieldSpec model: #'my seniorAccruedInterest') formatString: '#,##0.0000;-#,##0.0000'). ^specs! ! !TradeScenarioValuationUnchangedApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'TargetXApp' #bounds: #(#{Graphics.Rectangle} 484 174 695 744 ) ) #component: #(#{UI.SpecCollection} #collection: #() ) )! zeroSpec "UIPainter new openOnClass: self andSelector: #zeroSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'TargetXApp' #bounds: #(#{Graphics.Rectangle} 517 79 728 649 ) ) #component: #(#{UI.SpecCollection} #collection: #() ) )! ! Smalltalk.ApprovedListApp class instanceVariableNames: ''! !ApprovedListApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Approved List' #bounds: #(#{Graphics.Rectangle} 646 400 1168 539 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #approvedList #flags: 0 #colorPolicy: #standardRO #model: #'my clientSettings approvedList displayString' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #string ) ) ) )! ! Smalltalk.CommentBoxApp class instanceVariableNames: ''! !CommentBoxApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Comments' #bounds: #(#{Graphics.Rectangle} 528 512 950 631 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #comment #flags: 0 #colorPolicy: #standard #model: #'my comment !! commentChanged' #style: #'Target Default' ) ) ) )! ! Smalltalk.ProfitAndLossBoxApp class instanceVariableNames: ''! !ProfitAndLossBoxApp class methodsFor: 'resources'! asLabel: aString | text newStyle | newStyle := VariableSizeTextAttributes styleNamed: #systemDefault. text := aString withCRs asComposedText. newStyle lineGrid: 12. newStyle baseline: 12. text textStyle: newStyle. text setHeight: 16. ^text! plCurrencyNoteLabel ^self asLabel: 'All P&L amounts are shown in USD'! plLabel ^self asLabel: 'Profit & Loss'! plToUnchangedHelp ^'Shows the P&L from the opening mark to the current Unchanged column'! ! !ProfitAndLossBoxApp class methodsFor: 'interface specs'! compositeScreenWindowSpec "UIPainter new openOnClass: self andSelector: #compositeScreenWindowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Profit ands Loss - USD' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 769 142 1250 388 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 0.2 ) #name: #showProfitDetails #model: #showProfitDetails #tabable: false #label: 'Profit and Loss - USD' #defaultable: true ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 0 0.2 -1 0.25 0 0.4 ) #name: #line2 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 6869 6869 6605 ) ) #colorPolicy: #none ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.25 0 0.4 -1 0.5 0 0.6 ) #name: #netPLUSD #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #standardRO #model: #'my netPLUSD' #tabable: false #alignment: #right #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.5 0 0.4 -1 0.75 0 0.6 ) #name: #dailyCarryUSD #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #standardRO #model: #'my dailyCarryUSD' #tabable: false #alignment: #right #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.75 0 0.4 -2 1 0 0.6 ) #name: #netPLWithCarryUSD #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #standardRO #model: #'my netPLWithCarryUSD' #tabable: false #alignment: #right #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.25 0 0.6 -1 0.5 0 0.8 ) #name: #mtdNetTradingUSD #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #standardRO #model: #'my mtdNetTradingUSD' #tabable: false #alignment: #right #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.5 0 0.6 -1 0.75 0 0.8 ) #name: #netMTDCarryUSD #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #standardRO #model: #'my netMTDCarryUSD' #tabable: false #alignment: #right #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.75 0 0.6 -2 1 0 0.8 ) #name: #netMTDPLWithCarryUSD #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #standardRO #model: #'my netMTDPLWithCarryUSD' #tabable: false #alignment: #right #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.25 0 0.8 -1 0.5 0 1 ) #name: #ytdNetTradingUSD #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #standardRO #model: #'my ytdNetTradingUSD' #tabable: false #alignment: #right #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.5 0 0.8 -1 0.75 0 1 ) #name: #netYTDCarryUSD #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #standardRO #model: #'my netYTDCarryUSD' #tabable: false #alignment: #right #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.75 0 0.8 -2 1 0 1 ) #name: #netYTDPLWithCarryUSD #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #standardRO #model: #'my netYTDPLWithCarryUSD' #tabable: false #alignment: #right #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.25 0 0.2 -1 0.5 0 0.4 ) #name: #tradingLabel #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 6869 6869 6605 ) ) #model: #'''Trading''' #tabable: false #alignment: #right #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.5 0 0.2 -1 0.75 0 0.4 ) #name: #carryLabel #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 6869 6869 6605 ) ) #model: #'''Carry''' #tabable: false #alignment: #right #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0.75 0 0.2 -2 1 0 0.4 ) #name: #totalLabel #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 6869 6869 6605 ) ) #model: #'''Total''' #tabable: false #alignment: #right #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 0 0.4 -1 0.25 0 0.6 ) #name: #dailyLabel #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #label #model: #'''Daily''' #tabable: false #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 0 0.6 -1 0.25 0 0.8 ) #name: #mtdLabel #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #label #model: #'''MTD''' #tabable: false #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 1 0 0 0.8 -1 0.25 0 1 ) #name: #ytdLabel #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 5119 6655 8191 ) ) #colorPolicy: #label #model: #'''YTD''' #tabable: false #isReadOnly: true #type: #string ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.4 0 1 1 0.4 ) #name: #Divider1 #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} #black ) ) ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.6 0 1 1 0.6 ) #name: #Divider2 #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} #black ) ) ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.8 0 1 1 0.8 ) #name: #Divider3 #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} #black ) ) ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -1 1 0 1 1 1 ) #name: #Divider4 #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} #black ) ) ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.2 1 0 0 1 ) #name: #Divider5 #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} #black ) ) #orientation: #vertical ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 0 0.2 1 0.25 0 1 ) #name: #Divider6 #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} #black ) ) #orientation: #vertical ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0.2 1 0.5 0 1 ) #name: #Divider7 #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} #black ) ) #orientation: #vertical ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 0 0.2 1 0.75 0 1 ) #name: #Divider8 #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} #black ) ) #orientation: #vertical ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} -1 1 0 0.2 0 1 0 1 ) #name: #Divider9 #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} #black ) ) #orientation: #vertical ) ) ) )! currentPLWindowUSDSpec "UIPainter new openOnClass: self andSelector: #currentPLWindowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Profit ands Loss - USD' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 678 662 1159 908 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 0 0 0 0.5 0 0.33 ) #name: #netPLUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netPLUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0 0 0.75 0 0.33 ) #name: #dailyCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my dailyCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 0 0 0 1 0 0.33 ) #name: #netPLWithCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netPLWithCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 0 0.33 0 0.5 0 0.67 ) #name: #mtdNetTradingUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my mtdNetTradingUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0.33 0 0.75 0 0.67 ) #name: #netMTDCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netMTDCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 0 0.33 0 1 0 0.67 ) #name: #netMTDPLWithCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netMTDPLWithCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 0 0.67 0 0.5 0 1 ) #name: #ytdNetTradingUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my ytdNetTradingUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0.67 0 0.75 0 1 ) #name: #netYTDCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netYTDCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 0 0.67 0 1 0 1 ) #name: #netYTDPLWithCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netYTDPLWithCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.25 0 0.33 ) #name: #dailyLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #label #model: #'''Daily''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.33 0 0.25 0 0.67 ) #name: #mtdLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #label #model: #'''MTD''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.67 0 0.25 0 1 ) #name: #ytdLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #label #model: #'''YTD''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) ) ) )! plToUnchangedWindowUSDSpec "UIPainter new openOnClass: self andSelector: #plToUnchangedWindowUSDSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Profit ands Loss - USD' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 640 512 1121 758 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 0 0 0 0.5 0 0.33 ) #name: #netPLToUnchanged #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netPLToUnchangedUSD' #tabable: false #helpText: #plToUnchangedHelp #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0 0 0.75 0 0.33 ) #name: #dailyCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my dailyCarryUSD' #tabable: false #helpText: #plToUnchangedHelp #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 0 0 0 1 0 0.33 ) #name: #netPLWithCarryToUnchanged #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netPLWithCarryToUnchangedUSD' #tabable: false #helpText: #plToUnchangedHelp #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 0 0.33 0 0.5 0 0.67 ) #name: #netMTDPLToUnchanged #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netMTDPLToUnchangedUSD' #tabable: false #helpText: #plToUnchangedHelp #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0.33 0 0.75 0 0.67 ) #name: #netMTDCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netMTDCarryUSD' #tabable: false #helpText: #plToUnchangedHelp #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 0 0.33 0 1 0 0.67 ) #name: #netMTDPLWithCarryToUnchanged #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netMTDPLWithCarryToUnchangedUSD' #tabable: false #helpText: #plToUnchangedHelp #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 0 0.67 0 0.5 0 1 ) #name: #netYTDPLToUnchanged #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netYTDPLToUnchangedUSD' #tabable: false #helpText: #plToUnchangedHelp #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0.67 0 0.75 0 1 ) #name: #netYTDCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netYTDCarryUSD' #tabable: false #helpText: #plToUnchangedHelp #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 0 0.67 0 1 0 1 ) #name: #netYTDPLWithCarryToUnchanged #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #standardRO #model: #'my netYTDPLWithCarryToUnchangedUSD' #tabable: false #helpText: #plToUnchangedHelp #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0;[Red]-#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.25 0 0.33 ) #name: #dailyLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #red ) ) #colorPolicy: #label #model: #'''Daily''' #tabable: false #helpText: #plToUnchangedHelp #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.33 0 0.25 0 0.67 ) #name: #mtdLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #red ) ) #colorPolicy: #label #model: #'''MTD''' #tabable: false #helpText: #plToUnchangedHelp #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.67 0 0.25 0 1 ) #name: #ytdLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #red ) ) #colorPolicy: #label #model: #'''YTD''' #tabable: false #helpText: #plToUnchangedHelp #style: #'Target Default' #isReadOnly: true #type: #string ) ) ) )! tradingScreenWindowSpec "UIPainter new openOnClass: self andSelector: #tradingScreenWindowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Profit and Loss' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 800 600 1281 846 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 0.167 ) #name: #showProfitDetails #model: #showProfitDetails #tabable: false #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 0.167 ) #name: #scenarioDescription #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #yellow ) #setBackgroundColor: #(#{Graphics.ColorValue} #brown ) ) #colorPolicy: #bar #model: #'''Profit and Loss''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.25 0 0.167 0 0.5 0 0.334 ) #name: #tradingLabel #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 6869 6869 6605 ) ) #model: #'''Trading''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.5 0 0.167 0 0.75 0 0.334 ) #name: #carryLabel #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 6869 6869 6605 ) ) #model: #'''Carry''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.75 0 0.167 0 1 0 0.334 ) #name: #totalLabel #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 6869 6869 6605 ) ) #model: #'''Total''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.334 0 1 0 0.835 ) #name: #plToUnchangedWindow #flags: 0 #minorKey: #plToUnchangedWindowUSDSpec ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.334 0 1 0 0.835 ) #name: #currentPLWindow #flags: 0 #minorKey: #currentPLWindowUSDSpec ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.167 0 0.25 0 0.334 ) #name: #plCalcModeDisplay #flags: 0 #isOpaque: true #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #red ) #setBackgroundColor: #(#{Graphics.ColorValue} 6869 6869 6605 ) ) #model: #plCalcModeDisplay #tabable: false #style: #'Target Default' #isReadOnly: true ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0 -15 1 ) #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #white ) ) #colorPolicy: #none #label: 'Amounts are in USD' #style: #pixelDefault ) ) ) )! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Profit ands Loss' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 640 512 1121 758 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 1 ) #name: #background #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} #navy ) ) #colorPolicy: #none ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 20 0 0 1 40 0 ) #name: #line2 #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#{Graphics.ColorValue} 7700 7700 7700 ) ) #colorPolicy: #none ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 120 23 ) #name: #tradingLabel #colorPolicy: #none #label: 'Trading' #style: #'Target Default' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 236 23 ) #name: #carryLabel #colorPolicy: #none #label: 'Carry' #style: #'Target Default' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 336 23 ) #name: #tradingWithCarryLabel #colorPolicy: #none #label: 'Total' #style: #'Target Default' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 28 57 ) #name: #dailyLabel #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #white ) ) #colorPolicy: #none #label: 'Daily' #style: #'Target Default' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 44 81 ) #name: #mtdLabel #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #white ) ) #colorPolicy: #none #label: 'MTD' #style: #'Target Default' ) #(#{UI.LabelSpec} #layout: #(#{Core.Point} 44 105 ) #name: #ytdLabel #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #white ) ) #colorPolicy: #none #label: 'YTD' #style: #'Target Default' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 80 52 180 75 ) #name: #netPLUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #none #model: #'my netPLUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;[Red]-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 180 52 280 75 ) #name: #dailyCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #none #model: #'my dailyCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;[Red]-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 280 52 380 75 ) #name: #netPLWithCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #none #model: #'my netPLWithCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;[Red]-#,##0.00' ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutOrigin} 0 0 -20 1 ) #name: #footnote #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #white ) ) #colorPolicy: #none #label: '* All amounts are shown in USD' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 80 76 180 99 ) #name: #mtdNetTradingUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #none #model: #'my mtdNetTradingUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;[Red]-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 180 76 280 99 ) #name: #netMTDCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #none #model: #'my netMTDCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;[Red]-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 280 76 380 99 ) #name: #netMTDPLWithCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #none #model: #'my netMTDPLWithCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;[Red]-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 80 100 180 123 ) #name: #ytdNetTradingUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #none #model: #'my ytdNetTradingUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;[Red]-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 180 100 280 123 ) #name: #netYTDCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #none #model: #'my netYTDCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;[Red]-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.Rectangle} 280 100 380 123 ) #name: #netYTDPLWithCarryUSD #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} 2048 8191 8191 ) ) #colorPolicy: #none #model: #'my netYTDPLWithCarryUSD' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;[Red]-#,##0.00' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -50 0.5 -25 1 50 0.5 0 1 ) #name: #accept #model: #accept #tabable: false #label: 'Close' #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 20 0 ) #name: #scenarioDescription #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #yellow ) #setBackgroundColor: #(#{Graphics.ColorValue} #brown ) ) #model: #scenarioDescription #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true ) ) ) )! ! Smalltalk.CorpActionsBoxApp class instanceVariableNames: ''! !CorpActionsBoxApp class methodsFor: 'interface specs'! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Profit ands Loss' #min: #(#{Core.Point} 20 20 ) #max: #(#{Core.Point} 800 600 ) #bounds: #(#{Graphics.Rectangle} 640 512 1121 758 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 0.33 ) #name: #displayCorporateActions #flags: 0 #colorPolicy: #none #model: #displayCorporateActions #tabable: false #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 0 0.33 ) #name: #titleLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #yellow ) #setBackgroundColor: #(#{Graphics.ColorValue} #brown ) ) #colorPolicy: #bar #model: #titleLabel #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.33 0 1 0 0.67 ) #name: #seniorLastCorpActionDescription #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #red ) #setBackgroundColor: #(#{Graphics.ColorValue} #navy ) ) #colorPolicy: #standard #model: #'my seniorLastCorpActionDescription' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.67 0 1 0 1 ) #name: #undrLastCorpActionDescription #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#{Graphics.ColorValue} #red ) #setBackgroundColor: #(#{Graphics.ColorValue} #navy ) ) #colorPolicy: #standard #model: #'my undrLastCorpActionDescription' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) ) ) )! ! Smalltalk.ParAnalysisBoxApp class instanceVariableNames: ''! !ParAnalysisBoxApp class methodsFor: 'interface specs'! optionSpec "UIPainter new openOnClass: self andSelector: #optionSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Option Par/Lvg Analysis' #bounds: #(#{Graphics.Rectangle} 421 403 859 622 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.71 0 0 0 1 0 0.17 ) #name: #volLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''FV''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0 0 0.71 0 0.17 ) #name: #volLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''Vol''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.42 0 0.17 ) #name: #actLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''Act''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.165 0 0.115 0 0.33 ) #name: #strLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Str''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.165 0 0.42 0 0.33 ) #name: #strikePrice #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #standardRO #model: #'my seniorStrikePrice *seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.714 0 0.165 0 1 0 0.33 ) #name: #seniorFairValue #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my seniorFairValue*seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.33 0 0.115 0 0.495 ) #name: #optLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Opt''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.33 0 0.42 0 0.495 ) #name: #wrtPriceAtPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my wrtPriceAtPar *seniorExchangeRateModel /seniorMFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.33 0 0.714 0 0.495 ) #name: #wrtPriceAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my wrtPriceAtVol *seniorExchangeRateModel /seniorMFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.495 0 0.115 0 0.66 ) #name: #lvgLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Lvg''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.495 0 0.445 0 0.66 ) #name: #leverageAtPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my leverageAtPar *seniorExchangeRateModel /seniorMFactorModel' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '##0.0000;-##0.0000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.445 0 0.495 0 0.714 0 0.66 ) #name: #leverageAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my leverageAtVol *seniorExchangeRateModel /seniorMFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.66 0 0.115 0 0.825 ) #name: #upLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Up''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.66 0 0.38 0 0.825 ) #name: #upPct #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my upPct *100' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.825 0 0.115 0 0.999 ) #name: #hdgLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Hdg''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.825 0 0.38 0 0.999 ) #name: #hedgeRatio #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my hedgeRatio *100' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.825 0 0.68 0 1 ) #name: #hedgeAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my hedgeAtVol *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.38 0 0.66 0 0.42 0 0.825 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.38 0 0.825 0 0.42 0 1 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.72 0 0.825 0 0.76 0 1 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.165 0 0.714 0 0.33 ) #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #standardRO ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.714 0 0.33 0 1 0 0.825 ) #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #standardRO ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.66 0 0.72 0 0.825 ) #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #standardRO ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.72 0 0.825 0 1 0 1 ) #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #standardRO ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.68 0 0.825 0 0.72 0 1 ) #name: #pctLabel #flags: 0 #colorPolicy: #label #model: #'''%''' #tabable: false #isReadOnly: true ) ) ) )! warrantSpec "UIPainter new openOnClass: self andSelector: #warrantSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Warrant Par/Lvg Analysis' #bounds: #(#{Graphics.Rectangle} 421 403 859 622 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.71 0 0 0 1 0 0.17 ) #name: #volLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''FV''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0 0 0.71 0 0.17 ) #name: #volLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''Vol''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.42 0 0.17 ) #name: #actLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''Act''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.165 0 0.115 0 0.33 ) #name: #strLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Str''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.165 0 0.42 0 0.33 ) #name: #strikePrice #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #standardRO #model: #'my seniorStrikePrice *seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.714 0 0.165 0 1 0 0.33 ) #name: #seniorFairValue #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my seniorFairValue*seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.33 0 0.115 0 0.495 ) #name: #wrtLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Wrt''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.33 0 0.42 0 0.495 ) #name: #wrtPriceAtPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my wrtPriceAtPar *seniorExchangeRateModel /seniorMFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.33 0 0.714 0 0.495 ) #name: #wrtPriceAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my wrtPriceAtVol *seniorExchangeRateModel /seniorMFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.495 0 0.115 0 0.66 ) #name: #lvgLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Lvg''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.495 0 0.445 0 0.66 ) #name: #leverageAtPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my leverageAtPar *seniorExchangeRateModel /seniorMFactorModel' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '##0.0000;-##0.0000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.445 0 0.495 0 0.714 0 0.66 ) #name: #leverageAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my leverageAtVol *seniorExchangeRateModel /seniorMFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.66 0 0.115 0 0.825 ) #name: #upLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Up''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.66 0 0.38 0 0.825 ) #name: #upPct #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my upPct *100' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.825 0 0.115 0 0.999 ) #name: #hdgLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Hdg''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.825 0 0.38 0 0.999 ) #name: #hedgeRatio #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my hedgeRatio *100' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.825 0 0.68 0 1 ) #name: #hedgeAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my hedgeAtVol *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.38 0 0.66 0 0.42 0 0.825 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.38 0 0.825 0 0.42 0 1 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.72 0 0.825 0 0.76 0 1 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.165 0 0.714 0 0.33 ) #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #standardRO ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.714 0 0.33 0 1 0 0.825 ) #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #standardRO ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.66 0 0.72 0 0.825 ) #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #standardRO ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.72 0 0.825 0 1 0 1 ) #colors: #(#{UI.LookPreferences} #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #standardRO ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.68 0 0.825 0 0.72 0 1 ) #name: #pctLabel #flags: 0 #colorPolicy: #label #model: #'''%''' #tabable: false #isReadOnly: true ) ) ) )! windowSpec "UIPainter new openOnClass: self andSelector: #windowSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Par Analysis' #bounds: #(#{Graphics.Rectangle} 421 403 859 622 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.71 0 0 0 1 0 0.17 ) #name: #volLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''Vol''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0 0 0.71 0 0.17 ) #name: #fullLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''Full''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.42 0 0.17 ) #name: #actLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''Act''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.165 0 0.115 0 0.33 ) #name: #parLabel2 #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Par''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.165 0 0.42 0 0.33 ) #name: #payAmountasPctofPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my payAmountasPctofPar *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.165 0 0.67 0 0.33 ) #name: #upPct #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my upPct *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.00;-##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.71 0 0.165 0 0.994 0 0.33 ) #name: #nominalValue #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my seniorNominalValue *seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.33 0 0.115 0 0.495 ) #name: #undLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'my undSecTypeAbbreviation' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.33 0 0.42 0 0.495 ) #name: #undAtPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my undAtPar *undrExchangeRateModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.33 0 0.704 0 0.495 ) #name: #undAtFull #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my undAtFull *undrExchangeRateModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.704 0 0.33 0 0.994 0 0.495 ) #name: #undAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my undAtVol *undrExchangeRateModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.495 0 0.115 0 0.66 ) #name: #ptsLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Pts''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.495 0 0.42 0 0.66 ) #name: #premPtsAtPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my premPtsAtPar *seniorExchangeRateModel /mFactorModel' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.495 0 0.704 0 0.66 ) #name: #premPtsAtFull #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my premPtsAtFull *seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.704 0 0.495 0 0.994 0 0.66 ) #name: #premPtsAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my premPtsAtVol *seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.66 0 0.115 0 0.825 ) #name: #prmLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Prm''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.66 0 0.38 0 0.825 ) #name: #premPctAtPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my premPctAtPar *100' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.66 0 0.67 0 0.825 ) #name: #premPctAtFull #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my premPctAtFull *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.71 0 0.66 0 0.96 0 0.825 ) #name: #premPctAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my premPctAtVol *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.825 0 0.115 0 1 ) #name: #hdgLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Hdg''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.825 0 0.38 0 1 ) #name: #hedgeRatio #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my hedgeRatio *100' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.825 0 0.67 0 0.999 ) #name: #hedgeAtFull #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my hedgeAtFull *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.71 0 0.825 0 0.96 0 1 ) #name: #hedgeAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my hedgeAtVol *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.38 0 0.66 0 0.42 0 0.825 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.96 0 0.66 0 1 0 0.825 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.67 0 0.66 0 0.71 0 0.825 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.38 0 0.825 0 0.42 0 1 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.67 0 0.825 0 0.71 0 1 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.96 0 0.825 0 1 0 1 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.67 0 0.165 0 0.71 0 0.33 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.994 0 0.165 0 1 0 0.66 ) #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) ) ) ) )! zeroSpec "UIPainter new openOnClass: self andSelector: #zeroSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Par Analysis' #bounds: #(#{Graphics.Rectangle} 421 403 859 622 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.71 0 0 0 1 0 0.17 ) #name: #volLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''Vol''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0 0 0.71 0 0.17 ) #name: #fullLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''Full''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.42 0 0.17 ) #name: #actLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #barRO #model: #'''Act''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.165 0 0.115 0 0.33 ) #name: #parLabel2 #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Par''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.165 0 0.42 0 0.33 ) #name: #payAmountasPctofPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my payAmountasPctofPar *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.165 0 0.67 0 0.33 ) #name: #upPct #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my upPct *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.00;-##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.71 0 0.165 0 0.994 0 0.33 ) #name: #nominalValue #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my seniorSecurity accretedValue *seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.33 0 0.115 0 0.495 ) #name: #undLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'my undSecTypeAbbreviation' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.33 0 0.42 0 0.495 ) #name: #undAtPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my undAtPar *undrExchangeRateModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.33 0 0.704 0 0.495 ) #name: #undAtFull #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my undAtFull *undrExchangeRateModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.704 0 0.33 0 0.994 0 0.495 ) #name: #undAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my undAtVol *undrExchangeRateModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.495 0 0.115 0 0.66 ) #name: #ptsLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Pts''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.495 0 0.42 0 0.66 ) #name: #premPtsAtPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my premPtsAtPar *seniorExchangeRateModel /mFactorModel' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.495 0 0.704 0 0.66 ) #name: #premPtsAtFull #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my premPtsAtFull *seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.704 0 0.495 0 0.994 0 0.66 ) #name: #premPtsAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my premPtsAtVol *seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.66 0 0.115 0 0.825 ) #name: #prmLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Prm''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.66 0 0.38 0 0.825 ) #name: #premPctAtPar #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my premPctAtPar *100' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.66 0 0.67 0 0.825 ) #name: #premPctAtFull #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my premPctAtFull *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.71 0 0.66 0 0.96 0 0.825 ) #name: #premPctAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my premPctAtVol *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.825 0 0.115 0 1 ) #name: #hdgLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Hdg''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.115 0 0.825 0 0.38 0 1 ) #name: #hedgeRatio #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #yellow ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standard #model: #'my hedgeRatio *100' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.42 0 0.825 0 0.67 0 0.999 ) #name: #hedgeAtFull #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my hedgeAtFull *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.71 0 0.825 0 0.96 0 1 ) #name: #hedgeAtVol #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my hedgeAtVol *100' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '#,##0.00;-#,##0.00' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.38 0 0.66 0 0.42 0 0.825 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.96 0 0.66 0 1 0 0.825 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.67 0 0.66 0 0.71 0 0.825 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.38 0 0.825 0 0.42 0 1 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.67 0 0.825 0 0.71 0 1 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.96 0 0.825 0 1 0 1 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.67 0 0.165 0 0.71 0 0.33 ) #name: #pctLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''%''' #tabable: false #alignment: #center #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.RegionSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.994 0 0.165 0 1 0 0.66 ) #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) ) ) ) )! ! Smalltalk.HistoricalBoxApp class instanceVariableNames: ''! !HistoricalBoxApp class methodsFor: 'interface specs'! parSpec "UIPainter new openOnClass: self andSelector: #parSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'parSpec' #bounds: #(#{Graphics.Rectangle} 1100 452 1460 573 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{FFISShadowFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.7 0 0 0 1 0 0.25 ) #name: #parLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #bar #model: #'''+/-''' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false ) #(#{FFISShadowFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 0 0 0 0.7 0 0.25 ) #name: #historicalUndLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #bar #model: #'my undSecTypeAbbreviation' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #string ) #(#{FFISShadowFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.4 0 0.25 ) #name: #historicalBaseLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #bar #model: #'my baseSecTypeAbbreviation' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #string ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.7 0 0 0 1 0 0.25 ) #flags: 0 #model: #historicalGraphViewPopup #tabable: false #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 0 0 0 0.7 0 0.25 ) #flags: 0 #model: #historicalGraphViewPopup #tabable: false #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.4 0 0.25 ) #flags: 0 #model: #historicalGraphViewPopup #tabable: false #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.1 0 0.25 0 0.4 0 0.5 ) #name: #historicalCurrentBasePrice #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my historicalCurrentBasePrice *seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 0 0.25 0 0.7 0 0.5 ) #name: #historicalCurrentUndPrice #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my historicalCurrentUndPrice *undrExchangeRateModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.7 0 0.25 0 1 0 0.5 ) #name: #historicalPointsFromCurrent #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my historicalPointsFromCurrent' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;[Red]-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.25 0 0.12 0 0.5 ) #name: #curLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Cur''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.75 0 1 0 1 ) #name: #historicalParLvgApp2 #flags: 0 #majorKey: #{HistoricalParLvgApp} #minorKey: #parSpec #clientKey: #historicalParLvgApp2 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.5 0 1 0 0.75 ) #name: #historicalParLvgApp1 #flags: 0 #majorKey: #{HistoricalParLvgApp} #minorKey: #parSpec #clientKey: #historicalParLvgApp1 ) ) ) )! stockSpec "UIPainter new openOnClass: self andSelector: #stockSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'parSpec' #bounds: #(#{Graphics.Rectangle} 220 240 580 361 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{FFISShadowFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.7 0 0 0 1 0 0.25 ) #name: #parLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #bar #model: #'''''' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false ) #(#{FFISShadowFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 0 0 0 0.7 0 0.25 ) #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #bar #model: #'''''' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #string ) #(#{FFISShadowFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.4 0 0.25 ) #name: #historicalBaseLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #bar #model: #'my baseSecTypeAbbreviation' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #string ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.7 0 0 0 1 0 0.25 ) #flags: 0 #model: #historicalGraphViewPopup #tabable: false #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 0 0 0 0.7 0 0.25 ) #flags: 0 #model: #historicalGraphViewPopup #tabable: false #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.4 0 0.25 ) #flags: 0 #model: #historicalGraphViewPopup #tabable: false #defaultable: true ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.1 0 0.25 0 0.4 0 0.5 ) #name: #historicalCurrentBasePrice #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'my historicalCurrentBasePrice *seniorExchangeRateModel /mFactorModel' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #doubleFloat #formatString: '##0.000;-##0.000' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 0 0.25 0 0.7 0 0.5 ) #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'''''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.7 0 0.25 0 1 0 0.5 ) #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #cyan ) #setBackgroundColor: #(#ColorValue #navy ) #setSelectionForegroundColor: #(#ColorValue #white ) #setSelectionBackgroundColor: #(#{Graphics.ColorValue} 5977 1494 1494 ) ) #colorPolicy: #standardRO #model: #'''''' #tabable: false #alignment: #right #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.25 0 0.12 0 0.5 ) #name: #curLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#ColorValue #navy ) ) #colorPolicy: #label #model: #'''Cur''' #tabable: false #style: #'Target Default' #isReadOnly: true #type: #string ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.75 0 1 0 1 ) #name: #historicalParLvgApp2 #flags: 0 #majorKey: #{HistoricalParLvgApp} #minorKey: #stockSpec #clientKey: #historicalParLvgApp2 ) #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0.5 0 1 0 0.75 ) #name: #historicalParLvgApp1 #flags: 0 #majorKey: #{HistoricalParLvgApp} #minorKey: #stockSpec #clientKey: #historicalParLvgApp1 ) ) ) )! swapWindowSpec ^self parSpec! warrantSpec "UIPainter new openOnClass: self andSelector: #warrantSpec" ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Warrant Historical Box' #bounds: #(#{Graphics.Rectangle} 460 452 820 573 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{FFISShadowFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.7 0 0 0 1 0 0.25 ) #name: #lvgLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #bar #model: #'''Lvg''' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false ) #(#{FFISShadowFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.4 0 0 0 0.7 0 0.25 ) #name: #historicalUndLabel #flags: 0 #colors: #(#{UI.LookPreferences} #setForegroundColor: #(#ColorValue #white ) #setBackgroundColor: #(#{Graphics.ColorValue} 1051 4206 4206 ) ) #colorPolicy: #bar #model: #'my undSecTypeAbbreviation' #tabable: true #alignment: #right #style: #'Target Default' #isReadOnly: false #type: #string ) #(#{FFISShadowFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 0.4 0 0.25 ) #name: #historicalBaseLabel #flags: 0 #colors: #(#{UI.LookPreferences}