Vaadin 7 beta 10 released


Updated Error Handling

The Terminal class has been removed and the functionality is now provided by com.vaadin.server.ErrorHandler. An ErrorHandler can be set either for a UI or a VaadinSession (or actually on any component in the hierarchy). The first ErrorHandler found when traversing upwards in the hierarchy is used. All errors from connectors are now ConnectorErrorEvents containing a getConnector() method for finding the connector.


Attach and detach listeners

It is now possible to listen to component attach/detach events from outside the component. CleanUpListener in UI have been removed in favor of DetachListener for UI as they served the same purpose.


Navigator and ComponentContainers

Navigator now automatically navigates to the initial fragment if the Navigator is added in UI.init().

Some components which previously implemented ComponentContainer now only implement HasComponents and do not provide add/removeComponent.


AddonContext and DynamicConnectorResource have been removed

Based on feedback we have decided to completely remove the AddonContext concept and allow add-on creators to freely specify how, and if, the add-on needs to be initialized in an application.

We have also removed DynamicConnectorResource because of overlap with other existing functionality. We plan to introduce a similar feature in a later version but with different API.


The Final API touches

This version contains the final API changes for Vaadin 7.0.0. We are now working on fixing the remaining bugs and expect the following release to be 7.0.0.rc1.


For short examples on how to use the new features, check out the Vaadin 7 mini tutorials:
https://vaadin.com/wiki/-/wiki/Main/Vaadin+7

For information on how to migrate from Vaadin 6 to Vaadin 7, see
http://dev.vaadin.com/wiki/Vaadin7/MigrationGuide

This is an beta release so we expect there to be bugs. We will no longer be making large new features but finalization of the current features might still affect API in some places. All your comments on the new features are welcome. Please post all Vaadin 7 related comments in the Vaadin 7 category.


Also note some theme changes

We now fully support multiple themes on one page. This has some implications:


The preferred way to make your own themes is now Sass.
You should wrap your styles in .themename{}, e.g:

// mytheme.scss
@import "../reindeer/reindeer.scss";
.mytheme {
   @include reindeer;
   // your styles go here
}


If you’re not using Sass
(quick upgrade, or can’t/won’t use for whatever reason), you should import legacy-styles.css instead of styles.css:

//mytheme.css
@import "../reindeer/legacy-styles.css";
// your styles go here

Note that with this method, you loose the ability to have multiple themes on one page.

Hi,

I had a Tree inside a Panel. Since beta 9, I changed it into a Tree inside a VerticalLayout inside a Panel.

Everything is the same only that I cannot make the layout scroll any more, since the scrollable option has disappeared.

I cannot find the way of doing it in the new API. Everything is full sized and there are no layout problems detected in debug mode.

Can you give me a hand? :slight_smile:

Layouts have never supported scrolling. If the contents of the panel is higher than the panel, then the panel will add scrollbars. If your panel contents (VerticalLayout) is 100% high then you won’t have scrollbars, instead the layout will clip its contents. If your layout has a fixed height or is set to undefined height, then you will have scrollbars if the layout is higher than the panel.

Yes thanks, setting he intermediate VerticallLayot to undefined solved it.


The preferred way to make your own themes is now Sass.
You should wrap your styles in .themename{}, e.g:

// mytheme.scss
@import "../reindeer/reindeer.scss";
.mytheme {
   @include reindeer;
   // your styles go here
}

Please note that the theme name is not added to overlays right now (or am I missing something?). So if you go for the preferred way, no styles are applied to overlay content.

Is the fact that Component does not contain isImmediate() deliberate? Comment (not javadoc, there is none) for AbstractComponent.isImmediate() says that it uses documentation from implemented interface, which is not true AFAIK.

In fact there is more stuff which is implemented in AbstractComponent but not declared in Component. E.g. I don’t understand why Component declares setCaption, but not setDescription (only getDescription). Also get/setData and get/setComponentError might be useful in Component.

I understand that it might be too late at this moment since you don’t want to change the API anymore, sorry for not chiming in sooner.

There is an overlay container element containing the same style names as the main div, including the theme name. All overlays go into this container so your styles should apply to them aswell.

There is one problem with overlays not going into the overlay container I’m aware of, which is the drag image used for drag’n’drop. We hope to have this fixed for the next version.

Hallo,

I tried to update my application from beta9 to beta10, but I have ran into problems. The web application is still there, but can’t access ./VAADIN/themes subdirectory in the browser. The consequence is that the application is unuseable…

BTW, I’m using mvn as build tool (3.0.4), having on ‘jar’ module for the vaadin client code and (another) ‘war’ module for building the war file.

Any suggestions?

aanno

Are you using a custom theme? css or scss?