yFiles WPF Developer's Guide (Analysis and Layout Part)
Next
yFiles WPF Developer's Guide (Analysis and Layout Part)
Legal Notice
Table of Contents
Changes From Previous Edition
Developer's Guide Enhancements
New Features of yFiles WPF 2.2
1. Preface
Diagrams
Benefits and Problems
From Diagrams to Graphs
Graph-related Problems
About yFiles WPF
What it is
What it's not
Application Domains
2. Introducing yFiles WPF Algorithms
yFiles WPF Algorithms
yFiles Basic
yFiles Layout
Programming Samples, Tutorials, and Further yFiles WPF Resources
How to Read this Developer's Guide
Where to Find Things in yFiles WPF Algorithms
3. Using yFiles WPF Algorithms Functionality
Connecting Graph Models
Class CopiedLayoutIGraph
Class YGraphAdapter
Layout Modules
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
Advanced Layout Concepts
Grouped Graphs
Setup for Layout
Port Constraints
Setup for Layout
Tutorial Demo Code
Port Candidates
Matching Port Candidates
Setup for Layout
Tutorial Demo Code
Modeling Enhanced Port Constraints Using Port Candidates
Setup for Routing
Edge/Port Grouping (Bus-Style Edge Routing)
Setup for Layout
Tutorial Demo Code
Incremental Layout
Use Cases
Related Concepts
Layout Stages
Tutorial Demo Code
Class ComponentLayouter
Supplemental Layout Data
Layout Options
Advanced Layout Techniques
Tutorial Demo Code
Class GraphLayoutLineWrapper
Layout Options
Major Layout Algorithms
Circular Layout
Hierarchical Layout
Organic Layout
Orthogonal Layout
Tree 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
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
Emphasizing Critical Paths
Advanced Layout Concepts
Integrated Labeling
Node Label Awareness
Port Constraints
Port Candidates
Edge/Port Grouping (Bus-style Edge Routing)
Layout of Grouped Graphs
Related Classes
Class SimplexNodePlacer
Applicable Layout Stages
Swimlane Layout
Setup for Layout
The Partition Grid
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
Label Handling
Node Label Awareness
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
Orthogonal Layout
Supplemental Layout Data
Layout Options
Orthogonal Layout of Grouped Graphs
Label Handling
Integrated Labeling
Node Label Awareness
Tutorial Demo Code
Configuration Hints
Quality Versus Time
Orthogonal Layout of Grouped Graphs
Supplemental Layout Data
Layout Options
Label Handling
Integrated Labeling
Node Label Awareness
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
Tutorial Demo Code
Compact Orthogonal Layout
Layout Options
Tutorial Demo Code
Tree Layout
Advanced Layout Concepts
Sorting Child Nodes
Enhancing the Layout Process
Tutorial Demo Code
Directed
Supplemental Layout Data
Layout Options
Advanced Layout Concepts
Integrated Labeling
Incremental Layout
Balloon
Layout Options
Advanced Layout Concepts
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
Incremental Layout
Grouping Support
Tutorial Demo Code
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
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
Tutorial Demo Code
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
Tutorial Demo Code
Channel Edge Routing
Supplemental Layout Data
Routing Options
Affected Edges
Advanced Routing Features
Port Constraints
Port Candidates
Incremental Routing
Related Classes
Tutorial Demo Code
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
Advanced Routing Features
Port Constraints
Port Candidates
Configuration Hints
Esthetic Buses
Tutorial Demo Code
Supplemental Layout Data
Automatic Label Placement
Labeling Scenarios
Label Models
Generic Labeling
Integrated Labeling
Tutorial Demo Code
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
Language Constructs for Iteration
Cursors
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
A. Obfuscation
Why Obfuscation Matters
Name Obfuscation and its Benefits
Obfuscating a yFiles WPF-based Application
Obfuscation Requirements
Obfuscation Excludes
Obfuscation Tools
B. License Mechanism
yFiles WPF License Files
General Concept
Development vs. Distribution License Files
Pre-installed License File in Evaluation Distribution
Separate License Files for Purchased yFiles WPF Packages
Glossary
Copyright ©2004-2011, yWorks GmbH. All rights reserved.