60 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
60 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
61 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
61 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
62 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
62 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
63 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
63 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
64 OTHER DEALINGS IN THE SOFTWARE. |
64 OTHER DEALINGS IN THE SOFTWARE. |
|
65 " |
|
66 ! |
|
67 |
|
68 documentation |
|
69 " |
|
70 Embeddable list to display affected methods from a selected SmallLint rules. |
|
71 (this is embedded in the browser when showing lint check outcomes) |
|
72 |
|
73 [author:] |
|
74 Jan Vrany <jan.vrany@fit.cvut.cz> |
|
75 |
|
76 [instance variables:] |
|
77 |
|
78 [class variables:] |
|
79 |
|
80 [see also:] |
|
81 |
65 " |
82 " |
66 ! ! |
83 ! ! |
67 |
84 |
68 !LintRuleDetail class methodsFor:'help specs'! |
85 !LintRuleDetail class methodsFor:'help specs'! |
69 |
86 |
231 |
250 |
232 "Modified: / 04-08-2011 / 21:39:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
251 "Modified: / 04-08-2011 / 21:39:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
233 "Modified: / 01-03-2012 / 08:50:20 / cg" |
252 "Modified: / 01-03-2012 / 08:50:20 / cg" |
234 ! |
253 ! |
235 |
254 |
236 rationaleVisibleHolder:something |
255 rationaleVisibleHolder:aValueHolder |
237 "set the 'rationaleVisibleHolder' value holder (automatically generated)" |
256 "set the 'rationaleVisibleHolder' value holder (automatically generated)" |
238 |
257 |
239 |oldValue newValue| |
258 |oldValue newValue| |
240 |
259 |
241 rationaleVisibleHolder notNil ifTrue:[ |
260 rationaleVisibleHolder notNil ifTrue:[ |
242 oldValue := rationaleVisibleHolder value. |
261 oldValue := rationaleVisibleHolder value. |
243 rationaleVisibleHolder removeDependent:self. |
262 rationaleVisibleHolder removeDependent:self. |
244 ]. |
263 ]. |
245 rationaleVisibleHolder := something. |
264 rationaleVisibleHolder := aValueHolder. |
246 rationaleVisibleHolder notNil ifTrue:[ |
265 rationaleVisibleHolder notNil ifTrue:[ |
247 rationaleVisibleHolder addDependent:self. |
266 rationaleVisibleHolder addDependent:self. |
248 ]. |
267 ]. |
249 newValue := rationaleVisibleHolder value. |
268 newValue := rationaleVisibleHolder value. |
250 oldValue ~~ newValue ifTrue:[ |
269 oldValue ~~ newValue ifTrue:[ |
261 ^ ruleHolder |
280 ^ ruleHolder |
262 |
281 |
263 "Modified: / 01-03-2012 / 08:51:03 / cg" |
282 "Modified: / 01-03-2012 / 08:51:03 / cg" |
264 ! |
283 ! |
265 |
284 |
266 ruleHolder:something |
285 ruleHolder:aValueHolder |
267 "set the 'ruleHolder' value holder (automatically generated)" |
286 "set the 'ruleHolder' value holder (automatically generated)" |
268 |
287 |
269 |oldValue newValue| |
288 |oldValue newValue| |
270 |
289 |
271 ruleHolder notNil ifTrue:[ |
290 ruleHolder notNil ifTrue:[ |
272 oldValue := ruleHolder value. |
291 oldValue := ruleHolder value. |
273 ruleHolder removeDependent:self. |
292 ruleHolder removeDependent:self. |
274 ]. |
293 ]. |
275 ruleHolder := something. |
294 ruleHolder := aValueHolder. |
276 ruleHolder notNil ifTrue:[ |
295 ruleHolder notNil ifTrue:[ |
277 ruleHolder addDependent:self. |
296 ruleHolder addDependent:self. |
278 ]. |
297 ]. |
279 newValue := ruleHolder value. |
298 newValue := ruleHolder value. |
280 oldValue ~~ newValue ifTrue:[ |
299 oldValue ~~ newValue ifTrue:[ |
309 |
328 |
310 |holder| |
329 |holder| |
311 |
330 |
312 (holder := builder bindingAt:#ruleRationaleAspect) isNil ifTrue:[ |
331 (holder := builder bindingAt:#ruleRationaleAspect) isNil ifTrue:[ |
313 "cannot use a BlockValue linked on the ruleHolder for the |
332 "cannot use a BlockValue linked on the ruleHolder for the |
314 ruleRationaleAspect, because the ruleHolder maight be changed dynamically |
333 ruleRationaleAspect, because the ruleHolder might be changed dynamically |
315 via the aspect-linking mechanism" |
334 via the aspect-linking mechanism" |
316 "/ holder := (AspectAdaptor forAspect: #rationale) subjectChannel: self ruleHolder. |
335 "/ holder := (AspectAdaptor forAspect: #rationale) subjectChannel: self ruleHolder. |
317 holder := '' asValue. |
336 holder := '' asValue. |
318 builder aspectAt:#ruleRationaleAspect put:holder. |
337 builder aspectAt:#ruleRationaleAspect put:holder. |
319 ]. |
338 ]. |
321 |
340 |
322 "Modified: / 05-02-2010 / 12:51:42 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
341 "Modified: / 05-02-2010 / 12:51:42 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
323 "Modified: / 01-03-2012 / 15:29:16 / cg" |
342 "Modified: / 01-03-2012 / 15:29:16 / cg" |
324 ! |
343 ! |
325 |
344 |
|
345 selectedClassesHolder |
|
346 "return/create the 'selectedClassesHolder' value holder (automatically generated)" |
|
347 |
|
348 selectedClassesHolder isNil ifTrue:[ |
|
349 selectedClassesHolder := #() asValue. |
|
350 selectedClassesHolder addDependent:self. |
|
351 ]. |
|
352 ^ selectedClassesHolder |
|
353 ! |
|
354 |
|
355 selectedClassesHolder:aValueHolder |
|
356 "set the 'selectedClassesHolder' value holder (automatically generated)" |
|
357 |
|
358 |oldValue newValue| |
|
359 |
|
360 selectedClassesHolder notNil ifTrue:[ |
|
361 oldValue := selectedClassesHolder value. |
|
362 selectedClassesHolder removeDependent:self. |
|
363 ]. |
|
364 selectedClassesHolder := aValueHolder. |
|
365 selectedClassesHolder notNil ifTrue:[ |
|
366 selectedClassesHolder addDependent:self. |
|
367 ]. |
|
368 newValue := selectedClassesHolder value. |
|
369 oldValue ~= newValue ifTrue:[ |
|
370 self update:#value with:newValue from:selectedClassesHolder. |
|
371 ]. |
|
372 ! |
|
373 |
326 selectedMethodsHolder |
374 selectedMethodsHolder |
327 "return/create the 'selectedMethodsHolder' value holder (automatically generated)" |
375 "return/create the 'selectedMethodsHolder' value holder (automatically generated)" |
328 |
376 |
329 selectedMethodsHolder isNil ifTrue:[ |
377 selectedMethodsHolder isNil ifTrue:[ |
330 selectedMethodsHolder := #() asValue. |
378 selectedMethodsHolder := #() asValue. |
331 selectedMethodsHolder addDependent:self. |
379 selectedMethodsHolder addDependent:self. |
332 ]. |
380 ]. |
333 ^ selectedMethodsHolder |
381 ^ selectedMethodsHolder |
334 ! |
382 ! |
335 |
383 |
336 selectedMethodsHolder:something |
384 selectedMethodsHolder:aValueHolder |
337 "set the 'selectedMethodsHolder' value holder (automatically generated)" |
385 "set the 'selectedMethodsHolder' value holder (automatically generated)" |
338 |
386 |
339 |oldValue newValue| |
387 |oldValue newValue| |
340 |
388 |
341 selectedMethodsHolder notNil ifTrue:[ |
389 selectedMethodsHolder notNil ifTrue:[ |
342 oldValue := selectedMethodsHolder value. |
390 oldValue := selectedMethodsHolder value. |
343 selectedMethodsHolder removeDependent:self. |
391 selectedMethodsHolder removeDependent:self. |
344 ]. |
392 ]. |
345 selectedMethodsHolder := something. |
393 selectedMethodsHolder := aValueHolder. |
346 selectedMethodsHolder notNil ifTrue:[ |
394 selectedMethodsHolder notNil ifTrue:[ |
347 selectedMethodsHolder addDependent:self. |
395 selectedMethodsHolder addDependent:self. |
348 ]. |
396 ]. |
349 newValue := selectedMethodsHolder value. |
397 newValue := selectedMethodsHolder value. |
350 oldValue ~= newValue ifTrue:[ |
398 oldValue ~= newValue ifTrue:[ |
365 changedObject == rationaleVisibleHolder ifTrue:[ |
413 changedObject == rationaleVisibleHolder ifTrue:[ |
366 self updateVisibility. |
414 self updateVisibility. |
367 ^ self. |
415 ^ self. |
368 ]. |
416 ]. |
369 changedObject == selectedMethodsHolder ifTrue:[ |
417 changedObject == selectedMethodsHolder ifTrue:[ |
370 "/ cg: preparations to show method-specific text in rationale/detail |
418 "/ cg: preparations to show method-specific text in rationale/detail view |
371 "/ view. Not yet done... |
419 "/ Not yet done... |
|
420 self updateRule. |
|
421 ^ self |
|
422 ]. |
|
423 |
|
424 changedObject == selectedClassesHolder ifTrue:[ |
|
425 "/ cg: preparations to show class-specific text in rationale/detail view |
|
426 "/ Not yet done... |
|
427 self updateRule. |
|
428 ^ self |
372 ]. |
429 ]. |
373 |
430 |
374 super update:something with:aParameter from:changedObject |
431 super update:something with:aParameter from:changedObject |
375 |
432 |
376 "Modified: / 04-08-2011 / 21:31:13 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
433 "Modified: / 04-08-2011 / 21:31:13 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
380 updateRule |
437 updateRule |
381 "cannot use a BlockValue linked on the ruleHolder for the |
438 "cannot use a BlockValue linked on the ruleHolder for the |
382 ruleRationaleAspect, because the ruleHolder maight be changed dynamically |
439 ruleRationaleAspect, because the ruleHolder maight be changed dynamically |
383 via the aspect-linking mechanism" |
440 via the aspect-linking mechanism" |
384 |
441 |
385 |rule| |
442 |rule text| |
386 |
443 |
|
444 text := ''. |
|
445 |
387 rule := self ruleHolder value. |
446 rule := self ruleHolder value. |
388 self ruleRationaleAspect value: (rule isNil ifTrue:[''] ifFalse:[rule rationaleWithAnchor]). |
447 rule notNil ifTrue:[ |
|
448 selectedMethodsHolder value size == 1 ifTrue:[ |
|
449 text := rule rationaleWithAnchorForMethod:(selectedMethodsHolder value first). |
|
450 ] ifFalse:[ |
|
451 selectedClassesHolder value size == 1 ifTrue:[ |
|
452 text := rule rationaleWithAnchorForClass:(selectedClassesHolder value first). |
|
453 ] ifFalse:[ |
|
454 text := rule rationaleWithAnchor. |
|
455 ] |
|
456 ] |
|
457 ]. |
|
458 self ruleRationaleAspect value:text. |
389 |
459 |
390 "Created: / 01-03-2012 / 15:28:18 / cg" |
460 "Created: / 01-03-2012 / 15:28:18 / cg" |
391 ! |
461 ! |
392 |
462 |
393 updateVisibility |
463 updateVisibility |