MCToolWindowBuilder.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 596 cecd3c6d6f07
child 995 92bb466548a9
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
130
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCToolWindowBuilder
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'builder window currentFrame tool'
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
596
cecd3c6d6f07 category change
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
     7
	category:'SCM-Monticello-UI'
130
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCToolWindowBuilder class methodsFor:'as yet unclassified'!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
builder: aBuilder tool: aTool
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ self basicNew initializeWithBuilder: aBuilder tool: aTool
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
! !
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCToolWindowBuilder methodsFor:'as yet unclassified'!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
build
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	^ builder build: window
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
buttonRow
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	^ self buttonRow: tool buttonSpecs
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
buttonRow: specArray
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	| panel button |
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	panel _ builder pluggablePanelSpec new.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	panel children: OrderedCollection new.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	specArray do:
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
		[:spec |
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
		
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
		button := builder pluggableButtonSpec new.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
		button model: tool.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
		button label: spec first asString.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
		button action: spec second.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
		button help: spec third.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
		button enabled: (spec at: 4 ifAbsent: [#buttonEnabled]).
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
		button state: (spec at: 5 ifAbsent: [#buttonSelected]).
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
		panel children add: button].
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
	panel layout: #horizontal.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	panel frame: currentFrame.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	window children add: panel
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
frame: aLayoutFrame
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	currentFrame _ aLayoutFrame
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
initializeWithBuilder: aBuilder tool: aTool
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	builder _ aBuilder.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
	tool _ aTool.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
	window _ builder pluggableWindowSpec new.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
	window children: OrderedCollection new.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	window label: tool label asString.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	window model: tool.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	window extent: tool defaultExtent.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
listMorph: listSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	^ self
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
		listMorph: (listSymbol, 'List') asSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
		selection: (listSymbol, 'Selection') asSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
		menu: (listSymbol, 'ListMenu:') asSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
listMorph: listSymbol keystroke: keystrokeSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	^ (self
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
		listMorph: (listSymbol, 'List') asSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
		selection: (listSymbol, 'Selection') asSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
		menu: (listSymbol, 'ListMenu:') asSymbol)
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
		keystrokeActionSelector: keystrokeSymbol;
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
		yourself
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
listMorph: listSymbol selection: selectionSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
	self listMorph: listSymbol selection: selectionSymbol menu: nil
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
listMorph: listSymbol selection: selectionSymbol menu: menuSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
	self listMorph: listSymbol selection: selectionSymbol menu: menuSymbol keystroke: nil
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
listMorph: listSymbol selection: selectionSymbol menu: menuSymbol keystroke: keystrokeSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	| list |
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
	list := builder pluggableListSpec new.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
	list 
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
		model: tool;
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
		list: listSymbol; 
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
		getIndex: selectionSymbol; 
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
		setIndex: (selectionSymbol, ':') asSymbol;
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
		frame: currentFrame.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	menuSymbol ifNotNil: [list menu: menuSymbol].
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
	keystrokeSymbol ifNotNil: [list keyPress: keystrokeSymbol].
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
	window children add: list
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
multiListMorph: listSymbol selection: selectionSymbol listSelection: listSelectionSymbol menu: menuSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
	| list |
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
	list := builder pluggableMultiSelectionListSpec new.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
	list 
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
		model: tool;
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
		list: listSymbol; 
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
		getIndex: selectionSymbol; 
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
		setIndex: (selectionSymbol, ':') asSymbol;
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
		getSelectionList: listSelectionSymbol;
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
		setSelectionList: (listSelectionSymbol, 'put:') asSymbol;
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
		frame: currentFrame.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
	menuSymbol ifNotNil: [list menu: menuSymbol].
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
	window children add: list
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
textMorph: aSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
	| text |
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
	text := builder pluggableTextSpec new.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
	text 
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
		model: tool;
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
		getText: aSymbol; 
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
		setText: (aSymbol, ':') asSymbol;
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
		frame: currentFrame.
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
	window children add: text
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
treeMorph: listSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
	^ self
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
		treeMorph: (listSymbol, 'Tree') asSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
		selection: (listSymbol, 'SelectionWrapper') asSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
		menu: (listSymbol, 'TreeMenu:') asSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
treeMorph: listSymbol selection: selectionSymbol menu: menuSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
	self notYetImplemented
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
treeOrListMorph: listSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
	^ self listMorph: listSymbol
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
! !
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
!MCToolWindowBuilder class methodsFor:'documentation'!
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
version
596
cecd3c6d6f07 category change
Claus Gittinger <cg@exept.de>
parents: 130
diff changeset
   143
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCToolWindowBuilder.st,v 1.2 2012-09-11 21:14:34 cg Exp $'
130
37a980ba1cb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
! !