Release Notes
yFiles for Java (Swing)

Version 3.6 is the latest major release for yFiles for Java (Swing).
See the changelog for a list of all changes in this and all other versions.

Below you will find the technical requirements and a list of all new features and improvements.

Technical Requirements

Building applications based on yFiles for Java (Swing) requires the Java SE Development Kit 8 or newer.

All changes
Version 3.6

This release brings exciting new major features, and many other minor new features, improvements, and bugfixes to all parts of the library. As always, there are new and improved demos demonstrating these features and improvements.

If you are updating from an older version of yFiles for Java (Swing), have a look at the list of incompatible changes.

Major new features

New styles for graph items

The RectangleNodeStyle class is a new node style that uses a rectangular shape whose corners are either rounded or cut diagonally. Its properties specify which corners get rounded, the corner radius, its fill, and its border stroke.

The new GroupNodeStyle class is a node style primarily designed for collapsed and expanded group nodes. It draws a (rounded) rectangle with an optional tab or ribbon, and offers extensive configuration options for an optional icon, its various fills, and paddings. The new GroupNodeLabelModel is tailored to place labels in the tab or tab background of a GroupNodeStyle.

The new ArrowNodeStyle class draws a node as an arrow shape. The arrow can point in one of the four compass directions, and the arrow head slope, the shaft thickness, the fill, and the border stroke can be configured.

Similarly, the new ArrowEdgeStyle class draws an edge as an arrow shape. This style always points from the source port to the target port, ignoring bends, and can be configured in the same way as the node style.

The DefaultLabelStyle class now supports different common background shapes.

The ShapeNodeStyle class now supports three additional shapes: HEXAGON2 (a six-sided polygon with tips at top and bottom), STAR5_UP (a five-pointed star with one tip pointing upwards), and PILL (a stadium shape with the shorter sides rounded).

Its new property KeepingIntrinsicAspectRatioEnabled defines whether to keep the intrinsic aspect ratio of the shape.

The new BridgeEdgeStyle class renders an edge as a 3-segment bridge with a given height between the edge's source and target port locations. This is especially useful to distinguish parallel multi-edges between the same pair of nodes.

Wrap text to shape

The text wrapping feature of DefaultLabelStyle now wraps the text inside a given shape instead of just the rectangular label bounds. The TextWrappingShape enum provides the predefined shapes, and includes for example pill, ellipse, and hexagon. The new DefaultLabelStyle.TextWrappingPadding property defines the padding between the chosen shape and the text.

If the predefined shapes don't fit your needs, you can override the DefaultLabelStyleRenderer.getTextWrappingOutline method to return any custom convex path as GeneralPath instead.

Compact disk layout

The new CompactDiskLayout class arranges a graph on a disk, packing the nodes as dense as possible. This layout is mostly suitable for graphs with small components whose loosely connected nodes should be grouped and packed in a small area.

The associated new class CompactDiskLayoutData allows to specify custom data considered during the layout calculation.

Cactus group layout

The new CactusGroupLayout class offers an alternative representation of hierarchically nested data. It places the children of a group along the groups circular border, resembling the structure of a cactus.

The associated new class CactusGroupLayoutData allows to specify custom data considered during the layout calculation.

New Features

View

Interaction

Hierarchic Layout

Organic Layout

Balloon Layout

Radial Layout

Circular Layout

Analysis

Improvements

General

View

Interaction

Styles

GraphBuilder

Hierarchic Layout

Organic Layout

Circular Layout

Tree Layout

Edge Router

Generic Labeling

Layout

Analysis

Bugfixes

View

Graph

Interaction

Styles

GraphML

GraphBuilder

Table

Hierarchic Layout

Organic Layout

Clear Area Layout

Orthogonal Layout

Edge Router

Generic Labeling

Circular Layout

Single Cycle Layout

Layout

Incompatible Changes

API

Changes of Default Behavior

Deprecations

New Demos