Skip to content

Releases: vaadin/flow

One-way data binding for Polymer templates

16 Mar 11:49
Compare
Choose a tag to compare

New features

  • PolymerTemplate now supports a server-side model. Values from the model can be used in regular one-way [[binding]] definitions in the template.
    • Advanced features such as sub items, lists and two-way bindings are still missing.
  • Existing client-side polymer event handlers are now run even if there's a server-side @EventHandler with the same name.

Fixes

  • Setting innerHTML of an element explicitly detaches all children.
  • Setting outerHTML of an element explicitly forbidden.
  • Requests for favicon.ico are not handled by Router.
  • Picked fixes from Framework v7 and v8.

Demos

  • There's a README.md.
  • Polymer minesweeper has been updated to use PolymerTemplate instead of only using low-level Element features. (Still only works in Chrome.)

Tutorials

All changes

https://github.com/vaadin/hummingbird/milestone/23?closed=1

@EventData for Polymer events and query string support

09 Mar 11:35
Compare
Choose a tag to compare

New features

  • @EventData can be used on PolymerTemplate @EventHandler method parameters to collect data from the client-side event.
  • Query string parameters can now be used for navigation.
    • Parameters are available in various events
    • The query string is preserved when handling history events
    • Can give query string parameters as input to various navigation methods

Fixes

  • Picked fixes from Framework v7 and v8

Demos

  • No relevant demo changes

Tutorials

  • Angular template tutorials have been moved to the side and marked as deprecated.

All changes

https://github.com/vaadin/hummingbird/milestone/22?closed=1

Initial Polymer template support

02 Mar 09:25
Compare
Choose a tag to compare
Pre-release

New features

  • WebComponents annotation to specify polyfill version
  • Added PolymerTemplate class
  • Polymer template client -> server event handler
  • Old Angular template class Template renamed to AngularTemplate

Fixes

  • Updated GWT version to 2.8.0
  • Picked fixes from Framework v7 and v8

Performance tests

  • Expense manager application scalability test
  • Expense manager application memory test

Demos

Tutorials

All changes

https://github.com/vaadin/hummingbird/milestone/21?closed=1

Loading performance improvements

16 Feb 09:52
Compare
Choose a tag to compare
Pre-release

New features

  • Improved loading speed of the application:
    • All imports done via annotations (@JavaScript, @HtmlImport) are now loaded in parallel, disregarding their order
    • Initial JS dependencies are now included into the HTML (due to performance reasons)
  • Allow adding and removing elements during same request

Fixes

  • Reuse existing DOM node for re-added back StateNode
  • Restore all current instance values after running access tasks

Demos

No changes

Tutorials

No changes

Breaking changes

All imports done via annotations (@JavaScript, @HtmlImport and @StyleSheet) are now imported with no specific order.
This means that HTML imports are now loaded disregarding the JavaScript imports order.
If you want to have a specific import order, please specify it in on of the HTML imports.

All changes

https://github.com/vaadin/hummingbird/milestone/20?closed=1

0.0.16

10 Feb 07:48
Compare
Choose a tag to compare
0.0.16 Pre-release
Pre-release

New features

  • Let NavigationHandler define HTTP status codes
  • Let onLocationChange set HTTP status codes
  • Let location change handlers reroute to another navigation handler
  • Support customizing prerender for Components
    • Method getPrerenderElement() can be used to customise pre rendering
  • Remove web components from pre-render HTML
  • Resolve includes before actual parsing in templates
  • Cache parsed templates based on a hash of the inputs

Fixes

  • Preserve white space inside text nodes in templates
  • Use consistent getter/setter order in tutorial
  • Use pageXOffset instead of scrollY to support IE11
  • Remove references to inheritable thread locals in javadocs
  • Show prerender HTML to user
  • Included Template should have correct parent TemplateNode

Demos

No changes

Tutorials

No changes

All changes

https://github.com/vaadin/hummingbird/milestone/19?closed=1

JavaScript Integration helpers

25 Jul 08:52
Compare
Choose a tag to compare
Pre-release

New features

  • Provide $element to template event handlers
    • (click)="$server.clickOnText($element.textContent)
    • Refers to the element that has the listener, not $event.target
  • Generalize @EventHandler from Template into a Component feature
    • $server callbacks available in element.$server on the client side
    • @EventHandler public void MyComponent.publishedMethod(int someNumber); on the server defines the method, theElement.$server.publishedMethod(42) on the client invokes the method
  • Add Element.callFunction for invoking JavaScript methods on elements
    • e.g. myWebComponent.getElement().callFunction("setValue",12)

