915 #name: #windowSpec |
915 #name: #windowSpec |
916 #window: |
916 #window: |
917 #(#WindowSpec |
917 #(#WindowSpec |
918 #label: 'ProjectBrowser' |
918 #label: 'ProjectBrowser' |
919 #name: 'ProjectBrowser' |
919 #name: 'ProjectBrowser' |
920 #layout: #(#LayoutFrame 218 0 107 0 781 0 497 0) |
920 #layout: #(#LayoutFrame 216 0 173 0 779 0 563 0) |
921 #level: 0 |
921 #level: 0 |
922 #min: #(#Point 10 10) |
922 #min: #(#Point 10 10) |
923 #max: #(#Point 1024 768) |
923 #max: #(#Point 1024 768) |
924 #bounds: #(#Rectangle 218 107 782 498) |
924 #bounds: #(#Rectangle 216 173 780 564) |
925 #menu: #mainMenu |
925 #menu: #mainMenu |
926 #usePreferredExtent: false |
926 #usePreferredExtent: false |
927 #returnIsOKInDialog: true |
927 #returnIsOKInDialog: true |
928 #escapeIsCancelInDialog: true |
928 #escapeIsCancelInDialog: true |
929 ) |
929 ) |
943 #component: |
943 #component: |
944 #(#SpecCollection |
944 #(#SpecCollection |
945 #collection: #( |
945 #collection: #( |
946 #(#SelectionInTreeViewSpec |
946 #(#SelectionInTreeViewSpec |
947 #name: 'TreeList1' |
947 #name: 'TreeList1' |
948 #model: #selectedTreeNode |
948 #model: #selectedTreeNodeHolder |
949 #menu: #itemMenuHolder |
949 #menu: #itemMenuHolder |
950 #performer: #itemMenuPerformer |
950 #performer: #itemMenuPerformer |
951 #hasHorizontalScrollBar: true |
951 #hasHorizontalScrollBar: true |
952 #hasVerticalScrollBar: true |
952 #hasVerticalScrollBar: true |
953 #miniScrollerHorizontal: true |
953 #miniScrollerHorizontal: true |
954 #showRoot: false |
954 #showRoot: false |
955 #showDirectoryIndicatorForRoot: false |
955 #showDirectoryIndicatorForRoot: false |
956 #showDirectoryIndicator: true |
956 #showDirectoryIndicator: true |
957 #valueChangeSelector: #itemSelected: |
957 #valueChangeSelector: #itemSelected: |
|
958 #doubleClickSelector: #itemDoubleClicked: |
958 #hierarchicalList: #projectTreeHolder |
959 #hierarchicalList: #projectTreeHolder |
959 #selectConditionSelector: #selectionChangeAllowed |
960 #selectConditionSelector: #selectionChangeAllowed |
960 #highlightMode: #label |
961 #highlightMode: #label |
961 ) |
962 ) |
962 #(#SubCanvasSpec |
963 #(#SubCanvasSpec |
1431 #model: #selectorFromPatchesInfo: |
1432 #model: #selectorFromPatchesInfo: |
1432 ) |
1433 ) |
1433 ) |
1434 ) |
1434 ! ! |
1435 ! ! |
1435 |
1436 |
|
1437 !ProjectBrowser methodsFor:'accessing'! |
|
1438 |
|
1439 selectedTreeNode |
|
1440 "automatically generated by UIPainter ..." |
|
1441 |
|
1442 ^ self selectedTreeNodeHolder value |
|
1443 ! ! |
|
1444 |
1436 !ProjectBrowser methodsFor:'aspects'! |
1445 !ProjectBrowser methodsFor:'aspects'! |
1437 |
1446 |
1438 browseClass |
1447 browseClass |
1439 |node className cls| |
1448 |node className cls| |
1440 |
1449 |
1441 self hasClassNodeSelected ifFalse:[^ self]. |
1450 self hasClassNodeSelected ifFalse:[^ self]. |
1442 |
1451 |
1443 node := self selectedTreeNode value. |
1452 node := self selectedTreeNode. |
1444 className := node contents value. |
1453 className := node contents value. |
1445 cls := Smalltalk at:className. |
1454 cls := Smalltalk at:className. |
1446 cls isNil ifTrue:[ |
1455 cls isNil ifTrue:[ |
1447 self information:'The class is not (yet) loaded'. |
1456 self information:'The class is not (yet) loaded'. |
1448 ^ self. |
1457 ^ self. |
1803 ^ holder. |
1812 ^ holder. |
1804 |
1813 |
1805 "Created: / 23.3.1999 / 14:18:05 / cg" |
1814 "Created: / 23.3.1999 / 14:18:05 / cg" |
1806 ! |
1815 ! |
1807 |
1816 |
1808 selectedTreeNode |
1817 selectedTreeNodeHolder |
1809 "automatically generated by UIPainter ..." |
1818 "automatically generated by UIPainter ..." |
1810 |
1819 |
1811 |holder| |
1820 |holder| |
1812 |
1821 |
1813 (holder := builder bindingAt:#selectedTreeNode) isNil ifTrue:[ |
1822 (holder := builder bindingAt:#selectedTreeNodeHolder) isNil ifTrue:[ |
1814 builder aspectAt:#selectedTreeNode put:(holder := ValueHolder new). |
1823 builder aspectAt:#selectedTreeNodeHolder put:(holder := ValueHolder new). |
1815 ]. |
1824 ]. |
1816 ^ holder. |
1825 ^ holder. |
1817 ! ! |
1826 ! ! |
1818 |
1827 |
1819 !ProjectBrowser methodsFor:'change & update'! |
1828 !ProjectBrowser methodsFor:'change & update'! |
1947 ! |
1956 ! |
1948 |
1957 |
1949 hasClassNodeSelected |
1958 hasClassNodeSelected |
1950 |selectedNode| |
1959 |selectedNode| |
1951 |
1960 |
1952 selectedNode := self selectedTreeNode value. |
1961 selectedNode := self selectedTreeNode. |
1953 selectedNode isNil ifTrue:[^ false]. |
1962 selectedNode isNil ifTrue:[^ false]. |
1954 |
1963 |
1955 ^ selectedNode contents isAssociation |
1964 ^ selectedNode contents isAssociation |
1956 and:[selectedNode contents key == #class] |
1965 and:[selectedNode contents key == #class] |
1957 |
1966 |
1958 ! |
1967 ! |
1959 |
1968 |
1960 hasClassesNodeSelected |
1969 hasClassesNodeSelected |
1961 |selectedNode| |
1970 |selectedNode| |
1962 |
1971 |
1963 selectedNode := self selectedTreeNode value. |
1972 selectedNode := self selectedTreeNode. |
1964 selectedNode isNil ifTrue:[^ false]. |
1973 selectedNode isNil ifTrue:[^ false]. |
1965 |
1974 |
1966 ^ selectedNode contents == #classes |
1975 ^ selectedNode contents == #classes |
1967 |
1976 |
1968 ! |
1977 ! |
1969 |
1978 |
1970 hasNodeSelected |
1979 hasNodeSelected |
1971 ^ self selectedTreeNode value notNil |
1980 ^ self selectedTreeNode notNil |
1972 |
1981 |
1973 ! |
1982 ! |
1974 |
1983 |
1975 hasProjectNodeSelected |
1984 hasProjectNodeSelected |
1976 |selectedNode| |
1985 |selectedNode| |
1977 |
1986 |
1978 selectedNode := self selectedTreeNode value. |
1987 selectedNode := self selectedTreeNode. |
1979 selectedNode isNil ifTrue:[^ false]. |
1988 selectedNode isNil ifTrue:[^ false]. |
1980 |
1989 |
1981 ^ selectedNode isProjectNode |
1990 ^ selectedNode isProjectNode |
1982 |
1991 |
1983 ! |
1992 ! |
1984 |
1993 |
1985 hasSubProjectsNodeSelected |
1994 hasSubProjectsNodeSelected |
1986 |selectedNode| |
1995 |selectedNode| |
1987 |
1996 |
1988 selectedNode := self selectedTreeNode value. |
1997 selectedNode := self selectedTreeNode. |
1989 selectedNode isNil ifTrue:[^ false]. |
1998 selectedNode isNil ifTrue:[^ false]. |
1990 |
1999 |
1991 ^ selectedNode contents == #subprojects |
2000 ^ selectedNode contents == #subprojects |
1992 |
2001 |
1993 ! |
2002 ! |
2102 readAspectsFromProject |
2111 readAspectsFromProject |
2103 |p| |
2112 |p| |
2104 |
2113 |
2105 p := self currentProject. |
2114 p := self currentProject. |
2106 p notNil ifTrue:[ |
2115 p notNil ifTrue:[ |
2107 self selectedTreeNode value contents == #comment ifTrue:[ |
2116 self selectedTreeNode contents == #comment ifTrue:[ |
2108 self rightCanvasTextHolder value:p comment. |
2117 self rightCanvasTextHolder value:p comment. |
2109 ]. |
2118 ]. |
2110 |
2119 |
2111 self currentProjectWasNotLoadedFromFile value:p wasLoadedFromFile not. |
2120 self currentProjectWasNotLoadedFromFile value:p wasLoadedFromFile not. |
2112 self projectType value:(p type). |
2121 self projectType value:(p type). |
2174 |selectedNode nodeContents spec| |
2183 |selectedNode nodeContents spec| |
2175 |
2184 |
2176 self selectedProjectInPrerequisites value:nil. |
2185 self selectedProjectInPrerequisites value:nil. |
2177 self selectedRequiredProjectInPrerequisites value:nil. |
2186 self selectedRequiredProjectInPrerequisites value:nil. |
2178 |
2187 |
2179 selectedNode := self selectedTreeNode value. |
2188 selectedNode := self selectedTreeNode. |
2180 selectedNode isNil ifTrue:[ |
2189 selectedNode isNil ifTrue:[ |
2181 self setupCanvasForNoSelection. |
2190 self setupCanvasForNoSelection. |
2182 ^ self |
2191 ^ self |
2183 ]. |
2192 ]. |
2184 |
2193 |
2285 "reload aspects from the project" |
2294 "reload aspects from the project" |
2286 |
2295 |
2287 self readAspectsFromProject |
2296 self readAspectsFromProject |
2288 ! |
2297 ! |
2289 |
2298 |
|
2299 itemDoubleClicked:index |
|
2300 |node className cls| |
|
2301 |
|
2302 self hasClassNodeSelected ifTrue:[ |
|
2303 node := self selectedTreeNode. |
|
2304 className := node contents value. |
|
2305 cls := Smalltalk at:className. |
|
2306 cls isNil ifTrue:[ |
|
2307 self information:'The class is not (yet) loaded'. |
|
2308 ^ self |
|
2309 ]. |
|
2310 SystemBrowser browseClass:cls. |
|
2311 ]. |
|
2312 ! |
|
2313 |
2290 itemSelected:index |
2314 itemSelected:index |
2291 |item action| |
2315 |item action| |
2292 |
2316 |
2293 self updateRightCanvas. |
2317 self updateRightCanvas. |
2294 |
2318 |
2325 "make the selected Project the current project" |
2349 "make the selected Project the current project" |
2326 |
2350 |
2327 |project selectedNode| |
2351 |project selectedNode| |
2328 |
2352 |
2329 self hasProjectNodeSelected ifTrue:[ |
2353 self hasProjectNodeSelected ifTrue:[ |
2330 selectedNode := self selectedTreeNode value. |
2354 selectedNode := self selectedTreeNode. |
2331 project := selectedNode contents. |
2355 project := selectedNode contents. |
2332 |
2356 |
2333 Project current:project. |
2357 Project current:project. |
2334 ] |
2358 ] |
2335 ! |
2359 ! |
2350 ! |
2374 ! |
2351 |
2375 |
2352 newSubProject |
2376 newSubProject |
2353 |selectedNode subProjectsNode newNode parentProject newProject| |
2377 |selectedNode subProjectsNode newNode parentProject newProject| |
2354 |
2378 |
2355 selectedNode := self selectedTreeNode value. |
2379 selectedNode := self selectedTreeNode. |
2356 |
2380 |
2357 self hasProjectNodeSelected ifTrue:[ |
2381 self hasProjectNodeSelected ifTrue:[ |
2358 parentProject := selectedNode contents. |
2382 parentProject := selectedNode contents. |
2359 subProjectsNode := selectedNode children detect:[:child | child contents == #subprojects]. |
2383 subProjectsNode := selectedNode children detect:[:child | child contents == #subprojects]. |
2360 ] ifFalse:[ |
2384 ] ifFalse:[ |
2401 |
2425 |
2402 removeProject |
2426 removeProject |
2403 |projectToRemove selectedNode subNode newNode parentNode parentProject newProject| |
2427 |projectToRemove selectedNode subNode newNode parentNode parentProject newProject| |
2404 |
2428 |
2405 self hasProjectNodeSelected ifTrue:[ |
2429 self hasProjectNodeSelected ifTrue:[ |
2406 selectedNode := self selectedTreeNode value. |
2430 selectedNode := self selectedTreeNode. |
2407 projectToRemove := selectedNode contents. |
2431 projectToRemove := selectedNode contents. |
2408 |
2432 |
2409 (self confirm:'Really remove the project ?') ifTrue:[ |
2433 (self confirm:'Really remove the project ?') ifTrue:[ |
2410 self withExecuteCursorDo:[ |
2434 self withExecuteCursorDo:[ |
2411 self projectTreeHolder removeSelection. |
2435 self projectTreeHolder removeSelection. |
2417 |
2441 |
2418 renameProject |
2442 renameProject |
2419 |nm selectedNode selectedProject| |
2443 |nm selectedNode selectedProject| |
2420 |
2444 |
2421 self hasProjectNodeSelected ifTrue:[ |
2445 self hasProjectNodeSelected ifTrue:[ |
2422 selectedNode := self selectedTreeNode value. |
2446 selectedNode := self selectedTreeNode. |
2423 selectedProject := selectedNode contents. |
2447 selectedProject := selectedNode contents. |
2424 |
2448 |
2425 nm := Dialog |
2449 nm := Dialog |
2426 request:'Rename to:' |
2450 request:'Rename to:' |
2427 initialAnswer:selectedProject name. |
2451 initialAnswer:selectedProject name. |
2470 |
2494 |
2471 self hasClassNodeSelected ifFalse:[^ self]. |
2495 self hasClassNodeSelected ifFalse:[^ self]. |
2472 |
2496 |
2473 self currentCanvasHolder value:(self class rightCanvasSpecForEditableText). |
2497 self currentCanvasHolder value:(self class rightCanvasSpecForEditableText). |
2474 |
2498 |
2475 node := self selectedTreeNode value. |
2499 node := self selectedTreeNode. |
2476 className := node contents value. |
2500 className := node contents value. |
2477 cls := Smalltalk at:className. |
2501 cls := Smalltalk at:className. |
2478 cls isNil ifTrue:[ |
2502 cls isNil ifTrue:[ |
2479 text := 'The class is not (yet) loaded'. |
2503 text := 'The class is not (yet) loaded'. |
2480 ] ifFalse:[ |
2504 ] ifFalse:[ |