101 'Undo modifications made here.' |
101 'Undo modifications made here.' |
102 |
102 |
103 #defaultNamespace |
103 #defaultNamespace |
104 'Namespace for new classes when created in the Browser.' |
104 'Namespace for new classes when created in the Browser.' |
105 |
105 |
106 #deliverAsGZIP |
106 #deliverGZipArchive |
107 'Package delivery into a gzip archive (for unix)' |
107 'Package delivery into a gzip archive (for unix)' |
108 |
108 |
109 #deliverAsTar |
109 #deliverTarArchive |
110 'Package delivery into a tar archive (for unix)' |
110 'Package delivery into a tar archive (for unix)' |
111 |
111 |
112 #deliverAsZIP |
112 #deliverZipArchive |
113 'Package delivery into a zip archive (for win32)' |
113 'Package delivery into a zip archive (for win32)' |
114 |
114 |
115 #deliverBinary |
115 #deliverCompiledBinary |
116 'Create and deliver as compiled binary (classLibrary) - will only execute on the running systems architecture.' |
116 'Create and deliver as compiled binary (classLibrary) - will only execute on the running systems architecture.' |
117 |
117 |
118 #deliverByteCode |
118 #deliverByteCode |
119 'Create and deliver as bytecode - portable across architectures.' |
119 'Create and deliver as bytecode - portable across architectures.' |
120 |
120 |
121 #deliverLoadAll |
121 #deliverLoadAll |
122 'Deliver a loadAll script file, which files-In the other files.' |
122 'Deliver a loadAll script file, which files-In the other files.' |
123 |
123 |
124 #deliverSource |
124 #deliverSources |
125 'Include smalltalk sourceCode in the delivery.' |
125 'Include smalltalk sourceCode in the delivery.' |
|
126 |
|
127 #deliverMakefiles |
|
128 'Include makefiles in the delivery.' |
126 |
129 |
127 #includeSource |
130 #includeSource |
128 'Include smalltalk sourceCode in the delivery.' |
131 'Include smalltalk sourceCode in the delivery.' |
129 |
132 |
130 #installDirMacOS |
133 #installDirMacOS |
452 #(#WindowSpec |
455 #(#WindowSpec |
453 #label: 'NewApplication' |
456 #label: 'NewApplication' |
454 #name: 'NewApplication' |
457 #name: 'NewApplication' |
455 #min: #(#Point 10 10) |
458 #min: #(#Point 10 10) |
456 #max: #(#Point 1280 1024) |
459 #max: #(#Point 1280 1024) |
457 #bounds: #(#Rectangle 216 173 569 569) |
460 #bounds: #(#Rectangle 40 127 393 626) |
458 ) |
461 ) |
459 #component: |
462 #component: |
460 #(#SpecCollection |
463 #(#SpecCollection |
461 #collection: #( |
464 #collection: #( |
462 #(#FramedBoxSpec |
465 #(#FramedBoxSpec |
463 #label: 'Delivery' |
466 #label: 'Deliver' |
464 #name: 'FramedBox1' |
467 #name: 'DeliverBox' |
465 #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 197 0) |
468 #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 172 0) |
466 #labelPosition: #topLeft |
469 #labelPosition: #topLeft |
467 #translateLabel: true |
470 #translateLabel: true |
468 #component: |
471 #component: |
469 #(#SpecCollection |
472 #(#SpecCollection |
470 #collection: #( |
473 #collection: #( |
471 #(#CheckBoxSpec |
474 #(#CheckBoxSpec |
472 #label: '''loadAll''-File' |
475 #label: '''loadAll''-File' |
473 #name: 'CheckBox5' |
476 #name: 'CheckBox5' |
474 #layout: #(#LayoutFrame 0 0.0 10 0 0 1.0 32 0) |
477 #layout: #(#LayoutFrame 0 0.0 67 0 0 1.0 89 0) |
475 #activeHelpKey: #deliverLoadAll |
478 #activeHelpKey: #deliverLoadAll |
476 #tabable: true |
479 #tabable: true |
477 #model: #deliverLoadAllFile |
480 #model: #deliverLoadAllFile |
478 #translateLabel: true |
481 #translateLabel: true |
479 ) |
482 ) |
480 #(#CheckBoxSpec |
483 #(#CheckBoxSpec |
481 #label: 'Bytecode Binary' |
484 #label: 'Compiled Binary (non-portable .dll / .so)' |
|
485 #name: 'CheckBox6' |
|
486 #layout: #(#LayoutFrame 0 0.0 32 0 0 1.0 54 0) |
|
487 #activeHelpKey: #deliverCompiledBinary |
|
488 #tabable: true |
|
489 #model: #deliverCompiledBinary |
|
490 #translateLabel: true |
|
491 ) |
|
492 #(#CheckBoxSpec |
|
493 #label: 'Bytecode Binary (portable)' |
482 #name: 'CheckBox1' |
494 #name: 'CheckBox1' |
483 #layout: #(#LayoutFrame 0 0.0 39 0 0 1.0 61 0) |
495 #layout: #(#LayoutFrame 0 0.0 8 0 0 1.0 30 0) |
484 #activeHelpKey: #deliverByteCode |
496 #activeHelpKey: #deliverByteCode |
485 #tabable: true |
497 #tabable: true |
486 #model: #deliverByteCode |
498 #model: #deliverByteCode |
487 #translateLabel: true |
499 #translateLabel: true |
488 ) |
500 ) |
489 #(#CheckBoxSpec |
501 #(#CheckBoxSpec |
490 #label: 'Compiled Binary (.dll / .so)' |
502 #label: 'Sources' |
491 #name: 'CheckBox1' |
503 #name: 'CheckBox4' |
492 #layout: #(#LayoutFrame 0 0.0 39 0 0 1.0 61 0) |
504 #layout: #(#LayoutFrame 0 0.0 90 0 0 1.0 112 0) |
493 #activeHelpKey: #deliverBinary |
505 #activeHelpKey: #deliverSources |
494 #tabable: true |
506 #tabable: true |
495 #model: #deliverCompiledBinary |
507 #model: #deliverSources |
496 #translateLabel: true |
508 #translateLabel: true |
497 ) |
509 ) |
498 #(#CheckBoxSpec |
510 #(#CheckBoxSpec |
499 #label: 'Zip Archive' |
511 #label: 'Makefiles' |
|
512 #name: 'CheckBox8' |
|
513 #layout: #(#LayoutFrame 0 0.0 113 0 0 1.0 135 0) |
|
514 #activeHelpKey: #deliverMakefiles |
|
515 #tabable: true |
|
516 #model: #deliverMakefiles |
|
517 #translateLabel: true |
|
518 ) |
|
519 ) |
|
520 |
|
521 ) |
|
522 ) |
|
523 #(#FramedBoxSpec |
|
524 #label: 'Format' |
|
525 #name: 'DeliverAsBox' |
|
526 #layout: #(#LayoutFrame 0 0.0 172 0 0 1.0 290 0) |
|
527 #labelPosition: #topLeft |
|
528 #translateLabel: true |
|
529 #component: |
|
530 #(#SpecCollection |
|
531 #collection: #( |
|
532 #(#CheckBoxSpec |
|
533 #label: 'Tar Archive (.tar - for unix)' |
|
534 #name: 'CheckBox7' |
|
535 #layout: #(#LayoutFrame 0 0.0 34 0 0 1.0 56 0) |
|
536 #activeHelpKey: #deliverTarArchive |
|
537 #tabable: true |
|
538 #model: #deliverTarArchive |
|
539 #translateLabel: true |
|
540 ) |
|
541 #(#CheckBoxSpec |
|
542 #label: 'Zip Archive (.zip - for windows)' |
500 #name: 'CheckBox2' |
543 #name: 'CheckBox2' |
501 #layout: #(#LayoutFrame 0 0.0 68 0 0 1.0 90 0) |
544 #layout: #(#LayoutFrame 0 0.0 10 0 0 1.0 32 0) |
502 #activeHelpKey: #deliverAsZIP |
545 #activeHelpKey: #deliverZipArchive |
503 #tabable: true |
546 #tabable: true |
504 #model: #deliverZipArchive |
547 #model: #deliverZipArchive |
505 #translateLabel: true |
548 #translateLabel: true |
506 ) |
549 ) |
507 #(#CheckBoxSpec |
550 #(#CheckBoxSpec |
508 #label: 'GZip Archive (self extracting)' |
551 #label: 'GZip Archive (self extracting for unix)' |
509 #name: 'CheckBox3' |
552 #name: 'CheckBox3' |
510 #layout: #(#LayoutFrame 0 0.0 97 0 0 1.0 119 0) |
553 #layout: #(#LayoutFrame 0 0.0 58 0 0 1.0 80 0) |
511 #activeHelpKey: #deliverAsGZIP |
554 #activeHelpKey: #deliverGZipArchive |
512 #tabable: true |
555 #tabable: true |
513 #model: #deliverGZipArchive |
556 #model: #deliverGZipArchive |
514 #translateLabel: true |
|
515 ) |
|
516 #(#CheckBoxSpec |
|
517 #label: 'Include Sources' |
|
518 #name: 'CheckBox4' |
|
519 #layout: #(#LayoutFrame 0 0.0 138 0 0 1.0 160 0) |
|
520 #activeHelpKey: #deliverSource |
|
521 #tabable: true |
|
522 #model: #deliverSources |
|
523 #translateLabel: true |
557 #translateLabel: true |
524 ) |
558 ) |
525 ) |
559 ) |
526 |
560 |
527 ) |
561 ) |
528 ) |
562 ) |
529 #(#FramedBoxSpec |
563 #(#FramedBoxSpec |
530 #label: 'Install Directory' |
564 #label: 'Target Install Directory' |
531 #name: 'FramedBox2' |
565 #name: 'DestinationBox' |
532 #layout: #(#LayoutFrame 0 0.0 209 0 0 1.0 362 0) |
566 #layout: #(#LayoutFrame 0 0.0 295 0 0 1.0 448 0) |
533 #labelPosition: #topLeft |
567 #labelPosition: #topLeft |
534 #translateLabel: true |
568 #translateLabel: true |
535 #component: |
569 #component: |
536 #(#SpecCollection |
570 #(#SpecCollection |
537 #collection: #( |
571 #collection: #( |
2377 ^ holder. |
2411 ^ holder. |
2378 |
2412 |
2379 "Created: / 23.3.1999 / 14:18:05 / cg" |
2413 "Created: / 23.3.1999 / 14:18:05 / cg" |
2380 ! |
2414 ! |
2381 |
2415 |
|
2416 deliverMakefiles |
|
2417 "automatically generated by UIPainter ..." |
|
2418 |
|
2419 |holder| |
|
2420 |
|
2421 (holder := builder bindingAt:#deliverMakefiles) isNil ifTrue:[ |
|
2422 builder aspectAt:#deliverMakefiles put:(holder := ValueHolder new). |
|
2423 holder onChangeSend:#value to:[modifiedChannel value:true]. |
|
2424 ]. |
|
2425 ^ holder. |
|
2426 |
|
2427 "Created: / 23.3.1999 / 14:18:05 / cg" |
|
2428 ! |
|
2429 |
2382 deliverSources |
2430 deliverSources |
2383 "automatically generated by UIPainter ..." |
2431 "automatically generated by UIPainter ..." |
2384 |
2432 |
2385 |holder| |
2433 |holder| |
2386 |
2434 |
2387 (holder := builder bindingAt:#deliverSources) isNil ifTrue:[ |
2435 (holder := builder bindingAt:#deliverSources) isNil ifTrue:[ |
2388 builder aspectAt:#deliverSources put:(holder := ValueHolder new). |
2436 builder aspectAt:#deliverSources put:(holder := ValueHolder new). |
|
2437 holder onChangeSend:#value to:[modifiedChannel value:true]. |
|
2438 ]. |
|
2439 ^ holder. |
|
2440 |
|
2441 "Created: / 23.3.1999 / 14:18:05 / cg" |
|
2442 ! |
|
2443 |
|
2444 deliverTarArchive |
|
2445 "automatically generated by UIPainter ..." |
|
2446 |
|
2447 |holder| |
|
2448 |
|
2449 (holder := builder bindingAt:#deliverTarArchive) isNil ifTrue:[ |
|
2450 builder aspectAt:#deliverTarArchive put:(holder := ValueHolder new). |
2389 holder onChangeSend:#value to:[modifiedChannel value:true]. |
2451 holder onChangeSend:#value to:[modifiedChannel value:true]. |
2390 ]. |
2452 ]. |
2391 ^ holder. |
2453 ^ holder. |
2392 |
2454 |
2393 "Created: / 23.3.1999 / 14:18:05 / cg" |
2455 "Created: / 23.3.1999 / 14:18:05 / cg" |
3308 |
3371 |
3309 self deliverCompiledBinary value:(p propertyAt:#deliverCompiledBinary) ? false. |
3372 self deliverCompiledBinary value:(p propertyAt:#deliverCompiledBinary) ? false. |
3310 self deliverByteCode value:(p propertyAt:#deliverByteCode) ? false. |
3373 self deliverByteCode value:(p propertyAt:#deliverByteCode) ? false. |
3311 self deliverGZipArchive value:(p propertyAt:#deliverGZipArchive) ? false. |
3374 self deliverGZipArchive value:(p propertyAt:#deliverGZipArchive) ? false. |
3312 self deliverZipArchive value:(p propertyAt:#deliverZipArchive) ? false. |
3375 self deliverZipArchive value:(p propertyAt:#deliverZipArchive) ? false. |
|
3376 self deliverLoadAllFile value:(p propertyAt:#deliverLoadAllFile) ? false. |
3313 self deliverSources value:(p propertyAt:#deliverSources) ? false. |
3377 self deliverSources value:(p propertyAt:#deliverSources) ? false. |
3314 self deliverLoadAllFile value:(p propertyAt:#deliverLoadAllFile) ? false. |
3378 self deliverMakefiles value:(p propertyAt:#deliverMakefiles) ? false. |
3315 |
3379 |
3316 self installDirectoryUnix |
3380 self installDirectoryUnix |
3317 value:(p propertyAt:#installDirectoryUnix) ? |
3381 value:(p propertyAt:#installDirectoryUnix) ? |
3318 ((p propertyAt:#installDirectory) ? '/opt/smalltalk/packages'). |
3382 ((p propertyAt:#installDirectory) ? '/opt/smalltalk/packages'). |
3319 self installDirectoryWin32 |
3383 self installDirectoryWin32 |
3348 |
3412 |
3349 "Created: / 23.3.1999 / 14:16:12 / cg" |
3413 "Created: / 23.3.1999 / 14:16:12 / cg" |
3350 "Modified: / 26.4.1999 / 23:38:14 / cg" |
3414 "Modified: / 26.4.1999 / 23:38:14 / cg" |
3351 ! |
3415 ! |
3352 |
3416 |
|
3417 reallyModified |
|
3418 |p l selectedNodeType| |
|
3419 |
|
3420 p := self currentProject. |
|
3421 selectedNodeType := self selectedTreeNode contents. |
|
3422 |
|
3423 selectedNodeType == #comment ifTrue:[ |
|
3424 ^ self rightCanvasTextHolder value ~= p comment |
|
3425 ]. |
|
3426 selectedNodeType == #deployment ifTrue:[ |
|
3427 (self deliverByteCode value ~= (p propertyAt:#deliverByteCode)) ifTrue:[^ true]. |
|
3428 (self deliverCompiledBinary value ~= (p propertyAt:#deliverCompiledBinary)) ifTrue:[^ true]. |
|
3429 (self deliverLoadAllFile value ~= (p propertyAt:#deliverLoadAllFile)) ifTrue:[^ true]. |
|
3430 (self deliverSources value ~= (p propertyAt:#deliverSources)) ifTrue:[^ true]. |
|
3431 (self deliverMakefiles value ~= (p propertyAt:#deliverMakefiles)) ifTrue:[^ true]. |
|
3432 |
|
3433 (self deliverZipArchive value ~= (p propertyAt:#deliverZipArchive)) ifTrue:[^ true]. |
|
3434 (self deliverTarArchive value ~= (p propertyAt:#deliverTarArchive)) ifTrue:[^ true]. |
|
3435 (self deliverGZipArchive value ~= (p propertyAt:#deliverGZipArchive)) ifTrue:[^ true]. |
|
3436 |
|
3437 self installDirectoryUnix value ~= |
|
3438 ((p propertyAt:#installDirectoryUnix) ? |
|
3439 ((p propertyAt:#installDirectory) ? |
|
3440 '/opt/smalltalk/packages')) ifTrue:[^ true]. |
|
3441 |
|
3442 self installDirectoryWin32 value ~= |
|
3443 ((p propertyAt:#installDirectoryWin32) ? |
|
3444 ((p propertyAt:#installDirectory) ? |
|
3445 '\Programme\SmalltalkX\packages')) ifTrue:[^ true]. |
|
3446 |
|
3447 self installDirectoryVMS value ~= |
|
3448 ((p propertyAt:#installDirectoryVMS) ? |
|
3449 ((p propertyAt:#installDirectory) ? |
|
3450 'SYS$SMALLTALKX:[PACKAGES]')) ifTrue:[^ true]. |
|
3451 |
|
3452 ^ false |
|
3453 ]. |
|
3454 self halt. |
|
3455 (self methodsFile value ~~ (p propertyAt:#methodsFile)) ifTrue:[^ true]. |
|
3456 (self projectType value ~~ p type) ifTrue:[^ true]. |
|
3457 (self projectDirectory value ~= p directory) ifTrue:[^ true]. |
|
3458 (self projectPackage value ~= p package) ifTrue:[^ true]. |
|
3459 (self projectNamespace value ~= (p defaultNameSpace ? Smalltalk) name) ifTrue:[^ true]. |
|
3460 |
|
3461 (self repositoryModule value ~= p repositoryModule) ifTrue:[^ true]. |
|
3462 (self repositoryDirectory value ~= p repositoryDirectory) ifTrue:[^ true]. |
|
3463 |
|
3464 "/ self installDirectoryMacOS value ~= |
|
3465 "/ ((p propertyAt:#installDirectoryMacOS) ? |
|
3466 "/ ((p propertyAt:#installDirectory) ? |
|
3467 "/ '\Programme\SmalltalkX')) ifTrue:[^ true]. |
|
3468 |
|
3469 l := p prerequisitePackages collect:[:entry | |
|
3470 |pName| |
|
3471 |
|
3472 entry isString ifTrue:[ |
|
3473 pName := entry |
|
3474 ] ifFalse:[ |
|
3475 entry isArray ifTrue:[ |
|
3476 pName := entry at:1 |
|
3477 ] ifFalse:[ |
|
3478 pName := entry name |
|
3479 ] |
|
3480 ] |
|
3481 ]. |
|
3482 self listOfRequiredProjectsInPrerequisites value ~= (l sort) ifTrue:[^ true]. |
|
3483 self listOfRequiredClassesInPrerequisites value ~= (p prerequisiteClasses copy sort) ifTrue:[^ true]. |
|
3484 self halt. |
|
3485 |
|
3486 ! |
|
3487 |
3353 saveAspectsIntoProject |
3488 saveAspectsIntoProject |
3354 |p s ns dir| |
3489 |p s ns dir| |
3355 |
3490 |
3356 p := self currentProject. |
3491 p := self currentProject. |
3357 p notNil ifTrue:[ |
3492 p notNil ifTrue:[ |
3381 ]. |
3516 ]. |
3382 p defaultNameSpace:ns. |
3517 p defaultNameSpace:ns. |
3383 |
3518 |
3384 p propertyAt:#deliverCompiledBinary put:self deliverCompiledBinary value. |
3519 p propertyAt:#deliverCompiledBinary put:self deliverCompiledBinary value. |
3385 p propertyAt:#deliverByteCode put:self deliverByteCode value. |
3520 p propertyAt:#deliverByteCode put:self deliverByteCode value. |
3386 p propertyAt:#deliverSources put:self deliverSources value. |
|
3387 p propertyAt:#deliverZipArchive put:self deliverZipArchive value. |
3521 p propertyAt:#deliverZipArchive put:self deliverZipArchive value. |
3388 p propertyAt:#deliverGZipArchive put:self deliverGZipArchive value. |
3522 p propertyAt:#deliverGZipArchive put:self deliverGZipArchive value. |
3389 p propertyAt:#deliverLoadAllFile put:self deliverLoadAllFile value. |
3523 p propertyAt:#deliverLoadAllFile put:self deliverLoadAllFile value. |
|
3524 p propertyAt:#deliverSources put:self deliverSources value. |
|
3525 p propertyAt:#deliverMakefiles put:self deliverMakefiles value. |
3390 |
3526 |
3391 p propertyAt:#installDirectoryUnix put:self installDirectoryUnix value. |
3527 p propertyAt:#installDirectoryUnix put:self installDirectoryUnix value. |
3392 p propertyAt:#installDirectoryWin32 put:self installDirectoryWin32 value. |
3528 p propertyAt:#installDirectoryWin32 put:self installDirectoryWin32 value. |
3393 p propertyAt:#installDirectoryVMS put:self installDirectoryVMS value. |
3529 p propertyAt:#installDirectoryVMS put:self installDirectoryVMS value. |
3394 p propertyAt:#installDirectoryMacOS put:self installDirectoryMacOS value. |
3530 p propertyAt:#installDirectoryMacOS put:self installDirectoryMacOS value. |
3403 ! |
3539 ! |
3404 |
3540 |
3405 updateProjectTree |
3541 updateProjectTree |
3406 |tree moduleRoots root showWhat| |
3542 |tree moduleRoots root showWhat| |
3407 |
3543 |
3408 showWhat := self showWhat value. |
3544 self withCursor:Cursor execute do:[ |
3409 |
3545 showWhat := self showWhat value. |
3410 moduleRoots := Dictionary new. |
3546 |
3411 |
3547 moduleRoots := Dictionary new. |
3412 tree := SelectionInTree new. |
3548 |
3413 tree root:(root := ProjectTreeItem name:'invisibleRoot'). |
3549 tree := SelectionInTree new. |
3414 root hide:false. |
3550 tree root:(root := ProjectTreeItem name:'invisibleRoot'). |
3415 |
3551 root hide:false. |
3416 showWhat notNil ifTrue:[ |
3552 |
3417 showWhat == #current ifTrue:[ |
3553 showWhat notNil ifTrue:[ |
3418 root add:(self nodeFor:Project current). |
3554 showWhat == #current ifTrue:[ |
3419 ] ifFalse:[ |
3555 root add:(self nodeFor:Project current). |
3420 (Project knownProjects asOrderedCollection |
3556 ] ifFalse:[ |
3421 sort:[:a :b | a package < b package]) |
3557 (Project knownProjects asOrderedCollection |
3422 do:[:aProject | |
3558 sort:[:a :b | a package < b package]) |
3423 |newNode nodeToAdd doShow childNode path| |
3559 do:[:aProject | |
3424 |
3560 |newNode nodeToAdd doShow childNode path| |
3425 (doShow := showWhat == #all) ifFalse:[ |
3561 |
3426 doShow := (aProject package startsWith:'stx:') not |
3562 (doShow := showWhat == #all) ifFalse:[ |
|
3563 doShow := (aProject package startsWith:'stx:') not |
|
3564 ]. |
|
3565 |
|
3566 doShow ifTrue:[ |
|
3567 newNode := self nodeFor:aProject. |
|
3568 |
|
3569 "/ insert into tree ... |
|
3570 nodeToAdd := root. |
|
3571 |
|
3572 path := aProject package asCollectionOfSubstringsSeparatedByAny:'/\:'. |
|
3573 path from:1 to:path size-1 do:[:part | |
|
3574 childNode := nodeToAdd children detect:[:child | child name = part] ifNone:nil. |
|
3575 childNode isNil ifTrue:[ |
|
3576 nodeToAdd add:(childNode := ProjectTreeItem new name:part). |
|
3577 ]. |
|
3578 nodeToAdd := childNode. |
|
3579 ]. |
|
3580 newNode name:(path last). |
|
3581 nodeToAdd add:newNode. |
|
3582 ] |
3427 ]. |
3583 ]. |
3428 |
|
3429 doShow ifTrue:[ |
|
3430 newNode := self nodeFor:aProject. |
|
3431 |
|
3432 "/ insert into tree ... |
|
3433 nodeToAdd := root. |
|
3434 |
|
3435 path := aProject package asCollectionOfSubstringsSeparatedByAny:'/\:'. |
|
3436 path from:1 to:path size-1 do:[:part | |
|
3437 childNode := nodeToAdd children detect:[:child | child name = part] ifNone:nil. |
|
3438 childNode isNil ifTrue:[ |
|
3439 nodeToAdd add:(childNode := ProjectTreeItem new name:part). |
|
3440 ]. |
|
3441 nodeToAdd := childNode. |
|
3442 ]. |
|
3443 newNode name:(path last). |
|
3444 nodeToAdd add:newNode. |
|
3445 ] |
|
3446 ]. |
3584 ]. |
3447 ]. |
3585 ]. |
3448 ]. |
3586 projectTree := root. |
3449 projectTree := root. |
3587 |
3450 |
3588 self projectTreeHolder root:projectTree. |
3451 self projectTreeHolder root:projectTree. |
3589 ]. |
3452 ^ projectTree |
3590 ^ projectTree |
3453 ! |
3591 ! |
3454 |
3592 |
3455 updateRightCanvas |
3593 updateRightCanvas |
3456 |selectedNode nodeContents spec| |
3594 |selectedNode nodeContents spec| |