Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » e(fx)clipse » minimize/maximize of parts and stacks
minimize/maximize of parts and stacks [message #1703707] Tue, 04 August 2015 10:51 Go to next message
Bartlomiej Cichocki is currently offline Bartlomiej CichockiFriend
Messages: 23
Registered: April 2015
Junior Member
Hello,
Is there any addOn or something else for the minimize/maximize of parts and stacks?

Regards
Re: minimize/maximize of parts and stacks [message #1703726 is a reply to message #1703707] Tue, 04 August 2015 11:58 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
No - we have not yet implemented min/max as you know it from
SWT-Renderers. There are multiple posts on this very topic already and
unfortunately nobody yet stepped up and funded the development or
provided an implementation.

To summarize:
* DnD detach is not available in the default open source implementation
=> there's not much missing to make that work but we did not have time
to finish it
* Min/Max
=> there are multiple points to discuss:
- how should min/max work (I'm not a fan of 100% port from SWT)
- how can it be integrated in the JavaFX TabFolder control

Tom

On 04.08.15 12:51, Bartlomiej Cichocki wrote:
> Hello,
> Is there any addOn or something else for the minimize/maximize of parts
> and stacks?
>
> Regards
Re: minimize/maximize of parts and stacks [message #1703854 is a reply to message #1703726] Wed, 05 August 2015 12:28 Go to previous messageGo to next message
Christoph Keimel is currently offline Christoph KeimelFriend
Messages: 482
Registered: December 2010
Location: Germany
Senior Member
On how Min/Max should work:

I think we actualy only need the maximize action (in regular mode), because that is usualy what a user wants: More space for a specific view for a certain amount of time. The rest of the stacks should minimize automatically. As soon as you restore the maximized stack or one of the minimzed stacks, all of them return to regular mode. So, compared to SWT, let's get rid of the minimize action.

I like the possibility in SWT to active a minimized part to show its stack in a pop-up window temporarily.
Re: minimize/maximize of parts and stacks [message #1703856 is a reply to message #1703854] Wed, 05 August 2015 12:31 Go to previous messageGo to next message
Christoph Keimel is currently offline Christoph KeimelFriend
Messages: 482
Registered: December 2010
Location: Germany
Senior Member
I also added my 3 cents to Bug 409340
Re: minimize/maximize of parts and stacks [message #1703916 is a reply to message #1703854] Wed, 05 August 2015 19:48 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
On 05.08.15 14:28, Christoph Keimel wrote:
> On how Min/Max should work:
>
> I think we actualy only need the maximize action (in regular mode),
> because that is usualy what a user wants: More space for a specific view
> for a certain amount of time. The rest of the stacks should minimize
> automatically. As soon as you restore the maximized stack or one of the
> minimzed stacks, all of them return to regular mode. So, compared to
> SWT, let's get rid of the minimize action.
>
> I like the possibility in SWT to active a minimized part to show its
> stack in a pop-up window temporarily.

No - no popups - we keep things lightweight!

My idea has always been to take the business control defined by the
renderer (eg the TabFolder (MPartStack), BorderPane (MPart)) and animate
it to fill the complete perspective/window area (beside the trims) and
leave the other UI-Components visible (one could even play with alpha
transparency, depth effects, ...).

If we want to make the other controls invisible we need to revise how
visibility is handled currently because it leads to a detach of the
UI-Element which is not a good idea if you have a complex UI because
reattaching takes a while (up to 2-3 seconds in worst case)!

If one ever asked why the WLayoutedWidget wraps the real widget into a
static layout node now knows why it is done. This way we can move the
real control around the the scenegraph will the container will still
take the space at the original position ;-)

Tom
Re: minimize/maximize of parts and stacks [message #1703967 is a reply to message #1703916] Thu, 06 August 2015 09:29 Go to previous messageGo to next message
Christoph Keimel is currently offline Christoph KeimelFriend
Messages: 482
Registered: December 2010
Location: Germany
Senior Member
Let's see if I got you correctly. I did a quick scribble to see if I get the picture.

index.php/fa/22809/0/

If the user maximizes the parts (or part) in C, we would enlarge this area, so that it mostly covers the other parts. I think this could look realy cool with the visual effects you mentioned giving the user the impression as if the parts A and B have moved back to allow C to take its space.

This makes me think about where to implement this. The min/max in SWT is hooked to the part stack. This does not need to be the case. I can imagine a layout with sashes and parts that does not use a part stack, but would still benefit from the maximize feature. The main component you need for an meaningfull maximize ist the PartSashContainer. You need to have at least one of those, otherwise you will ever only see one part on top anyway.

Based on this we could think about integrating the maximize control in the sash rather than the stack. I am thinking about icons that appear in the corners of the sash parts on mouse hover. Technically we could implement this by wrapping the pane of the part for all of the SplitPane children.

We could add a minimize control the same way and/or we allow the user to transfer focus to A or B (i.e. by clicking) to have the layout return to normal.

[Updated on: Thu, 06 August 2015 09:31]

Report message to a moderator

Re: minimize/maximize of parts and stacks [message #1714538 is a reply to message #1703967] Fri, 13 November 2015 13:12 Go to previous messageGo to next message
Sun Volland is currently offline Sun VollandFriend
Messages: 29
Registered: September 2010
Junior Member
Hi,

I started implementing a maximization service that can maximize/unmaximize an element into a perspective, following Tom's initial idea.

Here is a small video showing the result, where maximization is triggered by buttons or a key-binding - sorry for the poor quality.

Basically changes are limited to the org.eclipse.fx.ui.workbench.renderers.base and org.eclipse.fx.ui.workbench.renderers.fx bundles, where 3 new interfaces were introduced :


  • org.eclipse.fx.ui.workbench.renderers.base.services.MaximizationService, providing the actual maximization api. There's one instance per perspective, built by a context function.
  • org.eclipse.fx.ui.workbench.renderers.base.services.MaximizationTransitionService, responsible for the maximization/unmaximization animation. Current implementation does the growing/shrinking animation, but any other impl. can be provided as an OSGi service
  • org.eclipse.fx.ui.workbench.renderers.base.widget.WMaximizationHost, a widget abstraction for widgets supporting a maximized content actually implemented by WPerspective


The maximization state is stored as persisted data in the model, so it is restored when restarting the app.

Branch of modified efxclipse is at https://github.com/svolland/efxclipse
Demo project is at https://github.com/svolland/e4fx_demo (running against the above branch + 2.1.0 target)

It's basically functionnal but surely needs more work/review to properly handle all cases, and an ui max/unmax control could be nice too.

Sun
Re: minimize/maximize of parts and stacks [message #1714545 is a reply to message #1714538] Fri, 13 November 2015 13:34 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi,

This is wonderful!

I talked with Christoph Keimel at EclipseCon Europe last week and your
approach is exactly what I and Christoph agreed to give a try.

Unfortunately the github repo is empty so I don't see how you
implemented it but I expect you reparent the widget-node and keep the
static node at it position?

Tom

On 13.11.15 14:12, Sun Volland wrote:
> Hi,
>
> I started implementing a maximization service that can
> maximize/unmaximize an element into a perspective, following Tom's
> initial idea.
>
> Here is a small https://youtu.be/1xBzZfAZbLg showing the result, where
> maximization is triggered by buttons or a key-binding - sorry for the
> poor quality.
>
> Basically changes are limited to the
> org.eclipse.fx.ui.workbench.renderers.base and
> org.eclipse.fx.ui.workbench.renderers.fx bundles, where 3 new interfaces
> were introduced :
>
>
> org.eclipse.fx.ui.workbench.renderers.base.services.MaximizationService,
> providing the actual maximization api. There's one instance per
> perspective, built by a context function.
> org.eclipse.fx.ui.workbench.renderers.base.services.MaximizationTransitionService,
> responsible for the maximization/unmaximization animation. Current
> implementation does the growing/shrinking animation, but any other impl.
> can be provided as an OSGi service
> org.eclipse.fx.ui.workbench.renderers.base.widget.WMaximizationHost, a
> widget abstraction for widgets supporting a maximized content actually
> implemented by WPerspective
>
>
> The maximization state is stored as persisted data in the model, so it
> is restored when restarting the app.
> Branch of modified efxclipse is at https://github.com/svolland/efxclipse
> Demo project is at https://github.com/svolland/e4fx_demo (running
> against the above branch + 2.1.0 target)
>
> It's basically functionnal but surely needs more work/review to properly
> handle all cases, and an ui max/unmax control could be nice too.
>
> Sun
>
Re: minimize/maximize of parts and stacks [message #1714548 is a reply to message #1714545] Fri, 13 November 2015 13:36 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
If you plan to contribute this - it would be nice if you would create a
gerrit-review.

I'd even merge the current version (even if not perfect yet) because it
is better than nothing.

Tom

On 13.11.15 14:34, Tom Schindl wrote:
> Hi,
>
> This is wonderful!
>
> I talked with Christoph Keimel at EclipseCon Europe last week and your
> approach is exactly what I and Christoph agreed to give a try.
>
> Unfortunately the github repo is empty so I don't see how you
> implemented it but I expect you reparent the widget-node and keep the
> static node at it position?
>
> Tom
>
> On 13.11.15 14:12, Sun Volland wrote:
>> Hi,
>>
>> I started implementing a maximization service that can
>> maximize/unmaximize an element into a perspective, following Tom's
>> initial idea.
>>
>> Here is a small https://youtu.be/1xBzZfAZbLg showing the result, where
>> maximization is triggered by buttons or a key-binding - sorry for the
>> poor quality.
>>
>> Basically changes are limited to the
>> org.eclipse.fx.ui.workbench.renderers.base and
>> org.eclipse.fx.ui.workbench.renderers.fx bundles, where 3 new interfaces
>> were introduced :
>>
>>
>> org.eclipse.fx.ui.workbench.renderers.base.services.MaximizationService,
>> providing the actual maximization api. There's one instance per
>> perspective, built by a context function.
>> org.eclipse.fx.ui.workbench.renderers.base.services.MaximizationTransitionService,
>> responsible for the maximization/unmaximization animation. Current
>> implementation does the growing/shrinking animation, but any other impl.
>> can be provided as an OSGi service
>> org.eclipse.fx.ui.workbench.renderers.base.widget.WMaximizationHost, a
>> widget abstraction for widgets supporting a maximized content actually
>> implemented by WPerspective
>>
>>
>> The maximization state is stored as persisted data in the model, so it
>> is restored when restarting the app.
>> Branch of modified efxclipse is at https://github.com/svolland/efxclipse
>> Demo project is at https://github.com/svolland/e4fx_demo (running
>> against the above branch + 2.1.0 target)
>>
>> It's basically functionnal but surely needs more work/review to properly
>> handle all cases, and an ui max/unmax control could be nice too.
>>
>> Sun
>>
>
Re: minimize/maximize of parts and stacks [message #1714559 is a reply to message #1714548] Fri, 13 November 2015 14:53 Go to previous messageGo to next message
Sun Volland is currently offline Sun VollandFriend
Messages: 29
Registered: September 2010
Junior Member
oups, the github link was uncomplete, the code is available in the "2.1.0-branch" branch :
https://github.com/svolland/efxclipse/tree/2.1.0-branch
All changes should be in the last 3 commits

and yes it is implemented by reparenting the widget-node and keep the
static node at its position

I'll try to make a gerrit push
Re: minimize/maximize of parts and stacks [message #1714579 is a reply to message #1714559] Fri, 13 November 2015 16:41 Go to previous messageGo to next message
Sun Volland is currently offline Sun VollandFriend
Messages: 29
Registered: September 2010
Junior Member
Pushed to https://git.eclipse.org/r/60347
Re: minimize/maximize of parts and stacks [message #1714597 is a reply to message #1714579] Fri, 13 November 2015 18:39 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi,

I merged the code as is and asked for some follow up changes ;-)

Tom

On 13.11.15 17:41, Sun Volland wrote:
> Pushed to https://git.eclipse.org/r/60347
Previous Topic:Drag and Drop to reorder Parts does not work
Next Topic: JavaFX
Goto Forum:
  


Current Time: Tue Apr 23 10:27:24 GMT 2024

Powered by FUDForum. Page generated in 0.03189 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top