VDBVariableObjectPresenter.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 10 Jun 2019 15:22:49 +0100
changeset 166 d55f55ac977b
parent 105 41d3bdbb8e2b
child 179 8fba8cf6f0f2
permissions -rw-r--r--
plugins/bee: add symbol filter to quickly search through (possibly long) list of symbols.
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: 46
diff changeset
     1
"
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
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: 46
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: 46
diff changeset
     4
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
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: 46
diff changeset
     6
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
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: 46
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
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    13
VDBAbstractPresenter subclass:#VDBVariableObjectPresenter
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    14
	instanceVariableNames:'varobj'
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-Presentation'
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
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    20
!VDBVariableObjectPresenter 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: 46
diff changeset
    21
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
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: 46
diff changeset
    23
"
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
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: 46
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: 46
diff changeset
    26
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
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: 46
diff changeset
    28
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
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: 46
diff changeset
    30
"
2ec7f7ed9242 License this package under 'Creative Commons Attribution-NonCommercial 4.0 International License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 46
diff changeset
    31
! !
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
    32
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    33
!VDBVariableObjectPresenter class methodsFor:'menu specs'!
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    34
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    35
contextMenu
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    36
    "This resource specification was automatically generated
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    37
     by the MenuEditor of ST/X."
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    38
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    39
    "Do not manually edit this!! If it is corrupted,
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    40
     the MenuEditor may not be able to read the specification."
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    41
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    42
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    43
    "
62
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    44
     MenuEditor new openOnClass:VDBVariableObjectPresenter andSelector:#contextMenu
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    45
     (Menu new fromLiteralArrayEncoding:(VDBVariableObjectPresenter contextMenu)) startUp
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    46
    "
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    47
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    48
    <resource: #menu>
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    49
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    50
    ^ 
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    51
     #(Menu
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    52
        (
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    53
         (MenuItem
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    54
            label: 'Copy Value'
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    55
            itemValue: doCopyValue
62
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    56
            isVisible: true
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    57
          )
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    58
         (MenuItem
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    59
            label: 'Copy Expression'
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    60
            itemValue: doCopyPath
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
    61
            isVisible: true
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    62
          )
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    63
         )
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    64
        nil
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    65
        nil
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    66
      )
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    67
! !
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
    68
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    69
!VDBVariableObjectPresenter methodsFor:'accessing'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
label
105
41d3bdbb8e2b Fix `VDBVariableObjectPresenter >> label`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
    72
    ^ (varobj parent notNil or:[varobj parentIsDynamic])
102
3049a43423cf Fix in `VDBVariableObjectPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
    73
        ifTrue:[ varobj expression ] 
3049a43423cf Fix in `VDBVariableObjectPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
    74
        ifFalse:[ varobj path ]
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
    "Created: / 27-02-2015 / 15:57:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
105
41d3bdbb8e2b Fix `VDBVariableObjectPresenter >> label`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
    77
    "Modified: / 10-09-2018 / 16:45:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
!
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
60
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    80
subject
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    81
    "Return an instance of GDB object that this presenter displays."
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    82
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    83
    ^ varobj
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    84
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    85
    "Modified: / 05-02-2018 / 13:08:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    86
!
bcdb393c956f Cleanup of (former) `VDBModelPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    87
86
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    88
tooltip
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    89
    ^ self valueString
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    90
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    91
    "Created: / 29-07-2018 / 21:35:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    92
!
e056e2aa79a1 UX: show veriable value also as tooltip
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
    93
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    94
value
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    95
    ^ varobj value
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    96
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
    97
    "Created: / 02-06-2017 / 07:32:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    98
    "Modified: / 28-01-2018 / 22:49:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    99
!
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   100
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   101
valueString
102
3049a43423cf Fix in `VDBVariableObjectPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
   102
    ^ varobj value
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   103
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   104
    "Created: / 11-06-2017 / 23:25:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
102
3049a43423cf Fix in `VDBVariableObjectPresenter`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
   105
    "Modified: / 01-09-2018 / 00:55:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   106
!
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   107
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   108
varobj
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   109
    ^ varobj
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   110
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   111
    "Created: / 28-01-2018 / 22:45:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   114
