|
1 "{ Package: 'cvut:stx/goodies/libsvn' }" |
|
2 |
|
3 "{ NameSpace: SVN }" |
|
4 |
|
5 Browser subclass:#RevisionLogBrowser |
|
6 instanceVariableNames:'' |
|
7 classVariableNames:'' |
|
8 poolDictionaries:'' |
|
9 category:'SVN-UI-Browsers' |
|
10 ! |
|
11 |
|
12 Browser subclass:#Entry |
|
13 instanceVariableNames:'' |
|
14 classVariableNames:'' |
|
15 poolDictionaries:'' |
|
16 privateIn:RevisionLogBrowser |
|
17 ! |
|
18 |
|
19 !RevisionLogBrowser class methodsFor:'documentation'! |
|
20 |
|
21 version_SVN |
|
22 ^'$Id$' |
|
23 ! ! |
|
24 |
|
25 !RevisionLogBrowser class methodsFor:'interface specs'! |
|
26 |
|
27 windowSpec |
|
28 "This resource specification was automatically generated |
|
29 by the UIPainter of ST/X." |
|
30 |
|
31 "Do not manually edit this!! If it is corrupted, |
|
32 the UIPainter may not be able to read the specification." |
|
33 |
|
34 " |
|
35 UIPainter new openOnClass:SVN::RevisionLogBrowser andSelector:#windowSpec |
|
36 SVN::RevisionLogBrowser new openInterface:#windowSpec |
|
37 SVN::RevisionLogBrowser open |
|
38 " |
|
39 |
|
40 <resource: #canvas> |
|
41 |
|
42 ^ |
|
43 #(FullSpec |
|
44 name: windowSpec |
|
45 window: |
|
46 (WindowSpec |
|
47 label: 'Revision log browser' |
|
48 name: 'Revision log browser' |
|
49 min: (Point 10 10) |
|
50 bounds: (Rectangle 0 0 800 600) |
|
51 ) |
|
52 component: |
|
53 (SpecCollection |
|
54 collection: ( |
|
55 (VariableVerticalPanelSpec |
|
56 name: 'ListAndDetailPanel' |
|
57 layout: (LayoutFrame 0 0 0 0 0 1 0 1) |
|
58 showHandle: true |
|
59 snapMode: both |
|
60 component: |
|
61 (SpecCollection |
|
62 collection: ( |
|
63 (DataSetSpec |
|
64 name: 'RevisionList' |
|
65 model: selectionHolder |
|
66 hasHorizontalScrollBar: true |
|
67 hasVerticalScrollBar: true |
|
68 dataList: revisionLogEntriesAspect |
|
69 useIndex: false |
|
70 columnHolder: tableColumns |
|
71 ) |
|
72 (SubCanvasSpec |
|
73 name: 'Entry' |
|
74 hasHorizontalScrollBar: false |
|
75 hasVerticalScrollBar: false |
|
76 majorKey: #'SVN::RevisionLogBrowser::Entry' |
|
77 subAspectHolders: |
|
78 (Array |
|
79 |
|
80 (SubChannelInfoSpec |
|
81 subAspect: model |
|
82 aspect: selectionHolder |
|
83 ) |
|
84 ) |
|
85 createNewApplication: true |
|
86 createNewBuilder: true |
|
87 ) |
|
88 ) |
|
89 |
|
90 ) |
|
91 handles: (Any 0.5 1.0) |
|
92 ) |
|
93 ) |
|
94 |
|
95 ) |
|
96 ) |
|
97 ! ! |
|
98 |
|
99 !RevisionLogBrowser class methodsFor:'plugIn spec'! |
|
100 |
|
101 aspectSelectors |
|
102 "This resource specification was automatically generated |
|
103 by the UIPainter of ST/X." |
|
104 |
|
105 "Do not manually edit this. If it is corrupted, |
|
106 the UIPainter may not be able to read the specification." |
|
107 |
|
108 "Return a description of exported aspects; |
|
109 these can be connected to aspects of an embedding application |
|
110 (if this app is embedded in a subCanvas)." |
|
111 |
|
112 ^ #( |
|
113 #model |
|
114 #selectionHolder |
|
115 ). |
|
116 |
|
117 ! ! |
|
118 |
|
119 !RevisionLogBrowser class methodsFor:'tableColumns specs'! |
|
120 |
|
121 tableColumns |
|
122 "This resource specification was automatically generated |
|
123 by the DataSetBuilder of ST/X." |
|
124 |
|
125 "Do not manually edit this!! If it is corrupted, |
|
126 the DataSetBuilder may not be able to read the specification." |
|
127 |
|
128 " |
|
129 DataSetBuilder new openOnClass:SVN::RevisionSelectionDialog andSelector:#tableColumns |
|
130 " |
|
131 |
|
132 <resource: #tableColumns> |
|
133 |
|
134 ^#( |
|
135 (DataSetColumnSpec |
|
136 label: 'Revision' |
|
137 activeHelpKey: '' |
|
138 labelButtonType: Button |
|
139 printSelector: revision |
|
140 canSelect: false |
|
141 showRowSeparator: false |
|
142 showColSeparator: false |
|
143 ) |
|
144 (DataSetColumnSpec |
|
145 label: 'Author' |
|
146 activeHelpKey: '' |
|
147 labelButtonType: Button |
|
148 printSelector: author |
|
149 canSelect: false |
|
150 showRowSeparator: false |
|
151 showColSeparator: false |
|
152 ) |
|
153 (DataSetColumnSpec |
|
154 label: 'Date' |
|
155 activeHelpKey: '' |
|
156 labelButtonType: Button |
|
157 printSelector: date |
|
158 canSelect: false |
|
159 showRowSeparator: false |
|
160 showColSeparator: false |
|
161 ) |
|
162 ) |
|
163 |
|
164 "Created: / 21-05-2008 / 09:22:21 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
165 ! ! |
|
166 |
|
167 !RevisionLogBrowser methodsFor:'aspects'! |
|
168 |
|
169 revisionLogEntriesAspect |
|
170 |
|
171 ^self model |
|
172 |
|
173 "Created: / 21-05-2008 / 09:22:37 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
174 ! ! |
|
175 |
|
176 !RevisionLogBrowser::Entry class methodsFor:'documentation'! |
|
177 |
|
178 version_SVN |
|
179 ^'$Id$' |
|
180 ! ! |
|
181 |
|
182 !RevisionLogBrowser::Entry class methodsFor:'interface specs'! |
|
183 |
|
184 changedPathsSpec |
|
185 "This resource specification was automatically generated |
|
186 by the UIPainter of ST/X." |
|
187 |
|
188 "Do not manually edit this!! If it is corrupted, |
|
189 the UIPainter may not be able to read the specification." |
|
190 |
|
191 " |
|
192 UIPainter new openOnClass:SVN::RevisionLogBrowser::Entry andSelector:#changedPathsSpec |
|
193 SVN::RevisionLogBrowser::Entry new openInterface:#changedPathsSpec |
|
194 " |
|
195 |
|
196 <resource: #canvas> |
|
197 |
|
198 ^ |
|
199 #(FullSpec |
|
200 name: changedPathsSpec |
|
201 window: |
|
202 (WindowSpec |
|
203 label: 'ChangedPaths' |
|
204 name: 'ChangedPaths' |
|
205 min: (Point 10 10) |
|
206 bounds: (Rectangle 0 0 300 300) |
|
207 ) |
|
208 component: |
|
209 (SpecCollection |
|
210 collection: ( |
|
211 (DataSetSpec |
|
212 name: 'ChangePathsList' |
|
213 layout: (LayoutFrame 0 0 0 0 0 1 0 1) |
|
214 hasHorizontalScrollBar: true |
|
215 hasVerticalScrollBar: true |
|
216 dataList: changedPathsAspect |
|
217 useIndex: false |
|
218 columnHolder: changedPathListColumns |
|
219 showLabels: false |
|
220 columns: |
|
221 (Array |
|
222 |
|
223 (DataSetColumnSpec |
|
224 label: '' |
|
225 labelAlignment: left |
|
226 labelButtonType: Button |
|
227 usePreferredWidth: true |
|
228 printSelector: icon |
|
229 showRowSeparator: false |
|
230 showColSeparator: false |
|
231 ) |
|
232 (DataSetColumnSpec |
|
233 label: 'Path' |
|
234 labelButtonType: Button |
|
235 printSelector: path |
|
236 showRowSeparator: false |
|
237 showColSeparator: false |
|
238 ) |
|
239 ) |
|
240 ) |
|
241 ) |
|
242 |
|
243 ) |
|
244 ) |
|
245 ! |
|
246 |
|
247 revisionInfoSpec |
|
248 "This resource specification was automatically generated |
|
249 by the UIPainter of ST/X." |
|
250 |
|
251 "Do not manually edit this!! If it is corrupted, |
|
252 the UIPainter may not be able to read the specification." |
|
253 |
|
254 " |
|
255 UIPainter new openOnClass:SVN::RevisionLogEntryApp andSelector:#revisionInfoSpec |
|
256 SVN::RevisionLogEntryApp new openInterface:#revisionInfoSpec |
|
257 " |
|
258 |
|
259 <resource: #canvas> |
|
260 |
|
261 ^ |
|
262 #(FullSpec |
|
263 name: revisionInfoSpec |
|
264 window: |
|
265 (WindowSpec |
|
266 label: 'Revision Log Entry Info ' |
|
267 name: 'Revision Log Entry Info ' |
|
268 min: (Point 10 10) |
|
269 bounds: (Rectangle 0 0 360 296) |
|
270 ) |
|
271 component: |
|
272 (SpecCollection |
|
273 collection: ( |
|
274 (LabelSpec |
|
275 label: 'Revision:' |
|
276 name: 'RevisionLabel' |
|
277 layout: (LayoutFrame 4 0 0 0 104 0 25 0) |
|
278 translateLabel: true |
|
279 adjust: left |
|
280 ) |
|
281 (InputFieldSpec |
|
282 name: 'RevisionField' |
|
283 layout: (LayoutFrame 105 0 0 0 0 1 25 0) |
|
284 model: revisionAspect |
|
285 isReadOnly: true |
|
286 acceptOnReturn: true |
|
287 acceptOnTab: true |
|
288 acceptOnLostFocus: true |
|
289 acceptOnPointerLeave: false |
|
290 ) |
|
291 (LabelSpec |
|
292 label: 'Date:' |
|
293 name: 'DateLabel' |
|
294 layout: (LayoutFrame 4 0 23 0 104 0 48 0) |
|
295 translateLabel: true |
|
296 adjust: left |
|
297 ) |
|
298 (InputFieldSpec |
|
299 name: 'DateField' |
|
300 layout: (LayoutFrame 105 0 25 0 0 1 50 0) |
|
301 model: dateAspect |
|
302 isReadOnly: true |
|
303 acceptOnReturn: true |
|
304 acceptOnTab: true |
|
305 acceptOnLostFocus: true |
|
306 acceptOnPointerLeave: false |
|
307 ) |
|
308 (LabelSpec |
|
309 label: 'Author:' |
|
310 name: 'AuthorLabel' |
|
311 layout: (LayoutFrame 4 0 48 0 104 0 73 0) |
|
312 translateLabel: true |
|
313 adjust: left |
|
314 ) |
|
315 (InputFieldSpec |
|
316 name: 'AuthorField' |
|
317 layout: (LayoutFrame 105 0 50 0 0 1 75 0) |
|
318 model: authorAspect |
|
319 isReadOnly: true |
|
320 acceptOnReturn: true |
|
321 acceptOnTab: true |
|
322 acceptOnLostFocus: true |
|
323 acceptOnPointerLeave: false |
|
324 ) |
|
325 (LabelSpec |
|
326 label: 'Message:' |
|
327 name: 'MessageLabel' |
|
328 layout: (LayoutFrame 4 0 73 0 104 0 98 0) |
|
329 translateLabel: true |
|
330 adjust: left |
|
331 ) |
|
332 (TextEditorSpec |
|
333 name: 'MessageField' |
|
334 layout: (LayoutFrame 105 0 75 0 0 1 0 1) |
|
335 model: messageAspect |
|
336 hasHorizontalScrollBar: true |
|
337 hasVerticalScrollBar: true |
|
338 isReadOnly: true |
|
339 viewClassName: '' |
|
340 ) |
|
341 ) |
|
342 |
|
343 ) |
|
344 ) |
|
345 |
|
346 "Modified: / 19-04-2008 / 12:28:13 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
347 ! |
|
348 |
|
349 windowSpec |
|
350 "This resource specification was automatically generated |
|
351 by the UIPainter of ST/X." |
|
352 |
|
353 "Do not manually edit this!! If it is corrupted, |
|
354 the UIPainter may not be able to read the specification." |
|
355 |
|
356 " |
|
357 UIPainter new openOnClass:SVN::RevisionLogBrowser::Entry andSelector:#windowSpec |
|
358 SVN::RevisionLogBrowser::Entry new openInterface:#windowSpec |
|
359 SVN::RevisionLogBrowser::Entry open |
|
360 " |
|
361 |
|
362 <resource: #canvas> |
|
363 |
|
364 ^ |
|
365 #(FullSpec |
|
366 name: windowSpec |
|
367 window: |
|
368 (WindowSpec |
|
369 label: 'Revision Log Entry' |
|
370 name: 'Revision Log Entry' |
|
371 min: (Point 10 10) |
|
372 bounds: (Rectangle 0 0 300 300) |
|
373 ) |
|
374 component: |
|
375 (SpecCollection |
|
376 collection: ( |
|
377 (NoteBookViewSpec |
|
378 name: 'NoteBook' |
|
379 layout: (LayoutFrame 0 0 0 0 0 1 0 1) |
|
380 menu: tabList |
|
381 ) |
|
382 ) |
|
383 |
|
384 ) |
|
385 ) |
|
386 ! ! |
|
387 |
|
388 !RevisionLogBrowser::Entry class methodsFor:'list specs'! |
|
389 |
|
390 tabList |
|
391 "This resource specification was automatically generated |
|
392 by the TabListEditor of ST/X." |
|
393 |
|
394 "Do not manually edit this!! If it is corrupted, |
|
395 the TabListEditor may not be able to read the specification." |
|
396 |
|
397 " |
|
398 TabListEditor new openOnClass: self andSelector:#tabList |
|
399 " |
|
400 |
|
401 <resource: #tabList> |
|
402 |
|
403 ^ #( |
|
404 (TabItem |
|
405 label: 'Revision info' |
|
406 minorKey: revisionInfoSpec |
|
407 createNewBuilder: false |
|
408 ) |
|
409 (TabItem |
|
410 label: 'Changed paths' |
|
411 minorKey: changedPathsSpec |
|
412 createNewBuilder: false |
|
413 ) |
|
414 ) |
|
415 |
|
416 collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ] |
|
417 |
|
418 "Modified: / 24-06-2009 / 15:21:07 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
419 ! ! |
|
420 |
|
421 !RevisionLogBrowser::Entry class methodsFor:'plugIn spec'! |
|
422 |
|
423 aspectSelectors |
|
424 "This resource specification was automatically generated |
|
425 by the UIPainter of ST/X." |
|
426 |
|
427 "Do not manually edit this. If it is corrupted, |
|
428 the UIPainter may not be able to read the specification." |
|
429 |
|
430 "Return a description of exported aspects; |
|
431 these can be connected to aspects of an embedding application |
|
432 (if this app is embedded in a subCanvas)." |
|
433 |
|
434 ^ #( |
|
435 #model |
|
436 ). |
|
437 |
|
438 ! ! |
|
439 |
|
440 !RevisionLogBrowser::Entry class methodsFor:'tableColumns specs'! |
|
441 |
|
442 changedPathListColumns |
|
443 "This resource specification was automatically generated |
|
444 by the DataSetBuilder of ST/X." |
|
445 |
|
446 "Do not manually edit this!! If it is corrupted, |
|
447 the DataSetBuilder may not be able to read the specification." |
|
448 |
|
449 " |
|
450 DataSetBuilder new openOnClass:SVN::RevisionLogBrowser::Entry andSelector:#changedPathListColumns |
|
451 " |
|
452 |
|
453 <resource: #tableColumns> |
|
454 |
|
455 ^#( |
|
456 (DataSetColumnSpec |
|
457 label: '' |
|
458 labelButtonType: Button |
|
459 usePreferredWidth: true |
|
460 width: 20 |
|
461 minWidth: 20 |
|
462 printSelector: icon |
|
463 canSelect: false |
|
464 showRowSeparator: false |
|
465 showColSeparator: false |
|
466 ) |
|
467 (DataSetColumnSpec |
|
468 label: 'Column 2' |
|
469 labelButtonType: Button |
|
470 printSelector: path |
|
471 canSelect: false |
|
472 showRowSeparator: false |
|
473 showColSeparator: false |
|
474 ) |
|
475 ) |
|
476 |
|
477 ! ! |
|
478 |
|
479 !RevisionLogBrowser::Entry methodsFor:'aspects'! |
|
480 |
|
481 authorAspect |
|
482 |
|
483 |holder| |
|
484 |
|
485 (holder := builder bindingAt:#authorAspect) isNil ifTrue:[ |
|
486 holder := (AspectAdaptor forAspect:#author) |
|
487 subjectChannel:self modelHolder; |
|
488 yourself. |
|
489 builder aspectAt:#authorAspect put:holder. |
|
490 ]. |
|
491 ^ holder. |
|
492 |
|
493 "Created: / 19-04-2008 / 12:01:44 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
494 ! |
|
495 |
|
496 changedPathsAspect |
|
497 |
|
498 |holder| |
|
499 |
|
500 (holder := builder bindingAt:#changedPathsAspect) isNil ifTrue:[ |
|
501 holder := (AspectAdaptor forAspect:#changedPaths) |
|
502 subjectChannel:self modelHolder; |
|
503 yourself. |
|
504 builder aspectAt:#changedPathsAspect put:holder. |
|
505 ]. |
|
506 ^ holder. |
|
507 |
|
508 "Created: / 24-06-2009 / 15:11:16 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
509 ! |
|
510 |
|
511 dateAspect |
|
512 |
|
513 |holder| |
|
514 |
|
515 (holder := builder bindingAt:#dateAspect) isNil ifTrue:[ |
|
516 holder := (AspectAdaptor forAspect:#date) |
|
517 subjectChannel:self modelHolder; |
|
518 yourself. |
|
519 builder aspectAt:#dateAspect put:holder. |
|
520 ]. |
|
521 ^ holder. |
|
522 |
|
523 "Created: / 19-04-2008 / 12:01:28 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
524 ! |
|
525 |
|
526 messageAspect |
|
527 |
|
528 |holder| |
|
529 |
|
530 (holder := builder bindingAt:#messageAspect) isNil ifTrue:[ |
|
531 holder := (AspectAdaptor forAspect:#message) |
|
532 subjectChannel:self modelHolder; |
|
533 yourself. |
|
534 builder aspectAt:#messageAspect put:holder. |
|
535 ]. |
|
536 ^ holder. |
|
537 |
|
538 "Created: / 19-04-2008 / 12:02:02 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
539 ! |
|
540 |
|
541 revisionAspect |
|
542 |
|
543 |holder| |
|
544 |
|
545 (holder := builder bindingAt:#revisionAspect) isNil ifTrue:[ |
|
546 holder := (AspectAdaptor forAspect:#revision) |
|
547 subjectChannel:self modelHolder; |
|
548 yourself. |
|
549 builder aspectAt:#revisionAspect put:holder. |
|
550 ]. |
|
551 ^ holder. |
|
552 |
|
553 "Created: / 19-04-2008 / 12:00:06 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
554 ! |
|
555 |
|
556 tabList |
|
557 "Generated by the TabListEditor" |
|
558 |
|
559 |list| |
|
560 |
|
561 (list := builder bindingAt:#tabList) isNil ifTrue:[ |
|
562 builder aspectAt:#tabList put:(list := self class tabList). |
|
563 ]. |
|
564 ^ list |
|
565 |
|
566 "Created: / 19-04-2008 / 11:47:46 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
567 ! ! |
|
568 |
|
569 !RevisionLogBrowser class methodsFor:'documentation'! |
|
570 |
|
571 version |
|
572 ^ '$Header$' |
|
573 ! ! |