Architecture

Central aspects of the linkki Framework are

  • the declarative definition of UIs via annotations

  • the flexible data binding

In the first part of this chapter the BindingContext and BindingManager basics, and how they interact, are detailed.

Further on, Data binding with PMOs is explained. These can be simple PMOs, in which values are stored, or PMOs with domain model binding, where values are bound directly to the domain model. The binding of multiple model objects in a PMO is also explained.

Which properties of the defined UI elements can be controlled and which possibilities linkki provides, is discussed in the section Binding of further UI element properties.

The chapter concludes with Cross-Sectional Data Binding.

Modules

linkki is split into several modules from which you can pick what you need:

linkki Core

The core module contains UI framework independent code to setup bindings, aspects, BindingContext etc. In addition, it provides common usable implementations for reading linkki annotations. As a result, linkki-core dependent code can stay unmodified when switching to a different UI framework. It also sets up as much as possible to enable the framework specific part to easily create the UI elements and layout components. If you intend to use linkki with Vaadin 7 or 8 (instead of writing your own UI framework mapping), you can directly use the matching dependency below.

To declare the dependency in maven:

<dependency>
    <groupId>org.linkki-framework</groupId>
    <artifactId>linkki-core</artifactId>
</dependency>

linkki Core for Vaadin

To use linkki with Vaadin you need to reference a module providing all the Vaadin version specific implementations and all component annotations described in UI Components.

Use the dependency matching your Vaadin version:

<dependency>
    <groupId>org.linkki-framework</groupId>
    <artifactId>linkki-core-vaadin7</artifactId>
</dependency>

or

<dependency>
    <groupId>org.linkki-framework</groupId>
    <artifactId>linkki-core-vaadin8</artifactId>
</dependency>

linkki Application Framework for Vaadin

The application framework contains additional classes for building business applications, described in Application Framework. See Maven Dependency for the linkki Application Framework.

linkki Widgets

linkki extends Vaadin with custom widgets in its own widgetset. It is included in the Maven Dependency for the linkki Application Framework and can be included for plain linkki-core-vaadin as a precompiled widgetset from

<dependency>
    <groupId>org.linkki-framework</groupId>
    <artifactId>linkki-vaadin8-addon-compiled</artifactId>
</dependency>

or to be included in your own widgetset from

<dependency>
    <groupId>org.linkki-framework</groupId>
    <artifactId>linkki-vaadin8-addon-client</artifactId>
</dependency>

Index

  1. BindingContext Basics
  2. Data Binding with PMOs
  3. Data on Multiple Layers
  4. Binding further UI properties
  5. Cross-Sectional Data Binding