66 these can be connected to aspects of an embedding application |
66 these can be connected to aspects of an embedding application |
67 (if this app is embedded in a subCanvas)." |
67 (if this app is embedded in a subCanvas)." |
68 |
68 |
69 ^ #( |
69 ^ #( |
70 #debuggerHolder |
70 #debuggerHolder |
|
71 #frameHolder |
71 ). |
72 ). |
72 |
73 |
|
74 "Modified: / 20-09-2014 / 22:50:47 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
73 ! ! |
75 ! ! |
74 |
76 |
75 !VDBSourceApplication methodsFor:'aspects'! |
77 !VDBSourceApplication methodsFor:'aspects'! |
76 |
78 |
77 sourceFilenameHolder |
79 frameHolder |
78 "return/create the 'sourceFilenameHolder' value holder (automatically generated)" |
80 "return/create the 'frameHolder' value holder (automatically generated)" |
79 |
81 |
80 sourceFilenameHolder isNil ifTrue:[ |
82 frameHolder isNil ifTrue:[ |
81 sourceFilenameHolder := ValueHolder new. |
83 frameHolder := ValueHolder new. |
82 ]. |
84 frameHolder addDependent:self. |
83 ^ sourceFilenameHolder |
85 ]. |
84 ! |
86 ^ frameHolder |
85 |
87 ! |
86 sourceFilenameHolder:aValueModel |
88 |
87 "set the 'sourceFilenameHolder' value holder (automatically generated)" |
89 frameHolder:something |
88 |
90 "set the 'frameHolder' value holder (automatically generated)" |
89 sourceFilenameHolder := aValueModel. |
91 |
|
92 |oldValue newValue| |
|
93 |
|
94 frameHolder notNil ifTrue:[ |
|
95 oldValue := frameHolder value. |
|
96 frameHolder removeDependent:self. |
|
97 ]. |
|
98 frameHolder := something. |
|
99 frameHolder notNil ifTrue:[ |
|
100 frameHolder addDependent:self. |
|
101 ]. |
|
102 newValue := frameHolder value. |
|
103 oldValue ~~ newValue ifTrue:[ |
|
104 self update:#value with:newValue from:frameHolder. |
|
105 ]. |
|
106 ! |
|
107 |
|
108 sourceFileHolder |
|
109 "return/create the 'sourceFileHolder' value holder (automatically generated)" |
|
110 |
|
111 sourceFileHolder isNil ifTrue:[ |
|
112 sourceFileHolder := ValueHolder new. |
|
113 sourceFileHolder addDependent:self. |
|
114 ]. |
|
115 ^ sourceFileHolder |
|
116 ! |
|
117 |
|
118 sourceFileHolder:something |
|
119 "set the 'sourceFileHolder' value holder (automatically generated)" |
|
120 |
|
121 |oldValue newValue| |
|
122 |
|
123 sourceFileHolder notNil ifTrue:[ |
|
124 oldValue := sourceFileHolder value. |
|
125 sourceFileHolder removeDependent:self. |
|
126 ]. |
|
127 sourceFileHolder := something. |
|
128 sourceFileHolder notNil ifTrue:[ |
|
129 sourceFileHolder addDependent:self. |
|
130 ]. |
|
131 newValue := sourceFileHolder value. |
|
132 oldValue ~~ newValue ifTrue:[ |
|
133 self update:#value with:newValue from:sourceFileHolder. |
|
134 ]. |
90 ! |
135 ! |
91 |
136 |
92 sourceStringHolder |
137 sourceStringHolder |
93 "return/create the 'sourceFilenameHolder' value holder (automatically generated)" |
138 "return/create the 'sourceStringHolder' value holder (automatically generated)" |
94 |
139 |
95 sourceStringHolder isNil ifTrue:[ |
140 sourceStringHolder isNil ifTrue:[ |
96 sourceStringHolder := |
141 sourceStringHolder := ValueHolder new. |
97 PluggableAdaptor |
142 sourceStringHolder addDependent:self. |
98 on: self sourceFilenameHolder |
|
99 getter: [ :model | model value isNil ifTrue:['No source'] ifFalse:[model value asFilename contents asString ] ] |
|
100 ]. |
143 ]. |
101 ^ sourceStringHolder |
144 ^ sourceStringHolder |
102 |
145 ! |
103 "Created: / 19-09-2014 / 00:03:02 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
146 |
|
147 sourceStringHolder:something |
|
148 "set the 'sourceStringHolder' value holder (automatically generated)" |
|
149 |
|
150 |oldValue newValue| |
|
151 |
|
152 sourceStringHolder notNil ifTrue:[ |
|
153 oldValue := sourceStringHolder value. |
|
154 sourceStringHolder removeDependent:self. |
|
155 ]. |
|
156 sourceStringHolder := something. |
|
157 sourceStringHolder notNil ifTrue:[ |
|
158 sourceStringHolder addDependent:self. |
|
159 ]. |
|
160 newValue := sourceStringHolder value. |
|
161 oldValue ~~ newValue ifTrue:[ |
|
162 self update:#value with:newValue from:sourceStringHolder. |
|
163 ]. |
|
164 ! ! |
|
165 |
|
166 !VDBSourceApplication methodsFor:'change & update'! |
|
167 |
|
168 update:aspect with:param from:sender |
|
169 "Invoked when an object that I depend upon sends a change notification." |
|
170 |
|
171 sender == frameHolder ifTrue:[ |
|
172 | frame | |
|
173 |
|
174 frame := frameHolder value. |
|
175 frame notNil ifTrue:[ |
|
176 | line | |
|
177 |
|
178 self sourceFileHolder value: frame fullname. |
|
179 line := frame line. |
|
180 line notNil ifTrue:[ |
|
181 sourceView selectLine: line. |
|
182 sourceView makeSelectionVisible. |
|
183 ] |
|
184 ]. |
|
185 ^ self. |
|
186 ]. |
|
187 |
|
188 sender == sourceFileHolder ifTrue:[ |
|
189 | file source | |
|
190 |
|
191 source := nil. |
|
192 file := sourceFileHolder value. |
|
193 file notNil ifTrue:[ |
|
194 file := file asFilename. |
|
195 file exists ifTrue:[ |
|
196 source := file contents asString. |
|
197 ] |
|
198 ]. |
|
199 self sourceStringHolder value: source. |
|
200 ^ self. |
|
201 ]. |
|
202 super update:aspect with:param from:sender |
|
203 |
|
204 "Modified: / 21-09-2014 / 00:15:31 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
104 ! ! |
205 ! ! |
105 |
206 |
106 !VDBSourceApplication methodsFor:'hooks'! |
207 !VDBSourceApplication methodsFor:'hooks'! |
107 |
208 |
108 postBuildSourceView: aCodeView2 |
209 postBuildSourceView: aCodeView2 |
109 aCodeView2 |
210 sourceView := aCodeView2. |
|
211 sourceView |
110 readOnly: true; |
212 readOnly: true; |
111 services: #() |
213 services: #() |
112 |
214 |
113 "Modified: / 19-09-2014 / 00:18:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
215 "Modified: / 21-09-2014 / 00:12:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
114 ! ! |
216 ! ! |
115 |
217 |