Chris Muller uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-cmm.608.mcz ==================== Summary ==================== Name: Tools-cmm.608 Author: cmm Time: 26 April 2015, 5:44:25.062 pm UUID: 129203a4-5952-41d2-ba4b-ef0ea4976aca Ancestors: Tools-topa.607 - Just display the selected system category in the window title of HierarchyBrowsers, no need for the new #showSystemCategory preference afterall. Good idea Marcel! - Inspector: do NOT send any messages to the object being inspected, not even printString, until the user says so. Essential for database apps and proxy debugging. - Fixed loss of indentation in MessageTraces after using the filtering function off the menu. =============== Diff against Tools-topa.607 =============== Item was changed: Browser subclass: #HierarchyBrowser instanceVariableNames: 'classDisplayList centralClass' + classVariableNames: '' - classVariableNames: 'ShowSystemCategory' poolDictionaries: '' category: 'Tools-Browser'! !HierarchyBrowser commentStamp: 'fbs 3/9/2011 12:02' prior: 0! I provide facilities to explore classes in the context of their subclass hierarchy. My classDisplayList instvar uses indentation to show the subclassing relationship between the displayed classes. ! Item was removed: - ----- Method: HierarchyBrowser class>>showSystemCategory (in category 'preferences') ----- - showSystemCategory - <preference: 'Show System-Category in Hierarchy Browsers' - category: 'Morphic' - description: 'When true, hierarchy browsers will include a widget which reports the system category.' - type: #Boolean> - ^ ShowSystemCategory ifNil: [ true ]! Item was removed: - ----- Method: HierarchyBrowser class>>showSystemCategory: (in category 'preferences') ----- - showSystemCategory: aBoolean - ShowSystemCategory := aBoolean! Item was removed: - ----- Method: HierarchyBrowser>>buildSystemCatListSingletonWith: (in category 'toolbuilder') ----- - buildSystemCatListSingletonWith: aToolBuilder - ^ aToolBuilder pluggableInputFieldSpec new - model: self ; - getText: #selectedSystemCategoryName ; - setText: nil ; - yourself! Item was changed: ----- Method: HierarchyBrowser>>defaultBrowserTitle (in category 'initialization') ----- defaultBrowserTitle + ^ self selectedSystemCategoryName ifNil: [ 'Hierarchy Browser' ]! - ^ 'Hierarchy Browser'! Item was changed: ----- Method: HierarchyBrowser>>openSystemCatEditString: (in category 'toolbuilder') ----- openSystemCatEditString: aString "Create a pluggable version of all the views for a Browser, including views and controllers. The top list view is of the currently selected system class category--a single item list." "Example: Browser new browseAllClasses. " | builder catPaneHeight max | - self class showSystemCategory ifTrue: [ ^ super openSystemCatEditString: aString ]. catPaneHeight := Preferences standardListFont height + 5 "top margin/border" + 5 "bottom margin/border". builder := ToolBuilder default. max := self wantsOptionalButtons ifTrue:[0.32] ifFalse:[0.4]. ^self buildWindowWith: builder specs: { (self classListFrame: max fromTop: 0 fromLeft: 0 width: 0.333) -> [self buildClassListWith: builder]. (self switchesFrame: max fromLeft: 0 width: 0.333) -> [self buildSwitchesWith: builder]. (LayoutFrame fractions: (0.333@0 corner: 0.666@max) offsets: (0@0 corner: 0@0)) -> [self buildMessageCategoryListWith: builder]. (LayoutFrame fractions: (0.666@0 corner: 1@max) offsets: (0@0 corner: 0@0)) -> [self buildMessageListWith: builder]. (0@max corner: 1@1) -> [self buildCodePaneWith: builder]. }! Item was changed: ----- Method: Inspector>>helpText (in category 'accessing') ----- helpText + ^ 'evaluate expressions here'! - - ^ 'Evaluate expressions for ''{1}'' here...' format: {self object printStringLimitedTo: 20}! Item was changed: ----- Method: MessageTrace>>filterFrom: (in category 'filtering') ----- + filterFrom: aBlock - filterFrom: aBlock "Filter the receiver's list down to only those items that satisfy aBlock, which takes a class an a selector as its arguments." + | newList newAutoSelectStrings newMessageSelections oldList | + oldList := Dictionary new. + messageList do: [ : each | oldList at: each put: each ]. - | newList newAutoSelectStrings newMessageSelections | newList := messageList class new. newAutoSelectStrings := autoSelectStrings class new. newMessageSelections := messageSelections class new. messageList withIndexDo: + [ : each : index | (self class + parse: each + toClassAndSelector: aBlock) ifTrue: - [ :each :index | - (self class parse: each toClassAndSelector: aBlock) - ifTrue: [ newList add: each. newAutoSelectStrings add: (autoSelectStrings at: index). newMessageSelections add: (messageSelections at: index) ] ]. + (self setFilteredList: newList) ifTrue: + [ autoSelectStrings := newAutoSelectStrings. + messageList do: + [ : each | each stringVersion: (oldList at: each) stringVersion ] ]! - (self setFilteredList: newList) - ifTrue: [ autoSelectStrings := newAutoSelectStrings ]! |
Nice! :)
Best, Marcel |
Free forum by Nabble | Edit this page |