26 "{ Package: 'stx:libtool' }" |
26 "{ Package: 'stx:libtool' }" |
27 |
27 |
28 "{ NameSpace: Tools }" |
28 "{ NameSpace: Tools }" |
29 |
29 |
30 ApplicationModel subclass:#ChangeSetDiffTool |
30 ApplicationModel subclass:#ChangeSetDiffTool |
31 instanceVariableNames:'diffInfoHolder listHolder singleSelectionHolder diffsetHolder |
31 instanceVariableNames:'infoPanel diffInfoHolder listHolder singleSelectionHolder |
32 titleHolder firstColSelectionHolder navigatorPanelSpecHolder |
32 diffsetHolder titleHolder firstColSelectionHolder |
33 diffMenuHolder diffsetHolderPrivate selectionHolder |
33 navigatorPanelSpecHolder diffMenuHolder diffsetHolderPrivate |
34 versionATextHolder versionBTextHolder versionBaseTextHolder |
34 selectionHolder versionATextHolder versionBTextHolder |
35 textDiffToolHolder textDiffToolWindowSpecHolder mergeHolder |
35 versionBaseTextHolder textDiffToolHolder |
36 mergeDataHolder showVersionMethodDiffsHolder' |
36 textDiffToolWindowSpecHolder mergeHolder mergeDataHolder |
37 classVariableNames:'' |
37 showVersionMethodDiffsHolder showCopyrightMethodDiffsHolder |
|
38 highlightConflictsHolder hasDiffsetHolder' |
|
39 classVariableNames:'LastDiffInfo' |
38 poolDictionaries:'' |
40 poolDictionaries:'' |
39 category:'Interface-Diff' |
41 category:'Interface-Diff' |
40 ! |
42 ! |
41 |
43 |
42 SimpleDialog subclass:#OpenDialog |
44 SimpleDialog subclass:#OpenDialog |
177 versionB24x24 |
179 versionB24x24 |
178 |
180 |
179 ^ToolbarIconLibrary versionB24x24 |
181 ^ToolbarIconLibrary versionB24x24 |
180 |
182 |
181 "Created: / 24-03-2010 / 20:50:38 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
183 "Created: / 24-03-2010 / 20:50:38 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
184 ! ! |
|
185 |
|
186 !ChangeSetDiffTool class methodsFor:'interface opening'! |
|
187 |
|
188 open |
|
189 | tool | |
|
190 |
|
191 tool := self new. |
|
192 tool open. |
|
193 tool window sensor pushUserEvent: #fileMenuOpen for: tool. |
|
194 |
|
195 "Created: / 01-08-2012 / 15:13:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
182 ! ! |
196 ! ! |
183 |
197 |
184 !ChangeSetDiffTool class methodsFor:'interface specs'! |
198 !ChangeSetDiffTool class methodsFor:'interface specs'! |
185 |
199 |
186 labelSpec |
200 labelSpec |
282 |
296 |
283 (SubChannelInfoSpec |
297 (SubChannelInfoSpec |
284 subAspect: showVersionMethodDiffsHolder |
298 subAspect: showVersionMethodDiffsHolder |
285 aspect: showVersionMethodDiffsHolder |
299 aspect: showVersionMethodDiffsHolder |
286 ) |
300 ) |
|
301 (SubChannelInfoSpec |
|
302 subAspect: showCopyrightMethodDiffsHolder |
|
303 aspect: showCopyrightMethodDiffsHolder |
|
304 ) |
|
305 (SubChannelInfoSpec |
|
306 subAspect: highlightConflictsHolder |
|
307 aspect: highlightConflictsHolder |
|
308 ) |
287 ) |
309 ) |
288 createNewApplication: true |
310 createNewApplication: true |
289 createNewBuilder: false |
311 createNewBuilder: false |
290 ) |
312 ) |
291 ) |
313 ) |
292 |
314 |
293 ) |
315 ) |
294 ) |
316 ) |
|
317 |
|
318 "Modified: / 01-08-2012 / 17:05:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
295 ! |
319 ! |
296 |
320 |
297 twoColumnNavigatorSpec |
321 twoColumnNavigatorSpec |
298 "This resource specification was automatically generated |
322 "This resource specification was automatically generated |
299 by the UIPainter of ST/X." |
323 by the UIPainter of ST/X." |
355 |
379 |
356 (SubChannelInfoSpec |
380 (SubChannelInfoSpec |
357 subAspect: showVersionMethodDiffsHolder |
381 subAspect: showVersionMethodDiffsHolder |
358 aspect: showVersionMethodDiffsHolder |
382 aspect: showVersionMethodDiffsHolder |
359 ) |
383 ) |
|
384 (SubChannelInfoSpec |
|
385 subAspect: showCopyrightMethodDiffsHolder |
|
386 aspect: showCopyrightMethodDiffsHolder |
|
387 ) |
|
388 (SubChannelInfoSpec |
|
389 subAspect: highlightConflictsHolder |
|
390 aspect: highlightConflictsHolder |
|
391 ) |
360 ) |
392 ) |
361 createNewApplication: true |
393 createNewApplication: true |
362 createNewBuilder: true |
394 createNewBuilder: true |
363 ) |
395 ) |
364 (SubCanvasSpec |
396 (SubCanvasSpec |
389 |
421 |
390 (SubChannelInfoSpec |
422 (SubChannelInfoSpec |
391 subAspect: showVersionMethodDiffsHolder |
423 subAspect: showVersionMethodDiffsHolder |
392 aspect: showVersionMethodDiffsHolder |
424 aspect: showVersionMethodDiffsHolder |
393 ) |
425 ) |
|
426 (SubChannelInfoSpec |
|
427 subAspect: showCopyrightMethodDiffsHolder |
|
428 aspect: showCopyrightMethodDiffsHolder |
|
429 ) |
|
430 (SubChannelInfoSpec |
|
431 subAspect: highlightConflictsHolder |
|
432 aspect: highlightConflictsHolder |
|
433 ) |
394 ) |
434 ) |
395 createNewApplication: true |
435 createNewApplication: true |
396 createNewBuilder: true |
436 createNewBuilder: true |
397 ) |
437 ) |
398 ) |
438 ) |
433 menu: mainMenu |
475 menu: mainMenu |
434 ) |
476 ) |
435 component: |
477 component: |
436 (SpecCollection |
478 (SpecCollection |
437 collection: ( |
479 collection: ( |
|
480 (SubCanvasSpec |
|
481 name: 'InfoPanel' |
|
482 layout: (LayoutFrame 0 0 0 0 0 1 40 0) |
|
483 level: 0 |
|
484 initiallyInvisible: true |
|
485 hasHorizontalScrollBar: false |
|
486 hasVerticalScrollBar: false |
|
487 clientKey: infoPanel |
|
488 createNewBuilder: false |
|
489 ) |
438 (UISubSpecification |
490 (UISubSpecification |
439 name: 'Label' |
491 name: 'Label' |
440 layout: (LayoutFrame 0 0 0 0 0 1 56 0) |
492 layout: (LayoutFrame 0 0 0 0 0 1 56 0) |
|
493 initiallyInvisible: true |
|
494 visibilityChannel: hasDiffsetHolder |
441 minorKey: labelSpec |
495 minorKey: labelSpec |
442 ) |
496 ) |
443 (VariableVerticalPanelSpec |
497 (VariableVerticalPanelSpec |
444 name: 'Panel' |
498 name: 'Panel' |
445 layout: (LayoutFrame 0 0 56 0 0 1 0 1) |
499 layout: (LayoutFrame 0 0 56 0 0 1 0 1) |
|
500 initiallyInvisible: true |
|
501 visibilityChannel: hasDiffsetHolder |
446 showHandle: true |
502 showHandle: true |
447 component: |
503 component: |
448 (SpecCollection |
504 (SpecCollection |
449 collection: ( |
505 collection: ( |
450 (SubCanvasSpec |
506 (SubCanvasSpec |
453 hasVerticalScrollBar: false |
509 hasVerticalScrollBar: false |
454 specHolder: navigatorPanelSpecHolder |
510 specHolder: navigatorPanelSpecHolder |
455 createNewBuilder: false |
511 createNewBuilder: false |
456 ) |
512 ) |
457 (SubCanvasSpec |
513 (SubCanvasSpec |
|
514 name: 'SubCanvas1' |
458 specHolder: textDiffToolWindowSpecHolder |
515 specHolder: textDiffToolWindowSpecHolder |
459 clientHolder: textDiffToolHolder |
516 clientHolder: textDiffToolHolder |
460 createNewBuilder: false |
517 createNewBuilder: false |
461 ) |
518 ) |
462 ) |
519 ) |
1042 firstColSelectionHolder := ValueHolder with:nil "defaultValue here". |
1109 firstColSelectionHolder := ValueHolder with:nil "defaultValue here". |
1043 ]. |
1110 ]. |
1044 ^ firstColSelectionHolder |
1111 ^ firstColSelectionHolder |
1045 ! |
1112 ! |
1046 |
1113 |
|
1114 hasDiffsetHolder |
|
1115 "return/create the 'hasDiffsetHolder' value holder (automatically generated)" |
|
1116 |
|
1117 hasDiffsetHolder isNil ifTrue:[ |
|
1118 hasDiffsetHolder := false asValue |
|
1119 ]. |
|
1120 ^ hasDiffsetHolder |
|
1121 |
|
1122 "Modified: / 01-08-2012 / 17:16:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1123 ! |
|
1124 |
|
1125 hasDiffsetHolder:something |
|
1126 "set the 'hasDiffsetHolder' value holder (automatically generated)" |
|
1127 |
|
1128 hasDiffsetHolder := something. |
|
1129 ! |
|
1130 |
1047 hasSelectionHolder |
1131 hasSelectionHolder |
1048 |
1132 |
1049 |holder| |
1133 |holder| |
1050 |
1134 |
1051 (holder := builder bindingAt:#hasSelectionHolder) isNil ifTrue:[ |
1135 (holder := builder bindingAt:#hasSelectionHolder) isNil ifTrue:[ |
1057 |
1141 |
1058 "Created: / 22-10-2008 / 11:34:36 / Jan Vrany <vranyj1@fel.cvut.cz>" |
1142 "Created: / 22-10-2008 / 11:34:36 / Jan Vrany <vranyj1@fel.cvut.cz>" |
1059 "Modified: / 22-10-2008 / 12:38:47 / Jan Vrany <vranyj1@fel.cvut.cz>" |
1143 "Modified: / 22-10-2008 / 12:38:47 / Jan Vrany <vranyj1@fel.cvut.cz>" |
1060 ! |
1144 ! |
1061 |
1145 |
|
1146 highlightConflictsHolder |
|
1147 "return/create the 'highlightConflictsHolder' value holder (automatically generated)" |
|
1148 |
|
1149 highlightConflictsHolder isNil ifTrue:[ |
|
1150 highlightConflictsHolder := true asValue |
|
1151 ]. |
|
1152 ^ highlightConflictsHolder |
|
1153 |
|
1154 "Modified: / 01-08-2012 / 17:07:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1155 ! |
|
1156 |
|
1157 highlightConflictsHolder:something |
|
1158 "set the 'highlightConflictsHolder' value holder (automatically generated)" |
|
1159 |
|
1160 highlightConflictsHolder := something. |
|
1161 ! |
|
1162 |
|
1163 infoPanel |
|
1164 infoPanel isNil ifTrue:[ |
|
1165 infoPanel := InlineMessageDialog new |
|
1166 ]. |
|
1167 ^ infoPanel |
|
1168 |
|
1169 "Created: / 09-02-2012 / 19:23:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1170 ! |
|
1171 |
1062 listHolder |
1172 listHolder |
1063 "return/create the 'listHolder' value holder (automatically generated)" |
1173 "return/create the 'listHolder' value holder (automatically generated)" |
1064 |
1174 |
1065 listHolder isNil ifTrue:[ |
1175 listHolder isNil ifTrue:[ |
1066 listHolder := ValueHolder new. |
1176 listHolder := ValueHolder new. |
1143 ^ selectionHolder |
1253 ^ selectionHolder |
1144 |
1254 |
1145 "Modified (format): / 06-07-2011 / 12:25:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1255 "Modified (format): / 06-07-2011 / 12:25:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1146 ! |
1256 ! |
1147 |
1257 |
|
1258 showCopyrightMethodDiffsHolder |
|
1259 "return/create the 'showCopyrightMethodDiffsHolder' value holder (automatically generated)" |
|
1260 |
|
1261 showCopyrightMethodDiffsHolder isNil ifTrue:[ |
|
1262 showCopyrightMethodDiffsHolder := true asValue |
|
1263 ]. |
|
1264 ^ showCopyrightMethodDiffsHolder |
|
1265 |
|
1266 "Modified: / 01-08-2012 / 17:06:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1267 ! |
|
1268 |
|
1269 showCopyrightMethodDiffsHolder:something |
|
1270 "set the 'showCopyrightMethodDiffsHolder' value holder (automatically generated)" |
|
1271 |
|
1272 showCopyrightMethodDiffsHolder := something. |
|
1273 ! |
|
1274 |
1148 showVersionMethodDiffsHolder |
1275 showVersionMethodDiffsHolder |
1149 "return/create the 'showVersionMethodDiffsHolder' value holder (automatically generated)" |
1276 "return/create the 'showVersionMethodDiffsHolder' value holder (automatically generated)" |
1150 |
1277 |
1151 showVersionMethodDiffsHolder isNil ifTrue:[ |
1278 showVersionMethodDiffsHolder isNil ifTrue:[ |
1152 showVersionMethodDiffsHolder := true asValue. |
1279 showVersionMethodDiffsHolder := true asValue. |
1279 |
1406 |
1280 diffInfoChanged |
1407 diffInfoChanged |
1281 |
1408 |
1282 | info | |
1409 | info | |
1283 info := self diffInfoHolder value. |
1410 info := self diffInfoHolder value. |
1284 info read. |
1411 self hasDiffsetHolder value: false. |
1285 self diffset: info diffset. |
1412 info notNil ifTrue:[ |
1286 self updateViews |
1413 self infoPanel showProgressLabeled: (resources string:'Reading changesets') while: [ |
|
1414 info read. |
|
1415 self diffset: info diffset. |
|
1416 self updateViews. |
|
1417 self hasDiffsetHolder value: true. |
|
1418 ]. |
|
1419 ] |
1287 |
1420 |
1288 "Created: / 19-03-2012 / 23:40:23 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1421 "Created: / 19-03-2012 / 23:40:23 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1289 ! |
1422 ! |
1290 |
1423 |
1291 diffsetChanged |
1424 diffsetChanged |
1454 |
1587 |
1455 fileMenuOpen |
1588 fileMenuOpen |
1456 |
1589 |
1457 | dlg info | |
1590 | dlg info | |
1458 dlg := OpenDialog new. |
1591 dlg := OpenDialog new. |
|
1592 dlg diffInfo: LastDiffInfo. |
1459 dlg open ifFalse:[^self]. |
1593 dlg open ifFalse:[^self]. |
1460 info := ChangeSetDiffInfo new. |
1594 info := dlg diffInfo. |
1461 info specA: dlg changeSetASpec. |
|
1462 info specB: dlg changeSetBSpec. |
|
1463 info specBase: dlg changeSetBaseSpec. |
|
1464 info specMerge: dlg changeSetMergedSpec. |
|
1465 |
1595 |
1466 ^self fileMenuOpenOnDiffInfo: info |
1596 ^self fileMenuOpenOnDiffInfo: info |
1467 |
1597 |
1468 "Modified: / 20-03-2012 / 11:12:04 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1598 "Modified: / 01-08-2012 / 15:53:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1469 ! |
1599 ! |
1470 |
1600 |
1471 fileMenuOpenOnDiffInfo: info |
1601 fileMenuOpenOnDiffInfo: info |
1472 |
1602 |
|
1603 LastDiffInfo := info. |
1473 self diffInfoHolder value: info |
1604 self diffInfoHolder value: info |
1474 |
1605 |
1475 "Created: / 20-03-2012 / 00:04:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1606 "Created: / 20-03-2012 / 00:04:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1476 ! |
1607 ! |
1477 |
1608 |
2372 |
2509 |
2373 changeSetMergedSpec |
2510 changeSetMergedSpec |
2374 ^self changesetSpecMergedHolder value. |
2511 ^self changesetSpecMergedHolder value. |
2375 |
2512 |
2376 "Created: / 20-03-2012 / 00:01:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2513 "Created: / 20-03-2012 / 00:01:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
2514 ! |
|
2515 |
|
2516 changeSetMergedSpec: spec |
|
2517 ^self changesetSpecMergedHolder value: spec |
|
2518 |
|
2519 "Created: / 01-08-2012 / 15:38:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
2520 ! |
|
2521 |
|
2522 diffInfo |
|
2523 "Returns a ChangeSetDiffInfo based on current data" |
|
2524 |
|
2525 | info | |
|
2526 info := ChangeSetDiffInfo new. |
|
2527 info specA: self changeSetASpec. |
|
2528 info specB: self changeSetBSpec. |
|
2529 info specBase: self changeSetBaseSpec. |
|
2530 info specMerge: self changeSetMergedSpec. |
|
2531 ^info |
|
2532 |
|
2533 "Created: / 01-08-2012 / 15:41:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
2534 ! |
|
2535 |
|
2536 diffInfo: info |
|
2537 "Sets up dialog for given diff info" |
|
2538 |
|
2539 info isNil ifTrue:[ ^ self ]. |
|
2540 |
|
2541 self changeSetASpec: info specA. |
|
2542 self changeSetBSpec: info specB. |
|
2543 self changeSetBaseSpec: info specBase. |
|
2544 self changeSetMergedSpec: info specMerge. |
|
2545 |
|
2546 "Created: / 01-08-2012 / 15:37:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2377 ! ! |
2547 ! ! |
2378 |
2548 |
2379 !ChangeSetDiffTool::OpenDialog methodsFor:'aspects'! |
2549 !ChangeSetDiffTool::OpenDialog methodsFor:'aspects'! |
2380 |
2550 |
2381 changesetSpecAHolder |
2551 changesetSpecAHolder |