osrf / rqt_capabilities

rqt plugin for managing capabilities
Other
0 stars 4 forks source link

Add buttons for starting, stopping, listing capabilities #3

Open bit-pirate opened 11 years ago

bit-pirate commented 11 years ago

and all other useful interactions with the capability server.

bit-pirate commented 11 years ago

Looks like you implemented this already (https://github.com/osrf/rqt_capabilities/commit/3f4e8b44787f3723803a9ca469bbb33fe3518e74), but can't test it because of #6 .

bit-pirate commented 10 years ago
bit-pirate commented 10 years ago

Is there any functionality planned for right clicking the interface? Currently nothing happens, except so log output in the terminal:

(u'kobuki_capabilities/KobukiLED1', 'Not in list of providers')
wjwwood commented 10 years ago

Starting/stopping: Already implemented via right-click on the provider. Easy once you know it, but IMO not intuitive at first. Change needed?

Maybe just a note above the graph view like "right-click to start/stop capabilities".

Is there any functionality planned for right clicking the interface?

I think I could have it list all the providers for that capability if it is not running (clicking them would start them), and when it is running list an option to stop the running provider for that capability.

bit-pirate commented 10 years ago

Maybe just a note above the graph view like "right-click to start/stop capabilities".

Good.

I think I could have it list all the providers for that capability if it is not running (clicking them would start them), and when it is running list an option to stop the running provider for that capability.

Good as well. However, this is not urgent for me.

bit-pirate commented 10 years ago

More cosmetics: What about setting the interface to green as well, when the provider is started?

spaepcke commented 10 years ago

Let me know if it would be helpful to get UI feedback :)

esteve commented 10 years ago

@spaepcke Awesome! We currently allow users to start/stop providers (the ellipses) via a context menu. Users right-click on the ellipses and a menu shows up, and the context menu only has one entry (start/stop). To be honest, this isn't very intuitive, I only knew that because I've read this ticket.

Instead, I added two push buttons (start/stop) to every provider. This is what I have so far:

rqt_capabilities_buttons

What do you think of this @spaepcke ? Is it intuitive?

Thanks!

spaepcke commented 10 years ago

I talked a bit with William, and he gave me a brief tutorial :-)

Two ideas I think are worth trying:

1) Combine the buttons into one single button (for both ideas). It starts as Play, and when activated, changes to Stop. Pick a visually simpler button (a triangle/square with a rectangle around it). Since there can by multiple providers for a given interface, and only one provider can be active at a time, the Play button should be spatially paired with the associated provider. So, have a button appear next to each provider, either inside the oval, or just outside of it. If there are multiple providers for an interface, the Play button should be grayed out for all but the one provider that is currently "playing".

Pros: The user doesn't need to move the mouse much to "play" a provider since the button is right next to it. There's a signifier (a new word I'm trying out that's slightly different from "affordance") indicating that the user can act upon the provider.

Cons: For a complex graph, there could be hundreds of buttons. This would make things pretty cluttered and potentially confusing, depending on how well the layout is automatically managed.

2) Or, you can provide a slightly bigger Play button at the top of the graph. It's grayed out unless the user hovers over, or clicks on a provider. On provider hover/click, the Play button becomes clickable. If the user presses play, and then hovers over (or clicks on) another provider (for a different interface), the button turns from Stop back to Play so the user can play the other provider. To stop a provider, the user would need to click on the provider, and then press Stop at the top.

Pros: The graph will not grow cluttered with buttons, and will look cleaner and more approachable.

Cons: The user has to travel further to click Play/Stop, which could be annoying. One possible solution would be to have a tooltip appear when hovering over the Play button, saying something like, "Click to Play/stop, or press X on your keyboard", where X is some hotkey of your choosing. Another Con is that it might get very confusing starting/stopping multiple providers with the same button.

I don't know how much time you have to spend on this, but I would suggest prototyping both approaches and testing them out with a large graph and a few people. Happy to help with testing.

Hope that helps!

bit-pirate commented 10 years ago

1) :+1:

We can later move to 2), if it gets really messy. What about that?

spaepcke commented 10 years ago

Sounds fine to me.

esteve commented 10 years ago

I like (1), I've put the button next to the provider text.

As for the icons, I use the ones set by the desktop theme (http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html), I'll see if there are nicer icons in the spec.