Skip to content

Feat/recordbrowser#33

Open
nicolasp025 wants to merge 34 commits intoPharo-XP-Tools:P14from
nicolasp025:feature/recordbrowser
Open

Feat/recordbrowser#33
nicolasp025 wants to merge 34 commits intoPharo-XP-Tools:P14from
nicolasp025:feature/recordbrowser

Conversation

@nicolasp025
Copy link

No description provided.

feat: adding records to browser
feat: displaying history on tree table
feat: open history when adding a file
feat: DSSpy button & start/stop buttons on toolbar
fix: using now only one instance of browser
refactor: renaming package
fix: error when opening timeline with not enough data
fix: timer that was not counting the seconds
refactor: DSRecordBrowserPresenter => DSRecordBrowser
refactor: some methods from browser going into the browser class
doc: updating the documentation for browser
@Julesboul Julesboul requested review from Julesboul and StevenCostiou and removed request for StevenCostiou February 20, 2026 15:07
@nicolasp025 nicolasp025 marked this pull request as ready for review February 23, 2026 14:31
@nicolasp025 nicolasp025 marked this pull request as draft February 23, 2026 15:46
@nicolasp025 nicolasp025 marked this pull request as ready for review February 24, 2026 10:31
Copy link
Contributor

@Julesboul Julesboul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't be affraid with the number of comments: many are repeated and it is common in reviews!

In general, this is a good code and this browser will be a great feature to add.

Pay attention to segmentation: the more your code is segmented, the best it is for testing and finding bugs.

feat: adding more tests for each browser feature
refactor: removing ColoredRecord class; refactoring
comment: adding more comments where needed
@nicolasp025 nicolasp025 requested a review from Julesboul March 2, 2026 15:06
@@ -0,0 +1,153 @@
"
This class is a window displaying some informations while DebuggingSpy is recording.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This class is a window displaying some informations while DebuggingSpy is recording.
I am a window displaying timer while DebuggingSpy is recording.

It is just a timer finally, isn't it?


{ #category : 'initialization' }
DSTimerWindow >> buildUI [
"Builds the windows UI that contains : an icon that shows that Debugging Spy is recording, a chronometer, a timer that shows actual time and a stop recording button."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"Builds the windows UI that contains : an icon that shows that Debugging Spy is recording, a chronometer, a timer that shows actual time and a stop recording button."
"Builds the windows UI, it contains : an icon which shows that Debugging Spy is recording, a chronometer, a timer with current time and a stop recording button."

For your information, the definition of actual : https://dictionary.cambridge.org/dictionary/english/actual

DSTimerWindow >> initializeProperties [

self
setLabel: 'DSSpy recorder';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
setLabel: 'DSSpy recorder';
setLabel: 'DSSpy Timer';

I guess that the label should display what the object is? Or maybe it is something else

]

{ #category : 'layout' }
DSTimerWindow >> timeNowMorph [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
DSTimerWindow >> timeNowMorph [
DSTimerWindow >> currentTimeMorph [

It is a detail, the other name is also ok

Comment on lines +33 to +36
DSTimerWindow >> collapseOrExpand [

^ self
]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method is here to not allow users to collapse or expand? It is just to be sure

]

{ #category : 'tests' }
DSRecordBrowserTest >> testBrowserEmpty [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about the recordsTablePrensenter in this case? How should it be?

history windows do: [ :window |
window events do: [ :record |
self assert: (colorAssociations anySatisfy: [ :association |
association key = record and: association value = (browser getWindowColorFrom: window) ]) ] ]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
association key = record and: association value = (browser getWindowColorFrom: window) ]) ] ]
association key = record and: [association value = (browser getWindowColorFrom: window) ] ]) ] ]

]

{ #category : 'tests' }
DSRecordBrowserTest >> testGetRecordColorAssociationsFrom [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test is not clear for me, can you explain it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By the way, as you want to check that different colors appears in your presenter, it will be interesting to have different type of records in your testing file

self assert: DSRecordRegistry autoSerialize.
self deny: browser recorderWindow isNil.

browser stopRecording
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can check is the timerWindow is closed after stopping the recording, and maybe some other things

]

{ #category : 'tests' }
DSRecordBrowserTest >> testFilteringAllRecords [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that, for this test, it will be interessing to have an example file with different type of record (as you want to filter records).

Copy link
Contributor

@Julesboul Julesboul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's good to see more tests and the way of generating a testing file is really better than before!

There are still few things to change and some careless mistakes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants