author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Mon, 10 Jun 2019 14:59:26 +0100 | |
changeset 165 | 1e2a4cb4afdd |
parent 160 | fea681d31a3c |
child 166 | d55f55ac977b |
permissions | -rw-r--r-- |
160 | 1 |
"{ Package: 'jv:vdb/plugins/bee' }" |
2 |
||
3 |
"{ NameSpace: Smalltalk }" |
|
4 |
||
5 |
VDBAbstractListApplication subclass:#BeeSymbolListApplication |
|
6 |
instanceVariableNames:'symbolListHolder selectedSymbolHolder' |
|
7 |
classVariableNames:'' |
|
165
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
8 |
poolDictionaries:'GDBStopReasons' |
160 | 9 |
category:'VDB-Plugin-Bee-UI' |
10 |
! |
|
11 |
||
12 |
||
13 |
!BeeSymbolListApplication class methodsFor:'accessing - defaults'! |
|
14 |
||
15 |
defaultWindowTitle |
|
16 |
^ 'Bee Symbols' |
|
17 |
||
18 |
"Modified: / 07-06-2019 / 15:00:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
19 |
! ! |
|
20 |
||
21 |
!BeeSymbolListApplication methodsFor:'aspects'! |
|
22 |
||
23 |
selectedSymbolHolder |
|
24 |
"return/create the 'selectedSymbolHolder' value holder (automatically generated)" |
|
25 |
||
26 |
selectedSymbolHolder isNil ifTrue:[ |
|
27 |
selectedSymbolHolder := ValueHolder new. |
|
28 |
selectedSymbolHolder addDependent:self. |
|
29 |
]. |
|
30 |
^ selectedSymbolHolder |
|
31 |
! |
|
32 |
||
33 |
selectedSymbolHolder:something |
|
34 |
"set the 'selectedSymbolHolder' value holder (automatically generated)" |
|
35 |
||
36 |
|oldValue newValue| |
|
37 |
||
38 |
selectedSymbolHolder notNil ifTrue:[ |
|
39 |
oldValue := selectedSymbolHolder value. |
|
40 |
selectedSymbolHolder removeDependent:self. |
|
41 |
]. |
|
42 |
selectedSymbolHolder := something. |
|
43 |
selectedSymbolHolder notNil ifTrue:[ |
|
44 |
selectedSymbolHolder addDependent:self. |
|
45 |
]. |
|
46 |
newValue := selectedSymbolHolder value. |
|
47 |
oldValue ~~ newValue ifTrue:[ |
|
48 |
self update:#value with:newValue from:selectedSymbolHolder. |
|
49 |
]. |
|
50 |
! |
|
51 |
||
52 |
symbolListHolder |
|
53 |
"return/create the 'symbolListHolder' value holder (automatically generated)" |
|
54 |
||
55 |
symbolListHolder isNil ifTrue:[ |
|
56 |
symbolListHolder := ValueHolder new. |
|
57 |
symbolListHolder addDependent:self. |
|
58 |
]. |
|
59 |
^ symbolListHolder |
|
60 |
! |
|
61 |
||
62 |
symbolListHolder:something |
|
63 |
"set the 'symbolListHolder' value holder (automatically generated)" |
|
64 |
||
65 |
|oldValue newValue| |
|
66 |
||
67 |
symbolListHolder notNil ifTrue:[ |
|
68 |
oldValue := symbolListHolder value. |
|
69 |
symbolListHolder removeDependent:self. |
|
70 |
]. |
|
71 |
symbolListHolder := something. |
|
72 |
symbolListHolder notNil ifTrue:[ |
|
73 |
symbolListHolder addDependent:self. |
|
74 |
]. |
|
75 |
newValue := symbolListHolder value. |
|
76 |
oldValue ~~ newValue ifTrue:[ |
|
77 |
self update:#value with:newValue from:symbolListHolder. |
|
78 |
]. |
|
79 |
! ! |
|
80 |
||
81 |
!BeeSymbolListApplication methodsFor:'change & update'! |
|
82 |
||
83 |
update:aspect with:param from:sender |
|
84 |
"Invoked when an object that I depend upon sends a change notification." |
|
85 |
||
86 |
sender == symbolListHolder ifTrue:[ |
|
87 |
self enqueueDelayedUpdateInternalList. |
|
88 |
^ self. |
|
89 |
]. |
|
90 |
super update:aspect with:param from:sender |
|
91 |
||
92 |
"Created: / 07-06-2019 / 15:05:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
93 |
! ! |
|
94 |
||
95 |
!BeeSymbolListApplication methodsFor:'change & update-delayed'! |
|
96 |
||
97 |
delayedUpdateContents |
|
98 |
| symbols | |
|
99 |
||
100 |
debugger notNil ifTrue:[ |
|
101 |
debugger send: GDBMI_bee_list_symbols new andWithResultDo: [ :result | |
|
102 |
result isDone ifTrue:[ |
|
103 |
symbols := result propertyAt: #result. |
|
165
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
104 |
symbols do:[:e | e setDebugger: debugger ]. |
160 | 105 |
symbols sort:[ :a :b | a name < b name ]. |
106 |
self symbolListHolder value: symbols. |
|
165
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
107 |
]. |
160 | 108 |
] |
109 |
] ifFalse:[ |
|
110 |
self symbolListHolder value: nil. |
|
111 |
]. |
|
112 |
||
113 |
"Created: / 07-06-2019 / 14:59:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
165
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
114 |
"Modified: / 10-06-2019 / 10:31:04 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
160 | 115 |
! |
116 |
||
117 |
delayedUpdateInternalList |
|
118 |
| symbols symbolPs | |
|
119 |
||
120 |
symbols := self symbolListHolder value ? #(). |
|
121 |
symbolPs := symbols collect:[ :reg | BeeSymbolPresenter new setSymbol: reg ]. |
|
122 |
self internalListHolder value: symbolPs |
|
123 |
||
124 |
"Modified: / 07-06-2019 / 14:53:47 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
125 |
! |
|
126 |
||
127 |
delayedUpdateSelection |
|
128 |
| symbolP | |
|
129 |
||
130 |
symbolP := self internalSelectionHolder value. |
|
131 |
self selectedSymbolHolder value: (symbolP notNil ifTrue:[ symbolP symbol ] ifFalse:[ nil ]) |
|
132 |
||
133 |
"Modified (format): / 07-06-2019 / 15:07:14 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
134 |
! ! |
|
135 |
||
165
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
136 |
!BeeSymbolListApplication methodsFor:'event handling'! |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
137 |
|
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
138 |
onStoppedEvent: aGDBStoppedEvent |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
139 |
|
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
140 |
aGDBStoppedEvent reason ~= EndSteppingRange ifTrue:[ |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
141 |
self enqueueDelayedUpdateContents |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
142 |
]. |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
143 |
|
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
144 |
"Created: / 10-06-2019 / 14:12:54 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
145 |
! ! |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
146 |
|
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
147 |
!BeeSymbolListApplication methodsFor:'initialization & release'! |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
148 |
|
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
149 |
subscribe |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
150 |
super subscribe. |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
151 |
debugger notNil ifTrue:[ |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
152 |
debugger announcer |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
153 |
when: GDBStoppedEvent send: #onStoppedEvent: to: self. |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
154 |
] |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
155 |
|
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
156 |
"Created: / 10-06-2019 / 14:12:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
157 |
! ! |
1e2a4cb4afdd
plugins/bee: add menu item to disassemble given symbol
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
160
diff
changeset
|
158 |
|
160 | 159 |
!BeeSymbolListApplication class methodsFor:'documentation'! |
160 |
||
161 |
version_HG |
|
162 |
||
163 |
^ '$Changeset: <not expanded> $' |
|
164 |
! ! |
|
165 |