Fixes

  • Throw an exception if arrays are used in a Template Model
  • Ensure assertion errors are not shown as empty messages
  • Fix unclear error message for @EventHandler method with non-void return type
  • Don't include <script> from Template into pre-render HTML

Demos

No changes

Tutorials

All changes

https://github.com/vaadin/hummingbird/milestone/18?closed=1

Model subproperties and scroll position restoration

15 Jul 10:18
Compare
Choose a tag to compare

New features

  • Restore body scroll position when navigating back to a previously opened view
  • Support Template Model subproperties in JavaScript expressions
    • <span>{{greeting ? greeting.text : "No greeting available"}}</span>
  • @Uses annotation for importing HTML, JavaScript and StyleSheet dependencies from other component classes. See tutorial for demo

Fixes

  • Fix <body> location in prerender HTML
  • Add more info on exception messages for TemplateModel propertyType
  • Explicitly disallow NaN and Infinity in the model instead of just silently producing the wrong result
  • Add a missing tutorial link for Creating a Component Container

Demos

Fixed address book table position to be fixed.

Tutorials

All changes

https://github.com/vaadin/hummingbird/milestone/17?closed=1

Lots of small fixes

06 Jul 09:13
Compare
Choose a tag to compare
Lots of small fixes Pre-release
Pre-release

New features

  • Introduce @Synchronize to specify property synchronization declaratively

Fixes

  • Support inline styles for the root element in an Html component
  • Allow remote super dev mode connections by default
  • Ensure debug logging cannot cause application to fail
  • Allow setting the same parent view many times
  • Ensure that NaN doubles do not end up in the JSON
  • Format floating point numbers in the model in Java in the same way as in JS
  • Include path segment in router error message
  • Reduce network usage by using a pool for reused immutable values
  • Bind state nodes deferredly to avoid missing updated data

Demos

No demo updates this time.

Tutorials

Updated tutorials about using @Synchronize with Components and Web Components

All changes

https://github.com/vaadin/hummingbird/milestone/16?closed=1

Pre-rendering

29 Jun 07:46
Compare
Choose a tag to compare
Pre-rendering Pre-release
Pre-release

New features

  • Pre-rendering of the initial view
    • Enables search engines to index the application
    • Shows the view to the end user before any JavaScript has been loaded and initialized
  • Support for testing pre-rendering through ?prerender=only/no
  • Stylesheets are immediately loaded. Previously the client engine was started before loading any dependencies.
  • Possibility to override how the error view is created by using the RouterConfiguration.setErrorHandler method.

Fixes

  • All special characters are now correctly encoded when sent to the client.
  • Template parsing is now case sensitive
    • Binding to camelCase properties in a template now works
    • Binding to camelCase class names in a template now works
  • Element.getAttribute("style") and Element.getStyle() works correctly for template elements
  • Previous inline styles are correctly cleared when using Element.setAttribute("style","...")
  • Boolean attributes are correctly rendered as attr instead of attr=""
  • Overridable methods in ViewRenderer get more context for making decisions and avoiding to calculate the same values multiple times.

Demos

No demo updates this time.

Tutorials

No tutorial updates this time.

All changes

https://github.com/vaadin/hummingbird/issues?q=milestone%3A0.0.12

Bean import filters

22 Jun 08:15
Compare
Choose a tag to compare
Bean import filters Pre-release
Pre-release

New features

  • When importing a bean to the template model, you can define that some of the bean properties should be excluded from the model
    • The same annotations are also supported on list setters, where they will apply to each item in the imported list.
public interface MyModel extends TemplateModel {
  @Exclude("id", "password") // includes all other properties
  public void setUser(User user);

  @Include("firstName", "lastName") // excludes all other properties
  public void setPerson(Person person)
}
  • View instance creation is pluggable to enable integration with e.g. Spring or CDI
  • Client side exception messages are shown as a floating overlay in the browser when production mode is not active
  • @Id can now be used in template classes to inject Element instances. Previously only component instances could be injected.

Fixes

  • Eliminated memory leak caused by redeploying Hummingbird
  • The $server variable is now properly populated inside *ngFor
  • @HtmlImport dependencies are now always loaded before @JavaScript
  • Atmosphere dependency updated to be compatible with Jetty 9.3
  • Fixed browser version check so that the embedded browser in Eclipse on OS X is no longer considered outdated
  • Renamed Element methods for increased clarity:
    • getOwnTextContent renamed to getText
    • setTextContent renamed to setText
    • getTextContent renamed to getTextRecursively

Demos

  • Address book demo updated to only import some parts of the bean and to support editing and saving through the form Java HTML

Tutorials

All changes

https://github.com/vaadin/hummingbird/issues?q=milestone%3A0.0.11