VDBVariableObjectListApplication.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 23 Jan 2019 22:05:43 +0000
changeset 151 bc7626f46210
parent 121 e825c8db2147
child 187 4c23ffccaf8e
permissions -rw-r--r--
Performance: do not update contents of windows when not needed ...such as when the tab with it is not visible. This ought to make debugger feel more "snappy" for complex programs running on slow machines and / or during remote debugging sessions. Common code for this has been factored out to new abstract class `VDBAbstractContentsApplication`. `VDBSbstractListApplication` and subclasses have been adapted to use this feature.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
     1
"
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
     2
jv:vdb - Visual / VM Debugger
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
     4
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
     5
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
     6
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
     7
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
     8
"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
"{ Package: 'jv:vdb' }"
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"{ NameSpace: Smalltalk }"
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
    13
VDBAbstractTreeApplication subclass:#VDBVariableObjectListApplication
110
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
    14
	instanceVariableNames:'variableObjectListHolder selectedVariableObjectHolder'
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	classVariableNames:''
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	poolDictionaries:''
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	category:'VDB-UI-Others'
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
    20
!VDBVariableObjectListApplication class methodsFor:'documentation'!
49
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    21
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    22
copyright
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    23
"
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    24
jv:vdb - Visual / VM Debugger
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    25
Copyright (C) 2015-now Jan Vrany
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    26
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    27
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    28
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    29
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    30
"
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
    31
! !
48
0076f0700e5e Added VDBVirtualMemoryMap, a model for memory maps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    32
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
    33
!VDBVariableObjectListApplication class methodsFor:'accessing'!
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
    34
115
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 112
diff changeset
    35
defaultWindowTitle
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 112
diff changeset
    36
    ^ self resources string:'Variables'
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
    37
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
    38
    "Created: / 11-07-2017 / 16:37:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
