yFiles for JavaFX Programming Samples
This repository contains source code demos and tutorials that use the commercial yFiles for JavaFX software programming library for the visualization of graphs, diagrams, and networks. The library itself is not part of this repository.
Running the Demos
For most of these demos equivalent ones based on yFiles for HTML are hosted online here for everyone to play with. Developers should evaluate the library, instead. The evaluation version also contains these demos and the necessary library to execute the code.
This folder and its subfolders contain demo applications which make use of the different features of yFiles for JavaFX.
|SimpleEditor||Shows a graph editor which demonstrates the editing features of yFiles for JavaFX.|
|OrgChart||View and manipulate an organization chart.|
|RotatableNodes||Shows how support for rotated node visualizations can be implemented on top of the yFiles library.|
|AggregateGraphWrapper||Shows how to analyze a graph by aggregating groups of nodes .|
|CollapsibleTree||Interactively collapse and expand subgraphs.|
|IsometricDrawing||Displays graphs in an isometric fashion to create an impression of a 3-dimensional view.|
|LogicGate||An editor for networks of logic gates with dedicated ports for incoming and outgoing connections.|
|BpmnEditor||Create and edit Business Process Diagrams.|
|HierarchicGrouping||Organize subgraphs in groups and folders and interactively expand and collapse them.|
|TableEditor||Interactive editing of tables using TableEditorInputMode.|
This folder and its subfolders contain demo applications which make use of the different layout algorithms of the layout component of yFiles for JavaFX.
|LayoutStyles||Play with the most used layout algorithms of yFiles.|
|HierarchicLayout||Showcase of one of our central layout algorithms, the HierarchicLayout.|
|InteractiveOrganicLayout||Use InteractiveOrganicLayout for organic layout in interactive environments.|
|FamilyTree||This demo shows how genealogical graphs (family trees) can be visualized.|
|MarqueeClearAreaLayout||Shows how to interactively move graph elements around a marquee rectangle in a given graph layout so that the modifications in the graph are minimal.|
|CriticalPaths||This demo shows how to emphazise important paths with hierarchic and tree layout algorithms.|
|EdgeBundling||Demonstrates edge bundling for different layout styles.|
|EdgeGrouping||Shows the effects of edge and port grouping when arranging graphs with HierarchicLayout.|
|FillAreaAfterDeletion||Shows howto fill free space in the graph after deleting nodes.|
|NodeTypes||A demo that shows how different layout algorithms handle nodes with types.|
|OrganicSubstructures||Shows how OrganicLayout handles substructures and node types.|
|PartialLayout||Shows how to arrange some elements in a graph while keeping other elements fixed.|
|PartitionGrid||Demonstrates the usage of a
|Sankey||Uses Hierarchic Layout to arrange Sankey diagrams.|
|SplitEdges||Shows how to align edges at group nodes using RecursiveGroupLayout together with HierarchicLayout.|
|TreeLayout||Demonstrates the tree layout style and the different ways in which this layout can arrange a node and its children.|
|TreeMap||Shows disk usage of a directory tree with the Tree Map layout.|
This folder and its subfolders contain demo applications which demonstrate how to use and customize the graph editing features provided by yFiles for JavaFX.
|CustomLabelModel||Customize label placement model.|
|CustomPortModel||Customize port location model.|
|ContextMenu||Create a context menu for graph items and manage it.|
|CustomSnapping||This demo shows how to customize
|DragAndDrop||Shows the drag and drop support provided by yFiles for JavaFX.|
|EdgeReconnectionPortCandidateProvider||Demo code that shows how to customize the reconnection behavior for existing edges.|
|LabelHandleProvider||Enable interactive rotating and resizing labels.|
|LensInputMode||This demo shows how to use a specialized LensInputMode to display the part of the graph the pointer is hovering over in a kind of magnifying glass.|
|OrthogonalEdges||Customize orthogonal edge editing.|
|PortCandidateProvider||Customize the ports at which edges connect to nodes.|
|PositionHandler||Demo code that shows how to customize the movement behavior of
|ReparentHandler||Demo code that shows how to customize the reparent gesture in a grouped graph.|
|ReshapeHandleProvider||Implements a custom
|ReshapeHandleProviderConfiguration||Customize the reshape behavior of nodes.|
|SizeConstraintProvider||Demo code that shows how to customize the resizing behavior of
This folder and its subfolders contain demo applications which illustrate the integration of yFiles for JavaFX with different GUI frameworks as well as integration of external libraries into yFiles for JavaFX.
|EclipseRCP||Demo application that shows how to integrate yFiles for JavaFX in an Eclipse E4 RCP.|
|Neo4j||Demo application that shows how to integrate Neo4j into yFiles for JavaFX.|
|SwtDemo||Demo application that shows how to integrate yFiles for JavaFX in a Standard Widget Toolkit (SWT) application.|
|SwingDemo||Demo application that shows how to integrate yFiles for JavaFX in a Swing application.|
This folder and its subfolders contain demo applications which make use of the different features of the viewer component of yFiles for JavaFX.
|Css||Shows the possibilities to customize the visualizations in yFiles for JavaFX with the help of CSS.|
|SVGImageExport||Export a graph as a SVG image.|
|BackgroundImage||Shows how to add background visualizations to a graph control.|
|ClickableStyleDecorator||Shows how to handle mouse clicks in specific areas of a node's visualization.|
|EdgeToEdge||Shows edge-to-edge connections.|
|GraphEvents||Explore the different kinds of events dispatched by yFiles for JavaFX.|
|Filtering||Shows how to temporarily remove nodes or edges from the graph.|
|FilteringWithFolding||Shows how to combine yFiles filtering and folding features.|
|Folding||Shows how to use yFiles folding feature.|
|GanttChartDemo||Shows how to create a "Gantt chart" with yFiles for JavaFX.|
|GraphCopy||Shows how to copy a graph or sub graph.|
|GraphViewer||A viewer which demonstrates different kinds of graphs created with yFiles for JavaFX.|
|GridSnapping||Demonstrates how to enable grid snapping functionality for graph elements.|
|ImageExport||Export a graph as a bitmap image.|
|LargeGraphs||Improve the rendering performance for very large graphs in yFiles for JavaFX.|
|LevelOfDetail||Demonstrates how to change the level of detail when zooming in and out.|
|Printing||Print the contents of a yFiles GraphControl.|
|RenderingOrder||Shows the effect of different rendering policies to the model items.|
|SmartClickNavigation||Demonstrates how to navigate in a large graph.|
|Snapping||Demonstrates how to enable snapping functionality for graph elements.|
|Tooltips||Demonstrates how to add tooltips to graph items.|
This folder and its subfolders contain demo applications which make use of the different features of the styles component of yFiles for JavaFX.
|ArrowNodeStyle||Implement sophisticated styles for graph objects in yFiles for JavaFX.|
|CompositeNodeStyle||This demo shows how to combine several node styles into one.|
|DefaultLabelStyle||Shows the most important configuration options for the built-in DefaultLabelStyle class.|
|GroupNodeStyle||Implement sophisticated styles for graph objects in yFiles for JavaFX.|
|RectangleNodeStyle||Implement sophisticated styles for graph objects in yFiles for JavaFX.|
|RichTextLabelStyle||Using the JavaFX 8 Rich Text API in yFiles.|
|ShapeNodeStyle||Implement sophisticated styles for graph objects in yFiles for JavaFX.|
|SimpleCustomStyle||Shows how to implement sophisticated styles for graph objects in yFiles for JavaFX.|
|TemplateStyle||Shows how to use
|TextWrapping||Shows how to use the text wrapping and overrun style feature provided by the
|ZoomInvariantLabelStyleDemo||Demonstrates zoom-invariant label rendering.|
This folder and its subfolders contain demo applications which demonstrate how to use the
GraphBuilder classes for binding graph elements to business data in yFiles for JavaFX.
|GraphBuilder||Demonstrates creating a graph using the
|InteractiveNodesGraphBuilder||Demonstrates creating a graph using class
This folder and its subfolders contain demo applications which demonstrate some of the graph analysis algorithms available in yFiles for JavaFX.
|GraphAnalysis||Algorithms to analyse the structure of a graph in yFiles for JavaFX.|
|ShortestPath||Usage and visualization of shortest path algorithms in yFiles for JavaFX.|
|NetworkFlows||Usage and visualization of network flow algorithms in yFiles for JavaFX.|
This folder and its subfolders contain demo applications which illustrate tasks for deployment of yFiles for JavaFX applications, e.g. obfuscation.
|GradleDemo||Demonstrates how to set up a basic yFiles for JavaFX project using Gradle.|
|MavenDemo||Demonstrates howto set up a basic yFiles for JavaFX project using Apache Maven.|
|ObfuscationDemo||Demonstrates the obfuscation of an yFiles for JavaFX application via yGuard.|
The yFiles for JavaFX tutorials are extensive source code samples that present the functionality of the yFiles for JavaFX library.
To navigate to a specific tutorial, just follow the corresponding link from the table below.
|Getting Started||Introduces basic concepts as well as main features like custom styles, full user interaction, Undo/Redo, clipboard, I/O, grouping and folding.|
|Custom Styles||A step-by-step guide to customizing the visual representation of graph elements. This tutorial is intended for users who want to learn how to create custom styles from scratch.|
Use of the software hosted in this repository is subject to the license terms of the corresponding yFiles for JavaFX license. Owners of a valid software license for a yFiles for JavaFX version that these demos are shipped with are allowed to use the demo source code as basis for their own yFiles for JavaFX powered applications. Use of such programs is governed by the rights and conditions as set out in the yFiles for JavaFX license agreement. More details here. If in doubt, feel free to contact the yFiles for JavaFX support team.