Tools__BreakpointBrowser.st
branchjv
changeset 12308 5d9291c0fc27
parent 12292 ecc23f7c8dde
child 12401 4714b9640528
--- a/Tools__BreakpointBrowser.st	Fri Nov 30 14:25:59 2012 +0000
+++ b/Tools__BreakpointBrowser.st	Fri Nov 30 17:23:39 2012 +0000
@@ -17,8 +17,9 @@
 	instanceVariableNames:'updatingLabelShown breakpointList shownCopyOfBreakpointList
 		selectionIndexHolder currentSortColumn currentSortIsReverse
 		showHalts showOthers showAssertions showCodeBreakpoints
-		showCodeBreakpointsFor showMethodBreakpoints showDebugCode
-		codeView infoHolder updateProcess showWhichHaltsHolder'
+		showCodeBreakpointsFor showMethodBreakpoints showLineBreakpoints
+		showDebugCode codeView infoHolder updateProcess
+		showWhichHaltsHolder'
 	classVariableNames:'MessagesAndTypes'
 	poolDictionaries:''
 	category:'Interface-Smalltalk-Breakpoints'
@@ -31,6 +32,13 @@
 	privateIn:BreakpointBrowser
 !
 
+BreakpointBrowser::BreakpointListEntry subclass:#BreakpointListEntryForLineBreak
+	instanceVariableNames:'breakPoint'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:BreakpointBrowser
+!
+
 RBProgramNodeVisitor subclass:#MessageArgumentExtractor
 	instanceVariableNames:'callBack selectorToSearch'
 	classVariableNames:''
@@ -154,7 +162,7 @@
                     hasHorizontalScrollBar: true
                     hasVerticalScrollBar: true
                     hasKeyboardFocusInitially: false
-                    viewClassName: 'CodeView'
+                    viewClassName: 'codeViewClass'
                     postBuildCallback: postBuildCodeView:
                   )
                  )
@@ -167,7 +175,7 @@
               name: 'Label1'
               layout: (LayoutFrame 0 0 40 0 0 1 0 1)
               visibilityChannel: updatingLabelShown
-              backgroundColor: (Color 100.0 49.999237048905 49.999237048905)
+              backgroundColor: (Color 100.0 49.9992370489052 49.9992370489052)
               translateLabel: true
             )
            (ViewSpec
@@ -205,6 +213,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:Tools::BreakpointBrowser andSelector:#itemMenu
      (Menu new fromLiteralArrayEncoding:(Tools::BreakpointBrowser itemMenu)) startUp
@@ -218,7 +227,6 @@
          (MenuItem
             label: 'Browse'
             itemValue: browseSelectedItem
-            translateLabel: true
           )
          (MenuItem
             label: '-'
@@ -227,7 +235,11 @@
             enabled: selectedItemIsIgnoredHalt
             label: 'Stop Ignoring this Halt'
             itemValue: reenableHalt
-            translateLabel: true
+          )
+         (MenuItem
+            enabled: selectedItemIsEnabledLineBreak
+            label: 'Disable this Breakpoint'
+            itemValue: disableLineBreak
           )
          )
         nil
@@ -242,6 +254,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:Tools::BreakpointBrowser andSelector:#mainMenu
      (Menu new fromLiteralArrayEncoding:(Tools::BreakpointBrowser mainMenu)) startUp
