Docs

Documentation versions (currently viewingVaadin 24)

Feature Pack

Modernize your application while preserving code expressiveness and developer productivity features.

Feature Pack is a part of the Modernization Toolkit. It’s a collection of classes and components that isolates useful features from popular developer frameworks, and reproduce them in Vaadin Flow. The scope of Feature Pack was originally limited to Vaadin 7 and 8 features. It now also includes Swing, AWT and select features from JGoodies and NetBeans.

Feature Pack replaces the older Classic Components project which sought to be close drop-in replacements for several Vaadin 7 and 8 components and classes. As a part of the Modernization Toolkit, Feature Pack goes beyond Classic Components in its setup in a few ways.

Differences from Classic Components

Feature Pack shifts the emphasis from compile-time compatibility in Java and DOM equivalence, to features that you can use. Unlike Classic Components, no part of Feature Pack is marked as deprecated because there’s no horizon set for when the support for Feature Pack ends. Unlike Classic Components, most if not all empty methods have been removed that do nothing but throw an UnsupportedException at runtime, leaving a collection of classes and methods that all work;

Implementing Feature Pack in your application is something you can do as part of your regular software development lifecycle, or as part of a broader modernization project. As a tool for modernization, Feature Pack is used by the Dragonfly transpiler that targets it with its refactoring rules.

Vaadin-Oriented Features

The following Vaadin-inspired features are supported in Feature Pack:

Feature Pack Class or Component Vaadin Framework Inspiration

com.vaadin.featurepack.ui.AbsoluteLayout

com.vaadin.ui.AbsoluteLayout

com.vaadin.featurepack.ui.FormLayout

com.vaadin.ui.FormLayout

com.vaadin.featurepack.ui.GridLayout

com.vaadin.ui.GridLayout

com.vaadin.featurepack.ui.HorizontalLayout

com.vaadin.ui.HorizontalLayout

com.vaadin.featurepack.ui.Label

com.vaadin.ui.Label

com.vaadin.featurepack.ui.Panel

com.vaadin.ui.Panel

com.vaadin.featurepack.ui.VerticalLayout

com.vaadin.ui.VerticalLayout

Desktop-Oriented Features

The following desktop-inspired features are supported in the Feature Pack:

Feature Pack Class or Component Desktop Inspiration

com.vaadin.featurepack.desktop.Box

javax.swing.Box

com.vaadin.featurepack.desktop.FButton

javax.swing.JButton

com.vaadin.featurepack.desktop.FLabel

javax.swing.JPanel

com.vaadin.featurepack.desktop.Panel

javax.swing.JPanel

com.vaadin.featurepack.desktop.Window

javax.swing.JFrame

com.vaadin.featurepack.desktop.layouts.AbstractLayout

java.awt.LayoutManager

com.vaadin.featurepack.desktop.layouts.BorderLayout

java.awt.BorderLayout

com.vaadin.featurepack.desktop.layouts.BoxLayout

javax.swing.BoxLayout

com.vaadin.featurepack.desktop.layouts.CardLayout

java.awt.CardLayout

com.vaadin.featurepack.desktop.layouts.FlowLayout

java.awt.FlowLayout

com.vaadin.featurepack.desktop.layouts.GridBagLayout

java.awt.GridBagLayout

com.vaadin.featurepack.desktop.layouts.GridLayout

java.awt.GridLayout

com.vaadin.featurepack.desktop.layouts.GroupLayout

org.jdesktop.layout.GroupLayout

com.vaadin.featurepack.desktop.layouts.form.FormLayout

com.jgoodies.forms.layout.FormLayout