google-cloud-eclipse icon indicating copy to clipboard operation
google-cloud-eclipse copied to clipboard

Updating Dataflow pipeline options UI takes too long, freezing UI for a brief moment

Open chanseokoh opened this issue 8 years ago • 7 comments

It is pipelineOptionsForm.updateForm() in PipelineArgumentsTab.updatePipelineOptionsForm() that takes a lot of time. The root cause is probably adding too many UI controls (labels, text fields, etc) dynamically. It's not clear if this can really be optimized though.

chanseokoh avatar Aug 16 '17 23:08 chanseokoh

~~At least it's not freezing now, with the use of BusyIndicator.showWhile(). This shows an hourglass, for example.~~ (UPDATE: https://github.com/GoogleCloudPlatform/google-cloud-eclipse/issues/2287#issuecomment-590957498)

chanseokoh avatar Sep 06 '17 18:09 chanseokoh

@elharo Do we really need to use a form toolkit here ?. It will show with a white background which is different from other launch tabs. I think, to improve performance we need to clean up some code like calling layout method multiple times, dispose of form, etc..

lak-proddev avatar May 23 '19 13:05 lak-proddev

I don't know. I haven't dug into this code in much depth. @tgroh might know more.

elharo avatar May 23 '19 13:05 elharo

I believe we should change options to a similar style (below image). Instead of form toolkit. Because disposing and recreating form toolkit is expensive. image

lak-proddev avatar Jun 10 '19 23:06 lak-proddev

Sounds good. We don't have much expertise in UI, and I have also wondered what a form toolkit is and why sometimes it is used. The toolkit was there from the beginning when we imported the Dataflow codebase into this repo.

chanseokoh avatar Jun 10 '19 23:06 chanseokoh

Generally, Form toolkit uses for forms in views and editors. Not in wizards, Property or preference pages, etc.. https://www.eclipse.org/articles/Article-Forms/article.html

lak-proddev avatar Jun 10 '19 23:06 lak-proddev

At least it's not freezing now, with the use of BusyIndicator.showWhile(). This shows an hourglass, for example.

I don't see an hourglass. On Eclipse 2019-09.

chanseokoh avatar Feb 25 '20 16:02 chanseokoh