Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dataframe view: column visibility editor #7067

Closed
Tracked by #4466
abey79 opened this issue Aug 6, 2024 · 1 comment · Fixed by #7453
Closed
Tracked by #4466

Dataframe view: column visibility editor #7067

abey79 opened this issue Aug 6, 2024 · 1 comment · Fixed by #7453
Assignees
Labels
feat-dataframe-view Everything related to the dataframe view ui concerns graphical user interface

Comments

@abey79
Copy link
Member

abey79 commented Aug 6, 2024

  • Add hook to SpaceViewClass to allow adding "stuff" to the view title bar
  • Use it to display a list of check box for visibility control

Concept:

  • Icon next to the component to hide the column
Screen.Recording.2024-09-11.at.15.32.07.mp4
  • To unhide (and also hide) use the btn in the title bar:
Screenshot 2024-09-11 at 15 31 02
@abey79 abey79 added the ui concerns graphical user interface label Aug 6, 2024
@abey79 abey79 self-assigned this Aug 6, 2024
@abey79 abey79 added the feat-dataframe-view Everything related to the dataframe view label Sep 9, 2024
@abey79 abey79 changed the title Dataframe view: component visibility editor Dataframe view: column visibility editor Sep 10, 2024
@emilk emilk added this to the 0.19 - Dataframe and web video milestone Sep 10, 2024
@gavrelina
Copy link
Member

gavrelina commented Sep 11, 2024

Decision making update:
Separate UI for visibility of components from visibility of components.
Implications for now:

  • It is only possible to add/remove entity via entity path section. This means there is no implicit show/hide functionality for entity (unless all components are hidden from one entity).
  • Visibility of components is only defined through show/hide UI. It is not the same as add/remove, neither it is connected or united with the entity path filter (so instead of having an option to ‘add/remove component AND hide/show component, to only use the latter for interacting with visibility in the UI. what exactly does it mean via DataOut-don't have an opinion there, but whatever it is - to only expose it as one action)
    ✅ Pros:
  • Reduces complexity
  • Decoupling query from looks (if the show/hide is looks?)
  • Smaller changes will allow to add value faster (instead of coupling it with entity path etc)
  • Also valid for entities as rows in the future!
    ❌ Cons:
  • Does not help forming a mental model for our data model through UI (hierarchical relations between entities and components (soon archetypes))

How?
Icon in the header of the Viewer
✅ always visible!
✅ no awkward interactions!
❌ a new interaction pattern for the viewer!!
❌ what if there are few tabs — might be weird if it appears/disappears

We'll embrace this weirdness in the context of an already seriously weird view and see how this feels/how users react :)

Wumpf pushed a commit that referenced this issue Sep 19, 2024
### What

Add a hook so views can have additional buttons in the title bar.
Unblocks #4466.

Background: will be used for column show/hide UI of the dataframe UI. We
had ample discussion on doing so, how different it is from other views,
and on how we accept that (and eventually embrace that in other views).
See eg this comment:
#7067 (comment)


<img width="770" alt="image"
src="https://github.com/user-attachments/assets/05a533ae-62cb-40ba-bfad-f5fb4fc94188">


### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/7438?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/7438?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
* [x] If have noted any breaking changes to the log API in
`CHANGELOG.md` and the migration guide

- [PR Build Summary](https://build.rerun.io/pr/7438)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
abey79 added a commit that referenced this issue Sep 23, 2024
### What

* Closes #7067
* Builds on #7438 

Add the possibility to control the visibility of column:
- Time columns (except the one corresponding to the query) and component
columns can be hidden by clicking on the on-hover button in their
header.
- A new button in the view title bar with a popup to show/hide any
column.

This also fixes a red warning showing up when latest-at queries return 0
rows (see #7449 for background).

Note to reviewer: the meat is in `space_view_class.rs`, which is ofc
hidden by default by GitHub.


https://github.com/user-attachments/assets/d2b55c63-53db-46dd-9339-b10af98a073b


### TODO

- [x] Fix bad sizing of the popup menu

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/7453?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/7453?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
* [x] If have noted any breaking changes to the log API in
`CHANGELOG.md` and the migration guide

- [PR Build Summary](https://build.rerun.io/pr/7453)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat-dataframe-view Everything related to the dataframe view ui concerns graphical user interface
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants