TimerQueueMonitor.st
author Claus Gittinger <cg@exept.de>
Thu, 14 Nov 2019 18:18:14 +0100
changeset 19273 a71293ff6016
child 19282 1843509999ca
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 1997 by Claus Gittinger
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	      All Rights Reserved
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Smalltalk }"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
SystemStatusMonitor subclass:#TimerQueueMonitor
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:'timeouts showTime'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Monitors-ST/X'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!TimerQueueMonitor class methodsFor:'documentation'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
copyright
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
 COPYRIGHT (c) 1997 by Claus Gittinger
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	      All Rights Reserved
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 hereby transferred.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
documentation
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    This view shows smalltalk's external stream instances - a debugging tool.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    [disclaimer:]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
        this is based on one of the oldest tools in the system, written in the early 90's.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
        It does in no way reflect the way GUIs are designed/written these days.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
        However, after all those years, they are still very very useful (and not found in many other systems)  
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
        
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    [see also:]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
        Stream ExternalStream
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
        WindowGroup
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
        ProcessMonitor
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
        SemaphoreMonitor OSProcessMonitor
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    [author:]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
        Claus Gittinger
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    [start with:]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
        ExternalStreamMonitor open
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!TimerQueueMonitor class methodsFor:'defaults'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
defaultLabel
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    ^ 'External Streams Monitor'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    "Created: 23.1.1997 / 02:52:53 / cg"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
!TimerQueueMonitor class methodsFor:'menu specs'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
mainMenu
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    "This resource specification was automatically generated
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
     by the MenuEditor of ST/X."
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    "Do not manually edit this!! If it is corrupted,
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
     the MenuEditor may not be able to read the specification."
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    "
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
     MenuEditor new openOnClass:TimerQueueMonitor andSelector:#mainMenu
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
     (Menu new fromLiteralArrayEncoding:(TimerQueueMonitor mainMenu)) startUp
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    "
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    <resource: #menu>
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    ^ 
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
     #(Menu 
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
       (MenuItem
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
          label: 'File'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
          submenuChannel: fileMenu
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
       ) 
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
       (MenuItem
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
          label: 'View'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
          submenuChannel: viewMenu
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
       )
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
     )
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!TimerQueueMonitor methodsFor:'initialization'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
initialize
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
    super initialize.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    showTime := true.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
!TimerQueueMonitor methodsFor:'queries'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
numberOfHeadlines
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    ^ 2 + (showTime == true ifTrue:1 ifFalse:0)
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    "Modified: / 29-10-2018 / 15:24:14 / Claus Gittinger"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
!TimerQueueMonitor methodsFor:'updating'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
titleLine
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
    ^ 'When       Process                                  Action/Semaphore'.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
    
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
    "
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
     TimeQueueMonitor open
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
    "
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
updateList
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
    "update list of timeouts"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
    |newInfo t list|
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    shown ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
        newInfo := Processor timeoutList.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
        self updateStatus:newInfo
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
    ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
    self installDelayedUpdate.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    "Modified: / 29-10-2018 / 15:39:43 / Claus Gittinger"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
updateStatus:newInfo
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
    "update status display of timeouts"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
    |numberOfHeadlines newTimeoutList oldList list oldSelection newSelection osTimeStampOfList|
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    newInfo isNil ifTrue:[^ self].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
    shown ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
        osTimeStampOfList := newInfo first.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
        newTimeoutList := newInfo second.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
        newTimeoutList sort:[:t1 :t2 | (t1 at:'time') < (t2 at:'time') ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
        numberOfHeadlines := self numberOfHeadlines.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
        oldList := listView list.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
"/        oldSelection := listView selection.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
"/        oldSelection notNil ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
"/            oldSelection := oldSelection 
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
"/                                select:[:lNr | lNr > numberOfHeadlines]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
"/                                thenCollect:[:lineNr | 
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
"/                                    timeouts at:(lineNr - numberOfHeadlines) ifAbsent:nil 
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
"/                                ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
"/            newSelection := OrderedCollection new.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
"/        ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
        list := OrderedCollection new:(newTimeoutList size + numberOfHeadlines).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
        (showTime == true) ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
            list add:'Time: ',(Time now printString).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
        ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
        list add:self titleLine.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
        list add:(String new:(self titleLine size+20) withAll:$-).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
        newTimeoutList notNil ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
            newTimeoutList do:[:aTimeout |
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
                |time process processName action actionName sema semaName deltaTime
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
                 color line|
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
                time := aTimeout at:'time'.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
                action := aTimeout at:'action'.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
                process := aTimeout at:'process'.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
                sema := aTimeout at:'sema'.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
                processName := process isNil ifTrue:[''] ifFalse:[process name].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
                actionName := action isNil ifTrue:[''] ifFalse:[action printString].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
                semaName := sema isNil ifTrue:[''] ifFalse:[sema displayString].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
                deltaTime := TimeDuration milliseconds:(time - osTimeStampOfList).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
                line := (deltaTime printString) paddedTo:10.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
                line := line , ' ' , ((processName contractTo:40) paddedTo:40).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
                action notNil ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
                    line := line , ' ' , ((actionName contractTo:40) paddedTo:40).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
                ] ifFalse:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
                    line := line , ' ' , ((semaName contractTo:40) paddedTo:40).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
                ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
    "/            isOpen ifFalse:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    "/                color := Color red.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    "/            ] ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
    "/                color := Color blue.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    "/            ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    "/            line := line withColor:color.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
                list add:line.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
    "/            oldSelection notNil ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    "/                (oldSelection includesIdentical:aStream) ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
    "/                    newSelection add:list size.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    "/                ]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
    "/            ]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
            ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
        ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
        "avoid flicker"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
        (oldList notNil and:[oldList size == list size]) ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
            list keysAndValuesDo:[:idx :entry |
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
                (oldList at:idx) ~= entry ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
                    listView at:idx put:entry
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
                ]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
            ]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
        ] ifFalse:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
            listView setList:list.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
            "the first few entries cannot be selected"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
            1 to:numberOfHeadlines do:[:lNr | listView attributeAt:lNr put:#disabled].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
        ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
        newSelection notNil ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
            listView selectWithoutScroll:newSelection
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
        ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
        listView flush
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
    ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
    self installDelayedUpdate.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
    "Modified: / 11-10-2017 / 13:56:14 / cg"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    "Modified: / 07-06-2019 / 22:10:36 / Claus Gittinger"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
!TimerQueueMonitor class methodsFor:'documentation'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
version_CVS
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
    ^ '$Header$'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240