VDBAbstractContainer.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 10 Jun 2014 17:46:14 +0100
changeset 5 fac6e83fd5c0
parent 2 9741a7683808
child 13 d06924d8ca0a
permissions -rw-r--r--
Implemented VDBTabbingContainer. Changed main window to show three tabs by default: * debugger console * inferior console * event log.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:vdb' }"
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
VDBAbstractApplication subclass:#VDBAbstractContainer
5
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
     4
	instanceVariableNames:'components labels'
1
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'VDB-UI-Abstract'
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
09b3ef5606e7 Added simple event log application. Initial stub for application containers (docking panels)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
2
9741a7683808 Added VDBInferiorConsoleApplication to display debugee's input/output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    10
5
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    11
!VDBAbstractContainer class methodsFor:'queries'!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    12
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    13
isAbstract
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    14
    "Return if this class is an abstract class.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    15
     True is returned here for myself only; false for subclasses.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    16
     Abstract subclasses must redefine again."
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    17
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    18
    ^ self == VDBAbstractContainer.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    19
! !
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    20
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    21
!VDBAbstractContainer methodsFor:'adding & removing components'!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    22
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    23
addApplication: anApplicationModel
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    24
    | label |
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    25
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    26
    label := anApplicationModel perform: #title ifNotUnderstood:[ anApplicationModel class name ].
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    27
    ^ self addApplication: anApplicationModel labeled: label
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    28
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    29
    "Created: / 10-06-2014 / 14:23:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    30
    "Modified: / 10-06-2014 / 16:59:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    31
!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    32
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    33
addApplication: anApplicationModel labeled: aString
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    34
    ^ self addApplication: anApplicationModel labeled: aString beforeIndex: components size + 1
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    35
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    36
    "Created: / 10-06-2014 / 16:59:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    37
!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    38
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    39
addApplication: anApplicationModel labeled: aString beforeIndex: anInteger
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    40
    | component |
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    41
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    42
    component := ApplicationSubView new.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    43
    anApplicationModel createBuilder.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    44
    anApplicationModel window: component.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    45
    component client: anApplicationModel.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    46
    ^ self addComponent: component labeled: aString beforeIndex: anInteger
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    47
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    48
    "Created: / 10-06-2014 / 16:58:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    49
!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    50
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    51
addComponent: aView labeled: aString 
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    52
    self addComponent: aView labeled: aString beforeIndex: labels size + 1.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    53
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    54
    "Created: / 10-06-2014 / 16:39:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    55
!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    56
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    57
addComponent: aView labeled: aString beforeIndex: anInteger
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    58
    labels add: aString beforeIndex: anInteger.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    59
    components add: aView beforeIndex: anInteger.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    60
    aView isApplicationSubView ifTrue:[ 
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    61
        aView application debuggerHolder: self debuggerHolder.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    62
    ].    
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    63
    self assert: labels size == components size.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    64
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    65
    "Created: / 10-06-2014 / 16:37:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    66
! !
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    67
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    68
!VDBAbstractContainer methodsFor:'aspects'!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    69
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    70
debuggerHolder:aValueModel
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    71
    super debuggerHolder:aValueModel.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    72
    components do:[:each | 
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    73
        each isApplicationSubView ifTrue:[ 
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    74
            each application debuggerHolder: aValueModel
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    75
        ].
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    76
    ].
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    77
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    78
    "Created: / 10-06-2014 / 17:27:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    79
! !
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    80
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    81
!VDBAbstractContainer methodsFor:'initialization & release'!
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    82
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    83
initialize
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    84
    labels := List new.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    85
    components := List new.
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    86
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    87
    "Created: / 10-06-2014 / 14:24:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    88
    "Modified: / 10-06-2014 / 16:37:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    89
! !
fac6e83fd5c0 Implemented VDBTabbingContainer.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    90
2
9741a7683808 Added VDBInferiorConsoleApplication to display debugee's input/output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    91
!VDBAbstractContainer class methodsFor:'documentation'!
9741a7683808 Added VDBInferiorConsoleApplication to display debugee's input/output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    92
9741a7683808 Added VDBInferiorConsoleApplication to display debugee's input/output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    93
version_HG
9741a7683808 Added VDBInferiorConsoleApplication to display debugee's input/output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    94
9741a7683808 Added VDBInferiorConsoleApplication to display debugee's input/output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    95
    ^ '$Changeset: <not expanded> $'
9741a7683808 Added VDBInferiorConsoleApplication to display debugee's input/output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    96
! !
9741a7683808 Added VDBInferiorConsoleApplication to display debugee's input/output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    97