TimerQueueMonitor.st
author Claus Gittinger <cg@exept.de>
Mon, 20 Jan 2020 21:02:47 +0100
changeset 19422 c6ca1c3e0fd7
parent 19355 9c9de5c6d3a4
child 19451 e8bfea2a72f7
permissions -rw-r--r--
#REFACTORING by exept class: MultiViewToolApplication added: #askForFile:default:forSave:thenDo: changed: #askForFile:default:thenDo: #askForFile:thenDo: #menuSaveAllAs #menuSaveAs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
     1
"{ Encoding: utf8 }"
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
     2
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
 COPYRIGHT (c) 1997 by Claus Gittinger
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	      All Rights Reserved
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 This software is furnished under a license and may be used
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
 hereby transferred.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ Package: 'stx:libtool' }"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
"{ NameSpace: Smalltalk }"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
SystemStatusMonitor subclass:#TimerQueueMonitor
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	instanceVariableNames:'timeouts showTime'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	classVariableNames:''
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	poolDictionaries:''
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	category:'Monitors-ST/X'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!TimerQueueMonitor class methodsFor:'documentation'!
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
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
 COPYRIGHT (c) 1997 by Claus Gittinger
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	      All Rights Reserved
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 This software is furnished under a license and may be used
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 only in accordance with the terms of that license and with the
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 be provided or otherwise made available to, or used by, any
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
 other person.  No title to or ownership of the software is
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 hereby transferred.
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
!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
documentation
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    This view shows smalltalk's external stream instances - a debugging tool.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    [disclaimer:]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
        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
    49
        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
    50
        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
    51
        
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    [see also:]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
        Stream ExternalStream
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
        WindowGroup
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
        ProcessMonitor
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
        SemaphoreMonitor OSProcessMonitor
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    [author:]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
        Claus Gittinger
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    [start with:]
19355
9c9de5c6d3a4 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 19284
diff changeset
    62
        TimerQueueMonitor open
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!TimerQueueMonitor class methodsFor:'defaults'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
defaultLabel
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
    69
    ^ 'TimerQueue Monitor'
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    "Created: 23.1.1997 / 02:52:53 / cg"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
!TimerQueueMonitor class methodsFor:'menu specs'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
mainMenu
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    "This resource specification was automatically generated
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
     by the MenuEditor of ST/X."
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    "Do not manually edit this!! If it is corrupted,
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
     the MenuEditor may not be able to read the specification."
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    "
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
     MenuEditor new openOnClass:TimerQueueMonitor andSelector:#mainMenu
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
     (Menu new fromLiteralArrayEncoding:(TimerQueueMonitor mainMenu)) startUp
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    "
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    <resource: #menu>
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    ^ 
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
     #(Menu 
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
       (MenuItem
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
          label: 'File'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
          submenuChannel: fileMenu
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
       ) 
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
       (MenuItem
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
          label: 'View'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
          submenuChannel: viewMenu
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
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
!TimerQueueMonitor methodsFor:'initialization'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
initialize
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    super initialize.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    showTime := true.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   111
!TimerQueueMonitor methodsFor:'menu'!
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   112
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   113
browseAction
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   114
    self selectedEntriesDo:[:entry |
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   115
        |action|
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   116
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   117
        (action := entry at:'action' ifAbsent:[nil]) notNil ifTrue:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   118
            |home mthd|
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   119
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   120
            (home := action home) notNil ifTrue:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   121
                (mthd := home method) notNil ifTrue:[      
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   122
                    SystemBrowser default openInClass:mthd mclass selector:mthd selector
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   123
                ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   124
            ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   125
        ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   126
    ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   127
!
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   128
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   129
debugProcess
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   130
    self selectedEntriesDo:[:entry |
19284
c4888f8cc28b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19283
diff changeset
   131
        |process sema|
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   132
19284
c4888f8cc28b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19283
diff changeset
   133
        (process := entry at:'process' ifAbsent:[nil]) isNil ifTrue:[
c4888f8cc28b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19283
diff changeset
   134
            (sema := entry at:'sema' ifAbsent:[nil]) notNil ifTrue:[
c4888f8cc28b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19283
diff changeset
   135
                process := sema waitingProcesses firstIfEmpty:nil
c4888f8cc28b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19283
diff changeset
   136
            ]
c4888f8cc28b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19283
diff changeset
   137
        ].
c4888f8cc28b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19283
diff changeset
   138
        process notNil ifTrue:[
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   139
            Debugger openOn:process
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   140
        ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   141
    ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   142
!
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   143
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   144
inspectProcess
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   145
    self selectedEntriesDo:[:entry |
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   146
        |process|
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   147
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   148
        (process := entry at:'process' ifAbsent:[nil]) notNil ifTrue:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   149
            process inspect.
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   150
        ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   151
    ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   152
!
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   153
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   154
inspectSemaphore
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   155
    self selectedEntriesDo:[:entry |
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   156
        |sema|
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   157
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   158
        (sema := entry at:'sema' ifAbsent:[nil]) notNil ifTrue:[
19284
c4888f8cc28b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19283
diff changeset
   159
            sema inspect.
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   160
        ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   161
    ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   162
!
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   163
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   164
selectedEntriesDo:aBlock
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   165
    |t sel|
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   166
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   167
    [
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   168
        t := timeouts copy.
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   169
        sel := listView selection
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   170
    ] valueUninterruptably.
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   171
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   172
    (sel ? #()) do:[:eachIndex |
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   173
        |entry|
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   174
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   175
        entry := t at:(eachIndex - self numberOfHeadlines) ifAbsent:[nil].
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   176
        aBlock value:entry
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   177
    ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   178
!
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   179
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   180
statusMenu
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   181
    "return a popUpMenu"
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   182
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   183
    <resource: #programMenu>
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   184
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   185
    |labels selectors m|
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   186
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   187
    labels := resources array:#(
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   188
                         'Inspect Semaphore'
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   189
                         'Inspect Process'
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   190
                         '-'
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   191
                         'Debug Process'
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   192
                         'Browse Action'
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   193
                        ).
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   194
    selectors := #(
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   195
                         inspectSemaphore
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   196
                         inspectProcess
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   197
                         nil
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   198
                         debugProcess
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   199
                         browseAction
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   200
                        ).
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   201
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   202
    m := PopUpMenu labels:labels
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   203
                   selectors:selectors.
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   204
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   205
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   206
    listView hasSelection ifFalse:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   207
        m disableAll:#(
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   208
                         inspectSemaphore
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   209
                         inspectProcess
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   210
                         debugProcess
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   211
                         browseAction
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   212
                      )
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   213
    ].
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   214
    ^ m
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   215
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   216
    "Modified: / 17-06-1998 / 14:17:05 / cg"
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   217
    "Modified: / 23-02-2017 / 15:18:50 / stefan"
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   218
! !
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   219
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
!TimerQueueMonitor methodsFor:'queries'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
numberOfHeadlines
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
    ^ 2 + (showTime == true ifTrue:1 ifFalse:0)
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
    "Modified: / 29-10-2018 / 15:24:14 / Claus Gittinger"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
!TimerQueueMonitor methodsFor:'updating'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
titleLine
19355
9c9de5c6d3a4 #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 19284
diff changeset
   231
    ^ 'When        Process                                  Action/Semaphore'.
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    "
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
     TimeQueueMonitor open
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
    "
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
updateList
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
    "update list of timeouts"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    |newInfo t list|
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
    shown ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
        newInfo := Processor timeoutList.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
        self updateStatus:newInfo
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
    ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
    self installDelayedUpdate.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
    "Modified: / 29-10-2018 / 15:39:43 / Claus Gittinger"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
updateStatus:newInfo
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
    "update status display of timeouts"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   255
    |numberOfHeadlines newTimeoutList oldList list 
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   256
     oldSelection newSelection osTimeStampOfList|
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
    newInfo isNil ifTrue:[^ self].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
    shown ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
        osTimeStampOfList := newInfo first.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
        newTimeoutList := newInfo second.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
        newTimeoutList sort:[:t1 :t2 | (t1 at:'time') < (t2 at:'time') ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
        numberOfHeadlines := self numberOfHeadlines.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
        oldList := listView list.
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   267
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   268
        oldSelection := listView selection.
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   269
        oldSelection notNil ifTrue:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   270
            oldSelection := oldSelection 
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   271
                                select:[:lNr | lNr > numberOfHeadlines]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   272
                                thenCollect:[:lineNr | 
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   273
                                    timeouts at:(lineNr - numberOfHeadlines) ifAbsent:nil 
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   274
                                ].
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   275
            newSelection := OrderedCollection new.
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   276
        ].
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
        list := OrderedCollection new:(newTimeoutList size + numberOfHeadlines).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
        (showTime == true) ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
            list add:'Time: ',(Time now printString).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
        ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
        list add:self titleLine.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
        list add:(String new:(self titleLine size+20) withAll:$-).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
        newTimeoutList notNil ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
            newTimeoutList do:[:aTimeout |
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
                |time process processName action actionName sema semaName deltaTime
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   288
                 color line millis|
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
                time := aTimeout at:'time'.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
                action := aTimeout at:'action'.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
                process := aTimeout at:'process'.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
                sema := aTimeout at:'sema'.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
19283
6be91d6c13b8 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19282
diff changeset
   295
                process isNil ifTrue:[
6be91d6c13b8 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19282
diff changeset
   296
                    sema notNil ifTrue:[
6be91d6c13b8 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19282
diff changeset
   297
                        process := sema waitingProcesses firstIfEmpty:nil
6be91d6c13b8 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19282
diff changeset
   298
                    ]
6be91d6c13b8 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19282
diff changeset
   299
                ].
6be91d6c13b8 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19282
diff changeset
   300
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
                processName := process isNil ifTrue:[''] ifFalse:[process name].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
                actionName := action isNil ifTrue:[''] ifFalse:[action printString].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
                semaName := sema isNil ifTrue:[''] ifFalse:[sema displayString].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   305
                millis := (time - osTimeStampOfList).
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   306
                millis > 1000 ifTrue:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   307
                    millis > 2000 ifTrue:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   308
                        millis > 5000 ifTrue:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   309
                            millis := millis roundTo:500.
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   310
                        ] ifFalse:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   311
                            millis := millis roundTo:100.
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   312
                        ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   313
                    ] ifFalse:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   314
                        millis := millis roundTo:10
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   315
                    ].
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   316
                ].
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   317
                deltaTime := TimeDuration milliseconds:millis.
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
19284
c4888f8cc28b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19283
diff changeset
   319
                line := (deltaTime printString) paddedTo:11.
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
                line := line , ' ' , ((processName contractTo:40) paddedTo:40).
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
                action notNil ifTrue:[
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   322
                    line := line , ' ' , (actionName contractTo:50) .
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
                ] ifFalse:[
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   324
                    line := line , ' ' , (semaName contractTo:50).
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
                ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
    "/            isOpen ifFalse:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   328
    "/                color := Color red.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   329
    "/            ] ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
    "/                color := Color blue.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
    "/            ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
    "/            line := line withColor:color.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
                list add:line.
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   335
                oldSelection notNil ifTrue:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   336
                    (oldSelection contains:[:tmo | 
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   337
                                    (tmo at:'process') == process
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   338
                                      and:[ (tmo at:'action') == action
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   339
                                      and:[ (tmo at:'sema') == sema ]]]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   340
                    ) ifTrue:[
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   341
                        newSelection add:list size.
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   342
                    ]
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   343
                ]
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
            ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
        ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
        "avoid flicker"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
        (oldList notNil and:[oldList size == list size]) ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
            list keysAndValuesDo:[:idx :entry |
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
                (oldList at:idx) ~= entry ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
                    listView at:idx put:entry
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
                ]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
            ]
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
        ] ifFalse:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
            listView setList:list.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
            "the first few entries cannot be selected"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
            1 to:numberOfHeadlines do:[:lNr | listView attributeAt:lNr put:#disabled].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
        ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
        newSelection notNil ifTrue:[
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
            listView selectWithoutScroll:newSelection
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
        ].
19282
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   362
        listView flush.
1843509999ca #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19273
diff changeset
   363
        timeouts := newTimeoutList.
19273
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
    ].
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
    self installDelayedUpdate.
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
    "Modified: / 11-10-2017 / 13:56:14 / cg"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
    "Modified: / 07-06-2019 / 22:10:36 / Claus Gittinger"
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
!TimerQueueMonitor class methodsFor:'documentation'!
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
version_CVS
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
    ^ '$Header$'
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
! !
a71293ff6016 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376