1866 |
1872 |
1867 <resource: #tableColumns> |
1873 <resource: #tableColumns> |
1868 |
1874 |
1869 ^#( |
1875 ^#( |
1870 (DataSetColumnSpec |
1876 (DataSetColumnSpec |
1871 label: 'Id' |
1877 label: 'Id' |
1872 id: id |
1878 id: id |
1873 activeHelpKeyForLabel: 'processId' |
1879 labelAlignment: left |
1874 labelAlignment: left |
1880 activeHelpKeyForLabel: 'processId' |
1875 labelButtonType: Button |
1881 labelButtonType: Button |
1876 labelActionSelector: sortProcessListBy: |
1882 labelActionSelector: sortProcessListBy: |
1877 labelActionArgument: 'idVal' |
1883 labelActionArgument: 'idVal' |
1878 width: 45 |
1884 width: 45 |
1879 type: number |
1885 height: heightOfFirstRow |
1880 model: processId |
1886 type: number |
1881 canSelect: false |
1887 model: processId |
1882 showRowSeparator: false |
1888 canSelect: false |
1883 showColSeparator: false |
1889 showRowSeparator: false |
|
1890 showColSeparator: false |
1884 ) |
1891 ) |
1885 (DataSetColumnSpec |
1892 (DataSetColumnSpec |
1886 label: 'Group' |
1893 label: 'Group' |
1887 id: group |
1894 id: group |
1888 activeHelpKeyForLabel: 'processGroup' |
1895 labelAlignment: left |
1889 labelAlignment: left |
1896 activeHelpKeyForLabel: 'processGroup' |
1890 labelButtonType: Button |
1897 labelButtonType: Button |
1891 labelActionSelector: sortProcessListBy: |
1898 labelActionSelector: sortProcessListBy: |
1892 labelActionArgument: 'groupVal' |
1899 labelActionArgument: 'groupVal' |
1893 width: 45 |
1900 width: 45 |
1894 model: processGroup |
1901 height: heightOfFirstRow |
1895 canSelect: false |
1902 model: processGroup |
1896 showRowSeparator: false |
1903 canSelect: false |
1897 showColSeparator: false |
1904 showRowSeparator: false |
|
1905 showColSeparator: false |
1898 ) |
1906 ) |
1899 (DataSetColumnSpec |
1907 (DataSetColumnSpec |
1900 label: 'Name' |
1908 label: 'Name' |
1901 id: name |
1909 id: name |
1902 activeHelpKeyForLabel: 'processName' |
1910 labelAlignment: left |
1903 labelAlignment: left |
1911 activeHelpKeyForLabel: 'processName' |
1904 labelButtonType: Button |
1912 labelButtonType: Button |
1905 labelActionSelector: sortProcessListBy: |
1913 labelActionSelector: sortProcessListBy: |
1906 labelActionArgument: 'processName' |
1914 labelActionArgument: 'processName' |
1907 width: 200 |
1915 width: 200 |
1908 model: processName |
1916 height: heightOfFirstRow |
1909 canSelect: false |
1917 model: processName |
1910 showRowSeparator: false |
1918 canSelect: false |
1911 showColSeparator: false |
1919 showRowSeparator: false |
|
1920 showColSeparator: false |
1912 ) |
1921 ) |
1913 (DataSetColumnSpec |
1922 (DataSetColumnSpec |
1914 label: 'Instr.' |
1923 label: 'Instr.' |
1915 id: instrumentation |
1924 id: instrumentation |
1916 labelAlignment: left |
1925 labelAlignment: left |
1917 width: 50 |
1926 activeHelpKeyForLabel: 'processInstrumentation' |
1918 "/ activeHelpKey: 'processInstrumentation' |
1927 labelButtonType: Button |
1919 activeHelpKeyForLabel: 'processInstrumentation' |
1928 labelActionSelector: sortProcessListBy: |
1920 labelButtonType: Button |
1929 labelActionArgument: 'processInstrumentation' |
1921 labelActionSelector: sortProcessListBy: |
1930 width: 50 |
1922 labelActionArgument: 'processInstrumentation' |
1931 height: heightOfFirstRow |
1923 model: processInstrumentation |
1932 model: processInstrumentation |
1924 menuFromApplication: false |
1933 menuFromApplication: false |
1925 canSelect: false |
1934 canSelect: false |
1926 showRowSeparator: false |
1935 showRowSeparator: false |
1927 showColSeparator: false |
1936 showColSeparator: false |
1928 ) |
1937 ) |
1929 (DataSetColumnSpec |
1938 (DataSetColumnSpec |
1930 label: '' |
1939 label: '' |
1931 id: active |
1940 id: active |
1932 "/ activeHelpKey: 'processWasActive' |
1941 activeHelpKeyForLabel: 'processWasActive' |
1933 activeHelpKeyForLabel: 'processWasActive' |
1942 labelButtonType: Button |
1934 labelButtonType: Button |
1943 labelActionSelector: sortProcessListBy: |
1935 labelActionSelector: sortProcessListBy: |
1944 labelActionArgument: 'processActive' |
1936 labelActionArgument: 'processActive' |
1945 width: 10 |
1937 width: 10 |
1946 height: 5 |
1938 height: 5 |
1947 model: processActive |
1939 model: processActive |
1948 menuFromApplication: false |
1940 menuFromApplication: false |
1949 canSelect: false |
1941 canSelect: false |
1950 showRowSeparator: false |
1942 showRowSeparator: false |
1951 showColSeparator: false |
1943 showColSeparator: false |
|
1944 ) |
1952 ) |
1945 (DataSetColumnSpec |
1953 (DataSetColumnSpec |
1946 label: 'State' |
1954 label: 'State' |
1947 id: state |
1955 id: state |
1948 labelAlignment: left |
1956 labelAlignment: left |
1949 "/ activeHelpKey: 'processState' |
1957 activeHelpKeyForLabel: 'processState' |
1950 activeHelpKeyForLabel: 'processState' |
1958 labelButtonType: Button |
1951 labelButtonType: Button |
1959 labelActionSelector: sortProcessListBy: |
1952 labelActionSelector: sortProcessListBy: |
1960 labelActionArgument: 'processState' |
1953 labelActionArgument: 'processState' |
1961 width: 100 |
1954 width: 100 |
1962 height: heightOfFirstRow |
1955 model: processState |
1963 model: processState |
1956 menuFromApplication: false |
1964 menuFromApplication: false |
1957 canSelect: false |
1965 canSelect: false |
1958 showRowSeparator: false |
1966 showRowSeparator: false |
1959 showColSeparator: false |
1967 showColSeparator: false |
1960 ) |
1968 ) |
1961 (DataSetColumnSpec |
1969 (DataSetColumnSpec |
1962 label: 'Prio' |
1970 label: 'Prio' |
1963 id: prio |
1971 id: prio |
1964 labelAlignment: left |
1972 labelAlignment: left |
1965 "/ activeHelpKey: 'processPriority' |
1973 activeHelpKeyForLabel: 'processPriority' |
1966 activeHelpKeyForLabel: 'processPriority' |
1974 labelButtonType: Button |
1967 labelButtonType: Button |
1975 labelActionSelector: sortProcessListBy: |
1968 labelActionSelector: sortProcessListBy: |
1976 labelActionArgument: 'prioVal' |
1969 labelActionArgument: 'prioVal' |
1977 width: 40 |
1970 width: 40 |
1978 height: heightOfFirstRow |
1971 model: processPrio |
1979 model: processPrio |
1972 menuFromApplication: false |
1980 menuFromApplication: false |
1973 canSelect: false |
1981 canSelect: false |
1974 showRowSeparator: false |
1982 showRowSeparator: false |
1975 showColSeparator: false |
1983 showColSeparator: false |
1976 ) |
1984 ) |
1977 (DataSetColumnSpec |
1985 (DataSetColumnSpec |
1978 label: 'Used Stack' |
1986 label: 'Used Stack' |
1979 id: usedStack |
1987 id: usedStack |
1980 labelAlignment: left |
1988 labelAlignment: left |
1981 "/ activeHelpKey: 'processUsedStack' |
1989 activeHelpKeyForLabel: 'processUsedStack' |
1982 activeHelpKeyForLabel: 'processUsedStack' |
1990 labelButtonType: Button |
1983 labelButtonType: Button |
1991 labelActionSelector: sortProcessListBy: |
1984 labelActionSelector: sortProcessListBy: |
1992 labelActionArgument: 'processUsedStack' |
1985 labelActionArgument: 'processUsedStack' |
1993 columnAlignment: right |
1986 columnAlignment: right |
1994 width: 75 |
1987 width: 75 |
1995 height: heightOfFirstRow |
1988 type: number |
1996 type: number |
1989 model: processUsedStack |
1997 model: processUsedStack |
1990 menuFromApplication: false |
1998 menuFromApplication: false |
1991 canSelect: false |
1999 canSelect: false |
1992 showRowSeparator: false |
2000 showRowSeparator: false |
1993 showColSeparator: false |
2001 showColSeparator: false |
1994 ) |
2002 ) |
1995 (DataSetColumnSpec |
2003 (DataSetColumnSpec |
1996 label: 'Total Stack' |
2004 label: 'Total Stack' |
1997 id: totalStack |
2005 id: totalStack |
1998 labelAlignment: left |
2006 labelAlignment: left |
1999 "/ activeHelpKey: 'processTotalStack' |
2007 activeHelpKeyForLabel: 'processTotalStack' |
2000 activeHelpKeyForLabel: 'processTotalStack' |
2008 labelButtonType: Button |
2001 labelButtonType: Button |
2009 labelActionSelector: sortProcessListBy: |
2002 labelActionSelector: sortProcessListBy: |
2010 labelActionArgument: 'processTotalStack' |
2003 labelActionArgument: 'processTotalStack' |
2011 columnAlignment: right |
2004 columnAlignment: right |
2012 width: 75 |
2005 width: 75 |
2013 height: heightOfFirstRow |
2006 model: processTotalStack |
2014 model: processTotalStack |
2007 menuFromApplication: false |
2015 menuFromApplication: false |
2008 canSelect: false |
2016 canSelect: false |
2009 showRowSeparator: false |
2017 showRowSeparator: false |
2010 showColSeparator: false |
2018 showColSeparator: false |
2011 ) |
2019 ) |
2012 (DataSetColumnSpec |
2020 (DataSetColumnSpec |
2013 label: 'Current-Segment' |
2021 label: 'Current-Segment' |
2014 id: currentSegment |
2022 id: currentSegment |
2015 activeHelpKeyForLabel: 'processCurrentSegment' |
2023 labelAlignment: left |
2016 labelAlignment: left |
2024 activeHelpKeyForLabel: 'processCurrentSegment' |
2017 labelButtonType: Button |
2025 labelButtonType: Button |
2018 labelActionSelector: sortProcessListBy: |
2026 labelActionSelector: sortProcessListBy: |
2019 labelActionArgument: 'processCurrentSegment' |
2027 labelActionArgument: 'processCurrentSegment' |
2020 width: 110 |
2028 width: 110 |
2021 model: processCurrentSegment |
2029 height: heightOfFirstRow |
2022 canSelect: false |
2030 model: processCurrentSegment |
2023 showRowSeparator: false |
2031 canSelect: false |
2024 showColSeparator: false |
2032 showRowSeparator: false |
|
2033 showColSeparator: false |
2025 ) |
2034 ) |
2026 (DataSetColumnSpec |
2035 (DataSetColumnSpec |
2027 label: 'Switch' |
2036 label: 'Switch' |
2028 id: switch |
2037 id: switch |
2029 activeHelpKeyForLabel: 'processSwitch' |
2038 labelAlignment: left |
2030 labelAlignment: left |
2039 activeHelpKeyForLabel: 'processSwitch' |
2031 labelButtonType: Button |
2040 labelButtonType: Button |
2032 labelActionSelector: sortProcessListBy: |
2041 labelActionSelector: sortProcessListBy: |
2033 labelActionArgument: 'processSwitch' |
2042 labelActionArgument: 'processSwitch' |
2034 columnAlignment: right |
2043 columnAlignment: right |
2035 width: 55 |
2044 width: 55 |
2036 type: number |
2045 height: heightOfFirstRow |
2037 model: processSwitch |
2046 type: number |
2038 canSelect: false |
2047 model: processSwitch |
2039 showRowSeparator: false |
2048 canSelect: false |
2040 showColSeparator: false |
2049 showRowSeparator: false |
|
2050 showColSeparator: false |
2041 ) |
2051 ) |
2042 (DataSetColumnSpec |
2052 (DataSetColumnSpec |
2043 label: 'Where' |
2053 label: 'Where' |
2044 id: where |
2054 id: where |
2045 labelAlignment: left |
2055 labelAlignment: left |
2046 "/ activeHelpKey: 'processWhere' |
2056 activeHelpKeyForLabel: 'processWhere' |
2047 activeHelpKeyForLabel: 'processWhere' |
2057 labelButtonType: Button |
2048 labelButtonType: Button |
2058 labelActionSelector: sortProcessListBy: |
2049 labelActionSelector: sortProcessListBy: |
2059 labelActionArgument: 'processWhere' |
2050 labelActionArgument: 'processWhere' |
2060 height: heightOfFirstRow |
2051 model: processWhere |
2061 model: processWhere |
2052 menuFromApplication: false |
2062 menuFromApplication: false |
2053 canSelect: false |
2063 canSelect: false |
2054 showRowSeparator: false |
2064 showRowSeparator: false |
2055 showColSeparator: false |
2065 showColSeparator: false |
2056 ) |
2066 ) |
2057 (DataSetColumnSpec |
2067 (DataSetColumnSpec |
2058 label: 'Application' |
2068 label: 'Application' |
2059 id: application |
2069 id: application |
2060 labelAlignment: left |
2070 labelAlignment: left |
2061 "/ activeHelpKey: 'processApplication' |
2071 activeHelpKeyForLabel: 'processApplication' |
2062 activeHelpKeyForLabel: 'processApplication' |
2072 labelButtonType: Button |
2063 labelButtonType: Button |
2073 labelActionSelector: sortProcessListBy: |
2064 labelActionSelector: sortProcessListBy: |
2074 labelActionArgument: 'processApplication' |
2065 labelActionArgument: 'processApplication' |
2075 height: heightOfFirstRow |
2066 model: processApplication |
2076 model: processApplication |
2067 menuFromApplication: false |
2077 menuFromApplication: false |
2068 canSelect: false |
2078 canSelect: false |
2069 showRowSeparator: false |
2079 showRowSeparator: false |
2070 showColSeparator: false |
2080 showColSeparator: false |
2071 ) |
2081 ) |
2072 (DataSetColumnSpec |
2082 (DataSetColumnSpec |
2073 label: 'Window Title' |
2083 label: 'Window Title' |
2074 id: windowTitle |
2084 id: windowTitle |
2075 labelAlignment: left |
2085 labelAlignment: left |
2076 "/ activeHelpKey: 'processWindowTitle' |
2086 activeHelpKeyForLabel: 'processWindowTitle' |
2077 activeHelpKeyForLabel: 'processWindowTitle' |
2087 labelButtonType: Button |
2078 labelButtonType: Button |
2088 labelActionSelector: sortProcessListBy: |
2079 labelActionSelector: sortProcessListBy: |
2089 labelActionArgument: 'processWindowTitle' |
2080 labelActionArgument: 'processWindowTitle' |
2090 height: heightOfFirstRow |
2081 model: processWindowTitle |
2091 model: processWindowTitle |
2082 menuFromApplication: false |
2092 menuFromApplication: false |
2083 canSelect: false |
2093 canSelect: false |
2084 showRowSeparator: false |
2094 showRowSeparator: false |
2085 showColSeparator: false |
2095 showColSeparator: false |
|
2096 ) |
|
2097 (DataSetColumnSpec |
|
2098 label: 'Start Time' |
|
2099 id: startTime |
|
2100 activeHelpKeyForLabel: 'processStartTime' |
|
2101 labelButtonType: Button |
|
2102 labelActionSelector: sortProcessListBy: |
|
2103 labelActionArgument: 'processStartTime' |
|
2104 height: heightOfFirstRow |
|
2105 type: timestamp |
|
2106 model: processStartTime |
|
2107 formatString: '%(day)-%(shortMonthName) %h:%m:%s' |
|
2108 menuFromApplication: false |
|
2109 showRowSeparator: false |
|
2110 showColSeparator: false |
2086 ) |
2111 ) |
2087 ) |
2112 ) |
|
2113 |
2088 ! ! |
2114 ! ! |
2089 |
2115 |
2090 !ProcessMonitorV2 methodsFor:'accessing'! |
2116 !ProcessMonitorV2 methodsFor:'accessing'! |
2091 |
2117 |
2092 visibleBlock |
2118 visibleBlock |
2656 ]. |
2692 ]. |
2657 super update:something with:aParameter from:changedObject |
2693 super update:something with:aParameter from:changedObject |
2658 ! |
2694 ! |
2659 |
2695 |
2660 viewedColumnsChanged |
2696 viewedColumnsChanged |
|
2697 "take the class's columnSpec and select the one's selected by the user. |
|
2698 Stuff this filtered tableColSpec into the value holder" |
|
2699 |
2661 | columns buffer locCurrentSortOrder currentSortOrderColumn currentSortOrderReverse oldSelection sel| |
2700 | columns buffer locCurrentSortOrder currentSortOrderColumn currentSortOrderReverse oldSelection sel| |
2662 |
2701 |
2663 "/ remember the selected processes |
2702 "/ remember the selected processes |
2664 sel := self selectedProcesses value. |
2703 sel := self selectedProcesses value. |
2665 sel notNil ifTrue:[ |
2704 sel notNil ifTrue:[ |
2666 oldSelection := OrderedCollection new. |
2705 oldSelection := OrderedCollection new. |
2667 sel do:[:proItem| |
2706 sel do:[:proItem| |
2668 |process| |
2707 |process| |
2669 |
2708 |
2670 (process := proItem processInstance) notNil ifTrue:[ |
2709 (process := proItem processInstance) notNil ifTrue:[ |
2671 oldSelection add:process |
2710 oldSelection add:process |
2672 ]. |
2711 ]. |
2673 ]. |
2712 ]. |
2674 ]. |
2713 ]. |
2675 "/ Transcript showCR:'oldSelection on catch in viewedColumnsChanged', (oldSelection isNil ifTrue:['nil'] ifFalse:[oldSelection first printString]). |
2714 |
|
2715 "/ Transcript showCR:'oldSelection on catch in viewedColumnsChanged', (oldSelection isNil ifTrue:['nil'] ifFalse:[oldSelection first printString]). |
2676 columns := OrderedCollection new. |
2716 columns := OrderedCollection new. |
2677 self class tableColumns do:[:el| |
2717 self class tableColumns do:[:el| |
2678 columns add:(DataSetColumnSpec decodeFromLiteralArray:el). |
2718 columns add:(DataSetColumnSpec decodeFromLiteralArray:el). |
2679 ]. |
2719 ]. |
2680 buffer := columns copy. |
2720 buffer := columns copy. |
2681 locCurrentSortOrder := self currentSortOrder value. |
2721 locCurrentSortOrder := self currentSortOrder value. |
2682 currentSortOrderColumn := locCurrentSortOrder at:#column ifAbsent:nil. |
2722 currentSortOrderColumn := locCurrentSortOrder at:#column ifAbsent:nil. |
2683 currentSortOrderReverse := locCurrentSortOrder at:#reverse ifAbsent:nil. |
2723 currentSortOrderReverse := locCurrentSortOrder at:#reverse ifAbsent:nil. |
2684 buffer do:[:col | |
2724 buffer do:[:col | |
2685 | id | |
2725 | id | |
2686 id := col id. |
2726 id := col id. |
2687 id notNil ifTrue:[ |
2727 id notNil ifTrue:[ |
2688 (col labelActionArgument notNil and:[col labelActionArgument asSymbol == currentSortOrderColumn]) ifTrue:[ |
2728 (col labelActionArgument notNil and:[col labelActionArgument asSymbol == currentSortOrderColumn]) ifTrue:[ |
2689 | label icon| |
2729 | label icon| |
2690 label := col label. |
2730 label := col label. |
2691 icon := currentSortOrderReverse ifTrue:[self class detailsMenuIconDown] ifFalse:[self class detailsMenuIconUp]. |
2731 icon := currentSortOrderReverse ifTrue:[self class detailsMenuIconDown] ifFalse:[self class detailsMenuIconUp]. |
2692 col label:(LabelAndIcon label:label icon:icon). |
2732 col label:(LabelAndIcon label:label icon:icon). |
2693 ]. |
2733 ]. |
2694 #( |
2734 #( |
2695 ( #id #showProcessId) |
2735 ( #id #showProcessId) |
2696 ( #group #showGroup) |
2736 ( #group #showGroup) |
2697 ( #prio #showPrio) |
2737 ( #prio #showPrio) |
2698 ( #currentSegment #showCurrentSegment) |
2738 ( #currentSegment #showCurrentSegment) |
2699 ( #state #showState) |
2739 ( #state #showState) |
2700 ( #switch #showSwitch) |
2740 ( #switch #showSwitch) |
2701 ( #totalStack #showTotalStack) |
2741 ( #totalStack #showTotalStack) |
2702 ( #usedStack #showUsedStack) |
2742 ( #usedStack #showUsedStack) |
2703 ( #where #showWhere) |
2743 ( #where #showWhere) |
2704 ( #application #showApplication) |
2744 ( #application #showApplication) |
2705 ( #windowTitle #showWindowTitle) |
2745 ( #windowTitle #showWindowTitle) |
2706 ( #instrumentation #showInstrumentation) |
2746 ( #startTime #showStartTime) |
2707 ) pairsDo:[:colName :holderAccessorSelector | |
2747 ( #instrumentation #showInstrumentation) |
2708 (id == colName and:[(self perform:holderAccessorSelector) value not]) ifTrue:[ |
2748 ) pairsDo:[:colName :holderAccessorSelector | |
2709 columns remove:col. |
2749 (id == colName and:[(self perform:holderAccessorSelector) value not]) ifTrue:[ |
2710 ] |
2750 columns remove:col. |
2711 ] |
2751 ] |
2712 ] |
2752 ] |
2713 ]. |
2753 ] |
|
2754 ]. |
|
2755 |
2714 updateSema critical:[ |
2756 updateSema critical:[ |
2715 self tableColumns value:columns. |
2757 self tableColumns value:columns. |
2716 "/ self updateTable:nil. |
2758 "/ self updateTable:nil. |
2717 "/ Transcript showCR:'oldSelection on set in viewedColumnsChanged', (oldSelection isNil ifTrue:['nil'] ifFalse:[oldSelection first printString]). |
2759 "/ Transcript showCR:'oldSelection on set in viewedColumnsChanged', (oldSelection isNil ifTrue:['nil'] ifFalse:[oldSelection first printString]). |
2718 self changeSelectionToProcesses:oldSelection. |
2760 self changeSelectionToProcesses:oldSelection. |
2719 ]. |
2761 ]. |
2720 |
2762 |
2721 "Modified: / 17-08-2011 / 11:11:21 / cg" |
2763 "Modified: / 17-08-2011 / 11:11:21 / cg" |
2722 ! ! |
2764 ! ! |
2723 |
2765 |