Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

  • Effect: The tree might still jump slightly when expanding/collapsing nodes, just for the time it repaints.
  • Cause: It is likely that there is some scroll position hack in connectors that we should assert how useful it is.
    • FOUND! line 138 in TableConnector: getWidget().updateFirstVisibleAndScrollIfNeeded(uidl);
  • Fix: Patch TableConnectorto remove this call.
    • Jira
      serverMagnolia
      keyMGNLUI-960

7.

...

  • Cause: The status icon is currently served as a plain Vaadin Label, using a ColumnGenerator. This means that Vaadin has to maintain and update all those label's state, for as many rows as the table has.
  • Effect: When expanding e.g. modules in config app, there is still a delay of approximately 0.5-1s.
  • Fix: We should serve the status/permissions icons as style names, using a CellStyleGenerator, then we avoid those extra components and make the tree even more responsive.
    • (warning) This may well require to change how we configure custom columns; we need a new concept here.

...

Subsequent UIDL requests (tick)

  • Effect: When selecting a table row, we send a UIDL request and get location fragment / action bar changes in response, but then a new UIDL request is sent to server with the new location fragment.
  • Cause: Since Vaadin 7, the UI (root element) has the Navigator API built-in, which is aware of the page URI and fragment, but we don't use it at all for location handling.
    • When client-side repaints, Vaadin's VUI sees a location change on the client-side, which differs from its server-side state
  • Fix: We can easily update Vaadin UI's page fragment at the same time we set the magnolia fragment. Then when VUIlistens to location changes, it is no longer out of sync.
    • Jira
      serverMagnolia
      keyMGNLUI-964

8. Vaadin components in cells

  • Cause: The status icon is currently served as a plain Vaadin Label, using a ColumnGenerator. This means that Vaadin has to maintain and update all those label's state, for as many rows as the table has.
  • Effect: When expanding e.g. modules in config app, there is still a delay of approximately 0.5-1s.
  • Fix: We should serve the status/permissions icons as style names, using a CellStyleGenerator, then we avoid those extra components and make the tree even more responsive.
    • (warning) This may well require to change how we configure custom columns; we need a new concept here.

9. Scrollbar blinking

  • Effect: When changing table selection, we can see the scrollbar quickly disappears and reappears.
  • Cause: There is a client-side hack called runWebkitOverflowAutoFix() that briefly sets overflow:hidden before reverting it to auto, so that scrollbar appearance is recalculated.
    • That fix doesn't make sense for selection changes, although it does for collapse requests.
  • Fix: Patch the client-side again to process that fix only for collapse requests. Please note that partial updates might behave differently regarding this.

...