370 the ImageEditor may not be able to read the specification." |
376 the ImageEditor may not be able to read the specification." |
371 |
377 |
372 " |
378 " |
373 self newColumnIcon inspect |
379 self newColumnIcon inspect |
374 ImageEditor openOnClass:self andSelector:#newColumnIcon |
380 ImageEditor openOnClass:self andSelector:#newColumnIcon |
|
381 Icon flushCachedIcons |
375 " |
382 " |
376 |
383 |
377 <resource: #image> |
384 <resource: #image> |
378 |
385 |
379 ^Icon |
386 ^Icon |
380 constantNamed:#'DataSetBuilder newColumnIcon' |
387 constantNamed:#'DataSetBuilder class newColumnIcon' |
381 ifAbsentPut:[(Depth2Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'UT@@@@UPUTUUUXUPUTZ**,UPUTZB",UPUTX*H,UYUTX*H,UPUTZB",UPQTZ**,UPUTX*H,UPUTX*H,UPUTX*H,UPUTXB@,UPUTZ**,UPUTZ**,UPUTX"H,UYUTXB@,UPUTX"@,UPUTX"H,UPUTZ**,UPUTZ**,UPUT/??<UPUT@@@@UP') ; colorMapFromArray:#[0 0 0 255 255 255 170 170 170 127 127 127]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A??@A??@A??@A??@A??@A??@A??@A??@A??CA??@A??@A??@A??@A??CA??AA??@A??CA??@A??CA??@A??@A??A') ; yourself); yourself] |
388 ifAbsentPut:[(Depth2Image new) width: 19; height: 22; photometric:(#palette); bitsPerSample:(#[2]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' |
|
389 U@@@@EQTUUUXUEQ***1TUF (+EQTX*H,UEQ"("1TUF (+EQTZ**,UEQ"("1TUFJ"KEQTX*H,UEQ HB1TUF**+EQTZ**,UEQ"H"1TUF@ KEQTX"@,UEQ"H"1T |
|
390 UF**+EQTZ**,UER???1TU@@@@EPb') ; colorMapFromArray:#[0 0 0 255 255 255 170 170 170 127 127 127]; mask:((Depth1Image new) width: 19; height: 22; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@') ; yourself); yourself] |
|
391 ! |
|
392 |
|
393 newColumnNonSelectableIcon |
|
394 "This resource specification was automatically generated |
|
395 by the ImageEditor of ST/X." |
|
396 |
|
397 "Do not manually edit this!! If it is corrupted, |
|
398 the ImageEditor may not be able to read the specification." |
|
399 |
|
400 " |
|
401 self newColumnNonSelectableIcon inspect |
|
402 ImageEditor openOnClass:self andSelector:#newColumnNonSelectableIcon |
|
403 Icon flushCachedIcons |
|
404 " |
|
405 |
|
406 <resource: #image> |
|
407 |
|
408 ^Icon |
|
409 constantNamed:#'DataSetBuilder class newColumnNonSelectableIcon' |
|
410 ifAbsentPut:[(Depth2Image new) width: 19; height: 22; photometric:(#palette); bitsPerSample:(#[2]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' |
|
411 U@@@@EQTUUUXUEQ***1TUF**+EQTX*(,UEQ"*"1TUFB(KEQTZJ",UEQ(HJ1TUF("+EQTZ J,UEQ*@*1TUF("+EQTZBB,UEQ(*J1TUFB(KEQTX*(,UEQ"*"1T |
|
412 UF**+EQTZ**,UER???1TU@@@@EPb') ; colorMapFromArray:#[0 0 0 255 255 255 170 170 170 127 127 127]; mask:((Depth1Image new) width: 19; height: 22; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@G?<@') ; yourself); yourself] |
382 ! ! |
413 ! ! |
383 |
414 |
384 !DataSetBuilder class methodsFor:'interface specs'! |
415 !DataSetBuilder class methodsFor:'interface specs'! |
385 |
416 |
386 basicsEditSpec |
417 basicsEditSpec |
2108 (Menu new fromLiteralArrayEncoding:(DataSetBuilder menuEdit)) startUp |
2145 (Menu new fromLiteralArrayEncoding:(DataSetBuilder menuEdit)) startUp |
2109 " |
2146 " |
2110 |
2147 |
2111 <resource: #menu> |
2148 <resource: #menu> |
2112 |
2149 |
2113 ^ |
2150 ^ |
2114 |
2151 #(Menu |
2115 #(#Menu |
2152 ( |
2116 |
2153 (MenuItem |
2117 #( |
2154 activeHelpKey: editCut |
2118 #(#MenuItem |
2155 enabled: isColumnSelected |
2119 #label: 'Cut' |
2156 label: 'Cut' |
2120 #translateLabel: true |
2157 itemValue: doCut |
2121 #value: #doCut |
2158 translateLabel: true |
2122 #activeHelpKey: #editCut |
2159 shortcutKey: Cut |
2123 #enabled: #isColumnSelected |
2160 ) |
|
2161 (MenuItem |
|
2162 activeHelpKey: editCopy |
|
2163 enabled: isColumnSelected |
|
2164 label: 'Copy' |
|
2165 itemValue: doCopy |
|
2166 translateLabel: true |
|
2167 shortcutKey: Copy |
|
2168 ) |
|
2169 (MenuItem |
|
2170 activeHelpKey: editPaste |
|
2171 enabled: valueOfHavingClipboard |
|
2172 label: 'Paste' |
|
2173 itemValue: doPaste |
|
2174 translateLabel: true |
|
2175 shortcutKey: Paste |
|
2176 ) |
|
2177 (MenuItem |
|
2178 label: '-' |
|
2179 ) |
|
2180 (MenuItem |
|
2181 activeHelpKey: editMoveUp |
|
2182 enabled: isColumnSelected |
|
2183 label: 'Move Up' |
|
2184 itemValue: doMoveColumn: |
|
2185 translateLabel: true |
|
2186 shortcutKey: CtrlCursorUp |
|
2187 labelImage: (ResourceRetriever Icon upIcon 'Move Up') |
|
2188 argument: up |
|
2189 ) |
|
2190 (MenuItem |
|
2191 activeHelpKey: editMoveDown |
|
2192 enabled: isColumnSelected |
|
2193 label: 'Move Down' |
|
2194 itemValue: doMoveColumn: |
|
2195 translateLabel: true |
|
2196 shortcutKey: CtrlCursorDown |
|
2197 labelImage: (ResourceRetriever Icon downIcon 'Move Down') |
|
2198 argument: down |
|
2199 ) |
|
2200 (MenuItem |
|
2201 label: '-' |
|
2202 ) |
|
2203 (MenuItem |
|
2204 label: 'Separators' |
|
2205 translateLabel: true |
|
2206 submenu: |
|
2207 (Menu |
|
2208 ( |
|
2209 (MenuItem |
|
2210 label: 'Label Columns' |
|
2211 translateLabel: true |
|
2212 submenu: |
|
2213 (Menu |
|
2214 ( |
|
2215 (MenuItem |
|
2216 enabled: hasSelection |
|
2217 label: 'Add Separators' |
|
2218 itemValue: addLabelColumnSeparators |
|
2219 translateLabel: true |
|
2220 ) |
|
2221 (MenuItem |
|
2222 enabled: hasSelection |
|
2223 label: 'Remove Separators' |
|
2224 itemValue: removeLabelColumnSeparators |
|
2225 translateLabel: true |
|
2226 ) |
|
2227 ) |
|
2228 nil |
|
2229 nil |
|
2230 ) |
|
2231 ) |
|
2232 (MenuItem |
|
2233 label: 'Label Row && Columns' |
|
2234 translateLabel: true |
|
2235 submenu: |
|
2236 (Menu |
|
2237 ( |
|
2238 (MenuItem |
|
2239 enabled: hasSelection |
|
2240 label: 'Add Separators' |
|
2241 itemValue: addLabelSeparators |
|
2242 translateLabel: true |
|
2243 ) |
|
2244 (MenuItem |
|
2245 enabled: hasSelection |
|
2246 label: 'Remove Separators' |
|
2247 itemValue: removeLabelSeparators |
|
2248 translateLabel: true |
|
2249 ) |
|
2250 ) |
|
2251 nil |
|
2252 nil |
|
2253 ) |
|
2254 ) |
|
2255 (MenuItem |
|
2256 label: '-' |
|
2257 ) |
|
2258 (MenuItem |
|
2259 label: 'Cell Rows' |
|
2260 translateLabel: true |
|
2261 submenu: |
|
2262 (Menu |
|
2263 ( |
|
2264 (MenuItem |
|
2265 enabled: hasSelection |
|
2266 label: 'Add Separators' |
|
2267 itemValue: addRowSeparators |
|
2268 translateLabel: true |
|
2269 ) |
|
2270 (MenuItem |
|
2271 enabled: hasSelection |
|
2272 label: 'Remove Separators' |
|
2273 itemValue: removeRowSeparators |
|
2274 translateLabel: true |
|
2275 ) |
|
2276 ) |
|
2277 nil |
|
2278 nil |
|
2279 ) |
|
2280 ) |
|
2281 (MenuItem |
|
2282 label: 'Cell Columns' |
|
2283 translateLabel: true |
|
2284 submenu: |
|
2285 (Menu |
|
2286 ( |
|
2287 (MenuItem |
|
2288 enabled: hasSelection |
|
2289 label: 'Add Separators' |
|
2290 itemValue: addLabelColumnSeparators |
|
2291 translateLabel: true |
|
2292 ) |
|
2293 (MenuItem |
|
2294 enabled: hasSelection |
|
2295 label: 'Remove' |
|
2296 itemValue: removeLabelColumnSeparators |
|
2297 translateLabel: true |
|
2298 ) |
|
2299 ) |
|
2300 nil |
|
2301 nil |
|
2302 ) |
|
2303 ) |
|
2304 (MenuItem |
|
2305 label: 'Cell Rows && Columns' |
|
2306 translateLabel: true |
|
2307 submenu: |
|
2308 (Menu |
|
2309 ( |
|
2310 (MenuItem |
|
2311 enabled: hasSelection |
|
2312 label: 'Add Separators' |
|
2313 itemValue: addCellSeparators |
|
2314 translateLabel: true |
|
2315 ) |
|
2316 (MenuItem |
|
2317 enabled: hasSelection |
|
2318 label: 'Remove Separators' |
|
2319 itemValue: removeCellSeparators |
|
2320 translateLabel: true |
|
2321 ) |
|
2322 ) |
|
2323 nil |
|
2324 nil |
|
2325 ) |
|
2326 ) |
|
2327 ) |
|
2328 nil |
|
2329 nil |
2124 ) |
2330 ) |
2125 #(#MenuItem |
2331 ) |
2126 #label: 'Copy' |
2332 (MenuItem |
2127 #translateLabel: true |
2333 label: 'Alignment' |
2128 #value: #doCopy |
2334 translateLabel: true |
2129 #activeHelpKey: #editCopy |
2335 submenu: |
2130 #enabled: #isColumnSelected |
2336 (Menu |
|
2337 ( |
|
2338 (MenuItem |
|
2339 enabled: hasSelection |
|
2340 label: 'Make Labels Left Aligned' |
|
2341 itemValue: alignLabelsLeft |
|
2342 translateLabel: true |
|
2343 ) |
|
2344 (MenuItem |
|
2345 enabled: hasSelection |
|
2346 label: 'Make Labels Centered' |
|
2347 itemValue: alignLabelsCentered |
|
2348 translateLabel: true |
|
2349 ) |
|
2350 (MenuItem |
|
2351 enabled: hasSelection |
|
2352 label: 'Make Labels Right Aligned' |
|
2353 itemValue: alignLabelsRight |
|
2354 translateLabel: true |
|
2355 ) |
|
2356 (MenuItem |
|
2357 label: '-' |
|
2358 ) |
|
2359 (MenuItem |
|
2360 enabled: hasSelection |
|
2361 label: 'Make Cell Left Aligned' |
|
2362 itemValue: alignColumnsLeft |
|
2363 translateLabel: true |
|
2364 ) |
|
2365 (MenuItem |
|
2366 enabled: hasSelection |
|
2367 label: 'Make Cell Centered' |
|
2368 itemValue: alignColumnsCentered |
|
2369 translateLabel: true |
|
2370 ) |
|
2371 (MenuItem |
|
2372 enabled: hasSelection |
|
2373 label: 'Make Cell Right Aligned' |
|
2374 itemValue: alignColumnsRight |
|
2375 translateLabel: true |
|
2376 ) |
|
2377 ) |
|
2378 nil |
|
2379 nil |
2131 ) |
2380 ) |
2132 #(#MenuItem |
2381 ) |
2133 #label: 'Paste' |
2382 (MenuItem |
2134 #translateLabel: true |
2383 label: '-' |
2135 #value: #doPaste |
2384 ) |
2136 #activeHelpKey: #editPaste |
2385 (MenuItem |
2137 #enabled: #valueOfHavingClipboard |
2386 enabled: hasSelection |
2138 ) |
2387 label: 'Make Selectable' |
2139 #(#MenuItem |
2388 itemValue: makeColumnsSelectable |
2140 #label: 'Delete' |
2389 translateLabel: true |
2141 #translateLabel: true |
2390 ) |
2142 #value: #doDelete |
2391 (MenuItem |
2143 #activeHelpKey: #editDelete |
2392 enabled: hasSelection |
2144 #enabled: #valueOfHavingClipboard |
2393 label: 'Make Unselectable' |
2145 ) |
2394 itemValue: makeColumnsUnselectable |
2146 #(#MenuItem |
2395 translateLabel: true |
2147 #label: '-' |
2396 ) |
2148 ) |
2397 ) |
2149 #(#MenuItem |
2398 nil |
2150 #label: 'Move Up' |
2399 nil |
2151 #translateLabel: true |
|
2152 #value: #doMoveColumn: |
|
2153 #activeHelpKey: #editMoveUp |
|
2154 #enabled: #isColumnSelected |
|
2155 #argument: #up |
|
2156 #labelImage: #(#ResourceRetriever #Icon #upIcon 'Move Up') |
|
2157 ) |
|
2158 #(#MenuItem |
|
2159 #label: 'Move Down' |
|
2160 #translateLabel: true |
|
2161 #value: #doMoveColumn: |
|
2162 #activeHelpKey: #editMoveDown |
|
2163 #enabled: #isColumnSelected |
|
2164 #argument: #down |
|
2165 #labelImage: #(#ResourceRetriever #Icon #downIcon 'Move Down') |
|
2166 ) |
|
2167 ) nil |
|
2168 nil |
|
2169 ) |
2400 ) |
|
2401 ! |
|
2402 |
|
2403 menuEditWithoutAccelerators |
|
2404 ^ self menuEdit decodeAsLiteralArray |
|
2405 allItemsDo:[:i | i shortcutKey:nil] |
2170 ! |
2406 ! |
2171 |
2407 |
2172 menuToolbar |
2408 menuToolbar |
2173 "This resource specification was automatically generated |
2409 "This resource specification was automatically generated |
2174 by the MenuEditor of ST/X." |
2410 by the MenuEditor of ST/X." |
2262 translateLabel: true |
2501 translateLabel: true |
2263 isButton: true |
2502 isButton: true |
2264 labelImage: (ResourceRetriever nil newColumnIcon) |
2503 labelImage: (ResourceRetriever nil newColumnIcon) |
2265 ) |
2504 ) |
2266 (MenuItem |
2505 (MenuItem |
2267 label: '-' |
2506 activeHelpKey: addNonSelectableColumn |
|
2507 enabled: columnIsNotEditing |
|
2508 label: 'Add Column (Non Selectable)' |
|
2509 itemValue: doCreateNonSelectableColumn |
|
2510 translateLabel: true |
|
2511 isButton: true |
|
2512 labelImage: (ResourceRetriever DataSetBuilder newColumnNonSelectableIcon) |
|
2513 ) |
|
2514 (MenuItem |
|
2515 label: '' |
2268 ) |
2516 ) |
2269 (MenuItem |
2517 (MenuItem |
2270 activeHelpKey: editMoveUp |
2518 activeHelpKey: editMoveUp |
2271 enabled: isColumnSelected |
2519 enabled: isColumnSelected |
2272 label: 'Move Up' |
2520 label: 'Move Up' |
2273 itemValue: doMoveColumn: |
2521 itemValue: doMoveColumn: |
2274 translateLabel: true |
2522 translateLabel: true |
2275 isButton: true |
2523 isButton: true |
|
2524 startGroup: right |
2276 labelImage: (ResourceRetriever Icon upIcon) |
2525 labelImage: (ResourceRetriever Icon upIcon) |
2277 argument: up |
2526 argument: up |
2278 ) |
2527 ) |
2279 (MenuItem |
2528 (MenuItem |
2280 activeHelpKey: editMoveDown |
2529 activeHelpKey: editMoveDown |
2281 enabled: isColumnSelected |
2530 enabled: isColumnSelected |
2282 label: 'Move Down' |
2531 label: 'Move Down' |
2283 itemValue: doMoveColumn: |
2532 itemValue: doMoveColumn: |
2284 translateLabel: true |
2533 translateLabel: true |
2285 isButton: true |
2534 isButton: true |
|
2535 startGroup: right |
2286 labelImage: (ResourceRetriever Icon downIcon) |
2536 labelImage: (ResourceRetriever Icon downIcon) |
2287 argument: down |
2537 argument: down |
2288 ) |
2538 ) |
2289 ) |
2539 ) |
2290 nil |
2540 nil |
2862 "/ aDataSetColumnSpec writeSelector: #'valueAtColumnIndex:put:'. |
3167 "/ aDataSetColumnSpec writeSelector: #'valueAtColumnIndex:put:'. |
2863 "/ aDataSetColumnSpec backgroundSelector: #'bgAtRowIndex:columnIndex:'. |
3168 "/ aDataSetColumnSpec backgroundSelector: #'bgAtRowIndex:columnIndex:'. |
2864 "/ aDataSetColumnSpec foregroundSelector: #'fgAtRowIndex:columnIndex:'. |
3169 "/ aDataSetColumnSpec foregroundSelector: #'fgAtRowIndex:columnIndex:'. |
2865 "/ aDataSetColumnSpec selectSelector: #'selectAtColumnIndex:'. |
3170 "/ aDataSetColumnSpec selectSelector: #'selectAtColumnIndex:'. |
2866 "/ aDataSetColumnSpec editorType: #InputField. |
3171 "/ aDataSetColumnSpec editorType: #InputField. |
|
3172 ! ! |
|
3173 |
|
3174 !DataSetBuilder methodsFor:'operations'! |
|
3175 |
|
3176 addCellSeparators |
|
3177 self addRowSeparators. |
|
3178 self addColumnSeparators. |
|
3179 ! |
|
3180 |
|
3181 addColumnSeparators |
|
3182 self selectedColumnsDo:[:eachColDescr | |
|
3183 eachColDescr showColSeparator:true |
|
3184 ]. |
|
3185 self updateAfterOperation. |
|
3186 ! |
|
3187 |
|
3188 addLabelColumnSeparators |
|
3189 self selectedColumnsDo:[:eachColDescr | |
|
3190 eachColDescr labelButtonType:#Button |
|
3191 ]. |
|
3192 self updateAfterOperation. |
|
3193 ! |
|
3194 |
|
3195 addLabelSeparators |
|
3196 self selectedColumnsDo:[:eachColDescr | |
|
3197 eachColDescr labelButtonType:#Button |
|
3198 ]. |
|
3199 self updateAfterOperation. |
|
3200 ! |
|
3201 |
|
3202 addRowSeparators |
|
3203 self selectedColumnsDo:[:eachColDescr | |
|
3204 eachColDescr showRowSeparator:true |
|
3205 ]. |
|
3206 self updateAfterOperation. |
|
3207 ! |
|
3208 |
|
3209 alignColumns:how |
|
3210 self selectedColumnsDo:[:eachColDescr | |
|
3211 eachColDescr columnAlignment:how |
|
3212 ]. |
|
3213 self updateAfterOperation. |
|
3214 ! |
|
3215 |
|
3216 alignColumnsCentered |
|
3217 self alignColumns:#centered |
|
3218 ! |
|
3219 |
|
3220 alignColumnsLeft |
|
3221 self alignColumns:#left |
|
3222 ! |
|
3223 |
|
3224 alignColumnsRight |
|
3225 self alignColumns:#right |
|
3226 ! |
|
3227 |
|
3228 alignLabels:how |
|
3229 self selectedColumnsDo:[:eachColDescr | |
|
3230 eachColDescr labelAlignment:how |
|
3231 ]. |
|
3232 self updateAfterOperation. |
|
3233 ! |
|
3234 |
|
3235 alignLabelsCentered |
|
3236 self alignLabels:#centered |
|
3237 ! |
|
3238 |
|
3239 alignLabelsLeft |
|
3240 self alignLabels:#left |
|
3241 ! |
|
3242 |
|
3243 alignLabelsRight |
|
3244 self alignLabels:#right |
|
3245 ! |
|
3246 |
|
3247 makeColumnsSelectable |
|
3248 self makeColumnsSelectable:true |
|
3249 ! |
|
3250 |
|
3251 makeColumnsSelectable:aBoolean |
|
3252 self selectedColumnsDo:[:eachColDescr | |
|
3253 eachColDescr canSelect:aBoolean |
|
3254 ]. |
|
3255 self updateAfterOperation. |
|
3256 ! |
|
3257 |
|
3258 makeColumnsUnselectable |
|
3259 self makeColumnsSelectable:false |
|
3260 ! |
|
3261 |
|
3262 removeCellSeparators |
|
3263 self removeRowSeparators. |
|
3264 self removeColumnSeparators. |
|
3265 ! |
|
3266 |
|
3267 removeColumnSeparators |
|
3268 self selectedColumnsDo:[:eachColDescr | |
|
3269 eachColDescr showColSeparator:false |
|
3270 ]. |
|
3271 self updateAfterOperation. |
|
3272 ! |
|
3273 |
|
3274 removeLabelColumnSeparators |
|
3275 self selectedColumnsDo:[:eachColDescr | |
|
3276 eachColDescr labelButtonType:#Group |
|
3277 ]. |
|
3278 self updateAfterOperation. |
|
3279 ! |
|
3280 |
|
3281 removeLabelSeparators |
|
3282 self selectedColumnsDo:[:eachColDescr | |
|
3283 eachColDescr labelButtonType:#None |
|
3284 ]. |
|
3285 self updateAfterOperation. |
|
3286 ! |
|
3287 |
|
3288 removeRowSeparators |
|
3289 self selectedColumnsDo:[:eachColDescr | |
|
3290 eachColDescr showRowSeparator:false |
|
3291 ]. |
|
3292 self updateAfterOperation. |
|
3293 ! |
|
3294 |
|
3295 selectedColumnsDo:aBlock |
|
3296 selectedColumnIndex isCollection ifTrue:[ |
|
3297 selectedColumnIndex do:[:idx | aBlock value:(columns at:idx)]. |
|
3298 ] ifFalse:[ |
|
3299 selectedColumnIndex ~~ 0 ifTrue:[ |
|
3300 selectedColumnIndex notNil ifTrue:[ |
|
3301 aBlock value:(columns at:selectedColumnIndex) |
|
3302 ] |
|
3303 ]. |
|
3304 ]. |
|
3305 ! |
|
3306 |
|
3307 updateAfterOperation |
|
3308 self updateColumnView. |
|
3309 self updateInputFields. |
|
3310 self setModified. |
2867 ! ! |
3311 ! ! |
2868 |
3312 |
2869 !DataSetBuilder methodsFor:'private'! |
3313 !DataSetBuilder methodsFor:'private'! |
2870 |
3314 |
2871 labelFromColumn:aColumn |
3315 labelFromColumn:aColumn |
2975 |
3425 |
2976 ^selectedColumnIndex |
3426 ^selectedColumnIndex |
2977 ! |
3427 ! |
2978 |
3428 |
2979 selectedColumnIndex:something |
3429 selectedColumnIndex:something |
2980 "changes selected column and update specifications" |
3430 "changes selected column and updates specifications" |
2981 |
3431 |
2982 something == selectedColumnIndex ifFalse:[ |
3432 something == selectedColumnIndex ifFalse:[ |
2983 selectedColumnIndex := something ? 0. |
3433 selectedColumnIndex := something ? 0. |
2984 self isColumnSelected value: true |
3434 self isColumnSelected value: true |
2985 ]. |
3435 ]. |
|
3436 ! |
|
3437 |
|
3438 selectedColumnIndices |
|
3439 "returns selected column indices or #()" |
|
3440 |
|
3441 selectedColumnIndex == 0 ifTrue:[ ^ #() ]. |
|
3442 selectedColumnIndex isNumber ifTrue:[ ^ Array with:selectedColumnIndex ]. |
|
3443 ^selectedColumnIndex |
|
3444 ! |
|
3445 |
|
3446 selectedColumns |
|
3447 selectedColumnIndex isCollection ifTrue:[ |
|
3448 ^ selectedColumnIndex collect:[:idx | columns at:idx] |
|
3449 ]. |
|
3450 |
|
3451 ^ selectedColumnIndex == 0 |
|
3452 ifFalse:[ Array with:(columns at:selectedColumnIndex) ] |
|
3453 ifTrue: [ #() ] |
|
3454 ! |
|
3455 |
|
3456 singleSelectedColumnIndex |
|
3457 selectedColumnIndex isCollection ifTrue:[ |
|
3458 ^ selectedColumnIndex size == 1 |
|
3459 ifTrue:[ selectedColumnIndex first ] |
|
3460 ifFalse:[ 0 ] |
|
3461 ]. |
|
3462 |
|
3463 ^ selectedColumnIndex |
2986 ! |
3464 ! |
2987 |
3465 |
2988 tabSelection:something |
3466 tabSelection:something |
2989 "changes selected tab and set corresponding specification" |
3467 "changes selected tab and set corresponding specification" |
2990 |
3468 |
3118 ! |
3602 ! |
3119 |
3603 |
3120 cutOrDelete:isCut |
3604 cutOrDelete:isCut |
3121 "remove selected column and optionally put it to the clipboard" |
3605 "remove selected column and optionally put it to the clipboard" |
3122 |
3606 |
3123 |idx model| |
3607 |indices selectionModel| |
3124 |
3608 |
3125 ((idx := selectedColumnIndex) ~~ 0 and:[self askForItemModification]) ifFalse:[ |
3609 ((indices := self selectedColumnIndices) notEmpty and:[self askForItemModification]) ifFalse:[ |
3126 ^ self |
3610 ^ self |
3127 ]. |
3611 ]. |
3128 model := self selectedColumnModel. |
|
3129 model value:0. |
|
3130 |
|
3131 isCut ifTrue:[ |
3612 isCut ifTrue:[ |
3132 self clipboard: (columns at: idx) |
3613 self clipboard: (self selectedColumns) |
3133 ]. |
3614 ]. |
3134 columns removeIndex:idx. |
3615 |
3135 |
3616 selectionModel := self selectedColumnModel. |
3136 self seqList removeIndex:idx. |
3617 selectionModel value:0. |
3137 model value:(idx min:(columns size)). |
3618 |
3138 self updateColumnView. |
3619 indices sort reverseDo:[:idx | |
3139 self updateInputFields. |
3620 columns removeIndex:idx. |
|
3621 self seqList removeIndex:idx. |
|
3622 ]. |
|
3623 |
|
3624 selectionModel value:((indices max) min:(columns size)). |
|
3625 self updateColumnView. |
|
3626 self updateInputFields. |
3140 |
3627 |
3141 columns isEmpty ifTrue:[ |
3628 columns isEmpty ifTrue:[ |
3142 self isColumnSelected value: false |
3629 self isColumnSelected value: false |
3143 ]. |
3630 ]. |
3144 self cancel. |
3631 self cancel. |
|
3632 self setModified. |
|
3633 ! |
|
3634 |
|
3635 doAddColumn:descr |
|
3636 "adds a new column after the selected column or at the left (if nothing is selected)" |
|
3637 |
|
3638 columns add:descr afterIndex:self singleSelectedColumnIndex. |
|
3639 self setDefaultValuesInNewColumn:descr. |
|
3640 self seqList add:(descr label) afterIndex:self singleSelectedColumnIndex. |
|
3641 self enablingCommitButtonsHolder value ifFalse:[ |
|
3642 self selectedColumnModel value:self singleSelectedColumnIndex + 1 |
|
3643 ]. |
|
3644 self cancel. |
|
3645 self updateColumnView. |
3145 self setModified. |
3646 self setModified. |
3146 ! |
3647 ! |
3147 |
3648 |
3148 doBrowseRowClass |
3649 doBrowseRowClass |
3149 "browse class of columns spec" |
3650 "browse class of columns spec" |
3156 |
3657 |
3157 "Modified: / 20.5.1998 / 03:48:04 / cg" |
3658 "Modified: / 20.5.1998 / 03:48:04 / cg" |
3158 ! |
3659 ! |
3159 |
3660 |
3160 doCopy |
3661 doCopy |
3161 "copy selected column to the clipboard" |
3662 "copy selected columns to the clipboard" |
3162 |
3663 |
3163 |idx| |
3664 |cols| |
3164 |
3665 |
3165 (idx := selectedColumnIndex) ~~ 0 |
3666 cols := self selectedColumns. |
3166 ifTrue: |
3667 cols notEmptyOrNil ifTrue:[ |
3167 [ |
3668 self clipboard:(cols deepCopy) |
3168 self clipboard: (columns at: idx) deepCopy |
|
3169 ] |
3669 ] |
3170 ! |
3670 ! |
3171 |
3671 |
3172 doCreateColumn |
3672 doCreateColumn |
3173 "create a new column after selected column or at left (nothing selected)" |
3673 "create a new column after selected column or at left (nothing selected)" |
3174 |
3674 |
3175 |label list dscs | |
3675 |label list dscs descr| |
3176 |
3676 |
3177 list := self seqList. |
3677 "/ list := self seqList. |
3178 label := 'Column ', (list size + 1) printString. |
3678 "/ label := 'Column ', (list size + 1) printString. |
3179 columns add:(dscs := DataSetColumnSpec label:label selector:nil) afterIndex:selectedColumnIndex. |
3679 "/ columns add:(dscs := DataSetColumnSpec label:label selector:nil) afterIndex:selectedColumnIndex. |
3180 self setDefaultValuesInNewColumn:dscs. |
3680 "/ self setDefaultValuesInNewColumn:dscs. |
3181 self seqList add:label afterIndex:selectedColumnIndex. |
3681 "/ self seqList add:label afterIndex:selectedColumnIndex. |
3182 self enablingCommitButtonsHolder value ifFalse:[ |
3682 "/ self enablingCommitButtonsHolder value ifFalse:[ |
3183 self selectedColumnModel value:selectedColumnIndex + 1 |
3683 "/ self selectedColumnModel value:selectedColumnIndex + 1 |
3184 ]. |
3684 "/ ]. |
3185 self cancel. |
3685 "/ self cancel. |
3186 self updateColumnView. |
3686 "/ self updateColumnView. |
3187 self setModified. |
3687 "/ self setModified. |
|
3688 "/ |
|
3689 |
|
3690 label := 'Column ', (self seqList size + 1) printString. |
|
3691 descr := DataSetColumnSpec label:label selector:nil. |
|
3692 self doAddColumn:descr |
|
3693 ! |
|
3694 |
|
3695 doCreateNonSelectableColumn |
|
3696 "create a new column after selected column or at left (nothing selected)" |
|
3697 |
|
3698 |label list dscs descr| |
|
3699 |
|
3700 "/ list := self seqList. |
|
3701 "/ label := 'Column ', (list size + 1) printString. |
|
3702 "/ columns add:(dscs := DataSetColumnSpec label:label selector:nil) afterIndex:selectedColumnIndex. |
|
3703 "/ self setDefaultValuesInNewColumn:dscs. |
|
3704 "/ self seqList add:label afterIndex:selectedColumnIndex. |
|
3705 "/ self enablingCommitButtonsHolder value ifFalse:[ |
|
3706 "/ self selectedColumnModel value:selectedColumnIndex + 1 |
|
3707 "/ ]. |
|
3708 "/ self cancel. |
|
3709 "/ self updateColumnView. |
|
3710 "/ self setModified. |
|
3711 "/ |
|
3712 |
|
3713 label := 'Column ', (self seqList size + 1) printString. |
|
3714 descr := DataSetColumnSpec label:label selector:nil. |
|
3715 descr canSelect:false. |
|
3716 self doAddColumn:descr |
3188 ! |
3717 ! |
3189 |
3718 |
3190 doCut |
3719 doCut |
3191 "remove selected column and put it to the clipboard" |
3720 "remove selected column and put it to the clipboard" |
3192 |
3721 |
3313 doMoveColumn:upOrDown |
3842 doMoveColumn:upOrDown |
3314 "move selected column up or down" |
3843 "move selected column up or down" |
3315 |
3844 |
3316 |idx list label col size| |
3845 |idx list label col size| |
3317 |
3846 |
3318 (idx := selectedColumnIndex) == 0 ifTrue:[^self]. |
3847 (idx := self singleSelectedColumnIndex) == 0 ifTrue:[^self]. |
3319 list := self seqList. |
3848 list := self seqList. |
3320 size := list size. |
3849 size := list size. |
3321 |
3850 |
3322 size == 1 ifTrue:[^self]. |
3851 size == 1 ifTrue:[^self]. |
3323 selectedColumnIndex := 0. |
3852 selectedColumnIndex := 0. |
3324 label := list at:idx. |
3853 label := list at:idx. |
3325 col := columns at:idx. |
3854 col := columns at:idx. |
3326 list removeIndex:idx. |
3855 list removeIndex:idx. |
3327 columns removeIndex:idx. |
3856 columns removeIndex:idx. |
3328 |
3857 |
3329 upOrDown == #up |
3858 upOrDown == #up ifTrue:[ |
3330 ifTrue: |
|
3331 [ |
|
3332 idx == 1 ifTrue:[idx := size] |
3859 idx == 1 ifTrue:[idx := size] |
3333 ifFalse:[idx := idx - 1] |
3860 ifFalse:[idx := idx - 1] |
3334 ] |
3861 ] ifFalse:[ |
3335 ifFalse: |
|
3336 [ |
|
3337 idx == size ifTrue:[idx := 1] |
3862 idx == size ifTrue:[idx := 1] |
3338 ifFalse:[idx := idx + 1] |
3863 ifFalse:[idx := idx + 1] |
3339 ]. |
3864 ]. |
3340 columns add:col beforeIndex:idx. |
3865 columns add:col beforeIndex:idx. |
3341 list add:label beforeIndex:idx. |
3866 list add:label beforeIndex:idx. |
3342 self selectedColumnModel value:idx. |
3867 self selectedColumnModel value:idx. |
3343 self updateColumnView. |
3868 self updateColumnView. |
3344 self setModified. |
3869 self setModified. |
3345 ! |
3870 ! |
3346 |
3871 |
|
3872 doMoveDown |
|
3873 self doMoveColumn:#down |
|
3874 ! |
|
3875 |
|
3876 doMoveUp |
|
3877 self doMoveColumn:#up |
|
3878 ! |
|
3879 |
3347 doPaste |
3880 doPaste |
3348 "paste clipboard copy column after selected column or at left (nothing selected)" |
3881 "paste clipboard copy column after selected column or at left (nothing selected)" |
3349 |
3882 |
3350 |col lbl| |
3883 |cols idx newSel| |
3351 |
3884 |
3352 self askForItemModification ifFalse: [^nil]. |
3885 self askForItemModification ifFalse: [^ self]. |
3353 col := self class clipboard deepCopy. |
3886 |
3354 lbl := self labelFromColumn:col. |
3887 cols := self class clipboard. |
3355 |
3888 cols isEmptyOrNil ifTrue:[^ self]. |
3356 columns add:col afterIndex:selectedColumnIndex. |
3889 |
3357 self seqList add:lbl afterIndex:selectedColumnIndex. |
3890 idx := (self selectedColumnIndices) isEmpty |
|
3891 ifTrue:[ columns size ] |
|
3892 ifFalse:[ self selectedColumnIndices max ]. |
|
3893 |
|
3894 newSel := OrderedCollection new. |
|
3895 cols do:[:col | |
|
3896 | lbl| |
|
3897 |
|
3898 lbl := self labelFromColumn:col. |
|
3899 |
|
3900 columns add:(col deepCopy) afterIndex:idx. |
|
3901 self seqList add:lbl afterIndex:idx. |
|
3902 idx := idx + 1. |
|
3903 newSel add:idx. |
|
3904 ]. |
3358 |
3905 |
3359 self enablingCommitButtonsHolder value ifFalse:[ |
3906 self enablingCommitButtonsHolder value ifFalse:[ |
3360 self selectedColumnModel value:selectedColumnIndex + 1 |
3907 self selectedColumnModel value:newSel "/idx |
3361 ]. |
3908 ]. |
3362 self updateColumnView. |
3909 self updateColumnView. |
3363 self updateInputFields. |
3910 self updateInputFields. |
3364 self setModified. |
3911 self setModified. |
3365 ! |
3912 ! |