ProcessMonitorV2.st
changeset 17300 48714b269838
parent 17271 34d72ea12f93
child 17379 028adf14bc05
child 17623 db505407fa0c
equal deleted inserted replaced
17299:44269d07c040 17300:48714b269838
    31 		hasSelectionAndProcessIsStoppedHolder
    31 		hasSelectionAndProcessIsStoppedHolder
    32 		hasSelectionWithGUIProcessHolder
    32 		hasSelectionWithGUIProcessHolder
    33 		hasSelectionWithDisabledInstrumentationHolder
    33 		hasSelectionWithDisabledInstrumentationHolder
    34 		hasSelectionWithEnabledInstrumentationHolder interruptCountHolder
    34 		hasSelectionWithEnabledInstrumentationHolder interruptCountHolder
    35 		timerActionCountHolder lastInterruptCount lastTimerActionCount
    35 		timerActionCountHolder lastInterruptCount lastTimerActionCount
    36 		lastUpdateTimestamp'
    36 		lastUpdateTimestamp showStartTime'
    37 	classVariableNames:''
    37 	classVariableNames:''
    38 	poolDictionaries:''
    38 	poolDictionaries:''
    39 	category:'Monitors-ST/X'
    39 	category:'Monitors-ST/X'
    40 !
    40 !
    41 
    41 
    43 	instanceVariableNames:'processId processGroup processName processActive processState
    43 	instanceVariableNames:'processId processGroup processName processActive processState
    44 		processPrio processUsedStack processTotalStack processWhere
    44 		processPrio processUsedStack processTotalStack processWhere
    45 		processInstrumentation processApplication processWindowTitle
    45 		processInstrumentation processApplication processWindowTitle
    46 		processInstance weakArrayWithProcesses
    46 		processInstance weakArrayWithProcesses
    47 		processInstanceIndexInWeakArray processCurrentSegment
    47 		processInstanceIndexInWeakArray processCurrentSegment
    48 		processSwitch prioVal idVal groupVal processBlocked'
    48 		processSwitch prioVal idVal groupVal processBlocked
       
    49 		startTimestamp'
    49 	classVariableNames:''
    50 	classVariableNames:''
    50 	poolDictionaries:''
    51 	poolDictionaries:''
    51 	privateIn:ProcessMonitorV2
    52 	privateIn:ProcessMonitorV2
    52 !
    53 !
    53 
    54 
  1830             label: 'Window Title'
  1831             label: 'Window Title'
  1831             hideMenuOnActivated: false
  1832             hideMenuOnActivated: false
  1832             indication: showWindowTitle
  1833             indication: showWindowTitle
  1833           )
  1834           )
  1834          (MenuItem
  1835          (MenuItem
       
  1836             label: 'Start Time'
       
  1837             hideMenuOnActivated: false
       
  1838             indication: showStartTime
       
  1839           )
       
  1840          (MenuItem
  1835             label: '-'
  1841             label: '-'
  1836           )
  1842           )
  1837          (MenuItem
  1843          (MenuItem
  1838             label: 'Show Dead Processes'
  1844             label: 'Show Dead Processes'
  1839             indication: showDeadHolder
  1845             indication: showDeadHolder
  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
  2399 	showProcessId onChangeSend:#viewedColumnsChanged to:self
  2425 	showProcessId onChangeSend:#viewedColumnsChanged to:self
  2400     ].
  2426     ].
  2401     ^ showProcessId
  2427     ^ showProcessId
  2402 !
  2428 !
  2403 
  2429 
       
  2430 showStartTime
       
  2431     "return/create the 'showStartTime' value holder (automatically generated)"
       
  2432 
       
  2433     showStartTime isNil ifTrue:[
       
  2434         showStartTime := false asValue.
       
  2435         showStartTime onChangeSend:#viewedColumnsChanged to:self
       
  2436     ].
       
  2437     ^ showStartTime
       
  2438 !
       
  2439 
  2404 showState
  2440 showState
  2405     "return/create the 'showState' value holder (automatically generated)"
  2441     "return/create the 'showState' value holder (automatically generated)"
  2406 
  2442 
  2407     showState isNil ifTrue:[
  2443     showState isNil ifTrue:[
  2408 	showState := true asValue.
  2444 	showState := true asValue.
  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 
  3606     processItem idVal:aProcess id ? -1.
  3648     processItem idVal:aProcess id ? -1.
  3607 
  3649 
  3608     processItem processGroup:(self getGroupStringFor:aProcess).
  3650     processItem processGroup:(self getGroupStringFor:aProcess).
  3609     processItem groupVal:(processItem processGroup isNumber ifTrue:[processItem processGroup] ifFalse:[-1]).
  3651     processItem groupVal:(processItem processGroup isNumber ifTrue:[processItem processGroup] ifFalse:[-1]).
  3610 
  3652 
       
  3653     processItem processStartTime:aProcess startTimestamp.
  3611     processItem processName:aProcess name ? ''.
  3654     processItem processName:aProcess name ? ''.
  3612 
  3655 
  3613     state := aProcess state.
  3656     state := aProcess state.
  3614     running := (state == #run and:[aProcess == Processor interruptedProcess]).
  3657     running := (state == #run and:[aProcess == Processor interruptedProcess]).
  3615 
  3658 
  4159 
  4202 
  4160 processPrio:something
  4203 processPrio:something
  4161     processPrio := something.
  4204     processPrio := something.
  4162 !
  4205 !
  4163 
  4206 
       
  4207 processStartTime
       
  4208     "return the value of the instance variable 'startTime' (automatically generated)"
       
  4209 
       
  4210     ^ startTimestamp
       
  4211 !
       
  4212 
       
  4213 processStartTime:aTimestamp
       
  4214     "set the value of the instance variable 'startTime' (automatically generated)"
       
  4215 
       
  4216     startTimestamp := aTimestamp
       
  4217 !
       
  4218 
  4164 processState
  4219 processState
  4165     ^ processState
  4220     ^ processState
  4166 !
  4221 !
  4167 
  4222 
  4168 processState:something
  4223 processState:something