Bug 569160 - Provide FloatingText from Nebula via platform
Summary: Provide FloatingText from Nebula via platform
Status: RESOLVED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.17   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: 4.19 M3   Edit
Assignee: Platform-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 328832
Blocks: 569282
  Show dependency tree
 
Reported: 2020-11-25 04:06 EST by Lars Vogel CLA
Modified: 2021-01-13 06:02 EST (History)
8 users (show)

See Also:


Attachments
FloatingText in action (691.27 KB, video/mp4)
2020-12-02 14:29 EST, Wim Jongman CLA
no flags Details
FloatingText with background (728.60 KB, video/mp4)
2020-12-03 04:16 EST, Wim Jongman CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lars Vogel CLA 2020-11-25 04:06:56 EST
FloatingText would be nice to be used in platform, e.g. in wizards. 

To use this widget in platform code it should be must be moved to platform. I contacted Wim and Laurent and they support this idea.

We should create a new plug-in to host such new widgets. 

I suggest: "org.eclipse.jface.widgets"
Comment 1 Lars Vogel CLA 2020-11-25 04:08:35 EST
Wim, Laurent, any comments? I could create the new plug-in for 4.19M1. 

Laurent, are you the primary author of the widget? If this case we should nominate you as platform committer once we did the move.
Comment 2 Laurent CARON CLA 2020-11-25 04:19:07 EST
Hi Lars

We should also a JFace View (FloatingTextViewer ?) I think.

