eclipse / gef-classic

Eclipse GEF(tm) Classic code
Eclipse Public License 2.0
21 stars 48 forks source link

Context Buttons for Selection and Hover of EditParts #261

Open azoitl opened 10 months ago

azoitl commented 10 months ago

@sebHollersbacher and I are currently working on a prototype for a context button infrastructure for the graphical editors of 4diac IDE. This is inspired by the the ContextButtons in Graphiti but we hope to get a bit simpler API.

ContextButton-Graphiti ContextButton-Graphiti

Based on the Eclipse Platform's Command Infrastructure our first prototype can show buttons on all 4 sides of a Figure. When the user moves mouse to 1 side, it hides all the other sides.

ContextButton-left ContextButton-sides ContextButton top

In our work we tried to keep the whole infrastructure as generic as possible. Therefore we think we could upstream it to GEF Classic. Our approach would be to integrate it in the NonResizableEditPolicy in such a way that it will not affect any existing code. But users who would like to have it would just need to implement a dedicated response in the getAdapter method.

The first version of our prototype can be found in the 4diac IDE Gerrit.

What do you think is this something we should move to GEF Classic or keep it in 4diac IDE.

\cc @pcdavid @Phillipus @ptziegler

ddscharfe commented 9 months ago

:+1: It would be really nice to have this feature in gef.

Phillipus commented 9 months ago

Sorry for not responding earlier. I agree that this would be a nice feature, as long as it is optional and doesn't affect existing API. But then I know you know that anyway ;-)

sebHollersbacher commented 9 months ago

The current status can be seen in the video. Additionally, the buttons have a tooltip, which can not be seen in the video for some reason, to better indicate which command a button executes.

https://github.com/eclipse/gef-classic/assets/49431931/f8cb0120-acc3-4f4d-bd65-5d13a2a97a9d

github-actions[bot] commented 6 months ago

This issue is stale because it has been open for 90 days with no activity.

github-actions[bot] commented 3 months ago

This issue is stale because it has been open for 90 days with no activity.

github-actions[bot] commented 1 week ago

This issue is stale because it has been open for 90 days with no activity.