floratos-lab / geworkbench-web

geWorkbench web application - the evolution of geWorkbench project into the age of cloud computing.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

upgrade to vaadin 7

zhouji2013 opened this issue · comments

vaadin 6 is out of date. It is getting harder to get supports in documentation and tools.

for invient charts, some options:
[1] pay - not really a good option even if we have money
[2] convert the free version (it is open source and doable in my opinion)
[3] using other library, e.g. http://vaadin.com/directory#addon/jfreechart-wrapper-for-vaadin
[4] ?

"Invient Charts add-on is only available for Vaadin 6. That add-on is free open source, but it uses the HighCharts library that is not free for most purposes, so you would need a separate license for it anyway."
from https://vaadin.com/forum#!/thread/2715245

  • Switched geworkbenchweb to Vaadin 7 in eclipse, using Ivy for dependency management;
  • changed Application to UI, updated all places calling Application with proper UI method;
  • added layout as content to all window/panels, added components to layout instead of window/panel;
  • window -> subwindow, browser -> page
  • replaced addons for vaadin7: appfoundations.jar, TableExport-1.4.0.jar, FancyLayout-1.0.0.beta1.jar, messagebox-2.0.6.jar, easyuploads-7.0.1.jar, PagedTable-0.6.5.jar, BorderLayout-0.5.jar, and updated calls using these addons;
  • temporarily replaced invientcharts-0.8.6.jar with vaadin-charts-1.1.3.jar trial version;
  • reorganized the imports;
  • rewriting the client side widget, adding connectors for client-server communication;
  • script not supported in widgetset.gwt.xml
  • use server push instead of icepush
  • remove threadLocal, transactionlistener, httprequestlistener
  • session handling
  • scheme changed from css to scss
  • textfield property changed
  • window.open(resource, "_self") deprecated
  • no updateFromUIDL() in Link
  • Notification changed

The latest code for this issue as of today is in branch vaadin7-maven.

I found that the uploading is extremely slow compared with the vaadin6 version (master branch). I need to find out the problem.

The uploading itself is fast. The update of progress bar takes very long time (after the update finishes, including all the progress listener, finished listener returned).

I was not able to solve this mystery.

  • it has nothing to do with the deprecated ProgressIndicator. When I switched to the currently proper ProgressBar, the problem is still there.
  • When the progress bar is pending, the browser is frozen.
  • If the progessbar.setText sets a constant value (instead of the actual progress variable), the problem disappears. More obviously, if there is no progress bar or no ProgressListener, there is no problem.
  • Even if we don't update the progress bar from the parent container, after we add the separated progress bar (but updated the same way) to the parent container, it caused the same problem.

The only conclusion at this point is that there is some synchronization issue when we construct GUI in the complicated way as it is now. We should simplify it. When it works (as in vaadin 6 version), we are just lucky.

Another issue as the code is now: after "add to workspace" finishes, you have to manually click somewhere on the GUI to trigger the updating of the pending node and the popping up the confirmation message.