!VDBVariableObjectPresenter methodsFor:'initialization'!
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   116
setVarobj:aGDBVariable 
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   117
    varobj := aGDBVariable
37
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
    "Created: / 27-02-2015 / 16:00:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
! !
f417fe8685c5 Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   122
!VDBVariableObjectPresenter methodsFor:'menu'!
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   123
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   124
contextMenuStX: aMenu
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   125
    "Adds a Smalltalk/X debugging menu items to the context menu."
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   126
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   127
    <menuextension: #contextMenu>
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   128
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   129
    (varobj type endsWith: 'OBJ') ifTrue:[ 
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   130
        | path |
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   131
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   132
        path := varobj path.
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   133
        aMenu addItem: (
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   134
            (MenuItem label: (self class classResources string: 'Inspect - *(%1)' with: path)
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   135
                 itemValue: #doInspectOBJ)
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   136
                 receiver: self
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   137
        ).
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   138
        aMenu addSeparator.
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   139
    ].
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   140
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   141
    "Created: / 10-02-2018 / 23:06:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   142
! !
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   143
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   144
!VDBVariableObjectPresenter methodsFor:'menu actions'!
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   145
62
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   146
doCopyPath
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   147
    self doCopy: varobj path.
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   148
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   149
    "Created: / 05-02-2018 / 22:32:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   150
!
8a52495c2108 UI: avoid flickering when updating variable object list
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 61
diff changeset
   151
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   152
doCopyValue
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   153
    self doCopy: varobj value.
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   154
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   155
    "Created: / 16-01-2018 / 23:28:56 / jv"
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   156
    "Modified: / 28-01-2018 / 22:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   157
!
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   158
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   159
doDoubleClick
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   160
    self doInspectOBJ
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   161
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   162
    "Created: / 19-02-2018 / 16:10:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   163
!
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   164
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   165
doInspectOBJ
104
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   166
    | dup app wnd |
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   167
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   168
    dup := varobj duplicate.
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   169
    dup visualizer: 'lambda val: instance_create(val)'.
104
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   170
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   171
    "/ If used in Inspector2, open child in the same inspector windpow.
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   172
    app := self application.
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   173
    app notNil ifTrue:[ 
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   174
        wnd := app window.
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   175
        wnd notNil ifTrue:[ 
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   176
            wnd := wnd topView.
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   177
            (wnd application isKindOf: Tools::Inspector2) ifTrue:[ 
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   178
                wnd application inspect: dup.
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   179
                ^ self.
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   180
            ].
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   181
        ].
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   182
    ].
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   183
    "/ ...otherwise open a new inspector...            
64
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   184
    dup inspect.
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   185
5ca770f02332 UI: Added Smalltalk/X-specific menu items to variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 62
diff changeset
   186
    "Created: / 10-02-2018 / 23:17:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
104
824a6ee9ff16 UX: when inspecting a variable child, open it in the same inspector window
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   187
    "Modified: / 08-09-2018 / 16:00:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
54
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   188
! !
d974a70c70ad UI: support for presenter-defined context menus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   189
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   190
!VDBVariableObjectPresenter methodsFor:'private'!
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   191
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   192
fetchChildren
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   193
    ^ varobj children collect:[ :each | self class new setVarobj:each; parent:self;yourself ]
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   194
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   195
    "Created: / 28-01-2018 / 22:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   196
! !
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   197
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   198
!VDBVariableObjectPresenter methodsFor:'protocol-queries'!
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   199
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   200
hasChildren
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   201
    ^ varobj hasChildren
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   202
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   203
    "Created: / 28-01-2018 / 22:49:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   204
! !
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   205
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   206
!VDBVariableObjectPresenter methodsFor:'testing'!
42
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   207
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   208
isVariablePresenter
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   209
    ^ true
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   210
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   211
    "Created: / 02-06-2017 / 00:05:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   212
! !
a6f5f470a947 Display variable values in frame view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 37
diff changeset
   213
57
8cd259e11b9e Variable objects: added support for composite types
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   214
!VDBVariableObjectPresenter class methodsFor:'documentation'!
46
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   215
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   216
version_HG
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   217
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   218
    ^ '$Changeset: <not expanded> $'
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   219
! !
6b857f3cec8c Initial support for breakpoints
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 44
diff changeset
   220