Tools__ToDoList.st
author Claus Gittinger <cg@exept.de>
Mon, 23 Oct 2006 22:40:44 +0200
changeset 7458 79c0991c5a2e
parent 7445 4cbf885e5bb1
child 7731 3b6a3bb02598
permissions -rw-r--r--
background revalidation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7445
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libtool' }"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Tools }"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
List subclass:#ToDoList
7458
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
     6
	instanceVariableNames:'validationPending validationProcess validationInvalid'
7445
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:'TheOneAndOnlyToDoList WarningSeverity ErrorSeverity InfoSeverity'
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'Interface-Smalltalk-ToDo'
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!ToDoList class methodsFor:'accessing'!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
theOneAndOnlyToDoList
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    TheOneAndOnlyToDoList isNil ifTrue:[
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
        TheOneAndOnlyToDoList := self new.
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    ].
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
    ^ TheOneAndOnlyToDoList
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    "
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
     TheOneAndOnlyToDoList := nil
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    "
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    "Created: / 21-10-2006 / 20:57:48 / cg"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
    "Modified: / 21-10-2006 / 23:06:27 / cg"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
! !
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!ToDoList class methodsFor:'class initialization'!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
initialize
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
    WarningSeverity := 1.
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    ErrorSeverity := 2.
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
    InfoSeverity := 0.
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
    "
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
     TheOneAndOnlyToDoList := nil.
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
     self initialize
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
    "
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    "Created: / 21-10-2006 / 19:43:37 / cg"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    "Modified: / 21-10-2006 / 22:11:40 / cg"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
! !
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!ToDoList class methodsFor:'constants'!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
errorSeverity
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    ^ ErrorSeverity
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
highPriority
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    ^ 75
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    "Created: / 21-10-2006 / 20:43:56 / cg"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
highestPriority
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    ^ 100
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    "Created: / 21-10-2006 / 20:43:24 / cg"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
infoSeverity
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    ^ InfoSeverity
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
lowPriority
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    ^ 25
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    "Created: / 21-10-2006 / 20:43:42 / cg"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
mediumPriority
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    ^ 50
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    "Created: / 21-10-2006 / 20:43:37 / cg"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
warningSeverity
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    ^ WarningSeverity
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
! !
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!ToDoList methodsFor:'accessing'!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
add:anEntry
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    (anEntry isAlreadyPresentIn:self) ifFalse:[
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
        anEntry list:self.
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
        super add:anEntry.
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
        Smalltalk addDependent:self.
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    ].
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    "Created: / 21-10-2006 / 21:14:42 / cg"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    "Modified: / 21-10-2006 / 23:03:13 / cg"
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
! !
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!ToDoList methodsFor:'change & update'!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
revalidate
7458
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
    99
    |wasPending|
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   100
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   101
    [
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   102
        wasPending := validationPending ? false.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   103
        validationPending := true.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   104
        wasPending ifTrue:[
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   105
            validationInvalid := true
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   106
        ].
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   107
    ] valueUninterruptably.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   108
    wasPending ifTrue:[^ self].
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   109
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   110
    validationProcess := 
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   111
        [
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   112
            [
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   113
                |index entry|
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   114
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   115
                validationInvalid := false.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   116
                index := 1.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   117
                [index <= self size] whileTrue:[
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   118
                    entry := self at:index.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   119
                    entry revalidate.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   120
                    index <= self size ifTrue:[
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   121
                        (self at:index) == entry ifTrue:[
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   122
                            "/ it did not remove itself
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   123
                            index := index + 1
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   124
                        ].
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   125
                    ].
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   126
                    validationInvalid ifTrue:[
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   127
                        validationInvalid := false.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   128
                        index := 1.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   129
                    ].
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   130
                ].
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   131
            ] ensure:[
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   132
                validationPending := false.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   133
                validationProcess := nil.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   134
                validationInvalid := false.
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   135
            ].
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   136
        ] fork.
7445
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    "Created: / 21-10-2006 / 23:02:34 / cg"
7458
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   139
    "Modified: / 23-10-2006 / 22:40:11 / cg"
7445
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
update:something with:aParameter from:changedObject
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
     changedObject == Smalltalk ifTrue:[
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
        something == #methodTrap ifTrue:[^ self].
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
        self revalidate.
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
        ^ self.
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    ].
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
    ^ super update:something with:aParameter from:changedObject
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    "Created: / 21-10-2006 / 23:02:05 / cg"
7458
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   151
    "Modified: / 23-10-2006 / 22:20:52 / cg"
7445
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
! !
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
!ToDoList class methodsFor:'documentation'!
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
version
7458
79c0991c5a2e background revalidation
Claus Gittinger <cg@exept.de>
parents: 7445
diff changeset
   157
    ^ '$Header: /cvs/stx/stx/libtool/Tools__ToDoList.st,v 1.2 2006-10-23 20:40:44 cg Exp $'
7445
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
! !
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
4cbf885e5bb1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
ToDoList initialize!