--- a/Tools__BreakpointBrowser.st Wed Aug 20 22:39:05 2008 +0200
+++ b/Tools__BreakpointBrowser.st Wed Aug 20 23:10:08 2008 +0200
@@ -1,6 +1,6 @@
"
COPYRIGHT (c) 2008 by eXept Software AG
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -9,6 +9,7 @@
other person. No title to or ownership of the software is
hereby transferred.
"
+
"{ Package: 'stx:libtool' }"
"{ NameSpace: Tools }"
@@ -27,14 +28,14 @@
instanceVariableNames:'type arg className selector lineNumber info enabled'
classVariableNames:''
poolDictionaries:''
- privateIn:BreakpointBrowser
+ privateIn:Tools::BreakpointBrowser
!
RBProgramNodeVisitor subclass:#MessageArgumentExtractor
instanceVariableNames:'callBack selectorToSearch'
classVariableNames:''
poolDictionaries:''
- privateIn:BreakpointBrowser
+ privateIn:Tools::BreakpointBrowser
!
!BreakpointBrowser class methodsFor:'documentation'!
@@ -42,7 +43,7 @@
copyright
"
COPYRIGHT (c) 2008 by eXept Software AG
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -58,7 +59,7 @@
tool to list breakpoints (breakPoint/halt/assert)
[author:]
- cg (cg@FUSI)
+ cg (cg@FUSI)
"
! !
@@ -79,67 +80,67 @@
<resource: #canvas>
- ^
+ ^
#(FullSpec
- name: windowSpec
- window:
+ name: windowSpec
+ window:
(WindowSpec
- label: 'Breakpoint Browser'
- name: 'Breakpoint Browser'
- min: (Point 10 10)
- max: (Point 1024 768)
- bounds: (Rectangle 0 0 680 691)
- menu: mainMenu
- )
- component:
+ label: 'Breakpoint Browser'
+ name: 'Breakpoint Browser'
+ min: (Point 10 10)
+ max: (Point 1024 768)
+ bounds: (Rectangle 0 0 680 691)
+ menu: mainMenu
+ )
+ component:
(SpecCollection
- collection: (
- (MenuPanelSpec
- name: 'ToolBar1'
- layout: (LayoutFrame 0 0.0 0 0 0 1.0 40 0)
- menu: toolBarMenu
- textDefault: true
- )
- (VariableVerticalPanelSpec
- name: 'VariableVerticalPanel1'
- layout: (LayoutFrame 0 0 40 0 0 1 0 1)
- snapMode: both
- component:
- (SpecCollection
- collection: (
- (DataSetSpec
- name: 'Table'
- model: selectionIndexHolder
- menu: itemMenu
- hasHorizontalScrollBar: true
- hasVerticalScrollBar: true
- dataList: shownCopyOfBreakpointList
- doubleClickSelector: itemDoubleClicked:
- columnHolder: tableColumns
- )
- (TextEditorSpec
- name: 'TextEditor1'
- hasHorizontalScrollBar: true
- hasVerticalScrollBar: true
- hasKeyboardFocusInitially: false
- viewClassName: 'CodeView'
- postBuildCallback: postBuildCodeView:
- )
- )
-
- )
- handles: (Any 0.5 1.0)
- )
- (LabelSpec
- label: 'Updating...'
- name: 'Label1'
- layout: (LayoutFrame 0 0 32 0 0 1 0 1)
- visibilityChannel: updatingLabelShown
- translateLabel: true
- )
- )
-
- )
+ collection: (
+ (MenuPanelSpec
+ name: 'ToolBar1'
+ layout: (LayoutFrame 0 0.0 0 0 0 1.0 40 0)
+ menu: toolBarMenu
+ textDefault: true
+ )
+ (VariableVerticalPanelSpec
+ name: 'VariableVerticalPanel1'
+ layout: (LayoutFrame 0 0 40 0 0 1 0 1)
+ snapMode: both
+ component:
+ (SpecCollection
+ collection: (
+ (DataSetSpec
+ name: 'Table'
+ model: selectionIndexHolder
+ menu: itemMenu
+ hasHorizontalScrollBar: true
+ hasVerticalScrollBar: true
+ dataList: shownCopyOfBreakpointList
+ doubleClickSelector: itemDoubleClicked:
+ columnHolder: tableColumns
+ )
+ (TextEditorSpec
+ name: 'TextEditor1'
+ hasHorizontalScrollBar: true
+ hasVerticalScrollBar: true
+ hasKeyboardFocusInitially: false
+ viewClassName: 'CodeView'
+ postBuildCallback: postBuildCodeView:
+ )
+ )
+
+ )
+ handles: (Any 0.5 1.0)
+ )
+ (LabelSpec
+ label: 'Updating...'
+ name: 'Label1'
+ layout: (LayoutFrame 0 0 32 0 0 1 0 1)
+ visibilityChannel: updatingLabelShown
+ translateLabel: true
+ )
+ )
+
+ )
)
! !
@@ -159,17 +160,17 @@
<resource: #menu>
- ^
+ ^
#(Menu
- (
- (MenuItem
- label: 'Browse'
- itemValue: browseItem
- translateLabel: true
- )
- )
- nil
- nil
+ (
+ (MenuItem
+ label: 'Browse'
+ itemValue: browseItem
+ translateLabel: true
+ )
+ )
+ nil
+ nil
)
!
@@ -187,143 +188,143 @@
<resource: #menu>
- ^
+ ^
#(Menu
- (
- (MenuItem
- label: 'File'
- translateLabel: true
- submenu:
- (Menu
- (
- (MenuItem
- label: 'Exit'
- itemValue: closeRequest
- translateLabel: true
- )
- )
- nil
- nil
- )
- )
- (MenuItem
- label: 'View'
- translateLabel: true
- submenu:
- (Menu
- (
- (MenuItem
- label: 'Update List'
- itemValue: updateList
- translateLabel: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'Assertions'
- itemValue: showAssertions:
- translateLabel: true
- hideMenuOnActivated: false
- indication: showAssertions
- )
- (MenuItem
- label: 'Halts'
- itemValue: showHalts:
- translateLabel: true
- hideMenuOnActivated: false
- indication: showHalts
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'Code Breakpoints'
- itemValue: showCodeBreakpoints:
- translateLabel: true
- hideMenuOnActivated: false
- indication: showCodeBreakpoints
- )
- (MenuItem
- enabled: showCodeBreakpoints
- label: ' '
- translateLabel: true
- submenuChannel: codeBreakpointMenu
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'Method Breakpoints'
- itemValue: showMethodBreakpoints:
- translateLabel: true
- hideMenuOnActivated: false
- indication: showMethodBreakpoints
- )
- )
- nil
- nil
- )
- )
- (MenuItem
- label: 'Enable'
- translateLabel: true
- submenu:
- (Menu
- (
- (MenuItem
- label: 'Assertions'
- itemValue: enableAssertions:
- translateLabel: true
- indication: enableAssertions
- )
- (MenuItem
- label: 'Halts'
- itemValue: enableHalts:
- translateLabel: true
- indication: enableHalts
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'Code Breakpoints'
- translateLabel: true
- submenuChannel: enabledCodeBreakpointMenu
- )
- )
- nil
- nil
- )
- )
- (MenuItem
- label: 'Help'
- translateLabel: true
- startGroup: right
- submenu:
- (Menu
- (
- (MenuItem
- label: 'Documentation'
- itemValue: openDocumentation
- translateLabel: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'About this Application...'
- itemValue: openAboutThisApplication
- translateLabel: true
- )
- )
- nil
- nil
- )
- )
- )
- nil
- nil
+ (
+ (MenuItem
+ label: 'File'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Exit'
+ itemValue: closeRequest
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+ )
+ (MenuItem
+ label: 'View'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Update List'
+ itemValue: updateList
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Assertions'
+ itemValue: showAssertions:
+ translateLabel: true
+ hideMenuOnActivated: false
+ indication: showAssertions
+ )
+ (MenuItem
+ label: 'Halts'
+ itemValue: showHalts:
+ translateLabel: true
+ hideMenuOnActivated: false
+ indication: showHalts
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Code Breakpoints'
+ itemValue: showCodeBreakpoints:
+ translateLabel: true
+ hideMenuOnActivated: false
+ indication: showCodeBreakpoints
+ )
+ (MenuItem
+ enabled: showCodeBreakpoints
+ label: ' '
+ translateLabel: true
+ submenuChannel: codeBreakpointMenu
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Method Breakpoints'
+ itemValue: showMethodBreakpoints:
+ translateLabel: true
+ hideMenuOnActivated: false
+ indication: showMethodBreakpoints
+ )
+ )
+ nil
+ nil
+ )
+ )
+ (MenuItem
+ label: 'Enable'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Assertions'
+ itemValue: enableAssertions:
+ translateLabel: true
+ indication: enableAssertions
+ )
+ (MenuItem
+ label: 'Halts'
+ itemValue: enableHalts:
+ translateLabel: true
+ indication: enableHalts
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Code Breakpoints'
+ translateLabel: true
+ submenuChannel: enabledCodeBreakpointMenu
+ )
+ )
+ nil
+ nil
+ )
+ )
+ (MenuItem
+ label: 'Help'
+ translateLabel: true
+ startGroup: right
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Documentation'
+ itemValue: openDocumentation
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'About this Application...'
+ itemValue: openAboutThisApplication
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+ )
+ )
+ nil
+ nil
)
!
@@ -341,30 +342,30 @@
<resource: #menu>
- ^
+ ^
#(Menu
- (
- (MenuItem
- label: 'Update List'
- itemValue: updateList
- translateLabel: true
- isButton: true
- labelImage: (ResourceRetriever XPToolbarIconLibrary reloadIcon)
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasSelectionHolder
- label: 'Browse Selected Method'
- itemValue: browseSelectedItem
- translateLabel: true
- isButton: true
- labelImage: (ResourceRetriever XPToolbarIconLibrary startNewSystemBrowserIcon)
- )
- )
- nil
- nil
+ (
+ (MenuItem
+ label: 'Update List'
+ itemValue: updateList
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever XPToolbarIconLibrary reloadIcon)
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasSelectionHolder
+ label: 'Browse Selected Method'
+ itemValue: browseSelectedItem
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever XPToolbarIconLibrary startNewSystemBrowserIcon)
+ )
+ )
+ nil
+ nil
)
! !
@@ -385,75 +386,75 @@
^#(
(DataSetColumnSpec
- label: 'Type'
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'type'
- width: 60
- model: type
- canSelect: false
+ label: 'Type'
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'type'
+ width: 60
+ model: type
+ canSelect: false
)
(DataSetColumnSpec
- label: 'Arg'
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'type'
- width: 50
- model: arg
- canSelect: false
+ label: 'Arg'
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'type'
+ width: 50
+ model: arg
+ canSelect: false
)
(DataSetColumnSpec
- label: 'Class'
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'className'
- width: 150
- model: className
- canSelect: false
+ label: 'Class'
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'className'
+ width: 150
+ model: className
+ canSelect: false
)
(DataSetColumnSpec
- label: 'Method'
- labelAlignment: left
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'selector'
- width: 200
- model: selector
- canSelect: false
+ label: 'Method'
+ labelAlignment: left
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'selector'
+ width: 200
+ model: selector
+ canSelect: false
)
(DataSetColumnSpec
- label: 'Line'
- labelAlignment: left
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'lineNumber'
- width: 35
- model: lineNumber
- canSelect: false
+ label: 'Line'
+ labelAlignment: left
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'lineNumber'
+ width: 35
+ model: lineNumber
+ canSelect: false
)
(DataSetColumnSpec
- label: 'Info'
- labelAlignment: left
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'info'
- model: info
- canSelect: false
+ label: 'Info'
+ labelAlignment: left
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'info'
+ model: info
+ canSelect: false
)
)
-
+
!
tableColumns_v1
@@ -471,82 +472,82 @@
^#(
(DataSetColumnSpec
- label: 'Enabled'
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- width: 50
- editorType: CheckToggle
- rendererType: CheckToggle
- model: enabled
+ label: 'Enabled'
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ width: 50
+ editorType: CheckToggle
+ rendererType: CheckToggle
+ model: enabled
)
(DataSetColumnSpec
- label: 'Type'
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'type'
- width: 60
- model: type
- canSelect: false
+ label: 'Type'
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'type'
+ width: 60
+ model: type
+ canSelect: false
)
(DataSetColumnSpec
- label: 'Arg'
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'type'
- width: 50
- model: arg
- canSelect: false
+ label: 'Arg'
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'type'
+ width: 50
+ model: arg
+ canSelect: false
)
(DataSetColumnSpec
- label: 'Class'
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'className'
- width: 150
- model: className
- canSelect: false
+ label: 'Class'
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'className'
+ width: 150
+ model: className
+ canSelect: false
)
(DataSetColumnSpec
- label: 'Method'
- labelAlignment: left
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'selector'
- width: 200
- model: selector
- canSelect: false
+ label: 'Method'
+ labelAlignment: left
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'selector'
+ width: 200
+ model: selector
+ canSelect: false
)
(DataSetColumnSpec
- label: 'Line'
- labelAlignment: left
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'lineNumber'
- width: 35
- model: lineNumber
- canSelect: false
+ label: 'Line'
+ labelAlignment: left
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'lineNumber'
+ width: 35
+ model: lineNumber
+ canSelect: false
)
(DataSetColumnSpec
- label: 'Info'
- labelAlignment: left
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- labelActionSelector: sortBy:
- labelActionArgument: 'info'
- model: info
- canSelect: false
+ label: 'Info'
+ labelAlignment: left
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ labelActionSelector: sortBy:
+ labelActionArgument: 'info'
+ model: info
+ canSelect: false
)
)
! !
@@ -572,7 +573,7 @@
shownCopyOfBreakpointList
shownCopyOfBreakpointList isNil ifTrue:[
- shownCopyOfBreakpointList := List new
+ shownCopyOfBreakpointList := List new
].
^ shownCopyOfBreakpointList
@@ -581,7 +582,7 @@
updatingLabelShown
updatingLabelShown isNil ifTrue:[
- updatingLabelShown := true asValue
+ updatingLabelShown := true asValue
].
^ updatingLabelShown
! !
@@ -606,14 +607,14 @@
hasSelectionHolder
^ BlockValue
- with:[:selIndex | selIndex notNil and:[selIndex ~~ 0]]
- argument:self selectionIndexHolder
+ with:[:selIndex | selIndex notNil and:[selIndex ~~ 0]]
+ argument:self selectionIndexHolder
!
selectionIndexHolder
selectionIndexHolder isNil ifTrue:[
- selectionIndexHolder := nil asValue.
- selectionIndexHolder onChangeSend:#updateCode to:self
+ selectionIndexHolder := nil asValue.
+ selectionIndexHolder onChangeSend:#updateCode to:self
].
^ selectionIndexHolder
@@ -670,24 +671,24 @@
newList := breakpointList.
self showHalts ifFalse:[
- newList := newList reject:[:entry | entry isHalt].
+ newList := newList reject:[:entry | entry isHalt].
].
self showCodeBreakpoints ifFalse:[
- newList := newList reject:[:entry | entry isCodeBreakpoint].
+ newList := newList reject:[:entry | entry isCodeBreakpoint].
] ifTrue:[
- newList := newList reject:[:entry |
- |flag|
+ newList := newList reject:[:entry |
+ |flag|
- flag := (showCodeBreakpointsFor at:(entry arg ? '<nil>') ifAbsentPut:[true asValue]) value.
- entry isCodeBreakpoint
- and:[ flag not ]
- ].
+ flag := (showCodeBreakpointsFor at:(entry arg ? '<nil>') ifAbsentPut:[true asValue]) value.
+ entry isCodeBreakpoint
+ and:[ flag not ]
+ ].
].
self showMethodBreakpoints ifFalse:[
- newList := newList reject:[:entry | entry isMethodBreakpoint].
+ newList := newList reject:[:entry | entry isMethodBreakpoint].
].
self showAssertions ifFalse:[
- newList := newList reject:[:entry | entry isAssertion].
+ newList := newList reject:[:entry | entry isAssertion].
].
shownCopyOfBreakpointList contents:newList.
!
@@ -704,91 +705,91 @@
breakpointList removeAll.
newShowCodeBreakpointsFor := Dictionary new.
- messages := #(
- (#breakPoint: #breakpoint)
- (#breakPoint:info: #breakpoint)
- (#halt #halt)
- (#halt: #halt)
- (#assert: #assertion)
- (#assert:message: #assertion)
- ).
+ messages := #(
+ (#breakPoint: #breakpoint)
+ (#breakPoint:info: #breakpoint)
+ (#halt #halt)
+ (#halt: #halt)
+ (#assert: #assertion)
+ (#assert:message: #assertion)
+ ).
update := [:cls :mthd :sel |
- |entry type|
+ |entry type|
- mthd isWrapped ifTrue:[
- mthd isBreakpointed ifTrue:[
- type := #trap
- ] ifFalse:[
- mthd isTraced ifTrue:[
- type := #trace
- ] ifFalse:[
- type := #probe
- ].
- ].
- entry := BreakpointListEntry new.
- entry
- type:#wrap
- arg:type
- className:cls name
- selector:sel
- lineNumber:nil
- info:nil
- enabled:true.
- breakpointList add:entry.
- ].
+ mthd isWrapped ifTrue:[
+ mthd isBreakpointed ifTrue:[
+ type := #trap
+ ] ifFalse:[
+ mthd isTraced ifTrue:[
+ type := #trace
+ ] ifFalse:[
+ type := #probe
+ ].
+ ].
+ entry := BreakpointListEntry new.
+ entry
+ type:#wrap
+ arg:type
+ className:cls name
+ selector:sel
+ lineNumber:nil
+ info:nil
+ enabled:true.
+ breakpointList add:entry.
+ ].
- messages pairsDo:[:bpSel :type|
- |tree extractor|
+ messages pairsDo:[:bpSel :type|
+ |tree extractor|
- (mthd sends:bpSel) ifTrue:[
- tree := mthd parseTree.
- tree isNil ifTrue:[
- entry := BreakpointListEntry new.
- entry
- type:type
- arg:nil
- className:cls name
- selector:sel
- lineNumber:nil
- info:nil
- enabled:true.
- breakpointList add:entry.
- ] ifFalse:[
- extractor := MessageArgumentExtractor new.
- extractor selectorToSearch:bpSel.
- extractor callBack:[:lineNo :argument :infoMessage |
- argument notNil ifTrue:[
- newShowCodeBreakpointsFor
- at:argument
- put:(showCodeBreakpointsFor
- at:argument
- ifAbsent:[true asValue])
- ].
- entry := BreakpointListEntry new.
- entry
- type:type
- arg:argument
- className:cls name
- selector:sel
- lineNumber:lineNo
- info:infoMessage
- enabled:true.
- breakpointList add:entry.
- ].
- tree acceptVisitor:extractor.
- ]
- ].
- ].
+ (mthd sends:bpSel) ifTrue:[
+ tree := mthd parseTree.
+ tree isNil ifTrue:[
+ entry := BreakpointListEntry new.
+ entry
+ type:type
+ arg:nil
+ className:cls name
+ selector:sel
+ lineNumber:nil
+ info:nil
+ enabled:true.
+ breakpointList add:entry.
+ ] ifFalse:[
+ extractor := MessageArgumentExtractor new.
+ extractor selectorToSearch:bpSel.
+ extractor callBack:[:lineNo :argument :infoMessage |
+ argument notNil ifTrue:[
+ newShowCodeBreakpointsFor
+ at:argument
+ put:(showCodeBreakpointsFor
+ at:argument
+ ifAbsent:[true asValue])
+ ].
+ entry := BreakpointListEntry new.
+ entry
+ type:type
+ arg:argument
+ className:cls name
+ selector:sel
+ lineNumber:lineNo
+ info:infoMessage
+ enabled:true.
+ breakpointList add:entry.
+ ].
+ tree acceptVisitor:extractor.
+ ]
+ ].
+ ].
].
Smalltalk allClassesDo:[:cls |
- cls selectorsAndMethodsDo:[:sel :mthd |
- update value:cls value:mthd value:sel
- ].
- cls class selectorsAndMethodsDo:[:sel :mthd |
- update value:cls class value:mthd value:sel
- ].
+ cls selectorsAndMethodsDo:[:sel :mthd |
+ update value:cls value:mthd value:sel
+ ].
+ cls class selectorsAndMethodsDo:[:sel :mthd |
+ update value:cls class value:mthd value:sel
+ ].
].
showCodeBreakpointsFor := newShowCodeBreakpointsFor.
@@ -799,18 +800,18 @@
entry := self selectedBreakpointListEntry.
entry isNil ifTrue:[
- codeView contents:nil.
- ^ self
+ codeView contents:nil.
+ ^ self
].
method := entry method.
method isNil ifTrue:[
- codeView contents:'OOPS - no source found'.
- ] ifFalse:[
- codeView contents:(method source).
- entry lineNumber notNil ifTrue:[
- codeView cursorLine:entry lineNumber col:1.
- codeView selectLine:entry lineNumber.
- ].
+ codeView contents:'OOPS - no source found'.
+ ] ifFalse:[
+ codeView contents:(method source).
+ entry lineNumber notNil ifTrue:[
+ codeView cursorLine:entry lineNumber col:1.
+ codeView selectLine:entry lineNumber.
+ ].
].
@@ -879,7 +880,7 @@
removeItems:entriesToRemove
entriesToRemove do:[:entryToRemove |
- toDoList remove:entryToRemove
+ toDoList remove:entryToRemove
].
! !
@@ -891,28 +892,28 @@
|breakpointArgs menu|
breakpointArgs := Set new.
- breakpointList
- select:[:entry | entry arg notNil]
- thenDo:[:entry | breakpointArgs add:entry arg].
+ breakpointList
+ select:[:entry | entry arg notNil]
+ thenDo:[:entry | breakpointArgs add:entry arg].
(breakpointList contains:[:entry | entry arg isNil]) ifTrue:[
- breakpointArgs add:'<nil>'.
+ breakpointArgs add:'<nil>'.
].
breakpointArgs := breakpointArgs asSortedCollection.
menu := Menu new.
- breakpointArgs do:[:arg|
- | menuItem |
+ breakpointArgs do:[:arg|
+ | menuItem |
- menuItem := MenuItem new.
- menuItem label:arg.
- menuItem translateLabel:false.
- menuItem indication:(showCodeBreakpointsFor at:arg ifAbsentPut:[true asValue]).
- menuItem hideMenuOnActivated:false.
- menuItem value:[:onOff |
- (showCodeBreakpointsFor at:arg ifAbsentPut:[true asValue]) value:onOff.
- self updateShownBreakpointList
- ].
- menu addItem:menuItem.
+ menuItem := MenuItem new.
+ menuItem label:arg.
+ menuItem translateLabel:false.
+ menuItem indication:(showCodeBreakpointsFor at:arg ifAbsentPut:[true asValue]).
+ menuItem hideMenuOnActivated:false.
+ menuItem value:[:onOff |
+ (showCodeBreakpointsFor at:arg ifAbsentPut:[true asValue]) value:onOff.
+ self updateShownBreakpointList
+ ].
+ menu addItem:menuItem.
].
menu findGuiResourcesIn:self.
^ menu
@@ -928,32 +929,32 @@
enabledCodeBreakpointHolders := Dictionary new.
breakpointArgs := Set new.
- breakpointList
- select:[:entry | entry arg notNil]
- thenDo:[:entry | breakpointArgs add:entry arg].
+ breakpointList
+ select:[:entry | entry arg notNil]
+ thenDo:[:entry | breakpointArgs add:entry arg].
(breakpointList contains:[:entry | entry arg isNil]) ifTrue:[
- breakpointArgs add:'<nil>'.
+ breakpointArgs add:'<nil>'.
].
breakpointArgs := breakpointArgs asSortedCollection.
menu := Menu new.
- breakpointArgs do:[:arg|
- | menuItem |
+ breakpointArgs do:[:arg|
+ | menuItem |
- menuItem := MenuItem new.
- menuItem label:arg.
- menuItem translateLabel:false.
- menuItem indication:(enabledCodeBreakpointHolders at:arg ifAbsentPut:[ (Object isBreakPointEnabled:arg) asValue ]).
- menuItem hideMenuOnActivated:false.
- menuItem value:[:onOff |
- (enabledCodeBreakpointHolders at:arg ifAbsentPut:[(Object isBreakPointEnabled:arg) asValue]) value:onOff.
- onOff ifFalse:[
- Object disableBreakPoint:arg
- ] ifTrue:[
- Object enableBreakPoint:arg
- ].
- ].
- menu addItem:menuItem.
+ menuItem := MenuItem new.
+ menuItem label:arg.
+ menuItem translateLabel:false.
+ menuItem indication:(enabledCodeBreakpointHolders at:arg ifAbsentPut:[ (Object isBreakPointEnabled:arg) asValue ]).
+ menuItem hideMenuOnActivated:false.
+ menuItem value:[:onOff |
+ (enabledCodeBreakpointHolders at:arg ifAbsentPut:[(Object isBreakPointEnabled:arg) asValue]) value:onOff.
+ onOff ifFalse:[
+ Object disableBreakPoint:arg
+ ] ifTrue:[
+ Object enableBreakPoint:arg
+ ].
+ ].
+ menu addItem:menuItem.
].
menu findGuiResourcesIn:self.
^ menu
@@ -983,33 +984,33 @@
currentSortColumn isNil ifTrue:[^ self ].
sortBlock := sortBlock1 := [:a :b |
- |vA vB|
+ |vA vB|
- vA := (a perform:currentSortColumn).
- vB := (b perform:currentSortColumn).
- vA = vB ifTrue:[
- currentSortColumn == #type ifTrue:[
- vA := a arg.
- vB := b arg.
- vA = vB ifTrue:[
- vA := a className.
- vB := b className.
- vA = vB ifTrue:[
- vA := a selector.
- vB := b selector.
- vA = vB ifTrue:[
- vA := a lineNumber.
- vB := b lineNumber.
- ]
- ]
- ]
- ]
- ].
- (vA ? '') < (vB ? '')
- ].
+ vA := (a perform:currentSortColumn).
+ vB := (b perform:currentSortColumn).
+ vA = vB ifTrue:[
+ currentSortColumn == #type ifTrue:[
+ vA := a arg.
+ vB := b arg.
+ vA = vB ifTrue:[
+ vA := a className.
+ vB := b className.
+ vA = vB ifTrue:[
+ vA := a selector.
+ vB := b selector.
+ vA = vB ifTrue:[
+ vA := a lineNumber.
+ vB := b lineNumber.
+ ]
+ ]
+ ]
+ ]
+ ].
+ (vA ? '') < (vB ? '')
+ ].
currentSortIsReverse ifTrue:[
- sortBlock := [:a :b | (sortBlock1 value:a value:b) not ].
+ sortBlock := [:a :b | (sortBlock1 value:a value:b) not ].
].
"/ temporary hack - should make a copy of the real list
@@ -1031,18 +1032,18 @@
aSymbol := instanceName asSymbol.
currentSortColumn isNil ifTrue:[
- currentSortColumn := aSymbol.
- currentSortIsReverse := false.
+ currentSortColumn := aSymbol.
+ currentSortIsReverse := false.
] ifFalse:[
- currentSortColumn = aSymbol ifTrue:[
- "/ same column like before - change sort order ifReverse is true
- aBoolean ifTrue:[
- currentSortIsReverse := currentSortIsReverse not.
- ].
- ] ifFalse:[
- "/ another column - remark column
- currentSortColumn := aSymbol.
- ]
+ currentSortColumn = aSymbol ifTrue:[
+ "/ same column like before - change sort order ifReverse is true
+ aBoolean ifTrue:[
+ currentSortIsReverse := currentSortIsReverse not.
+ ].
+ ] ifFalse:[
+ "/ another column - remark column
+ currentSortColumn := aSymbol.
+ ]
].
self resort.
@@ -1056,8 +1057,8 @@
self windowGroup repairDamage.
self withWaitCursorDo:[
- self updateBreakpointList.
- self updateShownBreakpointList.
+ self updateBreakpointList.
+ self updateShownBreakpointList.
].
self updatingLabelShown value:false.
! !
@@ -1092,7 +1093,7 @@
^ type
!
-type:typeArg arg:argArg className:classNameArg selector:selectorArg lineNumber:lineNumberArg info:infoArg enabled:enabledArg
+type:typeArg arg:argArg className:classNameArg selector:selectorArg lineNumber:lineNumberArg info:infoArg enabled:enabledArg
type := typeArg.
arg := argArg.
className := classNameArg.
@@ -1108,11 +1109,11 @@
|browser|
browser := UserPreferences systemBrowserClass
- openInClass:(Smalltalk classNamed:className) selector:selector.
+ openInClass:(Smalltalk classNamed:className) selector:selector.
lineNumber notNil ifTrue:[
- browser codeView cursorLine:lineNumber col:1.
- browser codeView selectLine:lineNumber.
+ browser codeView cursorLine:lineNumber col:1.
+ browser codeView selectLine:lineNumber.
].
!
@@ -1155,39 +1156,39 @@
|arg1Node arg1 arg2Node arg2 argument infoMessage|
aMessageNode selector == selectorToSearch ifTrue:[
- aMessageNode arguments size > 0 ifTrue:[
- arg1Node := aMessageNode arguments first.
- arg1Node isLiteral ifTrue:[
- arg1 := arg1Node value.
- ].
- aMessageNode arguments size > 1 ifTrue:[
- arg2Node := aMessageNode arguments second.
- arg2Node isLiteral ifTrue:[
- arg2 := arg2Node value.
- ].
- ].
- ].
+ aMessageNode arguments size > 0 ifTrue:[
+ arg1Node := aMessageNode arguments first.
+ arg1Node isLiteral ifTrue:[
+ arg1 := arg1Node value.
+ ].
+ aMessageNode arguments size > 1 ifTrue:[
+ arg2Node := aMessageNode arguments second.
+ arg2Node isLiteral ifTrue:[
+ arg2 := arg2Node value.
+ ].
+ ].
+ ].
- selectorToSearch == #halt: ifTrue:[
- infoMessage := arg1.
- ].
- selectorToSearch == #breakPoint: ifTrue:[
- argument := arg1.
- ].
- selectorToSearch == #breakPoint:info: ifTrue:[
- argument := arg1.
- infoMessage := arg2.
- ].
- selectorToSearch == #assert: ifTrue:[
- ].
- selectorToSearch == #assert:message: ifTrue:[
- infoMessage := arg2.
- ].
+ selectorToSearch == #halt: ifTrue:[
+ infoMessage := arg1.
+ ].
+ selectorToSearch == #breakPoint: ifTrue:[
+ argument := arg1.
+ ].
+ selectorToSearch == #breakPoint:info: ifTrue:[
+ argument := arg1.
+ infoMessage := arg2.
+ ].
+ selectorToSearch == #assert: ifTrue:[
+ ].
+ selectorToSearch == #assert:message: ifTrue:[
+ infoMessage := arg2.
+ ].
- callBack
- value:aMessageNode firstLineNumber
- value:argument
- value:infoMessage
+ callBack
+ value:aMessageNode firstLineNumber
+ value:argument
+ value:infoMessage
].
super acceptMessageNode: aMessageNode
! !
@@ -1195,5 +1196,5 @@
!BreakpointBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointBrowser.st,v 1.2 2008-08-20 19:40:26 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointBrowser.st,v 1.3 2008-08-20 21:10:08 cg Exp $'
! !