From 10ddbf09d0bcf5ef046c219e5d03662bb567a656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phaneDucasse?= Date: Tue, 25 Feb 2025 09:25:30 +0100 Subject: [PATCH 1/3] - Adding object transcript in the baseline - Adding registratin to tools - Better creation API --- .../BaselineOfNewTools.class.st | 4 ++ .../StObjectTranscriptPresenter.class.st | 52 +++++++++++++++++-- 2 files changed, 52 insertions(+), 4 deletions(-) diff --git a/src/BaselineOfNewTools/BaselineOfNewTools.class.st b/src/BaselineOfNewTools/BaselineOfNewTools.class.st index d752c6df6..bd49726e8 100644 --- a/src/BaselineOfNewTools/BaselineOfNewTools.class.st +++ b/src/BaselineOfNewTools/BaselineOfNewTools.class.st @@ -115,6 +115,8 @@ BaselineOfNewTools >> baseline: spec [ package: 'NewTools-ShortcutsBrowser'; + package: 'NewTools-ObjectTranscript'; + package: 'ColorPicker'; package: 'ColorPicker-Tests' with: [ spec requires: #( ColorPicker ) ]. @@ -195,6 +197,8 @@ BaselineOfNewTools >> baseline: spec [ group: 'ShortcutsBrowser' with: #( 'NewTools-ShortcutsBrowser' ); group: 'ColorPickerGroup' with: #('ColorPicker' 'ColorPicker-Tests'); + + group: 'default' with: #( 'Playground' diff --git a/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st b/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st index 392d7ca90..404819d52 100644 --- a/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st +++ b/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st @@ -1,16 +1,28 @@ " I'm a presenter showing StObjectTranscriptLogger log elements. + +``` +StObjectTranscriptLogger open + +StObjectTranscriptLogger openWithLogger: StObjectTranscripLogger instance +``` + +To open from another presenter use the following expression + +``` +(self application toolNamed: #objectTranscript) open +``` + + You can show/hide the inspector and the inspector can either display the currently selected log entry or the complete list so that we can perform collection operations for complex filters ``` | cb | StObjectTranscriptLogger start. - cb := self new. - cb logger: StObjectTranscriptLogger instance. - 'this is a message only interesting from the logger domain' emit. - cb open. + cb := self open. + 'Pharo is super nice!' emit. ``` @@ -68,6 +80,38 @@ StObjectTranscriptPresenter class >> example [ ^ cb ] +{ #category : 'accessing' } +StObjectTranscriptPresenter class >> example2 [ + "self example2" + + self open. + 'Hello Pharo is cool,' emit. + +] + +{ #category : 'instance creation' } +StObjectTranscriptPresenter class >> open [ + "Make sure that the object transcript logger is on and open a presenter on it." + + StObjectTranscriptLogger start. + ^ self openWithLogger: StObjectTranscriptLogger instance +] + +{ #category : 'instance creation' } +StObjectTranscriptPresenter class >> openWithLogger: aLogger [ + + ^ self new logger: aLogger; open + + +] + +{ #category : 'registration' } +StObjectTranscriptPresenter class >> registerToolsOn: registry [ + + registry register: self as: #objectTranscript + +] + { #category : 'settings' } StObjectTranscriptPresenter class >> settings: aBuilder [ From 5ffbe558f356f62fb8843239eada3ae789d4203f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phaneDucasse?= Date: Tue, 25 Feb 2025 09:32:48 +0100 Subject: [PATCH 2/3] - Adding first menu registration --- .../StObjectTranscriptPresenter.class.st | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st b/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st index 404819d52..e732d819b 100644 --- a/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st +++ b/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st @@ -138,6 +138,19 @@ StObjectTranscriptPresenter class >> showInspector: aBoolean [ ShowInspector := aBoolean ] +{ #category : 'registration' } +StObjectTranscriptPresenter class >> worldMenuOn: aBuilder [ + + + (aBuilder item: #'Browse') + parent: #Browse; + label: 'Object Transcript'; + order: 5; + iconName: #playground; + action: [ StObjectTranscriptPresenter open]. + +] + { #category : 'actions' } StObjectTranscriptPresenter >> addActions [ From 782ec1c66e379b3b07b96cd5b2406968dbfa8364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phaneDucasse?= Date: Tue, 25 Feb 2025 09:36:14 +0100 Subject: [PATCH 3/3] - add start/stop menu - refactor code --- .../StObjectTranscriptPresenter.class.st | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st b/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st index e732d819b..76c47f2cc 100644 --- a/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st +++ b/src/NewTools-ObjectTranscript/StObjectTranscriptPresenter.class.st @@ -158,11 +158,7 @@ StObjectTranscriptPresenter >> addActions [ addActionWith: [ :item | item name: 'Toggle inspector entities'; iconName: #smallHelp; - action: [ - inspectSelectedItem := inspectSelectedItem not. - inspectSelectedItem - ifTrue: [ self inspect: logList selectedItem ] - ifFalse: [ self inspect: logger recordings ] ] ]; + action: [ self hideShowInspector ] ]; addActionWith: [ :item | item name: 'Hide/Show inspector'; iconName: #inspect; @@ -170,8 +166,15 @@ StObjectTranscriptPresenter >> addActions [ addActionWith: [ :item | item name: 'Flush entities'; iconName: #delete; - action: [ self flush ]] - + action: [ self flush ]]; + addActionWith: [ :item | item + name: 'Start logger'; + iconName: #start; + action: [ self startLogger ]]; + addActionWith: [ :item | item + name: 'Stop logger'; + iconName: #stop; + action: [ self stopLogger ]] ] @@ -210,6 +213,15 @@ StObjectTranscriptPresenter >> flush [ self populateItemsFrom: logger ] +{ #category : 'actions' } +StObjectTranscriptPresenter >> hideShowInspector [ + + inspectSelectedItem := inspectSelectedItem not. + inspectSelectedItem + ifTrue: [ self inspect: logList selectedItem ] + ifFalse: [ self inspect: logger recordings ] +] + { #category : 'initialization' } StObjectTranscriptPresenter >> initialize [ @@ -309,6 +321,18 @@ StObjectTranscriptPresenter >> showInspector: aBoolean [ self layout: self defaultLayout. ] +{ #category : 'actions' } +StObjectTranscriptPresenter >> startLogger [ + + logger start +] + +{ #category : 'actions' } +StObjectTranscriptPresenter >> stopLogger [ + + logger stop +] + { #category : 'accessing' } StObjectTranscriptPresenter >> windowTitle [