*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Wed, 27 Feb 2008 17:13:10 +0100
changeset 7986 ecee84d41552
parent 7985 96270f424059
child 7987 52e27283eee6
*** empty log message ***
Tools__ToDoListBrowser.st
--- a/Tools__ToDoListBrowser.st	Wed Feb 27 13:25:40 2008 +0100
+++ b/Tools__ToDoListBrowser.st	Wed Feb 27 17:13:10 2008 +0100
@@ -135,8 +135,8 @@
      the MenuEditor may not be able to read the specification."
 
     "
-     MenuEditor new openOnClass:ToDoListBrowser andSelector:#itemMenu
-     (Menu new fromLiteralArrayEncoding:(ToDoListBrowser itemMenu)) startUp
+     MenuEditor new openOnClass:Tools::ToDoListBrowser andSelector:#itemMenu
+     (Menu new fromLiteralArrayEncoding:(Tools::ToDoListBrowser itemMenu)) startUp
     "
 
     <resource: #menu>
@@ -157,6 +157,16 @@
             itemValue: removeItem
             translateLabel: true
           )
+         (MenuItem
+            label: 'Remove all Items for this Class'
+            itemValue: removeItemsForClass
+            translateLabel: true
+          )
+         (MenuItem
+            label: 'Remove all Items for this Class and its Private Classes'
+            itemValue: removeItemsForClassOrPrivateClass
+            translateLabel: true
+          )
          )
         nil
         nil
@@ -319,6 +329,14 @@
     "Modified: / 21-10-2006 / 21:14:31 / cg"
 !
 
+selectedTodoListEntry
+    ^ self todoListEntryAtIndex:(self selectionIndex).
+!
+
+selectionIndex
+    ^ self selectionIndexHolder value
+!
+
 selectionIndexHolder
     selectionIndexHolder isNil ifTrue:[
         selectionIndexHolder := nil asValue.
@@ -344,6 +362,10 @@
     ^ toDoList
 
     "Created: / 21-10-2006 / 20:57:18 / cg"
+!
+
+todoListEntryAtIndex:idx
+    ^ shownCopyOfToDoList at:idx
 ! !
 
 !ToDoListBrowser methodsFor:'change & update'!
@@ -448,37 +470,11 @@
     "Created: / 22-10-2006 / 00:02:15 / cg"
 !
 
-menuSave
-    "This method was generated by the Browser.
-     It will be invoked when the menu-item 'save' is selected."
-
-    "/ change below and add any actions as required here ...
-    self warn:'no action for ''save'' defined.'.
-!
-
-menuSaveAs
-    "This method was generated by the Browser.
-     It will be invoked when the menu-item 'saveAs' is selected."
-
-    "/ change below and add any actions as required here ...
-    self warn:'no action for ''saveAs'' defined.'.
-!
-
 openAboutThisApplication
-    "This method was generated by the Browser.
-     It will be invoked when the menu-item 'help-about' is selected."
-
-    "/ could open a customized aboutBox here ...
     super openAboutThisApplication
 !
 
 openDocumentation
-    "This method was generated by the Browser.
-     It will be invoked when the menu-item 'help-documentation' is selected."
-
-    "/ change below as required ...
-
-    "/ to open an HTML viewer on some document (under 'doc/online/<language>/' ):
     HTMLDocumentView openFullOnDocumentationFile:'tools\misc\TOP.html#TODOLIST'.
 
     "/ add application-specific help files under the 'doc/online/<language>/help/appName'
@@ -489,23 +485,46 @@
 !ToDoListBrowser methodsFor:'menu actions-item'!
 
 browseItem
-    (shownCopyOfToDoList at:self selectionIndexHolder value) browse
+    (self todoListEntryAtIndex:self selectionIndexHolder value) browse
 
     "Created: / 22-10-2006 / 02:00:20 / cg"
     "Modified: / 18-02-2007 / 12:56:49 / cg"
 !
 
 removeItem
-    toDoList remove:(shownCopyOfToDoList at:self selectionIndexHolder value)
+    toDoList remove:(self selectedTodoListEntry)
 
     "Created: / 22-10-2006 / 10:45:52 / cg"
     "Modified: / 18-02-2007 / 12:57:58 / cg"
+!
+
+removeItems:entriesToRemove
+    entriesToRemove do:[:entryToRemove |
+        toDoList remove:entryToRemove
+    ].
+!
+
+removeItemsForClass
+    |cls entriesToRemove|
+
+    cls := self selectedTodoListEntry problemClass.
+    entriesToRemove := toDoList select:[:entry | entry problemClass == cls].
+    self removeItems:entriesToRemove
+!
+
+removeItemsForClassOrPrivateClass
+    |cls entriesToRemove|
+
+    cls := self selectedTodoListEntry problemClass.
+    entriesToRemove := toDoList select:[:entry | entry problemClass == cls
+                                                 or:[ entry problemClass topOwningClass == cls]].
+    self removeItems:entriesToRemove
 ! !
 
 !ToDoListBrowser methodsFor:'user actions'!
 
 itemDoubleClicked:itemIndex
-    (shownCopyOfToDoList at:itemIndex) browse
+    (self selectedTodoListEntry) browse
 
     "Created: / 22-10-2006 / 01:49:13 / cg"
     "Modified: / 18-02-2007 / 12:56:30 / cg"
@@ -567,5 +586,5 @@
 !ToDoListBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__ToDoListBrowser.st,v 1.10 2008-01-24 18:29:27 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__ToDoListBrowser.st,v 1.11 2008-02-27 16:13:10 cg Exp $'
 ! !