author | Claus Gittinger <cg@exept.de> |
Wed, 13 Sep 2017 16:21:45 +0200 | |
changeset 17689 | 3aab8c42049c |
parent 16154 | 5939931ac858 |
child 16156 | 9b9fa51009d2 |
child 17911 | f1432fe75d27 |
permissions | -rw-r--r-- |
11013 | 1 |
" |
2 |
COPYRIGHT (c) 2011 by eXept Software AG |
|
3 |
All Rights Reserved |
|
4 |
||
5 |
This software is furnished under a license and may be used |
|
6 |
only in accordance with the terms of that license and with the |
|
7 |
inclusion of the above copyright notice. This software may not |
|
8 |
be provided or otherwise made available to, or used by, any |
|
9 |
other person. No title to or ownership of the software is |
|
10 |
hereby transferred. |
|
11 |
" |
|
12 |
"{ Package: 'stx:libtool' }" |
|
13 |
||
16154 | 14 |
"{ NameSpace: Smalltalk }" |
15 |
||
11013 | 16 |
AbstractSourceCodeManagementSettingsAppl subclass:#DataBaseSourceCodeManagementSettingsAppl |
11329 | 17 |
instanceVariableNames:'pathPerModule dbNameHolder selectedPerModuleDatabase |
18 |
perModuleDatabaseModule perModuleDB dbPerModule' |
|
11029 | 19 |
classVariableNames:'' |
11013 | 20 |
poolDictionaries:'' |
21 |
category:'System-SourceCodeManagement' |
|
22 |
! |
|
23 |
||
24 |
!DataBaseSourceCodeManagementSettingsAppl class methodsFor:'documentation'! |
|
25 |
||
26 |
copyright |
|
27 |
" |
|
28 |
COPYRIGHT (c) 2011 by eXept Software AG |
|
29 |
All Rights Reserved |
|
30 |
||
31 |
This software is furnished under a license and may be used |
|
32 |
only in accordance with the terms of that license and with the |
|
33 |
inclusion of the above copyright notice. This software may not |
|
34 |
be provided or otherwise made available to, or used by, any |
|
35 |
other person. No title to or ownership of the software is |
|
36 |
hereby transferred. |
|
37 |
" |
|
38 |
! |
|
39 |
||
40 |
documentation |
|
41 |
" |
|
42 |
This settings app controls the parameters of the DataBaseSourceCodeManager. |
|
43 |
" |
|
44 |
! ! |
|
45 |
||
46 |
!DataBaseSourceCodeManagementSettingsAppl class methodsFor:'defaults'! |
|
47 |
||
48 |
defaultTableName |
|
49 |
||
50 |
^ 'stx_versions' |
|
51 |
||
52 |
"Created: / 21-12-2011 / 23:43:04 / cg" |
|
53 |
! ! |
|
54 |
||
11029 | 55 |
!DataBaseSourceCodeManagementSettingsAppl class methodsFor:'help specs'! |
56 |
||
57 |
flyByHelpSpec |
|
58 |
"This resource specification was automatically generated |
|
59 |
by the UIHelpTool of ST/X." |
|
60 |
||
61 |
"Do not manually edit this!! If it is corrupted, |
|
62 |
the UIHelpTool may not be able to read the specification." |
|
63 |
||
64 |
" |
|
65 |
UIHelpTool openOnClass:DataBaseSourceCodeManagementSettingsAppl |
|
66 |
" |
|
67 |
||
68 |
<resource: #help> |
|
69 |
||
70 |
^ super flyByHelpSpec addPairsFrom:#( |
|
71 |
||
72 |
#defaultDBName |
|
73 |
'Default database; used for all modules which are not listed below' |
|
74 |
||
75 |
#perModuleDB |
|
76 |
'Per module database configuration' |
|
77 |
||
78 |
#perModuleDBModule |
|
79 |
'The module for which a specific database is defined' |
|
80 |
||
81 |
#perModuleDBName |
|
82 |
'Database for the selected module (scheme:[user[.password]@hostname:databaseName[.tableName]' |
|
83 |
||
84 |
) |
|
85 |
||
86 |
"Created: / 25-12-2011 / 13:46:07 / cg" |
|
87 |
! ! |
|
88 |
||
11013 | 89 |
!DataBaseSourceCodeManagementSettingsAppl class methodsFor:'image specs'! |
90 |
||
91 |
defaultIcon |
|
92 |
"This resource specification was automatically generated |
|
93 |
by the ImageEditor of ST/X." |
|
94 |
||
95 |
"Do not manually edit this!! If it is corrupted, |
|
96 |
the ImageEditor may not be able to read the specification." |
|
97 |
||
98 |
" |
|
99 |
self defaultIcon inspect |
|
100 |
ImageEditor openOnClass:self andSelector:#defaultIcon |
|
101 |
Icon flushCachedIcons |
|
102 |
" |
|
103 |
||
104 |
<resource: #image> |
|
105 |
||
106 |
^Icon |
|
107 |
constantNamed:'DataBaseSourceCodeManagementSettingsAppl class defaultIcon' |
|
108 |
ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' |
|
109 |
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BFFH=<AS8@@@@@@@@@@@@@ |
|
110 |
@@@@@E8=X(!!#T!!0-X@D@@@@@@@@@@@@@@C%%CC@K"B9SUF$QR@@@@@@@@@@@@@A[K00LL@.H]P%SGUUZ@@@@@@@@@@@@R"$<F&P0B8]ONGECQ @@@@@@@@@@ |
|
111 |
@BX[G7X, T$BIR)(^E @@@@@@@@@@@A?F4T''[F]@XXNDZFYX@@@@@@@@@@@@Z9VU$)I''PFFC!!H.IV@@@@@@@@@@@@IJU%YVU$$@+["P1N$X@@@@@@@@@@IFU |
|
112 |
%P"ESQBR^3LTHG&N@@@@@@@@@@BR$9IEI61''PFFC!!F!!VZ @@@@@@@IJR%YRU%"],%4A!! 8Q(G% @@@@@@@@@$)RU$$T''%9^WXXNDQDIX@@@@@@@@@@BR&0<G |
|
113 |
%9*Z&Y]]D 9P# @@@@@@@@@@@@AG%9^X%9^WH49AU50@@@@@@@@@%0@@@HA>%9^L#BEF_(@@@@@@@@@@@@BW%9^W%9^P@@@@@@@@@@@@@@@@@@@@@I"W%9^P |
|
14395
1361c2036f88
Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents:
14317
diff
changeset
|
114 |
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[219 185 65 198 168 74 219 190 79 243 243 243 247 247 247 212 188 103 224 198 109 222 200 122 234 215 144 254 223 141 240 223 165 253 234 173 253 237 183 241 231 193 188 151 42 211 174 48 191 161 59 254 242 210 208 176 66 242 239 229 220 189 76 242 242 242 245 245 245 255 255 255 222 198 111 244 220 117 237 216 141 255 233 149 254 227 155 250 228 170 196 152 26 252 239 190 253 238 192 212 212 212 249 242 210 207 171 55 211 178 65 225 194 72 230 197 74 255 251 236 250 248 244 231 203 98 246 219 105 245 221 117 227 210 143 241 216 146 253 228 154 249 232 171 253 237 182 174 139 37 239 228 192 202 168 50 209 174 52 210 173 51 214 179 60 222 188 68 210 174 70 224 193 81 208 180 89 254 254 254 225 200 105 232 208 118 220 202 138 252 229 143 252 235 160 205 200 181 186 147 30 202 156 27 251 235 189 255 244 201 216 216 216 233 228 211 193 161 65 207 177 72 230 197 73 252 249 237 252 251 244 208 183 100 213 188 101 231 202 112 206 189 131 252 230 145 254 225 148 254 228 160 254 233 176 187 149 35 198 153 27 211 211 211 215 215 215 248 241 209 225 225 225 223 192 70 231 231 231 231 201 81 225 195 86 253 253 253 219 192 114 251 228 125 243 221 145 253 226 149 247 229 168 252 236 180 201 155 26 253 243 195 255 240 196 255 239 199 217 217 217 220 185 61 254 249 224 223 188 69 232 203 81 244 244 244 252 252 252 211 183 100 236 208 111 227 205 125 252 230 144 253 226 148 236 222 171 197 156 25 202 156 26 190 149 32 187 154 48 197 165 54 203 172 59 215 179 59 224 224 224 228 196 72 236 236 236 210 184 89 249 249 249 250 223 100 251 225 111 217 194 122 233 215 148 246 222 149 253 230 161 186 145 25 200 158 27 251 236 189 209 209 209 205 168 48 218 218 218 208 177 64 0 0 0 0 64 0 32 96 32 96 192 128 32 128 64 32 160 64 32 128 32 64 64 64 96 96 96 128 128 128 32 32 32 32 64 32]; mask:((ImageMask new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@O0@@?<@A?>@A??@A??@A??@A??@A??@A??@C??@C??@O??@G??@C??@@??@D_>@C>@@A<@@@@@@') ; yourself); yourself] |
11013 | 115 |
! ! |
116 |
||
117 |
!DataBaseSourceCodeManagementSettingsAppl class methodsFor:'interface specs'! |
|
118 |
||
119 |
windowSpec |
|
120 |
"This resource specification was automatically generated |
|
121 |
by the UIPainter of ST/X." |
|
122 |
||
123 |
"Do not manually edit this!! If it is corrupted, |
|
124 |
the UIPainter may not be able to read the specification." |
|
125 |
||
126 |
" |
|
127 |
UIPainter new openOnClass:DataBaseSourceCodeManagementSettingsAppl andSelector:#windowSpec |
|
128 |
DataBaseSourceCodeManagementSettingsAppl new openInterface:#windowSpec |
|
129 |
DataBaseSourceCodeManagementSettingsAppl open |
|
130 |
" |
|
131 |
||
132 |
<resource: #canvas> |
|
133 |
||
134 |
^ |
|
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
135 |
#(FullSpec |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
136 |
name: windowSpec |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
137 |
window: |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
138 |
(WindowSpec |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
139 |
label: 'DB SCM Settings' |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
140 |
name: 'DB SCM Settings' |
14317 | 141 |
flags: 1 |
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
142 |
min: (Point 10 10) |
14317 | 143 |
bounds: (Rectangle 0 0 724 736) |
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
144 |
) |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
145 |
component: |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
146 |
(SpecCollection |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
147 |
collection: ( |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
148 |
(VerticalPanelViewSpec |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
149 |
name: 'VerticalPanel2' |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
150 |
layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
151 |
horizontalLayout: fit |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
152 |
verticalLayout: topSpace |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
153 |
horizontalSpace: 3 |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
154 |
verticalSpace: 20 |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
155 |
component: |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
156 |
(SpecCollection |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
157 |
collection: ( |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
158 |
(LabelSpec |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
159 |
label: 'Demo Only' |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
160 |
name: 'Label10' |
16154 | 161 |
style: (FontDescription #'Segoe UI' medium roman 16 #'ms-default' nil nil) |
162 |
foregroundColor: (Color 87.0 0.0 0.0) |
|
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
163 |
translateLabel: true |
14317 | 164 |
extent: (Point 724 37) |
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
165 |
) |
14317 | 166 |
(FramedBoxSpec |
167 |
label: 'Database Source Repository Manager Settings' |
|
168 |
name: 'FileRepositorySetupBox' |
|
169 |
labelPosition: topLeft |
|
170 |
translateLabel: true |
|
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
171 |
component: |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
172 |
(SpecCollection |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
173 |
collection: ( |
14317 | 174 |
(CheckBoxSpec |
175 |
label: 'Show in Browser Menus' |
|
176 |
name: 'CheckBox1' |
|
177 |
layout: (LayoutFrame 0 0 5 0 0 1 35 0) |
|
178 |
activeHelpKey: shownInBrowserMenus |
|
179 |
model: shownInBrowserMenusHolder |
|
180 |
translateLabel: true |
|
181 |
) |
|
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
182 |
(ViewSpec |
14317 | 183 |
name: 'Box1' |
184 |
layout: (LayoutFrame 0 0 43 0 0 1 73 0) |
|
185 |
activeHelpKey: defaultDBName |
|
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
186 |
component: |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
187 |
(SpecCollection |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
188 |
collection: ( |
14317 | 189 |
(LabelSpec |
190 |
label: 'DB Name:' |
|
191 |
name: 'Label1' |
|
192 |
layout: (LayoutFrame 0 0.0 0 0 60 0.25 30 0) |
|
193 |
activeHelpKey: defaultDBName |
|
194 |
level: 0 |
|
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
195 |
translateLabel: true |
14317 | 196 |
adjust: right |
197 |
) |
|
198 |
(ComboBoxSpec |
|
199 |
name: 'RepositoryPathField2' |
|
200 |
layout: (LayoutFrame 64 0.25 0 0 0 1 30 0) |
|
201 |
activeHelpKey: defaultDBName |
|
202 |
tabable: true |
|
203 |
model: dbNameHolder |
|
204 |
immediateAccept: true |
|
205 |
acceptOnLeave: true |
|
206 |
acceptOnReturn: true |
|
207 |
acceptOnTab: true |
|
208 |
acceptOnLostFocus: true |
|
209 |
acceptChannel: acceptChannel |
|
210 |
acceptOnPointerLeave: true |
|
211 |
comboList: dbPrototypeList |
|
11013 | 212 |
) |
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
213 |
) |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
214 |
|
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
215 |
) |
14317 | 216 |
) |
217 |
(LabelSpec |
|
218 |
label: 'DB per Module:' |
|
219 |
name: 'knownModulesLabel' |
|
220 |
layout: (LayoutFrame 0 0.0 82 0 60 0.25 112 0) |
|
221 |
activeHelpKey: perModuleDB |
|
222 |
translateLabel: true |
|
223 |
adjust: right |
|
224 |
) |
|
225 |
(SequenceViewSpec |
|
226 |
name: 'List1' |
|
227 |
layout: (LayoutFrame 64 0.25 82 0 0 1 201 0) |
|
228 |
activeHelpKey: perModuleDB |
|
229 |
tabable: true |
|
230 |
model: selectedPerModuleDatabase |
|
231 |
hasHorizontalScrollBar: true |
|
232 |
hasVerticalScrollBar: true |
|
233 |
miniScrollerHorizontal: true |
|
234 |
useIndex: false |
|
235 |
sequenceList: listOfModules |
|
236 |
) |
|
237 |
(LabelSpec |
|
238 |
label: 'Module:' |
|
239 |
name: 'moduleLabel' |
|
240 |
layout: (LayoutFrame 0 0.0 212 0 60 0.25 242 0) |
|
241 |
activeHelpKey: perModuleDBModule |
|
242 |
translateLabel: true |
|
243 |
adjust: right |
|
244 |
) |
|
245 |
(ComboBoxSpec |
|
246 |
name: 'ComboBox1' |
|
247 |
layout: (LayoutFrame 64 0.25 210 0 0 1 240 0) |
|
248 |
activeHelpKey: perModuleDBModule |
|
249 |
tabable: true |
|
250 |
model: perModuleDatabaseModule |
|
251 |
acceptChannel: acceptChannel |
|
252 |
acceptOnPointerLeave: true |
|
253 |
comboList: sampleModuleList |
|
254 |
) |
|
255 |
(LabelSpec |
|
256 |
label: 'DB:' |
|
257 |
name: 'cvsRootLabel' |
|
258 |
layout: (LayoutFrame 0 0.0 243 0 60 0.25 273 0) |
|
259 |
activeHelpKey: perModuleDBName |
|
260 |
translateLabel: true |
|
261 |
adjust: right |
|
262 |
) |
|
263 |
(ComboBoxSpec |
|
264 |
name: 'perModulePathComboBox' |
|
265 |
layout: (LayoutFrame 64 0.25 243 0 0 1.0 273 0) |
|
266 |
activeHelpKey: perModuleDBName |
|
267 |
tabable: true |
|
268 |
model: perModuleDB |
|
269 |
immediateAccept: true |
|
270 |
acceptOnLeave: true |
|
271 |
acceptOnReturn: true |
|
272 |
acceptOnTab: true |
|
273 |
acceptOnLostFocus: true |
|
274 |
acceptChannel: acceptChannel |
|
275 |
acceptOnPointerLeave: true |
|
276 |
comboList: dbPrototypeList |
|
277 |
) |
|
278 |
(HorizontalPanelViewSpec |
|
279 |
name: 'HorizontalPanel2' |
|
280 |
layout: (LayoutFrame 64 0.25 278 0 -1 1 308 0) |
|
281 |
horizontalLayout: fitSpace |
|
282 |
verticalLayout: center |
|
283 |
horizontalSpace: 3 |
|
284 |
verticalSpace: 3 |
|
285 |
component: |
|
286 |
(SpecCollection |
|
287 |
collection: ( |
|
288 |
(ActionButtonSpec |
|
289 |
label: 'Add/Apply' |
|
290 |
name: 'addButton' |
|
291 |
translateLabel: true |
|
292 |
tabable: true |
|
293 |
model: addPerModuleDB |
|
16154 | 294 |
extent: (Point 143 30) |
14317 | 295 |
) |
296 |
(ActionButtonSpec |
|
297 |
label: 'Remove' |
|
298 |
name: 'removeButton' |
|
299 |
translateLabel: true |
|
300 |
tabable: true |
|
301 |
model: removePerModuleDB |
|
302 |
enableChannel: removeEnabled |
|
16154 | 303 |
extent: (Point 143 30) |
14317 | 304 |
) |
305 |
(ViewSpec |
|
306 |
name: 'Box11' |
|
16154 | 307 |
extent: (Point 144 10) |
14317 | 308 |
) |
309 |
) |
|
310 |
||
311 |
) |
|
11013 | 312 |
) |
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
313 |
) |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
314 |
|
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
315 |
) |
16154 | 316 |
extent: (Point 724 346) |
11013 | 317 |
) |
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
318 |
) |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
319 |
|
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
320 |
) |
11013 | 321 |
) |
14255
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
322 |
) |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
323 |
|
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
324 |
) |
9442e9d5491e
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14247
diff
changeset
|
325 |
) |
11013 | 326 |
! ! |
327 |
||
328 |
!DataBaseSourceCodeManagementSettingsAppl class methodsFor:'queries'! |
|
329 |
||
330 |
managerClass |
|
331 |
"backlink to my manager class (needed by the settings app)" |
|
332 |
||
333 |
^ DataBaseSourceCodeManager |
|
334 |
||
335 |
"Created: / 19-04-2011 / 12:46:52 / cg" |
|
336 |
! ! |
|
337 |
||
338 |
!DataBaseSourceCodeManagementSettingsAppl methodsFor:'actions'! |
|
339 |
||
340 |
addModule:module withData:data |
|
341 |
(self listOfModules includes:module) ifFalse:[ |
|
342 |
self listOfModules add:module; sort. |
|
343 |
]. |
|
11029 | 344 |
dbPerModule at:module put:data. |
11013 | 345 |
|
346 |
self updateModifiedChannel. |
|
347 |
||
348 |
"Created: / 08-11-2006 / 19:25:21 / cg" |
|
349 |
! |
|
350 |
||
11029 | 351 |
addPerModuleDB |
14666
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
352 |
|module db path| |
11013 | 353 |
|
354 |
acceptChannel value:true. |
|
355 |
||
11029 | 356 |
module := self perModuleDatabaseModule value. |
14666
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
357 |
db := self perModuleDB value. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
358 |
db size > 0 ifTrue:[ |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
359 |
(db startsWith:'sqlite:') ifTrue:[ |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
360 |
path := db copyFrom:'sqlite:' size + 1. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
361 |
self validateDatabaseExistsAndIsWritable:db. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
362 |
]. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
363 |
self addModule:module withData:{ DataBaseSourceCodeManager . db }. |
11013 | 364 |
]. |
365 |
||
11029 | 366 |
"Created: / 25-12-2011 / 13:18:30 / cg" |
11013 | 367 |
! |
368 |
||
369 |
basicReadSettings |
|
370 |
|infoPerModule| |
|
371 |
||
372 |
self initialize. |
|
373 |
||
11029 | 374 |
infoPerModule := DataBaseSourceCodeManager repositoryInfoPerModule. |
11013 | 375 |
infoPerModule keysAndValuesDo:[:module :info | |
11029 | 376 |
dbPerModule at:module put:(Array with:DataBaseSourceCodeManager with:info). |
11013 | 377 |
]. |
378 |
||
11119 | 379 |
self dbNameHolder value:DataBaseSourceCodeManager repositoryName. |
11013 | 380 |
|
11029 | 381 |
dbPerModule notNil ifTrue:[ |
11013 | 382 |
self listOfModules removeAll. |
11029 | 383 |
listOfModules addAll:dbPerModule keys asList. |
11013 | 384 |
]. |
385 |
||
11070
84fad278c24f
preps for \"showInBrowserMenus\"
Claus Gittinger <cg@exept.de>
parents:
11064
diff
changeset
|
386 |
self shownInBrowserMenusHolder value:DataBaseSourceCodeManager shownInBrowserMenus. |
84fad278c24f
preps for \"showInBrowserMenus\"
Claus Gittinger <cg@exept.de>
parents:
11064
diff
changeset
|
387 |
|
11119 | 388 |
"Modified (comment): / 12-01-2012 / 14:00:48 / cg" |
11013 | 389 |
! |
390 |
||
391 |
basicSaveSettings |
|
392 |
|infoPerModule modules| |
|
393 |
||
11031 | 394 |
DataBaseSourceCodeManager repositoryName:self dbNameHolder value. |
395 |
||
11029 | 396 |
modules := dbPerModule select:[:entry | entry first == DataBaseSourceCodeManager]. |
11013 | 397 |
infoPerModule := Dictionary new. |
398 |
modules keysAndValuesDo:[:module :entry | |
|
14666
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
399 |
infoPerModule at:module put:(entry second). |
11013 | 400 |
]. |
11029 | 401 |
DataBaseSourceCodeManager repositoryInfoPerModule:infoPerModule. |
11070
84fad278c24f
preps for \"showInBrowserMenus\"
Claus Gittinger <cg@exept.de>
parents:
11064
diff
changeset
|
402 |
DataBaseSourceCodeManager shownInBrowserMenus:self shownInBrowserMenusHolder value. |
11013 | 403 |
|
404 |
self acceptChannel value. |
|
405 |
||
11408 | 406 |
"/ make sure, that the DB libs are present |
407 |
Smalltalk loadPackage:'stx:libdb'. |
|
408 |
Smalltalk loadPackage:'stx:libdb/libsqlite'. |
|
409 |
Smalltalk loadPackage:'stx:libdb/libodbc'. |
|
410 |
||
411 |
"Modified (comment): / 12-03-2012 / 11:27:10 / cg" |
|
11013 | 412 |
! |
413 |
||
11029 | 414 |
removePerModuleDB |
415 |
|module| |
|
416 |
||
417 |
acceptChannel value:true. |
|
418 |
||
419 |
module := self perModuleDatabaseModule value. |
|
420 |
self listOfModules remove:module ifAbsent:nil. |
|
421 |
dbPerModule removeKey:module ifAbsent:nil. |
|
422 |
self perModuleDatabaseModule value:nil. |
|
423 |
self perModuleDB value:nil. |
|
424 |
self updateModifiedChannel. |
|
425 |
||
426 |
"Created: / 25-12-2011 / 13:19:45 / cg" |
|
427 |
! |
|
428 |
||
11013 | 429 |
removePerModulePath |
430 |
|module| |
|
431 |
||
432 |
acceptChannel value:true. |
|
433 |
||
11029 | 434 |
module := self perModuleDatabaseModule value. |
11013 | 435 |
self listOfModules remove:module ifAbsent:nil. |
11029 | 436 |
dbPerModule removeKey:module ifAbsent:nil. |
437 |
self perModuleDatabaseModule value:nil. |
|
438 |
self perModuleDB value:nil. |
|
11013 | 439 |
self updateModifiedChannel. |
440 |
||
441 |
"Created: / 21-12-2011 / 14:26:08 / cg" |
|
442 |
! ! |
|
443 |
||
444 |
!DataBaseSourceCodeManagementSettingsAppl methodsFor:'aspects'! |
|
445 |
||
11029 | 446 |
dbNameHolder |
447 |
||
448 |
dbNameHolder isNil ifTrue:[ |
|
449 |
dbNameHolder := DataBaseSourceCodeManager defaultRepositoryName asValue. |
|
450 |
dbNameHolder addDependent:self. |
|
451 |
]. |
|
452 |
^ dbNameHolder. |
|
453 |
||
454 |
"Created: / 25-12-2011 / 13:14:17 / cg" |
|
455 |
! |
|
456 |
||
457 |
dbPrototypeList |
|
458 |
^ #( |
|
459 |
'sqlite:repository.db' |
|
460 |
'odbc:localhost:stxRepository' |
|
461 |
'sqlite:pathname' |
|
462 |
'odbc:user.password@host:table' |
|
463 |
) |
|
464 |
||
465 |
"Created: / 25-12-2011 / 13:13:20 / cg" |
|
466 |
! |
|
467 |
||
11329 | 468 |
initialListOfModules |
469 |
^ dbPerModule keys asList sort. |
|
11013 | 470 |
|
11329 | 471 |
"Created: / 02-03-2012 / 14:39:53 / cg" |
11013 | 472 |
! |
473 |
||
11029 | 474 |
perModuleDB |
475 |
perModuleDB isNil ifTrue:[ |
|
476 |
perModuleDB := ValueHolder new. |
|
11013 | 477 |
]. |
11029 | 478 |
^ perModuleDB. |
11013 | 479 |
|
11029 | 480 |
"Created: / 25-12-2011 / 13:18:55 / cg" |
11013 | 481 |
! |
482 |
||
11029 | 483 |
perModuleDatabaseModule |
484 |
perModuleDatabaseModule isNil ifTrue:[ |
|
485 |
perModuleDatabaseModule := ValueHolder new. |
|
11013 | 486 |
]. |
11029 | 487 |
^ perModuleDatabaseModule. |
11013 | 488 |
|
11029 | 489 |
"Created: / 25-12-2011 / 13:16:55 / cg" |
11013 | 490 |
! |
491 |
||
11029 | 492 |
selectedPerModuleDatabase |
493 |
selectedPerModuleDatabase isNil ifTrue:[ |
|
494 |
selectedPerModuleDatabase := ValueHolder new. |
|
495 |
selectedPerModuleDatabase addDependent:self. |
|
11013 | 496 |
]. |
11029 | 497 |
^ selectedPerModuleDatabase. |
11013 | 498 |
|
11029 | 499 |
"Created: / 25-12-2011 / 13:15:10 / cg" |
11013 | 500 |
! ! |
501 |
||
502 |
!DataBaseSourceCodeManagementSettingsAppl methodsFor:'change & update'! |
|
503 |
||
11029 | 504 |
selectedPerModuleDatabaseChanged |
11013 | 505 |
|module entry| |
506 |
||
507 |
self acceptChannel value:true. |
|
508 |
||
11029 | 509 |
module := self selectedPerModuleDatabase value. |
11013 | 510 |
module isNil ifTrue:[ |
511 |
self removeEnabled value:false. |
|
11029 | 512 |
self perModuleDatabaseModule value:' '. |
513 |
self perModuleDB value:''. |
|
11013 | 514 |
^ self |
515 |
]. |
|
516 |
||
11029 | 517 |
entry := dbPerModule at:module ifAbsent:#(). |
518 |
(entry first = DataBaseSourceCodeManager) ifTrue:[ |
|
11013 | 519 |
self removeEnabled value:true. |
11029 | 520 |
self perModuleDatabaseModule value:module. |
521 |
self perModuleDB value:(entry at:2). |
|
11013 | 522 |
] ifFalse:[ |
523 |
self removeEnabled value:false. |
|
11029 | 524 |
self perModuleDatabaseModule value:module , ' ',('<<use ',entry first managerTypeName,'>>') allBold. |
525 |
self perModuleDB value:''. |
|
11013 | 526 |
]. |
527 |
||
11029 | 528 |
"Created: / 25-12-2011 / 13:15:54 / cg" |
11013 | 529 |
! |
530 |
||
531 |
update:something with:aParameter from:changedObject |
|
11029 | 532 |
changedObject == selectedPerModuleDatabase ifTrue:[ |
533 |
self selectedPerModuleDatabaseChanged. |
|
11013 | 534 |
^ self |
535 |
]. |
|
11031 | 536 |
changedObject == dbNameHolder ifTrue:[ |
537 |
self updateModifiedChannel. |
|
538 |
^ self |
|
539 |
]. |
|
11013 | 540 |
|
541 |
super update:something with:aParameter from:changedObject |
|
542 |
||
11031 | 543 |
"Modified: / 26-12-2011 / 01:11:59 / cg" |
11013 | 544 |
! |
545 |
||
14666
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
546 |
validateDatabaseExistsAndIsWritable:dbPath |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
547 |
|nm fn| |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
548 |
|
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
549 |
(dbPath startsWith:'sqlite:') ifFalse:[ |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
550 |
(DataBaseSourceCodeManager openDB:dbPath) close. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
551 |
^ true |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
552 |
]. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
553 |
|
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
554 |
fn := dbPath asFilename. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
555 |
nm := fn baseName. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
556 |
|
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
557 |
fn exists ifFalse:[ |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
558 |
(self confirm:(resources |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
559 |
stringWithCRs:'Database "%1" does not exist.\Create ?' |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
560 |
with:nm) |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
561 |
) ifFalse:[ |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
562 |
^ false. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
563 |
]. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
564 |
fn directory exists ifFalse:[ |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
565 |
fn directory |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
566 |
recursiveMakeDirectory; |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
567 |
makeReadableForAll; |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
568 |
makeWritableForAll; |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
569 |
makeExecutableForAll. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
570 |
]. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
571 |
(DataBaseSourceCodeManager openDB:dbPath) close. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
572 |
^ true. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
573 |
]. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
574 |
|
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
575 |
(fn isDirectory) ifTrue:[ |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
576 |
self warn:(resources |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
577 |
stringWithCRs:'"%1" exists but is a directory' |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
578 |
with:nm). |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
579 |
^ false. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
580 |
]. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
581 |
|
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
582 |
(fn isWritable and:[fn isReadable]) ifFalse:[ |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
583 |
(self confirm:(resources |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
584 |
stringWithCRs:'"%1" is not both readable and writable.\Change ?' |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
585 |
with:nm) |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
586 |
) ifFalse:[ |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
587 |
^ false. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
588 |
]. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
589 |
fn |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
590 |
makeReadable; |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
591 |
makeWritable. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
592 |
(fn isWritable and:[fn isReadable]) ifFalse:[ |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
593 |
self warn:(resources |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
594 |
stringWithCRs:'"%1" cannot be made both readable and writable.' |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
595 |
with:nm). |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
596 |
^ false. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
597 |
]. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
598 |
]. |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
599 |
|
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
600 |
^ true |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
601 |
|
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
602 |
"Created: / 21-12-2011 / 14:43:11 / cg" |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
603 |
! |
28321a5ff34f
class: DataBaseSourceCodeManagementSettingsAppl
Claus Gittinger <cg@exept.de>
parents:
14395
diff
changeset
|
604 |
|
11013 | 605 |
validateDirectoryExistsAndIsWritable:aDirectory |
606 |
|nm fn| |
|
607 |
||
608 |
fn := aDirectory asFilename. |
|
609 |
nm := fn baseName. |
|
610 |
||
611 |
fn exists ifFalse:[ |
|
612 |
(self confirm:(resources |
|
613 |
stringWithCRs:'Directory "%1" does not exist.\Create ?' |
|
614 |
with:nm) |
|
615 |
) ifFalse:[ |
|
616 |
^ false. |
|
617 |
]. |
|
618 |
fn |
|
619 |
recursiveMakeDirectory; |
|
620 |
makeReadableForAll; |
|
621 |
makeWritableForAll; |
|
622 |
makeExecutableForAll. |
|
623 |
^ true. |
|
624 |
]. |
|
625 |
||
626 |
(fn isDirectory) ifFalse:[ |
|
627 |
self warn:(resources |
|
628 |
stringWithCRs:'Not a directory: "%1"' |
|
629 |
with:nm). |
|
630 |
^ false. |
|
631 |
]. |
|
632 |
||
13242 | 633 |
(fn isWritableDirectory and:[fn isReadable]) ifFalse:[ |
11013 | 634 |
(self confirm:(resources |
635 |
stringWithCRs:'Directory "%1" is not both readable and writable.\Change ?' |
|
636 |
with:nm) |
|
637 |
) ifFalse:[ |
|
638 |
^ false. |
|
639 |
]. |
|
640 |
fn |
|
641 |
makeReadableForAll; |
|
642 |
makeWritableForAll; |
|
643 |
makeExecutableForAll. |
|
13242 | 644 |
(fn isWritableDirectory and:[fn isReadable]) ifFalse:[ |
11013 | 645 |
self warn:(resources |
646 |
stringWithCRs:'Directory "%1" cannot be made both readable and writable.' |
|
647 |
with:nm). |
|
648 |
^ false. |
|
649 |
]. |
|
650 |
]. |
|
651 |
||
652 |
^ true |
|
653 |
||
654 |
"Created: / 21-12-2011 / 14:43:11 / cg" |
|
655 |
! ! |
|
656 |
||
657 |
!DataBaseSourceCodeManagementSettingsAppl methodsFor:'help'! |
|
658 |
||
14247 | 659 |
editorHelpRelativeWikiURL |
660 |
"the relative URL of the dialog-description in the Wiki" |
|
661 |
||
662 |
^ 'Settings_DataBaseSourceCodeManagerSettings' |
|
663 |
! |
|
664 |
||
11013 | 665 |
helpFilename |
11120 | 666 |
^ 'Launcher/dataBaseRepositorySetup.html' |
11013 | 667 |
|
11120 | 668 |
"Modified: / 12-01-2012 / 14:03:04 / cg" |
11013 | 669 |
! ! |
670 |
||
671 |
!DataBaseSourceCodeManagementSettingsAppl methodsFor:'initialization & release'! |
|
672 |
||
673 |
initialize |
|
674 |
(AbstractSourceCodeManager notNil) ifTrue:[ AbstractSourceCodeManager autoload ]. |
|
675 |
||
11029 | 676 |
dbPerModule := Dictionary new. |
11013 | 677 |
|
11029 | 678 |
DataBaseSourceCodeManager repositoryInfoPerModule |
11013 | 679 |
keysAndValuesDo:[:module :info | |
680 |
module withoutSeparators ~= module ifTrue:[ |
|
681 |
self halt:'should not happen any longer' |
|
682 |
]. |
|
11029 | 683 |
dbPerModule at:module put:(Array with:DataBaseSourceCodeManager with:info) |
11013 | 684 |
]. |
685 |
||
686 |
super initialize. |
|
687 |
||
11029 | 688 |
"Modified: / 25-12-2011 / 13:23:44 / cg" |
11013 | 689 |
! ! |
690 |
||
691 |
!DataBaseSourceCodeManagementSettingsAppl methodsFor:'queries'! |
|
692 |
||
693 |
cvsRootFromCVSRootFileOrNil |
|
694 |
|cvsDir cvsRootFile cvsRoot| |
|
695 |
||
696 |
cvsDir := 'CVS' asFilename. |
|
697 |
cvsDir isDirectory ifTrue:[ |
|
698 |
cvsRootFile := cvsDir construct:'Root'. |
|
699 |
cvsRootFile isReadable ifTrue:[ |
|
700 |
cvsRoot := cvsRootFile contents firstIfEmpty:nil. |
|
701 |
]. |
|
702 |
]. |
|
703 |
^ cvsRoot |
|
704 |
! |
|
705 |
||
706 |
hasUnsavedChanges |
|
707 |
|modules| |
|
708 |
||
11031 | 709 |
(DataBaseSourceCodeManager repositoryName) ~= self dbNameHolder value |
710 |
ifTrue:[^ true]. |
|
11074
845f8310b0c9
preps for \"showInBrowserMenus\"
Claus Gittinger <cg@exept.de>
parents:
11070
diff
changeset
|
711 |
(DataBaseSourceCodeManager shownInBrowserMenus ~= self shownInBrowserMenusHolder value) |
845f8310b0c9
preps for \"showInBrowserMenus\"
Claus Gittinger <cg@exept.de>
parents:
11070
diff
changeset
|
712 |
ifTrue:[^ true]. |
11031 | 713 |
|
11029 | 714 |
modules := dbPerModule select:[:entry | entry first == DataBaseSourceCodeManager]. |
11013 | 715 |
|
11029 | 716 |
DataBaseSourceCodeManager repositoryInfoPerModule keysAndValuesDo:[:module :info | |
11013 | 717 |
((modules includesKey:module) and:[info = (modules at:module) second]) |
718 |
ifFalse:[^ true]. |
|
719 |
]. |
|
720 |
modules keysAndValuesDo:[:module :info| |
|
11029 | 721 |
((DataBaseSourceCodeManager repositoryInfoPerModule includesKey:module) and:[(DataBaseSourceCodeManager repositoryInfoPerModule at:module) = info second]) |
11013 | 722 |
ifFalse:[^ true]. |
723 |
]. |
|
724 |
||
725 |
^ false |
|
726 |
||
11074
845f8310b0c9
preps for \"showInBrowserMenus\"
Claus Gittinger <cg@exept.de>
parents:
11070
diff
changeset
|
727 |
"Modified: / 10-01-2012 / 00:31:19 / cg" |
11013 | 728 |
! ! |
729 |
||
730 |
!DataBaseSourceCodeManagementSettingsAppl class methodsFor:'documentation'! |
|
731 |
||
732 |
version |
|
16154 | 733 |
^ '$Header$' |
11013 | 734 |
! |
735 |
||
736 |
version_CVS |
|
16154 | 737 |
^ '$Header$' |
11013 | 738 |
! ! |
13242 | 739 |