yFiles FLEX Developer's Guide: Analysis and Layout

Search the Developer's Guide

Legal Notice

Table of Contents

Changes From Previous Edition
Developer's Guide Enhancements
New Features of yFiles FLEX Client Layout Extension 1.5
1. Preface
Diagrams
Benefits and Problems
From Diagrams to Graphs
Graph-related Problems
About yFiles FLEX and yFiles FLEX Client Layout Extension
What it is
What it's not
Application Domains
2. Introducing yFiles FLEX Client Layout Extension
yFiles FLEX Library Components
yFiles FLEX Client Layout Extension
How to Read this Developer's Guide
Where to Find Things in yFiles FLEX Client Layout Extension
3. Using yFiles FLEX Client Layout Extension Functionality
Connecting Graph Models
Class CopiedLayoutIGraph
Class YGraphAdapter
Layout Morphing
Class LayoutExecutor
4. Graph Analysis
Using yFiles Graph Analysis Functionality
Analysis Algorithms
Quickly Checking for Graph Characteristics
Binding Data to Graph Elements
Breadth-First Search
Depth-First Search
Graph Connectivity
Shortest Paths
Centrality Measures
Spanning Trees
Transitivity
Trees
5. Automatic Graph Layout
Layout Algorithms
Advanced Layout Concepts
Using yFiles Layout Functionality
Layout Infrastructure
IGraph-related Adapter Mechanisms
Concepts
The Layout Stages Concept
Default Compound Layout Process
Providing Supplemental Layout Data
Abort Mechanism for Layout Calculations
Advanced Layout Concepts
Grouped Graphs
Setup for Layout
Port Constraints
Setup for Layout
Port Candidates
Matching Port Candidates
Setup for Layout
Modeling Enhanced Port Constraints Using Port Candidates
Setup for Routing
Edge/Port Grouping (Bus-Style Edge Routing)
Setup for Layout
Partition Grid
Setup for Layout
Node Halos
Incremental Layout
Use Cases
Related Concepts
Layout Stages
Class ComponentLayouter
Supplemental Layout Data
Layout Options
Advanced Layout Techniques
Class GraphLayoutLineWrapper
Layout Options
Major Layout Algorithms
Circular Layout
Hierarchical Layout
Organic Layout
Orthogonal Layout
Tree Layout
Radial Layout
Series-parallel Layout
Domain-Specific Layout Algorithms
Family Tree Layout
Supplemental Layout Data
Layout Options
Circular Layout
Supplemental Layout Data
Layout Options
Layout Style
Returning Circle Indices
Partition Arrangement Options
Tree Arrangement Options
Label Handling
Node Label Awareness
Node Halos
Tutorial Demo Code
Configuration Hints
Compact Layout
Hierarchical Layout Style
About the Style
Terminology
Application Areas
Relevant Classes
Class IncrementalHierarchicLayouter
Layout Options
Drawing Style Options
Non-incremental Layout Mode
Layer Assignment Options
Node Order Options
Incremental Layout Mode
Use Cases
Specifying Hints
Constrained Layer Assignment
Constrained Node Sequencing
Grid Placement
Emphasizing Critical Paths
Advanced Layout Concepts
Integrated Labeling
Node Label Awareness
Port Constraints
Port Candidates
Edge/Port Grouping (Bus-style Edge Routing)
Node Halos
Layout of Grouped Graphs
Related Classes
Class SimplexNodePlacer
Applicable Layout Stages
Swimlane Layout
Tutorial Demo Code
Supplemental Layout Data
Related Layout Algorithms
Organic Layout Style
About the Style
Application Areas
Relevant Classes
Class SmartOrganicLayouter
Drawing Style Options
Algorithm Execution Options
Incremental Layout
Layout of Grouped Graphs
Group Node Handling
Partitioned Layout
Label Handling
Node Label Awareness
Node Halos
Configuration Hints
Quality Versus Time
Compactness
Overlap Removal
Tutorial Demo Code
Supplemental Layout Data
Related Layout Algorithms
Interactive Organic Layout
General Usage
Setup
State
Polling for Results
Interaction
Supplemental Layout Data
Layout Options
Output Restrictions
Tutorial Demo Code
Orthogonal Layout
Supplemental Layout Data
Layout Options
Orthogonal Layout of Grouped Graphs
Label Handling
Integrated Labeling
Node Label Awareness
Related Classes
Applicable Layout Stages
Configuration Hints
Quality Versus Time
Orthogonal Layout of Grouped Graphs
Supplemental Layout Data
Layout Options
Label Handling
Integrated Labeling
Node Label Awareness
Related Classes
Applicable Layout Stages
Tutorial Demo Code
Directed Orthogonal Layout
Supplemental Layout Data
Layout Options
Advanced Layout Concepts
Directed Edges
Edge/Port Grouping (Bus-style Edge Routing)
Integrated Labeling
Node Label Awareness
Node Halos
Related Classes
Applicable Layout Stages
Compact Orthogonal Layout
Layout Options
Applicable Layout Stages
Tree Layout
Advanced Layout Concepts
Sorting Child Nodes
Enhancing the Layout Process
Tutorial Demo Code
Directed
Supplemental Layout Data
Layout Options
Advanced Layout Concepts
Node Halos
Integrated Labeling
Incremental Layout
Balloon
Supplemental Layout Data
Layout Options
Advanced Layout Concepts
Node Halos
Integrated Labeling
Incremental Layout
Horizontal/Vertical
Supplemental Layout Data
Layout Options
Compact
Supplemental Layout Data
Layout Options
Generic Tree Layout
Supplemental Layout Data
Layout Options
Node Placer Implementations
Advanced Layout Concepts
Integrated Labeling
Port Constraints
Node Halos
Incremental Layout
Grouping Support
Support for Multi-parent Structures
Tutorial Demo Code
Radial Layout Style
About the Style
Terminology
Class RadialLayouter
Layout Options
Drawing Style Options
Advanced Layout Concepts
Node Halos
Supplemental Layout Data
Series-parallel Layout Style
About the Style
Terminology
Relevant Classes
Class SeriesParallelLayouter
Layout Options
Drawing Style Options
Incremental Layout
Series-parallel Graphs vs. General Graphs
Label Handling
Integrated Labeling
Node Label Awareness
Support for Grouped Graphs
Supplemental Layout Data
Partial Layout
About the Concept
Class PartialLayouter
Subgraph Components
Edge Routing
Drawing Style Options
Algorithm Execution Options
Support for Grouped Graphs
Configuration Hints
Consider Node Alignment
Subgraph Component Placement
Supplemental Layout Data
Multi-page Layout
About the Concept
Terminology
Relevant Classes
Class MultiPageLayouter
Setup for Layout
Layout Options
Algorithm Execution Options
Related Classes and Interfaces
Class MultiPageLayout
Interface ElementFactory
Tutorial Demo Code
Supplemental Layout Data
Edge Routing Algorithms
Organic Routing
Orthogonal Routing
Organic Edge Routing
Routing Options
Enhancing the Routing Process
Supplemental Layout Data
Polyline Edge Routing
About this Algorithm
Relevant Classes
Class EdgeRouter
Routing Options
Advanced Routing Concepts
Label Awareness
Port Constraints
Port Candidates
Edge/Port Grouping (Bus-style Edge Routing)
Node Halos
Routing in Grouped Graphs
Routing in Partition Grids
Incremental Routing
Related Classes
Monotonic Edge Paths
Supplemental Layout Data
Orthogonal Edge Routing
Supplemental Layout Data
Routing Options
Monotonic Edge Paths
Advanced Routing Features
Port Constraints
Port Candidates
Incremental Routing
Label Handling
Node Label Awareness
Enhancing the Routing Process
Channel Edge Routing
Supplemental Layout Data
Routing Options
Affected Edges
Advanced Routing Features
Port Constraints
Port Candidates
Incremental Routing
Related Classes
Applicable Layout Stages
Orthogonal Bus-style Edge Routing
About this Algorithm
Terminology
Relevant Classes
Class BusRouter
Setup for Routing
Routing Options
Incremental Routing
Related Classes
Class BusDescriptor
Class BusRepresentations
Applicable Layout Stages
Advanced Routing Features
Port Constraints
Port Candidates
Configuration Hints
Esthetic Buses
Supplemental Layout Data
Automatic Label Placement
Labeling Scenarios
Label Models
Preferred Placement of Edge Labels
Generic Labeling
Using an Alternate Label Model
Supplemental Layout Data
Integrated Labeling
6. Underlying Graph Model of the yFiles Graph Analysis Algorithms
Basic Algorithms Graph Structure
Clear Responsibilities
Accessing Graph Elements
Storing Elements
Binding Data to Graph Elements
A Word on Subclassing Graph Elements
7. Working with the Algorithms Graph Structure
Creating Graphs and Graph Elements
Graph Structure Functionality
More About Class Graph
Graph Elements
Class Node
Class Edge
Complexity
Advanced Topics
Hiding Graph Elements
Copying a Graph
Events and Listeners
Structural Changes
Iteration Mechanisms
Iteration and Element Removal
Alternative Iteration Techniques
Containers
High-Level Features
Low-Level Features
Binding Data to Graph Elements
Maps and Data Providers
Default Map Implementations
Creating Customized Data Accessors
Notes
8. Underlying Graph Model of the yFiles Layout Algorithms
Layout Architecture
Graph Structure Enhancements
Positional and Dimensional Information
Advanced Topics
Copying a LayoutGraph
Invoking a Layout Algorithm Using Buffered Layout
Class BufferedLayouter
Working with the Layout Graph Structure
Grouped Graph Setup for Layout
Glossary
Index