yFiles Developer's Guide
Next
yFiles Developer's Guide
Legal Notice
Table of Contents
Changes From Previous Edition
Developer's Guide Enhancements
New Features of yFiles 2.5
General
1. Preface
Diagrams
Benefits and Problems
From Diagrams to Graphs
Graph-related Problems
About yFiles
What it is
What it's not
Application Domains
2. Introducing the yFiles Library
yFiles Library Components
yFiles Basic
yFiles Viewer
yFiles Layout
How to Read This Developer's Guide
First-Time Users
Experienced Users
Where to Find Things in yFiles
3. General Concepts in yFiles
Basic Graph Structure
Clear Responsibilities
Accessing Graph Elements
Storing Elements
Binding Data to Graph Elements
A Word on Subclassing Graph Elements
4. Working With the Graph Structure
Creating Graphs and Graph Elements
Graph Structure Functionality
More About Class Graph
Graph Elements
Complexity
Advanced Topics
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
Notes
Analyzing Graphs
Quickly Checking for Graph Characteristics
Advanced Graph Characteristics
5. Automatic Graph Layout
Layout Algorithms
Advanced Layout Features
Layout Architecture
Graph Structure Enhancements
Advanced Topics
Layout Infrastructure
Concepts
The Layout Stages Concept
Default Compound Layout Process
Using Buffered Layout
Providing Supplemental Layout Data
Advanced Layout Features
Hierarchically Organized Graphs
Port Constraints
Port Candidates
Edge/Port Grouping (Bus-style Edge Routing)
Layout Stages
Tutorial Demo Code
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
Incremental Layout
Use Cases
Circular Layout
Supplemental Layout Data
Layout Options
Partition Arrangement Options
Tree Arrangement Options
Tutorial Demo Code
Configuration Hints
Hierarchical Layout
Supplemental Layout Data
Layout Options
Drawing Style Options
Layer Assignment Options
Node Order Options
Advanced Layout Features
Package Structure
Tutorial Demo Code
Hierarchical Layout of Hierarchically Organized Graphs
Supplemental Layout Data
Layout Options
Tutorial Demo Code
Incremental Hierarchical Layout
Specifying Hints
Supplemental Layout Data
Layout Options
Drawing Style Options
Advanced Layout Features
Related Classes
Layout of Hierarchically Organized Graphs
Tutorial Demo Code
Organic Layout
Supplemental Layout Data
Layout Options
Advanced Layout Features
Tutorial Demo Code
Smart Organic Layout
Supplemental Layout Data
Layout Options
Advanced Layout Features
Configuration Hints
Interactive Organic Layout
General Usage
Supplemental Layout Data
Layout Options
Tutorial Demo Code
Orthogonal Layout
Supplemental Layout Data
Layout Options
Advanced Layout Features
Tutorial Demo Code
Configuration Hints
Orthogonal Layout of Hierarchically Organized Graphs
Supplemental Layout Data
Layout Options
Tutorial Demo Code
Directed Orthogonal Layout
Supplemental Layout Data
Layout Options
Advanced Layout Features
Tutorial Demo Code
Compact Orthogonal Layout
Layout Options
Tutorial Demo Code
Tree Layout
Enhancing the Layout Process
Directed
Supplemental Layout Data
Layout Options
Advanced Layout Features
Balloon
Layout Options
Advanced Layout Features
Horizontal/Vertical
Supplemental Layout Data
Layout Options
Compact
Supplemental Layout Data
Layout Options
Generic Tree Layout
Supplemental Layout Data
Layout Options
Advanced Layout Features
Tutorial Demo Code
Edge Routing Algorithms
Organic Routing
Orthogonal Routing
Organic Edge Routing
Routing Options
Tutorial Demo Code
Orthogonal Edge Routing
Supplemental Layout Data
Routing Options
Advanced Routing Features
Enhancing the Routing Process
Tutorial Demo Code
Channel Edge Routing
Supplemental Layout Data
Routing Options
Advanced Routing Features
Related Classes
Tutorial Demo Code
Automatic Label Placement
Labeling Scenarios
Concepts
Label Models
General Labeling
Integrated Labeling
Tutorial Demo Code
6. Displaying and Editing Graphs
Model-View-Controller Paradigm
Graph Structure Enhancements
Class Graph2D
Advanced Topics
Bringing Graph Elements to Life: The Realizer Concept
Binding Realizers
General Features
Node Realizers
Edge Realizers
Realizer-Related Features
Label Support
Related Classes
Selection State
Writing Customized Realizers
Subclassing and Overriding
Providing Interface Implementations
Swing User Interface Components as Node Realizers
Rendering
Editor Functionality
Tutorial Demo Code
View Implementations
Class Graph2DView
Class Overview
Related Classes and Interfaces
User Interaction
Mouse-Driven Actions
Keyboard-Driven Actions
Label Editor
Node-Related Editing Capabilities
ViewMode Workings
Class EditMode
Class NavigationMode
Class CellEditorMode
Class MagnifierViewMode
Class AutoDragViewMode
Related Classes and Interfaces
Customizing an EditMode
Events and Listeners
Graphical Property Changes
Selection State Changes
Printing a Graph's Visual Representation
Scaling and Clipping
Title Bar and Footer Support
Printing Preview
Creating a Dedicated Printing View
Tutorial Demo Code
Animations for Graph Elements
Animation Framework
Tutorial Demo Code
Advanced Application Logic
Undo/Redo
Clipboard
Layout Morphing
7. Graph Hierarchies
Concepts
Grouping and Nesting
Special Proxy Elements
Working With Graph Hierarchies
Comparing the Concepts
Nesting Characteristics
Managing Graph Hierarchies
Class HierarchyManager
Class DefaultHierarchyGraphFactory
Tutorial Demo Code
Node Realizers
Class GroupNodeRealizer
Interface AutoBoundsFeature
View Implementations
Class HierarchyJTree
Related Classes
User Interaction
Class HierarchyEditMode
Tutorial Demo Code
Events and Listeners
Hierarchy Changes
Automatic Layout
Class GroupLayoutConfigurator
8. Input and Output
Graph Exchange and Graph Export Formats
Input/Output Handlers
Reading and Writing Graph Structure Data
YGF
Common Usage
Extending YGF With Custom Data
Tutorial Demo Code
GML
What it Looks Like
Common Usage
Extending GML With Custom Data
Tutorial Demo Code
GML File Format
XGML
What it Looks Like
Common Usage
TGF
What it Looks Like
Common Usage
Exporting a Graph's Visual Representation
Preparing the Graph
Using GIF and JPG
Using the Java Image I/O API
Image Tiling
Image Maps
yFiles Extension Packages
GraphML
ySVG
yExport
9. Settings Dialogs and Components
Overview
Model-Delegate Pattern
Basic Functionality
Creating Model and View
Synchronizing Editors and Option Items
Defining Dependencies Between Option Items
Undefined Values in Option Items
Internationalization and Localization
Serialization of Settings
Tutorial Demo Code
Advanced Topics
Synchronizing Multiple Editors
Tutorial Demo Code
10. GraphML Extension Package
GraphML
What GraphML Looks Like
GraphML Default Extension Mechanism
Customizing the GraphML Extension Mechanism
Using the yFiles GraphML Extension Package
Direct Support for Simple Data Types
General Support for Structured Data
Support for Custom Realizer Implementations
yFiles GraphML Post-processors
Tutorial Demo Code
Advanced Topics
yFiles XSLT Support for GraphML
Reading and Writing Graphs of Arbitrary Type
11. ySVG Extension Package
Scalable Vector Graphics
Using the ySVG Extension Package
Using SVG Content
Customizing SVG Content
Tutorial Demo Code
GraphML Support
12. yExport Extension Package
Vector Graphics File Formats
Using the yExport Extension Package
Using the System Clipboard
A. Obfuscation
Why Obfuscation Matters
Name Obfuscation and its Benefits
Name Obfuscation Using yGuard
Adjusting Names
Checking Obfuscation Success
Tutorial Demo Code
Glossary
Index
Copyright ©2004-2008, yWorks GmbH. All rights reserved.