@@ -254,14 +267,12 @@
         (
          (MenuItem
             label: 'File'
-            translateLabel: true
             submenu: 
            (Menu
               (
                (MenuItem
                   label: 'Exit'
                   itemValue: closeRequest
-                  translateLabel: true
                 )
                )
               nil
@@ -270,7 +281,6 @@
           )
          (MenuItem
             label: 'Selection'
-            translateLabel: true
             submenu: 
            (Menu
               (
@@ -278,7 +288,6 @@
                   enabled: hasSelectionHolder
                   label: 'Browse'
                   itemValue: browseSelectedItem
-                  translateLabel: true
                 )
                )
               nil
@@ -287,14 +296,13 @@
           )
          (MenuItem
             label: 'View'
-            translateLabel: true
             submenu: 
            (Menu
               (
                (MenuItem
-                  label: 'Update List'
-                  itemValue: updateList
-                  translateLabel: true
+                  label: 'Toggle all'
+                  itemValue: toggleAllShownTypes
+                  hideMenuOnActivated: false
                 )
                (MenuItem
                   label: '-'
@@ -302,42 +310,36 @@
                (MenuItem
                   label: 'Assertions'
                   itemValue: showAssertions:
-                  translateLabel: true
                   hideMenuOnActivated: false
                   indication: showAssertions
                 )
                (MenuItem
                   label: 'Halts'
                   itemValue: showHalts:
-                  translateLabel: true
                   hideMenuOnActivated: false
                   indication: showHalts
                 )
                (MenuItem
                   enabled: showHalts
                   label: ' '
-                  translateLabel: true
                   submenu: 
                  (Menu
                     (
                      (MenuItem
                         label: 'All Halts'
                         nameKey: AllHalts
-                        translateLabel: true
                         choice: showWhichHaltsHolder
                         choiceValue: all
                       )
                      (MenuItem
                         label: 'Enabled Halts'
                         nameKey: EnabledHalts
-                        translateLabel: true
                         choice: showWhichHaltsHolder
                         choiceValue: enabled
                       )
                      (MenuItem
                         label: 'Ignored Halts'
                         nameKey: IgnoredHalts
-                        translateLabel: true
                         choice: showWhichHaltsHolder
                         choiceValue: ignored
                       )
@@ -347,29 +349,25 @@
                   )
                 )
                (MenuItem
-                  label: 'Code Breakpoints'
+                  label: 'Coded Breakpoints'
                   itemValue: showCodeBreakpoints:
-                  translateLabel: true
                   hideMenuOnActivated: false
                   indication: showCodeBreakpoints
                 )
                (MenuItem
                   enabled: showCodeBreakpoints
                   label: ' '
-                  translateLabel: true
                   submenuChannel: codeBreakpointMenu
                 )
                (MenuItem
                   label: 'Debug Code'
                   itemValue: showDebugCode:
-                  translateLabel: true
                   hideMenuOnActivated: false
                   indication: showDebugCode
                 )
                (MenuItem
                   label: 'Other Debug Messages'
                   itemValue: showOthers:
-                  translateLabel: true
                   hideMenuOnActivated: false
                   indication: showOthers
                 )
@@ -379,10 +377,22 @@
                (MenuItem
                   label: 'Method Breakpoints'
                   itemValue: showMethodBreakpoints:
-                  translateLabel: true
                   hideMenuOnActivated: false
                   indication: showMethodBreakpoints
                 )
+               (MenuItem
+                  label: 'Line Breakpoints'
+                  itemValue: showLineBreakpoints:
+                  hideMenuOnActivated: false
+                  indication: showLineBreakpoints
+                )
+               (MenuItem
+                  label: '-'
+                )
+               (MenuItem
+                  label: 'Update List'
+                  itemValue: updateList
+                )
                )
               nil
               nil
@@ -390,21 +400,18 @@
           )
          (MenuItem
             label: 'Enable'
-            translateLabel: true
             submenu: 
            (Menu
               (
                (MenuItem
                   label: 'Assertions'
                   itemValue: enableAssertions:
-                  translateLabel: true
                   hideMenuOnActivated: false
                   indication: enableAssertions
                 )
                (MenuItem
                   label: 'Halts'
                   itemValue: enableHalts:
-                  translateLabel: true
                   hideMenuOnActivated: false
                   indication: enableHalts
                 )
@@ -412,8 +419,7 @@
                   label: '-'
                 )
                (MenuItem
-                  label: 'Code Breakpoints'
-                  translateLabel: true
+                  label: 'Coded Breakpoints'
                   submenuChannel: enabledCodeBreakpointMenu
                 )
                )
@@ -423,7 +429,6 @@
           )
          (MenuItem
             label: 'Help'
-            translateLabel: true
             startGroup: right
             submenu: 
            (Menu
@@ -431,7 +436,6 @@
                (MenuItem
                   label: 'Documentation'
                   itemValue: openDocumentation
-                  translateLabel: true
                 )
                (MenuItem
                   label: '-'
@@ -439,7 +443,6 @@
                (MenuItem
                   label: 'About this Application...'
                   itemValue: openAboutThisApplication
-                  translateLabel: true
                 )
                )
               nil
@@ -459,6 +462,7 @@
     "Do not manually edit this!! If it is corrupted,
      the MenuEditor may not be able to read the specification."
 
+
     "
      MenuEditor new openOnClass:Tools::BreakpointBrowser andSelector:#toolBarMenu
      (Menu new fromLiteralArrayEncoding:(Tools::BreakpointBrowser toolBarMenu)) startUp
@@ -466,13 +470,12 @@
 
     <resource: #menu>
 
-    ^
+    ^ 
      #(Menu
         (
          (MenuItem
             label: 'Update List'
             itemValue: updateList
-            translateLabel: true
             isButton: true
             labelImage: (ResourceRetriever ToolbarIconLibrary reloadIcon)
           )
@@ -483,7 +486,6 @@
             enabled: hasSelectionHolder
             label: 'Browse Selected Method'
             itemValue: browseSelectedItem
-            translateLabel: true
             isButton: true
             labelImage: (ResourceRetriever ToolbarIconLibrary startNewSystemBrowserIcon)
           )
@@ -491,8 +493,6 @@
         nil
         nil
       )
-
-    "Modified: / 08-11-2011 / 16:43:49 / cg"
 ! !
 
 !BreakpointBrowser class methodsFor:'tableColumns specs'!
@@ -782,7 +782,7 @@
 !
 
 messagesAndTypes
-    "the spec of selectors to offer"
+    "the spec of selectors to search for coded breakpoints"
 
     ^ MessagesAndTypes
 !
@@ -849,6 +849,13 @@
     "Created: / 22-10-2006 / 02:00:41 / cg"
 !
 
+selectedItemIsEnabledLineBreak
+    |entry|
+
+    entry := (self breakpointListEntryAtIndex:self selectionIndexHolder value).
+    ^ entry isLineBreakpoint and:[entry breakPoint isEnabled]
+!
+
 selectedItemIsIgnoredHalt
     |entry info|
 
@@ -903,6 +910,15 @@
     self updateShownBreakpointList
 !
 
+showLineBreakpoints
+    ^ showLineBreakpoints ? true
+!
+
+showLineBreakpoints:aBoolean
+    showLineBreakpoints := aBoolean.
+    self updateShownBreakpointList
+!
+
 showMethodBreakpoints
     ^ showMethodBreakpoints ? true
 !
@@ -964,6 +980,9 @@
     self showMethodBreakpoints ifFalse:[
         newList := newList reject:[:entry | entry isMethodBreakpoint].
     ].
+    self showLineBreakpoints ifFalse:[
+        newList := newList reject:[:entry | entry isLineBreakpoint].
+    ].
     self showAssertions ifFalse:[
         newList := newList reject:[:entry | entry isAssertion].
     ].
@@ -1208,10 +1227,11 @@
         aBlock value:entry 
     ].
 
-    (mthd literalsDetect:[:lit |messageSelectors includes:lit] ifNone:nil) notNil ifTrue:[
-        messagesSent isNil ifTrue:[
-            messagesSent := mthd messagesSent.
-        ].
+    (mthd literalsDetect:[:lit | 
+        (messageSelectors includes:lit)
+        or:[lit class == Breakpoint]
+    ] ifNone:nil) notNil ifTrue:[
+        messagesSent := mthd messagesSent.
 
         messages pairsDo:[:bpSel :type|
             |tree extractor|
@@ -1271,11 +1291,35 @@
                 ]
             ].
         ].
+
+        mthd literalsDo:[:lit | 
+            lit class == Breakpoint ifTrue:[
+                entry := BreakpointListEntryForLineBreak new.
+                entry
+                    type:#line
+                    arg:nil
+                    className:cls name
+                    selector:sel
+                    lineNumber:(lit line)
+                    info:nil
+                    enabled:true.
+                entry breakPoint:lit.
+                aBlock value:entry 
+            ]
+        ].        
     ].
 ! !
 
 !BreakpointBrowser methodsFor:'initialization & release'!
 
+codeViewClass
+    "the type of codeview to use"
+
+    ^ UserPreferences current useCodeView2
+        ifTrue:[ Tools::CodeView2 ]
+        ifFalse:[ CodeView ]
+!
+
 initialize
     super initialize.
 
@@ -1311,16 +1355,6 @@
     super release
 ! !
 
-!BreakpointBrowser methodsFor:'menu actions'!
-
-openDocumentation
-    HTMLDocumentView openFullOnDocumentationFile:'tools/misc/TOP.html#BREAKPOINTLIST'.
-
-    "/ add application-specific help files under the 'doc/online/<language>/help/appName'
-    "/ directory, and open a viewer with:
-    "/ HTMLDocumentView openFullOnDocumentationFile:'help/<MyApplication>/TOP.html'.
-! !
-
 !BreakpointBrowser methodsFor:'menu actions-item'!
 
 browseItem
@@ -1532,6 +1566,10 @@
     "Modified: / 18-02-2007 / 12:56:30 / cg"
 !
 
+disableLineBreak
+    (self selectedBreakpointListEntry) breakPoint disable
+!
+
 itemDoubleClicked:itemIndex
     self browseSelectedItem
 
@@ -1539,6 +1577,10 @@
     "Modified: / 18-02-2007 / 12:56:30 / cg"
 !
 
+openDocumentation
+    HTMLDocumentView openFullOnDocumentationFile:'tools/misc/TOP.html#BREAKPOINTLIST'.
+!
+
 resort
     |sortBlock sortBlock1|
 
@@ -1609,6 +1651,16 @@
     self resort.
 
     "Created: / 25-10-2006 / 00:54:59 / cg"
+!
+
+toggleAllShownTypes
+    self showAssertions:(self showAssertions not).
+    self showHalts:(self showHalts not).
+    self showCodeBreakpoints:(self showCodeBreakpoints not).
+    self showDebugCode:(self showDebugCode not).
+    self showLineBreakpoints:(self showLineBreakpoints not).
+    self showMethodBreakpoints:(self showMethodBreakpoints not).
+    self showOthers:(self showOthers not).
 ! !
 
 !BreakpointBrowser::BreakpointListEntry methodsFor:'accessing'!
@@ -1681,6 +1733,7 @@
 !BreakpointBrowser::BreakpointListEntry methodsFor:'testing'!
 
 isAssertion
+
     ^ type == #assertion
 !
 
@@ -1696,6 +1749,10 @@
     ^ type == #halt
 !
 
+isLineBreakpoint
+    ^ type == #line
+!
+
 isMethodBreakpoint
     ^ type == #wrap
 !
@@ -1704,6 +1761,18 @@
     ^ type == #other
 ! !
 
+!BreakpointBrowser::BreakpointListEntryForLineBreak methodsFor:'accessing'!
+
+breakPoint
+    "return the BreakPoint-instance"
+
+    ^ breakPoint
+!
+
+breakPoint:something
+    breakPoint := something.
+! !
+
 !BreakpointBrowser::MessageArgumentExtractor methodsFor:'accessing'!
 
 callBack:something
@@ -1767,15 +1836,15 @@
 !BreakpointBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointBrowser.st,v 1.29 2012/09/09 18:49:45 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointBrowser.st,v 1.39 2012/11/04 14:02:58 cg Exp $'
 !
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libtool/Tools__BreakpointBrowser.st,v 1.29 2012/09/09 18:49:45 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libtool/Tools__BreakpointBrowser.st,v 1.39 2012/11/04 14:02:58 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: Tools__BreakpointBrowser.st 8054 2012-09-13 09:15:20Z vranyj1 $'
+    ^ '$Id: Tools__BreakpointBrowser.st 8074 2012-11-30 17:23:39Z vranyj1 $'
 ! !
 
 BreakpointBrowser initialize!