Thank you for your proposal, but Wim is the author of this great widget :)
Comment 3 Wim Jongman CLA 2020-11-26 10:02:02 EST
(In reply to Lars Vogel from comment #0)

> 
> I suggest: "org.eclipse.jface.widgets"

Should custom widgets go to SWT? e.g. org.eclipse.custom.CCombo
Comment 4 Lars Vogel CLA 2020-11-26 10:18:11 EST
(In reply to Wim Jongman from comment #3)
> (In reply to Lars Vogel from comment #0)
> 
> > 
> > I suggest: "org.eclipse.jface.widgets"
> 
> Should custom widgets go to SWT? e.g. org.eclipse.custom.CCombo

The SWT team want to stay as small as possible. So let's add convenience stuff to platform UI.
Comment 5 Alexander Fedorov CLA 2020-11-27 03:49:05 EST
How about "org.eclipse.jface.floating" bundle?

Since it is planned to contain widget, viewer and may be more.
Comment 6 Lars Vogel CLA 2020-11-27 04:14:49 EST
(In reply to Alexander Fedorov from comment #5)
> How about "org.eclipse.jface.floating" bundle?
> 
> Since it is planned to contain widget, viewer and may be more.

I would build it in a way that it can contain also more widgets in the future.
Comment 7 Lars Vogel CLA 2020-11-27 04:22:00 EST
Wim or Laurent, please check if the plug-in frame is OK for you to use.
Comment 8 Eclipse Genie CLA 2020-11-27 04:22:05 EST
New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/172919
Comment 9 Eclipse Genie CLA 2020-11-27 04:23:20 EST
New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/172920
Comment 10 Alexander Fedorov CLA 2020-11-27 04:24:54 EST
(In reply to Lars Vogel from comment #6)
> (In reply to Alexander Fedorov from comment #5)
> > How about "org.eclipse.jface.floating" bundle?
> > 
> > Since it is planned to contain widget, viewer and may be more.
> 
> I would build it in a way that it can contain also more widgets in the
> future.

I have no objections to add more widgets to Platform, I'm just trying to keep bundles focused and cohesive.

From this perspective "org.eclipse.jface.widgets" sounds more like "everything else that we do not want to see in the mature org.eclipse.jface bundle".
Comment 11 Matthias Becker CLA 2020-11-27 04:25:48 EST
What is "FloatingText"?
Comment 12 Wim Jongman CLA 2020-11-27 04:39:01 EST
(In reply to Alexander Fedorov from comment #5)
> How about "org.eclipse.jface.floating" bundle?
> 
> Since it is planned to contain widget, viewer and may be more.

I don't think we need a viewer. It is a simple widget.

We might want to prepare for a trend and indeed do 

org.eclipse.jface.widgets.floatingText...

We have the same structure in Nebula, it works well. WDYT?
Comment 13 Lars Vogel CLA 2020-11-27 04:40:54 EST
(In reply to Wim Jongman from comment #12)
> (In reply to Alexander Fedorov from comment #5)
> > How about "org.eclipse.jface.floating" bundle?
> > 
> > Since it is planned to contain widget, viewer and may be more.
> 
> I don't think we need a viewer. It is a simple widget.
> 
> We might want to prepare for a trend and indeed do 
> 
> org.eclipse.jface.widgets.floatingText...
> 
> We have the same structure in Nebula, it works well. WDYT?

Sound perfect. Can you provide a Gerrit on top on mine or update mine?
Comment 14 Wim Jongman CLA 2020-11-27 05:17:19 EST
(In reply to Matthias Becker from comment #11)
> What is "FloatingText"?

https://wiki.eclipse.org/Nebula/FloatingText
Comment 15 Wim Jongman CLA 2020-11-27 05:32:45 EST
(In reply to Lars Vogel from comment #13)
> 
> Sound perfect. Can you provide a Gerrit on top on mine or update mine?

Ok. It will not be today.
Comment 16 Wim Jongman CLA 2020-11-27 06:33:25 EST
(In reply to Wim Jongman from comment #15)
> (In reply to Lars Vogel from comment #13)
> > 
> > Sound perfect. Can you provide a Gerrit on top on mine or update mine?
> 
> Ok. It will not be today.

Turns out it was going to be today. I updated your Gerrit.
Comment 17 Wim Jongman CLA 2020-11-27 11:27:06 EST
(In reply to Lars Vogel from comment #0)

> 
> I suggest: "org.eclipse.jface.widgets"

Thomas pointed out in the Gerrit that there is already a "widgets" package in jface. So we can't name the project also like this

what to do? 

Move the widget to this package or rename the bundle. What about 

org.eclipse.jface.swt
Comment 18 Andrey Loskutov CLA 2020-11-27 11:31:42 EST
(In reply to Wim Jongman from comment #17)
> (In reply to Lars Vogel from comment #0)
> 
> > 
> > I suggest: "org.eclipse.jface.widgets"
> 
> Thomas pointed out in the Gerrit that there is already a "widgets" package
> in jface. So we can't name the project also like this
> 
> what to do? 
> 
> Move the widget to this package or rename the bundle. What about 
> 
> org.eclipse.jface.swt

-1, Jface already uses SWT :-)


org.eclipse.jface.extensions ?
Comment 19 Alexander Fedorov CLA 2020-11-27 11:36:43 EST
> org.eclipse.jface.extensions ?

Well, it is possible but perhaps too generic.

I would better name it "org.eclipse.jface.nebula" if we think that "org.eclipse.jface.floating" is too tight.
Comment 20 Wim Jongman CLA 2020-11-27 11:49:23 EST
(In reply to Alexander Fedorov from comment #19)
> > org.eclipse.jface.extensions ?
> 
> Well, it is possible but perhaps too generic.
> 
> I would better name it "org.eclipse.jface.nebula" if we think that
> "org.eclipse.jface.floating" is too tight.

I can live with that. There is no chance of clashing. On the flip side, people would not be able to guess it.

Alternatively, we can just drop it inside the existing widgets package? This package name makes the most sense. In addition, we would need to juggle another bundle.
Comment 21 Thomas Wolf CLA 2020-11-27 12:56:33 EST
(In reply to Wim Jongman from comment #20)
> Alternatively, we can just drop it inside the existing widgets package? This
> package name makes the most sense. In addition, we would need to juggle
> another bundle.
s/would need/would NOT need/

If one wants to have this widget in JFace I don't see why it should not be in the org.eclipse.jface bundle.

The existing org.eclipse.jface.widgets package contains so far only *factories* to create other widgets. It would be a little bit strange to just drop a new widget in there now.

If included in the org.eclipse.jface bundle, I'd suggest to keep it in package org.eclipse.jface.widgets.floatingtext, and keep the parent package org.eclipse.jface.widgets reserved for factories.

What was the original motivation to use a new and separate bundle for this? It's not clear to me from the previous comments here.
Comment 22 Alexander Fedorov CLA 2020-11-28 02:29:38 EST
(In reply to Thomas Wolf from comment #21)
> (In reply to Wim Jongman from comment #20)
> > Alternatively, we can just drop it inside the existing widgets package? This
> > package name makes the most sense. In addition, we would need to juggle
> > another bundle.
> s/would need/would NOT need/
> 
> If one wants to have this widget in JFace I don't see why it should not be
> in the org.eclipse.jface bundle.
> 
> The existing org.eclipse.jface.widgets package contains so far only
> *factories* to create other widgets. It would be a little bit strange to
> just drop a new widget in there now.
> 
> If included in the org.eclipse.jface bundle, I'd suggest to keep it in
> package org.eclipse.jface.widgets.floatingtext, and keep the parent package
> org.eclipse.jface.widgets reserved for factories.
> 
> What was the original motivation to use a new and separate bundle for this?
> It's not clear to me from the previous comments here.

Before the submitted gerrit it was not clear what it will take to add this functionality. Now I see that this is the only SWT-based class that doesn't bring any new dependencies.

Adding it to a package org.eclipse.jface.widgets.floatingtext sounds reasonable.
Comment 23 Wim Jongman CLA 2020-11-28 06:44:59 EST
(In reply to Alexander and Thomas from comment #22)

> The existing org.eclipse.jface.widgets package contains so far only
> *factories* to create other widgets. It would be a little bit strange to
> just drop a new widget in there now.

> 
> Adding it to a package org.eclipse.jface.widgets.floatingtext sounds
> reasonable.

I see the logic of separation, but it will bring us into trouble if we add more widgets. It is better to group widgets than to have a separate package for each of them.

I agree it is not ideal to have factories and widgets mixed, but it is not the end of the world either. 

So I am still in favor of putting it into org.eclipse.jface.widgets
Comment 24 Laurent CARON CLA 2020-11-28 07:13:44 EST
+1 for me
Comment 25 Lars Vogel CLA 2020-11-30 06:57:31 EST
(In reply to Wim Jongman from comment #23)
 
> So I am still in favor of putting it into org.eclipse.jface.widgets

What about a new org.eclipse.jface.widgets.custom package in the existing jface plug-in? This way we can separate the factories and and new custom widgets.
Comment 26 Thomas Schindl CLA 2020-11-30 07:50:24 EST
(In reply to Lars Vogel from comment #0)
> FloatingText would be nice to be used in platform, e.g. in wizards. 
> 
> To use this widget in platform code it should be must be moved to platform.

I'm a bit concerned that I don't see how pushing that control to the platform namespace solves any problem and improves useability. So where's the concrete usecase?
Comment 27 Lars Vogel CLA 2020-11-30 07:51:54 EST
(In reply to Thomas Schindl from comment #26)

> I'm a bit concerned that I don't see how pushing that control to the
> platform namespace solves any problem and improves useability. So where's
> the concrete usecase?

See comment 0.
Comment 28 Thomas Schindl CLA 2020-11-30 09:43:00 EST
That comment suggests that it as simple as to just use that control, but that would lead to a worse usability because not all wizards (even from related projects like JDT-UI) will use it.

It looks like others on this bug see enough evidence to push forward the paradigm shift that the platform starts publishing controls directly (outside from SWT-Bundle) so I go back and watch things once more from the sideline.
Comment 29 Wim Jongman CLA 2020-11-30 09:59:18 EST
(In reply to Thomas Schindl from comment #28)


> (outside from SWT-Bundle) so I go back and watch things once more from the
> sideline.

We have enough people commenting from the sideline, Tom. It would nice to see you back with actions.
Comment 30 Thomas Wolf CLA 2020-11-30 11:41:36 EST
Tom's question is actually good. There may be uses for such a widget, but can we get some or at least one concrete example in that change, please? There may be cases where using this might be appropriate, but it's probably not a general alternative to the normal (and more platform-standard) "label left, field right" (or "label right, field left" in RTL) layout.

Probably it also should have tests.
Comment 31 Lars Vogel CLA 2020-12-01 03:07:11 EST
(In reply to Thomas Wolf from comment #30)
> Tom's question is actually good. There may be uses for such a widget, but
> can we get some or at least one concrete example in that change, please?

> FloatingText might be nice to be used in wizards. For example the new project wizard may use it for the Project name field. Once available in platform we can try this out. 

> Probably it also should have tests.

+1, Wim do you already have tests in Nebula for this widget?
Comment 32 Wim Jongman CLA 2020-12-01 04:00:14 EST
(In reply to Lars Vogel from comment #31)

> 
> +1, Wim do you already have tests in Nebula for this widget?

I will take a look at what is there and what can be tested. It just wraps Text.
Comment 33 Thomas Wolf CLA 2020-12-01 04:22:23 EST
(In reply to Lars Vogel from comment #31)
> (In reply to Thomas Wolf from comment #30)
> > Tom's question is actually good. There may be uses for such a widget, but
> > can we get some or at least one concrete example in that change, please?
> 
> > FloatingText might be nice to be used in wizards. For example the new project wizard may use it for the Project name field. Once available in platform we can try this out. 

You mentioned that before. Isn't there a wizard that exists in the same repo so that you could show it in the same commit? Or in a child commit?

I'm frankly said not convinced that departing from the standard label-field layout is a good idea in that particular case. But let's see it, and then people can have an idea what it would mean.
Comment 34 Wim Jongman CLA 2020-12-02 14:29:38 EST
Created attachment 284945 [details]
FloatingText in action

(In reply to Thomas Wolf from comment #33)

Here is a snippet of floating text in the new project wizard.
Comment 35 Phil Beauvoir CLA 2020-12-02 14:50:07 EST
Is this widget natively on any of the three major platforms? IMHO it looks gimmicky and unintuitive. I would hate to see it used in Eclipse.
Comment 36 Lars Vogel CLA 2020-12-03 02:57:02 EST
(In reply to Wim Jongman from comment #34)

> Here is a snippet of floating text in the new project wizard.

Can the widget be configured that the message part looks like it is part of the background, similar to a label? The white area of the message label does not look good IMHO.
Comment 37 Wim Jongman CLA 2020-12-03 04:16:39 EST
Created attachment 284949 [details]
FloatingText with background

(In reply to Lars Vogel from comment #36)
> (In reply to Wim Jongman from comment #34)
> 
> > Here is a snippet of floating text in the new project wizard.
> 
> Can the widget be configured that the message part looks like it is part of
> the background, similar to a label? The white area of the message label does
> not look good IMHO.

Yes, I agree. Here is your example. It looks a bit better.
Comment 38 Lars Vogel CLA 2020-12-03 04:31:20 EST
(In reply to Wim Jongman from comment #37)
> Yes, I agree. Here is your example. It looks a bit better.

Way better. Thank you for working on this. I think it would look even better if the border would be only around the Text widget so that the message label is not separated from the composite.
Comment 39 Matthias Becker CLA 2020-12-03 05:22:22 EST
(In reply to Phil Beauvoir from comment #35)
> Is this widget natively on any of the three major platforms? IMHO it looks
> gimmicky and unintuitive. I would hate to see it used in Eclipse.

Sorry to say that. I also don't like it. And I don't see where it does improve the User Experience. What's wrong with "label left input field right"?
Comment 40 Phil Beauvoir CLA 2020-12-03 05:37:35 EST
(In reply to Matthias Becker from comment #39)
> (In reply to Phil Beauvoir from comment #35)
> > Is this widget natively on any of the three major platforms? IMHO it looks
> > gimmicky and unintuitive. I would hate to see it used in Eclipse.
> 
> Sorry to say that. I also don't like it. And I don't see where it does
> improve the User Experience. What's wrong with "label left input field
> right"?

Indeed.

To clarify my initial comment, this widget looks like nothing I've ever seen before on Windows, Linux or Mac. It certainly doesn't look like a text control. It looks like some hybrid table or combo box. The widget's height strongly gives the impression of something other than a text control - is it a table? A combo box? Do I enter text in it? To me it is an anomaly in standard UI and UX.

Can someone point me to where something similar is used natively in Windows, Linux or Mac?
Comment 41 Lars Vogel CLA 2020-12-03 05:42:01 EST
(In reply to Matthias Becker from comment #39)
> (In reply to Phil Beauvoir from comment #35)
> > Is this widget natively on any of the three major platforms? IMHO it looks
> > gimmicky and unintuitive. I would hate to see it used in Eclipse.
> 
> Sorry to say that. I also don't like it. And I don't see where it does
> improve the User Experience. What's wrong with "label left input field
> right"?

Nothing wrong with the old pattern. But adding a pattern which is very common in modern webapps and mobile apps may make our UI more appealing to new users. See the UX guidelines of Android https://material.io/components/text-fields#theming for a detailed discussion.

They have another nice option to dynamically add the hint to the group descriptor, I opened a feature request for Nebula: https://github.com/eclipse/nebula/issues/289
Comment 42 Phil Beauvoir CLA 2020-12-03 05:45:15 EST
(In reply to Lars Vogel from comment #41)
> (In reply to Matthias Becker from comment #39)
> > (In reply to Phil Beauvoir from comment #35)
> > > Is this widget natively on any of the three major platforms? IMHO it looks
> > > gimmicky and unintuitive. I would hate to see it used in Eclipse.
> > 
> > Sorry to say that. I also don't like it. And I don't see where it does
> > improve the User Experience. What's wrong with "label left input field
> > right"?
> 
> Nothing wrong with the old pattern. But adding a pattern which is very
> common in modern webapps and mobile apps may make our UI more appealing to
> new users. See the UX guidelines of Android
> https://material.io/components/text-fields#theming for a detailed discussion.
> 
> They have another nice option to dynamically add the hint to the group
> descriptor, I opened a feature request for Nebula:
> https://github.com/eclipse/nebula/issues/289

Except that Eclipse is a desktop app.

I seriously doubt that this alien widget "may make our UI more appealing to new users." The Eclipse UI already exists in a parallel universe far removed from reality, don't make it worse.
Comment 43 Lars Vogel CLA 2020-12-03 05:57:34 EST
(In reply to Phil Beauvoir from comment #42)

> The Eclipse UI already exists in a parallel universe far removed
> from reality

Such statements are not fact based arguments and do not help. If you are aware of bad UX patterns in Eclipse please open new bugs for them or point to existing ones if they are relavant for this discussion.

I'm also not 100% convinced that FloatingText will make the UX better but playing with it is definitely interesting for me and obvious other committers like Wim.
Comment 44 Matthias Becker CLA 2020-12-03 06:52:31 EST
(In reply to Lars Vogel from comment #41)
> Nothing wrong with the old pattern. But adding a pattern which is very
> common in modern webapps and mobile apps may make our UI more appealing to
> new users. See the UX guidelines of Android
> https://material.io/components/text-fields#theming for a detailed discussion.

You mean "Label text" from that web page? But Floating Text looks really very different to that "Label text".
Comment 45 Matthias Becker CLA 2020-12-03 06:58:25 EST
(In reply to Lars Vogel from comment #43)
> I'm also not 100% convinced that FloatingText will make the UX better but
> playing with it is definitely interesting for me and obvious other
> committers like Wim.

What do you mean with "playing with it"? For trying it out you don't need that widget directly in platform. You can add nebula as "external" dependency.

I think something like this is good if you have limited screen space (like on a mobile phone). But on desktop UIs you normally don't have space issues with "label left input right".

This will damage UI consistency if we would add this widget in some placed in platform (e.g. some wizards) but have a lot of other places where we have "label left input right". And im my option UI consistency is very imported. Even if a UI pattern is not the perfect solution at one location it's far more important to be constant with other UI. So a user does not have to learn multiple patterns for the same thing.

I am really against the use of FloatingText in Platform.
Comment 46 Alexander Kurtakov CLA 2021-01-07 03:08:02 EST
Mass move 4.19 M1 bugs to M3
Comment 47 Lars Vogel CLA 2021-01-13 06:02:14 EST
Moving to wontfix, as several committers do not like this new widget.