[squeak-dev] The Inbox: Tools-ct.901.mcz
H. Hirzel
hannes.hirzel at gmail.com
Sat Oct 5 10:04:44 UTC 2019
The InspectorBrowser is a tool. The methods are not used directly. So
I consider it to be an implementation detail.
Good improvement.
+1 for inclusion.
It would be nice it it also had a pane for code evaluation as in a
simple Inspector.
--Hannes
On 10/2/19, Thiede, Christoph
<Christoph.Thiede at student.hpi.uni-potsdam.de> wrote:
> Should all the removed methods here be to moved into *60Deprecated, or would
> you consider them an implementation detail?
>
> ________________________________
> Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag
> von commits at source.squeak.org <commits at source.squeak.org>
> Gesendet: Mittwoch, 2. Oktober 2019 23:19:38
> An: squeak-dev at lists.squeakfoundation.org
> Betreff: [squeak-dev] The Inbox: Tools-ct.901.mcz
>
> A new version of Tools was added to project The Inbox:
> http://source.squeak.org/inbox/Tools-ct.901.mcz
>
> ==================== Summary ====================
>
> Name: Tools-ct.901
> Author: ct
> Time: 2 October 2019, 11:19:39.149682 pm
> UUID: 2641031f-a660-7642-8fae-5f415cf51f6d
> Ancestors: Tools-ul.899
>
> Deduplicates the InspectorBrowser by adapting to a real Browser and
> respecting to super. This also enhances look + functionality noticeably.
> Increases initialExtent for a nicer sight.
>
> You can open an InspectorBrowser by doing:
> InspectorBrowser openOn: Morph new.
>
> =============== Diff against Tools-ul.899 ===============
>
> Item was changed:
> Inspector subclass: #InspectorBrowser
> + instanceVariableNames: 'browser'
> - instanceVariableNames: 'fieldList msgList msgListIndex'
> classVariableNames: ''
> poolDictionaries: ''
> category: 'Tools-Inspector'!
>
> !InspectorBrowser commentStamp: 'tcj 3/12/2018 07:55' prior: 0!
> I am an inspector that also shows all messages the inspected objects can
> understand. I combine inspector and code browser.
>
> InspectorBrowser openOn: Smalltalk!
>
> Item was added:
> + ----- Method: InspectorBrowser>>browser (in category 'initialize-release')
> -----
> + browser
> +
> + ^ browser ifNil: [browser := Browser new]!
>
> Item was changed:
> + ----- Method: InspectorBrowser>>buildWith: (in category 'toolbuilder')
> -----
> - ----- Method: InspectorBrowser>>buildWith: (in category 'tool builder')
> -----
> buildWith: builder
>
> + | windowSpec |
> + windowSpec := self buildWindowWith: builder specs: {
> + (0 at 0 corner: 0.3 at 0.3) -> [self buildFieldListWith:
> builder].
> + (0.3 at 0 corner: 1.0 at 0.3) -> [self buildValuePaneWith:
> builder].
> + (0 at 0.3 corner: 0.3 at 1.0) -> [browser buildMessageListWith:
> builder].
> + (0.3 at 0.3 corner: 1.0 at 1.0) -> [browser buildCodePaneWith:
> builder].
> + }.
> + ^ builder build: windowSpec!
> - | window fieldSpec valueSpec msgSpec codeSpec |
> -
> - window := builder pluggableWindowSpec new
> - model: self;
> - children: OrderedCollection new;
> - yourself.
> -
> - fieldSpec := builder pluggableListSpec new
> - model: self;
> - list: #fieldList;
> - getIndex: #selectionIndex;
> - setIndex: #toggleIndex:;
> - menu: #fieldListMenu:;
> - frame: (0 at 0 corner: 0.3 at 0.5).
> -
> - valueSpec := builder pluggableTextSpec new
> - model: self;
> - getText: #contents;
> - setText: #accept:;
> - menu: #codePaneMenu:shifted:;
> - frame: (0.3 at 0 corner: 1.0 at 0.5).
> -
> - msgSpec := builder pluggableListSpec new
> - model: self;
> - list: #msgList;
> - getIndex: #msgListIndex;
> - setIndex: #msgListIndex:;
> - menu: #msgListMenu;
> - frame: (0 at 0.5 corner: 0.3 at 1.0).
> -
> - codeSpec := builder pluggableTextSpec new
> - model: self;
> - getText: #msgText;
> - setText: #msgAccept:from:;
> - menu: #msgPaneMenu:shifted:;
> - frame: (0.3 at 0.5 corner: 1.0 at 1.0).
> -
> - window children addAll: {fieldSpec. valueSpec. msgSpec. codeSpec}.
> - ^ builder build: window!
>
> Item was removed:
> - ----- Method: InspectorBrowser>>fieldList (in category 'accessing') -----
> - fieldList
> - fieldList ifNotNil: [^ fieldList].
> - ^ (fieldList := super fieldList)!
>
> Item was added:
> + ----- Method: InspectorBrowser>>initialExtent (in category 'toolbuilder')
> -----
> + initialExtent
> +
> + ^ super initialExtent * 3/2!
>
> Item was removed:
> - ----- Method: InspectorBrowser>>initialize (in category
> 'initialize-release') -----
> - initialize
> -
> - super initialize.
> - fieldList := nil.
> - msgListIndex := 0.
> - self changed: #msgText
> - !
>
> Item was changed:
> ----- Method: InspectorBrowser>>inspect: (in category
> 'initialize-release') -----
> inspect: anObject
> "Initialize the receiver so that it is inspecting anObject. There
> is no current selection.
> Overriden so that my class is not changed to 'anObject
> inspectorClass'."
>
> object := anObject.
> + self browser selectClass: anObject class.
> self initialize
> !
>
> Item was removed:
> - ----- Method: InspectorBrowser>>msgAccept:from: (in category 'messages')
> -----
> - msgAccept: newText from: editor
> - | category |
> - category := msgListIndex = 0
> - ifTrue: [ClassOrganizer default]
> - ifFalse: [object class organization categoryOfElement:
> (msgList at: msgListIndex)].
> - ^ (object class compile: newText classified: category notifying:
> editor) ~~ nil!
>
> Item was removed:
> - ----- Method: InspectorBrowser>>msgList (in category 'messages') -----
> - msgList
> -
> - ^msgList ifNil: [ msgList := object class selectors sort ]!
>
> Item was removed:
> - ----- Method: InspectorBrowser>>msgListIndex (in category 'messages')
> -----
> - msgListIndex
> - ^msgListIndex!
>
> Item was removed:
> - ----- Method: InspectorBrowser>>msgListIndex: (in category 'messages')
> -----
> - msgListIndex: anInteger
> - "A selection has been made in the message pane"
> -
> - msgListIndex := anInteger.
> - self changed: #msgText.!
>
> Item was removed:
> - ----- Method: InspectorBrowser>>msgListMenu: (in category 'messages')
> -----
> - msgListMenu: aMenu
> - ^ aMenu labels: 'Not yet implemented' lines: #(0) selections:
> #(flash)!
>
> Item was removed:
> - ----- Method: InspectorBrowser>>msgPaneMenu:shifted: (in category
> 'messages') -----
> - msgPaneMenu: aMenu shifted: shifted
> - ^ aMenu labels:
> - 'find... (f)
> - find again (g)
> - find and replace...
> - do/replace again (j)
> - undo (z)
> - redo (Z)
> - copy (c)
> - cut (x)
> - paste (v)
> - do it (d)
> - print it (p)
> - inspect it (i)
> - accept (s)
> - cancel (l)'
> - lines: #(0 4 6 9 12)
> - selections: #(find findAgain findReplace again undo redo
> copySelection cut paste doIt printIt inspectIt accept cancel)!
>
> Item was removed:
> - ----- Method: InspectorBrowser>>msgText (in category 'messages') -----
> - msgText
> - msgListIndex = 0 ifTrue: [^ nil].
> - ^ object class sourceCodeAt: (msgList at: msgListIndex)!
>
> Item was removed:
> - ----- Method: InspectorBrowser>>step (in category 'stepping and
> presenter') -----
> - step
> - | list fieldString msg |
> - (list := super fieldList) = fieldList ifFalse:
> - [fieldString := selectionIndex > 0 ifTrue: [fieldList at:
> selectionIndex] ifFalse: [nil].
> - fieldList := list.
> - selectionIndex := fieldList indexOf: fieldString.
> - self changed: #fieldList.
> - self changed: #selectionIndex].
> - list := msgList. msgList := nil. "force recomputation"
> - list = self msgList ifFalse:
> - [msg := msgListIndex > 0 ifTrue: [list at: msgListIndex]
> ifFalse: [nil].
> - msgListIndex := msgList indexOf: msg.
> - self changed: #msgList.
> - self changed: #msgListIndex].
> - super step!
>
> Item was added:
> + ----- Method: InspectorBrowser>>stepAt:in: (in category 'stepping and
> presenter') -----
> + stepAt: millisecondClockValue in: aWindow
> +
> + super stepAt: millisecondClockValue in: aWindow.
> + browser stepAt: millisecondClockValue in: aWindow.!
>
> Item was removed:
> - ----- Method: InspectorBrowser>>wantsSteps (in category 'accessing')
> -----
> - wantsSteps
> - ^ true!
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Updated_InspectorBrowser.png
Type: image/png
Size: 68413 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20191005/e6b1b8e0/attachment-0001.png>
More information about the Squeak-dev
mailing list
|