author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Thu, 08 Jun 2017 13:43:34 +0100 | |
changeset 44 | 41cc5a7840fe |
parent 37 | f417fe8685c5 |
child 46 | 6b857f3cec8c |
permissions | -rw-r--r-- |
37
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'jv:vdb' }" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
"{ NameSpace: Smalltalk }" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
VDBAbstractApplication subclass:#VDBAbstractListApplication |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
instanceVariableNames:'internalListHolder internalListView internalSelectionHolder' |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
classVariableNames:'' |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
poolDictionaries:'' |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
category:'VDB-UI-Abstract' |
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 |
|
44 | 12 |
!VDBAbstractListApplication class methodsFor:'interface specs'! |
13 |
||
14 |
columnsSpec |
|
15 |
^ #() |
|
16 |
||
17 |
"Created: / 02-06-2017 / 07:26:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
18 |
! ! |
|
19 |
||
20 |
!VDBAbstractListApplication class methodsFor:'menu specs'! |
|
21 |
||
22 |
contextMenu |
|
23 |
"This resource specification was automatically generated |
|
24 |
by the MenuEditor of ST/X." |
|
25 |
||
26 |
"Do not manually edit this!! If it is corrupted, |
|
27 |
the MenuEditor may not be able to read the specification." |
|
28 |
||
29 |
||
30 |
" |
|
31 |
MenuEditor new openOnClass:VDBStackApplication andSelector:#contextMenu |
|
32 |
(Menu new fromLiteralArrayEncoding:(VDBStackApplication contextMenu)) startUp |
|
33 |
" |
|
34 |
||
35 |
<resource: #menu> |
|
36 |
||
37 |
^ |
|
38 |
#(Menu |
|
39 |
( |
|
40 |
(MenuItem |
|
41 |
label: 'Menu Slice' |
|
42 |
submenuChannel: contextMenuInspectSlice |
|
43 |
isMenuSlice: true |
|
44 |
) |
|
45 |
) |
|
46 |
nil |
|
47 |
nil |
|
48 |
) |
|
49 |
! |
|
50 |
||
51 |
contextMenuInspectSlice |
|
52 |
"This resource specification was automatically generated |
|
53 |
by the MenuEditor of ST/X." |
|
54 |
||
55 |
"Do not manually edit this!! If it is corrupted, |
|
56 |
the MenuEditor may not be able to read the specification." |
|
57 |
||
58 |
||
59 |
" |
|
60 |
MenuEditor new openOnClass:VDBAbstractListApplication andSelector:#contextMenuInspectSlice |
|
61 |
(Menu new fromLiteralArrayEncoding:(VDBAbstractListApplication contextMenuInspectSlice)) startUp |
|
62 |
" |
|
63 |
||
64 |
<resource: #menu> |
|
65 |
||
66 |
^ |
|
67 |
#(Menu |
|
68 |
( |
|
69 |
(MenuItem |
|
70 |
enabled: hasSelection |
|
71 |
label: 'Inspect Model' |
|
72 |
itemValue: doInspectModel |
|
73 |
) |
|
74 |
(MenuItem |
|
75 |
label: 'Inspect Presenter' |
|
76 |
itemValue: doInspectPresenter |
|
77 |
) |
|
78 |
(MenuItem |
|
79 |
label: '-' |
|
80 |
) |
|
81 |
(MenuItem |
|
82 |
label: 'Update' |
|
83 |
itemValue: duUpdateList |
|
84 |
) |
|
85 |
) |
|
86 |
nil |
|
87 |
nil |
|
88 |
) |
|
89 |
! ! |
|
90 |
||
37
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
!VDBAbstractListApplication class methodsFor:'queries'! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
93 |
isAbstract |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
94 |
"Return if this class is an abstract class. |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
True is returned here for myself only; false for subclasses. |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
96 |
Abstract subclasses must redefine again." |
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 |
^ self == VDBAbstractListApplication. |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
99 |
! ! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
100 |
|
44 | 101 |
!VDBAbstractListApplication methodsFor:'actions'! |
102 |
||
103 |
postBuildInternalListView: aView |
|
104 |
<resource: #uiCallback> |
|
105 |
||
106 |
| columns | |
|
107 |
||
108 |
internalListView := aView. |
|
109 |
internalListView font: CodeView defaultFont. |
|
110 |
||
111 |
columns := self class columnsSpec. |
|
112 |
columns notEmptyOrNil ifTrue:[ |
|
113 |
| renderer | |
|
114 |
||
115 |
renderer := aView setupTableRenderer. |
|
116 |
renderer columnDescriptors: columns |
|
117 |
]. |
|
118 |
||
119 |
"Modified: / 11-06-2017 / 22:16:54 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
120 |
! ! |
|
121 |
||
37
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
122 |
!VDBAbstractListApplication methodsFor:'aspects-private'! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
123 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
124 |
internalListHolder |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
125 |
"return/create the 'listHolder' value holder (automatically generated)" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
126 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
127 |
internalListHolder isNil ifTrue:[ |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
128 |
internalListHolder := ValueHolder new. |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
129 |
]. |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
130 |
^ internalListHolder |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
131 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
132 |
"Created: / 27-02-2015 / 15:55:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
133 |
! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
134 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
135 |
internalSelectionHolder |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
136 |
"return/create the 'internalSelectionHolder' value holder (automatically generated)" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
137 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
138 |
internalSelectionHolder isNil ifTrue:[ |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
139 |
internalSelectionHolder := ValueHolder new. |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
140 |
internalSelectionHolder addDependent:self. |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
141 |
]. |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
142 |
^ internalSelectionHolder |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
143 |
! ! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
144 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
145 |
!VDBAbstractListApplication methodsFor:'change & update'! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
146 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
147 |
enqueueDelayedUpdateInternalList |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
148 |
self window sensor pushUserEvent:#delayedUpdateInternalList for:self |
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 |
"Created: / 20-09-2014 / 23:05:33 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
151 |
! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
152 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
153 |
enqueueDelayedUpdateSelection |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
154 |
self window sensor pushUserEvent:#delayedUpdateSelection for:self |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
155 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
156 |
"Created: / 27-02-2015 / 15:35:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
157 |
! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
158 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
159 |
update:aspect with:param from:sender |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
160 |
"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
|
161 |
sender == internalSelectionHolder ifTrue:[ |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
162 |
self enqueueDelayedUpdateSelection. |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
163 |
^ self |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
164 |
]. |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
165 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
166 |
super update:aspect with:param from:sender |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
167 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
168 |
"Created: / 27-02-2015 / 15:44:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
169 |
! ! |
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 |
!VDBAbstractListApplication methodsFor:'change & update-delayed'! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
172 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
173 |
delayedUpdateInternalList |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
174 |
"raise an error: must be redefined in concrete subclass(es)" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
175 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
176 |
^ self subclassResponsibility |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
177 |
! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
178 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
179 |
delayedUpdateSelection |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
180 |
"raise an error: must be redefined in concrete subclass(es)" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
181 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
182 |
^ self subclassResponsibility |
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 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
185 |
!VDBAbstractListApplication methodsFor:'hooks'! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
186 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
187 |
commonPostOpen |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
188 |
"a common hook for postOpenWith:, postOpenAsSubcanvasWith: and postOpenAsDialogWith:." |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
189 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
190 |
self enqueueDelayedUpdateInternalList |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
191 |
|
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
192 |
"Created: / 18-09-2014 / 00:29:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
193 |
"Modified: / 20-09-2014 / 23:50:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
44 | 194 |
! ! |
195 |
||
196 |
!VDBAbstractListApplication methodsFor:'menu'! |
|
197 |
||
198 |
contextMenu |
|
199 |
^ builder menuFor: #contextMenu |
|
200 |
||
201 |
"Created: / 12-06-2017 / 12:02:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
202 |
! ! |
|
203 |
||
204 |
!VDBAbstractListApplication methodsFor:'menu actions'! |
|
205 |
||
206 |
doInspectModel |
|
207 |
| selection | |
|
208 |
||
209 |
selection := self internalSelectionHolder value. |
|
210 |
selection notEmptyOrNil ifTrue:[ |
|
211 |
selection isThreadGroupPresenter ifTrue: [ selection threadGroup inspect ]. |
|
212 |
selection isThreadPresenter ifTrue: [ selection thread inspect ]. |
|
213 |
selection isFramePresenter ifTrue: [ selection frame inspect ]. |
|
214 |
selection isVariablePresenter ifTrue: [ selection variable inspect ]. |
|
215 |
]. |
|
216 |
||
217 |
"Modified: / 02-06-2017 / 00:05:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
37
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
218 |
! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
219 |
|
44 | 220 |
doInspectPresenter |
221 |
self internalSelectionHolder value inspect |
|
222 |
||
223 |
"Modified: / 22-09-2014 / 01:17:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
224 |
! |
|
37
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
225 |
|
44 | 226 |
duUpdateList |
227 |
<resource: #uiCallback> |
|
228 |
||
229 |
self enqueueDelayedUpdateInternalList |
|
230 |
||
231 |
"Modified: / 12-06-2017 / 12:00:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
37
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
232 |
! ! |
f417fe8685c5
Initial support for variables
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
233 |