112
d293d117e978 Add register view to frame details application (`VDBFrameApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 110
diff changeset
    39
    "Modified: / 01-10-2018 / 12:08:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
    40
! !
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
    41
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
    42
!VDBVariableObjectListApplication class methodsFor:'interface specs'!
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    43
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    44
columnsSpec
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    45
    "This resource specification was automatically generated
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    46
     by the DataSetBuilder of ST/X."
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    47
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    48
    "Do not manually edit this!! If it is corrupted,
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    49
     the DataSetBuilder may not be able to read the specification."
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    50
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    51
    "
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    52
     DataSetBuilder new openOnClass:VDBFrameApplication andSelector:#columnsSpec
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    53
    "
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    54
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    55
    <resource: #tableColumns>
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    56
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    57
    ^#(
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    58
      (DataSetColumnSpec
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    59
         label: 'Value'
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    60
         labelAlignment: left
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    61
         labelButtonType: Button
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    62
         width: 1.0
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    63
         height: heightOfFirstRow
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    64
         menuFromApplication: false
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    65
         printSelector: value
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    66
         backgroundSelector: backgroundColor
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    67
         showRowSeparator: false
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    68
         showColSeparator: false
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    69
       )
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    70
      )
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    71
    
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    72
! !
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    73
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
    74
!VDBVariableObjectListApplication class methodsFor:'plugIn spec'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
aspectSelectors
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    "This resource specification was automatically generated
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
     by the UIPainter of ST/X."
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    "Do not manually edit this. If it is corrupted,
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
     the UIPainter may not be able to read the specification."
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    "Return a description of exported aspects;
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
     these can be connected to aspects of an embedding application
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
     (if this app is embedded in a subCanvas)."
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
    ^ #(
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
        #debuggerHolder
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
    89
        #variableObjectListHolder
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
        #selectedVariableHolder
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
      ).
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
    93
    "Modified: / 03-02-2018 / 09:52:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
    96
!VDBVariableObjectListApplication class methodsFor:'startup-web applications'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
initialPageSpec
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    "this is only required for web-applications"
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    ^ self shouldImplement
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
!
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
pageSpecs
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    "this is only required for web-applications"
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    ^ self shouldImplement
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   110
!VDBVariableObjectListApplication methodsFor:'accessing'!
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   111
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   112
variableObjectList: aSequencableCollection
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   113
    self variableObjectListHolder value: aSequencableCollection
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   114
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   115
    "Created: / 03-02-2018 / 08:07:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   116
! !
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   117
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   118
!VDBVariableObjectListApplication methodsFor:'aspects'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
58
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   120
backgroundColorFor: aVDBVariableOjectPresenter
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   121
    ^ aVDBVariableOjectPresenter varobj hasChanged
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   122
        ifTrue:[ Color yellow lighter lighter ]
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   123
        ifFalse:[ nil ]
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   124
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   125
    "Created: / 01-02-2018 / 09:08:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   126
!
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   127
90
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   128
foregroundColorFor: aVDBVariableOjectPresenter
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   129
    | value |
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   130
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   131
    value := aVDBVariableOjectPresenter valueString.
121
e825c8db2147 Fix `VDBVariableObjectListApplication >> foregroundColorFor:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   132
    (value notNil and:[((value includesSubString: 'invalid') or:[ value includesSubString: 'cannot'])]) ifTrue:[ 
90
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   133
        ^ Color red
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   134
    ].
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   135
    ^ nil
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   136
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   137
    "Created: / 30-07-2018 / 11:14:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
121
e825c8db2147 Fix `VDBVariableObjectListApplication >> foregroundColorFor:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   138
    "Modified: / 06-10-2018 / 09:09:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
90
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   139
!
a61a6cd28019 UX: show 'invalid' variables as red
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
   140
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   141
selectedVariableObjectHolder
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   142
    "return/create the 'selectedVariableHolder' value holder (automatically generated)"
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   143
    
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   144
    selectedVariableObjectHolder isNil ifTrue:[
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   145
        selectedVariableObjectHolder := ValueHolder new.
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   146
        selectedVariableObjectHolder addDependent:self.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
    ].
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   148
    ^ selectedVariableObjectHolder
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
!
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   151
selectedVariableObjectHolder:something 
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   152
    "set the 'selectedVariableHolder' value holder (automatically generated)"
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   153
    
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   154
    | oldValue  newValue |
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   156
    selectedVariableObjectHolder notNil ifTrue:[
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   157
        oldValue := selectedVariableObjectHolder value.
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   158
        selectedVariableObjectHolder removeDependent:self.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
    ].
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   160
    selectedVariableObjectHolder := something.
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   161
    selectedVariableObjectHolder notNil ifTrue:[
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   162
        selectedVariableObjectHolder addDependent:self.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
    ].
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   164
    newValue := selectedVariableObjectHolder value.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    oldValue ~~ newValue ifTrue:[
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   166
        self 
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   167
            update:#value
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   168
            with:newValue
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   169
            from:selectedVariableObjectHolder.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
    ].
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
!
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   173
variableObjectListHolder
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   174
    "return/create the 'variableObjectListHolder' value holder (automatically generated)"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   176
    variableObjectListHolder isNil ifTrue:[
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   177
        variableObjectListHolder := ValueHolder with: #().
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   178
        variableObjectListHolder addDependent:self.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    ].
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   180
    ^ variableObjectListHolder
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   181
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   182
    "Modified: / 03-02-2018 / 07:33:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
!
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   185
variableObjectListHolder:something
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   186
    "set the 'variableObjectListHolder' value holder (automatically generated)"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
    |oldValue newValue|
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   190
    variableObjectListHolder notNil ifTrue:[
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   191
        oldValue := variableObjectListHolder value.
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   192
        variableObjectListHolder removeDependent:self.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
    ].
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   194
    variableObjectListHolder := something.
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   195
    variableObjectListHolder notNil ifTrue:[
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   196
        variableObjectListHolder addDependent:self.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
    ].
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   198
    newValue := variableObjectListHolder value.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
    oldValue ~~ newValue ifTrue:[
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   200
        self update:#value with:newValue from:variableObjectListHolder.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
    ].
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   204
!VDBVariableObjectListApplication methodsFor:'change & update'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
update:aspect with:param from:sender
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    "Invoked when an object that I depend upon sends a change notification."
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   209
    sender == variableObjectListHolder ifTrue:[ 
151
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   210
         self enqueueDelayedUpdateContents.
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
         ^ self.
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
    ].
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
    super update:aspect with:param from:sender
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
151
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   215
    "Modified: / 14-02-2019 / 16:31:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   218
!VDBVariableObjectListApplication methodsFor:'change & update-delayed'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
62
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   220
delayedInvalidateInternalList
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   221
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   222
    "/ Updating children may take a while as it needs to issue
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   223
    "/ several commands to the GDB and wait for results. To avoid
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   224
    "/ flickering, we first force an update of all values
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   225
    "/ in background and then force an invalidate.
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   226
    "/ 
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   227
    "/ Note, that update of each individual variable is pushed back 
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   228
    "/ to event queue, allowing the UI to react for user events that 
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   229
    "/ may have come meanwhile.
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   230
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   231
    | children changed |
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   232
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   233
    children := internalListHolder root children.
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   234
    changed := false.
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   235
    children do:[:each | 
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   236
        self enqueueDelayedAction: [ 
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   237
            "/ Update the child, but only if the list of currently displayed
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   238
            "/ children remains the same. Keep in mind that user may have
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   239
            "/ have switched to another frame before we're finished with the update.
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   240
            internalListHolder root children == children ifTrue: [ changed := each varobj hasChanged or:[changed] ] 
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   241
        ].
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   242
    ].
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   243
    self enqueueDelayedAction:[ 
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   244
        (internalListHolder root children == children and:[changed]) ifTrue:[ super delayedInvalidateInternalList ].
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   245
    ]
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   246
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   247
    "Created: / 06-02-2018 / 12:52:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   248
    "Modified: / 21-03-2018 / 09:42:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   249
!
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 60
diff changeset
   250
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
delayedUpdateInternalList
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   252
    | root |
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   254
    debugger isNil ifTrue:[
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
        self internalListHolder root children:#().
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
        ^ self.
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   257
    ].
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
    root := self internalListHolder root.
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   259
    root children:(self variableObjectListHolder value
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   260
                collect:[:v | 
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   261
                    (VDBVariableObjectPresenter new) setVarobj:v;
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   262
                        parent:root;
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   263
                        yourself
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   264
                ]).
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
    root expand.
74
1a238ee98ed3 UX: expand top-level variable in variable list if this is the only variable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   266
    root children size == 1 ifTrue:[ 
1a238ee98ed3 UX: expand top-level variable in variable list if this is the only variable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   267
        root children first expand
1a238ee98ed3 UX: expand top-level variable in variable list if this is the only variable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   268
    ].
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
    internalListView notNil ifTrue:[
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
        internalListView invalidate.
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
    ]
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
    "Created: / 27-02-2015 / 15:47:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
74
1a238ee98ed3 UX: expand top-level variable in variable list if this is the only variable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   274
    "Modified: / 25-05-2018 / 10:40:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
!
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
delayedUpdateSelection
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
    | internalSelection |
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
    internalSelection := self internalSelectionHolder value.
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
    internalSelection notNil ifTrue:[
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   282
        self selectedVariableObjectHolder value: internalSelection varobj
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
    ] ifFalse:[ 
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   284
        self selectedVariableObjectHolder value: nil
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
    ].
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   287
    "Modified: / 28-01-2018 / 22:50:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   290
!VDBVariableObjectListApplication methodsFor:'drag & drop'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
dropObjects:aCollectionOfDropObjects
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
    "drop manager wants to drop.
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
     This is ony sent, if #canDrop: returned true.
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
     Must be redefined in order for drop to work."
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
    ^ self shouldImplement
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   300
!VDBVariableObjectListApplication methodsFor:'event handling'!
58
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   301
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   302
onStoppedEvent: aGDBStoppedEvent
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   303
    self enqueueDelayedInvalidateInternalList
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   304
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   305
    "Created: / 01-02-2018 / 23:14:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   306
! !
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   307
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   308
!VDBVariableObjectListApplication methodsFor:'initialization & release'!
58
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   309
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   310
subscribe   
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   311
    "Register for debugger events. To be overrided by subclasses"
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   312
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   313
    debugger announcer
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   314
        when: GDBStoppedEvent               send: #onStoppedEvent: to: self
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   315
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   316
    "Created: / 01-02-2018 / 23:07:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   317
! !
df46b9c82b38 Variable objects: highlight values that have changed since last "view"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   318
59
e7d0453109a1 Variable objects: splitted `VDBFrameApplication`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 58
diff changeset
   319
!VDBVariableObjectListApplication class methodsFor:'documentation'!
48
0076f0700e5e Added VDBVirtualMemoryMap, a model for memory maps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
   320
0076f0700e5e Added VDBVirtualMemoryMap, a model for memory maps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
   321
version_HG
0076f0700e5e Added VDBVirtualMemoryMap, a model for memory maps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
   322
0076f0700e5e Added VDBVirtualMemoryMap, a model for memory maps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
   323
    ^ '$Changeset: <not expanded> $'
0076f0700e5e Added VDBVirtualMemoryMap, a model for memory maps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
   324
! !
0076f0700e5e Added VDBVirtualMemoryMap, a model for memory maps
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
   325