diff --git a/types/yfiles/index.d.ts b/types/yfiles/index.d.ts index 32f42f12ab..a2b21ef530 100644 --- a/types/yfiles/index.d.ts +++ b/types/yfiles/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for yFiles for HTML 2.0.0.1 +// Type definitions for yFiles for HTML 2.0.1 // Project: http://www.yworks.com/products/yfiles-for-html // Definitions by: yWorks GmbH HTML Team // Definitions: https://github.com/yWorks/DefinitelyTyped @@ -9,7 +9,7 @@ ** ** yWorks proprietary/confidential. Use is subject to license terms. ** - ** Copyright (c) 2015 by yWorks GmbH, Vor dem Kreuzberg 28, + ** Copyright (c) 2017 by yWorks GmbH, Vor dem Kreuzberg 28, ** 72070 Tuebingen, Germany. All rights reserved. ** ***************************************************************************/ @@ -23,8 +23,7 @@ declare namespace yfiles{ } } -declare namespace system{ -}declare namespace yfiles{ +declare namespace yfiles{ export namespace lang{ /** * The root of the class hierarchy of the yFiles for HTML class framework. @@ -38,27 +37,27 @@ declare namespace system{ *

* The other methods are part of the {@link yfiles.lang.Object_Interface} type, only. *

- * @class yfiles.lang.Object_Interface + * @class */ export interface Object_Interface extends Object{} export class Object_Interface { /** * Tests whether this object and the other object are equal. - * @param {Object} other The tested object. - * @returns {boolean} true, if the objects are equal; false otherwise. + * @param other The tested object. + * @returns true, if the objects are equal; false otherwise. */ equals(other:Object):boolean; /** * Tests if two objects are equal. - * @param {Object} a One of the objects. Can be null or of any type. - * @param {Object} b One of the objects. Can be null or of any type. - * @returns {boolean} true, if the objects are equal; false otherwise. + * @param a One of the objects. Can be null or of any type. + * @param b One of the objects. Can be null or of any type. + * @returns true, if the objects are equal; false otherwise. * @static */ static equals(a:Object,b:Object):boolean; /** * Returns the type of this object. - * @returns {yfiles.lang.Class} The type of this object. + * @returns The type of this object. */ getClass():yfiles.lang.Class; /** @@ -66,16 +65,16 @@ declare namespace system{ *

* The requested name must be a property (with getter and/or setter). *

- * @param {string} name The name of the property. - * @param {boolean} bound If true, then the get/set methods of the returned object will be bound to this instance. - * @returns {Object} An object with a get and/or set method that reads/writes to the specified field. + * @param name The name of the property. + * @param bound If true, then the get/set methods of the returned object will be bound to this instance. + * @returns An object with a get and/or set method that reads/writes to the specified field. */ getOwnProperty(name:string,bound:boolean):Object; /** * Returns the most recently defined property descriptor in the prototype chain of the given object. - * @param {Object} o The object that the property belongs to - * @param {string} name The name of the property. - * @returns {Object} The most recently defined property descriptor in the prototype chain of the given object. + * @param o The object that the property belongs to + * @param name The name of the property. + * @returns The most recently defined property descriptor in the prototype chain of the given object. * @static */ static getPropertyDescriptor(o:Object,name:string):Object; @@ -84,7 +83,7 @@ declare namespace system{ *

* If two objects are {@link yfiles.lang.Object_Interface#equals equal}, then they must have the same hash code. *

- * @returns {number} The hash code of this object. + * @returns The hash code of this object. */ hashCode():number; /** @@ -92,34 +91,34 @@ declare namespace system{ *

* It will also clone any value types. *

- * @returns {Object} A cloned instance of the same type. + * @returns A cloned instance of the same type. */ memberwiseClone():Object; /** * Tests if two objects are identical. - * @param {Object} a One of the objects. - * @param {Object} b One of the objects. - * @returns {boolean} true, if the objects are the identical; false otherwise. + * @param a One of the objects. + * @param b One of the objects. + * @returns true, if the objects are the identical; false otherwise. * @static */ static referenceEquals(a:Object,b:Object):boolean; /** * Displays the textual representation of the object. - * @returns {string} The textual representation of this object. + * @returns The textual representation of this object. */ toString():string; static $class:yfiles.lang.Class; } /** * This type represents an abstract value, that is a function that is not implemented. - * @class yfiles.lang.Abstract + * @class */ export interface Abstract extends Object{} export class Abstract { /** * Tests whether the given object or property descriptor is a representation of an abstract value. - * @param {Object} o The object to test. - * @returns {boolean} true, if the object is abstract; false otherwise. + * @param o The object to test. + * @returns true, if the object is abstract; false otherwise. * @static */ static isAbstract(o:Object):boolean; @@ -220,36 +219,36 @@ declare namespace system{ *
  • $class: a reference to the {@link yfiles.lang.Class} instance that provides reflective information about this type.
  • *
  • $super: the parent class.
  • * - * @class yfiles.lang.Class + * @class */ export interface Class extends Object{} export class Class { /** * Returns the class object for the given name, or null if no such class exists. - * @param {string} name The name of the requested class. - * @returns {yfiles.lang.Class} The class object or null, if no such class exists. + * @param name The name of the requested class. + * @returns The class object or null, if no such class exists. * @static */ static forName(name:string):yfiles.lang.Class; /** * Returns all attributes that belong to this type. - * @param {boolean} [inherited=true] If true, then the attributes of the parent types are also added to the list. Default value is false. - * @returns {Array.} An array of attributes that belong to this type. + * @param [inherited=true] If true, then the attributes of the parent types are also added to the list. Default value is false. + * @returns An array of attributes that belong to this type. */ getAttributes(inherited?:boolean):yfiles.lang.Attribute[]; /** * Returns an array of all properties of the type. - * @param {boolean} [inherited=true] - * @param {boolean} [staticProperties=false] - * @returns {Array.} An array of properties. + * @param [inherited=true] + * @param [staticProperties=false] + * @returns An array of properties. */ getProperties(inherited?:boolean,staticProperties?:boolean):yfiles.lang.PropertyInfo[]; /** * Returns an array of all properties of the type. * @param {Object} options The parameters to pass. - * @param {boolean} [options.inherited=true] - * @param {boolean} [options.staticProperties=false] - * @returns {Array.} An array of properties. + * @param [options.inherited=true] + * @param [options.staticProperties=false] + * @returns An array of properties. */ getProperties(options:{inherited?:boolean,staticProperties?:boolean}):yfiles.lang.PropertyInfo[]; /** @@ -314,8 +313,8 @@ declare namespace system{ * graphEditorInputMode.clickInputMode.validClickHitTestable = myHitTestable; * * - * @param {Object} obj The object to modify. - * @param {...Object} traits Array or variable number of {@link yfiles.lang.Trait}s, {@link yfiles.lang.Class} objects of traits or fully qualified string names of + * @param obj The object to modify. + * @param traits Array or variable number of {@link }s, {@link } objects of traits or fully qualified string names of * traits. * @static */ @@ -325,13 +324,13 @@ declare namespace system{ *

    * This is the only way to test if an object implements a {@link yfiles.lang.Trait}. *

    - * @param {Object} o The object that may be an instance of this type. - * @returns {boolean} true, if the object is an instance of this type; false otherwise. + * @param o The object that may be an instance of this type. + * @returns true, if the object is an instance of this type; false otherwise. */ isInstance(o:Object):boolean; /** * Creates a new instance of this type using its default constructor. - * @returns {Object} A new instance of this type using its default constructor. + * @returns A new instance of this type using its default constructor. */ newInstance():Object; /** @@ -369,45 +368,45 @@ declare namespace system{ } /** * Wrapper class for the JavaScript number primitive type. - * @class yfiles.lang.Number + * @class * @implements {yfiles.lang.IComparable} */ export interface Number extends Object,yfiles.lang.IComparable{} export class Number { /** * Compares this number with another one. - * @param {Object} obj The other number to compare with. - * @returns {number} 0 if both numbers are equal, -1 if this number is smaller than the other one, 1 otherwise. + * @param obj The other number to compare with. + * @returns 0 if both numbers are equal, -1 if this number is smaller than the other one, 1 otherwise. */ compareTo(obj:Object):number; static $class:yfiles.lang.Class; } /** * Wrapper class for the JavaScript string primitive type. - * @class yfiles.lang.String + * @class * @implements {yfiles.lang.IComparable} */ export interface String extends Object,yfiles.lang.IComparable{} export class String { /** * Compares this string with another one. - * @param {Object} obj The other string to compare with. - * @returns {number} 0 if both strings are equal, -1 if this string comes before the other one in lexicographic sort order, 1 otherwise. + * @param obj The other string to compare with. + * @returns 0 if both strings are equal, -1 if this string comes before the other one in lexicographic sort order, 1 otherwise. */ compareTo(obj:Object):number; static $class:yfiles.lang.Class; } /** * Wrapper class for the JavaScript boolean primitive type. - * @class yfiles.lang.Boolean + * @class * @implements {yfiles.lang.IComparable} */ export interface Boolean extends Object,yfiles.lang.IComparable{} export class Boolean { /** * Compares this boolean with another one. - * @param {Object} obj The other boolean to compare with. - * @returns {number} 0 if both booleans are equal, -1 if this boolean is false and the other is true, 1 otherwise. + * @param obj The other boolean to compare with. + * @returns 0 if both booleans are equal, -1 if this boolean is false and the other is true, 1 otherwise. */ compareTo(obj:Object):number; static $class:yfiles.lang.Class; @@ -424,14 +423,14 @@ declare namespace system{ * with a instanceof A and A.$class.isInstance(a). *

    * @see yfiles.lang.Struct#createDefault - * @class yfiles.lang.Struct + * @class */ export interface Struct extends Object{} export class Struct { /** * This methods creates an instance of the struct in which all of its values are set to their default values without using * any of its constructors. - * @returns {Object} + * @returns * @static */ static createDefault():Object; @@ -441,13 +440,13 @@ declare namespace system{ * As opposed to the implementation of * {@link yfiles.lang.Object_Interface#equals}, this implementation tests the members of both objects to determine equality. *

    - * @param {Object} other The other struct. - * @returns {boolean} true, if both objects are equal; false otherwise. + * @param other The other struct. + * @returns true, if both objects are equal; false otherwise. */ equals(other:Object):boolean; /** * Calculates the hash code of this struct based on its members. - * @returns {number} The hash code. + * @returns The hash code. */ hashCode():number; static $class:yfiles.lang.Class; @@ -470,38 +469,38 @@ declare namespace system{ * if(state === RequestState.FAILED) { ... } * * - * @class yfiles.lang.Enum + * @class */ export interface Enum extends Object{} export class Enum { /** * Returns the name of an enum value. - * @param {yfiles.lang.Class} type The type of the enum. - * @param {yfiles.lang.Enum} value The value of the field. - * @returns {string} The name of the field. + * @param type The type of the enum. + * @param value The value of the field. + * @returns The name of the field. * @static */ static getName(type:yfiles.lang.Class,value:yfiles.lang.Enum):string; /** * Returns a list of all field names that represent an enum value. - * @param {yfiles.lang.Class} type The type of the enum. - * @returns {yfiles.collections.IEnumerable.} A list of all field names that represent an enum value. + * @param type The type of the enum. + * @returns A list of all field names that represent an enum value. * @static */ static getValueNames(type:yfiles.lang.Class):yfiles.collections.IEnumerable; /** * Returns a list of all numeric values. - * @param {yfiles.lang.Class} type The type of the enum. - * @returns {yfiles.collections.IEnumerable.} A list of all numeric values. + * @param type The type of the enum. + * @returns A list of all numeric values. * @static */ static getValues(type:yfiles.lang.Class):yfiles.collections.IEnumerable; /** * Returns the value of the field with the given ID. - * @param {yfiles.lang.Class} type The type of the enum. - * @param {string} id The name of the field. - * @param {boolean} ignoreCase If true, then the case of the field will be ignored and the search is case-insensitive. - * @returns {yfiles.lang.Enum} The value of the field with the given ID. + * @param type The type of the enum. + * @param id The name of the field. + * @param ignoreCase If true, then the case of the field will be ignored and the search is case-insensitive. + * @returns The value of the field with the given ID. * @static */ static parse(type:yfiles.lang.Class,id:string,ignoreCase:boolean):yfiles.lang.Enum; @@ -516,15 +515,15 @@ declare namespace system{ *
  • delegates can be bound to a different target, which acts as this in the delegate function body,
  • *
  • multiple delegates can be combined into a single delegate instance, which provides multicast functionality.
  • * - * @class yfiles.lang.delegate + * @class */ export interface delegate extends Object{} export class delegate { /** * Combines two delegates into a single one. - * @param {yfiles.lang.delegate} d1 One of the delegates to combine. - * @param {yfiles.lang.delegate} d2 One of the delegates to combine. - * @returns {yfiles.lang.delegate} A delegate that combines both original delegates. + * @param d1 One of the delegates to combine. + * @param d2 One of the delegates to combine. + * @returns A delegate that combines both original delegates. * @static */ static combine(d1:Function,d2:Function):Function; @@ -534,40 +533,40 @@ declare namespace system{ * When the delegate is executed, the functions will be applied on * target, independent from the current closure. If multiple functions are specified, they will all be applied in order. *

    - * @param {Array.} functions The functions from which the delegate should be created. - * @param {Object} target The target object on which the functions should be applied. - * @returns {yfiles.lang.delegate} A new delegate. + * @param functions The functions from which the delegate should be created. + * @param target The target object on which the functions should be applied. + * @returns A new delegate. * @static */ static createDelegate(functions:Function[],target:Object):Function; /** * Apply function in the current execution context. - * @param {yfiles.lang.delegate} function2 The function to execute. - * @param {...Object} args Optional function arguments. - * @returns {Object} The result from invoking function. + * @param function2 The function to execute. + * @param args Optional function arguments. + * @returns The result from invoking function. * @static */ static dynamicInvoke(function2:Function,...args:Object[]):Object; /** * Return a list of all delegates that are combined into del. - * @param {yfiles.lang.delegate} del The delegate to test. - * @returns {Array.} A list of all delegates that are combined into del. + * @param del The delegate to test. + * @returns A list of all delegates that are combined into del. * @static */ static getInvocationList(del:Function):Function[]; /** * Removes the first occurrence of d2 from the {@link yfiles.lang.delegate#getInvocationList invocation list} of d1. - * @param {yfiles.lang.delegate} d1 The delegate that should be modified. - * @param {yfiles.lang.delegate} d2 The delegate that should be removed. - * @returns {yfiles.lang.delegate} The modified delegate d1. + * @param d1 The delegate that should be modified. + * @param d2 The delegate that should be removed. + * @returns The modified delegate d1. * @static */ static remove(d1:Function,d2:Function):Function; /** * Removes all occurrences of d2 from the {@link yfiles.lang.delegate#getInvocationList invocation list} of d1. - * @param {yfiles.lang.delegate} d1 The delegate that should be modified. - * @param {yfiles.lang.delegate} d2 The delegate that should be removed. - * @returns {yfiles.lang.delegate} The modified delegate d1. + * @param d1 The delegate that should be modified. + * @param d2 The delegate that should be removed. + * @returns The modified delegate d1. * @static */ static removeAll(d1:Function,d2:Function):Function; @@ -597,7 +596,7 @@ declare namespace system{ * All trait types have a $class property, which contains their {@link yfiles.lang.Class type}, and a static {@link yfiles.lang.Trait#isTrait} method that * can be used to test whether an object implements the trait. *

    - * @class yfiles.lang.Trait + * @class */ export interface Trait extends Object{} export class Trait { @@ -606,8 +605,8 @@ declare namespace system{ *

    * This method is equivalent to using obj.$class.isTrait but safe in case the object does not have a $class property. *

    - * @param {Object} o The trait candidate. - * @returns {boolean} true, if the object is a trait; false otherwise. + * @param o The trait candidate. + * @returns true, if the object is a trait; false otherwise. * @static */ static isTrait(o:Object):boolean; @@ -647,7 +646,7 @@ declare namespace system{ *

    * Note: Attribute constructors are always called without the new keyword. *

    - * @class yfiles.lang.Attribute + * @class */ export interface Attribute extends Object{} export class Attribute { @@ -655,70 +654,65 @@ declare namespace system{ } /** * A lazy class type which delays the creation of the class until it is used. - * @class yfiles.lang.ClassDefinition + * @class */ export interface ClassDefinition extends Object{} export class ClassDefinition { /** * A lazy class type which delays the creation of the class until it is used. - * @param {function(): Object} callback Returns the class definition as required by {@link yfiles.lang.Class}. - * @constructor + * @param callback Returns the class definition as required by {@link }. */ constructor(callback:()=>Object); static $class:yfiles.lang.Class; } /** * A lazy interface type which delays the creation of the interface until it is used. - * @class yfiles.lang.InterfaceDefinition + * @class */ export interface InterfaceDefinition extends Object{} export class InterfaceDefinition { /** * A lazy interface type which delays the creation of the interface until it is used. - * @param {function(): Object} callback Returns the interface definition as required by {@link yfiles.lang.Trait}. - * @constructor + * @param callback Returns the interface definition as required by {@link }. */ constructor(callback:()=>Object); static $class:yfiles.lang.Class; } /** * A lazy struct type which delays the creation of the struct until it is used. - * @class yfiles.lang.StructDefinition + * @class */ export interface StructDefinition extends Object{} export class StructDefinition { /** * A lazy struct type which delays the creation of the struct until it is used. - * @param {function(): Object} callback Returns the struct definition as required by {@link yfiles.lang.Struct}. - * @constructor + * @param callback Returns the struct definition as required by {@link }. */ constructor(callback:()=>Object); static $class:yfiles.lang.Class; } /** * A lazy enum type which delays the creation of the enum until it is used. - * @class yfiles.lang.EnumDefinition + * @class */ export interface EnumDefinition extends Object{} export class EnumDefinition { /** * A lazy enum type which delays the creation of the enum until it is used. - * @param {function(): Object} callback Returns the enum definition as required by {@link yfiles.lang.Enum}. - * @constructor + * @param callback Returns the enum definition as required by {@link }. */ constructor(callback:()=>Object); static $class:yfiles.lang.Class; } /** * A lazy attribute definition which delays the creation of the attribute until it is used. - * @class yfiles.lang.AttributeDefinition + * @class */ export interface AttributeDefinition extends Object{} export class AttributeDefinition { /** * A lazy attribute definition which delays the creation of the attribute until it is used. - * @param {function(): Object} callback Returns the attribute definition as required by {@link yfiles.lang.Attribute}. - * @constructor + * @param callback Returns the attribute definition as required by {@link }. */ constructor(callback:()=>Object); static $class:yfiles.lang.Class; @@ -726,7 +720,7 @@ declare namespace system{ /** * Subclasses of {@link yfiles.lang.EventArgs} are passed to event handlers to provide the information they need to handle an * event. - * @class yfiles.lang.EventArgs + * @class */ export interface EventArgs extends Object{} export class EventArgs { @@ -742,15 +736,14 @@ declare namespace system{ /** * Event arguments which contain information for a {@link yfiles.lang.IPropertyObservable#addPropertyChangedListener PropertyChanged} * event. - * @class yfiles.lang.PropertyChangedEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface PropertyChangedEventArgs extends yfiles.lang.EventArgs{} export class PropertyChangedEventArgs { /** * Creates a new instance. - * @param {string} propertyName The name of the changed property. - * @constructor + * @param propertyName The name of the changed property. */ constructor(propertyName:string); /** @@ -767,14 +760,14 @@ declare namespace system{ export interface IPropertyObservable extends Object{ /** * Adds the given listener for the PropertyChanged event that occurs when a property changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.lang.IPropertyObservable#removePropertyChangedListener * @abstract */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when a property changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.lang.IPropertyObservable#addPropertyChangedListener * @abstract */ @@ -786,27 +779,27 @@ declare namespace system{ }; /** * Contains information about a property. - * @class yfiles.lang.PropertyInfo + * @class * @final */ export interface PropertyInfo extends Object{} export class PropertyInfo { /** * Gets the attributes associated with this property. - * @param {boolean} [inherit=true] if set to true inherited attributes will also be returned. - * @returns {Array.} The attributes or an empty array. + * @param [inherit=true] if set to true inherited attributes will also be returned. + * @returns The attributes or an empty array. */ getAttributes(inherit?:boolean):yfiles.lang.Attribute[]; /** * Gets the value of the property from the given object. - * @param {Object} obj The object which has the property, null for static properties. - * @returns {Object} The value of the property from the given object. + * @param obj The object which has the property, null for static properties. + * @returns The value of the property from the given object. */ getValue(obj:Object):Object; /** * Sets the value of the property on the given object. - * @param {Object} obj The object whose property should be written, null for static properties. - * @param {Object} value + * @param obj The object whose property should be written, null for static properties. + * @param value */ setValue(obj:Object,value:Object):void; /** @@ -848,8 +841,8 @@ declare namespace system{ export interface IComparable extends Object{ /** * Compares this object to the given object of the same type. - * @param {Object} obj The object to compare this to. - * @returns {number} + * @param obj The object to compare this to. + * @returns *
      *
    • -1: this is less than obj
    • *
    • 0: this is equal to obj
    • @@ -870,7 +863,7 @@ declare namespace system{ export interface ICloneable extends Object{ /** * Create a clone of this object. - * @returns {Object} A clone of this object. + * @returns A clone of this object. * @abstract */ clone():Object; @@ -881,7 +874,7 @@ declare namespace system{ }; /** * A structure which represents a time span. - * @class yfiles.lang.TimeSpan + * @class * @implements {yfiles.lang.IComparable} * @final */ @@ -889,44 +882,42 @@ declare namespace system{ export class TimeSpan { /** * Creates a new time span with a given length. - * @param {number} days The days part of the time span. - * @param {number} hours The hour part of the time span. - * @param {number} minutes The minute part of the time span. - * @param {number} seconds The seconds part of the time span. - * @param {number} millis The milliseconds part of the time span. - * @constructor + * @param days The days part of the time span. + * @param hours The hour part of the time span. + * @param minutes The minute part of the time span. + * @param seconds The seconds part of the time span. + * @param millis The milliseconds part of the time span. */ constructor(days:number,hours:number,minutes:number,seconds:number,millis:number); /** * Creates a new time span which is ticks milliseconds long. - * @param {number} ticks The length of the time span in milliseconds. - * @constructor + * @param ticks The length of the time span in milliseconds. */ constructor(ticks:number); /** * - * @param {Object} obj - * @returns {number} + * @param obj + * @returns */ compareTo(obj:Object):number; /** * Creates a new time span with the given length in milliseconds. - * @param {number} milliseconds The length of the time span in milliseconds. - * @returns {yfiles.lang.TimeSpan} A newly created time span. + * @param milliseconds The length of the time span in milliseconds. + * @returns A newly created time span. * @static */ static fromMilliseconds(milliseconds:number):yfiles.lang.TimeSpan; /** * Creates a new time span with the given length in minutes. - * @param {number} minutes The length of the time span in minutes. - * @returns {yfiles.lang.TimeSpan} A newly created time span. + * @param minutes The length of the time span in minutes. + * @returns A newly created time span. * @static */ static fromMinutes(minutes:number):yfiles.lang.TimeSpan; /** * Creates a new time span with the given length in seconds. - * @param {number} seconds The length of the time span in seconds. - * @returns {yfiles.lang.TimeSpan} A newly created time span. + * @param seconds The length of the time span in seconds. + * @returns A newly created time span. * @static */ static fromSeconds(seconds:number):yfiles.lang.TimeSpan; @@ -983,35 +974,35 @@ declare namespace system{ * function, which calls the {@link yfiles.lang.Exception#handler} function, if it has been set. Note that for some browsers/plugins, try/catch blocks prevent * error debugging functionality. Hence, {@link yfiles.lang.Exception#catchErrors} should be turned off while debugging. *

      - * @class yfiles.lang.Exception + * @class * @extends {Error} */ export interface Exception extends Error{} export class Exception { /** * Creates a new exception with the given {@link yfiles.lang.Exception#message} and an optional error {@link yfiles.lang.Exception#name}. - * @param {string} [message=null] The exception message. - * @param {string} [name=null] The exception name. This name can be used in try...catch statements to distinguish between different types of errors. + * @param [message=null] The exception message. + * @param [name=null] The exception name. This name can be used in try...catch statements to distinguish between different types of errors. + * @param [innerException=null] The inner exception, if another exception was wrapped. * @see yfiles.lang.Exception#message - * @constructor */ - constructor(message?:string,name?:string); + constructor(message?:string,name?:string,innerException?:yfiles.lang.Exception); /** * Creates a new exception with the given {@link yfiles.lang.Exception#message} and an optional error {@link yfiles.lang.Exception#name}. * @param {Object} options The parameters to pass. - * @param {string} [options.message=null] The exception message. - * @param {string} [options.name=null] The exception name. This name can be used in try...catch statements to distinguish between different types of errors. + * @param [options.message=null] The exception message. + * @param [options.name=null] The exception name. This name can be used in try...catch statements to distinguish between different types of errors. + * @param [options.innerException=null] The inner exception, if another exception was wrapped. * @see yfiles.lang.Exception#message - * @constructor */ - constructor(options:{message?:string,name?:string}); + constructor(options:{message?:string,name?:string,innerException?:yfiles.lang.Exception}); /** * This function is called in catch blocks in the library if {@link yfiles.lang.Exception#catchErrors} is enabled. *

      * If a {@link yfiles.lang.Exception#handler} is registered, the error is passed to the error handler, otherwise if {@link yfiles.lang.Exception#catchErrors} is set to true the error is logged to the * console using console.warn if available. *

      - * @param {Object} error The error object that has been caught + * @param error The error object that has been caught * @static */ static handleError(error:Object):void; @@ -1025,6 +1016,11 @@ declare namespace system{ * @type {string} */ name:string; + /** + * The inner exception, if another exception was wrapped. + * @type {yfiles.lang.Exception} + */ + innerException:yfiles.lang.Exception; /** * Whether to use try/catch blocks when invoking event handlers. *

      @@ -1047,31 +1043,1238 @@ declare namespace system{ static handler:(obj:Object)=>void; static $class:yfiles.lang.Class; } - }export namespace graphml{ - export enum GraphMLMemberVisibility{ + }export namespace collections{ + /** + * The default implementation for {@link yfiles.collections.IMap.}. + * Type parameter TKey: The type of the key elements of this dictionary. + * Type parameter TValue: The type of the value elements of this dictionary. + * @class + * @implements {yfiles.collections.IMap.} + * @implements {yfiles.collections.ICollection.>} + * @implements {yfiles.collections.IEnumerable.>} + * @template TKey,TValue + */ + export interface Map extends Object,yfiles.collections.IMap,yfiles.collections.ICollection>,yfiles.collections.IEnumerable>{} + export class Map { /** - * The member is ignored by GraphML. + * Creates a new instance. + * @param {Object} [options=null] The parameters to pass. + * @param options.entries An array of items which are added to this map. Each item will be added via the {@link #add} method. */ - HIDDEN, + constructor(options?:{entries?:Array}); /** - * The member is treated according to the normal XAML serialization rules + * + * @param item */ - VISIBLE, + add(item:yfiles.collections.MapEntry):void; /** - * Only the content of a member value is read or written, without an enclosing excplicit container object. + * + */ + clear():void; + /** + * Whether this dictionary contains the given value. + * @param value The value to search for. + * @returns true if this dictionary contains the given value. + */ + containsValue(value:TValue):boolean; + /** + * + * @param array + * @param arrayIndex + */ + copyTo(array:yfiles.collections.MapEntry[],arrayIndex:number):void; + /** + * + * @param key + * @returns + */ + delete(key:TKey):boolean; + /** + * + * @param key + * @returns + */ + get(key:TKey):TValue; + /** + * + * @returns + */ + getEnumerator():yfiles.collections.IEnumerator>; + /** + * + * @param key + * @returns + */ + has(key:TKey):boolean; + /** + * + * @param item + * @returns + */ + includes(item:yfiles.collections.MapEntry):boolean; + /** + * + * @param item + * @returns + */ + remove(item:yfiles.collections.MapEntry):boolean; + /** + * + * @param key + * @param value + */ + set(key:TKey,value:TValue):void; + /** + * + * @type {number} + */ + size:number; + /** + * + * @type {boolean} + */ + isReadOnly:boolean; + /** + * + * @type {yfiles.collections.ICollection.} + */ + keys:yfiles.collections.ICollection; + /** + * + * @type {yfiles.collections.ICollection.} + */ + values:yfiles.collections.ICollection; + static $class:yfiles.lang.Class; + } + /** + * Defines methods to manipulate a collection of objects with the same type. + * Type parameter T: The type of the elements in the collection. + * @interface + * @implements {yfiles.collections.IEnumerable.} + * @template T + */ + export interface ICollection extends Object,yfiles.collections.IEnumerable{ + /** + * Adds the given item to the collection. + * @param item + * @abstract + */ + add(item:T):void; + /** + * Removes all items from this collection. + * @abstract + */ + clear():void; + /** + * Copies all elements of this collection into the given array. + * @param array The array to copy the elements to. + * @param arrayIndex The index in the given array where the first element should be copied to. + * @abstract + */ + copyTo(array:T[],arrayIndex:number):void; + /** + * Whether the given item is contained in this collection. + * @param item The item to search for. + * @returns true if the given item is contained in this collection. + * @abstract + */ + includes(item:T):boolean; + /** + * Removes the given item from this collection. + * @param item The item to remove. + * @returns Whether the item was removed from the collection. + * @abstract + */ + remove(item:T):boolean; + /** + * The number of elements in this collection. + * @abstract + * @type {number} + */ + size:number; + /** + * Whether this collection is read-only. + * @abstract + * @type {boolean} + */ + isReadOnly:boolean; + } + var ICollection:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A collection of value objects which are mapped to key objects and can be queried using their keys. + *

      + * The keys must have a well defined hashCode method that must not change between registering a value for the key and + * retrieving a value using the key. Thus it is advisable to use stable, i.e. immutable, objects as the key. + *

      + * Type parameter TKey: The type of the keys. + * Type parameter TValue: The type of the values. + * @interface + * @implements {yfiles.collections.ICollection.>} + * @template TKey,TValue + */ + export interface IMap extends Object,yfiles.collections.ICollection>{ + /** + * Removes the key/value pair which is represented by the given key. + * @param key The key of the key/value pair to remove. + * @returns true if a key/value pair with the given key was removed from this collection. + * @abstract + */ + delete(key:TKey):boolean; + /** + * Gets the value of the key/value pair with the given key. *

      - * This only makes a difference when the member value is a container object, such as a collection or map. + * Setter: if there is already a key/value pair with the given key in the dictionary its value will be overridden. If not a + * new key/value pair will be added. + *
      + * Getter: if there is no key/value pair with the given key in this dictionary null will be returned. + *

      + * @param key + * @returns + * @see yfiles.collections.IMap.#set + * @abstract + */ + get(key:TKey):TValue; + /** + * Whether this dictionary's key collection contains the given key. + * @param key The key to search for. + * @returns true if this dictionary contains the given key. + * @abstract + */ + has(key:TKey):boolean; + /** + * Sets the value of the key/value pair with the given key. + *

      + * Setter: if there is already a key/value pair with the given key in the dictionary its value will be overridden. If not a + * new key/value pair will be added. + *
      + * Getter: if there is no key/value pair with the given key in this dictionary null will be returned. + *

      + * @param key + * @param value + * @see yfiles.collections.IMap.#get + * @abstract + */ + set(key:TKey,value:TValue):void; + /** + * A {@link yfiles.collections.ICollection.} of the keys of this dictionary. + * @abstract + * @type {yfiles.collections.ICollection.} + */ + keys:yfiles.collections.ICollection; + /** + * A {@link yfiles.collections.ICollection.} of the values of this dictionary. + * @abstract + * @type {yfiles.collections.ICollection.} + */ + values:yfiles.collections.ICollection; + } + var IMap:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Defines ways to iterate over the items contained in this type by providing a method to get an {@link yfiles.collections.IEnumerator.}. + * Type parameter T: The type of the enumerable objects. + * @interface + * @template T + */ + export interface IEnumerable extends Object{ + /** + * + * @param enumerable + * @returns + */ + concat?(enumerable:yfiles.collections.IEnumerable):yfiles.collections.IEnumerable; + /** + * Returns the element at the given index in the enumerable. + * @param index The index of the element to return. + * @returns The element at the given index. + * @throws {Stubs.Exceptions.ArgumentError} If the index is not within the enumerable's range. + */ + elementAt?(index:number):T; + /** + * Whether all elements of the enumerable match the given predicate. + * @param predicate A function with the signature function(element):boolean which returns true if the element matches a condition. + * @param [thisArg=null] + * @returns Whether all elements of the enumerable match the given predicate. + * @throws {Stubs.Exceptions.ArgumentError} e is null. + * @throws {Stubs.Exceptions.ArgumentError} predicate is null. + */ + every?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):boolean; + /** + * Returns an enumerable which only contains elements of the source enumerable which match a given predicate. + * @param predicate A function with the signature function(element):boolean which returns true if the given element should be included in + * the resulting enumerable. + * @param [thisArg=null] + * @returns An enumerable which contains the elements of the source enumeration which match the given predicate. + */ + filter?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):yfiles.collections.IEnumerable; + /** + * Returns the first element of the enumerable which matches a given filter. + * @param [predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned + * @param [thisArg=null] + * @returns The first matching element of the enumerable. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable does not contain a matching element. + */ + first?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):T; + /** + * Returns the first element of the enumerable which matches a given filter. + * @param {Object} options The parameters to pass. + * @param [options.predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned + * @param [options.thisArg=null] + * @returns The first matching element of the enumerable. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable does not contain a matching element. + */ + first?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):T; + /** + * Returns the first element of the enumerable, the first element of the enumerable which matches a given filter if + * sepcified, or null if there is no such element. + * @param [predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned + * @param [thisArg=null] + * @returns The first element of the enumerable or null. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + */ + firstOrDefault?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):T; + /** + * Returns the first element of the enumerable, the first element of the enumerable which matches a given filter if + * sepcified, or null if there is no such element. + * @param {Object} options The parameters to pass. + * @param [options.predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned + * @param [options.thisArg=null] + * @returns The first element of the enumerable or null. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + */ + firstOrDefault?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):T; + /** + * Iterates over the enumerable and invokes the action for each element passing the value and index as arguments. + * @param action The delegate to call. + * @param [thisArg=null] + */ + forEach?(action:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>void,thisArg?:Object):void; + /** + * Gets an {@link yfiles.collections.IEnumerator.} which can be used to iterate over the items in this instance + * @returns The {@link } which can be used to iterate over the items in this instance + * @abstract + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * Whether the given value is contained in the enumerable. + * @param value The value to search for. + * @returns true if the enumerable contains the given value. + */ + includes?(value:T):boolean; + /** + * Returns the last element of the enumerable. + * @returns The last element of the enumerable. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable is empty. + */ + last?():T; + /** + * Returns the last element of the enumerable or null if the enumerable is empty. + * @returns The last element of the enumerable or null. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + */ + lastOrDefault?():T; + /** + * Maps each element of the enumerable into a new element in a new enumerable. + * Type parameter TResult: The type of the mapped elements. + * @param selector A function with the signature function(element, index):TResult which converts each element into a new element of the + * type TResult depending on the element's index. + * @param [thisArg=null] The optional value to use as this when executing the selector. + * @returns A projection of the original enumerable. + * @template TResult + */ + map?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>TResult,thisArg?:Object):yfiles.collections.IEnumerable; + /** + * Converts a untyped enumerable into an enumerable with the given type. + *

      + * The source enumerable may contain elements which are not of the given type. Those elements will not be contained in the + * returned enumerable. + *

      + * Type parameter TResult. + * @returns A typed enumerable. + * @template TResult + */ + ofType?(resultType:yfiles.lang.Class):yfiles.collections.IEnumerable; + /** + * Applies an func function over the enumerable's elements. + * Type parameter TAccumulate: The type of the accumulated value. + * @param seed The start value for the accumulator. + * @param func A function with the signature function(seed,element):TAccumulate which "adds" (accumulates) a value depending on the + * element to the seed value and returns the result. + * @returns The final value of the accumulator. + * @template TAccumulate + */ + reduce?(seed:TAccumulate,func:(arg1:TAccumulate,arg2:T,arg3:number,arg4:yfiles.collections.IEnumerable)=>TAccumulate):TAccumulate; + /** + * Creates a flattened view of a given enumerable using the given selector function which returns an enumerable for each + * element of the source enumerable. + * Type parameter TResult. + * @param selector A function with the signature function(element):IEnumerable which returns an enumerable for each element of the source + * enumerable. + * @param [thisArg=null] + * @returns A flattened view of the given enumerable. The enumerables which are returned by the selector method for each element are + * concatenated in the result. + * @template TResult + */ + selectMany?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>yfiles.collections.IEnumerable,thisArg?:Object):yfiles.collections.IEnumerable; + /** + * Whether the enumerable contains any elements matching the given predicate. + * @param [predicate=null] A function with the signature function(element):boolean which returns true if the element matches a condition. + * @param [thisArg=null] + * @returns Whether the enumerable contains any elements matching the given predicate. + * @throws {Stubs.Exceptions.ArgumentError} e is null. + */ + some?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):boolean; + /** + * Whether the enumerable contains any elements matching the given predicate. + * @param {Object} options The parameters to pass. + * @param [options.predicate=null] A function with the signature function(element):boolean which returns true if the element matches a condition. + * @param [options.thisArg=null] + * @returns Whether the enumerable contains any elements matching the given predicate. + * @throws {Stubs.Exceptions.ArgumentError} e is null. + */ + some?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):boolean; + /** + * Calculates the sum of the elements of the enumerable. + * @param selector A function with the signature function(element):Number which returns a numeric value for the given element. + * @param [thisArg=null] + * @returns The sum of the elements of the enumerable. + */ + sum?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>number,thisArg?:Object):number; + /** + * Returns elements from an enumerable as long as the given predicate is true. + * @param predicate A function with the signature function(element):boolean which returns true as long as the elements should be added to + * the returned enumerable. + * @param [thisArg=null] + * @returns A subset of the original enumerable. + */ + takeWhile?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):yfiles.collections.IEnumerable; + /** + * Creates an array with the values of the enumerable. + * @returns An array with the enumerable's elements. + */ + toArray?():T[]; + /** + * Creates a {@link yfiles.collections.List.} with the values of the enumerable. + * @returns An {@link } with the enumerable's elements. + */ + toList?():yfiles.collections.List; + /** + * Returns an enumerable which contains the elements of the original enumerable in reverse order. + * @returns An enumerable which contains the elements of the original enumerable in reverse order. + */ + toReversed?():yfiles.collections.IEnumerable; + /** + * Returns the number of elements contained in the enumerable. + * @type {number} + */ + size?:number; + } + var IEnumerable:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Provides methods to iterate over a collection or list of elements of the same type. + *
      +     * var e = someList.getEnumerator();
      +     * // always move before you access
      +     * while(e.moveNext()) {
      +     *   // get the current element
      +     *   var current = e.current;
      +     * }
      +     * 
      + * + * Type parameter T. + * @interface + * @template T + */ + export interface IEnumerator extends Object{ + /** + * Moves this enumerator to the next element. + *

      + * A newly created enumerator's {@link yfiles.collections.IEnumerator.#current current position} is before the first element. Thus, this method must be called before first + * access to the {@link yfiles.collections.IEnumerator.#current} property. The same applies to the state after calling {@link yfiles.collections.IEnumerator.#reset}. + *

      + * @returns true if the enumerator was moved to a valid position + * @abstract + */ + moveNext():boolean; + /** + * Resets the enumerator to its starting state. + *

      + * In other words: sets the current position before the first element. + *

      + * @abstract + */ + reset():void; + /** + * Gets the element at the enumerator's current position. + *

      + * This value is undefined if the enumerator is in initial state (after creation or + * {@link yfiles.collections.IEnumerator.#reset}) or has been moved past the end of the represented collection. + *

      + * @abstract + * @type {T} + */ + current:T; + } + var IEnumerator:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A read-write collection of objects of the same type. + * Type parameter T: The type of objects in the list. + * @interface + * @implements {yfiles.collections.ICollection.} + * @template T + */ + export interface IList extends Object,yfiles.collections.ICollection{ + /** + * Gets the item at the given index. + * @param index The index of the item to access. + * @returns The item at the given index. + * @see yfiles.collections.IList.#set + * @abstract + */ + get(index:number):T; + /** + * The index of the given item in the list. + * @param item The item to search for. + * @returns The index of the given item in the list. -1 if the item is not in the list. + * @abstract + */ + indexOf(item:T):number; + /** + * Inserts the given item at the given index. + * @param index The index to insert the item at. + * @param item The item to insert. + * @abstract + */ + insert(index:number,item:T):void; + /** + * Removes the item at the given index from the list. + * @param index The index of the item to remove. + * @abstract + */ + removeAt(index:number):void; + /** + * Sets the item at the given index. + * @param index The index of the item to access. + * @param value The item at the given index. + * @see yfiles.collections.IList.#get + * @abstract + */ + set(index:number,value:T):void; + } + var IList:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * The key/value pair of a {@link yfiles.collections.IMap.}. + * Type parameter TKey: The type of the key element. + * Type parameter TValue: The type of the value element. + * @class + * @template TKey,TValue + * @final + */ + export interface MapEntry extends Object{} + export class MapEntry { + /** + * Creates a new instance with the given key and value. + * @param key The key for this pair. + * @param value The value for this pair. + */ + constructor(key:TKey,value:TValue); + /** + * The key for this key/value pair. + * @type {TKey} + */ + key:TKey; + /** + * The value for this key/value pair. + * @type {TValue} + */ + value:TValue; + static $class:yfiles.lang.Class; + } + /** + * Default implementation of {@link yfiles.collections.IList.}. + *

      + * This implementation provides fast random indexed access. However, removing or adding elements from the beginning or in + * the middle of the list will slower. + *

      + * Type parameter T: The type of the list's elements. + * @class + * @implements {yfiles.collections.IList.} + * @template T + */ + export interface List extends Object,yfiles.collections.IList{} + export class List { + /** + * Creates a new instance and fills it with the elements of the given enumerable. + * @param enumerable The enumerable to fill the list with. + */ + constructor(enumerable:yfiles.collections.IEnumerable); + /** + * Creates a new instance. + * @param {Object} [options=null] The parameters to pass. + * @param options.items An array of items which are added to this list. Each item will be added via the {@link #add} method. + */ + constructor(options?:{items?:Array}); + /** + * + * @param item + */ + add(item:T):void; + /** + * Adds the elements of the given collection to this list. + * @param enumerable The collection to add. + */ + addRange(enumerable:yfiles.collections.IEnumerable):void; + /** + * Searches the (sorted) list for the given item. + *

      + * This search is done as a binary search, therefore the list must be sorted. The given comparer is used to compare the + * elements to each other. + *

      + * @param item The item to search for. + * @param comparer The comparer to use for comparing the elements. + * @returns The index of the item in the list. -1 if the item is not found. + */ + binarySearch(item:T,comparer:yfiles.collections.IComparer):number; + /** + * + */ + clear():void; + /** + * + * @param array + * @param arrayIndex + */ + copyTo(array:T[],arrayIndex:number):void; + /** + * Searches the list for the first element for which match returns true. + * @param match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the + * element to search for. + * @returns The first element for which match returns true or null is no such element in the list. + */ + find(match:(obj:T)=>boolean):T; + /** + * Searches the list for the first element for which match returns true and returns its index. + * @param match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the + * element to search for. + * @returns The index of the first element for which match returns true or -1 if there is no such element in the list. + */ + findIndex(match:(obj:T)=>boolean):number; + /** + * Creates a new list with the given array used as the live backing store. + *

      + * Modifying the list or the array will modify both instances. + *

      + * @param array The array to create a list view over from. + * @returns A list backed by the given array. + * @static + */ + static fromArray(array:T[]):yfiles.collections.List; + /** + * + * @param index + * @returns + */ + get(index:number):T; + /** + * + * @returns + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * + * @param item + * @returns + */ + includes(item:T):boolean; + /** + * + * @param item + * @returns + */ + indexOf(item:T):number; + /** + * + * @param index + * @param item + */ + insert(index:number,item:T):void; + /** + * + * @param item + * @returns + */ + remove(item:T):boolean; + /** + * Removes all elements for which match returns true. + * @param match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the + * element to search for. + * @returns The number of elements which were removed. + */ + removeAll(match:(obj:T)=>boolean):number; + /** + * + * @param index + */ + removeAt(index:number):void; + /** + * Removes a given count of elements starting from the given index. + * @param index The index of the first element to remove. + * @param count The number of elements to remove. + */ + removeRange(index:number,count:number):void; + /** + * Reverses the order of the elements in the list. + */ + reverse():void; + /** + * + * @param index + * @param value + */ + set(index:number,value:T):void; + /** + * Sorts all elements in the list using the given comparison function. + * @param comparison The comparison function to use. + */ + sort(comparison:(arg1:Object,arg2:Object)=>number):void; + /** + * Sorts all elements in the list using the given comparer. + * @param comparer The comparer to use. + */ + sort(comparer:yfiles.collections.IComparer):void; + /** + * Sorts all elements in list using the default comparer. + */ + sort():void; + /** + * Copies the elements of this list into an array. + * @returns An array containing the elements of this list. + */ + toArray():T[]; + /** + * + * @type {number} + */ + size:number; + /** + * + * @type {boolean} + */ + isReadOnly:boolean; + capacity:number; + static $class:yfiles.lang.Class; + } + /** + * Provides a method to compare two objects of the same type. + * Type parameter T: The type of the objects to compare. + * @interface + * @template T + */ + export interface IComparer extends Object{ + /** + * Compares two objects of type T. + * @param x The first object. + * @param y The second object. + * @returns + *
        + *
      • -1: x is less than y
      • + *
      • 0: x is equal to y
      • + *
      • 1: x is greater than y
      • + *
      + * @abstract + */ + compare(x:T,y:T):number; + } + var IComparer:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A simple default implementation of an {@link yfiles.collections.IObservableCollection.} that is backed by an ordinary {@link yfiles.collections.ICollection.} + * Type parameter T: The type of the elements contained in this collection. + * @class + * @implements {yfiles.collections.IObservableCollection.} + * @template T + */ + export interface ObservableCollection extends Object,yfiles.collections.IObservableCollection{} + export class ObservableCollection { + /** + * Creates a new instance using a provided collection as the backing store. + * @param [items=null] The collection to use as the backing store. If no collection is provided a {@link } will be used. + */ + constructor(items?:yfiles.collections.ICollection); + /** + * Adds the item the the collection and triggers the {@link yfiles.collections.ObservableCollection.#addItemAddedListener ItemAdded} event. + *

      + * This implementation calls the {@link yfiles.collections.ObservableCollection.#onItemAdded} method. + *

      + * @param item The item to add to the collection. + */ + add(item:T):void; + /** + * Clears this collection, triggering an {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event for each element removed. + * @see yfiles.collections.ObservableCollection.#onItemRemoved + */ + clear():void; + /** + * Copies the items to the given array. + * @param array + * @param arrayIndex + */ + copyTo(array:T[],arrayIndex:number):void; + /** + * Returns an enumerator over the elements in this collection. + * @returns + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * Checks for containment of the item in this collection. + * @param item The item to check. + * @returns Whether the item is contained in this collection. + */ + includes(item:T):boolean; + /** + * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemAddedListener ItemAdded} event. + * @param item The item that has just been added to the collection. + * @protected + */ + onItemAdded(item:T):void; + /** + * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemChangedListener ItemChanged} event. + * @param item The item that has changed. + * @protected + */ + onItemChanged(item:T):void; + /** + * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event. + * @param item The item that has just been removed from the collection. + * @protected + */ + onItemRemoved(item:T):void; + /** + * Method that may be called by client code to trigger an {@link yfiles.collections.ObservableCollection.#addItemChangedListener ItemChanged} event. + * @param item The item to trigger the change event for. + * @see yfiles.collections.ObservableCollection.#onItemChanged + */ + publishItemChanged(item:T):void; + /** + * Tries to remove the item from the collection and triggers the {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event. + * @param item The item to remove. + * @returns Whether the item has been removed. + * @see yfiles.collections.ObservableCollection.#onItemRemoved + */ + remove(item:T):boolean; + /** + * Returns the number of elements in this collection. + * @type {number} + */ + size:number; + /** + * Checks whether this collection is read only. + * @type {boolean} + */ + isReadOnly:boolean; + /** + * Gets the collection used internally as the backing store. + *

      + * Normally code should not use this method to gain access to the collection in order to modify it. + *

      + * @returns The backing store of this observable collection. + * @type {yfiles.collections.ICollection.} + */ + items:yfiles.collections.ICollection; + /** + * Adds the given listener for the ItemAdded event that occurs when an item has been added to this collection. + * @param listener The listener to add. + * @see yfiles.collections.ObservableCollection.#removeItemAddedListener + */ + addItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemAdded event that occurs when an item has been added to this collection. + * @param listener The listener to remove. + * @see yfiles.collections.ObservableCollection.#addItemAddedListener + */ + removeItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. + * @param listener The listener to add. + * @see yfiles.collections.ObservableCollection.#removeItemRemovedListener + */ + addItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. + * @param listener The listener to remove. + * @see yfiles.collections.ObservableCollection.#addItemRemovedListener + */ + removeItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the ItemChanged event that occurs when an item has been changed inside this collection. + * @param listener The listener to add. + * @see yfiles.collections.ObservableCollection.#removeItemChangedListener + */ + addItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemChanged event that occurs when an item has been changed inside this collection. + * @param listener The listener to remove. + * @see yfiles.collections.ObservableCollection.#addItemChangedListener + */ + removeItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + /** + * An {@link yfiles.collections.IMapper.} implementation backed by a {@link yfiles.collections.IMap.}. + *

      + * A {@link yfiles.collections.Mapper.#defaultValue} can be set that is returned for keys that don't have an explicit value set. + *

      + *

      + * It is legal to use null as key, which can be assigned a value just like other keys. + *

      + * Type parameter K. + * Type parameter V. + * @class + * @implements {yfiles.collections.IMapper.} + * @template K,V + * @final + */ + export interface Mapper extends Object,yfiles.collections.IMapper{} + export class Mapper { + /** + * Creates an instance using the provided {@link yfiles.collections.Map.} as the backing store. + *

      + * The value for the null item is stored separately. + *

      + * @param dictionary + */ + constructor(dictionary:yfiles.collections.IMap); + /** + * Creates an instance using the provided {@link yfiles.collections.Map.} as the backing store. + *

      + * The value for the null item is stored separately. + *

      + * @param {Object} options The parameters to pass. + * @param options.dictionary + * @param {V} options.defaultValue The default value to return if no specific value has been set for a given key. + *

      + * This option sets the {@link yfiles.collections.Mapper.#defaultValue} property on the created object. *

      */ - CONTENT + constructor(options:{dictionary:yfiles.collections.IMap,defaultValue?:V}); + /** + * Creates an instance using a {@link yfiles.collections.Map.} as the backing store. + *

      + * The value for the null item is stored separately. + *

      + * @param {Object} [options=null] The parameters to pass. + * @param {V} options.defaultValue The default value to return if no specific value has been set for a given key. + *

      + * This option sets the {@link yfiles.collections.Mapper.#defaultValue} property on the created object. + *

      + */ + constructor(options?:{defaultValue?:V}); + /** + * Calls {@link yfiles.collections.Map.#clear} on the backing implementation. + */ + clear():void; + /** + * + * @param key + */ + delete(key:K):void; + /** + * + * @param key + * @returns + */ + get(key:K):V; + /** + * + * @param key + * @param value + */ + set(key:K,value:V):void; + /** + * Gets an enumerable over all entries in this (dictionary based) mapper. + * @type {yfiles.collections.IEnumerable.>} + */ + entries:yfiles.collections.IEnumerable>; + /** + * Gets or sets the default value to return if no specific value has been set for a given key. + * @type {V} + */ + defaultValue:V; + static $class:yfiles.lang.Class; } + /** + * The interface for a collection that will notify registered event handlers of changes to its contents. + * Type parameter T: The type of the items in the collection. + * @see yfiles.collections.ObservableCollection. + * @interface + * @implements {yfiles.collections.ICollection.} + * @template T + */ + export interface IObservableCollection extends Object,yfiles.collections.ICollection{ + /** + * Adds the given listener for the ItemAdded event that occurs when an item has been added to this collection. + * @param listener The listener to add. + * @see yfiles.collections.IObservableCollection.#removeItemAddedListener + * @abstract + */ + addItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemAdded event that occurs when an item has been added to this collection. + * @param listener The listener to remove. + * @see yfiles.collections.IObservableCollection.#addItemAddedListener + * @abstract + */ + removeItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. + * @param listener The listener to add. + * @see yfiles.collections.IObservableCollection.#removeItemRemovedListener + * @abstract + */ + addItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. + * @param listener The listener to remove. + * @see yfiles.collections.IObservableCollection.#addItemRemovedListener + * @abstract + */ + removeItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the ItemChanged event that occurs when an item in this collection has changed + * significantly. + *

      + * It is up to the implementation whether and when to trigger this event. + *

      + * @param listener The listener to add. + * @see yfiles.collections.IObservableCollection.#removeItemChangedListener + * @abstract + */ + addItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemChanged event that occurs when an item in this collection has changed + * significantly. + *

      + * It is up to the implementation whether and when to trigger this event. + *

      + * @param listener The listener to remove. + * @see yfiles.collections.IObservableCollection.#addItemChangedListener + * @abstract + */ + removeItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + } + var IObservableCollection:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An extension to the {@link yfiles.collections.IEnumerable.} interface that allows for indexed access and retrieval of the element count. + *

      + * This interface is like a rudimentary read-only {@link yfiles.collections.IList.} + *

      + * Type parameter T: The type of the contained elements. + * @interface + * @implements {yfiles.collections.IEnumerable.} + * @template T + */ + export interface IListEnumerable extends Object,yfiles.collections.IEnumerable{ + /** + * Gets the i-th element in the collection. + * @param i the zero-based index of the item in this collection + * @returns the item for the given index + * @throws {Stubs.Exceptions.ArgumentError} i is not a valid index in the {@link yfiles.collections.IListEnumerable.}. + * @abstract + */ + get(i:number):T; + /** + * Gets the number of elements in this collection. + * @abstract + * @type {number} + */ + size:number; + } + var IListEnumerable:{ + /** + * An empty, immutable instance of {@link yfiles.collections.IListEnumerable.}. + * @const + * @static + * @type {yfiles.collections.IListEnumerable.} + */ + EMPTY?:yfiles.collections.IListEnumerable; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Wraps a simple {@link yfiles.collections.IEnumerable.} into a {@link yfiles.collections.IListEnumerable.}. + *

      + * This implementation is optimized for {@link yfiles.collections.IList.} and {@link yfiles.collections.ICollection.}, as well as {@link Object} {@link yfiles.collections.IEnumerable.}s. + *

      + * Type parameter T: The type of the enumerable. + * @class + * @implements {yfiles.collections.IListEnumerable.} + * @template T + * @final + */ + export interface ListEnumerable extends Object,yfiles.collections.IListEnumerable{} + export class ListEnumerable { + /** + * Creates a new instance using the given backing enumerable. + * @param backingEnumerable The enumerable to back this instance. + */ + constructor(backingEnumerable:yfiles.collections.IEnumerable); + /** + * Creates a new instance with a backing {@link yfiles.collections.List.} as the backing store. + */ + constructor(); + /** + * + * @param i + * @returns + */ + get(i:number):T; + /** + * + * @returns + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * Gets the backing enumerable. + * @type {yfiles.collections.IEnumerable.} + */ + backingEnumerable:yfiles.collections.IEnumerable; + /** + * + * @type {number} + */ + size:number; + static $class:yfiles.lang.Class; + } + /** + * Event argument class used by {@link yfiles.collections.IObservableCollection.} and similar that holds a specific item that is related to the event. + * Type parameter T: The type of the item contained in the event. + * @class + * @extends {yfiles.lang.EventArgs} + * @template T + */ + export interface ItemEventArgs extends yfiles.lang.EventArgs{} + export class ItemEventArgs { + /** + * Creates a new event argument for the given item. + * @param item The item which is the subject of the event. + */ + constructor(item:T); + /** + * Gets the item that is the subject of the event. + * @type {T} + */ + item:T; + static $class:yfiles.lang.Class; + } + /** + * An interface for simple typed dictionary-like implementations. + *

      + * {@link yfiles.collections.IMapper.}s are most prominently used when interfacing with {@link yfiles.layout.ILayoutAlgorithm layout algorithms} and {@link yfiles.graphml.GraphMLIOHandler GraphML}. {@link yfiles.graph.IGraph} also provides the {@link yfiles.graph.IGraph#mapperRegistry} + * to add additional information to a graph. + *

      + * Type parameter K: The type of element this interface accepts as keys for the mapping. + * Type parameter V: The type of element this interface accepts as values for the mapping. + *

      + * Using {@link yfiles.collections.IMapper.} is described in the section {@link @DGUIDE_PREFIX@/customizing_graph-binding_data.html Associating Data with Graph Elements}. + *

      + *

      Related demos:

      + *
        + *
      • Demo: DragAndDropForm, demo.yfiles.input.draganddrop
      • + *
      + * @see yfiles.collections.Mapper. + * @interface + * @template K,V + */ + export interface IMapper extends Object{ + /** + * Gets the value for a given key in the mapping. + *

      + * Setting a value for an already existing key overwrites the previous value. + *

      + *

      + * It depends on the specific implementation of the mapper whether a mapping can be removed. If an implementation provides + * a way to remove a mapping, that should be preferred over setting a null value. For example, {@link yfiles.collections.Mapper.} provides the {@link yfiles.collections.Mapper.#delete} + * method. + *

      + * @param key The key of the mapping. + * @returns The value. + * @see yfiles.collections.IMapper.#set + * @abstract + */ + get(key:K):V; + /** + * Sets the value for a given key in the mapping. + *

      + * Setting a value for an already existing key overwrites the previous value. + *

      + *

      + * It depends on the specific implementation of the mapper whether a mapping can be removed. If an implementation provides + * a way to remove a mapping, that should be preferred over setting a null value. For example, {@link yfiles.collections.Mapper.} provides the {@link yfiles.collections.Mapper.#delete} + * method. + *

      + * @param key The key of the mapping. + * @param value The value. + * @see yfiles.collections.IMapper.#get + * @abstract + */ + set(key:K,value:V):void; + } + var IMapper:{ + /** + * Creates a constant mapper that will always return the constant. + * Type parameter K: The type of the key to use. + * Type parameter V: The type of the value to use. + * @param constant The constant to return in {@link #get} + * @returns A new instance that will always return the same constant. + * @template K,V + * @static + */ + fromConstant?(constant:V):yfiles.collections.IMapper; + /** + * Create an implementation of {@link yfiles.collections.IMapper.} that delegates {@link yfiles.collections.IMapper.#get} getter calls to the provided handler. + *

      + * The implementation returned silently ignores calls to the {@link yfiles.collections.IMapper.#get} setter. + *

      + * Type parameter K: The type of the key to use. + * Type parameter V: The type of the value to use. + * @param getter The delegate to delegate {@link #get} getter calls to. + * @returns An implementation that delegates to getter. + * @template K,V + * @static + */ + fromDelegate?(getter:(key:K)=>V):yfiles.collections.IMapper; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + }export namespace graphml{ export interface XmlName extends Object{} export class XmlName { /** * Initializes a new instance of the {@link yfiles.graphml.XmlName} class. - * @param {string} localName The local name of the element. - * @param {string} ns The namespace it belongs to. - * @constructor + * @param localName The local name of the element. + * @param ns The namespace it belongs to. */ constructor(localName:string,ns:string); /** @@ -1081,8 +2284,8 @@ declare namespace system{ * it will be split at the "}" character and the first part will be used as the namespace URI, the second part as the local * name. If no "}" character is used in the input then it will be assumed that the input consists of the local name only. *

      - * @param {string} expandedName Name of the expanded. - * @returns {yfiles.graphml.XmlName} The result of the conversion. + * @param expandedName Name of the expanded. + * @returns The result of the conversion. * @static */ static convertFrom(expandedName:string):yfiles.graphml.XmlName; @@ -1101,7 +2304,7 @@ declare namespace system{ export enum XamlAttributeWritePolicy{ /** * Specifies that the write mode of a member should be determined automatically according to the current property value and - * the presence of {@link yfiles.support.TypeConverter}s, {@link yfiles.graphml.ValueSerializer}s and the like. + * the presence of {@link yfiles.graphml.ValueSerializer}s or implementations of {@link yfiles.graphml.IMarkupExtensionConverter}s. *

      * Usually, an implementation would write the member as attribute if the content can somehow be (directly or indirectly) * converted to a valid XML attribute content (i.e. a simple string) @@ -1138,6 +2341,20 @@ declare namespace system{ */ ALWAYS } + export enum GraphMLMemberVisibility{ + /** + * The member is treated according to the normal XAML serialization rules. + */ + VISIBLE, + /** + * Only the content of a member value is read or written, without an enclosing explicit container object. + */ + CONTENT, + /** + * The member is ignored by GraphML. + */ + HIDDEN + } export enum UndefinedHandling{ /** * Explicitly read and write undefined values. @@ -1167,7 +2384,7 @@ declare namespace system{ * handle legacy serialization. *

      * @see yfiles.graphml.XamlSerializer - * @class yfiles.graphml.GraphMLAttribute + * @class * @extends {yfiles.lang.Attribute} */ export interface GraphMLAttribute extends yfiles.lang.Attribute{} @@ -1264,14 +2481,16 @@ declare namespace system{ */ contentProperty:string; /** - * Gets or sets the type of the value serializer implementation. + * Gets or sets the type of the {@link yfiles.graphml.GraphMLAttribute#valueSerializer} implementation. * @type {yfiles.lang.Class} */ valueSerializer:yfiles.lang.Class; /** * Gets or sets a custom {@link yfiles.graphml.IMarkupExtensionConverter} for attribute serialization. *

      - * The specified type must implement {@link yfiles.graphml.IMarkupExtensionConverter}. + * The specialized {@link yfiles.graphml.XamlSerializer} will evaluate this attribute to override its built in mechanism to lookup + * an {@link yfiles.graphml.IMarkupExtensionConverter} for an object. The specified type must implement + * {@link yfiles.graphml.IMarkupExtensionConverter}. *

      * @see yfiles.graphml.XamlSerializer * @see yfiles.graphml.IMarkupExtensionConverter @@ -1281,8 +2500,20 @@ declare namespace system{ /** * Types that should be searched for static field or property members of the annotated type. *

      - * This property is ignored if the attribute targets a member declaration. + * When a type is annotated with this attribute, all types in the {@link yfiles.graphml.GraphMLAttribute#singletonContainers} array are searched for public static fields or + * properties that have the annotated type. The GraphML writer will write these members as StaticExtensions instead of the + * usual serialization. This property is ignored if the attribute targets a member declaration. *

      + *

      + * Using the following annotation + *

      + *

      + * has the effect that all references to field ContainedTypeSingleton will be written as static extensions, e.g. + *

      + *
      +       * {x:Static myNSDeclarationPrefix:ContainingType.ContainedTypeSingleton}
      +       * 
      + * * @type {Array.} */ singletonContainers:yfiles.lang.Class[]; @@ -1296,175 +2527,6 @@ declare namespace system{ defaultValue:Object; static $class:yfiles.lang.Class; } - /** - * A helper holder class that can contain a {@link yfiles.graphml.Future.#value} of a specific type. - *

      - * Typically {@link yfiles.graphml.Future.#hasValue} will be false until at a later point in time {@link yfiles.graphml.Future.#onValueDetermined} is called and the {@link yfiles.graphml.Future.#value} and {@link yfiles.graphml.Future.#hasValue} properties are being - * updated and the {@link yfiles.graphml.Future.#addPropertyChangedListener PropertyChanged} event is triggered. - *

      - * Type parameter T: The type of the {@link yfiles.graphml.Future.#value} - * @class yfiles.graphml.Future. - * @implements {yfiles.lang.IPropertyObservable} - * @template T - * @final - */ - export interface Future extends Object,yfiles.lang.IPropertyObservable{} - export class Future { - /** - * Called when the {@link yfiles.graphml.Future.#value} property of this future has been determined. - *

      - * This will set the {@link yfiles.graphml.Future.#hasValue} property to true and assign the {@link yfiles.graphml.Future.#value} property. Also the corresponding {@link yfiles.graphml.Future.#addPropertyChangedListener PropertyChanged} events - * will be triggered if necessary. - *

      - * @param {T} value The value. - */ - onValueDetermined(value:T):void; - /** - * The value of this future, which may only be queried if {@link yfiles.graphml.Future.#hasValue} yields true. - * @throws {Stubs.Exceptions.InvalidOperationError} If this property is queried although {@link yfiles.graphml.Future.#hasValue} returns false. - * @type {T} - */ - value:T; - /** - * Gets a value indicating whether this instance has been {@link yfiles.graphml.Future.#onValueDetermined assigned} a {@link yfiles.graphml.Future.#value}. - * @type {boolean} - */ - hasValue:boolean; - /** - * Adds the given listener for the PropertyChanged event that occurs when a property value changes. - *

      - * This event will be triggered for {@link yfiles.graphml.Future.#hasValue} changes and changes of the {@link yfiles.graphml.Future.#value} property. Note that if the determined future value is the - * same as the default, the event will only be triggered for the {@link yfiles.graphml.Future.#hasValue} property. - *

      - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. - * @see yfiles.graphml.Future.#removePropertyChangedListener - */ - addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Removes the given listener for the PropertyChanged event that occurs when a property value changes. - *

      - * This event will be triggered for {@link yfiles.graphml.Future.#hasValue} changes and changes of the {@link yfiles.graphml.Future.#value} property. Note that if the determined future value is the - * same as the default, the event will only be triggered for the {@link yfiles.graphml.Future.#hasValue} property. - *

      - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. - * @see yfiles.graphml.Future.#addPropertyChangedListener - */ - removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - /** - * Support interface used by {@link yfiles.graphml.ValueSerializer}. - * @interface - * @implements {yfiles.graph.ILookup} - */ - export interface IValueSerializerContext extends Object,yfiles.graph.ILookup{ - /** - * Gets the value serializer for a specific {@link yfiles.graphml.Property}. - * @param {yfiles.graphml.Property} property The descriptor of the property. - * @returns {yfiles.graphml.ValueSerializer} A serializer or null. - * @abstract - */ - getValueSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; - /** - * Gets the value serializer for a specific type. - * @param {yfiles.lang.Class} type The type to obtain a serializer for. - * @returns {yfiles.graphml.ValueSerializer} A serializer or null. - * @abstract - */ - getValueSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; - } - var IValueSerializerContext:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Provides a base class for all XAML markup extensions. - *

      - * Markup extensions return objects based on string attribute values or markup elements in XAML and/or can be used to - * serialize classes that do not fulfil XAML serialization constraints. - *

      - * @class yfiles.graphml.MarkupExtension - */ - export interface MarkupExtension extends Object{} - export class MarkupExtension { - /** - * Returns an object that is set as the value of the target property for this markup extension. - * @param {yfiles.graph.ILookup} serviceProvider Object that can provide services for the markup extension. - * @returns {Object} The object value to set on the property where the extension is applied. - * @abstract - */ - provideValue(serviceProvider:yfiles.graph.ILookup):Object; - static $class:yfiles.lang.Class; - } - /** - * Helper classes used during the XAML serialization of instances. - *

      - * Using this class instances can be written in xml attributes as strings. - *

      - * @class yfiles.graphml.ValueSerializer - */ - export interface ValueSerializer extends Object{} - export class ValueSerializer { - /** - * Determines whether this instance can convert the specified value from the given string. - * @param {string} value The string value to convert. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {boolean} true if this instance can convert the specified value from the string; otherwise, false. - */ - canConvertFromString(value:string,context:yfiles.graphml.IValueSerializerContext):boolean; - /** - * Determines whether this instance can convert the specified value to a string. - * @param {Object} value The value. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {boolean} true if this instance can convert the specified value to a string; otherwise, false. - */ - canConvertToString(value:Object,context:yfiles.graphml.IValueSerializerContext):boolean; - /** - * Converts the string to an appropriate instance. - * @param {string} value The value to convert to an object. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {Object} The converted object - */ - convertFromString(value:string,context:yfiles.graphml.IValueSerializerContext):Object; - /** - * Converts the given value to string. - * @param {Object} o The value. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {string} The value as string representation. - */ - convertToString(o:Object,context:yfiles.graphml.IValueSerializerContext):string; - /** - * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given type. - * @param {yfiles.lang.Class} type The type. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {yfiles.graphml.ValueSerializer} The serializer to use for the type. - * @static - */ - static getSerializerFor(type:yfiles.lang.Class,context:yfiles.graphml.IValueSerializerContext):yfiles.graphml.ValueSerializer; - /** - * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given descriptor. - * @param {yfiles.graphml.Property} property The descriptor. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {yfiles.graphml.ValueSerializer} The serializer to use for the descriptor. - * @static - */ - static getSerializerFor(property:yfiles.graphml.Property,context:yfiles.graphml.IValueSerializerContext):yfiles.graphml.ValueSerializer; - /** - * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given descriptor. - * @param {yfiles.graphml.Property} property The descriptor. - * @returns {yfiles.graphml.ValueSerializer} The serializer to use for the type. - * @static - */ - static getSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; - /** - * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given type. - * @param {yfiles.lang.Class} type The type. - * @returns {yfiles.graphml.ValueSerializer} The serializer to use for the type. - * @static - */ - static getSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; - static $class:yfiles.lang.Class; - } export enum KeyType{ /** * Identifier for attribute of type int. @@ -1539,9 +2601,9 @@ declare namespace system{ * virtually all cases. *

      * Type parameter T: The desired target type. - * @param {yfiles.lang.Class} targetType The desired target type. - * @param {Node} targetNode The XML node that should be deserialized. - * @returns {T} an instance of T or null. + * @param targetType The desired target type. + * @param targetNode The XML node that should be deserialized. + * @returns an instance of T or null. * @throws {yfiles.graphml.DeserializationNotSupportedError} * @see yfiles.graphml.IParseContext#deserializeCore * @template T @@ -1554,11 +2616,10 @@ declare namespace system{ * correct context instance is used. *

      * Type parameter T: The expected return type. - * @param {yfiles.lang.Class} targetType The expected return type. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {Node} targetNode The XML node that should be deserialized. - * @returns {T} The deserialized object from targetNode or an {@link yfiles.graphml.DeserializationNotSupportedError} if targetNode could not be - * deserialized. + * @param targetType The expected return type. + * @param context The current parse context. + * @param targetNode The XML node that should be deserialized. + * @returns The deserialized object from targetNode or an {@link } if targetNode could not be deserialized. * @see yfiles.graphml.IParseContext#deserialize * @template T * @abstract @@ -1568,16 +2629,16 @@ declare namespace system{ * Returns the most current (the last element) within the container hierarchy as it is returned by {@link yfiles.graphml.IParseContext#objectStack} or default(T) if the * most current element is not of the desired target type. * Type parameter T: The desired target type. - * @param {yfiles.lang.Class} itemType The desired target type. - * @returns {T} the most current element within the container hierarchy or default(T). + * @param itemType The desired target type. + * @returns the most current element within the container hierarchy or default(T). * @template T * @abstract */ getCurrent(itemType:yfiles.lang.Class):T; /** * Get a property value that specifies information about how to handle specific cases. - * @param {string} key The identifier for the property - * @returns {Object} The property value, or null if no such property exists. + * @param key The identifier for the property + * @returns The property value, or null if no such property exists. * @abstract */ getDeserializationProperty(key:string):Object; @@ -1624,7 +2685,7 @@ declare namespace system{ *

      * This event is triggered when the document element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeDocumentParsingListener * @abstract */ @@ -1634,7 +2695,7 @@ declare namespace system{ *

      * This event is triggered when the document element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addDocumentParsingListener * @abstract */ @@ -1644,7 +2705,7 @@ declare namespace system{ *

      * This event is triggered when the document has been fully parsed. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeDocumentParsedListener * @abstract */ @@ -1654,7 +2715,7 @@ declare namespace system{ *

      * This event is triggered when the document has been fully parsed. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addDocumentParsedListener * @abstract */ @@ -1664,7 +2725,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'node' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeNodeParsingListener * @abstract */ @@ -1674,7 +2735,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'node' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addNodeParsingListener * @abstract */ @@ -1684,7 +2745,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'node' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeNodeParsedListener * @abstract */ @@ -1694,7 +2755,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'node' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addNodeParsedListener * @abstract */ @@ -1704,7 +2765,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'edge' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeEdgeParsingListener * @abstract */ @@ -1714,7 +2775,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'edge' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addEdgeParsingListener * @abstract */ @@ -1724,7 +2785,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'edge' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeEdgeParsedListener * @abstract */ @@ -1734,7 +2795,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'edge' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addEdgeParsedListener * @abstract */ @@ -1744,7 +2805,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'port' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removePortParsingListener * @abstract */ @@ -1754,7 +2815,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'port' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addPortParsingListener * @abstract */ @@ -1764,7 +2825,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'port' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removePortParsedListener * @abstract */ @@ -1774,7 +2835,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'port' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addPortParsedListener * @abstract */ @@ -1784,7 +2845,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graph' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeGraphParsingListener * @abstract */ @@ -1794,7 +2855,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graph' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addGraphParsingListener * @abstract */ @@ -1804,7 +2865,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graph' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeGraphParsedListener * @abstract */ @@ -1814,7 +2875,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graph' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addGraphParsedListener * @abstract */ @@ -1824,7 +2885,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graphml' root-element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeGraphMLParsingListener * @abstract */ @@ -1834,7 +2895,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graphml' root-element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addGraphMLParsingListener * @abstract */ @@ -1844,7 +2905,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graphml' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeGraphMLParsedListener * @abstract */ @@ -1854,7 +2915,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graphml' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addGraphMLParsedListener * @abstract */ @@ -1864,7 +2925,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'data' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeDataParsingListener * @abstract */ @@ -1874,7 +2935,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'data' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addDataParsingListener * @abstract */ @@ -1884,7 +2945,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'data' element has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeDataParsedListener * @abstract */ @@ -1894,7 +2955,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'data' element has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addDataParsedListener * @abstract */ @@ -1904,7 +2965,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'key' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeKeyParsingListener * @abstract */ @@ -1914,7 +2975,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'key' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addKeyParsingListener * @abstract */ @@ -1924,7 +2985,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'key' element has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeKeyParsedListener * @abstract */ @@ -1934,7 +2995,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'key' element has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addKeyParsedListener * @abstract */ @@ -1950,16 +3011,15 @@ declare namespace system{ *

      * This class holds a reference to the {@link yfiles.graphml.ParseEventArgs#context parse context} and the {@link yfiles.graphml.ParseEventArgs#element} that is currently being parsed. *

      - * @class yfiles.graphml.ParseEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface ParseEventArgs extends yfiles.lang.EventArgs{} export class ParseEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.ParseEventArgs} class. - * @param {yfiles.graphml.IParseContext} context The context to assign to {@link yfiles.graphml.ParseEventArgs#context}. - * @param {Element} element The XML element to assign to {@link yfiles.graphml.ParseEventArgs#element}. - * @constructor + * @param context The context to assign to {@link #context}. + * @param element The XML element to assign to {@link #element}. */ constructor(context:yfiles.graphml.IParseContext,element:Element); /** @@ -1976,15 +3036,14 @@ declare namespace system{ } /** * A data holder for use in the {@link yfiles.graphml.IOutputHandler} interface that encapsulates an XML attribute. - * @class yfiles.graphml.GraphMLXmlAttribute + * @class */ export interface GraphMLXmlAttribute extends Object{} export class GraphMLXmlAttribute { /** * Initializes a new instance of the {@link yfiles.graphml.GraphMLXmlAttribute} class. - * @param {yfiles.graphml.XmlName} name The attribute name. - * @param {string} value The value. - * @constructor + * @param name The attribute name. + * @param value The value. */ constructor(name:yfiles.graphml.XmlName,value:string); /** @@ -2007,8 +3066,8 @@ declare namespace system{ /** * Determines whether in the current context, the value is the default value and therefore no data element needs to be * written. - * @param {yfiles.graphml.IWriteContext} context The context. - * @returns {boolean} true if for the current context the default value applies and therefore no data element needs to be written. + * @param context The context. + * @returns true if for the current context the default value applies and therefore no data element needs to be written. * @abstract */ isDefaultValue(context:yfiles.graphml.IWriteContext):boolean; @@ -2018,7 +3077,7 @@ declare namespace system{ * At the time this method is called, the surrounding 'key' element has already been written. However no 'default' element * is written by the framework. *

      - * @param {yfiles.graphml.IWriteContext} context The context. + * @param context The context. * @abstract */ writeKeyDefinitionContent(context:yfiles.graphml.IWriteContext):void; @@ -2027,7 +3086,7 @@ declare namespace system{ *

      * At the time this method is called, the surrounding 'data' element has already been written. *

      - * @param {yfiles.graphml.IWriteContext} context The context. + * @param context The context. * @abstract */ writeValue(context:yfiles.graphml.IWriteContext):void; @@ -2087,16 +3146,16 @@ declare namespace system{ * Returns the most current (the last element) within the container hierarchy as it is returned by {@link yfiles.graphml.IWriteContext#objectStack} or default(T) if the * most current element is not of the desired target type. * Type parameter T: The desired target type. - * @param {yfiles.lang.Class} itemType The desired target type. - * @returns {T} the most current element within the container hierarchy or default(T). + * @param itemType The desired target type. + * @returns the most current element within the container hierarchy or default(T). * @template T * @abstract */ getCurrent(itemType:yfiles.lang.Class):T; /** * Get a property value that specifies information about how to handle specific cases - * @param {string} key The identifier for the property - * @returns {Object} The property value, or null if no such property exists + * @param key The identifier for the property + * @returns The property value, or null if no such property exists * @abstract */ getSerializationProperty(key:string):Object; @@ -2106,8 +3165,8 @@ declare namespace system{ * item should be assignable to type t. This method simply delegates to * {@link yfiles.graphml.IWriteContext#serializeCore}, using the correct type parameter. *

      - * @param {Object} item The item to serialize. - * @param {yfiles.lang.Class} t The type the item is known to be of at deserialization time. + * @param item The item to serialize. + * @param t The type the item is known to be of at deserialization time. */ serialize?(item:Object,t:yfiles.lang.Class):void; /** @@ -2117,8 +3176,8 @@ declare namespace system{ * virtually all cases. *

      * Type parameter T: The type of the object that is serialized. - * @param {yfiles.lang.Class} targetType The type of the object that is serialized. - * @param {T} item The object that should be serialized. + * @param targetType The type of the object that is serialized. + * @param item The object that should be serialized. * @throws {yfiles.graphml.SerializationNotSupportedError} * @see yfiles.graphml.IWriteContext#serializeCore * @template T @@ -2131,9 +3190,9 @@ declare namespace system{ * correct context instance is used. *

      * Type parameter T: The type of the object that is serialized. - * @param {yfiles.lang.Class} targetType The type of the object that is serialized. - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {T} item The object that should be serialized. + * @param targetType The type of the object that is serialized. + * @param context The current write context. + * @param item The object that should be serialized. * @throws {yfiles.graphml.SerializationNotSupportedError} * @see yfiles.graphml.IWriteContext#serialize * @template T @@ -2147,8 +3206,8 @@ declare namespace system{ * or similar replacement mechanisms. *

      * Type parameter T: The type of the object that is serialized. - * @param {Object} originalItem The original object that should be serialized. - * @param {T} replacement The replacement object that will actually be serialized instead. + * @param originalItem The original object that should be serialized. + * @param replacement The replacement object that will actually be serialized instead. * @throws {yfiles.graphml.SerializationNotSupportedError} * @see yfiles.graphml.IWriteContext#serializeCore * @template T @@ -2200,7 +3259,7 @@ declare namespace system{ /** * Adds the given listener for the DocumentWriting event that occurs just after the {@link yfiles.graphml.IXmlWriter#writeStartDocument} * has been called. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeDocumentWritingListener * @abstract */ @@ -2208,7 +3267,7 @@ declare namespace system{ /** * Removes the given listener for the DocumentWriting event that occurs just after the {@link yfiles.graphml.IXmlWriter#writeStartDocument} * has been called. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addDocumentWritingListener * @abstract */ @@ -2216,7 +3275,7 @@ declare namespace system{ /** * Adds the given listener for the DocumentWritten event that occurs just before the {@link yfiles.graphml.IXmlWriter#writeEndDocument} * will be called. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeDocumentWrittenListener * @abstract */ @@ -2224,7 +3283,7 @@ declare namespace system{ /** * Removes the given listener for the DocumentWritten event that occurs just before the {@link yfiles.graphml.IXmlWriter#writeEndDocument} * will be called. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addDocumentWrittenListener * @abstract */ @@ -2236,7 +3295,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeNodeWritingListener * @abstract */ @@ -2248,7 +3307,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addNodeWritingListener * @abstract */ @@ -2259,7 +3318,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the node element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeNodeWrittenListener * @abstract */ @@ -2270,7 +3329,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the node element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addNodeWrittenListener * @abstract */ @@ -2282,7 +3341,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeEdgeWritingListener * @abstract */ @@ -2294,7 +3353,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addEdgeWritingListener * @abstract */ @@ -2305,7 +3364,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the edge element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeEdgeWrittenListener * @abstract */ @@ -2316,7 +3375,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the edge element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addEdgeWrittenListener * @abstract */ @@ -2328,7 +3387,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removePortWritingListener * @abstract */ @@ -2340,7 +3399,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addPortWritingListener * @abstract */ @@ -2351,7 +3410,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the port element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removePortWrittenListener * @abstract */ @@ -2362,7 +3421,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the port element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addPortWrittenListener * @abstract */ @@ -2374,7 +3433,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeGraphWritingListener * @abstract */ @@ -2386,7 +3445,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addGraphWritingListener * @abstract */ @@ -2397,7 +3456,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the graph element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeGraphWrittenListener * @abstract */ @@ -2408,7 +3467,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the graph element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addGraphWrittenListener * @abstract */ @@ -2420,7 +3479,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeGraphMLWritingListener * @abstract */ @@ -2432,7 +3491,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addGraphMLWritingListener * @abstract */ @@ -2443,7 +3502,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the graphml element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeGraphMLWrittenListener * @abstract */ @@ -2454,7 +3513,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the graphml element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addGraphMLWrittenListener * @abstract */ @@ -2466,7 +3525,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeDataWritingListener * @abstract */ @@ -2478,7 +3537,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addDataWritingListener * @abstract */ @@ -2489,7 +3548,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the data element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeDataWrittenListener * @abstract */ @@ -2500,7 +3559,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the data element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addDataWrittenListener * @abstract */ @@ -2512,7 +3571,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeKeyWritingListener * @abstract */ @@ -2524,7 +3583,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addKeyWritingListener * @abstract */ @@ -2535,7 +3594,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the key element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeKeyWrittenListener * @abstract */ @@ -2546,7 +3605,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the key element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addKeyWrittenListener * @abstract */ @@ -2571,7 +3630,7 @@ declare namespace system{ flushDocument():void; /** * Gets a text representation of all content that has been written so far. - * @returns {string} + * @returns * @abstract */ getXmlString():string; @@ -2580,9 +3639,9 @@ declare namespace system{ *

      * The attribute is not bound to a XML namespace. *

      - * @param {string} localName The name of the attribute. - * @param {string} value The value of the attribute. - * @returns {yfiles.graphml.IXmlWriter} The writer instance writer for writer chaining. + * @param localName The name of the attribute. + * @param value The value of the attribute. + * @returns The writer instance writer for writer chaining. */ writeAttribute?(localName:string,value:string):yfiles.graphml.IXmlWriter; /** @@ -2592,32 +3651,32 @@ declare namespace system{ * or {@link yfiles.graphml.IXmlWriter#writeStartElement}. Note that namespace declarations should not be written directly as * attributes. Instead the {@link yfiles.graphml.IXmlWriter#namespaceManager} should be used. *

      - * @param {string} prefix The namespace prefix of the attribute - * @param {string} localName The local name of the attribute - * @param {string} ns The namespace URI of this attribute - * @param {string} value The value of this attribute - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param prefix The namespace prefix of the attribute + * @param localName The local name of the attribute + * @param ns The namespace URI of this attribute + * @param value The value of this attribute + * @returns The writer instance for further chaining * @abstract */ writeAttributeNS(prefix:string,localName:string,ns:string,value:string):yfiles.graphml.IXmlWriter; /** * Write a CDATA section. - * @param {string} content The content of the CDATA section - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param content The content of the CDATA section + * @returns The writer instance for further chaining * @abstract */ writeCData(content:string):yfiles.graphml.IXmlWriter; /** * Write a XML comment node - * @param {string} comment The content of the comment - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param comment The content of the comment + * @returns The writer instance for further chaining * @abstract */ writeComment(comment:string):yfiles.graphml.IXmlWriter; /** * Write a document fragment - * @param {Document} fragment - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param fragment + * @returns The writer instance for further chaining * @abstract */ writeDocumentFragment(fragment:Document):yfiles.graphml.IXmlWriter; @@ -2632,27 +3691,27 @@ declare namespace system{ /** * Close a XML element previously opened with {@link yfiles.graphml.IXmlWriter#writeStartElement} or * {@link yfiles.graphml.IXmlWriter#writeStartElement}. - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @returns The writer instance for further chaining * @abstract */ writeEndElement():yfiles.graphml.IXmlWriter; /** * Write an XML attribute from the given attribute struct. - * @param {yfiles.graphml.GraphMLXmlAttribute} attribute Encapsulates the current attribute values. - * @returns {yfiles.graphml.IXmlWriter} The writer instance writer for writer chaining. + * @param attribute Encapsulates the current attribute values. + * @returns The writer instance writer for writer chaining. */ writeGraphMLXmlAttribute?(attribute:yfiles.graphml.GraphMLXmlAttribute):yfiles.graphml.IXmlWriter; /** * Write a xml processing instruction. - * @param {string} target The target of the PI - * @param {string} data The data of the PI - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param target The target of the PI + * @param data The data of the PI + * @returns The writer instance for further chaining * @abstract */ writeProcessingInstruction(target:string,data:string):yfiles.graphml.IXmlWriter; /** * Begin the output process - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @returns The writer instance for further chaining * @abstract */ writeStartDocument():yfiles.graphml.IXmlWriter; @@ -2662,10 +3721,10 @@ declare namespace system{ * All subsequent output is attached to this element until {@link yfiles.graphml.IXmlWriter#writeEndElement} has been called or a * new element has been started. *

      - * @param {string} prefix The namespace prefix to use for this element - * @param {string} localName The local name of this element - * @param {string} ns The namespace of this element - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param prefix The namespace prefix to use for this element + * @param localName The local name of this element + * @param ns The namespace of this element + * @returns The writer instance for further chaining * @abstract */ writeStartElement(prefix:string,localName:string,ns:string):yfiles.graphml.IXmlWriter; @@ -2678,9 +3737,9 @@ declare namespace system{ *

      * This acts like {@link yfiles.graphml.IXmlWriter#writeStartElement}, but uses the default prefix for the namespace *

      - * @param {string} localName The local name of this element - * @param {string} ns The namespace of this element - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param localName The local name of this element + * @param ns The namespace of this element + * @returns The writer instance for further chaining * @abstract */ writeStartElement(localName:string,ns:string):yfiles.graphml.IXmlWriter; @@ -2689,8 +3748,8 @@ declare namespace system{ *

      * The string value of s will be correctly escaped *

      - * @param {string} s The string that gets written as XML text - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param s The string that gets written as XML text + * @returns The writer instance for further chaining * @abstract */ writeString(s:string):yfiles.graphml.IXmlWriter; @@ -2712,8 +3771,8 @@ declare namespace system{ export interface IXmlNamespaceManager extends Object{ /** * Returns a unique namespace prefix, or creates and registeres one. - * @param {string} ns The namespace URI for which a prefix is searched. - * @returns {string} a unique namespace prefix for ns. + * @param ns The namespace URI for which a prefix is searched. + * @returns a unique namespace prefix for ns. * @abstract */ getOrCreateUniqueMapping(ns:string):string; @@ -2729,9 +3788,9 @@ declare namespace system{ pushScope():void; /** * Register a local namespace/prefix mapping - * @param {string} nsUri The namespace URI - * @param {string} prefix The preferred namespace prefix or null if any prefix may be used. - * @returns {string} The prefix that finally has been used for the namespace URI. + * @param nsUri The namespace URI + * @param prefix The preferred namespace prefix or null if any prefix may be used. + * @returns The prefix that finally has been used for the namespace URI. * @abstract */ registerLocalMapping(nsUri:string,prefix:string):string; @@ -2757,7 +3816,7 @@ declare namespace system{ /** * Constant class for common serialization properties. * @see yfiles.graphml.IWriteContext#getSerializationProperty - * @class yfiles.graphml.SerializationProperties + * @class * @static */ export interface SerializationProperties extends Object{} @@ -2884,7 +3943,12 @@ declare namespace system{ */ static DISABLE_GRAPH_SETTINGS:string; /** - * Property key for case-insensitive parsing of property names during XAML deserialization. + * Property key for alllowing to parse member names (properties and enum values) case-insensitively during XAML + * deserialization. + *

      + * This will convert property and member names to lower-case and remove underscores to be able to compare things like SOME_CONSTANT_NAME + * and SomeConstantName as well as somePropertyName and SomePropertyName, respectively. + *

      *

      * This property has a boolean value. *

      @@ -3092,16 +4156,15 @@ declare namespace system{ *

      * This class holds a reference to the {@link yfiles.graphml.WriteEventArgs#context write context} and the {@link yfiles.graphml.WriteEventArgs#item} that is currently being written. *

      - * @class yfiles.graphml.WriteEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface WriteEventArgs extends yfiles.lang.EventArgs{} export class WriteEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.WriteEventArgs} class. - * @param {yfiles.graphml.IWriteContext} context The context to assign to {@link yfiles.graphml.WriteEventArgs#context}. - * @param {Object} item The item to assign to {@link yfiles.graphml.WriteEventArgs#item}. - * @constructor + * @param context The context to assign to {@link #context}. + * @param item The item to assign to {@link #item}. */ constructor(context:yfiles.graphml.IWriteContext,item:Object); /** @@ -3126,17 +4189,17 @@ declare namespace system{ export interface IMarkupExtensionConverter extends Object{ /** * Returns if the converter can convert the value to a {@link yfiles.graphml.MarkupExtension} in the current write context. - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {Object} value The object to convert. - * @returns {boolean} Whether the converter can convert the passed value. + * @param context The current write context. + * @param value The object to convert. + * @returns Whether the converter can convert the passed value. * @abstract */ canConvert(context:yfiles.graphml.IWriteContext,value:Object):boolean; /** * Converts the value to a {@link yfiles.graphml.MarkupExtension} using the current write context. - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {Object} value The object to convert. - * @returns {yfiles.graphml.MarkupExtension} The {@link yfiles.graphml.MarkupExtension} the value was converted to. + * @param context The current write context. + * @param value The object to convert. + * @returns The {@link } the value was converted to. * @abstract */ convert(context:yfiles.graphml.IWriteContext,value:Object):yfiles.graphml.MarkupExtension; @@ -3156,17 +4219,17 @@ declare namespace system{ *

      * fqTagName must follow the usual XAML naming rules. *

      - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {yfiles.graphml.XmlName} fqTagName The fully qualified XML element name that must describe a valid type in this CLR namespace. - * @returns {yfiles.lang.Class} The first matching type, if any. + * @param context The current parse context. + * @param fqTagName The fully qualified XML element name that must describe a valid type in this CLR namespace. + * @returns The first matching type, if any. * @abstract */ getClassForName(context:yfiles.graphml.IParseContext,fqTagName:yfiles.graphml.XmlName):yfiles.lang.Class; /** * Returns the XML tag name that belongs to type type - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {yfiles.lang.Class} type The type for which an XML namespace mapping is searched. - * @returns {yfiles.graphml.XmlName} the XML tag name that belongs to type type + * @param context The current write context. + * @param type The type for which an XML namespace mapping is searched. + * @returns the XML tag name that belongs to type type * @abstract */ getNameForClass(context:yfiles.graphml.IWriteContext,type:yfiles.lang.Class):yfiles.graphml.XmlName; @@ -3177,10 +4240,22 @@ declare namespace system{ }; /** * Wraps a property together with default values and meta data. - * @class yfiles.graphml.Property + * @class */ export interface Property extends Object{} export class Property { + /** + * Gets the value the wrapped property has on the given instance. + * @param ownerInstance The instance to get the property value from. + * @returns The value the wrapped property has on the given instance. + */ + getValue(ownerInstance:Object):Object; + /** + * Sets the value to the wrapped property on the given instance. + * @param ownerInstance The instance to set the property value on. + * @param value The value to set. + */ + setValue(ownerInstance:Object,value:Object):void; /** * Returns true iff the property has a public getter. * @type {boolean} @@ -3225,17 +4300,12 @@ declare namespace system{ * Gets the type of the property. * @type {yfiles.lang.Class} */ - propertyType:yfiles.lang.Class; + type:yfiles.lang.Class; /** * Gets the type of the owner. * @type {yfiles.lang.Class} */ ownerType:yfiles.lang.Class; - /** - * Gets the owner instance. - * @type {Object} - */ - ownerInstance:Object; /** * Gets the default value. * @type {Object} @@ -3246,11 +4316,6 @@ declare namespace system{ * @type {boolean} */ hasDefaultValue:boolean; - /** - * Gets or sets the value. - * @type {Object} - */ - value:Object; /** * Gets the name of the property, as it will appear in GraphML. * @type {string} @@ -3280,18 +4345,186 @@ declare namespace system{ */ CENTER } + /** + * Support interface used by {@link yfiles.graphml.ValueSerializer}. + * @interface + * @implements {yfiles.graph.ILookup} + */ + export interface IValueSerializerContext extends Object,yfiles.graph.ILookup{ + /** + * Gets the value serializer for a specific {@link yfiles.graphml.Property}. + * @param property The descriptor of the property. + * @returns A serializer or null. + * @abstract + */ + getValueSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; + /** + * Gets the value serializer for a specific type. + * @param type The type to obtain a serializer for. + * @returns A serializer or null. + * @abstract + */ + getValueSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; + } + var IValueSerializerContext:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Provides a base class for all XAML markup extensions. + *

      + * Markup extensions return objects based on string attribute values or markup elements in XAML and/or can be used to + * serialize classes that do not fulfil XAML serialization constraints. + *

      + * @class + */ + export interface MarkupExtension extends Object{} + export class MarkupExtension { + /** + * Returns an object that is set as the value of the target property for this markup extension. + * @param serviceProvider Object that can provide services for the markup extension. + * @returns The object value to set on the property where the extension is applied. + * @abstract + */ + provideValue(serviceProvider:yfiles.graph.ILookup):Object; + static $class:yfiles.lang.Class; + } + /** + * Helper classes used during the XAML serialization of instances. + *

      + * Using this class instances can be written in xml attributes as strings. + *

      + * @class + */ + export interface ValueSerializer extends Object{} + export class ValueSerializer { + /** + * Determines whether this instance can convert the specified value from the given string. + * @param value The string value to convert. + * @param context The context. + * @returns true if this instance can convert the specified value from the string; otherwise, false. + */ + canConvertFromString(value:string,context:yfiles.graphml.IValueSerializerContext):boolean; + /** + * Determines whether this instance can convert the specified value to a string. + * @param value The value. + * @param context The context. + * @returns true if this instance can convert the specified value to a string; otherwise, false. + */ + canConvertToString(value:Object,context:yfiles.graphml.IValueSerializerContext):boolean; + /** + * Converts the string to an appropriate instance. + * @param value The value to convert to an object. + * @param context The context. + * @returns The converted object + */ + convertFromString(value:string,context:yfiles.graphml.IValueSerializerContext):Object; + /** + * Converts the given value to string. + * @param o The value. + * @param context The context. + * @returns The value as string representation. + */ + convertToString(o:Object,context:yfiles.graphml.IValueSerializerContext):string; + /** + * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given type. + * @param type The type. + * @param context The context. + * @returns The serializer to use for the type. + * @static + */ + static getSerializerFor(type:yfiles.lang.Class,context:yfiles.graphml.IValueSerializerContext):yfiles.graphml.ValueSerializer; + /** + * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given descriptor. + * @param property The descriptor. + * @param context The context. + * @returns The serializer to use for the descriptor. + * @static + */ + static getSerializerFor(property:yfiles.graphml.Property,context:yfiles.graphml.IValueSerializerContext):yfiles.graphml.ValueSerializer; + /** + * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given descriptor. + * @param property The descriptor. + * @returns The serializer to use for the type. + * @static + */ + static getSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; + /** + * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given type. + * @param type The type. + * @returns The serializer to use for the type. + * @static + */ + static getSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; + static $class:yfiles.lang.Class; + } + /** + * A helper holder class that can contain a {@link yfiles.graphml.Future.#value} of a specific type. + *

      + * Typically {@link yfiles.graphml.Future.#hasValue} will be false until at a later point in time {@link yfiles.graphml.Future.#onValueDetermined} is called and the {@link yfiles.graphml.Future.#value} and {@link yfiles.graphml.Future.#hasValue} properties are being + * updated and the {@link yfiles.graphml.Future.#addPropertyChangedListener PropertyChanged} event is triggered. + *

      + * Type parameter T: The type of the {@link yfiles.graphml.Future.#value} + * @class + * @implements {yfiles.lang.IPropertyObservable} + * @template T + * @final + */ + export interface Future extends Object,yfiles.lang.IPropertyObservable{} + export class Future { + /** + * Called when the {@link yfiles.graphml.Future.#value} property of this future has been determined. + *

      + * This will set the {@link yfiles.graphml.Future.#hasValue} property to true and assign the {@link yfiles.graphml.Future.#value} property. Also the corresponding {@link yfiles.graphml.Future.#addPropertyChangedListener PropertyChanged} events + * will be triggered if necessary. + *

      + * @param value The value. + */ + onValueDetermined(value:T):void; + /** + * The value of this future, which may only be queried if {@link yfiles.graphml.Future.#hasValue} yields true. + * @throws {Stubs.Exceptions.InvalidOperationError} If this property is queried although {@link yfiles.graphml.Future.#hasValue} returns false. + * @type {T} + */ + value:T; + /** + * Gets a value indicating whether this instance has been {@link yfiles.graphml.Future.#onValueDetermined assigned} a {@link yfiles.graphml.Future.#value}. + * @type {boolean} + */ + hasValue:boolean; + /** + * Adds the given listener for the PropertyChanged event that occurs when a property value changes. + *

      + * This event will be triggered for {@link yfiles.graphml.Future.#hasValue} changes and changes of the {@link yfiles.graphml.Future.#value} property. Note that if the determined future value is the + * same as the default, the event will only be triggered for the {@link yfiles.graphml.Future.#hasValue} property. + *

      + * @param listener The listener to add. + * @see yfiles.graphml.Future.#removePropertyChangedListener + */ + addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Removes the given listener for the PropertyChanged event that occurs when a property value changes. + *

      + * This event will be triggered for {@link yfiles.graphml.Future.#hasValue} changes and changes of the {@link yfiles.graphml.Future.#value} property. Note that if the determined future value is the + * same as the default, the event will only be triggered for the {@link yfiles.graphml.Future.#hasValue} property. + *

      + * @param listener The listener to remove. + * @see yfiles.graphml.Future.#addPropertyChangedListener + */ + removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } /** * Class for reading/writing graphs from/to GraphML format. *

      * For more information about the GraphML file format please refer to the GraphML Primer. *

      - * @class yfiles.graphml.GraphMLIOHandler + * @class */ export interface GraphMLIOHandler extends Object{} export class GraphMLIOHandler { /** * Creates a new instance of {@link yfiles.graphml.GraphMLIOHandler}. - * @constructor */ constructor(); /** @@ -3300,9 +4533,9 @@ declare namespace system{ * The return value will only contain a value if a matching GraphML attribute has been read, which can be queried with {@link yfiles.graphml.Future.#hasValue}. * The validity is determined by keyDefinitionPredicate. This methods creates and configures the necessary handler itself. *

      - * @param {function(Element): boolean} keyDefinitionPredicate The predicate that matches the key definition. - * @param {yfiles.graphml.IGenericInputHandlerFactory} factory A factory to create {@link yfiles.graphml.IInputHandler} instances. - * @returns {yfiles.graphml.Future.} A {@link yfiles.graphml.Future.} instance that wraps an {@link yfiles.graphml.IInputHandler} that actually parses the data. + * @param keyDefinitionPredicate The predicate that matches the key definition. + * @param factory A factory to create {@link } instances. + * @returns A {@link } instance that wraps an {@link } that actually parses the data. */ addInputHandlerFactory(keyDefinitionPredicate:(obj:Element)=>boolean,factory:yfiles.graphml.IGenericInputHandlerFactory):yfiles.graphml.Future; /** @@ -3315,12 +4548,12 @@ declare namespace system{ *

      * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} keyType The type of the mapper keys - * @param {function(Element): boolean} keyDefinitionPredicate The predicate function that will determine whether to create an {@link yfiles.graphml.IInputHandler} for the given key + * @param dataType The type of the mapper values + * @param keyType The type of the mapper keys + * @param keyDefinitionPredicate The predicate function that will determine whether to create an {@link } for the given key * definition. - * @param {yfiles.collections.IMapper.} mapper the mapper that serves as data source - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} deserializationCallback custom deserialization callback. + * @param mapper the mapper that serves as data source + * @param deserializationCallback custom deserialization callback. * @template TKey,TData */ addInputMapper(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,keyDefinitionPredicate:(obj:Element)=>boolean,mapper:yfiles.collections.IMapper,deserializationCallback:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void):void; @@ -3331,10 +4564,10 @@ declare namespace system{ *

      * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} keyType The type of the mapper keys - * @param {string} name The name of the attribute - * @param {yfiles.collections.IMapper.} mapper the mapper that serves as data source + * @param dataType The type of the mapper values + * @param keyType The type of the mapper keys + * @param name The name of the attribute + * @param mapper the mapper that serves as data source * @template TKey,TData */ addInputMapper(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,name:string,mapper:yfiles.collections.IMapper):void; @@ -3346,12 +4579,12 @@ declare namespace system{ *

      * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} keyType The type of the mapper keys - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} deserializationCallback custom deserialization callback. - * @param {function(Element): boolean} keyDefinitionPredicate The predicate function that will determine whether to create an {@link yfiles.graphml.IInputHandler} for the given key + * @param dataType The type of the mapper values + * @param keyType The type of the mapper keys + * @param deserializationCallback custom deserialization callback. + * @param keyDefinitionPredicate The predicate function that will determine whether to create an {@link } for the given key * definition. - * @returns {yfiles.graphml.Future.>} A {@link yfiles.graphml.Future.} instance that wraps an {@link yfiles.collections.IMapper.} that actually holds the data. + * @returns A {@link } instance that wraps an {@link } that actually holds the data. * @template TKey,TData */ addInputMapperFuture(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,keyDefinitionPredicate:(obj:Element)=>boolean,deserializationCallback:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void):yfiles.graphml.Future>; @@ -3363,17 +4596,17 @@ declare namespace system{ *

      * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} keyType The type of the mapper keys - * @param {string} name The name of the attribute - * @returns {yfiles.graphml.Future.>} A {@link yfiles.graphml.Future.} instance that wraps an {@link yfiles.collections.IMapper.} that actually holds the data. + * @param dataType The type of the mapper values + * @param keyType The type of the mapper keys + * @param name The name of the attribute + * @returns A {@link } instance that wraps an {@link } that actually holds the data. * @template TKey,TData */ addInputMapperFuture(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,name:string):yfiles.graphml.Future>; /** * Adds a namespace to the header of a GraphML file. - * @param {string} namespaceURI The namespace URI - * @param {string} shortName The namespace prefix + * @param namespaceURI The namespace URI + * @param shortName The namespace prefix */ addNamespace(namespaceURI:string,shortName:string):void; /** @@ -3386,13 +4619,13 @@ declare namespace system{ *

      * Type parameter TModelItem: The type of the mapper keys * Type parameter TValue: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} modelItemType The type of the mapper keys - * @param {string} name The name of the attribute - * @param {string} uri The URI to add to the key definition to disambiguate keys. - * @param {yfiles.collections.IMapper.} mapper the mapper that serves as data source - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} serializationCallback custom serialization callback. - * @param {yfiles.graphml.KeyType} declaredKeyType The key type to write in the declaration. + * @param dataType The type of the mapper values + * @param modelItemType The type of the mapper keys + * @param name The name of the attribute + * @param uri The URI to add to the key definition to disambiguate keys. + * @param mapper the mapper that serves as data source + * @param serializationCallback custom serialization callback. + * @param declaredKeyType The key type to write in the declaration. * @template TModelItem,TValue */ addOutputMapper(modelItemType:yfiles.lang.Class,dataType:yfiles.lang.Class,name:string,uri:string,mapper:yfiles.collections.IMapper,serializationCallback:(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs)=>void,declaredKeyType:yfiles.graphml.KeyType):void; @@ -3403,10 +4636,10 @@ declare namespace system{ *

      * Type parameter TModelItem: The type of the mapper keys * Type parameter TValue: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} modelItemType The type of the mapper keys - * @param {string} name The name of the attribute - * @param {yfiles.collections.IMapper.} mapper the mapper that serves as data source + * @param dataType The type of the mapper values + * @param modelItemType The type of the mapper keys + * @param name The name of the attribute + * @param mapper the mapper that serves as data source * @template TModelItem,TValue */ addOutputMapper(modelItemType:yfiles.lang.Class,dataType:yfiles.lang.Class,name:string,mapper:yfiles.collections.IMapper):void; @@ -3420,12 +4653,12 @@ declare namespace system{ *

      * Type parameter TKey. * Type parameter TData. - * @param {yfiles.lang.Class} dataType - * @param {yfiles.lang.Class} keyType - * @param {Object} tag The name of the key in the {@link yfiles.graph.IMapperRegistry}. - * @param {function(Element): boolean} keyDefinitionPredicate A predicate to determine whether the key definition is valid. - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} deserializationCallback The custom deserialization callback, can be null which will result in default deserialization. - * @returns {yfiles.graphml.Future.>} A {@link yfiles.graphml.Future.} instance that wraps an {@link yfiles.collections.IMapper.} that actually holds the data. + * @param dataType + * @param keyType + * @param tag The name of the key in the {@link }. + * @param keyDefinitionPredicate A predicate to determine whether the key definition is valid. + * @param deserializationCallback The custom deserialization callback, can be null which will result in default deserialization. + * @returns A {@link } instance that wraps an {@link } that actually holds the data. * @template TKey,TData */ addRegistryInputMapper(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,tag:Object,keyDefinitionPredicate:(obj:Element)=>boolean,deserializationCallback:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void):yfiles.graphml.Future>; @@ -3439,10 +4672,10 @@ declare namespace system{ *

      * Type parameter TKey. * Type parameter TData. - * @param {yfiles.lang.Class} dataType - * @param {yfiles.lang.Class} keyType - * @param {string} name The name of the GraphML attribute and the key in the {@link yfiles.graph.IMapperRegistry}. - * @returns {yfiles.graphml.Future.>} A {@link yfiles.graphml.Future.} instance that wraps an {@link yfiles.collections.IMapper.} that actually holds the data. + * @param dataType + * @param keyType + * @param name The name of the GraphML attribute and the key in the {@link }. + * @returns A {@link } instance that wraps an {@link } that actually holds the data. * @template TKey,TData */ addRegistryInputMapper(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,name:string):yfiles.graphml.Future>; @@ -3450,13 +4683,13 @@ declare namespace system{ * Use a registered {@link yfiles.collections.IMapper.} instance as source for the given GraphML attribute. * Type parameter TModelItem. * Type parameter TValue. - * @param {yfiles.lang.Class} valueType - * @param {yfiles.lang.Class} modelItemType - * @param {string} name The GraphML name of the attribute - * @param {string} uri The URI to add to the key definition to disambiguate keys. - * @param {Object} tag The tag name of the mapper in the {@link yfiles.graph.IMapperRegistry} - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} serializationCallback custom serialization callback. - * @param {yfiles.graphml.KeyType} declaredKeyType The key type to write in the declaration. + * @param valueType + * @param modelItemType + * @param name The GraphML name of the attribute + * @param uri The URI to add to the key definition to disambiguate keys. + * @param tag The tag name of the mapper in the {@link } + * @param serializationCallback custom serialization callback. + * @param declaredKeyType The key type to write in the declaration. * @template TModelItem,TValue */ addRegistryOutputMapper(modelItemType:yfiles.lang.Class,valueType:yfiles.lang.Class,name:string,uri:string,tag:Object,serializationCallback:(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs)=>void,declaredKeyType:yfiles.graphml.KeyType):void; @@ -3464,10 +4697,10 @@ declare namespace system{ * Use a registered {@link yfiles.collections.IMapper.} instance as source for the given GraphML attribute. * Type parameter TModelItem. * Type parameter TValue. - * @param {yfiles.lang.Class} valueType - * @param {yfiles.lang.Class} modelItemType - * @param {string} name The GraphML name of the attribute - * @param {Object} tag The tag name of the mapper in the {@link yfiles.graph.IMapperRegistry} + * @param valueType + * @param modelItemType + * @param name The GraphML name of the attribute + * @param tag The tag name of the mapper in the {@link } * @template TModelItem,TValue */ addRegistryOutputMapper(modelItemType:yfiles.lang.Class,valueType:yfiles.lang.Class,name:string,tag:Object):void; @@ -3476,10 +4709,10 @@ declare namespace system{ *

      * The type arguments of the mapper are determined automatically. *

      - * @param {string} name The GraphML name of the attribute - * @param {string} uri The optional URI of the attribute - * @param {Object} tag The tag name of the mapper in the {@link yfiles.graph.IMapperRegistry} - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} serializationCallback An optional serialization handler + * @param name The GraphML name of the attribute + * @param uri The optional URI of the attribute + * @param tag The tag name of the mapper in the {@link } + * @param serializationCallback An optional serialization handler */ addRegistryOutputMapper(name:string,uri:string,tag:Object,serializationCallback:(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs)=>void):void; /** @@ -3487,18 +4720,18 @@ declare namespace system{ *

      * The type arguments of the mapper are determined automatically. *

      - * @param {string} name The GraphML name of the attribute - * @param {Object} tag The tag name of the mapper in the {@link yfiles.graph.IMapperRegistry} + * @param name The GraphML name of the attribute + * @param tag The tag name of the mapper in the {@link } */ addRegistryOutputMapper(name:string,tag:Object):void; /** * Adds a schema location to the header of a GraphML file. - * @param {string} schemaNamespace The namespace URI for this schema location - * @param {string} schemaLocation The schema location + * @param schemaNamespace The namespace URI for this schema location + * @param schemaLocation The schema location */ addSchemaLocation(schemaNamespace:string,schemaLocation:string):void; /** - * Add a namespace mapping between a fully qualified xml name (consisting of xmlNamespace and tagName and a type. + * Add a namespace mapping between a fully qualified XML name (consisting of xmlNamespace and tagName and a type. *

      * Either of xmlNamespace or tagName may be null, meaning that the default rules for determining the namespace and/or tag * name of type are used. @@ -3506,22 +4739,22 @@ declare namespace system{ *

      * This is used both for writing and parsing objects. *

      - * @param {string} xmlNamespace The XML namespace that corresponds to type. If null, the namespace will be determined based on the JavaScript module + * @param xmlNamespace The XML namespace that corresponds to type. If null, the namespace will be determined based on the JavaScript module * that contains type - * @param {string} tagName The XML tag name that corresponds to type. If null, the name will be determined from the type name automatically. - * @param {yfiles.lang.Class} type The type that is mapped to the fully qualified XML name. + * @param tagName The XML tag name that corresponds to type. If null, the name will be determined from the type name automatically. + * @param type The type that is mapped to the fully qualified XML name. * @see yfiles.graphml.IXamlNameMapper * @see yfiles.graphml.GraphMLIOHandler#createXamlNameMapper * @see yfiles.graphml.GraphMLIOHandler#addXamlNamespaceMapping */ addXamlNamespaceMapping(xmlNamespace:string,tagName:string,type:yfiles.lang.Class):void; /** - * Add a namespace mapping between a xml namespace and a JavaScript module. + * Add a namespace mapping between an XML namespace and a JavaScript module. *

      * This is used both for writing and parsing objects. *

      - * @param {string} xmlNamespace The XML namespace that corresponds to module. - * @param {Object} module The module that is mapped to the namespace. + * @param xmlNamespace The XML namespace that corresponds to module. + * @param module The module that is mapped to the namespace. * @see yfiles.graphml.IXamlNameMapper * @see yfiles.graphml.GraphMLIOHandler#createXamlNameMapper * @see yfiles.graphml.GraphMLIOHandler#addXamlNamespaceMapping @@ -3537,8 +4770,8 @@ declare namespace system{ *

      * This method is called for each parse process. *

      - * @param {yfiles.graph.IGraph} graph The graph that will be parsed. - * @param {yfiles.graphml.GraphMLParser} parser The parser to configure. + * @param graph The graph that will be parsed. + * @param parser The parser to configure. * @see yfiles.graphml.GraphMLIOHandler#handlePrimitivesDeserialization * @see yfiles.graphml.GraphMLIOHandler#handleXamlDeserialization * @see yfiles.graphml.GraphMLIOHandler#handleTextNodeDeserialization @@ -3550,7 +4783,7 @@ declare namespace system{ *

      * This method is called for each parse process. *

      - * @param {yfiles.graphml.GraphMLParser} parser The parser to set the deserialization properties. + * @param parser The parser to set the deserialization properties. * @protected */ configureDeserializationPropertyOverrides(parser:yfiles.graphml.GraphMLParser):void; @@ -3559,8 +4792,8 @@ declare namespace system{ *

      * This method is called by {@link yfiles.graphml.GraphMLIOHandler#createGraphMLParser}. *

      - * @param {yfiles.graphml.GraphMLParser} parser The parser to configure - * @param {yfiles.graph.IGraph} graph The graph that should be filled by the parser + * @param parser The parser to configure + * @param graph The graph that should be filled by the parser * @protected */ configureGraphMLParser(parser:yfiles.graphml.GraphMLParser,graph:yfiles.graph.IGraph):void; @@ -3569,8 +4802,8 @@ declare namespace system{ *

      * This method is called by {@link yfiles.graphml.GraphMLIOHandler#createGraphMLWriter}. *

      - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure - * @param {yfiles.graph.IGraph} graph The graph that will be written. + * @param writer The writer to configure + * @param graph The graph that will be written. * @protected */ configureGraphMLWriter(writer:yfiles.graphml.GraphMLWriter,graph:yfiles.graph.IGraph):void; @@ -3584,7 +4817,7 @@ declare namespace system{ *

      * This method is called for each parse process. *

      - * @param {yfiles.graphml.GraphMLParser} parser The parser that should be configured. + * @param parser The parser that should be configured. * @protected */ configureInputHandlers(parser:yfiles.graphml.GraphMLParser):void; @@ -3597,7 +4830,7 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure. + * @param writer The writer to configure. * @protected */ configureNamespaces(writer:yfiles.graphml.GraphMLWriter):void; @@ -3611,8 +4844,8 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graph.IGraph} graph The graph that will be written. - * @param {yfiles.graphml.GraphMLWriter} writer The writer that should be configured. + * @param graph The graph that will be written. + * @param writer The writer that should be configured. * @protected */ configureOutputHandlers(graph:yfiles.graph.IGraph,writer:yfiles.graphml.GraphMLWriter):void; @@ -3621,7 +4854,7 @@ declare namespace system{ *

      * This method is called for each parse process. *

      - * @param {yfiles.graphml.GraphMLParser} parser The parser to configure. + * @param parser The parser to configure. * @protected */ configureParserLookup(parser:yfiles.graphml.GraphMLParser):void; @@ -3630,7 +4863,7 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure. + * @param writer The writer to configure. * @protected */ configureSchemaLocations(writer:yfiles.graphml.GraphMLWriter):void; @@ -3640,8 +4873,8 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graph.IGraph} graph The graph that will be written. - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure. + * @param graph The graph that will be written. + * @param writer The writer to configure. * @protected */ configureSerializationHandlers(graph:yfiles.graph.IGraph,writer:yfiles.graphml.GraphMLWriter):void; @@ -3650,8 +4883,8 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graph.IGraph} graph The graph to write. - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure. + * @param graph The graph to write. + * @param writer The writer to configure. * @see yfiles.graphml.GraphMLWriter#setSerializationProperty * @protected */ @@ -3661,7 +4894,7 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graphml.GraphMLWriter} writer The writer to set the serialization properties. + * @param writer The writer to set the serialization properties. * @protected */ configureSerializationPropertyOverrides(writer:yfiles.graphml.GraphMLWriter):void; @@ -3670,8 +4903,8 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graph.IGraph} graph The graph that will be written. - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure. + * @param graph The graph that will be written. + * @param writer The writer to configure. * @see yfiles.graphml.GraphMLWriter#setLookup * @protected */ @@ -3684,17 +4917,16 @@ declare namespace system{ *

      * This implementation does nothing. *

      - * @param {yfiles.graphml.IXmlWriter} writer The writer to configure. + * @param writer The writer to configure. * @protected */ configureXMLWriter(writer:yfiles.graphml.IXmlWriter):void; /** * Creates the default value serializer context and returns it. *

      - * This factory method can be used to provide custom {@link yfiles.graphml.ValueSerializer}s in cases where no {@link yfiles.graphml.GraphMLAttribute} - * can be used. + * This factory method can be used to provide custom {@link yfiles.graphml.ValueSerializer}s in cases where no {@link yfiles.graphml.GraphMLAttribute#valueSerializer} can be used. *

      - * @returns {yfiles.graphml.IValueSerializerContext} An implementation of the {@link yfiles.graphml.IValueSerializerContext} interface. + * @returns An implementation of the {@link } interface. */ createDefaultValueSerializerContext():yfiles.graphml.IValueSerializerContext; /** @@ -3702,9 +4934,9 @@ declare namespace system{ *

      * This method is called for each parse process. *

      - * @param {yfiles.graphml.GraphMLParser} parser The parser to use. - * @param {yfiles.graph.IGraph} graph The graph that is populated. - * @returns {yfiles.graphml.IGraphElementFactory} An {@link yfiles.graphml.IGraphElementFactory} instance that is configured for the given parameters. + * @param parser The parser to use. + * @param graph The graph that is populated. + * @returns An {@link } instance that is configured for the given parameters. * @protected */ createGraphElementFactory(parser:yfiles.graphml.GraphMLParser,graph:yfiles.graph.IGraph):yfiles.graphml.IGraphElementFactory; @@ -3716,8 +4948,8 @@ declare namespace system{ *

      * It delegates the configuration of the parser to {@link yfiles.graphml.GraphMLIOHandler#configureGraphMLParser}. *

      - * @param {yfiles.graph.IGraph} graph The graph that should be filled by this instance - * @returns {yfiles.graphml.GraphMLParser} a suitable instance of {@link yfiles.graphml.GraphMLParser} that can handle the given graph + * @param graph The graph that should be filled by this instance + * @returns a suitable instance of {@link } that can handle the given graph * @protected */ createGraphMLParser(graph:yfiles.graph.IGraph):yfiles.graphml.GraphMLParser; @@ -3727,8 +4959,8 @@ declare namespace system{ * This method is called for each write process. It delegates the configuration of the writer to * {@link yfiles.graphml.GraphMLIOHandler#configureGraphMLWriter}. *

      - * @param {yfiles.graph.IGraph} graph The graph that will be written. - * @returns {yfiles.graphml.GraphMLWriter} A new {@link yfiles.graphml.GraphMLWriter} instance that is configured for graph. + * @param graph The graph that will be written. + * @returns A new {@link } instance that is configured for graph. * @protected */ createGraphMLWriter(graph:yfiles.graph.IGraph):yfiles.graphml.GraphMLWriter; @@ -3742,11 +4974,11 @@ declare namespace system{ *

      * Type parameter TKey: The type of the keys. * Type parameter TData: The type of the data. - * @param {yfiles.lang.Class} dataType The type of the data. - * @param {yfiles.lang.Class} keyType The type of the keys. - * @param {yfiles.graphml.IParseContext} context - * @param {Object} registryTag The tag for the mapper in the registry. - * @returns {yfiles.collections.IMapper.} The mapper instance to use. + * @param dataType The type of the data. + * @param keyType The type of the keys. + * @param context + * @param registryTag The tag for the mapper in the registry. + * @returns The mapper instance to use. * @protected * @template TKey,TData */ @@ -3756,11 +4988,11 @@ declare namespace system{ * implementations that match the provided TKey and TData. * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper entries - * @param {yfiles.lang.Class} dataType The type of the mapper entries - * @param {yfiles.lang.Class} modelItemType The type of the mapper keys - * @param {yfiles.collections.IMapper.} mapper The mapper to use. - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} deserializationCallback Optional deserialization callback for complex data. - * @returns {yfiles.graphml.MapperInputHandler.} A suitable {@link yfiles.graphml.MapperInputHandler.} implementation + * @param dataType The type of the mapper entries + * @param modelItemType The type of the mapper keys + * @param mapper The mapper to use. + * @param deserializationCallback Optional deserialization callback for complex data. + * @returns A suitable {@link } implementation * @template TKey,TData * @static */ @@ -3770,12 +5002,12 @@ declare namespace system{ * implementations that match the provided TKey and TData. * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper entries - * @param {yfiles.lang.Class} dataType The type of the mapper entries - * @param {yfiles.lang.Class} modelItemType The type of the mapper keys - * @param {string} name The name of the graphml attribute - * @param {yfiles.collections.IMapper.} mapper The mapper to use. - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} serializationCallback Optional serialization callback for complex data. - * @returns {yfiles.graphml.MapperOutputHandler.} A suitable {@link yfiles.graphml.MapperOutputHandler.} implementation + * @param dataType The type of the mapper entries + * @param modelItemType The type of the mapper keys + * @param name The name of the graphml attribute + * @param mapper The mapper to use. + * @param serializationCallback Optional serialization callback for complex data. + * @returns A suitable {@link } implementation * @template TKey,TData * @static */ @@ -3789,7 +5021,7 @@ declare namespace system{ *

      * This method is called for each read or write process. *

      - * @returns {yfiles.graphml.IXamlNameMapper} + * @returns * @protected */ createXamlNameMapper():yfiles.graphml.IXamlNameMapper; @@ -3798,7 +5030,7 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @returns {yfiles.graphml.IXamlPrefixMapper} + * @returns * @protected */ createXamlPrefixMapper():yfiles.graphml.IXamlPrefixMapper; @@ -3808,7 +5040,7 @@ declare namespace system{ * This method is called for each write process. The {@link yfiles.graphml.IXmlWriter} implementation is used by default for all * low-level write operations. *

      - * @returns {yfiles.graphml.IXmlWriter} A suitable {@link yfiles.graphml.IXmlWriter} instance for the serialization + * @returns A suitable {@link } instance for the serialization * @see yfiles.graphml.IWriteContext#writer * @protected */ @@ -3818,22 +5050,22 @@ declare namespace system{ *

      * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is an array. This handler is registered by default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleArraySerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** - * Handle the serialization of wrapped enums. - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * Handle the serialization for enums. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleEnumSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Handle the serialization of types that extend FrameworkTemplate. - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleJSONDeserialization(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs):void; @@ -3843,8 +5075,8 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} can be converted to JSON data. This serializer is only called from element property syntax and * is registered by default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleJSONSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3853,8 +5085,8 @@ declare namespace system{ *

      * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is an IEnumerable instance. This handler is registered by default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleListSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3864,8 +5096,8 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} can be converted to a {@link yfiles.graphml.MarkupExtension} instance. This handler is registered by * default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleMarkupExtensionBasedSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3875,22 +5107,22 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is a null reference. This handler is registered by default and is only used to write null * references in XML element syntax. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleNullSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Handle the serialization of primitive types, enums and strings. - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handlePrimitivesDeserialization(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs):void; /** * Handle the serialization of primitive types, enums and strings. - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handlePrimitivesSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3900,8 +5132,8 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is a {@link yfiles.graphml.IReferenceHandle} instance. This handler is registered by default and should * not be removed if {@link yfiles.graphml.GraphMLIOHandler#writeSharedReferences} is enabled. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleReferenceHandleSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3912,15 +5144,15 @@ declare namespace system{ * {@link yfiles.graphml.ValueSerializer}. This serializer is only called from element property syntax and is registered by * default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleTextConvertibleSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Callback for the {@link yfiles.graphml.GraphMLParser#addHandleDeserializationListener HandleDeserialization} event. - * @param {Object} source The source of the event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The event arguments. + * @param source The source of the event. + * @param evt The event arguments. * @see yfiles.graphml.HandleDeserializationEventArgs * @protected */ @@ -3930,8 +5162,8 @@ declare namespace system{ *

      * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is an array. This handler is registered by default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleTypeExtensionSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3940,8 +5172,8 @@ declare namespace system{ *

      * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is an array. This handler is registered by default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleTypeSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3951,15 +5183,15 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is an undefined reference. This handler is registered by default and is only used to write undefined * references in XML element syntax. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleUndefinedSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Callback for the {@link yfiles.graphml.GraphMLParser#addHandleDeserializationListener HandleDeserialization} event. - * @param {Object} source The source of the event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The event arguments. + * @param source The source of the event. + * @param evt The event arguments. * @see yfiles.graphml.HandleDeserializationEventArgs * @protected */ @@ -3970,40 +5202,40 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is not a null reference. This handler is registered by default and uses {@link yfiles.graphml.XamlSerializer} * to create XAML output. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleXamlSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Checks whether the name attribute in definition matches name - * @param {Element} definition The key definition to check - * @param {string} name The name that should be matched - * @returns {boolean} true if the name attribute in definition matches name + * @param definition The key definition to check + * @param name The name that should be matched + * @returns true if the name attribute in definition matches name * @static */ static matchesName(definition:Element,name:string):boolean; /** * Checks whether the scope attribute in definition matches scope - * @param {Element} definition The key definition to check - * @param {yfiles.graphml.KeyScope} scope The scope that should be matched - * @returns {boolean} true if the scope attribute in definition matches scope + * @param definition The key definition to check + * @param scope The scope that should be matched + * @returns true if the scope attribute in definition matches scope * @static */ static matchesScope(definition:Element,scope:yfiles.graphml.KeyScope):boolean; /** * Checks whether the type attribute in definition matches type - * @param {Element} definition The key definition to check - * @param {yfiles.graphml.KeyType} type The type that should be matched - * @returns {boolean} true if the type attribute in definition matches type + * @param definition The key definition to check + * @param type The type that should be matched + * @returns true if the type attribute in definition matches type * @static */ static matchesType(definition:Element,type:yfiles.graphml.KeyType):boolean; /** * Checks whether the uri attribute in definition matches uri - * @param {Element} definition The key definition to check - * @param {string} uri The uri that should be matched - * @returns {boolean} true if the uri attribute in definition matches uri + * @param definition The key definition to check + * @param uri The uri that should be matched + * @returns true if the uri attribute in definition matches uri * @static */ static matchesUri(definition:Element,uri:string):boolean; @@ -4016,8 +5248,8 @@ declare namespace system{ * just calls {@link yfiles.graphml.GraphMLIOHandler#onHandleDeserialization}, which in turn raises the {@link yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener HandleDeserialization} * event. *

      - * @param {Object} sender - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt + * @param sender + * @param evt * @protected */ onGraphMLParserHandleDeserialization(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs):void; @@ -4029,8 +5261,8 @@ declare namespace system{ * This implementation just calls {@link yfiles.graphml.GraphMLIOHandler#onQueryInputHandlers}, which in turn raises the {@link yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener QueryInputHandlers} * event. *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ onGraphMLParserQueryInputHandlers(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4042,8 +5274,8 @@ declare namespace system{ * This implementation just calls {@link yfiles.graphml.GraphMLIOHandler#onHandleSerialization}, which in turn raises the {@link yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener HandleSerialization} * event. *

      - * @param {Object} sender - * @param {yfiles.graphml.HandleSerializationEventArgs} evt + * @param sender + * @param evt * @protected */ onGraphMLWriterHandleSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -4055,28 +5287,28 @@ declare namespace system{ * This implementation just calls {@link yfiles.graphml.GraphMLIOHandler#onQueryOutputHandlers}, which in turn raises the {@link yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener QueryOutputHandlers} * event. *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ onGraphMLWriterQueryOutputHandlers(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; /** * Raises the {@link yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener HandleDeserialization} event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The arguments for the {@link yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener HandleDeserialization} + * @param evt The arguments for the {@link #addHandleDeserializationListener HandleDeserialization} * event. * @protected */ onHandleDeserialization(evt:yfiles.graphml.HandleDeserializationEventArgs):void; /** * Raises the {@link yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener HandleSerialization} event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The arguments for the {@link yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener HandleSerialization} + * @param evt The arguments for the {@link #addHandleSerializationListener HandleSerialization} * event. * @protected */ onHandleSerialization(evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener OverrideResolveReference} event. - * @param {yfiles.graphml.ResolveReferenceEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener OverrideResolveReference} + * @param evt The arguments that get passed to the {@link #addOverrideResolveReferenceListener OverrideResolveReference} * event. * @protected */ @@ -4087,7 +5319,7 @@ declare namespace system{ * This method is called when the document has been parsed and after {@link yfiles.graphml.IParseEvents#addDocumentParsedListener DocumentParsed} * is called. *

      - * @param {yfiles.graphml.ParseEventArgs} evt The {@link yfiles.graphml.ParseEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLIOHandler#addParsedListener * @protected */ @@ -4098,28 +5330,28 @@ declare namespace system{ * This method is called just before the parsing starts and before {@link yfiles.graphml.IParseEvents#addDocumentParsingListener DocumentParsing} * is called. *

      - * @param {yfiles.graphml.ParseEventArgs} evt The {@link yfiles.graphml.ParseEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLIOHandler#addParsingListener * @protected */ onParsing(evt:yfiles.graphml.ParseEventArgs):void; /** * Raises the {@link yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener QueryInputHandlers} event. - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt The arguments for the {@link yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener QueryInputHandlers} + * @param evt The arguments for the {@link #addQueryInputHandlersListener QueryInputHandlers} * event. * @protected */ onQueryInputHandlers(evt:yfiles.graphml.QueryInputHandlersEventArgs):void; /** * Raises the {@link yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener QueryOutputHandlers} event. - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt The arguments for the {@link yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener QueryOutputHandlers} + * @param evt The arguments for the {@link #addQueryOutputHandlersListener QueryOutputHandlers} * event. * @protected */ onQueryOutputHandlers(evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener QueryReferenceId} event. - * @param {yfiles.graphml.QueryReferenceIdEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener QueryReferenceId} + * @param evt The arguments that get passed to the {@link #addQueryReferenceIdListener QueryReferenceId} * event. * @throws {Stubs.Exceptions.ArgumentError} args is null. * @see yfiles.graphml.GraphMLWriter#onQueryReferenceId @@ -4128,7 +5360,7 @@ declare namespace system{ onQueryReferenceId(evt:yfiles.graphml.QueryReferenceIdEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener ResolveReference} event. - * @param {yfiles.graphml.ResolveReferenceEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener ResolveReference} + * @param evt The arguments that get passed to the {@link #addResolveReferenceListener ResolveReference} * event. * @protected */ @@ -4139,7 +5371,7 @@ declare namespace system{ * This method is called just before the writing starts and before {@link yfiles.graphml.IWriteEvents#addDocumentWritingListener DocumentWriting} * is called. *

      - * @param {yfiles.graphml.WriteEventArgs} evt The {@link yfiles.graphml.WriteEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLIOHandler#addWritingListener * @protected */ @@ -4150,27 +5382,27 @@ declare namespace system{ * This method is called just after the writing finishes and after {@link yfiles.graphml.IWriteEvents#addDocumentWrittenListener DocumentWritten} * is called. *

      - * @param {yfiles.graphml.WriteEventArgs} evt The {@link yfiles.graphml.WriteEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLIOHandler#addWrittenListener * @protected */ onWritten(evt:yfiles.graphml.WriteEventArgs):void; /** * Read GraphML from an existing XML document. - * @param {yfiles.graph.IGraph} graph The Graph object that is to be populated with nodes and edges as read from the document. - * @param {Document} document The XML document. Note: If you are using Internet Explorer 9 and {@link XMLHttpRequest}s to retrieve the document, you may not use - * the value from the {@link XMLHttpRequest#responseXML} property. Please parse {@link XMLHttpRequest#responseText} instead and use the + * @param graph The Graph object that is to be populated with nodes and edges as read from the document. + * @param document The XML document. Note: If you are using Internet Explorer 9 and {@link }s to retrieve the document, you may not use + * the value from the {@link #responseXML} property. Please parse {@link #responseText} instead and use the * result. For further reference see {@link http://msdn.microsoft.com/en-us/library/ie/hh180177.aspx}. - * @returns {Promise.} + * @returns * @throws {Stubs.Exceptions.ArgumentError} document is null. * @throws {Stubs.Exceptions.ArgumentError} graph is null. */ readFromDocument(graph:yfiles.graph.IGraph,document:Document):Promise; /** * Convenience method that imports the graph from an XML data provided in a string data. - * @param {yfiles.graph.IGraph} graph The Graph object that is to be populated with nodes and edges as read from the GraphML data. - * @param {string} data A string that contains GraphML data. - * @returns {Promise.} + * @param graph The Graph object that is to be populated with nodes and edges as read from the GraphML data. + * @param data A string that contains GraphML data. + * @returns */ readFromGraphMLText(graph:yfiles.graph.IGraph,data:string):Promise; /** @@ -4179,9 +5411,9 @@ declare namespace system{ * Note that this is an asynchronous method that returns immediately. Use the returned Promise to get notified when the * actual parsing has completed. *

      - * @param {yfiles.graph.IGraph} graph The Graph object that is to be populated with nodes and edges as read from the GraphML file. - * @param {string} url The url of the file to be read. - * @returns {Promise.} + * @param graph The Graph object that is to be populated with nodes and edges as read from the GraphML file. + * @param url The url of the file to be read. + * @returns * @throws {Stubs.Exceptions.ArgumentError} url is null. * @throws {Stubs.Exceptions.ArgumentError} graph is null. */ @@ -4192,8 +5424,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeBendsInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4203,8 +5435,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeBendsOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4214,8 +5446,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeLabelsInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4225,8 +5457,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeLabelsOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4236,8 +5468,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeStyleInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4247,8 +5479,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeStyleOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4258,8 +5490,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerGraphSettingsInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4269,8 +5501,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event. *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @see yfiles.graphml.SerializationProperties#DISABLE_GRAPH_SETTINGS * @protected */ @@ -4281,8 +5513,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeLabelsInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4292,8 +5524,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeLabelsOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4303,8 +5535,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeLayoutInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4314,8 +5546,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeLayoutOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4325,8 +5557,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeStyleInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4336,8 +5568,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeStyleOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4347,8 +5579,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerPortLocationInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4358,8 +5590,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerPortLocationOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4369,8 +5601,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerPortStyleInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4380,8 +5612,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerPortStyleOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4391,8 +5623,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerTagInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4402,15 +5634,15 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerTagOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; /** * Writes the given graph object to a GraphML file with a given filename. - * @param {yfiles.graph.IGraph} graph The Graph object that is to be written to a GraphML file. - * @returns {Promise.} A string containing the GraphML data. + * @param graph The Graph object that is to be written to a GraphML file. + * @returns A string containing the GraphML data. */ write(graph:yfiles.graph.IGraph):Promise; /** @@ -4446,7 +5678,7 @@ declare namespace system{ * Subscribe to this event to customize resolving of GraphML object references. This event is fired before the framework * tries to resolve internal references and can therefore be used to override internal references, for example. *

      - * @param {function(Object, yfiles.graphml.ResolveReferenceEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener * @see yfiles.graphml.GraphMLIOHandler#removeOverrideResolveReferenceListener */ @@ -4457,7 +5689,7 @@ declare namespace system{ * Subscribe to this event to customize resolving of GraphML object references. This event is fired before the framework * tries to resolve internal references and can therefore be used to override internal references, for example. *

      - * @param {function(Object, yfiles.graphml.ResolveReferenceEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener * @see yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener */ @@ -4468,7 +5700,7 @@ declare namespace system{ * Subscribe to this event to customize resolving of GraphML object references. This event is fired when the framework * could not resolve an object reference by an internal one. *

      - * @param {function(Object, yfiles.graphml.ResolveReferenceEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener * @see yfiles.graphml.GraphMLIOHandler#removeResolveReferenceListener */ @@ -4479,7 +5711,7 @@ declare namespace system{ * Subscribe to this event to customize resolving of GraphML object references. This event is fired when the framework * could not resolve an object reference by an internal one. *

      - * @param {function(Object, yfiles.graphml.ResolveReferenceEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener * @see yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener */ @@ -4494,7 +5726,7 @@ declare namespace system{ * {@link yfiles.graphml.GraphMLReferenceType#EXTERNAL}. To resolve these references when parsing, you typically have to subscribe * to the {@link yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener ResolveReference} event. *

      - * @param {function(Object, yfiles.graphml.QueryReferenceIdEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.QueryReferenceIdEventArgs#referenceId * @see yfiles.graphml.QueryReferenceIdEventArgs#referenceType * @see yfiles.graphml.GraphMLIOHandler#removeQueryReferenceIdListener @@ -4510,7 +5742,7 @@ declare namespace system{ * {@link yfiles.graphml.GraphMLReferenceType#EXTERNAL}. To resolve these references when parsing, you typically have to subscribe * to the {@link yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener ResolveReference} event. *

      - * @param {function(Object, yfiles.graphml.QueryReferenceIdEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.QueryReferenceIdEventArgs#referenceId * @see yfiles.graphml.QueryReferenceIdEventArgs#referenceType * @see yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener @@ -4518,7 +5750,7 @@ declare namespace system{ removeQueryReferenceIdListener(listener:(sender:Object,evt:yfiles.graphml.QueryReferenceIdEventArgs)=>void):void; /** * Adds the given listener for the Written event that occurs when the writing of a document has been finished. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#onWritten * @see yfiles.graphml.GraphMLWriter#addWrittenListener * @see yfiles.graphml.GraphMLIOHandler#removeWrittenListener @@ -4526,7 +5758,7 @@ declare namespace system{ addWrittenListener(listener:(sender:Object,evt:yfiles.graphml.WriteEventArgs)=>void):void; /** * Removes the given listener for the Written event that occurs when the writing of a document has been finished. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#onWritten * @see yfiles.graphml.GraphMLWriter#addWrittenListener * @see yfiles.graphml.GraphMLIOHandler#addWrittenListener @@ -4538,7 +5770,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.WriteEventArgs#context}'s {@link yfiles.graphml.IWriteContext#writeEvents} and to configure the writing process * on a per write case. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#onWriting * @see yfiles.graphml.GraphMLWriter#addWritingListener * @see yfiles.graphml.GraphMLIOHandler#removeWritingListener @@ -4550,7 +5782,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.WriteEventArgs#context}'s {@link yfiles.graphml.IWriteContext#writeEvents} and to configure the writing process * on a per write case. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#onWriting * @see yfiles.graphml.GraphMLWriter#addWritingListener * @see yfiles.graphml.GraphMLIOHandler#addWritingListener @@ -4579,7 +5811,7 @@ declare namespace system{ *

      * This event can be used to override type resolution for XML names in XAML. *

      - * @param {function(Object, yfiles.graphml.QueryTypeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.QueryTypeEventArgs * @see yfiles.graphml.GraphMLIOHandler#removeQueryTypeListener */ @@ -4589,7 +5821,7 @@ declare namespace system{ *

      * This event can be used to override type resolution for XML names in XAML. *

      - * @param {function(Object, yfiles.graphml.QueryTypeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.QueryTypeEventArgs * @see yfiles.graphml.GraphMLIOHandler#addQueryTypeListener */ @@ -4607,7 +5839,7 @@ declare namespace system{ * It is valid to provide only part of the XML name by setting the other part to null. In that case, the default name * determination rules are used for that part. *

      - * @param {function(Object, yfiles.graphml.QueryNameEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#removeQueryNameListener */ addQueryNameListener(listener:(sender:Object,evt:yfiles.graphml.QueryNameEventArgs)=>void):void; @@ -4624,7 +5856,7 @@ declare namespace system{ * It is valid to provide only part of the XML name by setting the other part to null. In that case, the default name * determination rules are used for that part. *

      - * @param {function(Object, yfiles.graphml.QueryNameEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addQueryNameListener */ removeQueryNameListener(listener:(sender:Object,evt:yfiles.graphml.QueryNameEventArgs)=>void):void; @@ -4640,7 +5872,7 @@ declare namespace system{ *

      * The current item is provided by {@link yfiles.graphml.HandleSerializationEventArgs#item}. *

      - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#removeHandleSerializationListener */ addHandleSerializationListener(listener:(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs)=>void):void; @@ -4656,7 +5888,7 @@ declare namespace system{ *

      * The current item is provided by {@link yfiles.graphml.HandleSerializationEventArgs#item}. *

      - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener */ removeHandleSerializationListener(listener:(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs)=>void):void; @@ -4674,7 +5906,7 @@ declare namespace system{ * If you want to register an {@link yfiles.graphml.IOutputHandler} for this GraphML attribute, you can add the handler with * {@link yfiles.graphml.QueryOutputHandlersEventArgs#addOutputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryOutputHandlersEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#removeQueryOutputHandlersListener */ addQueryOutputHandlersListener(listener:(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs)=>void):void; @@ -4693,13 +5925,13 @@ declare namespace system{ * If you want to register an {@link yfiles.graphml.IOutputHandler} for this GraphML attribute, you can add the handler with * {@link yfiles.graphml.QueryOutputHandlersEventArgs#addOutputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryOutputHandlersEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener */ removeQueryOutputHandlersListener(listener:(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs)=>void):void; /** * Adds the given listener for the Parsed event that occurs when the the document has been parsed. - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#onParsed * @see yfiles.graphml.GraphMLParser#addParsedListener * @see yfiles.graphml.GraphMLIOHandler#removeParsedListener @@ -4707,7 +5939,7 @@ declare namespace system{ addParsedListener(listener:(sender:Object,evt:yfiles.graphml.ParseEventArgs)=>void):void; /** * Removes the given listener for the Parsed event that occurs when the the document has been parsed. - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#onParsed * @see yfiles.graphml.GraphMLParser#addParsedListener * @see yfiles.graphml.GraphMLIOHandler#addParsedListener @@ -4719,7 +5951,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.ParseEventArgs#context}'s {@link yfiles.graphml.IParseContext#parseEvents} and to configure the parsing process * on a per parse case. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#onParsing * @see yfiles.graphml.GraphMLParser#addParsingListener * @see yfiles.graphml.GraphMLIOHandler#removeParsingListener @@ -4731,7 +5963,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.ParseEventArgs#context}'s {@link yfiles.graphml.IParseContext#parseEvents} and to configure the parsing process * on a per parse case. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#onParsing * @see yfiles.graphml.GraphMLParser#addParsingListener * @see yfiles.graphml.GraphMLIOHandler#addParsingListener @@ -4748,7 +5980,7 @@ declare namespace system{ * attribute, you can add the handler with {@link yfiles.graphml.QueryInputHandlersEventArgs#addInputHandler} method. * Implementations should also consider the {@link yfiles.graphml.QueryInputHandlersEventArgs#handled} property. *

      - * @param {function(Object, yfiles.graphml.QueryInputHandlersEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLParser#addQueryInputHandlersListener * @see yfiles.graphml.GraphMLIOHandler#removeQueryInputHandlersListener */ @@ -4764,7 +5996,7 @@ declare namespace system{ * attribute, you can add the handler with {@link yfiles.graphml.QueryInputHandlersEventArgs#addInputHandler} method. * Implementations should also consider the {@link yfiles.graphml.QueryInputHandlersEventArgs#handled} property. *

      - * @param {function(Object, yfiles.graphml.QueryInputHandlersEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLParser#addQueryInputHandlersListener * @see yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener */ @@ -4781,7 +6013,7 @@ declare namespace system{ *

      * The current XML content is provided by {@link yfiles.graphml.HandleDeserializationEventArgs#xmlNode}. If you want to return deserialized content, set the value of the {@link yfiles.graphml.HandleDeserializationEventArgs#result} property. *

      - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLParser#addHandleDeserializationListener * @see yfiles.graphml.GraphMLIOHandler#removeHandleDeserializationListener */ @@ -4799,7 +6031,7 @@ declare namespace system{ *

      * The current XML content is provided by {@link yfiles.graphml.HandleDeserializationEventArgs#xmlNode}. If you want to return deserialized content, set the value of the {@link yfiles.graphml.HandleDeserializationEventArgs#result} property. *

      - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLParser#addHandleDeserializationListener * @see yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener */ @@ -4813,11 +6045,11 @@ declare namespace system{ export interface IGenericInputHandlerFactory extends Object{ /** * Create an {@link yfiles.graphml.IInputHandler} instance based on the given args. - * @param {yfiles.lang.Class} keyType The key type as inferred by the caller from the GraphML contents. - * @param {yfiles.lang.Class} valueType The type of the value as inferred by the caller from the GraphML contents. - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt The event argument that is used like in - * {@link yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener QueryInputHandlers} - * @returns {yfiles.graphml.IInputHandler} The specific input handler to use. + * @param keyType The key type as inferred by the caller from the GraphML contents. + * @param valueType The type of the value as inferred by the caller from the GraphML contents. + * @param evt The event argument that is used like in + * {@link #addQueryInputHandlersListener QueryInputHandlers} + * @returns The specific input handler to use. * @abstract */ createInputHandler(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,evt:yfiles.graphml.QueryInputHandlersEventArgs):yfiles.graphml.IInputHandler; @@ -4828,7 +6060,7 @@ declare namespace system{ }; /** * - * @class yfiles.graphml.GraphMLSupport + * @class */ export interface GraphMLSupport extends Object{} export class GraphMLSupport { @@ -4837,9 +6069,8 @@ declare namespace system{ *

      * Optionally calls {@link yfiles.graphml.GraphMLSupport#registerCommands}, if graphControl is given. *

      - * @param {yfiles.view.GraphComponent} [graphComponent=null] The {@link yfiles.view.GraphComponent} that the {@link yfiles.input.ICommand#OPEN} and {@link yfiles.input.ICommand#SAVE} commands are + * @param [graphComponent=null] The {@link } that the {@link #OPEN} and {@link #SAVE} commands are * registered on. - * @constructor */ constructor(graphComponent?:yfiles.view.GraphComponent); /** @@ -4848,7 +6079,7 @@ declare namespace system{ * Optionally calls {@link yfiles.graphml.GraphMLSupport#registerCommands}, if graphControl is given. *

      * @param {Object} options The parameters to pass. - * @param {yfiles.view.GraphComponent} [options.graphComponent=null] The {@link yfiles.view.GraphComponent} that the {@link yfiles.input.ICommand#OPEN} and {@link yfiles.input.ICommand#SAVE} commands are + * @param [options.graphComponent=null] The {@link } that the {@link #OPEN} and {@link #SAVE} commands are * registered on. * @param {yfiles.graphml.StorageLocation} options.storageLocation A value indicating the type of storage used by the commands Open/Save/Save As. *

      @@ -4858,7 +6089,6 @@ declare namespace system{ *

      * This option sets the {@link yfiles.graphml.GraphMLSupport#graphMLIOHandler} property on the created object. *

      - * @constructor */ constructor(options:{graphComponent?:yfiles.view.GraphComponent,storageLocation?:yfiles.graphml.StorageLocation,graphMLIOHandler?:yfiles.graphml.GraphMLIOHandler}); /** @@ -4868,7 +6098,7 @@ declare namespace system{ * The open command that is enabled if {@link yfiles.graphml.GraphMLSupport#storageLocation} is set to a value different from {@link yfiles.graphml.StorageLocation#NONE} will use this * method to create the input element for opening the files. *

      - * @returns {HTMLInputElement} The preconfigured element to use. + * @returns The preconfigured element to use. * @protected */ createOpenFileInputElement():HTMLInputElement; @@ -4879,7 +6109,7 @@ declare namespace system{ * If {@link yfiles.graphml.GraphMLSupport#storageLocation} is set to {@link yfiles.graphml.StorageLocation#FILE_SYSTEM} but saving to a file is not supported by the user's browser, * this method is called to create the element to which the GraphML content is appended. *

      - * @returns {HTMLElement} The preconfigured element to use. Null if element creation failed. + * @returns The preconfigured element to use. Null if element creation failed. * @protected */ createSaveFileTextElement():HTMLElement; @@ -4888,8 +6118,8 @@ declare namespace system{ *

      * This method will first query the {@link yfiles.graph.ILookup#lookup} of the graph, *

      - * @param {yfiles.graph.IGraph} graph - * @returns {yfiles.graphml.GraphMLIOHandler} The instance to use for IO. + * @param graph + * @returns The instance to use for IO. * @protected */ getGraphMLIOHandler(graph:yfiles.graph.IGraph):yfiles.graphml.GraphMLIOHandler; @@ -4902,9 +6132,9 @@ declare namespace system{ *

      * Any exception thrown during loading of the GraphML file will reject the promise. *

      - * @param {yfiles.view.GraphComponent} graphComponent - * @param {yfiles.graphml.StorageLocation} [storageLocation=null] - * @returns {Promise.} A promise that will resolve to the loaded graph instance or reject upon exceptions during loading. Note that if the file + * @param graphComponent + * @param [storageLocation=null] + * @returns A promise that will resolve to the loaded graph instance or reject upon exceptions during loading. Note that if the file * open dialog is cancelled by the user, the promise will stay unresolved because there is no API available that can be * used to determine whether the user has pressed cancel. Depending on the UA implementation it may be possible to listen * to focus or other input device events on the page to detect when the user has closed the file open dialog. @@ -4922,9 +6152,9 @@ declare namespace system{ * Any exception thrown during loading of the GraphML file will be caught and an error message displayed to the user. For * more control over error behaviour it is recommended to use {@link yfiles.graphml.GraphMLSupport#graphMLIOHandler} directly, e.g. from a custom command handler. *

      - * @param {yfiles.graph.IGraph} graph - * @param {yfiles.graphml.StorageLocation} [storageLocation=null] - * @returns {Promise.} A promise that will resolve to the loaded graph instance or reject upon exceptions during loading. Note that if the file + * @param graph + * @param [storageLocation=null] + * @returns A promise that will resolve to the loaded graph instance or reject upon exceptions during loading. Note that if the file * open dialog is cancelled by the user, the promise will stay unresolved because there is no API available that can be * used to determine whether the user has pressed cancel. Depending on the UA implementation it may be possible to listen * to focus or other input device events on the page to detect when the user has closed the file open dialog. @@ -4934,7 +6164,7 @@ declare namespace system{ openFile(graph:yfiles.graph.IGraph,storageLocation?:yfiles.graphml.StorageLocation):Promise; /** * Registers bindings for {@link yfiles.input.ICommand#OPEN} and {@link yfiles.input.ICommand#SAVE} on the given graphControl. - * @param {yfiles.view.GraphComponent} graphComponent The {@link yfiles.view.GraphComponent} to register the command bindings on. + * @param graphComponent The {@link } to register the command bindings on. */ registerCommands(graphComponent:yfiles.view.GraphComponent):void; /** @@ -4947,9 +6177,9 @@ declare namespace system{ * Any exception thrown during loading of the GraphML file will be caught and an error message displayed to the user. For * more control over error behaviour it is recommended to use {@link yfiles.graphml.GraphMLSupport#graphMLIOHandler} directly, e.g. from a custom command handler. *

      - * @param {yfiles.graph.IGraph} graph - * @param {yfiles.graphml.StorageLocation} [storageLocation=null] - * @returns {Promise.} A promise that will resolve to the saved string representation of the graph or reject upon exceptions during the save + * @param graph + * @param [storageLocation=null] + * @returns A promise that will resolve to the saved string representation of the graph or reject upon exceptions during the save * operation. * @see yfiles.graphml.GraphMLSupport#storageLocation * @see yfiles.graphml.GraphMLSupport#saveFile @@ -5023,7 +6253,7 @@ declare namespace system{ *

      * @see yfiles.graphml.ChildParseContext#setDeserializationProperty * @see yfiles.graphml.ChildParseContext#setLookup - * @class yfiles.graphml.ChildParseContext + * @class * @implements {yfiles.graphml.IParseContext} */ export interface ChildParseContext extends Object,yfiles.graphml.IParseContext{} @@ -5031,70 +6261,68 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.graphml.ChildParseContext} class that delegates to the provided context and adds * the currentObject to the {@link yfiles.graphml.ChildParseContext#objectStack}. - * @param {yfiles.graphml.IParseContext} parentContext The parent context. - * @param {Object} currentObject The current object to add to the {@link yfiles.graphml.ChildParseContext#objectStack} and return in {@link yfiles.graphml.ChildParseContext#getCurrent}. - * @constructor + * @param parentContext The parent context. + * @param currentObject The current object to add to the {@link #objectStack} and return in {@link #getCurrent}. */ constructor(parentContext:yfiles.graphml.IParseContext,currentObject:Object); /** * Initializes a new instance of the {@link yfiles.graphml.ChildParseContext} class that delegates to the provided context. - * @param {yfiles.graphml.IParseContext} parentContext The parent context. - * @constructor + * @param parentContext The parent context. */ constructor(parentContext:yfiles.graphml.IParseContext); /** * * Type parameter T. - * @param {yfiles.lang.Class} targetType - * @param {yfiles.graphml.IParseContext} context - * @param {Node} targetNode - * @returns {T} + * @param targetType + * @param context + * @param targetNode + * @returns * @template T */ deserializeCore(targetType:yfiles.lang.Class,context:yfiles.graphml.IParseContext,targetNode:Node):T; /** * * Type parameter T. - * @param {yfiles.lang.Class} itemType - * @returns {T} + * @param itemType + * @returns * @template T */ getCurrent(itemType:yfiles.lang.Class):T; /** * - * @param {string} key - * @returns {Object} + * @param key + * @returns */ getDeserializationProperty(key:string):Object; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * Removes a previously locally {@link yfiles.graphml.ChildParseContext#setDeserializationProperty set} deserialization property. - * @param {string} key The key for which the local property override should be removed. + * @param key The key for which the local property override should be removed. */ removeDeserializationProperty(key:string):void; /** * Removes a local lookup override that has been added using {@link yfiles.graphml.ChildParseContext#setLookup} * Type parameter T: The type key to remove. - * @param {yfiles.lang.Class} tType The type key to remove. + * @param tType The type key to remove. * @template T */ removeLookup(tType:yfiles.lang.Class):void; /** * Sets the local deserialization property for the given key to the value. - * @param {string} key The key to override. - * @param {Object} value The value. + * @param key The key to override. + * @param value The value. */ setDeserializationProperty(key:string,value:Object):void; /** * Adds another lookup result to the local lookup override. * Type parameter T: The type to use as a key for the lookup. - * @param {yfiles.lang.Class} tType The type to use as a key for the lookup. - * @param {T} value The value to provide for queries to T. + * @param tType The type to use as a key for the lookup. + * @param value The value to provide for queries to T. * @see yfiles.graphml.ChildParseContext#removeLookup * @template T */ @@ -5131,7 +6359,7 @@ declare namespace system{ *

      * @see yfiles.graphml.IGraphElementFactory * @see yfiles.graphml.GraphMLParser - * @class yfiles.graphml.CreationProperties + * @class * @implements {yfiles.collections.IMapper.} */ export interface CreationProperties extends Object,yfiles.collections.IMapper{} @@ -5143,19 +6371,19 @@ declare namespace system{ clear():void; /** * Gets the value associated with the specified key. - * @param {Object} key The key. - * @returns {Object} The value stored for the key. + * @param key The key. + * @returns The value stored for the key. * @see yfiles.graphml.CreationProperties#set */ get(key:Object):Object; /** * Removes the associated entry for the given key - * @param {Object} key The entry key to remove. + * @param key The entry key to remove. */ removeValue(key:Object):void; /** * Sets the value associated with the specified key. - * @param {Object} key The key. + * @param key The key. * @param value The value stored for the key. * @see yfiles.graphml.CreationProperties#get */ @@ -5252,15 +6480,15 @@ declare namespace system{ * variants. It should rarely be necessary to use this class directly. *

      * @see yfiles.graphml.GraphMLIOHandler - * @class yfiles.graphml.GraphMLParser + * @class */ export interface GraphMLParser extends Object{} export class GraphMLParser { constructor(); /** * Create the initial {@link yfiles.graphml.IParseContext} instance. - * @param {yfiles.graph.IGraph} graph The graph that is parsed. - * @returns {yfiles.graphml.IParseContext} An {@link yfiles.graphml.IParseContext} instance that is suitable for graph. + * @param graph The graph that is parsed. + * @returns An {@link } instance that is suitable for graph. * @protected */ createParseContext(graph:yfiles.graph.IGraph):yfiles.graphml.IParseContext; @@ -5272,10 +6500,10 @@ declare namespace system{ * event. *

      * Type parameter T: The desired type of the result. - * @param {yfiles.lang.Class} targetType The desired type of the result. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {Node} element The XML content that should be deserialized. - * @returns {T} An instance of T that is represented by element. + * @param targetType The desired type of the result. + * @param context The current parse context. + * @param element The XML content that should be deserialized. + * @returns An instance of T that is represented by element. * @see yfiles.graphml.IParseContext#deserializeCore * @see yfiles.graphml.GraphMLParser#addHandleDeserializationListener * @template T @@ -5283,8 +6511,8 @@ declare namespace system{ deserialize(targetType:yfiles.lang.Class,context:yfiles.graphml.IParseContext,element:Node):T; /** * Retrieve a deserialization property that has been set by {@link yfiles.graphml.GraphMLParser#setDeserializationProperty}. - * @param {string} key The key for the property. - * @returns {Object} + * @param key The key for the property. + * @returns * @see yfiles.graphml.IParseContext#getDeserializationProperty */ getDeserializationProperty(key:string):Object; @@ -5296,20 +6524,20 @@ declare namespace system{ * {@link yfiles.graphml.GraphMLParser#onQueryInputHandlers}, which in turn raises the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event. *

      - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {Element} keyDefinition The key definition element of the GraphML attribute. - * @returns {yfiles.collections.IList.} A list of {@link yfiles.graphml.IInputHandler IInputHandlers} that claim to be responsible for handling the given GraphML attribute. + * @param context The current parse context. + * @param keyDefinition The key definition element of the GraphML attribute. + * @returns A list of {@link IInputHandlers} that claim to be responsible for handling the given GraphML attribute. */ getInputHandlers(context:yfiles.graphml.IParseContext,keyDefinition:Element):yfiles.collections.IList; /** * Dynamically retrieve an instance of type. - * @param {yfiles.lang.Class} type The type for which an implementation is needed. - * @returns {Object} An implementation of type, or null. + * @param type The type for which an implementation is needed. + * @returns An implementation of type, or null. */ lookup(type:yfiles.lang.Class):Object; /** * Fires the {@link yfiles.graphml.GraphMLParser#addHandleDeserializationListener HandleDeserialization} event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLParser#addHandleDeserializationListener HandleDeserialization} + * @param evt The arguments that get passed to the {@link #addHandleDeserializationListener HandleDeserialization} * event. * @see yfiles.graphml.GraphMLIOHandler#onHandleDeserialization * @protected @@ -5321,7 +6549,7 @@ declare namespace system{ * This method is called when the document has been parsed and after {@link yfiles.graphml.IParseEvents#addDocumentParsedListener DocumentParsed} * is called. *

      - * @param {yfiles.graphml.ParseEventArgs} evt The {@link yfiles.graphml.ParseEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLParser#addParsedListener * @protected */ @@ -5332,14 +6560,14 @@ declare namespace system{ * This method is called just before the parsing starts and before {@link yfiles.graphml.IParseEvents#addDocumentParsingListener DocumentParsing} * is called. *

      - * @param {yfiles.graphml.ParseEventArgs} evt The {@link yfiles.graphml.ParseEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLParser#addParsingListener * @protected */ onParsing(evt:yfiles.graphml.ParseEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} event. - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} + * @param evt The arguments that get passed to the {@link #addQueryInputHandlersListener QueryInputHandlers} * event. * @see yfiles.graphml.GraphMLIOHandler#onQueryInputHandlers * @protected @@ -5350,12 +6578,12 @@ declare namespace system{ *

      * Typically, this method is called indirectly from {@link yfiles.graphml.GraphMLIOHandler#readFromDocument}. *

      - * @param {Document} document The XML document instance to parse. Note: If you are using Internet Explorer 9 and {@link XMLHttpRequest}s to retrieve the document, - * you may not use the value from the {@link XMLHttpRequest#responseXML} property. Please parse {@link XMLHttpRequest#responseText} instead + * @param document The XML document instance to parse. Note: If you are using Internet Explorer 9 and {@link }s to retrieve the document, + * you may not use the value from the {@link #responseXML} property. Please parse {@link #responseText} instead * and use the result. For further reference see {@link http://msdn.microsoft.com/en-us/library/ie/hh180177.aspx}. - * @param {yfiles.graph.IGraph} graph The graph instance that is populated. - * @param {yfiles.graphml.IGraphElementFactory} elementFactory The {@link yfiles.graphml.IGraphElementFactory} instance that is used to create the elements. - * @returns {Promise.} + * @param graph The graph instance that is populated. + * @param elementFactory The {@link } instance that is used to create the elements. + * @returns * @see yfiles.graphml.GraphMLIOHandler#readFromDocument */ parseFromDocument(graph:yfiles.graph.IGraph,document:Document,elementFactory:yfiles.graphml.IGraphElementFactory):Promise; @@ -5364,38 +6592,38 @@ declare namespace system{ *

      * Typically, this method is called indirectly from {@link yfiles.graphml.GraphMLIOHandler#readFromURL}. *

      - * @param {string} url The URL to the input to parse. - * @param {yfiles.graph.IGraph} graph The graph instance that is populated. - * @param {yfiles.graphml.IGraphElementFactory} elementFactory The {@link yfiles.graphml.IGraphElementFactory} instance that is used to create the elements. - * @returns {Promise.} + * @param url The URL to the input to parse. + * @param graph The graph instance that is populated. + * @param elementFactory The {@link } instance that is used to create the elements. + * @returns * @see yfiles.graphml.GraphMLIOHandler#readFromGraphMLText */ parseFromURL(graph:yfiles.graph.IGraph,url:string,elementFactory:yfiles.graphml.IGraphElementFactory):Promise; /** * Remove a deserialization property that has been set by {@link yfiles.graphml.GraphMLParser#setDeserializationProperty}. - * @param {string} key The key for the property. + * @param key The key for the property. * @see yfiles.graphml.IParseContext#getDeserializationProperty */ removeDeserializationProperty(key:string):void; /** * Remove an implementation of T that has been set with {@link yfiles.graphml.GraphMLParser#setLookup}. * Type parameter T. - * @param {yfiles.lang.Class} tType + * @param tType * @template T */ removeLookup(tType:yfiles.lang.Class):void; /** * Set a deserialization property that allows to fine tune the parsing process. - * @param {string} key The key for the property. - * @param {Object} value The property value. + * @param key The key for the property. + * @param value The property value. * @see yfiles.graphml.IParseContext#getDeserializationProperty */ setDeserializationProperty(key:string,value:Object):void; /** * Register an implementation of T for use with {@link yfiles.graphml.GraphMLParser#lookup}. * Type parameter T: The type of instance. - * @param {yfiles.lang.Class} tType The type of instance. - * @param {T} instance The implementation of T for lookup retrieval. + * @param tType The type of instance. + * @param instance The implementation of T for lookup retrieval. * @template T */ setLookup(tType:yfiles.lang.Class,instance:T):void; @@ -5409,7 +6637,7 @@ declare namespace system{ * The current key definition is provided by {@link yfiles.graphml.QueryInputHandlersEventArgs#keyDefinition}. If you want to register an {@link yfiles.graphml.IInputHandler} for this GraphML * attribute, you can add the handler with {@link yfiles.graphml.QueryInputHandlersEventArgs#addInputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryInputHandlersEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener * @see yfiles.graphml.GraphMLParser#removeQueryInputHandlersListener */ @@ -5424,7 +6652,7 @@ declare namespace system{ * The current key definition is provided by {@link yfiles.graphml.QueryInputHandlersEventArgs#keyDefinition}. If you want to register an {@link yfiles.graphml.IInputHandler} for this GraphML * attribute, you can add the handler with {@link yfiles.graphml.QueryInputHandlersEventArgs#addInputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryInputHandlersEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener * @see yfiles.graphml.GraphMLParser#addQueryInputHandlersListener */ @@ -5441,7 +6669,7 @@ declare namespace system{ *

      * The current XML content is provided by {@link yfiles.graphml.HandleDeserializationEventArgs#xmlNode}. If you want to return deserialized content, set the value of the {@link yfiles.graphml.HandleDeserializationEventArgs#result} property. *

      - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener * @see yfiles.graphml.GraphMLParser#removeHandleDeserializationListener */ @@ -5459,21 +6687,21 @@ declare namespace system{ *

      * The current XML content is provided by {@link yfiles.graphml.HandleDeserializationEventArgs#xmlNode}. If you want to return deserialized content, set the value of the {@link yfiles.graphml.HandleDeserializationEventArgs#result} property. *

      - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener * @see yfiles.graphml.GraphMLParser#addHandleDeserializationListener */ removeHandleDeserializationListener(listener:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void):void; /** * Adds the given listener for the Parsed event that occurs when the the document has been parsed. - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLParser#onParsed * @see yfiles.graphml.GraphMLParser#removeParsedListener */ addParsedListener(listener:(sender:Object,evt:yfiles.graphml.ParseEventArgs)=>void):void; /** * Removes the given listener for the Parsed event that occurs when the the document has been parsed. - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLParser#onParsed * @see yfiles.graphml.GraphMLParser#addParsedListener */ @@ -5484,7 +6712,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.ParseEventArgs#context}'s {@link yfiles.graphml.IParseContext#parseEvents} and the configure the parsing process * on a per parse case. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLParser#onParsing * @see yfiles.graphml.GraphMLParser#removeParsingListener */ @@ -5495,7 +6723,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.ParseEventArgs#context}'s {@link yfiles.graphml.IParseContext#parseEvents} and the configure the parsing process * on a per parse case. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLParser#onParsing * @see yfiles.graphml.GraphMLParser#addParsingListener */ @@ -5510,7 +6738,7 @@ declare namespace system{ * If the event handler determines that it can deserialize the {@link yfiles.graphml.HandleDeserializationEventArgs#xmlNode}, it should place the result into the {@link yfiles.graphml.HandleDeserializationEventArgs#result} property and thus * mark the event as {@link yfiles.graphml.HandleDeserializationEventArgs#handled}. *

      - * @class yfiles.graphml.HandleDeserializationEventArgs + * @class * @extends {yfiles.lang.EventArgs} * @final */ @@ -5518,10 +6746,9 @@ declare namespace system{ export class HandleDeserializationEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.HandleDeserializationEventArgs} class. - * @param {yfiles.graphml.IParseContext} context The context in which serialization should take place. - * @param {Node} xmlNode The XML element that contains the data to deserialize. - * @param {yfiles.lang.Class} targetType The required {@link yfiles.graphml.HandleDeserializationEventArgs#targetType target type} of the {@link yfiles.graphml.HandleDeserializationEventArgs#result}. - * @constructor + * @param context The context in which serialization should take place. + * @param xmlNode The XML element that contains the data to deserialize. + * @param targetType The required {@link #targetType target type} of the {@link #result}. */ constructor(context:yfiles.graphml.IParseContext,xmlNode:Node,targetType:yfiles.lang.Class); /** @@ -5570,27 +6797,27 @@ declare namespace system{ export interface IGraphElementFactory extends Object{ /** * Adds a new port to the given {@link yfiles.graph.IPortOwner}. - * @param {yfiles.graphml.IParseContext} context The context from which the graph, the {@link yfiles.graphml.CreationProperties}, and the {@link yfiles.graphml.IParseContext#objectStack} can be queried. - * @param {yfiles.graph.IPortOwner} owner The owner of the port. - * @returns {yfiles.graph.IPort} A newly created port. + * @param context The context from which the graph, the {@link }, and the {@link #objectStack} can be queried. + * @param owner The owner of the port. + * @returns A newly created port. * @abstract */ addPort(context:yfiles.graphml.IParseContext,owner:yfiles.graph.IPortOwner):yfiles.graph.IPort; /** * Creates an edge for the given context and the provided source and target nodes or ports. - * @param {yfiles.graphml.IParseContext} context The context from which the graph, the {@link yfiles.graphml.CreationProperties}, and the {@link yfiles.graphml.IParseContext#objectStack} can be queried. - * @param {yfiles.graph.INode} sourceNode The source node for the edge. - * @param {yfiles.graph.IPort} sourcePort The source port for the edge, if specified, otherwise null. - * @param {yfiles.graph.INode} targetNode The target node for the edge. - * @param {yfiles.graph.IPort} targetPort The target port for the edge, if specified, otherwise null. - * @returns {yfiles.graph.IEdge} A newly created edge. + * @param context The context from which the graph, the {@link }, and the {@link #objectStack} can be queried. + * @param sourceNode The source node for the edge. + * @param sourcePort The source port for the edge, if specified, otherwise null. + * @param targetNode The target node for the edge. + * @param targetPort The target port for the edge, if specified, otherwise null. + * @returns A newly created edge. * @abstract */ createEdge(context:yfiles.graphml.IParseContext,sourceNode:yfiles.graph.INode,sourcePort:yfiles.graph.IPort,targetNode:yfiles.graph.INode,targetPort:yfiles.graph.IPort):yfiles.graph.IEdge; /** * Creates a node for the given context. - * @param {yfiles.graphml.IParseContext} context The context from which the graph, the {@link yfiles.graphml.CreationProperties}, and the {@link yfiles.graphml.IParseContext#objectStack} can be queried. - * @returns {yfiles.graph.INode} A newly created node + * @param context The context from which the graph, the {@link }, and the {@link #objectStack} can be queried. + * @returns A newly created node * @abstract */ createNode(context:yfiles.graphml.IParseContext):yfiles.graph.INode; @@ -5606,33 +6833,33 @@ declare namespace system{ export interface IGraphElementIdAcceptor extends Object{ /** * Store the value of the id attribute for the given edge. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {yfiles.graph.IEdge} edge The current edge element - * @param {string} id The id of the edge's XML representation + * @param context The current parse context. + * @param edge The current edge element + * @param id The id of the edge's XML representation * @abstract */ storeEdgeId(context:yfiles.graphml.IParseContext,edge:yfiles.graph.IEdge,id:string):void; /** * Store the value of the id attribute for the given graph. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {yfiles.graph.IGraph} graph The current graph element - * @param {string} id The id of the graph's XML representation + * @param context The current parse context. + * @param graph The current graph element + * @param id The id of the graph's XML representation * @abstract */ storeGraphId(context:yfiles.graphml.IParseContext,graph:yfiles.graph.IGraph,id:string):void; /** * Store the value of the id attribute for the given node. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {yfiles.graph.INode} node The current node element - * @param {string} id The id of the node's XML representation + * @param context The current parse context. + * @param node The current node element + * @param id The id of the node's XML representation * @abstract */ storeNodeId(context:yfiles.graphml.IParseContext,node:yfiles.graph.INode,id:string):void; /** * Store the value of the id attribute for the given port. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {yfiles.graph.IPort} port The current port element - * @param {string} id The id of the port's XML representation + * @param context The current parse context. + * @param port The current port element + * @param id The id of the port's XML representation * @abstract */ storePortId(context:yfiles.graphml.IParseContext,port:yfiles.graph.IPort,id:string):void; @@ -5644,7 +6871,7 @@ declare namespace system{ /** * Simple implementation of {@link yfiles.graphml.IGraphElementIdAcceptor} and {@link yfiles.graphml.IGraphElementIdProvider} that stores * all ids in {@link yfiles.collections.IMapper.} instances. - * @class yfiles.graphml.GraphElementIdAcceptor + * @class * @implements {yfiles.graphml.IGraphElementIdAcceptor} * @implements {yfiles.graphml.IGraphElementResolver} */ @@ -5654,65 +6881,65 @@ declare namespace system{ /** * Factory method to create a default implementation of {@link yfiles.graphml.IGraphElementIdProvider} that delegates to fallback * and uses the values stored by this {@link yfiles.graphml.GraphElementIdAcceptor} instance, if possible. - * @param {yfiles.graphml.IGraphElementIdProvider} fallback The fallback. - * @returns {yfiles.graphml.IGraphElementIdProvider} + * @param fallback The fallback. + * @returns */ createIdProvider(fallback:yfiles.graphml.IGraphElementIdProvider):yfiles.graphml.IGraphElementIdProvider; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {string} id - * @returns {yfiles.graph.IEdge} + * @param context + * @param id + * @returns */ resolveEdge(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.IEdge; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {string} id - * @returns {yfiles.graph.IGraph} + * @param context + * @param id + * @returns */ resolveGraph(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.IGraph; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {string} id - * @returns {yfiles.graph.INode} + * @param context + * @param id + * @returns */ resolveNode(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.INode; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {string} ownerId - * @param {string} id - * @returns {yfiles.graph.IPort} + * @param context + * @param ownerId + * @param id + * @returns */ resolvePort(context:yfiles.graphml.IParseContext,ownerId:string,id:string):yfiles.graph.IPort; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {yfiles.graph.IEdge} edge - * @param {string} id + * @param context + * @param edge + * @param id */ storeEdgeId(context:yfiles.graphml.IParseContext,edge:yfiles.graph.IEdge,id:string):void; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {yfiles.graph.IGraph} graph - * @param {string} id + * @param context + * @param graph + * @param id */ storeGraphId(context:yfiles.graphml.IParseContext,graph:yfiles.graph.IGraph,id:string):void; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {yfiles.graph.INode} node - * @param {string} id + * @param context + * @param node + * @param id */ storeNodeId(context:yfiles.graphml.IParseContext,node:yfiles.graph.INode,id:string):void; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {yfiles.graph.IPort} port - * @param {string} id + * @param context + * @param port + * @param id */ storePortId(context:yfiles.graphml.IParseContext,port:yfiles.graph.IPort,id:string):void; /** @@ -5744,25 +6971,25 @@ declare namespace system{ export interface IGraphElementResolver extends Object{ /** * Resolve the GraphML id to an {@link yfiles.graph.IEdge} instance. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {string} id The id that should be resolved. - * @returns {yfiles.graph.IEdge} The {@link yfiles.graph.IEdge} that is defined by this GraphML id, or null if no such edge exists yet. + * @param context The current parse context. + * @param id The id that should be resolved. + * @returns The {@link } that is defined by this GraphML id, or null if no such edge exists yet. * @abstract */ resolveEdge(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.IEdge; /** * Resolve the GraphML id to an {@link yfiles.graph.IGraph} instance. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {string} id The id that should be resolved. - * @returns {yfiles.graph.IGraph} The {@link yfiles.graph.IGraph} that is defined by this GraphML id, or null if no such graph exists yet. + * @param context The current parse context. + * @param id The id that should be resolved. + * @returns The {@link } that is defined by this GraphML id, or null if no such graph exists yet. * @abstract */ resolveGraph(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.IGraph; /** * Resolve the GraphML id to an {@link yfiles.graph.INode} instance. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {string} id The id that should be resolved. - * @returns {yfiles.graph.INode} The {@link yfiles.graph.INode} that is defined by this GraphML id, or null if no such node exists yet. + * @param context The current parse context. + * @param id The id that should be resolved. + * @returns The {@link } that is defined by this GraphML id, or null if no such node exists yet. * @abstract */ resolveNode(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.INode; @@ -5771,10 +6998,10 @@ declare namespace system{ *

      * The port owner is specified by the ownerId attribute. *

      - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {string} ownerId The GraphML id of the port owner. - * @param {string} id The id that should be resolved. - * @returns {yfiles.graph.IPort} The {@link yfiles.graph.IPort} that is defined by the GraphML ids, or null if no such port exists yet. + * @param context The current parse context. + * @param ownerId The GraphML id of the port owner. + * @param id The id that should be resolved. + * @returns The {@link } that is defined by the GraphML ids, or null if no such port exists yet. * @abstract */ resolvePort(context:yfiles.graphml.IParseContext,ownerId:string,id:string):yfiles.graph.IPort; @@ -5790,14 +7017,14 @@ declare namespace system{ export interface IInputHandler extends Object{ /** * This method is invoked when no data tag is defined, and the default value should be applied. - * @param {yfiles.graphml.IParseContext} context the current parse context. + * @param context the current parse context. * @abstract */ applyDefault(context:yfiles.graphml.IParseContext):void; /** * This method is invoked each time a data element with matching key is processed. - * @param {yfiles.graphml.IParseContext} context the current parse context. - * @param {Node} node the DOM node representing the data element. + * @param context the current parse context. + * @param node the DOM node representing the data element. * @abstract */ parseData(context:yfiles.graphml.IParseContext,node:Node):void; @@ -5846,7 +7073,7 @@ declare namespace system{ * An abstract convenience implementation of the {@link yfiles.graphml.IInputHandler} interface. * Type parameter TKey: The type of the key, i.e. the items that are associated with the data in the GraphML. * Type parameter TData: The type of the data that is associated with the keys. - * @class yfiles.graphml.InputHandlerBase. + * @class * @implements {yfiles.graphml.IInputHandler} * @template TKey,TData */ @@ -5857,30 +7084,28 @@ declare namespace system{ *

      * The {@link yfiles.graphml.InputHandlerBase.#precedence} gets the initial value assigned to precedence *

      - * @param {yfiles.lang.Class} keyType1 The type of the key, i.e. the items that are associated with the data in the GraphML. - * @param {yfiles.lang.Class} dataType The type of the data that is associated with the keys. - * @param {yfiles.graphml.ParsePrecedence} precedence The precedence to assign to the {@link yfiles.graphml.InputHandlerBase.#precedence} property. + * @param keyType The type of the key, i.e. the items that are associated with the data in the GraphML. + * @param dataType The type of the data that is associated with the keys. + * @param precedence The precedence to assign to the {@link #precedence} property. * @protected - * @constructor */ - constructor(keyType1:yfiles.lang.Class,dataType:yfiles.lang.Class,precedence:yfiles.graphml.ParsePrecedence); + constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,precedence:yfiles.graphml.ParsePrecedence); /** * Initializes a new instance of the {@link yfiles.graphml.InputHandlerBase.} class. *

      * The {@link yfiles.graphml.InputHandlerBase.#precedence} has an initial value of {@link yfiles.graphml.ParsePrecedence#DEFAULT}. *

      - * @param {yfiles.lang.Class} keyType1 The type of the key, i.e. the items that are associated with the data in the GraphML. - * @param {yfiles.lang.Class} dataType The type of the data that is associated with the keys. + * @param keyType The type of the key, i.e. the items that are associated with the data in the GraphML. + * @param dataType The type of the data that is associated with the keys. * @protected - * @constructor */ - constructor(keyType1:yfiles.lang.Class,dataType:yfiles.lang.Class); + constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class); /** * This method is invoked when no data tag is defined, and the default value should be applied. *

      * This implementation delegates to {@link yfiles.graphml.InputHandlerBase.#setValue} if {@link yfiles.graphml.InputHandlerBase.#defaultExists a default exists} using the {@link yfiles.graphml.InputHandlerBase.#defaultValue}. *

      - * @param {yfiles.graphml.IParseContext} context the current parse context. + * @param context the current parse context. */ applyDefault(context:yfiles.graphml.IParseContext):void; /** @@ -5889,8 +7114,8 @@ declare namespace system{ * This implementation looks for the GraphML default element and delegates to {@link yfiles.graphml.InputHandlerBase.#parseDataCore} if a default is found to store * the {@link yfiles.graphml.InputHandlerBase.#defaultValue}. *

      - * @param {yfiles.graphml.IParseContext} context The context. - * @param {Element} definition The definition. + * @param context The context. + * @param definition The definition. */ initializeFromKeyDefinition(context:yfiles.graphml.IParseContext,definition:Element):void; /** @@ -5899,24 +7124,24 @@ declare namespace system{ * If the {@link yfiles.graphml.IParseContext#getCurrent current element} is of the same type as this TKey, this method delegates the actual parsing to {@link yfiles.graphml.InputHandlerBase.#parseDataCore} and * {@link yfiles.graphml.InputHandlerBase.#setValue} *

      - * @param {yfiles.graphml.IParseContext} context the current parse context. - * @param {Node} node the DOM node representing the data element. + * @param context the current parse context. + * @param node the DOM node representing the data element. */ parseData(context:yfiles.graphml.IParseContext,node:Node):void; /** * Abstract method callback that actually parses the data. - * @param {yfiles.graphml.IParseContext} context The context. - * @param {Node} node The node that contains the data. This is either the GraphML 'data' element or the 'default' element. - * @returns {TData} The parsed data. + * @param context The context. + * @param node The node that contains the data. This is either the GraphML 'data' element or the 'default' element. + * @returns The parsed data. * @protected * @abstract */ parseDataCore(context:yfiles.graphml.IParseContext,node:Node):TData; /** * Abstract method callback that actually stores the value with the keys. - * @param {yfiles.graphml.IParseContext} context The context. - * @param {TKey} key The key. - * @param {TData} data The data. + * @param context The context. + * @param key The key. + * @param data The data. * @protected * @abstract */ @@ -5963,7 +7188,7 @@ declare namespace system{ *

      * Type parameter TKey: The type of the key. * Type parameter TData: The type of the value. - * @class yfiles.graphml.MapperInputHandler. + * @class * @extends {yfiles.graphml.InputHandlerBase.} * @template TKey,TData */ @@ -5972,25 +7197,23 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.graphml.MapperInputHandler.} class that uses the event handler for deserialization and suggests the provided * target type for the deserializer. - * @param {yfiles.lang.Class} keyType2 The type of the key. - * @param {yfiles.lang.Class} dataType1 The type of the value. - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} deserializer - * @param {yfiles.lang.Class} [deserializerTargetType=null] + * @param keyType The type of the key. + * @param dataType The type of the value. + * @param deserializer + * @param [deserializerTargetType=null] * @see yfiles.graphml.MapperInputHandler.#deserializerTargetType * @see yfiles.graphml.MapperInputHandler.#deserializer - * @constructor */ - constructor(keyType2:yfiles.lang.Class,dataType1:yfiles.lang.Class,deserializer:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void,deserializerTargetType?:yfiles.lang.Class); + constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,deserializer:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void,deserializerTargetType?:yfiles.lang.Class); /** * Initializes a new instance of the {@link yfiles.graphml.MapperInputHandler.} class that uses the {@link yfiles.graphml.IParseContext} for deserialization. *

      * The {@link yfiles.graphml.IInputHandler#precedence} has an initial value of {@link yfiles.graphml.ParsePrecedence#DEFAULT}. *

      - * @param {yfiles.lang.Class} keyType2 The type of the key. - * @param {yfiles.lang.Class} dataType1 The type of the value. - * @constructor + * @param keyType The type of the key. + * @param dataType The type of the value. */ - constructor(keyType2:yfiles.lang.Class,dataType1:yfiles.lang.Class); + constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class); /** * Gets the node to pass to {@link yfiles.graphml.MapperInputHandler.#deserializer} or {@link yfiles.graphml.IParseContext#deserializeCore IParseContext.Deserialize} respectively, given the 'data' or 'default' element from the * GraphML. @@ -6001,9 +7224,9 @@ declare namespace system{ * This implementation returns node iff {@link yfiles.graphml.MapperInputHandler.#useParentElementForDeserialization} is true (i.e. the 'data' or 'default' node itself), otherwise the first child of * the node that is not a comment or processing instruction. *

      - * @param {yfiles.graphml.IParseContext} context The context within which the node is parsed. - * @param {Node} node The 'data' or 'default' node. - * @returns {Node} The node that should be deserialized. + * @param context The context within which the node is parsed. + * @param node The 'data' or 'default' node. + * @returns The node that should be deserialized. * @see yfiles.graphml.MapperInputHandler.#useParentElementForDeserialization * @protected */ @@ -6046,7 +7269,7 @@ declare namespace system{ * Specialized {@link yfiles.lang.EventArgs} that are used for dynamic {@link yfiles.graphml.IInputHandler} registration. * @see yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener * @see yfiles.graphml.GraphMLParser#addQueryInputHandlersListener - * @class yfiles.graphml.QueryInputHandlersEventArgs + * @class * @extends {yfiles.lang.EventArgs} * @final */ @@ -6054,10 +7277,9 @@ declare namespace system{ export class QueryInputHandlersEventArgs { /** * Create a new instance. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {Element} keyDefinition The current key definition - * @param {yfiles.collections.IList.} handlers Stores the registered {@link yfiles.graphml.IInputHandler} instances. - * @constructor + * @param context The current parse context. + * @param keyDefinition The current key definition + * @param handlers Stores the registered {@link } instances. */ constructor(context:yfiles.graphml.IParseContext,keyDefinition:Element,handlers:yfiles.collections.IList); /** @@ -6065,7 +7287,7 @@ declare namespace system{ *

      * Calling this method automatically sets {@link yfiles.graphml.QueryInputHandlersEventArgs#handled} to true. *

      - * @param {yfiles.graphml.IInputHandler} handler + * @param handler */ addInputHandler(handler:yfiles.graphml.IInputHandler):void; /** @@ -6106,7 +7328,7 @@ declare namespace system{ * Whenever it is necessary to locally modify some context properties, a new instance of this class should be created that * wraps an existing one. *

      - * @class yfiles.graphml.ChildWriteContext + * @class * @implements {yfiles.graphml.IWriteContext} */ export interface ChildWriteContext extends Object,yfiles.graphml.IWriteContext{} @@ -6114,71 +7336,69 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.graphml.ChildWriteContext} class that delegates to the provided context and * returns the given value in {@link yfiles.graphml.ChildWriteContext#getCurrent}. - * @param {yfiles.graphml.IWriteContext} parentContext The parent context to delegate calls to. - * @param {Object} currentObject The current object to return in {@link yfiles.graphml.ChildWriteContext#getCurrent}. - * @constructor + * @param parentContext The parent context to delegate calls to. + * @param currentObject The current object to return in {@link #getCurrent}. */ constructor(parentContext:yfiles.graphml.IWriteContext,currentObject:Object); /** * Initializes a new instance of the {@link yfiles.graphml.ChildWriteContext} class that delegates to the given parent context. - * @param {yfiles.graphml.IWriteContext} parentContext The parent context. - * @constructor + * @param parentContext The parent context. */ constructor(parentContext:yfiles.graphml.IWriteContext); /** * * Type parameter T. - * @param {yfiles.lang.Class} itemType - * @returns {T} + * @param itemType + * @returns * @template T */ getCurrent(itemType:yfiles.lang.Class):T; /** * - * @param {string} key - * @returns {Object} + * @param key + * @returns */ getSerializationProperty(key:string):Object; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * Removes a local lookup override that has been added using {@link yfiles.graphml.ChildWriteContext#setLookup} * Type parameter T: The type key to remove. - * @param {yfiles.lang.Class} tType The type key to remove. + * @param tType The type key to remove. * @template T */ removeLookup(tType:yfiles.lang.Class):void; /** * Removes a previously locally {@link yfiles.graphml.ChildWriteContext#setSerializationProperty set} serialization property. - * @param {string} key The key for which the local property override should be removed. + * @param key The key for which the local property override should be removed. */ removeSerializationProperty(key:string):void; /** * * Type parameter T. - * @param {yfiles.lang.Class} targetType - * @param {yfiles.graphml.IWriteContext} context - * @param {T} item + * @param targetType + * @param context + * @param item * @template T */ serializeCore(targetType:yfiles.lang.Class,context:yfiles.graphml.IWriteContext,item:T):void; /** * Adds another lookup result to the local lookup override. * Type parameter T: The type to use as a key for the lookup. - * @param {yfiles.lang.Class} tType The type to use as a key for the lookup. - * @param {T} value The value to provide for queries to T. + * @param tType The type to use as a key for the lookup. + * @param value The value to provide for queries to T. * @see yfiles.graphml.ChildWriteContext#removeLookup * @template T */ setLookup(tType:yfiles.lang.Class,value:T):void; /** * Sets the local serialization property for the given key to the value. - * @param {string} key The key to override. - * @param {Object} value The value. + * @param key The key to override. + * @param value The value. */ setSerializationProperty(key:string,value:Object):void; /** @@ -6219,16 +7439,16 @@ declare namespace system{ * GraphMLWriter.write. It should rarely be necessary to use this class directly. *

      * @see yfiles.graphml.GraphMLIOHandler - * @class yfiles.graphml.GraphMLWriter + * @class */ export interface GraphMLWriter extends Object{} export class GraphMLWriter { constructor(); /** * Create the initial {@link yfiles.graphml.IWriteContext} instance. - * @param {yfiles.graph.IGraph} graph The graph that is written. - * @param {yfiles.graphml.IXmlWriter} writer The core {@link yfiles.graphml.IXmlWriter} instance that does the actual writing of XML content. - * @returns {yfiles.graphml.IWriteContext} An {@link yfiles.graphml.IWriteContext} instance that is suitable for graph. + * @param graph The graph that is written. + * @param writer The core {@link } instance that does the actual writing of XML content. + * @returns An {@link } instance that is suitable for graph. * @protected */ createWriteContext(graph:yfiles.graph.IGraph,writer:yfiles.graphml.IXmlWriter):yfiles.graphml.IWriteContext; @@ -6239,28 +7459,28 @@ declare namespace system{ * {@link yfiles.graphml.GraphMLWriter#onQueryOutputHandlers}, which in turn raises the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event. *

      - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {yfiles.graphml.KeyScope} scope The scope to get output handlers for. - * @returns {yfiles.collections.IEnumerable.} A dictionary from handler definition ids to {@link yfiles.graphml.IOutputHandler IOutputHandlers}. + * @param context The current write context. + * @param scope The scope to get output handlers for. + * @returns A dictionary from handler definition ids to {@link IOutputHandlers}. */ getOutputHandlers(context:yfiles.graphml.IWriteContext,scope:yfiles.graphml.KeyScope):yfiles.collections.IEnumerable; /** * Retrieve a serialization property that has been set by {@link yfiles.graphml.GraphMLWriter#setSerializationProperty}. - * @param {string} key The key for the property. - * @returns {Object} + * @param key The key for the property. + * @returns * @see yfiles.graphml.IWriteContext#getSerializationProperty */ getSerializationProperty(key:string):Object; /** * Dynamically retrieve an instance of type. - * @param {yfiles.lang.Class} type The type for which an implementation is needed. - * @returns {Object} An implementation of type, or null. + * @param type The type for which an implementation is needed. + * @returns An implementation of type, or null. * @protected */ lookup(type:yfiles.lang.Class):Object; /** * Fires the {@link yfiles.graphml.GraphMLWriter#addHandleSerializationListener HandleSerialization} event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLWriter#addHandleSerializationListener HandleSerialization} + * @param evt The arguments that get passed to the {@link #addHandleSerializationListener HandleSerialization} * event. * @see yfiles.graphml.GraphMLIOHandler#onHandleSerialization * @protected @@ -6268,7 +7488,7 @@ declare namespace system{ onHandleSerialization(evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} event. - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} + * @param evt The arguments that get passed to the {@link #addQueryOutputHandlersListener QueryOutputHandlers} * event. * @see yfiles.graphml.GraphMLIOHandler#onQueryOutputHandlers * @protected @@ -6276,7 +7496,7 @@ declare namespace system{ onQueryOutputHandlers(evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLWriter#addQueryReferenceIdListener QueryReferenceId} event. - * @param {yfiles.graphml.QueryReferenceIdEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLWriter#addQueryReferenceIdListener QueryReferenceId} + * @param evt The arguments that get passed to the {@link #addQueryReferenceIdListener QueryReferenceId} * event. * @see yfiles.graphml.GraphMLIOHandler#onQueryReferenceId * @protected @@ -6288,7 +7508,7 @@ declare namespace system{ * This method is called just before the writing starts and before {@link yfiles.graphml.IWriteEvents#addDocumentWritingListener DocumentWriting} * is called for the first time. *

      - * @param {yfiles.graphml.WriteEventArgs} evt The {@link yfiles.graphml.WriteEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLWriter#addWritingListener * @protected */ @@ -6299,7 +7519,7 @@ declare namespace system{ * This method is called just before the writing has been finished and after {@link yfiles.graphml.IWriteEvents#addDocumentWrittenListener DocumentWritten} * is called for the last time. *

      - * @param {yfiles.graphml.WriteEventArgs} evt The {@link yfiles.graphml.WriteEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLWriter#addWrittenListener * @protected */ @@ -6307,13 +7527,13 @@ declare namespace system{ /** * Remove an implementation of T that has been set with {@link yfiles.graphml.GraphMLWriter#setLookup}. * Type parameter T. - * @param {yfiles.lang.Class} tType + * @param tType * @template T */ removeLookup(tType:yfiles.lang.Class):void; /** * Remove a serialization property that has been set by {@link yfiles.graphml.GraphMLWriter#setSerializationProperty}. - * @param {string} key The key for the property. + * @param key The key for the property. * @see yfiles.graphml.IWriteContext#getSerializationProperty */ removeSerializationProperty(key:string):void; @@ -6325,9 +7545,9 @@ declare namespace system{ * event. *

      * Type parameter T: The desired type of the result. - * @param {yfiles.lang.Class} targetType The desired type of the result. - * @param {yfiles.graphml.IWriteContext} context The current parse context. - * @param {T} item The object that should be serialized. + * @param targetType The desired type of the result. + * @param context The current parse context. + * @param item The object that should be serialized. * @throws {yfiles.graphml.SerializationNotSupportedError} SerializationNotSupportedException if item cannot be serialized. * @see yfiles.graphml.IWriteContext#serializeCore * @see yfiles.graphml.GraphMLWriter#addHandleSerializationListener @@ -6338,15 +7558,15 @@ declare namespace system{ /** * Register an implementation of T for use with {@link yfiles.graphml.GraphMLWriter#lookup}. * Type parameter T: The type of instance. - * @param {yfiles.lang.Class} tType The type of instance. - * @param {T} instance The implementation of T for lookup retrieval. + * @param tType The type of instance. + * @param instance The implementation of T for lookup retrieval. * @template T */ setLookup(tType:yfiles.lang.Class,instance:T):void; /** * Set a serialization property that allows to fine tune the write process. - * @param {string} key The key for the property. - * @param {Object} value The property value. + * @param key The key for the property. + * @param value The property value. * @see yfiles.graphml.IWriteContext#getSerializationProperty */ setSerializationProperty(key:string,value:Object):void; @@ -6355,8 +7575,8 @@ declare namespace system{ *

      * Typically, this method is called indirectly from {@link yfiles.graphml.GraphMLIOHandler#write}. *

      - * @param {yfiles.graph.IGraph} graph The graph instance that is populated. - * @param {yfiles.graphml.IXmlWriter} writer The writer that actually writes the XML content. + * @param graph The graph instance that is populated. + * @param writer The writer that actually writes the XML content. * @see yfiles.graphml.GraphMLIOHandler#write */ write(graph:yfiles.graph.IGraph,writer:yfiles.graphml.IXmlWriter):void; @@ -6372,7 +7592,7 @@ declare namespace system{ *

      * The current item is provided by {@link yfiles.graphml.HandleSerializationEventArgs#item}. *

      - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener * @see yfiles.graphml.GraphMLWriter#removeHandleSerializationListener */ @@ -6389,7 +7609,7 @@ declare namespace system{ *

      * The current item is provided by {@link yfiles.graphml.HandleSerializationEventArgs#item}. *

      - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener * @see yfiles.graphml.GraphMLWriter#addHandleSerializationListener */ @@ -6408,7 +7628,7 @@ declare namespace system{ * If you want to register an {@link yfiles.graphml.IOutputHandler} for this GraphML attribute, you can add the handler with * {@link yfiles.graphml.QueryOutputHandlersEventArgs#addOutputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryOutputHandlersEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener * @see yfiles.graphml.GraphMLWriter#removeQueryOutputHandlersListener */ @@ -6428,7 +7648,7 @@ declare namespace system{ * If you want to register an {@link yfiles.graphml.IOutputHandler} for this GraphML attribute, you can add the handler with * {@link yfiles.graphml.QueryOutputHandlersEventArgs#addOutputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryOutputHandlersEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener * @see yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener */ @@ -6441,7 +7661,7 @@ declare namespace system{ *

      * These reference targets are not serialized to the GraphML file. *

      - * @param {function(Object, yfiles.graphml.QueryReferenceIdEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener * @see yfiles.graphml.GraphMLWriter#removeQueryReferenceIdListener */ @@ -6454,7 +7674,7 @@ declare namespace system{ *

      * These reference targets are not serialized to the GraphML file. *

      - * @param {function(Object, yfiles.graphml.QueryReferenceIdEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener * @see yfiles.graphml.GraphMLWriter#addQueryReferenceIdListener */ @@ -6470,14 +7690,14 @@ declare namespace system{ writeEvents:yfiles.graphml.IWriteEvents; /** * Adds the given listener for the Written event that occurs when the writing of a document has just been finished. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLWriter#onWritten * @see yfiles.graphml.GraphMLWriter#removeWrittenListener */ addWrittenListener(listener:(sender:Object,evt:yfiles.graphml.WriteEventArgs)=>void):void; /** * Removes the given listener for the Written event that occurs when the writing of a document has just been finished. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLWriter#onWritten * @see yfiles.graphml.GraphMLWriter#addWrittenListener */ @@ -6488,7 +7708,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.WriteEventArgs#context}'s {@link yfiles.graphml.IWriteContext#writeEvents} and to configure the writing process * on a per write case. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLWriter#onWriting * @see yfiles.graphml.GraphMLWriter#removeWritingListener */ @@ -6499,7 +7719,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.WriteEventArgs#context}'s {@link yfiles.graphml.IWriteContext#writeEvents} and to configure the writing process * on a per write case. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLWriter#onWriting * @see yfiles.graphml.GraphMLWriter#addWritingListener */ @@ -6514,7 +7734,7 @@ declare namespace system{ * If the event handler determines that it can serialize the {@link yfiles.graphml.HandleSerializationEventArgs#item}, it should use the {@link yfiles.graphml.HandleSerializationEventArgs#writer} for output and mark the event as {@link yfiles.graphml.HandleSerializationEventArgs#handled} so that * other code will not perform serialization, too. *

      - * @class yfiles.graphml.HandleSerializationEventArgs + * @class * @extends {yfiles.lang.EventArgs} * @final */ @@ -6523,10 +7743,9 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.graphml.HandleSerializationEventArgs} class using the provided context to write * the item using the given type for serialization. - * @param {yfiles.graphml.IWriteContext} context The context to use for writing. - * @param {Object} item The item to to serialize. - * @param {yfiles.lang.Class} [serializationType=null] The type that should be used for serialization, which needs to be a super type or interface of the item or null. - * @constructor + * @param context The context to use for writing. + * @param item The item to to serialize. + * @param [serializationType=null] The type that should be used for serialization, which needs to be a super type or interface of the item or null. */ constructor(context:yfiles.graphml.IWriteContext,item:Object,serializationType?:yfiles.lang.Class); /** @@ -6535,8 +7754,8 @@ declare namespace system{ * This method can be used to replace the {@link yfiles.graphml.HandleSerializationEventArgs#item} and {@link yfiles.graphml.HandleSerializationEventArgs#sourceType} property so that the serialization chain can be traversed with a * substituted item. If this method has been called the {@link yfiles.graphml.HandleSerializationEventArgs#handled} property should not be set to true. *

      - * @param {Object} item The substitute to assign to the {@link yfiles.graphml.HandleSerializationEventArgs#item} property. - * @param {yfiles.lang.Class} serializationType The serialization type to assign to the {@link yfiles.graphml.HandleSerializationEventArgs#sourceType} property. + * @param item The substitute to assign to the {@link #item} property. + * @param serializationType The serialization type to assign to the {@link #sourceType} property. */ replaceItem(item:Object,serializationType:yfiles.lang.Class):void; /** @@ -6577,33 +7796,33 @@ declare namespace system{ export interface IGraphElementIdProvider extends Object{ /** * Get an ID for the specified edge object - * @param {yfiles.graphml.IWriteContext} context The current write context, for further information to the provider - * @param {yfiles.graph.IEdge} edge The current graph object - * @returns {string} an ID for the specified edge object + * @param context The current write context, for further information to the provider + * @param edge The current graph object + * @returns an ID for the specified edge object * @abstract */ getEdgeId(context:yfiles.graphml.IWriteContext,edge:yfiles.graph.IEdge):string; /** * Get an ID for the specified graph object - * @param {yfiles.graphml.IWriteContext} context The current write context, for further information to the provider - * @param {yfiles.graph.IGraph} graph The current graph object - * @returns {string} an ID for the specified graph object + * @param context The current write context, for further information to the provider + * @param graph The current graph object + * @returns an ID for the specified graph object * @abstract */ getGraphId(context:yfiles.graphml.IWriteContext,graph:yfiles.graph.IGraph):string; /** * Get an ID for the specified node object - * @param {yfiles.graphml.IWriteContext} context The current write context, for further information to the provider - * @param {yfiles.graph.INode} node The current graph object - * @returns {string} an ID for the specified graph object + * @param context The current write context, for further information to the provider + * @param node The current graph object + * @returns an ID for the specified graph object * @abstract */ getNodeId(context:yfiles.graphml.IWriteContext,node:yfiles.graph.INode):string; /** * Get an ID for the specified port object - * @param {yfiles.graphml.IWriteContext} context The current write context, for further information to the provider - * @param {yfiles.graph.IPort} port The current port object - * @returns {string} an ID for the specified port object + * @param context The current write context, for further information to the provider + * @param port The current port object + * @returns an ID for the specified port object * @abstract */ getPortId(context:yfiles.graphml.IWriteContext,port:yfiles.graph.IPort):string; @@ -6617,7 +7836,7 @@ declare namespace system{ * serialization or delegates to the {@link yfiles.graphml.IWriteContext#serializeCore} callback. * Type parameter TKey: The type of the keys. * Type parameter TData: The type of the data. - * @class yfiles.graphml.MapperOutputHandler. + * @class * @extends {yfiles.graphml.OutputHandlerBase.} * @template TKey,TData */ @@ -6625,12 +7844,11 @@ declare namespace system{ export class MapperOutputHandler { /** * Initializes a new instance of the {@link yfiles.graphml.MapperOutputHandler.} class using the provided key scope, the name, and the key type. - * @param {yfiles.lang.Class} keyType The type of the keys. - * @param {yfiles.lang.Class} dataType The type of the data. - * @param {yfiles.graphml.KeyScope} scope The scope for the key definition attributes. - * @param {string} name The name for the key definition attributes. - * @param {yfiles.graphml.KeyType} type The type for the key definition attributes. - * @constructor + * @param keyType The type of the keys. + * @param dataType The type of the data. + * @param scope The scope for the key definition attributes. + * @param name The name for the key definition attributes. + * @param type The type for the key definition attributes. */ constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,scope:yfiles.graphml.KeyScope,name:string,type:yfiles.graphml.KeyType); /** @@ -6665,7 +7883,7 @@ declare namespace system{ * Convenience abstract base implementation of the {@link yfiles.graphml.IOutputHandler} interface. * Type parameter TKey: The type of the keys. * Type parameter TData: The type of the data. - * @class yfiles.graphml.OutputHandlerBase. + * @class * @implements {yfiles.graphml.IOutputHandler} * @template TKey,TData */ @@ -6673,21 +7891,20 @@ declare namespace system{ export class OutputHandlerBase { /** * Initializes a new instance of the {@link yfiles.graphml.OutputHandlerBase.} class using the provided scope, name, and type for the key definition. - * @param {yfiles.lang.Class} keyType1 The type of the keys. - * @param {yfiles.lang.Class} dataType1 The type of the data. - * @param {yfiles.graphml.KeyScope} scope The scope. - * @param {string} name The name to use for the key definition. - * @param {yfiles.graphml.KeyType} type The type to use for the key definition. + * @param keyType The type of the keys. + * @param dataType The type of the data. + * @param scope The scope. + * @param name The name to use for the key definition. + * @param type The type to use for the key definition. * @see yfiles.graphml.OutputHandlerBase.#setKeyDefinitionUri * @protected - * @constructor */ - constructor(keyType1:yfiles.lang.Class,dataType1:yfiles.lang.Class,scope:yfiles.graphml.KeyScope,name:string,type:yfiles.graphml.KeyType); + constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,scope:yfiles.graphml.KeyScope,name:string,type:yfiles.graphml.KeyType); /** * Callback method that obtains the data for the given key. - * @param {yfiles.graphml.IWriteContext} context The context. - * @param {TKey} key The key. - * @returns {TData} The data that is associated with the key. + * @param context The context. + * @param key The key. + * @returns The data that is associated with the key. * @protected * @abstract */ @@ -6699,13 +7916,13 @@ declare namespace system{ * This implementation will return false if no {@link yfiles.graphml.OutputHandlerBase.#defaultExists default has been set}. Otherwise it will use {@link yfiles.graphml.OutputHandlerBase.#getValue} and compare the result * with the {@link yfiles.graphml.OutputHandlerBase.#defaultValue} to determine whether they are equal and therefore no data needs to be written. *

      - * @param {yfiles.graphml.IWriteContext} context The context. - * @returns {boolean} true if for the current context the default value applies and therefore no data element needs to be written. + * @param context The context. + * @returns true if for the current context the default value applies and therefore no data element needs to be written. */ isDefaultValue(context:yfiles.graphml.IWriteContext):boolean; /** * Sets the name for the key definition. - * @param {string} name The name of the key element. + * @param name The name of the key element. */ setKeyDefinitionName(name:string):void; /** @@ -6714,12 +7931,12 @@ declare namespace system{ * Note that the official GraphML schema does not support the {@link yfiles.graphml.KeyScope#GRAPHML} so this implementation will * silently ignore this which will result in {@link yfiles.graphml.KeyScope#ALL} implicitly being defined. *

      - * @param {yfiles.graphml.KeyScope} scope The scope of the key element. + * @param scope The scope of the key element. */ setKeyDefinitionScope(scope:yfiles.graphml.KeyScope):void; /** * Sets the key type for the key definition. - * @param {yfiles.graphml.KeyType} type The type of the key element. + * @param type The type of the key element. */ setKeyDefinitionType(type:yfiles.graphml.KeyType):void; /** @@ -6727,7 +7944,7 @@ declare namespace system{ *

      * By default, no URI is set. *

      - * @param {string} uri The URI of the key element. + * @param uri The URI of the key element. */ setKeyDefinitionUri(uri:string):void; /** @@ -6736,7 +7953,7 @@ declare namespace system{ * Depending on whether {@link yfiles.graphml.OutputHandlerBase.#writeKeyDefault} is enabled and {@link yfiles.graphml.OutputHandlerBase.#defaultExists} is true, this method will write the GraphML 'default' element and use {@link yfiles.graphml.OutputHandlerBase.#writeValueCore} * to serialize the {@link yfiles.graphml.OutputHandlerBase.#defaultValue}. *

      - * @param {yfiles.graphml.IWriteContext} context The context. + * @param context The context. */ writeKeyDefinitionContent(context:yfiles.graphml.IWriteContext):void; /** @@ -6744,13 +7961,13 @@ declare namespace system{ *

      * This method will use {@link yfiles.graphml.OutputHandlerBase.#getValue} to obtain the data and delegate to {@link yfiles.graphml.OutputHandlerBase.#writeValueCore} to perform the actual serialization. *

      - * @param {yfiles.graphml.IWriteContext} context The context. + * @param context The context. */ writeValue(context:yfiles.graphml.IWriteContext):void; /** * Callback method that performs the actual writing of the data. - * @param {yfiles.graphml.IWriteContext} context The context. - * @param {TData} data The data. + * @param context The context. + * @param data The data. * @protected * @abstract */ @@ -6799,7 +8016,7 @@ declare namespace system{ * dynamically at the time of writing, by adding them to the {@link yfiles.graphml.QueryOutputHandlersEventArgs#handlers} collection. *

      * @see yfiles.graphml.GraphMLIOHandler - * @class yfiles.graphml.QueryOutputHandlersEventArgs + * @class * @extends {yfiles.lang.EventArgs} * @final */ @@ -6807,14 +8024,13 @@ declare namespace system{ export class QueryOutputHandlersEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.QueryOutputHandlersEventArgs} class. - * @param {yfiles.graphml.IWriteContext} context The context to assign to the {@link yfiles.graphml.QueryOutputHandlersEventArgs#context} property. - * @param {yfiles.graphml.KeyScope} scope The scope where the handlers should be added. - * @constructor + * @param context The context to assign to the {@link #context} property. + * @param scope The scope where the handlers should be added. */ constructor(context:yfiles.graphml.IWriteContext,scope:yfiles.graphml.KeyScope); /** * Adds the given output handler to the set of registered output handlers for the given scope. - * @param {yfiles.graphml.IOutputHandler} handler The handler to add. + * @param handler The handler to add. */ addOutputHandler(handler:yfiles.graphml.IOutputHandler):void; /** @@ -6839,25 +8055,24 @@ declare namespace system{ *

      * This writer does not support random access on the output document. *

      - * @class yfiles.graphml.XmlWriter + * @class * @implements {yfiles.graphml.IXmlWriter} */ export interface XmlWriter extends Object,yfiles.graphml.IXmlWriter{} export class XmlWriter { /** - * Create a new instance that writes on a {@link Root.OB} - * @constructor + * Create a new instance with enabled {@link yfiles.graphml.XmlWriter#indent}. */ constructor(); /** * - * @param {boolean} addEndTag + * @param addEndTag * @protected */ closeCurrentElement(addEndTag:boolean):void; /** * Factory method that creates the namespace manager for this instance. - * @returns {yfiles.graphml.IXmlNamespaceManager} A new manager instance. + * @returns A new manager instance. * @protected */ createNamespaceManager():yfiles.graphml.IXmlNamespaceManager; @@ -6867,34 +8082,34 @@ declare namespace system{ flushDocument():void; /** * - * @returns {string} + * @returns */ getXmlString():string; /** * - * @param {string} prefix - * @param {string} localName - * @param {string} ns - * @param {string} value - * @returns {yfiles.graphml.IXmlWriter} + * @param prefix + * @param localName + * @param ns + * @param value + * @returns */ writeAttributeNS(prefix:string,localName:string,ns:string,value:string):yfiles.graphml.IXmlWriter; /** * - * @param {string} content - * @returns {yfiles.graphml.IXmlWriter} + * @param content + * @returns */ writeCData(content:string):yfiles.graphml.IXmlWriter; /** * - * @param {string} comment - * @returns {yfiles.graphml.IXmlWriter} + * @param comment + * @returns */ writeComment(comment:string):yfiles.graphml.IXmlWriter; /** * - * @param {Document} fragment - * @returns {yfiles.graphml.IXmlWriter} + * @param fragment + * @returns */ writeDocumentFragment(fragment:Document):yfiles.graphml.IXmlWriter; /** @@ -6903,40 +8118,40 @@ declare namespace system{ writeEndDocument():void; /** * - * @returns {yfiles.graphml.IXmlWriter} + * @returns */ writeEndElement():yfiles.graphml.IXmlWriter; /** * - * @param {string} target - * @param {string} data - * @returns {yfiles.graphml.IXmlWriter} + * @param target + * @param data + * @returns */ writeProcessingInstruction(target:string,data:string):yfiles.graphml.IXmlWriter; /** * - * @returns {yfiles.graphml.IXmlWriter} + * @returns */ writeStartDocument():yfiles.graphml.IXmlWriter; /** * - * @param {string} prefix - * @param {string} localName - * @param {string} ns - * @returns {yfiles.graphml.IXmlWriter} + * @param prefix + * @param localName + * @param ns + * @returns */ writeStartElement(prefix:string,localName:string,ns:string):yfiles.graphml.IXmlWriter; /** * - * @param {string} localName - * @param {string} ns - * @returns {yfiles.graphml.IXmlWriter} + * @param localName + * @param ns + * @returns */ writeStartElement(localName:string,ns:string):yfiles.graphml.IXmlWriter; /** * - * @param {string} s - * @returns {yfiles.graphml.IXmlWriter} + * @param s + * @returns */ writeString(s:string):yfiles.graphml.IXmlWriter; /** @@ -7010,9 +8225,9 @@ declare namespace system{ export interface IReferenceHandler extends Object{ /** * Gets the reference handle for a given subject. - * @param {Object} subject The subject. - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @returns {yfiles.graphml.IReferenceHandle} A handle for the resource subject, or null if the resource is not registered. + * @param subject The subject. + * @param context The current write context. + * @returns A handle for the resource subject, or null if the resource is not registered. * @see yfiles.graphml.IReferenceHandle * @see yfiles.graphml.IReferenceHandle#subject * @abstract @@ -7026,8 +8241,8 @@ declare namespace system{ * addition, subsequent calls to {@link yfiles.graphml.IReferenceHandler#registerResource} for the same reference won't mark the * resource as shared again. *

      - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {Object} subject The resource to register. + * @param context The current write context. + * @param subject The resource to register. * @see yfiles.graphml.IReferenceHandler#registerResource * @see yfiles.graphml.GraphMLAttribute#shareable * @abstract @@ -7035,9 +8250,9 @@ declare namespace system{ markAsUnshared(context:yfiles.graphml.IWriteContext,subject:Object):void; /** * Register a shared resource. - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {Object} subject The resource to register. - * @returns {yfiles.graphml.SharingState} true iff the resource needs to be serialized; otherwise the resource is either a duplicate resource or is declared + * @param context The current write context. + * @param subject The resource to register. + * @returns true iff the resource needs to be serialized; otherwise the resource is either a duplicate resource or is declared * externally and does not need any additional handling. * @abstract */ @@ -7070,7 +8285,7 @@ declare namespace system{ * and {@link yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener OverrideResolveReference} events. * @see yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener * @see yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener - * @class yfiles.graphml.ResolveReferenceEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface ResolveReferenceEventArgs extends yfiles.lang.EventArgs{} @@ -7080,9 +8295,8 @@ declare namespace system{ *

      * The {@link yfiles.graphml.ResolveReferenceEventArgs#handled} property is set to false, the {@link yfiles.graphml.ResolveReferenceEventArgs#value} property is set to null *

      - * @param {yfiles.graphml.IParseContext} context The current parse context that can be used by the event handler for additional information. - * @param {string} referenceId The reference id that should evaluated by the event handler. - * @constructor + * @param context The current parse context that can be used by the event handler for additional information. + * @param referenceId The reference id that should evaluated by the event handler. */ constructor(context:yfiles.graphml.IParseContext,referenceId:string); /** @@ -7124,7 +8338,7 @@ declare namespace system{ *

      * @see yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener * @see yfiles.graphml.GraphMLWriter#addQueryReferenceIdListener - * @class yfiles.graphml.QueryReferenceIdEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface QueryReferenceIdEventArgs extends yfiles.lang.EventArgs{} @@ -7134,9 +8348,8 @@ declare namespace system{ *

      * The {@link yfiles.graphml.QueryReferenceIdEventArgs#handled} property is set to false, the {@link yfiles.graphml.QueryReferenceIdEventArgs#referenceId} is set to null. *

      - * @param {yfiles.graphml.IWriteContext} context The current write context that can be used by the event handler for additional information. - * @param {Object} value The referenced object instance. - * @constructor + * @param context The current write context that can be used by the event handler for additional information. + * @param value The referenced object instance. */ constructor(context:yfiles.graphml.IWriteContext,value:Object); /** @@ -7158,7 +8371,7 @@ declare namespace system{ *

      * @see yfiles.graphml.QueryReferenceIdEventArgs#referenceId * @see yfiles.graphml.QueryReferenceIdEventArgs#handled - * @default 1 + * @default yfiles.graphml.GraphMLReferenceType.EXTERNAL * @type {yfiles.graphml.GraphMLReferenceType} */ referenceType:yfiles.graphml.GraphMLReferenceType; @@ -7185,33 +8398,32 @@ declare namespace system{ } /** * Special implementation of {@link yfiles.graphml.IValueSerializerContext} that should be used in a GraphML parse context. - * @class yfiles.graphml.GraphMLParseValueSerializerContext + * @class * @implements {yfiles.graphml.IValueSerializerContext} */ export interface GraphMLParseValueSerializerContext extends Object,yfiles.graphml.IValueSerializerContext{} export class GraphMLParseValueSerializerContext { /** * Creates a new instance that wraps context - * @param {yfiles.graphml.IParseContext} context The current write context - * @constructor + * @param context The current write context */ constructor(context:yfiles.graphml.IParseContext); /** * - * @param {yfiles.graphml.Property} property - * @returns {yfiles.graphml.ValueSerializer} + * @param property + * @returns */ getValueSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; /** * - * @param {yfiles.lang.Class} type - * @returns {yfiles.graphml.ValueSerializer} + * @param type + * @returns */ getValueSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; /** * Returns the wrapped {@link yfiles.graphml.IParseContext} for this serviceType, otherwise null - * @param {yfiles.lang.Class} serviceType The serviceType - * @returns {Object} the wrapped {@link yfiles.graphml.IParseContext} for this serviceType, otherwise null + * @param serviceType The serviceType + * @returns the wrapped {@link } for this serviceType, otherwise null */ lookup(serviceType:yfiles.lang.Class):Object; /** @@ -7223,33 +8435,32 @@ declare namespace system{ } /** * Special implementation of {@link yfiles.graphml.IValueSerializerContext} that should be used in a GraphML write context. - * @class yfiles.graphml.GraphMLWriteValueSerializerContext + * @class * @implements {yfiles.graphml.IValueSerializerContext} */ export interface GraphMLWriteValueSerializerContext extends Object,yfiles.graphml.IValueSerializerContext{} export class GraphMLWriteValueSerializerContext { /** * Creates a new instance that wraps context - * @param {yfiles.graphml.IWriteContext} context The current write context - * @constructor + * @param context The current write context */ constructor(context:yfiles.graphml.IWriteContext); /** * - * @param {yfiles.graphml.Property} property - * @returns {yfiles.graphml.ValueSerializer} + * @param property + * @returns */ getValueSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; /** * - * @param {yfiles.lang.Class} type - * @returns {yfiles.graphml.ValueSerializer} + * @param type + * @returns */ getValueSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; /** * Returns the wrapped {@link yfiles.graphml.IWriteContext} for this serviceType, otherwise null - * @param {yfiles.lang.Class} serviceType The serviceType - * @returns {Object} the wrapped {@link yfiles.graphml.IWriteContext} for this serviceType, otherwise null + * @param serviceType The serviceType + * @returns the wrapped {@link } for this serviceType, otherwise null */ lookup(serviceType:yfiles.lang.Class):Object; /** @@ -7270,16 +8481,15 @@ declare namespace system{ * It is valid to provide only part of the XML name by setting the other part to null. In that case, the default name * determination rules are used for that part. *

      - * @class yfiles.graphml.QueryNameEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface QueryNameEventArgs extends yfiles.lang.EventArgs{} export class QueryNameEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.QueryNameEventArgs} class. - * @param {yfiles.graphml.IWriteContext} context The context in which the lookup shall take place. - * @param {yfiles.lang.Class} type The type that should be mapped. - * @constructor + * @param context The context in which the lookup shall take place. + * @param type The type that should be mapped. */ constructor(context:yfiles.graphml.IWriteContext,type:yfiles.lang.Class); /** @@ -7305,7 +8515,7 @@ declare namespace system{ */ handled:boolean; /** - * The fully qualified xml name that should be resolved to a type. + * The type for which the {@link yfiles.graphml.QueryNameEventArgs#result XML name} is queried. * @type {yfiles.lang.Class} */ type:yfiles.lang.Class; @@ -7323,16 +8533,15 @@ declare namespace system{ * If the event handler determines that it can resolve {@link yfiles.graphml.QueryTypeEventArgs#xmlName} to a type, it should place the result into the {@link yfiles.graphml.QueryTypeEventArgs#result} property and thus * mark the event as {@link yfiles.graphml.QueryTypeEventArgs#handled}. *

      - * @class yfiles.graphml.QueryTypeEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface QueryTypeEventArgs extends yfiles.lang.EventArgs{} export class QueryTypeEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.QueryTypeEventArgs} class. - * @param {yfiles.graphml.IParseContext} context The context in the lookup should take place. - * @param {yfiles.graphml.XmlName} xName The type that should be mapped. - * @constructor + * @param context The context in the lookup should take place. + * @param xName The type that should be mapped. */ constructor(context:yfiles.graphml.IParseContext,xName:yfiles.graphml.XmlName); /** @@ -7366,16 +8575,16 @@ declare namespace system{ } /** * An implementation that can read (a subset of) XAML formatted XML content. - * @class yfiles.graphml.XamlReader + * @class * @final */ export interface XamlReader extends Object{} export class XamlReader { /** * Deserializes the specified element node in the context to an instance. - * @param {yfiles.graphml.IParseContext} context The context. - * @param {Element} element The XML element node. - * @returns {Object} The instance that is described in the XML. + * @param context The context. + * @param element The XML element node. + * @returns The instance that is described in the XML. */ deserialize(context:yfiles.graphml.IParseContext,element:Element):Object; /** @@ -7400,15 +8609,15 @@ declare namespace system{ export interface IXamlPrefixMapper extends Object{ /** * Gets the namespace for the given prefix. - * @param {string} prefix The prefix. - * @returns {string} The namespace. + * @param prefix The prefix. + * @returns The namespace. * @abstract */ getNamespaceOfPrefix(prefix:string):string; /** * Gets the prefix of namespace. - * @param {string} ns The namespace. - * @returns {string} The prefix to use. + * @param ns The namespace. + * @returns The prefix to use. * @abstract */ getPrefixOfNamespace(ns:string):string; @@ -7428,7 +8637,7 @@ declare namespace system{ * {@link yfiles.graphml.GraphMLAttribute#name}. The same holds for specific members. *

      * @see yfiles.graphml.GraphMLAttribute - * @class yfiles.graphml.XamlSerializer + * @class * @final */ export interface XamlSerializer extends Object{} @@ -7438,8 +8647,8 @@ declare namespace system{ *

      * This implementation already provides the toplevel XML element with an appropriate tag name. *

      - * @param {yfiles.graphml.IWriteContext} context The current write context - * @param {Object} subject The actual object + * @param context The current write context + * @param subject The actual object */ serialize(context:yfiles.graphml.IWriteContext,subject:Object):void; /** @@ -7451,1248 +8660,452 @@ declare namespace system{ static INSTANCE:yfiles.graphml.XamlSerializer; static $class:yfiles.lang.Class; } - }export namespace collections{ - /** - * The default implementation for {@link yfiles.collections.IMap.}. - * Type parameter TKey: The type of the key elements of this dictionary. - * Type parameter TValue: The type of the value elements of this dictionary. - * @class yfiles.collections.Map. - * @implements {yfiles.collections.IMap.} - * @implements {yfiles.collections.ICollection.>} - * @implements {yfiles.collections.IEnumerable.>} - * @template TKey,TValue - */ - export interface Map extends Object,yfiles.collections.IMap,yfiles.collections.ICollection>,yfiles.collections.IEnumerable>{} - export class Map { - /** - * Creates a new instance. - * @param {Object} [options=null] The parameters to pass. - * @param options.entries An array of items which are added to this map. Each item will be added via the {@link yfiles.collections.Map.#add} method. - * @constructor - */ - constructor(options?:{entries?:Array}); - /** - * - * @param {yfiles.collections.MapEntry.} item - */ - add(item:yfiles.collections.MapEntry):void; - /** - * - */ - clear():void; - /** - * Whether this dictionary contains the given value. - * @param {TValue} value The value to search for. - * @returns {boolean} true if this dictionary contains the given value. - */ - containsValue(value:TValue):boolean; - /** - * - * @param {Array.>} array - * @param {number} arrayIndex - */ - copyTo(array:yfiles.collections.MapEntry[],arrayIndex:number):void; - /** - * - * @param {TKey} key - * @returns {boolean} - */ - delete(key:TKey):boolean; - /** - * - * @param {TKey} key - * @returns {TValue} - */ - get(key:TKey):TValue; - /** - * - * @returns {yfiles.collections.IEnumerator.>} - */ - getEnumerator():yfiles.collections.IEnumerator>; - /** - * - * @param {TKey} key - * @returns {boolean} - */ - has(key:TKey):boolean; - /** - * - * @param {yfiles.collections.MapEntry.} item - * @returns {boolean} - */ - includes(item:yfiles.collections.MapEntry):boolean; - /** - * - * @param {yfiles.collections.MapEntry.} item - * @returns {boolean} - */ - remove(item:yfiles.collections.MapEntry):boolean; - /** - * - * @param {TKey} key - * @param {TValue} value - */ - set(key:TKey,value:TValue):void; - /** - * - * @type {number} - */ - size:number; - /** - * - * @type {boolean} - */ - isReadOnly:boolean; - /** - * - * @type {yfiles.collections.ICollection.} - */ - keys:yfiles.collections.ICollection; - /** - * - * @type {yfiles.collections.ICollection.} - */ - values:yfiles.collections.ICollection; - static $class:yfiles.lang.Class; - } - /** - * Defines methods to manipulate a collection of objects with the same type. - * Type parameter T: The type of the elements in the collection. - * @interface - * @implements {yfiles.collections.IEnumerable.} - * @template T - */ - export interface ICollection extends Object,yfiles.collections.IEnumerable{ - /** - * Adds the given item to the collection. - * @param {T} item - * @abstract - */ - add(item:T):void; - /** - * Removes all items from this collection. - * @abstract - */ - clear():void; - /** - * Copies all elements of this collection into the given array. - * @param {Array.} array The array to copy the elements to. - * @param {number} arrayIndex The index in the given array where the first element should be copied to. - * @abstract - */ - copyTo(array:T[],arrayIndex:number):void; - /** - * Whether the given item is contained in this collection. - * @param {T} item The item to search for. - * @returns {boolean} true if the given item is contained in this collection. - * @abstract - */ - includes(item:T):boolean; - /** - * Removes the given item from this collection. - * @param {T} item The item to remove. - * @returns {boolean} Whether the item was removed from the collection. - * @abstract - */ - remove(item:T):boolean; - /** - * The number of elements in this collection. - * @abstract - * @type {number} - */ - size:number; - /** - * Whether this collection is read-only. - * @abstract - * @type {boolean} - */ - isReadOnly:boolean; - } - var ICollection:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A collection of value objects which are mapped to key objects and can be queried using their keys. - *

      - * The keys must have a well defined hashCode method that must not change between registering a value for the key and - * retrieving a value using the key. Thus it is advisable to use stable, i.e. immutable, objects as the key. - *

      - * Type parameter TKey: The type of the keys. - * Type parameter TValue: The type of the values. - * @interface - * @implements {yfiles.collections.ICollection.>} - * @template TKey,TValue - */ - export interface IMap extends Object,yfiles.collections.ICollection>{ - /** - * Removes the key/value pair which is represented by the given key. - * @param {TKey} key The key of the key/value pair to remove. - * @returns {boolean} true if a key/value pair with the given key was removed from this collection. - * @abstract - */ - delete(key:TKey):boolean; - /** - * Gets the value of the key/value pair with the given key. - *

      - * Setter: if there is already a key/value pair with the given key in the dictionary its value will be overridden. If not a - * new key/value pair will be added. - *
      - * Getter: if there is no key/value pair with the given key in this dictionary null will be returned. - *

      - * @param {TKey} key - * @returns {TValue} - * @see yfiles.collections.IMap.#set - * @abstract - */ - get(key:TKey):TValue; - /** - * Whether this dictionary's key collection contains the given key. - * @param {TKey} key The key to search for. - * @returns {boolean} true if this dictionary contains the given key. - * @abstract - */ - has(key:TKey):boolean; - /** - * Sets the value of the key/value pair with the given key. - *

      - * Setter: if there is already a key/value pair with the given key in the dictionary its value will be overridden. If not a - * new key/value pair will be added. - *
      - * Getter: if there is no key/value pair with the given key in this dictionary null will be returned. - *

      - * @param {TKey} key - * @param value - * @see yfiles.collections.IMap.#get - * @abstract - */ - set(key:TKey,value:TValue):void; - /** - * A {@link yfiles.collections.ICollection.} of the keys of this dictionary. - * @abstract - * @type {yfiles.collections.ICollection.} - */ - keys:yfiles.collections.ICollection; - /** - * A {@link yfiles.collections.ICollection.} of the values of this dictionary. - * @abstract - * @type {yfiles.collections.ICollection.} - */ - values:yfiles.collections.ICollection; - } - var IMap:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Defines ways to iterate over the items contained in this type by providing a method to get an {@link yfiles.collections.IEnumerator.}. - * Type parameter T: The type of the enumerable objects. - * @interface - * @template T - */ - export interface IEnumerable extends Object{ - /** - * - * @param {yfiles.collections.IEnumerable.} enumerable - * @returns {yfiles.collections.IEnumerable.} - */ - concat?(enumerable:yfiles.collections.IEnumerable):yfiles.collections.IEnumerable; - /** - * Returns the element at the given index in the enumerable. - * @param {number} index The index of the element to return. - * @returns {T} The element at the given index. - * @throws {Stubs.Exceptions.ArgumentError} If the index is not within the enumerable's range. - */ - elementAt?(index:number):T; - /** - * Whether all elements of the enumerable match the given predicate. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} predicate A function with the signature function(element):boolean which returns true if the element matches a condition. - * @param {Object} [thisArg=null] - * @returns {boolean} Whether all elements of the enumerable match the given predicate. - * @throws {Stubs.Exceptions.ArgumentError} e is null. - * @throws {Stubs.Exceptions.ArgumentError} predicate is null. - */ - every?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):boolean; - /** - * Returns an enumerable which only contains elements of the source enumerable which match a given predicate. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} predicate A function with the signature function(element):boolean which returns true if the given element should be included in - * the resulting enumerable. - * @param {Object} [thisArg=null] - * @returns {yfiles.collections.IEnumerable.} An enumerable which contains the elements of the source enumeration which match the given predicate. - */ - filter?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):yfiles.collections.IEnumerable; - /** - * Returns the first element of the enumerable which matches a given filter. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned - * @param {Object} [thisArg=null] - * @returns {T} The first matching element of the enumerable. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable does not contain a matching element. - */ - first?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):T; - /** - * Returns the first element of the enumerable which matches a given filter. - * @param {Object} options The parameters to pass. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [options.predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned - * @param {Object} [options.thisArg=null] - * @returns {T} The first matching element of the enumerable. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable does not contain a matching element. - */ - first?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):T; - /** - * Returns the first element of the enumerable, the first element of the enumerable which matches a given filter if - * sepcified, or null if there is no such element. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned - * @param {Object} [thisArg=null] - * @returns {T} The first element of the enumerable or null. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - */ - firstOrDefault?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):T; - /** - * Returns the first element of the enumerable, the first element of the enumerable which matches a given filter if - * sepcified, or null if there is no such element. - * @param {Object} options The parameters to pass. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [options.predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned - * @param {Object} [options.thisArg=null] - * @returns {T} The first element of the enumerable or null. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - */ - firstOrDefault?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):T; - /** - * Iterates over the enumerable and invokes the action for each element passing the value and index as arguments. - * @param {function(T, number, yfiles.collections.IEnumerable.): void} action The delegate to call. - * @param {Object} [thisArg=null] - */ - forEach?(action:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>void,thisArg?:Object):void; - /** - * Gets an {@link yfiles.collections.IEnumerator.} which can be used to iterate over the items in this instance - * @returns {yfiles.collections.IEnumerator.} The {@link yfiles.collections.IEnumerator.} which can be used to iterate over the items in this instance - * @abstract - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * Whether the given value is contained in the enumerable. - *

      - * The {@link Root.U.#$p default equality comparer} is used to compare the enumerable's contents with the given value. - *

      - * @param {T} value The value to search for. - * @returns {boolean} true if the enumerable contains the given value. - */ - includes?(value:T):boolean; - /** - * Returns the last element of the enumerable. - * @returns {T} The last element of the enumerable. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable is empty. - */ - last?():T; - /** - * Returns the last element of the enumerable or null if the enumerable is empty. - * @returns {T} The last element of the enumerable or null. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - */ - lastOrDefault?():T; - /** - * Maps each element of the enumerable into a new element in a new enumerable. - * Type parameter TResult: The type of the mapped elements. - * @param {function(T, number, yfiles.collections.IEnumerable.): TResult} selector A function with the signature function(element, index):TResult which converts each element into a new element of the - * type TResult depending on the element's index. - * @param {Object} [thisArg=null] The optional value to use as this when executing the selector. - * @returns {yfiles.collections.IEnumerable.} A projection of the original enumerable. - * @template TResult - */ - map?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>TResult,thisArg?:Object):yfiles.collections.IEnumerable; - /** - * Converts a untyped enumerable into an enumerable with the given type. - *

      - * The source enumerable may contain elements which are not of the given type. Those elements will not be contained in the - * returned enumerable. - *

      - * Type parameter TResult. - * @returns {yfiles.collections.IEnumerable.} A typed enumerable. - * @template TResult - */ - ofType?(resultType:yfiles.lang.Class):yfiles.collections.IEnumerable; - /** - * Applies an func function over the enumerable's elements. - * Type parameter TAccumulate: The type of the accumulated value. - * @param {TAccumulate} seed The start value for the accumulator. - * @param {function(TAccumulate, T, number, yfiles.collections.IEnumerable.): TAccumulate} func A function with the signature function(seed,element):TAccumulate which "adds" (accumulates) a value depending on the - * element to the seed value and returns the result. - * @returns {TAccumulate} The final value of the accumulator. - * @template TAccumulate - */ - reduce?(seed:TAccumulate,func:(arg1:TAccumulate,arg2:T,arg3:number,arg4:yfiles.collections.IEnumerable)=>TAccumulate):TAccumulate; - /** - * Creates a flattened view of a given enumerable using the given selector function which returns an enumerable for each - * element of the source enumerable. - * Type parameter TResult. - * @param {function(T, number, yfiles.collections.IEnumerable.): yfiles.collections.IEnumerable.} selector A function with the signature function(element):IEnumerable which returns an enumerable for each element of the source - * enumerable. - * @param {Object} [thisArg=null] - * @returns {yfiles.collections.IEnumerable.} A flattened view of the given enumerable. The enumerables which are returned by the selector method for each element are - * concatenated in the result. - * @template TResult - */ - selectMany?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>yfiles.collections.IEnumerable,thisArg?:Object):yfiles.collections.IEnumerable; - /** - * Whether the enumerable contains any elements matching the given predicate. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [predicate=null] A function with the signature function(element):boolean which returns true if the element matches a condition. - * @param {Object} [thisArg=null] - * @returns {boolean} Whether the enumerable contains any elements matching the given predicate. - * @throws {Stubs.Exceptions.ArgumentError} e is null. - */ - some?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):boolean; - /** - * Whether the enumerable contains any elements matching the given predicate. - * @param {Object} options The parameters to pass. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [options.predicate=null] A function with the signature function(element):boolean which returns true if the element matches a condition. - * @param {Object} [options.thisArg=null] - * @returns {boolean} Whether the enumerable contains any elements matching the given predicate. - * @throws {Stubs.Exceptions.ArgumentError} e is null. - */ - some?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):boolean; - /** - * Calculates the sum of the elements of the enumerable. - * @param {function(T, number, yfiles.collections.IEnumerable.): number} selector A function with the signature function(element):Number which returns a numeric value for the given element. - * @param {Object} [thisArg=null] - * @returns {number} The sum of the elements of the enumerable. - */ - sum?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>number,thisArg?:Object):number; - /** - * Returns elements from an enumerable as long as the given predicate is true. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} predicate A function with the signature function(element):boolean which returns true as long as the elements should be added to - * the returned enumerable. - * @param {Object} [thisArg=null] - * @returns {yfiles.collections.IEnumerable.} A subset of the original enumerable. - */ - takeWhile?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):yfiles.collections.IEnumerable; - /** - * Creates an array with the values of the enumerable. - * @returns {Array.} An array with the enumerable's elements. - */ - toArray?():T[]; - /** - * Creates a {@link yfiles.collections.List.} with the values of the enumerable. - * @returns {yfiles.collections.List.} An {@link yfiles.collections.List.} with the enumerable's elements. - */ - toList?():yfiles.collections.List; - /** - * Returns an enumerable which contains the elements of the original enumerable in reverse order. - * @returns {yfiles.collections.IEnumerable.} An enumerable which contains the elements of the original enumerable in reverse order. - */ - toReversed?():yfiles.collections.IEnumerable; - /** - * Returns the number of elements contained in the enumerable. - * @returns The number of elements contained in the enumerable. - * @type {number} - */ - size?:number; - } - var IEnumerable:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Provides methods to iterate over a collection or list of elements of the same type. - *
      -     * var e = someList.getEnumerator();
      -     * // always move before you access
      -     * while(e.moveNext()) {
      -     *   // get the current element
      -     *   var current = e.current;
      -     * }
      -     * 
      - * - * Type parameter T. - * @interface - * @template T - */ - export interface IEnumerator extends Object{ - /** - * Moves this enumerator to the next element. - *

      - * A newly created enumerator's {@link yfiles.collections.IEnumerator.#current current position} is before the first element. Thus, this method must be called before first - * access to the {@link yfiles.collections.IEnumerator.#current} property. The same applies to the state after calling {@link yfiles.collections.IEnumerator.#reset}. - *

      - * @returns {boolean} true if the enumerator was moved to a valid position - * @abstract - */ - moveNext():boolean; - /** - * Resets the enumerator to its starting state. - *

      - * In other words: sets the current position before the first element. - *

      - * @abstract - */ - reset():void; - /** - * Gets the element at the enumerator's current position. - *

      - * This value is undefined if the enumerator is in initial state (after creation or - * {@link yfiles.collections.IEnumerator.#reset}) or has been moved past the end of the represented collection. - *

      - * @abstract - * @type {T} - */ - current:T; - } - var IEnumerator:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A read-write collection of objects of the same type. - * Type parameter T: The type of objects in the list. - * @interface - * @implements {yfiles.collections.ICollection.} - * @template T - */ - export interface IList extends Object,yfiles.collections.ICollection{ - /** - * Gets the item at the given index. - * @param {number} index The index of the item to access. - * @returns {T} The item at the given index. - * @see yfiles.collections.IList.#set - * @abstract - */ - get(index:number):T; - /** - * The index of the given item in the list. - * @param {T} item The item to search for. - * @returns {number} The index of the given item in the list. -1 if the item is not in the list. - * @abstract - */ - indexOf(item:T):number; - /** - * Inserts the given item at the given index. - * @param {number} index The index to insert the item at. - * @param {T} item The item to insert. - * @abstract - */ - insert(index:number,item:T):void; - /** - * Removes the item at the given index from the list. - * @param {number} index The index of the item to remove. - * @abstract - */ - removeAt(index:number):void; - /** - * Sets the item at the given index. - * @param {number} index The index of the item to access. - * @param value The item at the given index. - * @see yfiles.collections.IList.#get - * @abstract - */ - set(index:number,value:T):void; - } - var IList:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * The key/value pair of a {@link yfiles.collections.IMap.}. - * Type parameter TKey: The type of the key element. - * Type parameter TValue: The type of the value element. - * @class yfiles.collections.MapEntry. - * @template TKey,TValue - * @final - */ - export interface MapEntry extends Object{} - export class MapEntry { - /** - * Creates a new instance with the given key and value. - * @param {TKey} key The key for this pair. - * @param {TValue} value The value for this pair. - * @constructor - */ - constructor(key:TKey,value:TValue); - /** - * The key for this key/value pair. - * @type {TKey} - */ - key:TKey; - /** - * The value for this key/value pair. - * @type {TValue} - */ - value:TValue; - static $class:yfiles.lang.Class; - } - /** - * Default implementation of {@link yfiles.collections.IList.}. - *

      - * This implementation provides fast random indexed access. However, removing or adding elements from the beginning or in - * the middle of the list will slower. - *

      - * Type parameter T: The type of the list's elements. - * @class yfiles.collections.List. - * @implements {yfiles.collections.IList.} - * @template T - */ - export interface List extends Object,yfiles.collections.IList{} - export class List { - /** - * Creates a new instance and fills it with the elements of the given enumerable. - * @param {yfiles.collections.IEnumerable.} enumerable The enumerable to fill the list with. - * @constructor - */ - constructor(enumerable:yfiles.collections.IEnumerable); - /** - * Creates a new instance. - * @param {Object} [options=null] The parameters to pass. - * @param options.items An array of items which are added to this list. Each item will be added via the {@link yfiles.collections.List.#add} method. - * @constructor - */ - constructor(options?:{items?:Array}); - /** - * - * @param {T} item - */ - add(item:T):void; - /** - * Adds the elements of the given collection to this list. - * @param {yfiles.collections.IEnumerable.} enumerable The collection to add. - */ - addRange(enumerable:yfiles.collections.IEnumerable):void; - /** - * Searches the (sorted) list for the given item. - *

      - * This search is done as a binary search, therefore the list must be sorted. The given comparer is used to compare the - * elements to each other. - *

      - * @param {T} item The item to search for. - * @param {yfiles.collections.IComparer.} comparer The comparer to use for comparing the elements. - * @returns {number} The index of the item in the list. -1 if the item is not found. - */ - binarySearch(item:T,comparer:yfiles.collections.IComparer):number; - /** - * - */ - clear():void; - /** - * - * @param {Array.} array - * @param {number} arrayIndex - */ - copyTo(array:T[],arrayIndex:number):void; - /** - * Searches the list for the first element for which match returns true. - * @param {function(T): boolean} match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the - * element to search for. - * @returns {T} The first element for which match returns true or null is no such element in the list. - */ - find(match:(obj:T)=>boolean):T; - /** - * Searches the list for the first element for which match returns true and returns its index. - * @param {function(T): boolean} match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the - * element to search for. - * @returns {number} The index of the first element for which match returns true or -1 if there is no such element in the list. - */ - findIndex(match:(obj:T)=>boolean):number; - /** - * Creates a new list with the given array used as the live backing store. - *

      - * Modifying the list or the array will modify both instances. - *

      - * @param {Array.} array The array to create a list view over from. - * @returns {yfiles.collections.List.} A list backed by the given array. - * @static - */ - static fromArray(array:T[]):yfiles.collections.List; - /** - * - * @param {number} index - * @returns {T} - */ - get(index:number):T; - /** - * - * @returns {yfiles.collections.IEnumerator.} - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * - * @param {T} item - * @returns {boolean} - */ - includes(item:T):boolean; - /** - * - * @param {T} item - * @returns {number} - */ - indexOf(item:T):number; - /** - * - * @param {number} index - * @param {T} item - */ - insert(index:number,item:T):void; - /** - * - * @param {T} item - * @returns {boolean} - */ - remove(item:T):boolean; - /** - * Removes all elements for which match returns true. - * @param {function(T): boolean} match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the - * element to search for. - * @returns {number} The number of elements which were removed. - */ - removeAll(match:(obj:T)=>boolean):number; - /** - * - * @param {number} index - */ - removeAt(index:number):void; - /** - * Removes a given count of elements starting from the given index. - * @param {number} index The index of the first element to remove. - * @param {number} count The number of elements to remove. - */ - removeRange(index:number,count:number):void; - /** - * Reverses the order of the elements in the list. - */ - reverse():void; - /** - * - * @param {number} index - * @param {T} value - */ - set(index:number,value:T):void; - /** - * Sorts all elements in the list using the given comparison function. - * @param {function(Object, Object): number} comparison The comparison function to use. - */ - sort(comparison:(arg1:Object,arg2:Object)=>number):void; - /** - * Sorts all elements in the list using the given comparer. - * @param {yfiles.collections.IComparer.} comparer The comparer to use. - */ - sort(comparer:yfiles.collections.IComparer):void; - /** - * Sorts all elements in list using the default comparer. - */ - sort():void; - /** - * Copies the elements of this list into an array. - * @returns {Array.} An array containing the elements of this list. - */ - toArray():T[]; - /** - * - * @type {number} - */ - size:number; - /** - * - * @type {boolean} - */ - isReadOnly:boolean; - capacity:number; - static $class:yfiles.lang.Class; - } - /** - * Provides a method to compare two objects of the same type. - * Type parameter T: The type of the objects to compare. - * @interface - * @template T - */ - export interface IComparer extends Object{ - /** - * Compares two objects of type T. - * @param {T} x The first object. - * @param {T} y The second object. - * @returns {number} - *
        - *
      • -1: x is less than y
      • - *
      • 0: x is equal to y
      • - *
      • 1: x is greater than y
      • - *
      - * @abstract - */ - compare(x:T,y:T):number; - } - var IComparer:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A simple default implementation of an {@link yfiles.collections.IObservableCollection.} that is backed by an ordinary {@link yfiles.collections.ICollection.} - * Type parameter T: The type of the elements contained in this collection. - * @class yfiles.collections.ObservableCollection. - * @implements {yfiles.collections.IObservableCollection.} - * @template T - */ - export interface ObservableCollection extends Object,yfiles.collections.IObservableCollection{} - export class ObservableCollection { - /** - * Creates a new instance using a provided collection as the backing store. - * @param {yfiles.collections.ICollection.} [items=null] The collection to use as the backing store. If no collection is provided a {@link yfiles.collections.List.} will be used. - * @constructor - */ - constructor(items?:yfiles.collections.ICollection); - /** - * Adds the item the the collection and triggers the {@link yfiles.collections.ObservableCollection.#addItemAddedListener ItemAdded} event. - *

      - * This implementation calls the {@link yfiles.collections.ObservableCollection.#onItemAdded} method. - *

      - * @param {T} item The item to add to the collection. - */ - add(item:T):void; - /** - * Clears this collection, triggering an {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event for each element removed. - * @see yfiles.collections.ObservableCollection.#onItemRemoved - */ - clear():void; - /** - * Copies the items to the given array. - * @param {Array.} array - * @param {number} arrayIndex - */ - copyTo(array:T[],arrayIndex:number):void; - /** - * Returns an enumerator over the elements in this collection. - * @returns {yfiles.collections.IEnumerator.} - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * Checks for containment of the item in this collection. - * @param {T} item The item to check. - * @returns {boolean} Whether the item is contained in this collection. - */ - includes(item:T):boolean; - /** - * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemAddedListener ItemAdded} event. - * @param {T} item The item that has just been added to the collection. - * @protected - */ - onItemAdded(item:T):void; - /** - * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemChangedListener ItemChanged} event. - * @param {T} item The item that has changed. - * @protected - */ - onItemChanged(item:T):void; - /** - * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event. - * @param {T} item The item that has just been removed from the collection. - * @protected - */ - onItemRemoved(item:T):void; - /** - * Method that may be called by client code to trigger an {@link yfiles.collections.ObservableCollection.#addItemChangedListener ItemChanged} event. - * @param {T} item The item to trigger the change event for. - * @see yfiles.collections.ObservableCollection.#onItemChanged - */ - publishItemChanged(item:T):void; - /** - * Tries to remove the item from the collection and triggers the {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event. - * @param {T} item The item to remove. - * @returns {boolean} Whether the item has been removed. - * @see yfiles.collections.ObservableCollection.#onItemRemoved - */ - remove(item:T):boolean; - /** - * Returns the number of elements in this collection. - * @type {number} - */ - size:number; - /** - * Checks whether this collection is read only. - * @type {boolean} - */ - isReadOnly:boolean; - /** - * Gets the collection used internally as the backing store. - *

      - * Normally code should not use this method to gain access to the collection in order to modify it. - *

      - * @returns The backing store of this observable collection. - * @type {yfiles.collections.ICollection.} - */ - items:yfiles.collections.ICollection; - /** - * Adds the given listener for the ItemAdded event that occurs when an item has been added to this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.ObservableCollection.#removeItemAddedListener - */ - addItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemAdded event that occurs when an item has been added to this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.ObservableCollection.#addItemAddedListener - */ - removeItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.ObservableCollection.#removeItemRemovedListener - */ - addItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.ObservableCollection.#addItemRemovedListener - */ - removeItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the ItemChanged event that occurs when an item has been changed inside this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.ObservableCollection.#removeItemChangedListener - */ - addItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemChanged event that occurs when an item has been changed inside this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.ObservableCollection.#addItemChangedListener - */ - removeItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - /** - * An {@link yfiles.collections.IMapper.} implementation backed by a {@link yfiles.collections.IMap.}. - *

      - * A {@link yfiles.collections.Mapper.#defaultValue} can be set that is returned for keys that don't have an explicit value set. - *

      - *

      - * It is legal to use null as key, which can be assigned a value just like other keys. - *

      - * Type parameter K. - * Type parameter V. - * @class yfiles.collections.Mapper. - * @implements {yfiles.collections.IMapper.} - * @template K,V - * @final - */ - export interface Mapper extends Object,yfiles.collections.IMapper{} - export class Mapper { - /** - * Creates an instance using the provided {@link yfiles.collections.Map.} as the backing store. - *

      - * The value for the null item is stored separately. - *

      - * @param {yfiles.collections.IMap.} dictionary - * @constructor - */ - constructor(dictionary:yfiles.collections.IMap); - /** - * Creates an instance using the provided {@link yfiles.collections.Map.} as the backing store. - *

      - * The value for the null item is stored separately. - *

      - * @param {Object} options The parameters to pass. - * @param {yfiles.collections.IMap.} options.dictionary - * @param {V} options.defaultValue The default value to return if no specific value has been set for a given key. - *

      - * This option sets the {@link yfiles.collections.Mapper.#defaultValue} property on the created object. - *

      - * @constructor - */ - constructor(options:{dictionary:yfiles.collections.IMap,defaultValue?:V}); - /** - * Creates an instance using a {@link yfiles.collections.Map.} as the backing store. - *

      - * The value for the null item is stored separately. - *

      - * @param {Object} [options=null] The parameters to pass. - * @param {V} options.defaultValue The default value to return if no specific value has been set for a given key. - *

      - * This option sets the {@link yfiles.collections.Mapper.#defaultValue} property on the created object. - *

      - * @constructor - */ - constructor(options?:{defaultValue?:V}); - /** - * Calls {@link yfiles.collections.Map.#clear} on the backing implementation. - */ - clear():void; - /** - * - * @param {K} key - */ - delete(key:K):void; - /** - * - * @param {K} key - * @returns {V} - */ - get(key:K):V; - /** - * - * @param {K} key - * @param {V} value - */ - set(key:K,value:V):void; - /** - * Gets an enumerable over all entries in this (dictionary based) mapper. - * @type {yfiles.collections.IEnumerable.>} - */ - entries:yfiles.collections.IEnumerable>; - /** - * Gets or sets the default value to return if no specific value has been set for a given key. - * @type {V} - */ - defaultValue:V; - static $class:yfiles.lang.Class; - } - /** - * The interface for a collection that will notify registered event handlers of changes to its contents. - * Type parameter T: The type of the items in the collection. - * @see yfiles.collections.ObservableCollection. - * @interface - * @implements {yfiles.collections.ICollection.} - * @template T - */ - export interface IObservableCollection extends Object,yfiles.collections.ICollection{ - /** - * Adds the given listener for the ItemAdded event that occurs when an item has been added to this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.IObservableCollection.#removeItemAddedListener - * @abstract - */ - addItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemAdded event that occurs when an item has been added to this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.IObservableCollection.#addItemAddedListener - * @abstract - */ - removeItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.IObservableCollection.#removeItemRemovedListener - * @abstract - */ - addItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.IObservableCollection.#addItemRemovedListener - * @abstract - */ - removeItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the ItemChanged event that occurs when an item in this collection has changed - * significantly. - *

      - * It is up to the implementation whether and when to trigger this event. - *

      - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.IObservableCollection.#removeItemChangedListener - * @abstract - */ - addItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemChanged event that occurs when an item in this collection has changed - * significantly. - *

      - * It is up to the implementation whether and when to trigger this event. - *

      - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.IObservableCollection.#addItemChangedListener - * @abstract - */ - removeItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - } - var IObservableCollection:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An extension to the {@link yfiles.collections.IEnumerable.} interface that allows for indexed access and retrieval of the element count. - *

      - * This interface is like a rudimentary read-only {@link yfiles.collections.IList.} - *

      - * Type parameter T: The type of the contained elements. - * @interface - * @implements {yfiles.collections.IEnumerable.} - * @template T - */ - export interface IListEnumerable extends Object,yfiles.collections.IEnumerable{ - /** - * Gets the i-th element in the collection. - * @param {number} i the zero-based index of the item in this collection - * @returns {T} the item for the given index - * @throws {Stubs.Exceptions.ArgumentError} i is not a valid index in the {@link yfiles.collections.IListEnumerable.}. - * @abstract - */ - get(i:number):T; - /** - * Gets the number of elements in this collection. - * @abstract - * @type {number} - */ - size:number; - } - var IListEnumerable:{ - /** - * An empty, immutable instance of {@link yfiles.collections.IListEnumerable.}. - * @const - * @static - * @type {yfiles.collections.IListEnumerable.} - */ - EMPTY?:yfiles.collections.IListEnumerable; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Wraps a simple {@link yfiles.collections.IEnumerable.} into a {@link yfiles.collections.IListEnumerable.}. - *

      - * This implementation is optimized for {@link yfiles.collections.IList.} and {@link yfiles.collections.ICollection.}, as well as {@link Object} {@link yfiles.collections.IEnumerable.}s. - *

      - * Type parameter T: The type of the enumerable. - * @class yfiles.collections.ListEnumerable. - * @implements {yfiles.collections.IListEnumerable.} - * @template T - * @final - */ - export interface ListEnumerable extends Object,yfiles.collections.IListEnumerable{} - export class ListEnumerable { - /** - * Creates a new instance using the given backing enumerable. - * @param {yfiles.collections.IEnumerable.} backingEnumerable The enumerable to back this instance. - * @constructor - */ - constructor(backingEnumerable:yfiles.collections.IEnumerable); - /** - * Creates a new instance with a backing {@link yfiles.collections.List.} as the backing store. - * @constructor - */ - constructor(); - /** - * - * @param {number} i - * @returns {T} - */ - get(i:number):T; - /** - * - * @returns {yfiles.collections.IEnumerator.} - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * Gets the backing enumerable. - * @type {yfiles.collections.IEnumerable.} - */ - backingEnumerable:yfiles.collections.IEnumerable; - /** - * - * @type {number} - */ - size:number; - static $class:yfiles.lang.Class; - } - /** - * Event argument class used by {@link yfiles.collections.IObservableCollection.} and similar that holds a specific item that is related to the event. - * Type parameter T: The type of the item contained in the event. - * @class yfiles.collections.ItemEventArgs. - * @extends {yfiles.lang.EventArgs} - * @template T - */ - export interface ItemEventArgs extends yfiles.lang.EventArgs{} - export class ItemEventArgs { - /** - * Creates a new event argument for the given item. - * @param {T} item The item which is the subject of the event. - * @constructor - */ - constructor(item:T); - /** - * Gets the item that is the subject of the event. - * @type {T} - */ - item:T; - static $class:yfiles.lang.Class; - } - /** - * An interface for simple typed dictionary-like implementations. - *

      - * {@link yfiles.collections.IMapper.}s are most prominently used when interfacing with {@link yfiles.layout.ILayoutAlgorithm layout algorithms} and {@link yfiles.graphml.GraphMLIOHandler GraphML}. {@link yfiles.graph.IGraph} also provides the {@link yfiles.graph.IGraph#mapperRegistry} - * to add additional information to a graph. - *

      - * Type parameter K: The type of element this interface accepts as keys for the mapping. - * Type parameter V: The type of element this interface accepts as values for the mapping. - *

      - * Using {@link yfiles.collections.IMapper.} is described in the section {@link @DGUIDE_PREFIX@/customizing_graph-binding_data.html Associating Data with Graph Elements}. - *

      - *

      Related demos:

      - *
        - *
      • Demo: DragAndDropForm, demo.yfiles.input.draganddrop
      • - *
      - * @see yfiles.collections.Mapper. - * @interface - * @template K,V - */ - export interface IMapper extends Object{ - /** - * Gets the value for a given key in the mapping. - *

      - * Setting a value for an already existing key overwrites the previous value. - *

      - *

      - * It depends on the specific implementation of the mapper whether a mapping can be removed. If an implementation provides - * a way to remove a mapping, that should be preferred over setting a null value. For example, {@link yfiles.collections.Mapper.} provides the {@link yfiles.collections.Mapper.#delete} - * method. - *

      - * @param {K} key The key of the mapping. - * @returns {V} The value. - * @see yfiles.collections.IMapper.#set - * @abstract - */ - get(key:K):V; - /** - * Sets the value for a given key in the mapping. - *

      - * Setting a value for an already existing key overwrites the previous value. - *

      - *

      - * It depends on the specific implementation of the mapper whether a mapping can be removed. If an implementation provides - * a way to remove a mapping, that should be preferred over setting a null value. For example, {@link yfiles.collections.Mapper.} provides the {@link yfiles.collections.Mapper.#delete} - * method. - *

      - * @param {K} key The key of the mapping. - * @param value The value. - * @see yfiles.collections.IMapper.#get - * @abstract - */ - set(key:K,value:V):void; - } - var IMapper:{ - /** - * Creates a constant mapper that will always return the constant. - * Type parameter K: The type of the key to use. - * Type parameter V: The type of the value to use. - * @param {V} constant The constant to return in {@link yfiles.collections.IMapper.#get} - * @returns {yfiles.collections.IMapper.} A new instance that will always return the same constant. - * @template K,V - * @static - */ - fromConstant?(constant:V):yfiles.collections.IMapper; - /** - * Create an implementation of {@link yfiles.collections.IMapper.} that delegates {@link yfiles.collections.IMapper.#get} getter calls to the provided handler. - *

      - * The implementation returned silently ignores calls to the {@link yfiles.collections.IMapper.#get} setter. - *

      - * Type parameter K: The type of the key to use. - * Type parameter V: The type of the value to use. - * @param {function(K): V} getter The delegate to delegate {@link yfiles.collections.IMapper.#get} getter calls to. - * @returns {yfiles.collections.IMapper.} An implementation that delegates to getter. - * @template K,V - * @static - */ - fromDelegate?(getter:(key:K)=>V):yfiles.collections.IMapper; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - }export namespace system{ }export namespace view{ + /** + * Runs {@link yfiles.view.IAnimation animations} in a {@link yfiles.view.CanvasComponent}. + *

      + * For running {@link yfiles.view.IAnimation} instances the method {@link yfiles.view.Animator#animate} can be used. For simpler cases of + * custom animations there are also overloads that take an animation callback. + *

      + * @see yfiles.view.IAnimation + * @class + */ + export interface Animator extends Object{} + export class Animator { + /** + * Initializes a new instance of the {@link yfiles.view.Animator} class for the given {@link yfiles.view.CanvasComponent}. + *

      + * Using this constructor this instance will query an instance of {@link yfiles.input.WaitInputMode} from the {@link yfiles.view.CanvasComponent#lookup canvas's context} to + * automatically set the {@link yfiles.input.WaitInputMode#waiting} property during animations if {@link yfiles.view.Animator#allowUserInteraction} is set to false. The animation is not started until {@link yfiles.view.Animator#animate} + * or {@link yfiles.view.Animator#animate} is called. + *

      + * @param canvas The canvas control. + */ + constructor(canvas:yfiles.view.CanvasComponent); + /** + * Initializes a new instance of the {@link yfiles.view.Animator} class for the given {@link yfiles.view.CanvasComponent}. + *

      + * Using this constructor this instance will query an instance of {@link yfiles.input.WaitInputMode} from the {@link yfiles.view.CanvasComponent#lookup canvas's context} to + * automatically set the {@link yfiles.input.WaitInputMode#waiting} property during animations if {@link yfiles.view.Animator#allowUserInteraction} is set to false. The animation is not started until {@link yfiles.view.Animator#animate} + * or {@link yfiles.view.Animator#animate} is called. + *

      + * @param {Object} options The parameters to pass. + * @param options.canvas The canvas control. + * @param {boolean} options.allowUserInteraction Determines whether user interaction should be allowed during the animation. + *

      + * This option sets the {@link yfiles.view.Animator#allowUserInteraction} property on the created object. + *

      + * @param {boolean} options.autoInvalidation A value indicating whether to automatically {@link yfiles.view.Animator#invalidateComponent invalidate the control} this instance has been created for. + *

      + * This option sets the {@link yfiles.view.Animator#autoInvalidation} property on the created object. + *

      + */ + constructor(options:{canvas:yfiles.view.CanvasComponent,allowUserInteraction?:boolean,autoInvalidation?:boolean}); + /** + * Animates the given animation instance and triggers the callback upon completion. + * @param animation The animation to perform. + * @returns + */ + animate(animation:yfiles.view.IAnimation):Promise; + /** + * Starts animating the given animation for the specified duration. + * @param callback The callback to use for the animation. + * @param duration The duration in milliseconds that the animation should last. + * @returns + */ + animate(callback:(time:number)=>void,duration:yfiles.lang.TimeSpan):Promise; + /** + * Stops all running animations. + */ + destroy():void; + /** + * Invalidates the control if {@link yfiles.view.Animator#autoInvalidation} is set to true. + *

      + * This implementation calls {@link yfiles.view.CanvasComponent#updateVisual }. + *

      + * @param canvas The control. + * @protected + */ + invalidateComponent(canvas:yfiles.view.CanvasComponent):void; + /** + * Determines whether user interaction should be allowed during the animation. + *

      + * If false, the {@link yfiles.input.WaitInputMode} is queried from the {@link yfiles.view.CanvasComponent} and {@link yfiles.input.WaitInputMode#waiting} is enabled during the + * animation. The default is false. + *

      + * @type {boolean} + */ + allowUserInteraction:boolean; + /** + * The control the animations are run on. + * @type {yfiles.view.CanvasComponent} + */ + canvasComponent:yfiles.view.CanvasComponent; + /** + * Gets or sets a value indicating whether to automatically {@link yfiles.view.Animator#invalidateComponent invalidate the control} this instance has been created for. + *

      + * The default is true. + *

      + * @type {boolean} + */ + autoInvalidation:boolean; + static $class:yfiles.lang.Class; + } + /** + * An interface for animations that can be run by {@link yfiles.view.Animator}. + *

      + * Instances of classes implementing this interface change their state according to a relative animation time. The + * animation time is a double between 0 for the start of the animation and 1 for the end of the animation. + *

      + *
        + *
      • An animated object is first created using the constructor of a subclass.
      • + *
      • Immediately before the animation a client calls {@link yfiles.view.IAnimation#initialize}.
      • + *
      • + * To change the state of the animated object a client does a series of calls to + * {@link yfiles.view.IAnimation#animate}, usually with an increasing relative time parameter. + *
      • + *
      • If the animation is done, the client calls {@link yfiles.view.IAnimation#cleanup} once.
      • + *
      • + * While {@link yfiles.view.IAnimation#animate} uses a relative time scheme, there might be an absolute time value for the + * preferred duration of the whole sequence of animation steps. Since an IAnimation instance has no control on the number + * of {@link yfiles.view.IAnimation#animate} calls or the intervals between them, the preferred duration is only a hint on how long + * the animation should take. Clients can ask for that hint using {@link yfiles.view.IAnimation#preferredDuration} and try to find a suitable sequence of {@link yfiles.view.IAnimation#animate} + * calls in order to fulfill the preference. + *
      • + *
      + * @interface + */ + export interface IAnimation extends Object{ + /** + * Does the animation according to the relative animation time. + *

      + * The animation starts with the time 0 and ends with time 1. + *

      + * @param time the animation time [0,1] + * @abstract + */ + animate(time:number):void; + /** + * Cleans up after an animation has finished. + * @abstract + */ + cleanup():void; + /** + * Creates an eased animation for the given base animation. + *

      + * The animation speed linearly increases upto a easeIn and linearly decreases from + * easeOut. Between those two points, the animation speed is constant. + *

      + *

      + * The duration of the ease in and ease out is determined by a mapping [0,1] → [0,1]. The mapping has to be increasing to + * preserve the order of the frames in the decorated animation. In general, we consider continuously differentiable + * functions f where integral of f′ equals 1 a suitable choice for the mapping. + *

      + * @param [easeIn=0.5] The ratio for the ease-in time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. + * @param [easeOut=0.5] The ratio for the ease-out time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. + * @returns + */ + createEasedAnimation?(easeIn?:number,easeOut?:number):yfiles.view.IAnimation; + /** + * Creates an eased animation for the given base animation. + *

      + * The animation speed linearly increases upto a easeIn and linearly decreases from + * easeOut. Between those two points, the animation speed is constant. + *

      + *

      + * The duration of the ease in and ease out is determined by a mapping [0,1] → [0,1]. The mapping has to be increasing to + * preserve the order of the frames in the decorated animation. In general, we consider continuously differentiable + * functions f where integral of f′ equals 1 a suitable choice for the mapping. + *

      + * @param {Object} options The parameters to pass. + * @param [options.easeIn=0.5] The ratio for the ease-in time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. + * @param [options.easeOut=0.5] The ratio for the ease-out time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. + * @returns + */ + createEasedAnimation?(options:{easeIn?:number,easeOut?:number}):yfiles.view.IAnimation; + /** + * Initializes the animation. + *

      + * Call this method once before subsequent calls to {@link yfiles.view.IAnimation#animate}. + *

      + * @abstract + */ + initialize():void; + /** + * Gets the preferred duration of the animation. + * @abstract + * @type {yfiles.lang.TimeSpan} + */ + preferredDuration:yfiles.lang.TimeSpan; + } + var IAnimation:{ + /** + * Creates a new {@link yfiles.view.IAnimation} that animates the given edge's bends from its current shape linearly to the shape + * given by the endBends and final port locations. + *

      + * The bends of the edge layout are animated from their current location to their target locations. It is assumed that the + * edge style is a polyline style and the control points are the bends accordingly. The animation works for other styles + * too, but the effect might not be as expected. The number of bends in endBends can be different to the current number of + * bends. This will result in the animation automatically removing bends at the end of the animation or inserting new bends + * accordingly at the beginning of the animation. + *

      + *

      + * The source and target points are also animated to new locations. However, the ports will not be moved by this animation. + * Instead a separate {@link yfiles.view.IAnimation#createPortAnimation animation for the ports} is needed to actually move + * {@link yfiles.graph.IPort}s at the ends of the edge if desired. + *

      + * @param graph The graph the animated edge belongs to. + * @param edge The edge layout to animate. + * @param endBends The bend positions after the animation. + * @param endSourceLocation The absolute position of the source port after the animation. + * @param endTargetLocation The absolute position of the target port after the animation. + * @param preferredDuration The preferred duration of the animation in milliseconds. + * @returns + * @static + */ + createEdgeSegmentAnimation?(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,endBends:yfiles.geometry.IPoint[],endSourceLocation:yfiles.geometry.Point,endTargetLocation:yfiles.geometry.Point,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} that animates the given layout of all types of graph items. + * @param graph The graph for which the layout should be animated. + * @param targetNodeLayouts The node layouts after the animation. + * @param targetBendLocations The bend locations after the animation, for each edge the points are interpreted as the position of the bends along the + * edge in the given order. + * @param targetLayoutParameters The label model parameters for each label after the animation. + * @param targetPortLocations The {@link }s for each {@link } in the graph that will be morphed. + * @param preferredDuration The preferred duration of the animation in milliseconds. + * @returns + * @static + */ + createGraphAnimation?(graph:yfiles.graph.IGraph,targetNodeLayouts:yfiles.collections.IMapper,targetBendLocations:yfiles.collections.IMapper,targetPortLocations:yfiles.collections.IMapper,targetLayoutParameters:yfiles.collections.IMapper,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} that animates the given label from its current layout linearly to the layout given + * by the targetLayoutParameter. + *

      + * This animation will as a side effect assign the targetLayoutParameter to the label at the {@link Root.IG#cleanup end of the animation}. + *

      + * @param graph The graph that contains the labels. + * @param label The label to animate the parameter of. + * @param targetLayoutParameter The target parameter of the label. + * @param preferredDuration The preferred duration of the animation. + * @returns A new instance of {@link }. + * @static + */ + createLabelAnimation?(graph:yfiles.graph.IGraph,label:yfiles.graph.ILabel,targetLayoutParameter:yfiles.graph.ILabelModelParameter,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} instance that animates the current graph to the layout given by a {@link yfiles.layout.CopiedLayoutGraph} + * instance. + *

      + * The returned instance is suitable for morphing an {@link yfiles.graph.IGraph} to a layout computed by one of the layout + * algorithms. + *

      + *

      + * While it is usually recommended to use {@link yfiles.layout.LayoutExecutor} to handle layout calculation and subsequent + * animation, the {@link yfiles.view.IAnimation} produced by this method can be used manually, as well: + *

      + * @param graph the graph for which the layout should be animated + * @param layoutGraph the {@link } that contains all target layout information + * @param preferredDuration the preferred duration of the animation + * @returns + * @static + */ + createLayoutAnimation?(graph:yfiles.graph.IGraph,layoutGraph:yfiles.layout.CopiedLayoutGraph,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} that animates the given node from its current layout to the new given + * targetLayout. + * @param graph The graph the animated node belongs to. + * @param node The node whose {@link #layout} to animate. + * @param targetLayout The expected node layout after the animation. + * @param preferredDuration The preferred duration of the animation. + * @returns A new instance of {@link }. + * @static + */ + createNodeAnimation?(graph:yfiles.graph.IGraph,node:yfiles.graph.INode,targetLayout:yfiles.geometry.IRectangle,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates an {@link yfiles.view.IAnimation} according to the composite design pattern that animates multiple animations in + * parallel. + *

      + * The animations can be synchronized to the longest running animation. + *

      + * @param animations The animations to run in parallel. + * @param [synchronized=true] Whether all child animations should be adjusted to have the same (maximum) {@link #preferredDuration}. By default this is enabled. + * @returns A new instance that is the composite of the given animations. + * @static + */ + createParallelAnimation?(animations:yfiles.collections.IEnumerable,synchronized?:boolean):yfiles.view.IAnimation; + /** + * Creates a new instance of an {@link yfiles.view.IAnimation} that animates the given {@link yfiles.geometry.IMutablePoint} along a path. + * @param path The path to animate the point along. + * @param animationPoint The mutable point instance that will be manipulated by the animation. + * @param preferredDuration The preferred duration of the animation. + * @returns + * @static + */ + createPathAnimation?(path:yfiles.geometry.GeneralPath,animationPoint:yfiles.geometry.IMutablePoint,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} that animates the given port from its current location to the new location given by + * the targetLocationParameter. + *

      + * This animation will as a side effect assign the targetLocationParameter to the port at the {@link Root.IG#cleanup end of the animation}. + *

      + * @param graph The graph that contains the port. + * @param port The port to animate. + * @param targetLocationParameter The parameter to linearly interpolate to. + * @param preferredDuration The {@link #preferredDuration preferred duration} of this animation. + * @returns A new instance of {@link }. + * @static + */ + createPortAnimation?(graph:yfiles.graph.IGraph,port:yfiles.graph.IPort,targetLocationParameter:yfiles.graph.IPortLocationModelParameter,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} for the given table that animates the table and its {@link yfiles.graph.IStripe stripes}. + *

      + * Note that only the sizes of + * leaf stripes, i.e. those without child stripes, are considered. The sizes of a stripe with children is implicitly determined by its + * contents. + *

      + *

      + * For more control of the animation, implement a custom {@link yfiles.view.TableAnimation} and override method + * {@link yfiles.view.TableAnimation#createStripeAnimation}. + *

      + * @param table The table to animate. + * @param columnLayout The sizes of the leaf columns, in natural order. + * @param rowLayout The sizes of the leaf rows, in natural order. + * @returns + * @static + */ + createTableAnimation?(table:yfiles.graph.ITable,columnLayout:number[],rowLayout:number[]):yfiles.view.IAnimation; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Animates changing the viewport bounds and the zoom factor for a {@link yfiles.view.CanvasComponent}. + * @class + * @implements {yfiles.view.IAnimation} + */ + export interface ViewportAnimation extends Object,yfiles.view.IAnimation{} + export class ViewportAnimation { + /** + * Creates a new instance of {@link yfiles.view.ViewportAnimation}. + * @param canvas The canvas control. + * @param targetBounds The target world bounds for the animation. + * @param [preferredDuration=null] The preferred duration. 1 second if omitted. + */ + constructor(canvas:yfiles.view.CanvasComponent,targetBounds:yfiles.geometry.Rect,preferredDuration?:yfiles.lang.TimeSpan); + /** + * Creates a new instance of {@link yfiles.view.ViewportAnimation}. + * @param {Object} options The parameters to pass. + * @param options.canvas The canvas control. + * @param options.targetBounds The target world bounds for the animation. + * @param [options.preferredDuration=null] The preferred duration. 1 second if omitted. + * @param {boolean} options.considerViewportLimiter Whether to respect the {@link yfiles.view.CanvasComponent#viewportLimiter} of the {@link yfiles.view.CanvasComponent} whose {@link yfiles.view.CanvasComponent#viewport} is animated. + *

      + * This option sets the {@link yfiles.view.ViewportAnimation#considerViewportLimiter} property on the created object. + *

      + * @param {number} options.maximumTargetZoom The maximum zoom level to use after the animation. + *

      + * This option sets the {@link yfiles.view.ViewportAnimation#maximumTargetZoom} property on the created object. + *

      + */ + constructor(options:{canvas:yfiles.view.CanvasComponent,targetBounds:yfiles.geometry.Rect,preferredDuration?:yfiles.lang.TimeSpan,considerViewportLimiter?:boolean,maximumTargetZoom?:number}); + /** + * + * @param time + */ + animate(time:number):void; + /** + * Effectively applies the center point value. + * @param focus + * @protected + */ + applyCenterPoint(focus:yfiles.geometry.Point):void; + /** + * Effectively applies the view point value. + * @param focus + * @protected + */ + applyViewPoint(focus:yfiles.geometry.Point):void; + /** + * Effectively applies the zoom value. + * @param value + * @protected + */ + applyZoom(value:number):void; + /** + * Cancels this viewport animation so that subsequent calls to {@link yfiles.view.ViewportAnimation#animate} or {@link yfiles.view.ViewportAnimation#cleanup} + * won't affect the viewport anymore. + */ + cancel():void; + /** + * Cleans up after the animation. + */ + cleanup():void; + /** + * Initializes this animation. + *

      + * This has to be called once before any calls to {@link yfiles.view.ViewportAnimation#animate}. An instance of {@link yfiles.view.ViewportAnimation} + * can be reused after an animation by setting new {@link yfiles.view.ViewportAnimation#targetBounds} or a new {@link yfiles.view.ViewportAnimation#preferredDuration} and calling Initialize() again. + *

      + */ + initialize():void; + /** + * Gets or sets the target world bounds. + * @type {yfiles.geometry.Rect} + */ + targetBounds:yfiles.geometry.Rect; + /** + * Whether to respect the {@link yfiles.view.CanvasComponent#viewportLimiter} of the {@link yfiles.view.CanvasComponent} whose {@link yfiles.view.CanvasComponent#viewport} is animated. + *

      + * Default is false. + *

      + * @type {boolean} + */ + considerViewportLimiter:boolean; + /** + * Gets or sets the preferred duration of the animation. + * @type {yfiles.lang.TimeSpan} + */ + preferredDuration:yfiles.lang.TimeSpan; + /** + * Gets or sets the maximum zoom level to use after the animation. + *

      + * The default is {@link number#POSITIVE_INFINITY}. + *

      + * @type {number} + */ + maximumTargetZoom:number; + /** + * Gets or sets the scroll bar visibility that will be used during the animation. + * @default yfiles.view.ScrollBarVisibility.NEVER + * @type {yfiles.view.ScrollBarVisibility} + */ + scrollBarVisibility:yfiles.view.ScrollBarVisibility; + /** + * Gets or sets the margins in view coordinate dimensions to use at the target zoom level. + * @default '0' + * @type {yfiles.geometry.Insets} + */ + targetViewMargins:yfiles.geometry.Insets; + static $class:yfiles.lang.Class; + } + export enum ScrollBarVisibility{ + /** + * Never display the scroll bar, even if not all of the content is visible. + */ + NEVER, + /** + * Display the scroll bar when needed. + *

      + * This is the default behavior in most applications. + *

      + */ + AS_NEEDED, + /** + * Always display the scroll bar. + *

      + * If it is not needed, i.e. if all content is already displaying, the scroll bar will remain visible but cannot be moved. + *

      + */ + ALWAYS + } export enum MouseButtons{ /** * No mouse button. @@ -8719,26 +9132,6 @@ declare namespace system{ */ X2 } - export enum ScrollBarVisibility{ - /** - * Never display the scroll bar, even if not all of the content is visible. - */ - NEVER, - /** - * Display the scroll bar when needed. - *

      - * This is the default behavior in most applications. - *

      - */ - AS_NEEDED, - /** - * Always display the scroll bar. - *

      - * If it is not needed, i.e. if all content is already displaying, the scroll bar will remain visible but cannot be moved. - *

      - */ - ALWAYS - } export enum MouseWheelBehaviors{ /** * The mouse wheel has no effect. @@ -8765,15 +9158,14 @@ declare namespace system{ * {@link yfiles.view.CanvasComponent#invalidate} *

      * @see yfiles.view.CanvasComponent#addPrepareRenderContextListener - * @class yfiles.view.PrepareRenderContextEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface PrepareRenderContextEventArgs extends yfiles.lang.EventArgs{} export class PrepareRenderContextEventArgs { /** * Initializes a new instance of the {@link yfiles.view.PrepareRenderContextEventArgs} class. - * @param {yfiles.view.IRenderContext} context The initial context which can be modified by the event handlers using the {@link yfiles.view.PrepareRenderContextEventArgs#context} property. - * @constructor + * @param context The initial context which can be modified by the event handlers using the {@link #context} property. */ constructor(context:yfiles.view.IRenderContext); /** @@ -8816,7 +9208,7 @@ declare namespace system{ } /** * This event occurs when the size of a control is changed. - * @class yfiles.view.SizeChangedEventArgs + * @class * @extends {yfiles.lang.EventArgs} * @final */ @@ -8839,12 +9231,12 @@ declare namespace system{ *

      * The control supports high performance zooming and panning of visual content and provides a high level view of the visual * tree. The control uses double precision world-coordinates to render items that are composed using a visual tree. In its - * most simple form the scene graph is a tree like structure of elements that will be rendered in depth-first-search + * most simple form the scene graph is a tree-like structure of elements that will be rendered in depth-first-search * order. *

      *

      * The scene graph tree is made up of {@link yfiles.view.ICanvasObject} elements. Multiple elements are grouped in {@link yfiles.view.ICanvasObjectGroup} - * elements. An {@link yfiles.view.ICanvasObject} consists of a {@link yfiles.view.ICanvasObject#userObject user-object} and an {@link yfiles.view.ICanvasObjectDescriptor} that is used + * elements. An {@link yfiles.view.ICanvasObject} consists of a {@link yfiles.view.ICanvasObject#userObject user object} and an {@link yfiles.view.ICanvasObjectDescriptor} that is used * by the rendering engine to query interfaces that perform the actual creation of the * {@link yfiles.view.Visual}s, hit testing, and bounds calculation. *

      @@ -8855,11 +9247,11 @@ declare namespace system{ *
    • {@link yfiles.input.ICommand#INCREASE_ZOOM}
    • *
    • {@link yfiles.input.ICommand#DECREASE_ZOOM}
    • *
    • {@link yfiles.input.ICommand#ZOOM}
    • + *
    • {@link yfiles.input.ICommand#FIT_CONTENT}
    • *
    • {@link yfiles.input.ICommand#SCROLL_PAGE_DOWN}
    • *
    • {@link yfiles.input.ICommand#SCROLL_PAGE_UP}
    • *
    • {@link yfiles.input.ICommand#SCROLL_PAGE_LEFT}
    • *
    • {@link yfiles.input.ICommand#SCROLL_PAGE_RIGHT}
    • - *
    • {@link yfiles.input.ICommand#FIT_CONTENT}
    • *
    *

    * The handlers for {@link yfiles.input.ICommand#INCREASE_ZOOM} and {@link yfiles.input.ICommand#DECREASE_ZOOM} use the specified command @@ -8878,7 +9270,7 @@ declare namespace system{ * @see yfiles.view.IVisualCreator * @see yfiles.input.IHitTestable * @see yfiles.view.IVisibilityTestable - * @class yfiles.view.CanvasComponent + * @class * @implements {yfiles.graph.ILookup} */ export interface CanvasComponent extends Object,yfiles.graph.ILookup{} @@ -8888,8 +9280,7 @@ declare namespace system{ *

    * The canvas will be empty with no associated InputModes. *

    - * @param {string} selector The CSS selector or id for an existing div element - * @constructor + * @param selector The CSS selector or id for an existing div element */ constructor(selector:string); /** @@ -8897,8 +9288,7 @@ declare namespace system{ *

    * The canvas will be empty with no associated {@link yfiles.view.CanvasComponent#inputMode}s. *

    - * @param {HTMLDivElement} div The existing div element to use for rendering the canvas into. - * @constructor + * @param div The existing div element to use for rendering the canvas into. */ constructor(div:HTMLDivElement); /** @@ -8907,13 +9297,12 @@ declare namespace system{ * The canvas will be empty with no associated InputModes. This constructor creates a new {@link yfiles.view.CanvasComponent#div} element that needs to be added * to the DOM manually. *

    - * @constructor */ constructor(); /** * Scrolls to the provided view point and zoom level in an animated fashion. - * @param {yfiles.geometry.Point} viewPoint The new {@link yfiles.view.CanvasComponent#viewPoint} - * @param {number} zoom The new zoom level. + * @param viewPoint The new {@link #viewPoint} + * @param zoom The new zoom level. */ animateScrollTo(viewPoint:yfiles.geometry.Point,zoom:number):void; /** @@ -8933,9 +9322,9 @@ declare namespace system{ *

    * The comparison will yield values greater than zero if and only if the second object is rendered after the first one. *

    - * @param {yfiles.view.ICanvasObject} canvasObject1 the first object to compare - * @param {yfiles.view.ICanvasObject} canvasObject2 the second object to compare - * @returns {number} 0 if canvasObject1 == + * @param canvasObject1 the first object to compare + * @param canvasObject2 the second object to compare + * @returns 0 if canvasObject1 == * canvasObject2 *
    * >0 if canvasObject1 is painted before canvasObject2 <0 if canvasObject1 is painted after canvasObject2 @@ -8946,7 +9335,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#backgroundGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createBackgroundGroup():yfiles.view.ICanvasObjectGroup; @@ -8955,7 +9344,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#contentGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createContentGroup():yfiles.view.ICanvasObjectGroup; @@ -8964,7 +9353,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#focusGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createFocusGroup():yfiles.view.ICanvasObjectGroup; @@ -8973,7 +9362,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#highlightGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createHighlightGroup():yfiles.view.ICanvasObjectGroup; @@ -8982,7 +9371,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#inputModeContext} property. *

    - * @returns {yfiles.input.IInputModeContext} a new instance of {@link yfiles.view.CanvasComponent#inputModeContext} that has this instance set as it's {@link yfiles.view.ICanvasContext#canvasComponent} and uses this instance's {@link yfiles.view.CanvasComponent#inputModeContextLookup} + * @returns a new instance of {@link #inputModeContext} that has this instance set as it's {@link #canvasComponent} and uses this instance's {@link #inputModeContextLookup} * callback to satisfy requests. * @protected */ @@ -8992,7 +9381,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#inputModeGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createInputModeGroup():yfiles.view.ICanvasObjectGroup; @@ -9003,7 +9392,7 @@ declare namespace system{ * This method is a convenience method to obtain a context for special visual creator implementations and normally needs * not be used by application developers. *

    - * @returns {yfiles.view.IRenderContext} A new context instance that is bound to this instance. + * @returns A new context instance that is bound to this instance. */ createRenderContext():yfiles.view.IRenderContext; /** @@ -9011,13 +9400,13 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#selectionGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createSelectionGroup():yfiles.view.ICanvasObjectGroup; /** * Ensures that the provided bounds are visible in this control by adjusting the viewport correspondingly. - * @param {yfiles.geometry.Rect} bounds The bounds to make visible. + * @param bounds The bounds to make visible. */ ensureVisible(bounds:yfiles.geometry.Rect):void; /** @@ -9025,13 +9414,13 @@ declare namespace system{ *

    * This method will create the visual content using the world coordinate system. *

    - * @param {yfiles.view.IRenderContext} context The context to use. - * @returns {Element} A composite Visual that represents the contents of this control. + * @param context The context to use. + * @returns A composite Visual that represents the contents of this control. */ exportContent(context:yfiles.view.IRenderContext):Element; /** * Fires the size changed event. - * @param {yfiles.geometry.Size} oldSize + * @param oldSize */ fireSizeChanged(oldSize:yfiles.geometry.Size):void; /** @@ -9040,6 +9429,7 @@ declare namespace system{ * The zoom level will not be greater than 1.0d. If the view port is limited by the {@link yfiles.view.CanvasComponent#viewportLimiter} the zoom level might be greater than 1.0d * to respect the limits. *

    + * @see yfiles.view.CanvasComponent#updateContentRect * @see yfiles.view.CanvasComponent#zoom * @see yfiles.view.CanvasComponent#zoomTo */ @@ -9053,8 +9443,8 @@ declare namespace system{ *

    * This method queries the descriptor for the {@link yfiles.view.IBoundsProvider} for the user object and returns the result. *

    - * @param {yfiles.view.ICanvasObject} canvasObject the canvas object to query the bounds from - * @returns {yfiles.geometry.Rect} the non-null bounds + * @param canvasObject the canvas object to query the bounds from + * @returns the non-null bounds */ getBounds(canvasObject:yfiles.view.ICanvasObject):yfiles.geometry.Rect; /** @@ -9062,14 +9452,14 @@ declare namespace system{ *

    * This will return the canvas object that is painted last at the given position. *

    - * @param {yfiles.geometry.Point} location the coordinates of the query in the world coordinate system - * @returns {yfiles.view.ICanvasObject} + * @param location the coordinates of the query in the world coordinate system + * @returns */ getCanvasObject(location:yfiles.geometry.Point):yfiles.view.ICanvasObject; /** * Enumerates over all possible {@link yfiles.view.ICanvasObject} instances in the tree below the given group. - * @param {yfiles.view.ICanvasObjectGroup} group - * @returns {yfiles.collections.IEnumerable.} An enumerable for all {@link yfiles.view.ICanvasObject}s in the tree below the given group. + * @param group + * @returns An enumerable for all {@link }s in the tree below the given group. */ getCanvasObjects(group:yfiles.view.ICanvasObjectGroup):yfiles.collections.IEnumerable; /** @@ -9078,19 +9468,19 @@ declare namespace system{ * The order of the elements in the list is the natural hit test order, i.e. elements painted on top of others will be * reported first in the list. *

    - * @param {yfiles.geometry.Point} location the coordinates of the query in the world coordinate system - * @returns {yfiles.collections.IEnumerable.} an enumerable of canvas object that are hit in reverse painting order + * @param location the coordinates of the query in the world coordinate system + * @returns an enumerable of canvas object that are hit in reverse painting order */ getCanvasObjects(location:yfiles.geometry.Point):yfiles.collections.IEnumerable; /** * Enumerates over all possible {@link yfiles.view.ICanvasObject} instances in the tree. - * @returns {yfiles.collections.IEnumerable.} An enumerable for all {@link yfiles.view.ICanvasObject}s in the tree. + * @returns An enumerable for all {@link }s in the tree. */ getCanvasObjects():yfiles.collections.IEnumerable; /** * Gets the {@link yfiles.view.CanvasComponent} instance that is associated with the given DOM element, or null. - * @param {Element} element - * @returns {yfiles.view.CanvasComponent} + * @param element + * @returns * @static */ static getComponent(element:Element):yfiles.view.CanvasComponent; @@ -9103,22 +9493,22 @@ declare namespace system{ * corresponding {@link yfiles.view.IVisualCreator} that created the visual in the first place. This method rather serves as a * utility method for UI testing frameworks and similar use cases. *

    - * @param {yfiles.view.ICanvasObject} canvasObject The canvas object. - * @returns {yfiles.view.Visual} The {@link yfiles.view.Visual} that is currently used by the canvasObject. + * @param canvasObject The canvas object. + * @returns The {@link } that is currently used by the canvasObject. */ getVisual(canvasObject:yfiles.view.ICanvasObject):yfiles.view.Visual; /** * Convenience method that retrieves the {@link yfiles.view.IVisualCreator} for a given {@link yfiles.view.ICanvasObject}. - * @param {yfiles.view.ICanvasObject} canvasObject the canvas object to query the visual creator implementation from - * @returns {yfiles.view.IVisualCreator} an instance of the visual creator interface + * @param canvasObject the canvas object to query the visual creator implementation from + * @returns an instance of the visual creator interface * @see yfiles.view.ICanvasObjectDescriptor#getVisualCreator * @see yfiles.view.VoidVisualCreator#INSTANCE */ getVisualCreator(canvasObject:yfiles.view.ICanvasObject):yfiles.view.IVisualCreator; /** * Converts view coordinates from the document's coordinate system to the control's coordinate system. - * @param {yfiles.geometry.Point} localPoint The coordinates to convert. - * @returns {yfiles.geometry.Point} The coordinates in the control's coordinate system. + * @param localPoint The coordinates to convert. + * @returns The coordinates in the control's coordinate system. */ globalToLocal(localPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** @@ -9126,7 +9516,7 @@ declare namespace system{ *

    * Note that this will not change the view port, it will only change the scroll bars if necessary. *

    - * @param {yfiles.geometry.Rect} rectangle the rectangle that should be included in the content rectangle + * @param rectangle the rectangle that should be included in the content rectangle */ growContentRect(rectangle:yfiles.geometry.Rect):void; /** @@ -9136,11 +9526,11 @@ declare namespace system{ * Hit testing is performed using the {@link yfiles.view.ICanvasObjectDescriptor#getHitTestable} instance returned for each visible * {@link yfiles.view.ICanvasObject} in the current scene graph. The enumeration is performed lazily. *

    - * @param {yfiles.input.IInputModeContext} context The context instance to pass to {@link yfiles.input.IHitTestable#isHit}. - * @param {yfiles.geometry.Point} location the coordinates to perform the hit test at - * @param {yfiles.view.ICanvasObjectGroup} [root=null] the root of the scene graph to use - * @param {function(yfiles.view.ICanvasObject): boolean} [filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. - * @returns {yfiles.collections.IEnumerable.} a live enumeration of the elements that are hit + * @param context The context instance to pass to {@link #isHit}. + * @param location the coordinates to perform the hit test at + * @param [root=null] the root of the scene graph to use + * @param [filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. + * @returns a live enumeration of the elements that are hit * @see yfiles.input.IHitTestable */ hitElementsAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root?:yfiles.view.ICanvasObjectGroup,filter?:(obj:yfiles.view.ICanvasObject)=>boolean):yfiles.collections.IEnumerable; @@ -9152,11 +9542,11 @@ declare namespace system{ * {@link yfiles.view.ICanvasObject} in the current scene graph. The enumeration is performed lazily. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.input.IInputModeContext} options.context The context instance to pass to {@link yfiles.input.IHitTestable#isHit}. - * @param {yfiles.geometry.Point} options.location the coordinates to perform the hit test at - * @param {yfiles.view.ICanvasObjectGroup} [options.root=null] the root of the scene graph to use - * @param {function(yfiles.view.ICanvasObject): boolean} [options.filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. - * @returns {yfiles.collections.IEnumerable.} a live enumeration of the elements that are hit + * @param options.context The context instance to pass to {@link #isHit}. + * @param options.location the coordinates to perform the hit test at + * @param [options.root=null] the root of the scene graph to use + * @param [options.filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. + * @returns a live enumeration of the elements that are hit * @see yfiles.input.IHitTestable */ hitElementsAt(options:{context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root?:yfiles.view.ICanvasObjectGroup,filter?:(obj:yfiles.view.ICanvasObject)=>boolean}):yfiles.collections.IEnumerable; @@ -9166,10 +9556,10 @@ declare namespace system{ * Hit testing is performed using the {@link yfiles.view.ICanvasObjectDescriptor#getHitTestable} instance returned for each visible * {@link yfiles.view.ICanvasObject} in the current scene graph. The enumeration is performed lazily. *

    - * @param {yfiles.geometry.Point} location the coordinates to perform the hit test at - * @param {yfiles.view.ICanvasObjectGroup} [root=null] the root of the scene graph to use - * @param {function(yfiles.view.ICanvasObject): boolean} [filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. - * @returns {yfiles.collections.IEnumerable.} a live enumeration of the elements that are hit + * @param location the coordinates to perform the hit test at + * @param [root=null] the root of the scene graph to use + * @param [filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. + * @returns a live enumeration of the elements that are hit * @see yfiles.input.IHitTestable * @see yfiles.view.CanvasComponent#hitTestRadius */ @@ -9181,18 +9571,18 @@ declare namespace system{ * {@link yfiles.view.ICanvasObject} in the current scene graph. The enumeration is performed lazily. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Point} options.location the coordinates to perform the hit test at - * @param {yfiles.view.ICanvasObjectGroup} [options.root=null] the root of the scene graph to use - * @param {function(yfiles.view.ICanvasObject): boolean} [options.filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. - * @returns {yfiles.collections.IEnumerable.} a live enumeration of the elements that are hit + * @param options.location the coordinates to perform the hit test at + * @param [options.root=null] the root of the scene graph to use + * @param [options.filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. + * @returns a live enumeration of the elements that are hit * @see yfiles.input.IHitTestable * @see yfiles.view.CanvasComponent#hitTestRadius */ hitElementsAt(options:{location:yfiles.geometry.Point,root?:yfiles.view.ICanvasObjectGroup,filter?:(obj:yfiles.view.ICanvasObject)=>boolean}):yfiles.collections.IEnumerable; /** * Callback that is used by the default implementation of {@link yfiles.view.CanvasComponent#inputModeContext} to resolve {@link yfiles.graph.ILookup#lookup} calls. - * @param {yfiles.lang.Class} type The Type to query - * @returns {Object} The result of the query. + * @param type The Type to query + * @returns The result of the query. * @see yfiles.input.IInputModeContext * @protected */ @@ -9210,21 +9600,21 @@ declare namespace system{ * This method queries the descriptor for the {@link yfiles.input.IHitTestable} for the user object and returns the result of the * hit test query. If there is no IHitTestable returned by the descriptor this method returns false. *

    - * @param {yfiles.view.ICanvasObject} canvasObject the canvas object to query the bounds from - * @param {yfiles.geometry.Point} location the coordinates of the query in the world coordinate system - * @returns {boolean} whether the canvas object is hit at the given coordinates + * @param canvasObject the canvas object to query the bounds from + * @param location the coordinates of the query in the world coordinate system + * @returns whether the canvas object is hit at the given coordinates */ isHit(canvasObject:yfiles.view.ICanvasObject,location:yfiles.geometry.Point):boolean; /** * Converts view coordinates from the control's coordinate system to the document's coordinate system. - * @param {yfiles.geometry.Point} localPoint The coordinates to convert. - * @returns {yfiles.geometry.Point} The coordinates in the document's coordinate system. + * @param localPoint The coordinates to convert. + * @returns The coordinates in the document's coordinate system. */ localToGlobal(localPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -9234,7 +9624,7 @@ declare namespace system{ * This method will scroll the view in vertical direction. If the Shift key modifier has been pressed this method will * scroll in horizontal direction. *

    - * @param {yfiles.view.MouseEventArgs} evt the event describing the action + * @param evt the event describing the action * @see yfiles.view.CanvasComponent#mouseWheelBehavior * @see yfiles.view.CanvasComponent#mouseWheelScrollFactor * @protected @@ -9247,14 +9637,14 @@ declare namespace system{ * This method will adjust the current zoom level. If the Control key modifier has been pressed this method will keep the * world coordinates at the current mouse position, i.e. the zoom will not necessarily be into the center of the canvas. *

    - * @param {yfiles.view.MouseEventArgs} evt the event describing the action + * @param evt the event describing the action * @see yfiles.view.CanvasComponent#mouseWheelBehavior * @protected */ mouseWheelZoom(evt:yfiles.view.MouseEventArgs):void; /** * Raises the {@link yfiles.view.CanvasComponent#addPrepareRenderContextListener PrepareRenderContext}. - * @param {yfiles.view.PrepareRenderContextEventArgs} evt The event arguments to raise. + * @param evt The event arguments to raise. * @see yfiles.view.CanvasComponent#addPrepareRenderContextListener * @protected */ @@ -9277,8 +9667,8 @@ declare namespace system{ * Therefore, the given callback will be executed in sequence with previously added actions, e.g. the * {@link yfiles.view.CanvasComponent}'s invalidation. *

    - * @param {Function} callback The function that should be executed. - * @param {...Object} args The arguments with which the function should be called. + * @param callback The function that should be executed. + * @param args The arguments with which the function should be called. */ schedule(callback:Function,...args:Object[]):void; /** @@ -9288,10 +9678,10 @@ declare namespace system{ * area currently visible in the control does not encompass the content rect, the scrollbars will be made visible, unless * they are disabled. *

    - * @param {number} x - * @param {number} y - * @param {number} w - * @param {number} h + * @param x + * @param y + * @param w + * @param h * @see yfiles.view.CanvasComponent#contentRect * @see yfiles.view.CanvasComponent#horizontalScrollBarPolicy * @see yfiles.view.CanvasComponent#verticalScrollBarPolicy @@ -9308,14 +9698,14 @@ declare namespace system{ stopMouseCapture():void; /** * Converts world coordinates to view coordinates expressed in the control's coordinate system. - * @param {yfiles.geometry.Point} worldPoint the coordinates in the world coordinate system - * @returns {yfiles.geometry.Point} returns the coordinates in pixels relative to the controls upper left corner + * @param worldPoint the coordinates in the world coordinate system + * @returns returns the coordinates in pixels relative to the controls upper left corner */ toViewCoordinates(worldPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** * Converts view coordinates (expressed in the control's coordinate system) to world coordinates. - * @param {yfiles.geometry.Point} viewPoint the coordinates in pixels relative to the controls upper left corner - * @returns {yfiles.geometry.Point} returns the coordinates in the world coordinate system + * @param viewPoint the coordinates in pixels relative to the controls upper left corner + * @returns returns the coordinates in the world coordinate system */ toWorldCoordinates(viewPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** @@ -9324,8 +9714,8 @@ declare namespace system{ * This method will traverse all {@link yfiles.view.ICanvasObject#visible visible} elements in the scene graph and query their {@link yfiles.view.ICanvasObjectDescriptor#getBoundsProvider bounds} The resulting bounds will be * set to the content rectangle plus the provided margins. *

    - * @param {yfiles.geometry.Insets} [margins=null] - * @param {yfiles.view.ICanvasObjectGroup} [group=null] + * @param [margins=null] + * @param [group=null] * @see yfiles.view.IBoundsProvider * @see yfiles.view.CanvasComponent#contentRect */ @@ -9337,8 +9727,8 @@ declare namespace system{ * set to the content rectangle plus the provided margins. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Insets} [options.margins=null] - * @param {yfiles.view.ICanvasObjectGroup} [options.group=null] + * @param [options.margins=null] + * @param [options.group=null] * @see yfiles.view.IBoundsProvider * @see yfiles.view.CanvasComponent#contentRect */ @@ -9361,13 +9751,13 @@ declare namespace system{ updateVisual():void; /** * Sets the zoom level and view port center to the given values. - * @param {yfiles.geometry.Point} center the new center of the view port in world coordinates - * @param {number} zoom the new zoom level + * @param center the new center of the view port in world coordinates + * @param zoom the new zoom level */ zoomTo(center:yfiles.geometry.Point,zoom:number):void; /** * Sets the zoom level and view port center so that the given rectangle in world coordinates fits the viewport. - * @param {yfiles.geometry.Rect} bounds The coordinates of the rectangle to zoom to. + * @param bounds The coordinates of the rectangle to zoom to. */ zoomTo(bounds:yfiles.geometry.Rect):void; /** @@ -9409,11 +9799,6 @@ declare namespace system{ * @type {boolean} */ focused:boolean; - /** - * Gets or sets a value indicating whether this {@link yfiles.view.CanvasComponent} is enabled. - * @type {boolean} - */ - enabled:boolean; /** * Gets a value indicating whether the UI is right to left. * @type {boolean} @@ -9460,10 +9845,13 @@ declare namespace system{ */ editable:boolean; /** - * Determines the behavior of the mouse wheel. The behavior can be switched between {@link yfiles.view.MouseWheelBehaviors#ZOOM}, {@link yfiles.view.MouseWheelBehaviors#SCROLL} - * and {@link yfiles.view.MouseWheelBehaviors#NONE}. Additionally, this property can be configured to perform the action + * Determines the behavior of the mouse wheel. + *

    + * The behavior can be switched between {@link yfiles.view.MouseWheelBehaviors#ZOOM}, {@link yfiles.view.MouseWheelBehaviors#SCROLL} and + * {@link yfiles.view.MouseWheelBehaviors#NONE}. Additionally, this property can be configured to perform the action * {@link yfiles.view.MouseWheelBehaviors#ONLY_WHEN_FOCUSED only when the control is focused}. - * @default 1 + *

    + * @default yfiles.view.MouseWheelBehaviors.ZOOM * @type {yfiles.view.MouseWheelBehaviors} */ mouseWheelBehavior:yfiles.view.MouseWheelBehaviors; @@ -9476,16 +9864,6 @@ declare namespace system{ * @type {function(Object, yfiles.lang.EventArgs): boolean} */ centerZoomEventRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * Determines whether the mouse wheel should be used for zooming. - *

    - * If set to false this task can be performed by custom {@link yfiles.input.IInputMode} implementations using the {@link yfiles.view.CanvasComponent#addMouseWheelListener MouseWheel} - * event. - *

    - * @default true - * @type {boolean} - */ - autoMouseWheelZoom:boolean; /** * Specifies the visibility policy for the vertical scrollbar. *

    @@ -9494,7 +9872,7 @@ declare namespace system{ *

    * @see yfiles.input.MoveViewportInputMode * @see yfiles.view.CanvasComponent#horizontalScrollBarPolicy - * @default 1 + * @default yfiles.view.ScrollBarVisibility.AS_NEEDED * @type {yfiles.view.ScrollBarVisibility} */ verticalScrollBarPolicy:yfiles.view.ScrollBarVisibility; @@ -9506,7 +9884,7 @@ declare namespace system{ *

    * @see yfiles.input.MoveViewportInputMode * @see yfiles.view.CanvasComponent#verticalScrollBarPolicy - * @default 1 + * @default yfiles.view.ScrollBarVisibility.AS_NEEDED * @type {yfiles.view.ScrollBarVisibility} */ horizontalScrollBarPolicy:yfiles.view.ScrollBarVisibility; @@ -9531,13 +9909,13 @@ declare namespace system{ contentRect:yfiles.geometry.Rect; /** * Adds the given listener for the ContentRectChanged event that occurs when the {@link yfiles.view.CanvasComponent#contentRect content rectangle} has been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeContentRectChangedListener */ addContentRectChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the ContentRectChanged event that occurs when the {@link yfiles.view.CanvasComponent#contentRect content rectangle} has been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addContentRectChangedListener */ removeContentRectChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -9558,14 +9936,14 @@ declare namespace system{ /** * Adds the given listener for the FitContentViewMarginsChanged event that occurs when the {@link yfiles.view.CanvasComponent#fitContentViewMargins margins for the fit content operation} * have been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeFitContentViewMarginsChangedListener */ addFitContentViewMarginsChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the FitContentViewMarginsChanged event that occurs when the {@link yfiles.view.CanvasComponent#fitContentViewMargins margins for the fit content operation} * have been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addFitContentViewMarginsChangedListener */ removeFitContentViewMarginsChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -9578,7 +9956,7 @@ declare namespace system{ * If the mouse leaves this canvas control with the mouse button pressed, this event is deferred until the mouse button is * released. Thus, this event will not interfere with the typical mouse button event cycle. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseLeaveListener */ addMouseLeaveListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9591,7 +9969,7 @@ declare namespace system{ * If the mouse leaves this canvas control with the mouse button pressed, this event is deferred until the mouse button is * released. Thus, this event will not interfere with the typical mouse button event cycle. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseLeaveListener */ removeMouseLeaveListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9605,7 +9983,7 @@ declare namespace system{ * button state reported by the {@link yfiles.view.MouseEventArgs} does not include this button unless the browser supports the * property MouseEvent.buttons. See the Known Issues for more details. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseEnterListener */ addMouseEnterListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9619,7 +9997,7 @@ declare namespace system{ * button state reported by the {@link yfiles.view.MouseEventArgs} does not include this button unless the browser supports the * property MouseEvent.buttons. See the Known Issues for more details. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseEnterListener */ removeMouseEnterListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9633,7 +10011,7 @@ declare namespace system{ * the world coordinates to which the current mouse position maps change. E.g. this will happen if the zoom level or the * view point is changed. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseMoveListener */ addMouseMoveListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9647,7 +10025,7 @@ declare namespace system{ * the world coordinates to which the current mouse position maps change. E.g. this will happen if the zoom level or the * view point is changed. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseMoveListener */ removeMouseMoveListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9656,7 +10034,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseDownListener */ addMouseDownListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9665,7 +10043,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseDownListener */ removeMouseDownListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9675,7 +10053,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseDragListener */ addMouseDragListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9685,7 +10063,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseDragListener */ removeMouseDragListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9694,7 +10072,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseUpListener */ addMouseUpListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9703,7 +10081,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseUpListener */ removeMouseUpListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9712,7 +10090,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseLostCaptureListener */ addMouseLostCaptureListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9721,7 +10099,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseLostCaptureListener */ removeMouseLostCaptureListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9730,7 +10108,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseWheelListener */ addMouseWheelListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9739,7 +10117,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseWheelListener */ removeMouseWheelListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9751,7 +10129,7 @@ declare namespace system{ *

    * This happens if press and release happens at the same position. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseClickListener */ addMouseClickListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9763,7 +10141,7 @@ declare namespace system{ *

    * This happens if press and release happens at the same position. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseClickListener */ removeMouseClickListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9772,7 +10150,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeKeyDownListener */ addKeyDownListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; @@ -9781,7 +10159,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addKeyDownListener */ removeKeyDownListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; @@ -9790,7 +10168,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeKeyPressedListener */ addKeyPressedListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; @@ -9799,7 +10177,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addKeyPressedListener */ removeKeyPressedListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; @@ -9808,7 +10186,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeKeyUpListener */ addKeyUpListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; @@ -9817,31 +10195,31 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addKeyUpListener */ removeKeyUpListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; /** * Adds the given listener for the EditableChanged event that occurs when the {@link yfiles.view.CanvasComponent#editable} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeEditableChangedListener */ addEditableChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the EditableChanged event that occurs when the {@link yfiles.view.CanvasComponent#editable} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addEditableChangedListener */ removeEditableChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Adds the given listener for the ViewportChanged event that occurs when the {@link yfiles.view.CanvasComponent#viewport} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeViewportChangedListener */ addViewportChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the ViewportChanged event that occurs when the {@link yfiles.view.CanvasComponent#viewport} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addViewportChangedListener */ removeViewportChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -9850,7 +10228,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchDownListener */ addTouchDownListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9859,7 +10237,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchDownListener */ removeTouchDownListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9868,7 +10246,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchUpListener */ addTouchUpListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9877,7 +10255,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchUpListener */ removeTouchUpListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9886,7 +10264,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchMoveListener */ addTouchMoveListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9895,7 +10273,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchMoveListener */ removeTouchMoveListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9904,7 +10282,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchEnterListener */ addTouchEnterListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9914,7 +10292,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchEnterListener */ removeTouchEnterListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9923,7 +10301,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchLeaveListener */ addTouchLeaveListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9933,7 +10311,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchLeaveListener */ removeTouchLeaveListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9942,7 +10320,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchLostCaptureListener */ addTouchLostCaptureListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9951,7 +10329,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchLostCaptureListener */ removeTouchLostCaptureListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9965,7 +10343,7 @@ declare namespace system{ *

    * This happens if down and up happens at the same position. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchClickListener */ addTouchClickListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9979,7 +10357,7 @@ declare namespace system{ *

    * This happens if down and up happens at the same position. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchClickListener */ removeTouchClickListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9993,7 +10371,7 @@ declare namespace system{ * This happens if the finger is held in the same position for the duration specified in {@link yfiles.view.CanvasComponent#longPressTime} after a * {@link yfiles.view.CanvasComponent#addTouchDownListener TouchDown}. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchLongPressListener */ addTouchLongPressListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -10007,7 +10385,7 @@ declare namespace system{ * This happens if the finger is held in the same position for the duration specified in {@link yfiles.view.CanvasComponent#longPressTime} after a * {@link yfiles.view.CanvasComponent#addTouchDownListener TouchDown}. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchLongPressListener */ removeTouchLongPressListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -10021,6 +10399,7 @@ declare namespace system{ currentTouchDevices:yfiles.collections.IListEnumerable; /** * Gets a value indicating whether at least one finger is on the touch screen. + * @returns true if there is at least one {@link touch device} that is down on the screen. * @type {boolean} */ isTouchDeviceDown:boolean; @@ -10046,14 +10425,14 @@ declare namespace system{ lastEventLocation:yfiles.geometry.Point; /** * Adds the given listener for the InputModeChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputMode} property is changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#inputMode * @see yfiles.view.CanvasComponent#removeInputModeChangedListener */ addInputModeChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the InputModeChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputMode} property is changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#inputMode * @see yfiles.view.CanvasComponent#addInputModeChangedListener */ @@ -10077,13 +10456,13 @@ declare namespace system{ hitTestRadius:number; /** * Adds the given listener for the HitTestRadiusChanged event that occurs when the {@link yfiles.view.CanvasComponent#hitTestRadius} property changes. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeHitTestRadiusChangedListener */ addHitTestRadiusChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the HitTestRadiusChanged event that occurs when the {@link yfiles.view.CanvasComponent#hitTestRadius} property changes. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addHitTestRadiusChangedListener */ removeHitTestRadiusChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10107,13 +10486,13 @@ declare namespace system{ zoom:number; /** * Adds the given listener for the ZoomChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#zoom} property has been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeZoomChangedListener */ addZoomChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the ZoomChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#zoom} property has been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addZoomChangedListener */ removeZoomChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10121,21 +10500,21 @@ declare namespace system{ * Gets or sets the minimum zoom factor for this {@link yfiles.view.CanvasComponent}. *

    * This property sets a lower bound for the allowed values of the {@link yfiles.view.CanvasComponent#zoom} property. If this property is written, the canvas will - * zoom to the new value while keeping the center of view at the same world coordinates. The default is 0.01d but values as - * small as 0.0000001d are possible. + * zoom to the new value while keeping the center of view at the same world coordinates. The default is 0.0001 but values + * as small as 0.0000001d are possible. *

    * @see yfiles.view.CanvasComponent#zoom * @see yfiles.view.CanvasComponent#maximumZoom - * @default 0.01 + * @default 0.0001 * @type {number} */ minimumZoom:number; /** - * Get or set the maximum zoom level that is valid for {@link yfiles.view.CanvasComponent#zoom}. + * Gets or sets the maximum zoom value. *

    - * Default value is 1000d + * Default value is 100000 *

    - * @default 1000.0 + * @default 100000.0 * @type {number} */ maximumZoom:number; @@ -10152,6 +10531,14 @@ declare namespace system{ viewPoint:yfiles.geometry.Point; /** * Returns the size of the usable area in which the graph will be displayed. + *

    + * This value excludes the scroll bars. + *

    + * @type {yfiles.geometry.Size} + */ + innerSize:yfiles.geometry.Size; + /** + * Returns the size of the HTML element. * @type {yfiles.geometry.Size} */ size:yfiles.geometry.Size; @@ -10162,35 +10549,27 @@ declare namespace system{ * @type {yfiles.geometry.Rect} */ viewport:yfiles.geometry.Rect; - /** - * Yields the size of the content of this control. - *

    - * This size corresponds to the size of the control without the scroll bars. - *

    - * @type {yfiles.geometry.Size} - */ - innerSize:yfiles.geometry.Size; /** * Adds the given listener for the GotFocus event that occurs when the Control got the focus. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeGotFocusListener */ addGotFocusListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the GotFocus event that occurs when the Control got the focus. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addGotFocusListener */ removeGotFocusListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Adds the given listener for the LostFocus event that occurs when the Control lost the focus. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeLostFocusListener */ addLostFocusListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the LostFocus event that occurs when the Control lost the focus. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addLostFocusListener */ removeLostFocusListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10223,13 +10602,13 @@ declare namespace system{ autoDrag:boolean; /** * Adds the given listener for the AutoDragChanged event that occurs when the {@link yfiles.view.CanvasComponent#autoDrag} property is changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeAutoDragChangedListener */ addAutoDragChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the AutoDragChanged event that occurs when the {@link yfiles.view.CanvasComponent#autoDrag} property is changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addAutoDragChangedListener */ removeAutoDragChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10248,13 +10627,13 @@ declare namespace system{ visualCaching:yfiles.view.VisualCachingPolicy; /** * Adds the given listener for the UpdatedVisual event that occurs after the {@link yfiles.view.CanvasComponent#updateVisual visual tree has been updated}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeUpdatedVisualListener */ addUpdatedVisualListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the UpdatedVisual event that occurs after the {@link yfiles.view.CanvasComponent#updateVisual visual tree has been updated}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addUpdatedVisualListener */ removeUpdatedVisualListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10262,7 +10641,7 @@ declare namespace system{ * Adds the given listener for the UpdatingVisual event. *
    * Event that will be triggered before the {@link yfiles.view.CanvasComponent#updateVisual visual tree is updated}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeUpdatingVisualListener */ addUpdatingVisualListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10270,7 +10649,7 @@ declare namespace system{ * Removes the given listener for the UpdatingVisual event. *
    * Event that will be triggered before the {@link yfiles.view.CanvasComponent#updateVisual visual tree is updated}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addUpdatingVisualListener */ removeUpdatingVisualListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10298,13 +10677,13 @@ declare namespace system{ contentGroup:yfiles.view.ICanvasObjectGroup; /** * Adds the given listener for the ContentGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#contentGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeContentGroupChangedListener */ addContentGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the ContentGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#contentGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addContentGroupChangedListener */ removeContentGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10330,25 +10709,25 @@ declare namespace system{ focusGroup:yfiles.view.ICanvasObjectGroup; /** * Adds the given listener for the FocusGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#focusGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeFocusGroupChangedListener */ addFocusGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the FocusGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#focusGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addFocusGroupChangedListener */ removeFocusGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Adds the given listener for the HighlightGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#highlightGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeHighlightGroupChangedListener */ addHighlightGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the HighlightGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#highlightGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addHighlightGroupChangedListener */ removeHighlightGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10368,13 +10747,13 @@ declare namespace system{ selectionGroup:yfiles.view.ICanvasObjectGroup; /** * Adds the given listener for the SelectionGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#selectionGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeSelectionGroupChangedListener */ addSelectionGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the SelectionGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#selectionGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addSelectionGroupChangedListener */ removeSelectionGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10396,13 +10775,13 @@ declare namespace system{ inputModeGroup:yfiles.view.ICanvasObjectGroup; /** * Adds the given listener for the InputModeGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputModeGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeInputModeGroupChangedListener */ addInputModeGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the InputModeGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputModeGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addInputModeGroupChangedListener */ removeInputModeGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10423,13 +10802,13 @@ declare namespace system{ backgroundGroup:yfiles.view.ICanvasObjectGroup; /** * Adds the given listener for the BackgroundGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#backgroundGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeBackgroundGroupChangedListener */ addBackgroundGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the BackgroundGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#backgroundGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addBackgroundGroupChangedListener */ removeBackgroundGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10510,9 +10889,9 @@ declare namespace system{ */ longPressTime:yfiles.lang.TimeSpan; /** - * Gets or sets the area in view coordinates the mouse may stay in before a movement is considered a drag. If the mouse is - * moved within this area longer than {@link yfiles.view.CanvasComponent#dragTime} milliseconds, the movement will be considered a drag, nevertheless. + * Gets or sets the area in view coordinates the mouse may stay in before a movement is considered a drag. *

    + * If the mouse is moved within this area longer than {@link yfiles.view.CanvasComponent#dragTime} milliseconds, the movement will be considered a drag, nevertheless. * The larger the area the later a mouse movement will be recognized as a drag. This influences the click-sensitivity, * since a mouse button release is only considered a click if there was no drag since the last mouse button press. The * default value is (5, 5). @@ -10556,14 +10935,14 @@ declare namespace system{ /** * Adds the given listener for the MouseWheelZoomFactorChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#mouseWheelZoomFactor} property has been * changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseWheelZoomFactorChangedListener */ addMouseWheelZoomFactorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the MouseWheelZoomFactorChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#mouseWheelZoomFactor} property has * been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseWheelZoomFactorChangedListener */ removeMouseWheelZoomFactorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10588,14 +10967,14 @@ declare namespace system{ /** * Adds the given listener for the MouseWheelScrollFactorChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#mouseWheelScrollFactor} property has been * changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseWheelScrollFactorChangedListener */ addMouseWheelScrollFactorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the MouseWheelScrollFactorChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#mouseWheelScrollFactor} property has * been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseWheelScrollFactorChangedListener */ removeMouseWheelScrollFactorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10614,7 +10993,7 @@ declare namespace system{ * Adds the given listener for the PrepareRenderContext event. *
    * Event that will be triggered before the visual tree is painted to prepare the {@link yfiles.view.IRenderContext}. - * @param {function(Object, yfiles.view.PrepareRenderContextEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removePrepareRenderContextListener */ addPrepareRenderContextListener(listener:(sender:Object,evt:yfiles.view.PrepareRenderContextEventArgs)=>void):void; @@ -10622,7 +11001,7 @@ declare namespace system{ * Removes the given listener for the PrepareRenderContext event. *
    * Event that will be triggered before the visual tree is painted to prepare the {@link yfiles.view.IRenderContext}. - * @param {function(Object, yfiles.view.PrepareRenderContextEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addPrepareRenderContextListener */ removePrepareRenderContextListener(listener:(sender:Object,evt:yfiles.view.PrepareRenderContextEventArgs)=>void):void; @@ -10640,13 +11019,13 @@ declare namespace system{ inputModeContext:yfiles.input.IInputModeContext; /** * Adds the given listener for the InputModeContextChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputModeContext} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeInputModeContextChangedListener */ addInputModeContextChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the InputModeContextChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputModeContext} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addInputModeContextChangedListener */ removeInputModeContextChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10690,7 +11069,7 @@ declare namespace system{ static sizeChangedTimerInterval:number; /** * Adds the given listener for the SizeChanged event that occurs when the size of this Control is changed. - * @param {function(Object, yfiles.view.SizeChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#sizeChangedDetection * @see yfiles.view.SizeChangedDetectionMode * @see yfiles.view.CanvasComponent#removeSizeChangedListener @@ -10698,7 +11077,7 @@ declare namespace system{ addSizeChangedListener(listener:(sender:Object,evt:yfiles.view.SizeChangedEventArgs)=>void):void; /** * Removes the given listener for the SizeChanged event that occurs when the size of this Control is changed. - * @param {function(Object, yfiles.view.SizeChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#sizeChangedDetection * @see yfiles.view.SizeChangedDetectionMode * @see yfiles.view.CanvasComponent#addSizeChangedListener @@ -10738,40 +11117,39 @@ declare namespace system{ * calculated using {@link yfiles.view.SvgExport#calculateScaleForWidth} and {@link yfiles.view.SvgExport#calculateScaleForHeight}. * * - * @class yfiles.view.SvgExport + * @class */ export interface SvgExport extends Object{} export class SvgExport { /** * Creates a new {@link yfiles.view.SvgExport} instance for the given world bounds and scale. - * @param {yfiles.geometry.Rect} worldBounds the bounds of the content to export, see {@link yfiles.view.SvgExport#worldBounds} - * @param {number} [scale=1.0] the scale, see {@link yfiles.view.SvgExport#scale} - * @constructor + * @param worldBounds the bounds of the content to export, see {@link #worldBounds} + * @param [scale=1.0] the scale, see {@link #scale} */ constructor(worldBounds:yfiles.geometry.Rect,scale?:number); /** - * Calculates the {@link yfiles.view.SvgExport#scale} value to apply in order to achieve the given target height (without {@link yfiles.view.SvgExport#margin}). + * Calculates the value to set the {@link yfiles.view.SvgExport#scale} to in order to achieve the given target height (without {@link yfiles.view.SvgExport#margins}). *

    * This method returns 1.0 if the {@link yfiles.view.SvgExport#worldBounds} height is zero or negative. *

    - * @param {number} height the height of the target image - * @returns {number} the scale value to use + * @param height the height of the target image + * @returns the scale value to use */ calculateScaleForHeight(height:number):number; /** - * Calculates the {@link yfiles.view.SvgExport#scale} value to apply in order to achieve the given target width (without {@link yfiles.view.SvgExport#margin}). + * Calculates the value to set the {@link yfiles.view.SvgExport#scale} to in order to achieve the given target width (without {@link yfiles.view.SvgExport#margins}). *

    * This method returns 1.0 if the {@link yfiles.view.SvgExport#worldBounds} width is zero or negative. *

    - * @param {number} width the width of the target image - * @returns {number} the scale value to use + * @param width the width of the target image + * @returns the scale value to use */ calculateScaleForWidth(width:number):number; /** * Returns an initialized {@link yfiles.view.IRenderContext} and changes the given transform and the clip bounds such that a part * of the given {@link yfiles.view.CanvasComponent} instance can be exported to an image. - * @param {yfiles.view.CanvasComponent} canvas The {@link yfiles.view.CanvasComponent} instance to export. - * @returns {yfiles.view.IRenderContext} An {@link yfiles.view.IRenderContext} to use. + * @param canvas The {@link } instance to export. + * @returns An {@link } to use. */ createRenderContext(canvas:yfiles.view.CanvasComponent):yfiles.view.IRenderContext; /** @@ -10779,8 +11157,8 @@ declare namespace system{ *

    * This method escapes non-Latin1 characters, does a base64 encoding, and returns the result as data URI. *

    - * @param {string} svgXml A string containing the SVG document. - * @returns {string} A data URI of the SVG document. + * @param svgXml A string containing the SVG document. + * @returns A data URI of the SVG document. * @static */ static encodeSvgDataUrl(svgXml:string):string; @@ -10790,8 +11168,8 @@ declare namespace system{ * The asynchronous version of this method, * {@link yfiles.view.SvgExport#exportSvgAsync}, is capable of encoding and inlining images that are embedded in the SVG. *

    - * @param {yfiles.view.CanvasComponent} canvas The canvas to be exported. - * @returns {Element} An SVG element with the canvas contents. + * @param canvas The canvas to be exported. + * @returns An SVG element with the canvas contents. */ exportSvg(canvas:yfiles.view.CanvasComponent):Element; /** @@ -10804,8 +11182,8 @@ declare namespace system{ * SVG image elements are replaced with a copy of the referenced SVG element if {@link yfiles.view.SvgExport#inlineSvgImages} is set to true. Image encoding can be * controlled for each image individually by overwriting the predicate method {@link yfiles.view.SvgExport#shouldInlineSvgImage}. *

    - * @param {yfiles.view.CanvasComponent} canvas The canvas to be exported. - * @returns {Promise.} + * @param canvas The canvas to be exported. + * @returns */ exportSvgAsync(canvas:yfiles.view.CanvasComponent):Promise; /** @@ -10813,14 +11191,14 @@ declare namespace system{ *

    * This method adds SVG namespace and xlink namespace declarations and replaces href with xlink:href. *

    - * @param {Element} svg The SVG element to export. - * @returns {string} A string representation of the SVG. + * @param svg The SVG element to export. + * @returns A string representation of the SVG. * @static */ static exportSvgString(svg:Element):string; /** * Returns a suitable clip to use for the visual for this exporter. - * @returns {yfiles.geometry.Rect} The clip. + * @returns The clip. */ getClip():yfiles.geometry.Rect; /** @@ -10830,9 +11208,9 @@ declare namespace system{ * the x, y, width, height and preserveAspectRatio attributes from the original image element to the imported SVG element. * In addition, the SVG is wrapped in a g element to support the transform of the original image. *

    - * @param {Element} importedSvg The root element of the SVG file that's referenced by the original image element. - * @param {SVGImageElement} originalImage The original image element that will be replaced. - * @returns {Element} The element that's actually placed in the DOM as a replacement of the originalImage. + * @param importedSvg The root element of the SVG file that's referenced by the original image element. + * @param originalImage The original image element that will be replaced. + * @returns The element that's actually placed in the DOM as a replacement of the originalImage. * @see yfiles.view.SvgExport#inlineSvgImages * @see yfiles.view.SvgExport#exportSvgAsync * @see yfiles.view.SvgExport#shouldInlineSvgImage @@ -10844,8 +11222,8 @@ declare namespace system{ *

    * This implementation returns the value of {@link yfiles.view.SvgExport#encodeImagesBase64} for all values of image. *

    - * @param {SVGImageElement} image The image to be encoded. - * @returns {boolean} Whether the given image should be encoded. + * @param image The image to be encoded. + * @returns Whether the given image should be encoded. * @protected */ shouldEncodeImageBase64(image:SVGImageElement):boolean; @@ -10854,8 +11232,8 @@ declare namespace system{ *

    * This implementation returns the value of {@link yfiles.view.SvgExport#inlineSvgImages} for all values of image. *

    - * @param {SVGImageElement} image The image to be inlined. - * @returns {boolean} Whether the given image should be inlined. + * @param image The image to be inlined. + * @returns Whether the given image should be inlined. * @protected */ shouldInlineSvgImage(image:SVGImageElement):boolean; @@ -10897,14 +11275,14 @@ declare namespace system{ *

    * @type {yfiles.geometry.Insets} */ - margin:yfiles.geometry.Insets; + margins:yfiles.geometry.Insets; /** - * Gets the resulting width of the target image with respect to {@link yfiles.view.SvgExport#worldBounds}, {@link yfiles.view.SvgExport#scale} and {@link yfiles.view.SvgExport#margin}. + * Gets the resulting width of the target image with respect to {@link yfiles.view.SvgExport#worldBounds}, {@link yfiles.view.SvgExport#scale} and {@link yfiles.view.SvgExport#margins}. * @type {number} */ viewWidth:number; /** - * Gets the resulting height of the target image with respect to {@link yfiles.view.SvgExport#worldBounds}, {@link yfiles.view.SvgExport#scale} and {@link yfiles.view.SvgExport#margin}. + * Gets the resulting height of the target image with respect to {@link yfiles.view.SvgExport#worldBounds}, {@link yfiles.view.SvgExport#scale} and {@link yfiles.view.SvgExport#margins}. * @type {number} */ viewHeight:number; @@ -10942,27 +11320,26 @@ declare namespace system{ * This class is used internally by {@link yfiles.view.CanvasComponent} and operates on instances of {@link yfiles.view.ISvgDefsCreator}. *

    * @see yfiles.view.CanvasComponent#svgDefsManager - * @class yfiles.view.SvgDefsManager + * @class */ export interface SvgDefsManager extends Object{} export class SvgDefsManager { /** * Initializes a new instance of the {@link yfiles.view.SvgDefsManager} class. - * @param {SVGDefsElement} defsElement The defs element of the svg document that will be managed by this instance. - * @constructor + * @param defsElement The defs element of the svg document that will be managed by this instance. */ constructor(defsElement:SVGDefsElement); /** * Triggers the clean up for svg defs on the provided control. - * @param {yfiles.view.CanvasComponent} canvas + * @param canvas */ cleanupDefs(canvas:yfiles.view.CanvasComponent):void; /** - * Generates an id that is globally unique among all {@link yfiles.view.SvgDefsManager} instances. + * Generates an ID that is globally unique among all {@link yfiles.view.SvgDefsManager} instances. *

    - * This id should be used for the "id" attribute of DOM nodes. + * This ID should be used for the "id" attribute of DOM nodes. *

    - * @returns {string} A globally unique id. + * @returns A globally unique ID. */ generateUniqueDefsId():string; /** @@ -10974,7 +11351,7 @@ declare namespace system{ */ cleanupTimerInterval:yfiles.lang.TimeSpan; /** - * Gets or sets the prefix to use for the {@link yfiles.view.SvgDefsManager#generateUniqueDefsId unique ids}. + * Gets or sets the prefix to use for the {@link yfiles.view.SvgDefsManager#generateUniqueDefsId unique IDs}. *

    * By default this is ygc<number> *

    @@ -10988,6 +11365,468 @@ declare namespace system{ defs:SVGDefsElement; static $class:yfiles.lang.Class; } + /** + * A component for displaying and editing an {@link yfiles.graph.IGraph}. + *

    + * This is a specialized {@link yfiles.view.CanvasComponent} that can hold, display, and edit an {@link yfiles.graph.IGraph} instance. It + * provides access to the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphComponent#selection} instances. + *

    + *

    + * This class has bindings for the following {@link yfiles.input.ICommand}s. + *

    + *
      + *
    • {@link yfiles.input.ICommand#FIT_GRAPH_BOUNDS} that invokes {@link yfiles.view.GraphComponent#fitGraphBounds}
    • + *
    • {@link yfiles.input.ICommand#SET_CURRENT_ITEM} for setting the {@link yfiles.view.GraphComponent#currentItem}
    • + *
    • {@link yfiles.input.ICommand#ZOOM_TO_CURRENT_ITEM} for adjusting the {@link yfiles.view.CanvasComponent#viewport} to the {@link yfiles.view.GraphComponent#currentItem}
    • + *
    + *

    + * The {@link yfiles.input.ICommand#ZOOM_TO_CURRENT_ITEM} is enabled, if {@link yfiles.view.CanvasComponent#navigationCommandsEnabled} is true. + *

    + *

    + * The components that can be used to display and edit a model are discussed in the section + * {@link @DGUIDE_PREFIX@/view_graphcontrol.html The Component for Displaying Graphs}. + *

    + *

    Related demos:

    + *
      + *
    • Demo: GraphViewer, Demo.yFiles.Graph.Viewer
    • + *
    • Demo: SimpleEditorForm, Demo.yFiles.Graph.SimpleEditor
    • + *
    + * @class + * @extends {yfiles.view.CanvasComponent} + */ + export interface GraphComponent extends yfiles.view.CanvasComponent{} + export class GraphComponent { + /** + * Creates a new instance of {@link yfiles.view.GraphComponent} using the div element that is specified by the selector. + *

    + * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default + * values upon first access. Thus this instance can be used right away without any further initialization. + *

    + * @param selector The CSS selector or id for an existing div element + */ + constructor(selector:string); + /** + * Creates a new instance of {@link yfiles.view.GraphComponent} using the div element that is specified by the selector. + *

    + * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default + * values upon first access. Thus this instance can be used right away without any further initialization. + *

    + * @param {Object} options The parameters to pass. + * @param options.selector The CSS selector or id for an existing div element + * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. + *

    + * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. + *

    + * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. + *

    + * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. + *

    + * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. + *

    + */ + constructor(options:{selector:string,inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); + /** + * Creates a new instance of the {@link yfiles.view.GraphComponent} in the given div element. + *

    + * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default + * values upon first access. Thus this instance can be used right away without any further initialization. + *

    + * @param div The existing div element to use for rendering the canvas into. + */ + constructor(div:HTMLDivElement); + /** + * Creates a new instance of the {@link yfiles.view.GraphComponent} in the given div element. + *

    + * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default + * values upon first access. Thus this instance can be used right away without any further initialization. + *

    + * @param {Object} options The parameters to pass. + * @param options.div The existing div element to use for rendering the canvas into. + * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. + *

    + * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. + *

    + * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. + *

    + * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. + *

    + * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. + *

    + */ + constructor(options:{div:HTMLDivElement,inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); + /** + * Creates a new instance of the {@link yfiles.view.GraphComponent}. + *

    + * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default + * values upon first access. Thus this instance can be used right away without any further initialization. This constructor + * creates a new div element that needs to be manually added to the DOM. + *

    + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. + *

    + * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. + *

    + * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. + *

    + * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. + *

    + * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. + *

    + */ + constructor(options?:{inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); + /** + * Factory method for the {@link yfiles.view.GraphComponent#focusIndicatorManager} property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#focusIndicatorManager} property. + *

    + * @returns a new instance of {@link }. + * @protected + */ + createFocusIndicatorManager():yfiles.view.FocusIndicatorManager; + /** + * Factory method for the Graph property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#graph} property. + *

    + * @returns a new instance of {@link } + * @protected + */ + createGraph():yfiles.graph.IGraph; + /** + * Creates the default instance to use if no custom instance has been set. + * @returns A default {@link } instance. + * @protected + */ + createGraphClipboard():yfiles.graph.GraphClipboard; + /** + * Factory method for the {@link yfiles.view.GraphComponent#graphModelManager} property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#graphModelManager} property. + *

    + * @returns a new instance of {@link }. + * @protected + */ + createGraphModelManager():yfiles.view.GraphModelManager; + /** + * Factory method for the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. + *

    + * @returns a new instance of {@link #highlightIndicatorManager}. + * @protected + */ + createHighlightIndicatorManager():yfiles.view.HighlightIndicatorManager; + /** + * Factory method for the Selection property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#selection} property. + *

    + * @returns a new instance of {@link } + * @protected + */ + createSelection():yfiles.view.IGraphSelection; + /** + * Factory method for the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. + *

    + * @returns a new instance of {@link } + * @protected + */ + createSelectionIndicatorManager():yfiles.view.SelectionIndicatorManager; + /** + * {@link yfiles.view.CanvasComponent#updateContentRect Updates the content rectangle} for the {@link yfiles.view.CanvasComponent#contentGroup} considering the provided insets and + * {@link yfiles.view.CanvasComponent#fitContent adjusts the viewport to encompass the contents}. + * @param [insets=null] + */ + fitGraphBounds(insets?:yfiles.geometry.Insets):void; + /** + * Convenience method that runs a layouter on the graph of a given graph control and animates the transition. + *

    + * An event is called once the animation has finished. + *

    + *

    + * The implementation simply delegates to a properly configured instance of {@link yfiles.layout.LayoutExecutor}. In addition to + * the default configuration, it enables {@link yfiles.layout.LayoutExecutor#animateViewport}, {@link yfiles.layout.LayoutExecutor#easedAnimation}, and {@link yfiles.layout.LayoutExecutor#updateContentRect}. For more fine-grained control of the animation, use {@link yfiles.layout.LayoutExecutor} + * directly. + *

    + * @param layout + * @param [morphDuration=null] + * @param [layoutData=null] + * @returns + */ + morphLayout(layout:yfiles.layout.ILayoutAlgorithm,morphDuration?:yfiles.lang.TimeSpan,layoutData?:yfiles.layout.LayoutData):Promise; + /** + * Convenience method that runs a layouter on the graph of a given graph control and animates the transition. + *

    + * An event is called once the animation has finished. + *

    + *

    + * The implementation simply delegates to a properly configured instance of {@link yfiles.layout.LayoutExecutor}. In addition to + * the default configuration, it enables {@link yfiles.layout.LayoutExecutor#animateViewport}, {@link yfiles.layout.LayoutExecutor#easedAnimation}, and {@link yfiles.layout.LayoutExecutor#updateContentRect}. For more fine-grained control of the animation, use {@link yfiles.layout.LayoutExecutor} + * directly. + *

    + * @param {Object} options The parameters to pass. + * @param options.layout + * @param [options.morphDuration=null] + * @param [options.layoutData=null] + * @returns + */ + morphLayout(options:{layout:yfiles.layout.ILayoutAlgorithm,morphDuration?:yfiles.lang.TimeSpan,layoutData?:yfiles.layout.LayoutData}):Promise; + /** + * Gets or sets the 'current' item. + * @default null + * @type {yfiles.graph.IModelItem} + */ + currentItem:yfiles.graph.IModelItem; + /** + * Adds the given listener for the CurrentItemChanged event that occurs when the {@link yfiles.view.GraphComponent#currentItem} property has changed its value. + * @param listener The listener to add. + * @see yfiles.view.GraphComponent#removeCurrentItemChangedListener + */ + addCurrentItemChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Removes the given listener for the CurrentItemChanged event that occurs when the {@link yfiles.view.GraphComponent#currentItem} property has changed its value. + * @param listener The listener to remove. + * @see yfiles.view.GraphComponent#addCurrentItemChangedListener + */ + removeCurrentItemChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createSelectionIndicatorManager} + * will be called. + *

    + * @type {yfiles.view.SelectionIndicatorManager.} + */ + selectionIndicatorManager:yfiles.view.SelectionIndicatorManager; + /** + * Gets or sets the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createHighlightIndicatorManager} + * will be called. + *

    + * @type {yfiles.view.HighlightIndicatorManager.} + */ + highlightIndicatorManager:yfiles.view.HighlightIndicatorManager; + /** + * Gets or sets the {@link yfiles.view.GraphComponent#focusIndicatorManager} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createFocusIndicatorManager} + * will be called. + *

    + * @type {yfiles.view.FocusIndicatorManager.} + */ + focusIndicatorManager:yfiles.view.FocusIndicatorManager; + /** + * Gets or sets the {@link yfiles.view.GraphComponent#graphModelManager} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createGraphModelManager} + * will be called. + *

    + * @type {yfiles.view.GraphModelManager} + */ + graphModelManager:yfiles.view.GraphModelManager; + /** + * Gets or sets the graph that is displayed in this control. + *

    + * Normally the {@link yfiles.view.GraphSelection} property must be adjusted accordingly if the graph instance is replaced. Also + * depending on the {@link yfiles.input.IInputMode} implementation the instances used in this component might need to be replaced + * or adjusted, too. If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createGraph} + * will be called. + *

    + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * Adds the given listener for the GraphChanged event that occurs when the {@link yfiles.view.GraphComponent#graph} property has been changed. + * @param listener The listener to add. + * @see yfiles.view.GraphComponent#removeGraphChangedListener + */ + addGraphChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GraphChanged event that occurs when the {@link yfiles.view.GraphComponent#graph} property has been changed. + * @param listener The listener to remove. + * @see yfiles.view.GraphComponent#addGraphChangedListener + */ + removeGraphChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Gets or sets the selection model that is used for this control. + *

    + * The selection model instance needs to be adjusted, normally if the {@link yfiles.view.GraphComponent#graph} instance is changed. If the field has not yet been + * initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createSelection} will be called. + *

    + * @type {yfiles.view.IGraphSelection} + */ + selection:yfiles.view.IGraphSelection; + /** + * Gets or sets the {@link yfiles.graph.GraphClipboard} associated with this control. + *

    + * If no instance has been configured with this control, a default implementation will be used. + *

    + * @type {yfiles.graph.GraphClipboard} + */ + clipboard:yfiles.graph.GraphClipboard; + static $class:yfiles.lang.Class; + } + /** + * Convenience component implementation that shows an overview of an {@link yfiles.graph.IGraph} contained in another {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * This component uses a {@link yfiles.view.GraphOverviewComponent#graphVisualCreator} to display the graph in a preview mode and an {@link yfiles.view.GraphOverviewComponent#overviewInputMode} to allow for easily navigating in the {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + *

    Related demos:

    + *
      + *
    • Demo: SimpleEditorForm, Demo.yFiles.Graph.SimpleEditor
    • + *
    + * @class + * @extends {yfiles.view.CanvasComponent} + */ + export interface GraphOverviewComponent extends yfiles.view.CanvasComponent{} + export class GraphOverviewComponent { + /** + * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is specified by the selector and + * that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param [graphComponent=null] The {@link #graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. + * @param selector The CSS selector or id for an existing div element + */ + constructor(selector:string,graphComponent?:yfiles.view.GraphComponent); + /** + * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is specified by the selector and + * that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param {Object} options The parameters to pass. + * @param [options.graphComponent=null] The {@link #graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. + * @param options.selector The CSS selector or id for an existing div element + * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. + *

    + * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. + *

    + */ + constructor(options:{selector:string,graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); + /** + * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is optionally bound to the + * provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param div The div element to use for holding the canvas. + * @param [graphComponent=null] The optional graph control to {@link #graphComponent bind} this instance to. If omitted, the property needs to be set to initialize the + * component. + */ + constructor(div:HTMLDivElement,graphComponent?:yfiles.view.GraphComponent); + /** + * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is optionally bound to the + * provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param {Object} options The parameters to pass. + * @param options.div The div element to use for holding the canvas. + * @param [options.graphComponent=null] The optional graph control to {@link #graphComponent bind} this instance to. If omitted, the property needs to be set to initialize the + * component. + * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. + *

    + * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. + *

    + */ + constructor(options:{div:HTMLDivElement,graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); + /** + * Creates a new instance that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * This constructor creates a new {@link yfiles.view.CanvasComponent#div} element that needs to be added to the DOM manually. If no graphControl is provided, in + * order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param [graphComponent=null] The {@link #graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. + */ + constructor(graphComponent?:yfiles.view.GraphComponent); + /** + * Creates a new instance that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * This constructor creates a new {@link yfiles.view.CanvasComponent#div} element that needs to be added to the DOM manually. If no graphControl is provided, in + * order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param {Object} options The parameters to pass. + * @param [options.graphComponent=null] The {@link #graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. + * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. + *

    + * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. + *

    + */ + constructor(options:{graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); + /** + * Factory method that creates the {@link yfiles.view.IVisualCreator} that renders the preview of the graph in a HTML canvas + * element. + * @param graph The graph to draw. + * @returns An {@link } that creates HTML canvas rendering. + * @protected + */ + createCanvasVisualCreator(graph:yfiles.graph.IGraph):yfiles.view.IVisualCreator; + /** + * Factory method that creates the {@link yfiles.view.IVisualCreator} that renders the preview of the graph in SVG. + * @param graph The graph to draw. + * @returns An {@link } that creates SVG. + * @protected + */ + createSvgVisualCreator(graph:yfiles.graph.IGraph):yfiles.view.IVisualCreator; + /** + * Gets or sets a value indicating whether the graph is rendered using SVG rendering. + * @default false + * @type {boolean} + */ + svgRendering:boolean; + /** + * Gets the {@link yfiles.styles.GraphOverviewSvgVisualCreator} that is used to render the over view graph. + * @type {yfiles.view.IVisualCreator} + */ + graphVisualCreator:yfiles.view.IVisualCreator; + /** + * Gets or sets the {@link yfiles.input.OverviewInputMode} that is used to navigate the client control. + *

    + * Setting this property will automatically update the {@link yfiles.input.OverviewInputMode#canvasComponent} property of the new {@link yfiles.input.OverviewInputMode}. + *

    + *

    + * This property is merely a convenience alias for the {@link yfiles.view.CanvasComponent#inputMode} property. Setting either this property or the {@link yfiles.view.CanvasComponent#inputMode} property has the + * same effect if the input mode is an {@link yfiles.input.OverviewInputMode}. On the other hand, if an input mode is set that is + * not an {@link yfiles.input.OverviewInputMode}, then the value of this property is null + *

    + * @type {yfiles.input.OverviewInputMode} + */ + overviewInputMode:yfiles.input.OverviewInputMode; + /** + * Gets or sets the graph that is rendered in the overview. + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * Gets or sets the client component, that will be used to retrieve the graph from and that will be used for navigating. + * @type {yfiles.view.GraphComponent} + */ + graphComponent:yfiles.view.GraphComponent; + static $class:yfiles.lang.Class; + } /** * This class describes a grid by providing the grid's origin as well as the horizontal and vertical spacing between the * grid points. @@ -10995,22 +11834,20 @@ declare namespace system{ * It is used by the {@link yfiles.input.IGridConstraintProvider.} as well as by the GridSnapResultVisualCreator<T> *

    * @see yfiles.input.IGridConstraintProvider. - * @class yfiles.view.GridInfo + * @class */ export interface GridInfo extends Object{} export class GridInfo { /** * Creates a new instance using the given horizontal and vertical grid spacing as well as the given origin. - * @param {number} horizontalSpacing The horizontal spacing between the grid points. - * @param {number} verticalSpacing The vertical spacing between the grid points. - * @param {yfiles.geometry.Point} origin The canonic origin of the grid. - * @constructor + * @param horizontalSpacing The horizontal spacing between the grid points. + * @param verticalSpacing The vertical spacing between the grid points. + * @param origin The canonic origin of the grid. */ constructor(horizontalSpacing:number,verticalSpacing:number,origin:yfiles.geometry.Point); /** * Creates a new instance using "25" as the grid spacing. - * @param {number} [spacing=25] The horizontal and vertical spacing between the grid points. - * @constructor + * @param [spacing=25] The horizontal and vertical spacing between the grid points. */ constructor(spacing?:number); /** @@ -11044,8 +11881,8 @@ declare namespace system{ export interface ICanvasContext extends Object,yfiles.graph.ILookup{ /** * Adds an element to the defs section of the document, if it has not been added yet. - * @param {yfiles.view.ISvgDefsCreator} defsSupport The instance that is used to create and update the element and to query if the element is still referenced - * @returns {string} The id of the element with which it can be referenced using an url reference. + * @param defsSupport The instance that is used to create and update the element and to query if the element is still referenced + * @returns The id of the element with which it can be referenced using an url reference. * @abstract */ getDefsId(defsSupport:yfiles.view.ISvgDefsCreator):string; @@ -11080,10 +11917,10 @@ declare namespace system{ *

    * If the values for zoom or hitTestRadius are not specified, the values will be obtained from the given canvas. *

    - * @param {yfiles.view.CanvasComponent} canvas the canvas - * @param {number} [zoom=0] the zoom level - * @param {number} [hitTestRadius=-1] the hit test radius - * @returns {yfiles.view.ICanvasContext} + * @param canvas the canvas + * @param [zoom=0] the zoom level + * @param [hitTestRadius=-1] the hit test radius + * @returns * @static */ createCanvasContext?(canvas:yfiles.view.CanvasComponent,zoom?:number,hitTestRadius?:number):yfiles.view.ICanvasContext; @@ -11093,10 +11930,10 @@ declare namespace system{ * If the values for zoom or hitTestRadius are not specified, the values will be obtained from the given canvas. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.view.CanvasComponent} options.canvas the canvas - * @param {number} [options.zoom=0] the zoom level - * @param {number} [options.hitTestRadius=-1] the hit test radius - * @returns {yfiles.view.ICanvasContext} + * @param options.canvas the canvas + * @param [options.zoom=0] the zoom level + * @param [options.hitTestRadius=-1] the hit test radius + * @returns * @static */ createCanvasContext?(options:{canvas:yfiles.view.CanvasComponent,zoom?:number,hitTestRadius?:number}):yfiles.view.ICanvasContext; @@ -11128,8 +11965,8 @@ declare namespace system{ *

    * Observe that this instance will move into the referenced item's group if needed. *

    - * @param {yfiles.view.ICanvasObject} reference - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @param reference + * @returns this so that calls can be chained. * @abstract */ above(reference:yfiles.view.ICanvasObject):yfiles.view.ICanvasObject; @@ -11142,8 +11979,8 @@ declare namespace system{ *

    * Observe that this instance will move into the referenced item's group if needed. *

    - * @param {yfiles.view.ICanvasObject} reference - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @param reference + * @returns this so that calls can be chained. * @abstract */ below(reference:yfiles.view.ICanvasObject):yfiles.view.ICanvasObject; @@ -11154,7 +11991,7 @@ declare namespace system{ * As a convenience, this method returns the current instance so that calls can be conveniently chained, e.g. * object.Lower().Lower() *

    - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @returns this so that calls can be chained. * @abstract */ lower():yfiles.view.ICanvasObject; @@ -11165,7 +12002,7 @@ declare namespace system{ * As a convenience, this method returns the current instance so that calls can be conveniently chained, e.g. * object.Raise().Raise().Raise() *

    - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @returns this so that calls can be chained. * @abstract */ raise():yfiles.view.ICanvasObject; @@ -11181,7 +12018,7 @@ declare namespace system{ * As a convenience, this method returns the current instance so that calls can be conveniently chained, e.g. * object.ToBack().Raise().Raise() *

    - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @returns this so that calls can be chained. * @abstract */ toBack():yfiles.view.ICanvasObject; @@ -11192,7 +12029,7 @@ declare namespace system{ * As a convenience, this method returns the current instance so that calls can be conveniently chained, e.g. * object.ToFront().Lower() *

    - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @returns this so that calls can be chained. * @abstract */ toFront():yfiles.view.ICanvasObject; @@ -11284,8 +12121,8 @@ declare namespace system{ * design pattern. Implementations of this class can always return the same instance and reconfigure this instance upon * each call to this method. *

    - * @param {Object} forUserObject the user object to query the bounds for - * @returns {yfiles.view.IBoundsProvider} an implementation or null if the bounds are not known, in which case the bounds are treated as infinite + * @param forUserObject the user object to query the bounds for + * @returns an implementation or null if the bounds are not known, in which case the bounds are treated as infinite * @abstract */ getBoundsProvider(forUserObject:Object):yfiles.view.IBoundsProvider; @@ -11298,8 +12135,8 @@ declare namespace system{ * design pattern. Implementations of this class can always return the same instance and reconfigure this instance upon * each call to this method. *

    - * @param {Object} forUserObject the user object to do the hit testing for - * @returns {yfiles.input.IHitTestable} an implementation or null if the rendering cannot be hit tested + * @param forUserObject the user object to do the hit testing for + * @returns an implementation or null if the rendering cannot be hit tested * @abstract */ getHitTestable(forUserObject:Object):yfiles.input.IHitTestable; @@ -11312,8 +12149,8 @@ declare namespace system{ * design pattern. Implementations of this class can always return the same instance and reconfigure this instance upon * each call to this method. *

    - * @param {Object} forUserObject the user object to query the bounds for - * @returns {yfiles.view.IVisibilityTestable} an implementation or null if the bounds are not known, in which case the bounds are treated as infinite + * @param forUserObject the user object to query the bounds for + * @returns an implementation or null if the bounds are not known, in which case the bounds are treated as infinite * @abstract */ getVisibilityTestable(forUserObject:Object):yfiles.view.IVisibilityTestable; @@ -11326,16 +12163,16 @@ declare namespace system{ * design pattern. Implementations of this class can always return the same instance and reconfigure this instance upon * each call to this method. *

    - * @param {Object} forUserObject the user object to create a Visual for - * @returns {yfiles.view.IVisualCreator} an implementation or null if nothing shall be rendered + * @param forUserObject the user object to create a Visual for + * @returns an implementation or null if nothing shall be rendered * @abstract */ getVisualCreator(forUserObject:Object):yfiles.view.IVisualCreator; /** * Determines whether the given canvas object is deemed dirty and needs updating. - * @param {yfiles.view.ICanvasContext} context The context that will be used for the update. - * @param {yfiles.view.ICanvasObject} canvasObject The object to check. - * @returns {boolean} Whether an update is needed. + * @param context The context that will be used for the update. + * @param canvasObject The object to check. + * @returns Whether an update is needed. * @abstract */ isDirty(context:yfiles.view.ICanvasContext,canvasObject:yfiles.view.ICanvasObject):boolean; @@ -11349,9 +12186,16 @@ declare namespace system{ */ VOID?:yfiles.view.ICanvasObjectDescriptor; /** - * An implementation that tries to cast the user object to the required interface. + * An implementation that treats {@link yfiles.view.ICanvasObject#userObject} as an instance of {@link yfiles.view.IVisualCreator} and considers the {@link yfiles.view.ICanvasObject#dirty} flag. *

    - * This implementation will respect the {@link yfiles.view.ICanvasObject#dirty} flag. + * This descriptor tries to cast the {@link yfiles.view.ICanvasObject#userObject} to {@link yfiles.view.IVisualCreator} and use this instance to handle the visual + * representation of the {@link yfiles.view.ICanvasObject}. + *

    + *

    + * If the {@link yfiles.view.ICanvasObject#userObject} does not implement {@link yfiles.view.IVisualCreator} nothing will be displayed. + *

    + *

    + * This descriptor will respect the {@link yfiles.view.ICanvasObject#dirty} flag. *

    * @const * @static @@ -11359,9 +12203,16 @@ declare namespace system{ */ DYNAMIC_DIRTY_INSTANCE?:yfiles.view.ICanvasObjectDescriptor; /** - * An implementation that tries to cast the user object to the required interface. + * A descriptor that treats {@link yfiles.view.ICanvasObject#userObject} as an instance of {@link yfiles.view.IVisualCreator} and ignores the {@link yfiles.view.ICanvasObject#dirty} flag. *

    - * This implementation will treat always {@link yfiles.view.IVisualCreator#updateVisual update the Visual} and will effectively ignore the {@link yfiles.view.ICanvasObject#dirty} flag. + * This descriptor tries to cast the {@link yfiles.view.ICanvasObject#userObject} to {@link yfiles.view.IVisualCreator} and use this instance to handle the visual + * representation of the {@link yfiles.view.ICanvasObject}. + *

    + *

    + * If the {@link yfiles.view.ICanvasObject#userObject} does not implement {@link yfiles.view.IVisualCreator} nothing will be displayed. + *

    + *

    + * This descriptor will always {@link yfiles.view.IVisualCreator#updateVisual update the visual} and thus ignore the {@link yfiles.view.ICanvasObject#dirty} flag. *

    * @const * @static @@ -11369,9 +12220,17 @@ declare namespace system{ */ ALWAYS_DIRTY_INSTANCE?:yfiles.view.ICanvasObjectDescriptor; /** - * An implementation that tries to lookup the instance from the user object if it is an {@link yfiles.graph.ILookup}. + * A descriptor that treats {@link yfiles.view.ICanvasObject#userObject} as an instance of {@link yfiles.graph.ILookup} to obtain suitable interface implementations and + * considers the {@link yfiles.view.ICanvasObject#dirty} flag. *

    - * This implementation will respect the {@link yfiles.view.ICanvasObject#dirty} flag. + * This descriptor tries to cast the {@link yfiles.view.ICanvasObject#userObject} to {@link yfiles.graph.ILookup} and obtain the appropriate interface implementations for its + * methods from it. + *

    + *

    + * If the {@link yfiles.view.ICanvasObject#userObject} does not implement {@link yfiles.graph.ILookup} nothing will be displayed. + *

    + *

    + * This descriptor will respect the {@link yfiles.view.ICanvasObject#dirty} flag. *

    * @const * @static @@ -11379,9 +12238,17 @@ declare namespace system{ */ DYNAMIC_DIRTY_LOOKUP?:yfiles.view.ICanvasObjectDescriptor; /** - * An implementation that tries to lookup the instance from the user object if it is an {@link yfiles.graph.ILookup}. + * A descriptor that treats {@link yfiles.view.ICanvasObject#userObject} as an instance of {@link yfiles.graph.ILookup} to obtain suitable interface implementations and + * ignores the {@link yfiles.view.ICanvasObject#dirty} flag. *

    - * This implementation will treat always {@link yfiles.view.IVisualCreator#updateVisual update the Visual} and will effectively ignore the {@link yfiles.view.ICanvasObject#dirty} flag. + * This descriptor tries to cast the {@link yfiles.view.ICanvasObject#userObject} to {@link yfiles.graph.ILookup} and obtain the appropriate interface implementations for its + * methods from it. + *

    + *

    + * If the {@link yfiles.view.ICanvasObject#userObject} does not implement {@link yfiles.graph.ILookup} nothing will be displayed. + *

    + *

    + * This descriptor will always {@link yfiles.view.IVisualCreator#updateVisual update the Visual} and thus ignore the {@link yfiles.view.ICanvasObject#dirty} flag. *

    * @const * @static @@ -11389,8 +12256,13 @@ declare namespace system{ */ ALWAYS_DIRTY_LOOKUP?:yfiles.view.ICanvasObjectDescriptor; /** - * An implementation that will cast the {@link yfiles.view.ICanvasObject#userObject} to {@link yfiles.view.ICanvasObjectDescriptor#VISUAL} and use that to insert into the - * scene graph. + * A descriptor that treats {@link yfiles.view.ICanvasObject#userObject} as Visual to use directly. + *

    + * If the {@link yfiles.view.ICanvasObject#userObject} is not a Visual nothing will be displayed. + *

    + *

    + * This descriptor ignores the {@link yfiles.view.ICanvasObject#dirty} flag. + *

    * @const * @static * @type {yfiles.view.ICanvasObjectDescriptor} @@ -11418,10 +12290,10 @@ declare namespace system{ * The descriptor will be queried for the various rendering related implementations for the given userObject at rendering * time. *

    - * @param {Object} userObject The user object to associate with this child element. This object will be passed to the descriptor's methods. - * @param {yfiles.view.ICanvasObjectDescriptor} descriptor An implementation of the {@link yfiles.view.ICanvasObjectDescriptor} interface that will be passed the userObject to provide the + * @param userObject The user object to associate with this child element. This object will be passed to the descriptor's methods. + * @param descriptor An implementation of the {@link } interface that will be passed the userObject to provide the * various implementations that are used during rendering. - * @returns {yfiles.view.ICanvasObject} A handle that can be used to control the rendering order and to later {@link yfiles.view.ICanvasObject#remove remove} the element from the scene graph, again. + * @returns A handle that can be used to control the rendering order and to later {@link #remove remove} the element from the scene graph, again. * @see yfiles.view.ICanvasObjectDescriptor * @see yfiles.view.ICanvasObjectDescriptor#DYNAMIC_DIRTY_INSTANCE * @abstract @@ -11433,7 +12305,7 @@ declare namespace system{ * This can be used to build groups of {@link yfiles.view.ICanvasObject} instances that can be moved within the scene graph or * whose {@link yfiles.view.ICanvasObject#visible visibility} can be controlled easily. The group will have a null {@link yfiles.view.ICanvasObject#userObject}. *

    - * @returns {yfiles.view.ICanvasObjectGroup} A handle to the newly created group that can be used to control the rendering order and to later {@link yfiles.view.ICanvasObject#remove remove} the group from + * @returns A handle to the newly created group that can be used to control the rendering order and to later {@link #remove remove} the group from * the scene graph, again. * @abstract */ @@ -11465,524 +12337,6 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; - /** - * A container that can hold a number of {@link yfiles.view.SvgVisual}s. - *

    - * Use this class in a {@link yfiles.view.IVisualCreator} implementation to group several {@link yfiles.view.SvgVisual}s. - *

    - *

    - * The class cannot be used to group {@link yfiles.view.HtmlCanvasVisual}s. - *

    - * @class yfiles.view.SvgVisualGroup - * @extends {yfiles.view.SvgVisual} - */ - export interface SvgVisualGroup extends yfiles.view.SvgVisual{} - export class SvgVisualGroup { - /** - * Initializes a new instance of the {@link yfiles.view.SvgVisualGroup} class. - * @constructor - */ - constructor(); - /** - * Adds another {@link yfiles.view.SvgVisual} to the children collection of this instance. - * @param {yfiles.view.SvgVisual} child The child to add. - */ - add(child:yfiles.view.SvgVisual):void; - /** - * Removes a previously added {@link yfiles.view.SvgVisual} from the children collection of this instance. - * @param {yfiles.view.SvgVisual} child The child to remove. - */ - remove(child:yfiles.view.SvgVisual):void; - /** - * Gets or sets a transform that is applied to the children of the container. - * @type {yfiles.geometry.Matrix} - */ - transform:yfiles.geometry.Matrix; - /** - * Provides read and write access to the list of children. - * @type {yfiles.collections.IList.} - */ - children:yfiles.collections.IList; - static $class:yfiles.lang.Class; - } - /** - * Helper class used by {@link yfiles.view.CanvasComponent} to limit the interactive movement of the viewport. - *

    - * The {@link yfiles.view.CanvasComponent#viewportLimiter} instance should be consulted whenever the user tries to change the viewport. Using method {@link yfiles.view.ViewportLimiter#limitViewport} - * the desired viewport can be validated by the implementation. Note that setting the {@link yfiles.view.CanvasComponent#zoom} property or {@link yfiles.view.CanvasComponent#viewPoint} property will not be - * influenced by implementations of this class. It is up to the caller to perform verification. - *

    - * @see yfiles.view.ViewportLimiter#bounds - * @class yfiles.view.ViewportLimiter - */ - export interface ViewportLimiter extends Object{} - export class ViewportLimiter { - /** - * Initializes a new instance of the {@link yfiles.view.ViewportLimiter} class. - * @constructor - */ - constructor(); - /** - * Gets the to bounds that should be honored for the upcoming call. - *

    - * This method is used as callback by {@link yfiles.view.ViewportLimiter#limitViewport} for each request. The default - * implementation just yields {@link yfiles.view.ViewportLimiter#bounds}. - *

    - * @param {yfiles.view.CanvasComponent} canvas The canvas control. - * @param {yfiles.geometry.Rect} suggestedViewport The suggested viewport. - * @returns {yfiles.geometry.Rect} The bounds to honor or null. - * @protected - */ - getCurrentBounds(canvas:yfiles.view.CanvasComponent,suggestedViewport:yfiles.geometry.Rect):yfiles.geometry.Rect; - /** - * Inspects the desired or suggested new viewport for the given control and returns a valid viewport to use. - * @param {yfiles.view.CanvasComponent} canvas The canvas control on which the viewport should be applied. - * @param {yfiles.geometry.Rect} suggestedViewport The suggested viewport. - * @returns {yfiles.geometry.Rect} The viewport that should be used. - */ - limitViewport(canvas:yfiles.view.CanvasComponent,suggestedViewport:yfiles.geometry.Rect):yfiles.geometry.Rect; - /** - * Gets or sets a value indicating whether both dimensions of {@link yfiles.view.ViewportLimiter#bounds} need to be honored. - * @default true - * @type {boolean} - */ - honorBothDimensions:boolean; - /** - * Gets or sets the maximal allowed navigable bounds for the viewport. - * @type {yfiles.geometry.Rect} - */ - bounds:yfiles.geometry.Rect; - static $class:yfiles.lang.Class; - } - /** - * Runs {@link yfiles.view.IAnimation animations} in a {@link yfiles.view.CanvasComponent}. - *

    - * For running {@link yfiles.view.IAnimation} instances the method {@link yfiles.view.Animator#animate} can be used. For simpler cases of - * custom animations there are also overloads that take an animation callback. - *

    - * @see yfiles.view.IAnimation - * @class yfiles.view.Animator - */ - export interface Animator extends Object{} - export class Animator { - /** - * Initializes a new instance of the {@link yfiles.view.Animator} class for the given {@link yfiles.view.CanvasComponent}. - *

    - * Using this constructor this instance will query an instance of {@link yfiles.input.WaitInputMode} from the {@link yfiles.view.CanvasComponent#lookup canvas's context} to - * automatically set the {@link yfiles.input.WaitInputMode#waiting} property during animations if {@link yfiles.view.Animator#allowUserInteraction} is set to false. The animation is not started until {@link yfiles.view.Animator#animate} - * or {@link yfiles.view.Animator#animate} is called. - *

    - * @param {yfiles.view.CanvasComponent} canvas The canvas control. - * @constructor - */ - constructor(canvas:yfiles.view.CanvasComponent); - /** - * Initializes a new instance of the {@link yfiles.view.Animator} class for the given {@link yfiles.view.CanvasComponent}. - *

    - * Using this constructor this instance will query an instance of {@link yfiles.input.WaitInputMode} from the {@link yfiles.view.CanvasComponent#lookup canvas's context} to - * automatically set the {@link yfiles.input.WaitInputMode#waiting} property during animations if {@link yfiles.view.Animator#allowUserInteraction} is set to false. The animation is not started until {@link yfiles.view.Animator#animate} - * or {@link yfiles.view.Animator#animate} is called. - *

    - * @param {Object} options The parameters to pass. - * @param {yfiles.view.CanvasComponent} options.canvas The canvas control. - * @param {boolean} options.allowUserInteraction Determines whether user interaction should be allowed during the animation. - *

    - * This option sets the {@link yfiles.view.Animator#allowUserInteraction} property on the created object. - *

    - * @param {boolean} options.autoInvalidation A value indicating whether to automatically {@link yfiles.view.Animator#invalidateComponent invalidate the control} this instance has been created for. - *

    - * This option sets the {@link yfiles.view.Animator#autoInvalidation} property on the created object. - *

    - * @constructor - */ - constructor(options:{canvas:yfiles.view.CanvasComponent,allowUserInteraction?:boolean,autoInvalidation?:boolean}); - /** - * Animates the given animation instance and triggers the callback upon completion. - * @param {yfiles.view.IAnimation} animation The animation to perform. - * @returns {Promise.} - */ - animate(animation:yfiles.view.IAnimation):Promise; - /** - * Starts animating the given animation for the specified duration. - * @param {function(number): void} callback The callback to use for the animation. - * @param {yfiles.lang.TimeSpan} duration The duration in milliseconds that the animation should last. - * @returns {Promise.} - */ - animate(callback:(time:number)=>void,duration:yfiles.lang.TimeSpan):Promise; - /** - * Stops all running animations. - */ - destroy():void; - /** - * Invalidates the control if {@link yfiles.view.Animator#autoInvalidation} is set to true. - *

    - * This implementation calls {@link yfiles.view.CanvasComponent#updateVisual }. - *

    - * @param {yfiles.view.CanvasComponent} canvas The control. - * @protected - */ - invalidateComponent(canvas:yfiles.view.CanvasComponent):void; - /** - * Determines whether user interaction should be allowed during the animation. - *

    - * If false, the {@link yfiles.input.WaitInputMode} is queried from the {@link yfiles.view.CanvasComponent} and {@link yfiles.input.WaitInputMode#waiting} is enabled during the - * animation. The default is false. - *

    - * @type {boolean} - */ - allowUserInteraction:boolean; - /** - * The control the animations are run on. - * @type {yfiles.view.CanvasComponent} - */ - canvasComponent:yfiles.view.CanvasComponent; - /** - * Gets or sets a value indicating whether to automatically {@link yfiles.view.Animator#invalidateComponent invalidate the control} this instance has been created for. - *

    - * The default is true. - *

    - * @type {boolean} - */ - autoInvalidation:boolean; - static $class:yfiles.lang.Class; - } - /** - * An interface for animations that can be run by {@link yfiles.view.Animator}. - *

    - * Instances of classes implementing this interface change their state according to a relative animation time. The - * animation time is a double between 0 for the start of the animation and 1 for the end of the animation. - *

    - *
      - *
    • An animated object is first created using the constructor of a subclass.
    • - *
    • Immediately before the animation a client calls {@link yfiles.view.IAnimation#initialize}.
    • - *
    • - * To change the state of the animated object a client does a series of calls to - * {@link yfiles.view.IAnimation#animate}, usually with an increasing relative time parameter. - *
    • - *
    • If the animation is done, the client calls {@link yfiles.view.IAnimation#cleanup} once.
    • - *
    • - * While {@link yfiles.view.IAnimation#animate} uses a relative time scheme, there might be an absolute time value for the - * preferred duration of the whole sequence of animation steps. Since an IAnimation instance has no control on the number - * of {@link yfiles.view.IAnimation#animate} calls or the intervals between them, the preferred duration is only a hint on how long - * the animation should take. Clients can ask for that hint using {@link yfiles.view.IAnimation#preferredDuration} and try to find a suitable sequence of {@link yfiles.view.IAnimation#animate} - * calls in order to fulfill the preference. - *
    • - *
    - * @interface - */ - export interface IAnimation extends Object{ - /** - * Does the animation according to the relative animation time. - *

    - * The animation starts with the time 0 and ends with time 1. - *

    - * @param {number} time the animation time [0,1] - * @abstract - */ - animate(time:number):void; - /** - * Cleans up after an animation has finished. - * @abstract - */ - cleanup():void; - /** - * Creates an eased animation for the given base animation. - *

    - * The animation speed linearly increases upto a easeIn and linearly decreases from - * easeOut. Between those two points, the animation speed is constant. - *

    - *

    - * The duration of the ease in and ease out is determined by a mapping [0,1] → [0,1]. The mapping has to be increasing to - * preserve the order of the frames in the decorated animation. In general, we consider continuously differentiable - * functions f where integral of f′ equals 1 a suitable choice for the mapping. - *

    - * @param {number} [easeIn=0.5] The ratio for the ease-in time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. - * @param {number} [easeOut=0.5] The ratio for the ease-out time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. - * @returns {yfiles.view.IAnimation} - */ - createEasedAnimation?(easeIn?:number,easeOut?:number):yfiles.view.IAnimation; - /** - * Creates an eased animation for the given base animation. - *

    - * The animation speed linearly increases upto a easeIn and linearly decreases from - * easeOut. Between those two points, the animation speed is constant. - *

    - *

    - * The duration of the ease in and ease out is determined by a mapping [0,1] → [0,1]. The mapping has to be increasing to - * preserve the order of the frames in the decorated animation. In general, we consider continuously differentiable - * functions f where integral of f′ equals 1 a suitable choice for the mapping. - *

    - * @param {Object} options The parameters to pass. - * @param {number} [options.easeIn=0.5] The ratio for the ease-in time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. - * @param {number} [options.easeOut=0.5] The ratio for the ease-out time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. - * @returns {yfiles.view.IAnimation} - */ - createEasedAnimation?(options:{easeIn?:number,easeOut?:number}):yfiles.view.IAnimation; - /** - * Initializes the animation. - *

    - * Call this method once before subsequent calls to {@link yfiles.view.IAnimation#animate}. - *

    - * @abstract - */ - initialize():void; - /** - * Gets the preferred duration of the animation. - * @abstract - * @type {yfiles.lang.TimeSpan} - */ - preferredDuration:yfiles.lang.TimeSpan; - } - var IAnimation:{ - /** - * Creates a new {@link yfiles.view.IAnimation} that animates the given edge's bends from its current shape linearly to the shape - * given by the endBends and final port locations. - *

    - * The bends of the edge layout are animated from their current location to their target locations. It is assumed that the - * edge style is a polyline style and the control points are the bends accordingly. The animation works for other styles - * too, but the effect might not be as expected. The number of bends in endBends can be different to the current number of - * bends. This will result in the animation automatically removing bends at the end of the animation or inserting new bends - * accordingly at the beginning of the animation. - *

    - *

    - * The source and target points are also animated to new locations. However, the ports will not be moved by this animation. - * Instead a separate {@link yfiles.view.IAnimation#createPortAnimation animation for the ports} is needed to actually move - * {@link yfiles.graph.IPort}s at the ends of the edge if desired. - *

    - * @param {yfiles.graph.IGraph} graph The graph the animated edge belongs to. - * @param {yfiles.graph.IEdge} edge The edge layout to animate. - * @param {Array.} endBends The bend positions after the animation. - * @param {yfiles.geometry.Point} endSourceLocation The absolute position of the source port after the animation. - * @param {yfiles.geometry.Point} endTargetLocation The absolute position of the target port after the animation. - * @param {yfiles.lang.TimeSpan} preferredDuration The preferred duration of the animation in milliseconds. - * @returns {yfiles.view.IAnimation} - * @static - */ - createEdgeSegmentAnimation?(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,endBends:yfiles.geometry.IPoint[],endSourceLocation:yfiles.geometry.Point,endTargetLocation:yfiles.geometry.Point,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} that animates the given layout of all types of graph items. - * @param {yfiles.graph.IGraph} graph The graph for which the layout should be animated. - * @param {yfiles.collections.IMapper.} targetNodeLayouts The node layouts after the animation. - * @param {yfiles.collections.IMapper.>} targetBendLocations The bend locations after the animation, for each edge the points are interpreted as the position of the bends along the - * edge in the given order. - * @param {yfiles.collections.IMapper.} targetLayoutParameters The label model parameters for each label after the animation. - * @param {yfiles.collections.IMapper.} targetPortLocations The {@link yfiles.graph.IPortLocationModelParameter}s for each {@link yfiles.graph.IPort} in the graph that will be morphed. - * @param {yfiles.lang.TimeSpan} preferredDuration The preferred duration of the animation in milliseconds. - * @returns {yfiles.view.IAnimation} - * @static - */ - createGraphAnimation?(graph:yfiles.graph.IGraph,targetNodeLayouts:yfiles.collections.IMapper,targetBendLocations:yfiles.collections.IMapper,targetPortLocations:yfiles.collections.IMapper,targetLayoutParameters:yfiles.collections.IMapper,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} that animates the given label from its current layout linearly to the layout given - * by the targetLayoutParameter. - *

    - * This animation will as a side effect assign the targetLayoutParameter to the label at the {@link Root.UI#cleanup end of the animation}. - *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the labels. - * @param {yfiles.graph.ILabel} label The label to animate the parameter of. - * @param {yfiles.graph.ILabelModelParameter} targetLayoutParameter The target parameter of the label. - * @param {yfiles.lang.TimeSpan} preferredDuration The preferred duration of the animation. - * @returns {yfiles.view.IAnimation} A new instance of {@link yfiles.view.IAnimation}. - * @static - */ - createLabelAnimation?(graph:yfiles.graph.IGraph,label:yfiles.graph.ILabel,targetLayoutParameter:yfiles.graph.ILabelModelParameter,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} instance that animates the current graph to the layout given by a {@link yfiles.layout.CopiedLayoutGraph} - * instance. - *

    - * The returned instance is suitable for morphing an {@link yfiles.graph.IGraph} to a layout computed by one of the layout - * algorithms. - *

    - *

    - * While it is usually recommended to use {@link yfiles.layout.LayoutExecutor} to handle layout calculation and subsequent - * animation, the {@link yfiles.view.IAnimation} produced by this method can be used manually, as well: - *

    - * @param {yfiles.graph.IGraph} graph the graph for which the layout should be animated - * @param {yfiles.layout.CopiedLayoutGraph} layoutGraph the {@link yfiles.layout.CopiedLayoutGraph} that contains all target layout information - * @param {yfiles.lang.TimeSpan} preferredDuration the preferred duration of the animation - * @returns {yfiles.view.IAnimation} - * @static - */ - createLayoutAnimation?(graph:yfiles.graph.IGraph,layoutGraph:yfiles.layout.CopiedLayoutGraph,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} that animates the given node from its current layout to the new given - * targetLayout. - * @param {yfiles.graph.IGraph} graph The graph the animated node belongs to. - * @param {yfiles.graph.INode} node The node whose {@link yfiles.graph.INode#layout} to animate. - * @param {yfiles.geometry.IRectangle} targetLayout The expected node layout after the animation. - * @param {yfiles.lang.TimeSpan} preferredDuration The preferred duration of the animation. - * @returns {yfiles.view.IAnimation} A new instance of {@link yfiles.view.IAnimation}. - * @static - */ - createNodeAnimation?(graph:yfiles.graph.IGraph,node:yfiles.graph.INode,targetLayout:yfiles.geometry.IRectangle,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates an {@link yfiles.view.IAnimation} according to the composite design pattern that animates multiple animations in - * parallel. - *

    - * The animations can be synchronized to the longest running animation. - *

    - * @param {yfiles.collections.IEnumerable.} animations The animations to run in parallel. - * @param {boolean} [synchronized=true] Whether all child animations should be adjusted to have the same (maximum) {@link yfiles.view.IAnimation#preferredDuration}. By default this is enabled. - * @returns {yfiles.view.IAnimation} A new instance that is the composite of the given animations. - * @static - */ - createParallelAnimation?(animations:yfiles.collections.IEnumerable,synchronized?:boolean):yfiles.view.IAnimation; - /** - * Creates a new instance of an {@link yfiles.view.IAnimation} that animates the given {@link yfiles.geometry.IMutablePoint} along a path. - * @param {yfiles.geometry.GeneralPath} path The path to animate the point along. - * @param {yfiles.geometry.IMutablePoint} animationPoint The mutable point instance that will be manipulated by the animation. - * @param {yfiles.lang.TimeSpan} preferredDuration The preferred duration of the animation. - * @returns {yfiles.view.IAnimation} - * @static - */ - createPathAnimation?(path:yfiles.geometry.GeneralPath,animationPoint:yfiles.geometry.IMutablePoint,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} that animates the given port from its current location to the new location given by - * the targetLocationParameter. - *

    - * This animation will as a side effect assign the targetLocationParameter to the port at the {@link Root.UI#cleanup end of the animation}. - *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the port. - * @param {yfiles.graph.IPort} port The port to animate. - * @param {yfiles.graph.IPortLocationModelParameter} targetLocationParameter The parameter to linearly interpolate to. - * @param {yfiles.lang.TimeSpan} preferredDuration The {@link Root.UI#preferredDuration preferred duration} of this animation. - * @returns {yfiles.view.IAnimation} A new instance of {@link yfiles.view.IAnimation}. - * @static - */ - createPortAnimation?(graph:yfiles.graph.IGraph,port:yfiles.graph.IPort,targetLocationParameter:yfiles.graph.IPortLocationModelParameter,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} for the given table that animates the table and its {@link yfiles.graph.IStripe stripes}. - *

    - * Note that only the sizes of - * leaf stripes, i.e. those without child stripes, are considered. The sizes of a stripe with children is implicitly determined by its - * contents. - *

    - *

    - * For more control of the animation, implement a custom {@link yfiles.view.TableAnimation} and override method - * {@link yfiles.view.TableAnimation#createStripeAnimation}. - *

    - * @param {yfiles.graph.ITable} table The table to animate. - * @param {Array.} columnLayout The sizes of the leaf columns, in natural order. - * @param {Array.} rowLayout The sizes of the leaf rows, in natural order. - * @returns {yfiles.view.IAnimation} - * @static - */ - createTableAnimation?(table:yfiles.graph.ITable,columnLayout:number[],rowLayout:number[]):yfiles.view.IAnimation; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Animates changing the viewport bounds and the zoom factor for a {@link yfiles.view.CanvasComponent}. - * @class yfiles.view.ViewportAnimation - * @implements {yfiles.view.IAnimation} - */ - export interface ViewportAnimation extends Object,yfiles.view.IAnimation{} - export class ViewportAnimation { - /** - * Creates a new instance of {@link yfiles.view.ViewportAnimation}. - * @param {yfiles.view.CanvasComponent} canvas The canvas control. - * @param {yfiles.geometry.Rect} targetBounds The target world bounds for the animation. - * @param {yfiles.lang.TimeSpan} [preferredDuration=null] The preferred duration. 1 second if omitted. - * @constructor - */ - constructor(canvas:yfiles.view.CanvasComponent,targetBounds:yfiles.geometry.Rect,preferredDuration?:yfiles.lang.TimeSpan); - /** - * Creates a new instance of {@link yfiles.view.ViewportAnimation}. - * @param {Object} options The parameters to pass. - * @param {yfiles.view.CanvasComponent} options.canvas The canvas control. - * @param {yfiles.geometry.Rect} options.targetBounds The target world bounds for the animation. - * @param {yfiles.lang.TimeSpan} [options.preferredDuration=null] The preferred duration. 1 second if omitted. - * @param {boolean} options.considerViewportLimiter Whether to respect the {@link yfiles.view.CanvasComponent#viewportLimiter} of the {@link yfiles.view.CanvasComponent} whose {@link yfiles.view.CanvasComponent#viewport} is animated. - *

    - * This option sets the {@link yfiles.view.ViewportAnimation#considerViewportLimiter} property on the created object. - *

    - * @param {number} options.maximumTargetZoom The maximum zoom level to use after the animation. - *

    - * This option sets the {@link yfiles.view.ViewportAnimation#maximumTargetZoom} property on the created object. - *

    - * @constructor - */ - constructor(options:{canvas:yfiles.view.CanvasComponent,targetBounds:yfiles.geometry.Rect,preferredDuration?:yfiles.lang.TimeSpan,considerViewportLimiter?:boolean,maximumTargetZoom?:number}); - /** - * - * @param {number} time - */ - animate(time:number):void; - /** - * Effectively applies the center point value. - * @param {yfiles.geometry.Point} focus - * @protected - */ - applyCenterPoint(focus:yfiles.geometry.Point):void; - /** - * Effectively applies the view point value. - * @param {yfiles.geometry.Point} focus - * @protected - */ - applyViewPoint(focus:yfiles.geometry.Point):void; - /** - * Effectively applies the zoom value. - * @param {number} value - * @protected - */ - applyZoom(value:number):void; - /** - * Cancels this viewport animation so that subsequent calls to {@link yfiles.view.ViewportAnimation#animate} or {@link yfiles.view.ViewportAnimation#cleanup} - * won't affect the viewport anymore. - */ - cancel():void; - /** - * Cleans up after the animation. - */ - cleanup():void; - /** - * Initializes this animation. - *

    - * This has to be called once before any calls to {@link yfiles.view.ViewportAnimation#animate}. An instance of {@link yfiles.view.ViewportAnimation} - * can be reused after an animation by setting new {@link yfiles.view.ViewportAnimation#targetBounds} or a new {@link yfiles.view.ViewportAnimation#preferredDuration} and calling Initialize() again. - *

    - */ - initialize():void; - /** - * Gets or sets the target world bounds. - * @type {yfiles.geometry.Rect} - */ - targetBounds:yfiles.geometry.Rect; - /** - * Whether to respect the {@link yfiles.view.CanvasComponent#viewportLimiter} of the {@link yfiles.view.CanvasComponent} whose {@link yfiles.view.CanvasComponent#viewport} is animated. - *

    - * Default is false. - *

    - * @type {boolean} - */ - considerViewportLimiter:boolean; - /** - * Gets or sets the preferred duration of the animation. - * @type {yfiles.lang.TimeSpan} - */ - preferredDuration:yfiles.lang.TimeSpan; - /** - * Gets or sets the maximum zoom level to use after the animation. - *

    - * The default is {@link number#POSITIVE_INFINITY}. - *

    - * @type {number} - */ - maximumTargetZoom:number; - /** - * Gets or sets the scroll bar visibility that will be used during the animation. - * @default 0 - * @type {yfiles.view.ScrollBarVisibility} - */ - scrollBarVisibility:yfiles.view.ScrollBarVisibility; - /** - * Gets or sets the margins in view coordinate dimensions to use at the target zoom level. - * @default '0' - * @type {yfiles.geometry.Insets} - */ - targetViewMargins:yfiles.geometry.Insets; - static $class:yfiles.lang.Class; - } /** * An interface for objects that can install a visual representation of a highlight decoration of an item in the model * displayed in a canvas. @@ -12153,7 +12507,7 @@ declare namespace system{ *
      *
    • Demo: Bridges, Demo.yFiles.Graph.Bridges
    • *
    - * @class yfiles.view.BridgeManager + * @class */ export interface BridgeManager extends Object{} export class BridgeManager { @@ -12163,7 +12517,6 @@ declare namespace system{ * Initially the {@link yfiles.view.BridgeManager#defaultBridgeCreator} will be set to an instance that will delegate to the set of Default properties in this class and the {@link yfiles.view.BridgeManager#insertDefaultCustomBridge} * method respectively. *

    - * @constructor */ constructor(); /** @@ -12173,10 +12526,10 @@ declare namespace system{ * This method may return path itself if no crossings have been determined. Otherwise it will return a new path instance * that has the bridges added at the corresponding places. *

    - * @param {yfiles.view.IRenderContext} context The context to use. - * @param {yfiles.geometry.GeneralPath} path The path to calculate the bridged variant for. - * @param {yfiles.view.IBridgeCreator} callback The callback or null that determines the appearance of the bridges. - * @returns {yfiles.geometry.GeneralPath} The path that might have been augmented by the bridges. + * @param context The context to use. + * @param path The path to calculate the bridged variant for. + * @param callback The callback or null that determines the appearance of the bridges. + * @returns The path that might have been augmented by the bridges. */ addBridges(context:yfiles.view.IRenderContext,path:yfiles.geometry.GeneralPath,callback:yfiles.view.IBridgeCreator):yfiles.geometry.GeneralPath; /** @@ -12184,7 +12537,7 @@ declare namespace system{ *

    * The {@link yfiles.view.IObstacleProvider#getObstacles} method will be invoked during construction of the obstacles. *

    - * @param {yfiles.view.IObstacleProvider} provider The provider instance to use for later queries. + * @param provider The provider instance to use for later queries. * @see yfiles.view.BridgeManager#registerObstacles * @see yfiles.view.BridgeManager#removeObstacleProvider */ @@ -12201,8 +12554,8 @@ declare namespace system{ * This is helpful, e.g. in implementations of {@link yfiles.styles.IEdgeStyle} that support bridges to not recreate the edge path * (including bridges) in {@link yfiles.view.IVisualCreator#updateVisual} if no obstacles changed. *

    - * @param {yfiles.view.IRenderContext} context The context to inspect. - * @returns {number} A hash of the state of the obstacles. + * @param context The context to inspect. + * @returns A hash of the state of the obstacles. */ getObstacleHash(context:yfiles.view.IRenderContext):number; /** @@ -12211,17 +12564,17 @@ declare namespace system{ *

    * This implementation will insert a gap style bridge by first creating a {@link yfiles.geometry.GeneralPath#lineTo line} to start and then {@link yfiles.geometry.GeneralPath#moveTo moving} to end. *

    - * @param {yfiles.view.IRenderContext} context The context for the call. - * @param {yfiles.geometry.GeneralPath} path The path to append the next segment to. - * @param {yfiles.geometry.Point} start The coordinates of the starting point of the bridge. - * @param {yfiles.geometry.Point} end The coordinates of the ending point of the bridge. - * @param {number} gapLength The distance between the starting point and the end point. + * @param context The context for the call. + * @param path The path to append the next segment to. + * @param start The coordinates of the starting point of the bridge. + * @param end The coordinates of the ending point of the bridge. + * @param gapLength The distance between the starting point and the end point. * @see yfiles.view.IBridgeCreator#createCustomBridge */ insertDefaultCustomBridge(context:yfiles.view.IRenderContext,path:yfiles.geometry.GeneralPath,start:yfiles.geometry.Point,end:yfiles.geometry.Point,gapLength:number):void; /** * Installs this manager for the specified {@link yfiles.view.BridgeManager#canvasComponent}. - * @param {yfiles.view.CanvasComponent} canvas The {@link yfiles.view.BridgeManager#canvasComponent}. + * @param canvas The {@link #canvasComponent}. * @protected */ install(canvas:yfiles.view.CanvasComponent):void; @@ -12232,8 +12585,8 @@ declare namespace system{ * {@link yfiles.view.BridgeManager#registerObstacles}. This method can be called during the rendering phase to register additional * obstacles at a later point in time. *

    - * @param {yfiles.view.IRenderContext} context The context to register the obstacles with. - * @param {yfiles.geometry.GeneralPath} path The path that describes the obstacles. + * @param context The context to register the obstacles with. + * @param path The path that describes the obstacles. * @see yfiles.view.BridgeManager#registerObstacleLine */ registerObstacle(context:yfiles.view.IRenderContext,path:yfiles.geometry.GeneralPath):void; @@ -12245,11 +12598,11 @@ declare namespace system{ * {@link yfiles.view.BridgeManager#registerObstacles}. This method can be called during the rendering phase to register additional * obstacles at a later point in time. *

    - * @param {yfiles.view.IRenderContext} context The context to register the obstacles with. - * @param {yfiles.geometry.Point} p1 The coordinates of the starting point of the line. - * @param {yfiles.geometry.Point} cp1 The coordinates of the first control point of the curve. - * @param {yfiles.geometry.Point} cp2 The coordinates of the second control point of the curve. - * @param {yfiles.geometry.Point} p2 The coordinates of the ending point of the line. + * @param context The context to register the obstacles with. + * @param p1 The coordinates of the starting point of the line. + * @param cp1 The coordinates of the first control point of the curve. + * @param cp2 The coordinates of the second control point of the curve. + * @param p2 The coordinates of the ending point of the line. * @see yfiles.view.BridgeManager#registerObstacleLine */ registerObstacleCubicCurve(context:yfiles.view.IRenderContext,p1:yfiles.geometry.Point,cp1:yfiles.geometry.Point,cp2:yfiles.geometry.Point,p2:yfiles.geometry.Point):void; @@ -12261,9 +12614,9 @@ declare namespace system{ * {@link yfiles.view.BridgeManager#registerObstacles}. This method can be called during the rendering phase to register additional * obstacles at a later point in time. *

    - * @param {yfiles.view.IRenderContext} context The context to register the obstacles with. - * @param {yfiles.geometry.Point} p1 The coordinates of the first point of the line. - * @param {yfiles.geometry.Point} p2 The coordinates of the second point of the line. + * @param context The context to register the obstacles with. + * @param p1 The coordinates of the first point of the line. + * @param p2 The coordinates of the second point of the line. * @see yfiles.view.BridgeManager#registerObstacleLine */ registerObstacleLine(context:yfiles.view.IRenderContext,p1:yfiles.geometry.Point,p2:yfiles.geometry.Point):void; @@ -12275,16 +12628,16 @@ declare namespace system{ * {@link yfiles.view.BridgeManager#registerObstacles}. This method can be called during the rendering phase to register additional * obstacles at a later point in time. *

    - * @param {yfiles.view.IRenderContext} context The context to register the obstacles with. - * @param {yfiles.geometry.Point} p1 The coordinates of the starting point of the line. - * @param {yfiles.geometry.Point} cp The coordinates of the control point of the curve. - * @param {yfiles.geometry.Point} p2 The coordinates of the ending point of the line. + * @param context The context to register the obstacles with. + * @param p1 The coordinates of the starting point of the line. + * @param cp The coordinates of the control point of the curve. + * @param p2 The coordinates of the ending point of the line. * @see yfiles.view.BridgeManager#registerObstacleLine */ registerObstacleQuadCurve(context:yfiles.view.IRenderContext,p1:yfiles.geometry.Point,cp:yfiles.geometry.Point,p2:yfiles.geometry.Point):void; /** * Called to initialize the context with the obstacles. - * @param {yfiles.view.IRenderContext} context The context that will be used to store the obstacles with. + * @param context The context that will be used to store the obstacles with. * @see yfiles.view.BridgeManager#registerObstacle * @see yfiles.view.BridgeManager#registerObstacleLine * @protected @@ -12292,13 +12645,13 @@ declare namespace system{ registerObstacles(context:yfiles.view.IRenderContext):void; /** * Removes a previously {@link yfiles.view.BridgeManager#addObstacleProvider added} {@link yfiles.view.IObstacleProvider} from the list of registered providers. - * @param {yfiles.view.IObstacleProvider} provider The provider instance to remove from this instance. + * @param provider The provider instance to remove from this instance. * @see yfiles.view.BridgeManager#addObstacleProvider */ removeObstacleProvider(provider:yfiles.view.IObstacleProvider):void; /** * Reverts the {@link yfiles.view.BridgeManager#install} method. - * @param {yfiles.view.CanvasComponent} canvas The {@link yfiles.view.BridgeManager#canvasComponent}. + * @param canvas The {@link #canvasComponent}. * @protected */ uninstall(canvas:yfiles.view.CanvasComponent):void; @@ -12425,11 +12778,11 @@ declare namespace system{ * implementation should make sure that the GeneralPath's end is at end. The gapLength is provided for convenience so that * the distance between startPoint and endPoint does not need to be calculated if it is needed for the drawing. *

    - * @param {yfiles.view.IRenderContext} context The context for the call. - * @param {yfiles.geometry.GeneralPath} path The path to append the bridge segment to. - * @param {yfiles.geometry.Point} start The coordinates of the starting point of the bridge. - * @param {yfiles.geometry.Point} end The coordinates of the ending point of the bridge. - * @param {number} gapLength The distance between the starting point and the end point. + * @param context The context for the call. + * @param path The path to append the bridge segment to. + * @param start The coordinates of the starting point of the bridge. + * @param end The coordinates of the ending point of the bridge. + * @param gapLength The distance between the starting point and the end point. * @abstract */ createCustomBridge(context:yfiles.view.IRenderContext,path:yfiles.geometry.GeneralPath,start:yfiles.geometry.Point,end:yfiles.geometry.Point,gapLength:number):void; @@ -12438,8 +12791,8 @@ declare namespace system{ *

    * The height is the default height that will be used for drawing the non-{@link yfiles.view.BridgeCrossingStyle#CUSTOM custom} {@link yfiles.view.BridgeCrossingStyle}s. *

    - * @param {yfiles.view.IRenderContext} context The context where the bridge will be created for. - * @returns {number} The non-negative preferred basic unscaled height of the bridge. + * @param context The context where the bridge will be created for. + * @returns The non-negative preferred basic unscaled height of the bridge. * @abstract */ getBridgeHeight(context:yfiles.view.IRenderContext):number; @@ -12451,24 +12804,24 @@ declare namespace system{ * automatically made smaller if it happens to be near the end of a segment and would otherwise extend beyond the end of * the segment. *

    - * @param {yfiles.view.IRenderContext} context The context where the bridge will be created for. - * @returns {number} The positive preferred width of the bridge. + * @param context The context where the bridge will be created for. + * @returns The positive preferred width of the bridge. * @abstract */ getBridgeWidth(context:yfiles.view.IRenderContext):number; /** * Gets the {@link yfiles.view.BridgeCrossingStyle} to use in the given {@link yfiles.view.IRenderContext}. - * @param {yfiles.view.IRenderContext} context The context in which the crossing will be used. - * @returns {yfiles.view.BridgeCrossingStyle} The style to use, or {@link yfiles.view.BridgeCrossingStyle#CUSTOM} in order to let {@link yfiles.view.BridgeManager} call - * {@link yfiles.view.IBridgeCreator#createCustomBridge}. + * @param context The context in which the crossing will be used. + * @returns The style to use, or {@link #CUSTOM} in order to let {@link } call + * {@link #createCustomBridge}. * @abstract */ getCrossingStyle(context:yfiles.view.IRenderContext):yfiles.view.BridgeCrossingStyle; /** * Gets the {@link yfiles.view.BridgeOrientationStyle} to use in the given {@link yfiles.view.IRenderContext}. - * @param {yfiles.view.IRenderContext} context The context in which the style will be used.. - * @returns {yfiles.view.BridgeOrientationStyle} The style to use. Any value can be returned and will be ignored if the {@link yfiles.view.IBridgeCreator#getCrossingStyle crossing style} is set to - * {@link yfiles.view.BridgeCrossingStyle#CUSTOM}. + * @param context The context in which the style will be used.. + * @returns The style to use. Any value can be returned and will be ignored if the {@link #getCrossingStyle crossing style} is set to + * {@link #CUSTOM}. * @abstract */ getOrientationStyle(context:yfiles.view.IRenderContext):yfiles.view.BridgeOrientationStyle; @@ -12491,8 +12844,8 @@ declare namespace system{ * For performance reasons the implementation should only return a non-null {@link yfiles.geometry.GeneralPath} if it might be {@link yfiles.view.IVisibilityTestable#isVisible visible} * in the provided {@link yfiles.view.IRenderContext#clip}. *

    - * @param {yfiles.view.IRenderContext} context The context for which the obstacles are queried. - * @returns {yfiles.geometry.GeneralPath} A path that describes the obstacles or null if there are no obstacles for the given context. + * @param context The context for which the obstacles are queried. + * @returns A path that describes the obstacles or null if there are no obstacles for the given context. * @abstract */ getObstacles(context:yfiles.view.IRenderContext):yfiles.geometry.GeneralPath; @@ -12504,7 +12857,7 @@ declare namespace system{ /** * An {@link yfiles.view.ItemModelManager.} that automatically installs and removes visual representations of items in a {@link yfiles.collections.IObservableCollection.} into or from the canvas. * Type parameter T: The type of items in the observable collection. - * @class yfiles.view.CollectionModelManager. + * @class * @extends {yfiles.view.ItemModelManager.} * @template T */ @@ -12512,16 +12865,14 @@ declare namespace system{ export class CollectionModelManager { /** * Creates a new instance using the given model. - * @param {yfiles.lang.Class} itemType The type of items in the observable collection. - * @param {yfiles.collections.IObservableCollection.} model The model to manage. - * @constructor + * @param itemType The type of items in the observable collection. + * @param model The model to manage. */ constructor(itemType:yfiles.lang.Class,model:yfiles.collections.IObservableCollection); /** * Creates a new instance. - * @param {yfiles.lang.Class} itemType The type of items in the observable collection. + * @param itemType The type of items in the observable collection. * @see yfiles.view.CollectionModelManager.#model - * @constructor */ constructor(itemType:yfiles.lang.Class); /** @@ -12557,19 +12908,19 @@ declare namespace system{ /** * Installs and removes visual representations of items into or from the canvas. * Type parameter T: The type of managed items. - * @class yfiles.view.ItemModelManager. + * @class * @template T */ export interface ItemModelManager extends Object{} export class ItemModelManager { /** * - * @param {yfiles.lang.Class} itemType1 The type of managed items. + * @param itemType The type of managed items. */ - constructor(itemType1:yfiles.lang.Class); + constructor(itemType:yfiles.lang.Class); /** * Registers and {@link yfiles.view.ItemModelManager.#install installs} the given item into the canvas. - * @param {T} item The item to install. + * @param item The item to install. */ addItem(item:T):void; /** @@ -12577,13 +12928,13 @@ declare namespace system{ *

    * This is useful to initialize this manager with an existing collection of items. *

    - * @param {yfiles.collections.IEnumerable.} items The items to add. + * @param items The items to add. */ addItems(items:yfiles.collections.IEnumerable):void; /** * Retrieves the canvas object that has been registered for the given item or null. - * @param {T} item The item to retrieve the canvas object for. - * @returns {yfiles.view.ICanvasObject} A canvas object instance or null. + * @param item The item to retrieve the canvas object for. + * @returns A canvas object instance or null. * @see yfiles.view.ItemModelManager.#install */ getCanvasObject(item:T):yfiles.view.ICanvasObject; @@ -12592,8 +12943,8 @@ declare namespace system{ *

    * The default implementation simply returns the value of {@link yfiles.view.ItemModelManager.#canvasObjectGroup}. *

    - * @param {T} item The item to get the group for. - * @returns {yfiles.view.ICanvasObjectGroup} The {@link yfiles.view.ICanvasObjectGroup} used to {@link yfiles.view.ItemModelManager.#install} an item in the canvas. + * @param item The item to get the group for. + * @returns The {@link } used to {@link #install} an item in the canvas. * @protected */ getCanvasObjectGroup(item:T):yfiles.view.ICanvasObjectGroup; @@ -12602,21 +12953,21 @@ declare namespace system{ *

    * The default implementation simply returns the value of {@link yfiles.view.ItemModelManager.#descriptor}. *

    - * @param {T} item The item to get the descriptor for. - * @returns {yfiles.view.ICanvasObjectDescriptor} The {@link yfiles.view.ICanvasObjectDescriptor} used to {@link yfiles.view.ItemModelManager.#install} an item in the canvas. + * @param item The item to get the descriptor for. + * @returns The {@link } used to {@link #install} an item in the canvas. * @protected */ getDescriptor(item:T):yfiles.view.ICanvasObjectDescriptor; /** * Tries to find the item managed by this instance that is associated with the given canvas object. - * @param {yfiles.view.ICanvasObject} canvasObject The canvas object to query the corresponding model item for. - * @returns {T} The item or null if no such item could be found. + * @param canvasObject The canvas object to query the corresponding model item for. + * @returns The item or null if no such item could be found. */ getItem(canvasObject:yfiles.view.ICanvasObject):T; /** * Installs a member of the collection into the canvas using the {@link yfiles.view.ItemModelManager.#descriptor}. - * @param {T} item The member to install. - * @returns {yfiles.view.ICanvasObject} The canvas object that has been returned by the installer. + * @param item The member to install. + * @returns The canvas object that has been returned by the installer. * @protected */ install(item:T):yfiles.view.ICanvasObject; @@ -12628,8 +12979,8 @@ declare namespace system{ *

    * This method calls {@link yfiles.view.ItemModelManager.#addItem} with {@link yfiles.collections.ItemEventArgs.#item}. *

    - * @param {Object} source The instance that raised the event. - * @param {yfiles.collections.ItemEventArgs.} evt The event arguments. + * @param source The instance that raised the event. + * @param evt The event arguments. */ itemAddedHandler(source:Object,evt:yfiles.collections.ItemEventArgs):void; /** @@ -12641,8 +12992,8 @@ declare namespace system{ * This is necessary if the group the canvas object should be added to might change after the item change. This might * happen, e.g. after changing an edge's port in a grouped graph. *

    - * @param {Object} source The event source. - * @param {yfiles.collections.ItemEventArgs.} evt The item event args which indicate the change. + * @param source The event source. + * @param evt The item event args which indicate the change. */ itemChangedHandler(source:Object,evt:yfiles.collections.ItemEventArgs):void; /** @@ -12653,13 +13004,13 @@ declare namespace system{ *

    * This method calls {@link yfiles.view.ItemModelManager.#removeItem} with {@link yfiles.collections.ItemEventArgs.#item}. *

    - * @param {Object} source The instance that raised the event. - * @param {yfiles.collections.ItemEventArgs.} evt The event arguments. + * @param source The instance that raised the event. + * @param evt The event arguments. */ itemRemovedHandler(source:Object,evt:yfiles.collections.ItemEventArgs):void; /** * Deregisters and uninstalls the given item from the canvas. - * @param {T} item The item to uninstall. + * @param item The item to uninstall. */ removeItem(item:T):void; /** @@ -12667,7 +13018,7 @@ declare namespace system{ *

    * This method can be used to clean up this manager before disposing it. *

    - * @param {yfiles.collections.IEnumerable.} items The items to remove. + * @param items The items to remove. */ removeItems(items:yfiles.collections.IEnumerable):void; /** @@ -12675,11 +13026,11 @@ declare namespace system{ *

    * If no visual representation is registered, yet, {@link yfiles.view.ItemModelManager.#install} will be called. *

    - * @param {T} item The item to update. + * @param item The item to update. */ update(item:T):void; /** - * Gets or sets a comparer that compares the items so that they are put into the correct order in the canvas tree. + * Gets or sets an {@link yfiles.collections.IComparer.} that compares the items so that they are put into the correct order in the canvas tree. *

    * If this instance is set to null this feature is effectively turned off. *

    @@ -12712,7 +13063,7 @@ declare namespace system{ * ensure that items that have been removed are deselected as well. A {@link yfiles.view.DefaultSelectionModel.#itemRemovedFromDomainHandler convenience event handler} exists for that purpose. *

    * Type parameter T: The type of the items to be selected. - * @class yfiles.view.DefaultSelectionModel. + * @class * @implements {yfiles.view.ISelectionModel.} * @template T */ @@ -12720,7 +13071,6 @@ declare namespace system{ export class DefaultSelectionModel { /** * Creates a default selection model implementation that uses a {@link yfiles.collections.ObservableCollection.} to hold the selection. - * @constructor */ constructor(); /** @@ -12729,13 +13079,13 @@ declare namespace system{ clear():void; /** * - * @returns {yfiles.collections.IEnumerator.} + * @returns */ getEnumerator():yfiles.collections.IEnumerator; /** * Determines whether an item is selected by checking for the containment in the {@link yfiles.view.DefaultSelectionModel.#selection}. - * @param {T} item The item to check - * @returns {boolean} Whether the item is selected. + * @param item The item to check + * @returns Whether the item is selected. */ isSelected(item:T):boolean; /** @@ -12746,8 +13096,8 @@ declare namespace system{ *

    * This method calls {@link yfiles.view.DefaultSelectionModel.#removeDomainItem} with {@link yfiles.collections.ItemEventArgs.#item}. *

    - * @param {Object} source The instance that raised the event. - * @param {yfiles.collections.ItemEventArgs.} evt The event arguments. + * @param source The instance that raised the event. + * @param evt The event arguments. */ itemRemovedFromDomainHandler(source:Object,evt:yfiles.collections.ItemEventArgs):void; /** @@ -12755,20 +13105,20 @@ declare namespace system{ *

    * Triggers the {@link yfiles.view.DefaultSelectionModel.#addItemSelectionChangedListener ItemSelectionChanged} event. *

    - * @param {T} o The item. - * @param {boolean} selected Whether or not the item is selected after the change. + * @param o The item. + * @param selected Whether or not the item is selected after the change. * @protected */ onItemSelectionChanged(o:T,selected:boolean):void; /** * Removes the given item from the selection in response to the item being removed from the domain. - * @param {T} item The item to remove from the considered items. + * @param item The item to remove from the considered items. */ removeDomainItem(item:T):void; /** * Sets the selection state of the item. - * @param {T} item - * @param {boolean} selected + * @param item + * @param selected */ setSelected(item:T,selected:boolean):void; /** @@ -12788,12 +13138,12 @@ declare namespace system{ size:number; /** * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * @param listener */ addItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * @param listener */ removeItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; static $class:yfiles.lang.Class; @@ -12815,7 +13165,7 @@ declare namespace system{ * implementation which will do the actual installation of the decoration in the canvas. *

    * Type parameter T: The type of the items. - * @class yfiles.view.FocusIndicatorManager. + * @class * @extends {yfiles.view.ModelManager.} * @implements {yfiles.lang.IPropertyObservable} * @template T @@ -12824,8 +13174,7 @@ declare namespace system{ export class FocusIndicatorManager { /** * Creates an instance that for all focused items in the model dynamically installs a decoration. - * @param {yfiles.view.CanvasComponent} canvas The canvas to add the focus marks to. - * @constructor + * @param canvas The canvas to add the focus marks to. */ constructor(canvas:yfiles.view.CanvasComponent); /** @@ -12840,7 +13189,7 @@ declare namespace system{ * This method raises the {@link yfiles.view.FocusIndicatorManager.#addPropertyChangedListener PropertyChanged} event. Subclasses overriding this method should make sure to invoke * the super class implementation. *

    - * @param {yfiles.lang.PropertyChangedEventArgs} evt a description of the event + * @param evt a description of the event * @see yfiles.view.FocusIndicatorManager.#focusedItem * @see yfiles.view.FocusIndicatorManager.#addPropertyChangedListener * @protected @@ -12848,13 +13197,13 @@ declare namespace system{ onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; /** * Adds the given listener for the PropertyChanged event that occurs when the {@link yfiles.view.FocusIndicatorManager.#focusedItem} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.FocusIndicatorManager.#removePropertyChangedListener */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when the {@link yfiles.view.FocusIndicatorManager.#focusedItem} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.FocusIndicatorManager.#addPropertyChangedListener */ removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -12868,7 +13217,7 @@ declare namespace system{ *

    * The default is {@link yfiles.view.ShowFocusPolicy#WHEN_FOCUSED}. *

    - * @default 1 + * @default yfiles.view.ShowFocusPolicy.WHEN_FOCUSED * @type {yfiles.view.ShowFocusPolicy} */ showFocusPolicy:yfiles.view.ShowFocusPolicy; @@ -12886,7 +13235,7 @@ declare namespace system{ * implementation which will do the actual installation of the decoration in the canvas. *

    * Type parameter T: The type of the items. - * @class yfiles.view.HighlightIndicatorManager. + * @class * @extends {yfiles.view.ModelManager.} * @template T */ @@ -12894,14 +13243,13 @@ declare namespace system{ export class HighlightIndicatorManager { /** * Creates an instance that for all selected items in the model dynamically installs a highlight decoration. - * @param {yfiles.view.CanvasComponent} canvas The canvas to add the selection marks to. - * @param {yfiles.view.ISelectionModel.} [selectionModel=null] The model that determines which items are highlighted. - * @constructor + * @param canvas The canvas to add the selection marks to. + * @param [selectionModel=null] The model that determines which items are highlighted. */ constructor(canvas:yfiles.view.CanvasComponent,selectionModel?:yfiles.view.ISelectionModel); /** * Adds another highlight. - * @param {T} item The item to highlight. + * @param item The item to highlight. */ addHighlight(item:T):void; /** @@ -12910,7 +13258,7 @@ declare namespace system{ clearHighlights():void; /** * Removes an item from the current highlight selection. - * @param {T} item The item whose highlight decorator will be removed. + * @param item The item whose highlight decorator will be removed. */ removeHighlight(item:T):void; /** @@ -12934,10 +13282,10 @@ declare namespace system{ /** * This the main method of the interface that performs the installation of an item's visual representation in the {@link yfiles.view.CanvasComponent canvas} by * adding {@link yfiles.view.ICanvasObject}s. - * @param {yfiles.view.ICanvasContext} context The context that contains the information required to install the visual representation. - * @param {yfiles.view.ICanvasObjectGroup} group The canvas object group to add the newly generated {@link yfiles.view.ICanvasObject} to. - * @param {Object} item The item to install. - * @returns {yfiles.view.ICanvasObject} The newly generated {@link yfiles.view.ICanvasObject} for the item's visual representation. null if nothing was installed. + * @param context The context that contains the information required to install the visual representation. + * @param group The canvas object group to add the newly generated {@link } to. + * @param item The item to install. + * @returns The newly generated {@link } for the item's visual representation. null if nothing was installed. * @abstract */ addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; @@ -12987,8 +13335,8 @@ declare namespace system{ clear():void; /** * Determines whether an item is currently selected. - * @param {T} item The item to check. - * @returns {boolean} Whether it is currently selected. + * @param item The item to check. + * @returns Whether it is currently selected. * @abstract */ isSelected(item:T):boolean; @@ -12997,8 +13345,8 @@ declare namespace system{ *

    * If the state changes, this will trigger the {@link yfiles.view.ISelectionModel.#addItemSelectionChangedListener ItemSelectionChanged} event. *

    - * @param {T} item The item to set the selection state for. - * @param {boolean} selected Whether to select the object. + * @param item The item to set the selection state for. + * @param selected Whether to select the object. * @abstract */ setSelected(item:T,selected:boolean):void; @@ -13011,7 +13359,7 @@ declare namespace system{ /** * Adds the given listener for the ItemSelectionChanged event that occurs when an item changed its selection state from * selected to unselected or vice versa. - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.ISelectionModel.#setSelected * @see yfiles.view.ISelectionModel.#removeItemSelectionChangedListener * @abstract @@ -13020,7 +13368,7 @@ declare namespace system{ /** * Removes the given listener for the ItemSelectionChanged event that occurs when an item changed its selection state from * selected to unselected or vice versa. - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.ISelectionModel.#setSelected * @see yfiles.view.ISelectionModel.#addItemSelectionChangedListener * @abstract @@ -13034,7 +13382,7 @@ declare namespace system{ /** * Provides data for the {@link yfiles.view.ISelectionModel.#addItemSelectionChangedListener ItemSelectionChanged} event. * Type parameter T. - * @class yfiles.view.ItemSelectionChangedEventArgs. + * @class * @extends {yfiles.collections.ItemEventArgs.} * @template T * @final @@ -13043,9 +13391,8 @@ declare namespace system{ export class ItemSelectionChangedEventArgs { /** * Initializes a new event argument instance for the given item and its selection state. - * @param {T} item The item whose {@link yfiles.view.ISelectionModel.#isSelected selection state} has changed. - * @param {boolean} selected The value indicating whether the item is selected after the change. - * @constructor + * @param item The item whose {@link #isSelected selection state} has changed. + * @param selected The value indicating whether the item is selected after the change. */ constructor(item:T,selected:boolean); /** @@ -13058,16 +13405,15 @@ declare namespace system{ /** * Manages the visual representations of items in a {@link yfiles.view.CanvasComponent}. * Type parameter T: The type of items this instance deals with. - * @class yfiles.view.ModelManager. + * @class * @template T */ export interface ModelManager extends Object{} export class ModelManager { /** * Creates a new instance that will manage the items for the given canvas. - * @param {yfiles.view.CanvasComponent} canvas The canvas to manage. + * @param canvas The canvas to manage. * @protected - * @constructor */ constructor(canvas:yfiles.view.CanvasComponent); /** @@ -13075,8 +13421,8 @@ declare namespace system{ *

    * If {@link yfiles.view.ModelManager.#enabled} is set to false the item will not be installed. *

    - * @param {T} item The item to add. - * @returns {yfiles.view.ICanvasObject} The newly created canvas object or null if nothing was installed. + * @param item The item to add. + * @returns The newly created canvas object or null if nothing was installed. * @protected */ add(item:T):yfiles.view.ICanvasObject; @@ -13085,8 +13431,8 @@ declare namespace system{ *

    * Returning null will cause {@link yfiles.view.ModelManager.#install} not to install anything. *

    - * @param {T} item The item to find a canvas object group for. - * @returns {yfiles.view.ICanvasObjectGroup} An {@link yfiles.view.ICanvasObjectGroup} or null + * @param item The item to find a canvas object group for. + * @returns An {@link } or null * @protected * @abstract */ @@ -13099,8 +13445,8 @@ declare namespace system{ *

    * Returning null will cause {@link yfiles.view.ModelManager.#install} not to install anything. *

    - * @param {T} item The item to find an installer for. - * @returns {yfiles.view.ICanvasObjectInstaller} An installer or null + * @param item The item to find an installer for. + * @returns An installer or null * @protected * @abstract */ @@ -13108,8 +13454,8 @@ declare namespace system{ /** * Installs a member of the collection into the canvas using the {@link yfiles.view.ICanvasObjectDescriptor} which is returned by * {@link yfiles.view.ModelManager.#getInstaller}. - * @param {T} item The member to install. - * @returns {yfiles.view.ICanvasObject} The canvas object that has been returned by the installer. + * @param item The member to install. + * @returns The canvas object that has been returned by the installer. * @protected */ install(item:T):yfiles.view.ICanvasObject; @@ -13127,13 +13473,13 @@ declare namespace system{ onEnabled():void; /** * Uninstalls the provided item and removes it from this managers set of managed items. - * @param {T} item The item to remove. + * @param item The item to remove. * @protected */ remove(item:T):void; /** * Simple implementation that removes the given {@link yfiles.view.ICanvasObject}. - * @param {yfiles.view.ICanvasObject} canvasObject The canvas objects that have been associated with the descriptor. + * @param canvasObject The canvas objects that have been associated with the descriptor. * @see yfiles.view.ICanvasObject#remove * @protected */ @@ -13165,7 +13511,7 @@ declare namespace system{ * decoration in the canvas. *

    * Type parameter T: The type of the items in the collection and selection model. - * @class yfiles.view.SelectionIndicatorManager. + * @class * @extends {yfiles.view.ModelManager.} * @template T */ @@ -13173,21 +13519,20 @@ declare namespace system{ export class SelectionIndicatorManager { /** * Creates an instance that for all selected items in the model dynamically installs a selection render decoration. - * @param {yfiles.view.CanvasComponent} canvas The canvas to add the selection marks to. - * @param {yfiles.collections.IObservableCollection.} model The model that holds the domain. - * @param {yfiles.view.ISelectionModel.} selectionModel The model that determines which items are selected. - * @constructor + * @param canvas The canvas to add the selection marks to. + * @param model The model that holds the domain. + * @param selectionModel The model that determines which items are selected. */ constructor(canvas:yfiles.view.CanvasComponent,model:yfiles.collections.IObservableCollection,selectionModel:yfiles.view.ISelectionModel); /** * Adds an item to the current selection. - * @param {T} item The item whose selection decorator will added. - * @returns {yfiles.view.ICanvasObject} + * @param item The item whose selection decorator will added. + * @returns */ addSelection(item:T):yfiles.view.ICanvasObject; /** * Removes an item from the current selection. - * @param {T} item The item whose selection decorator will be removed. + * @param item The item whose selection decorator will be removed. */ removeSelection(item:T):void; /** @@ -13208,19 +13553,57 @@ declare namespace system{ model:yfiles.collections.IObservableCollection; static $class:yfiles.lang.Class; } + /** + * A container that can hold a number of {@link yfiles.view.SvgVisual}s. + *

    + * Use this class in a {@link yfiles.view.IVisualCreator} implementation to group several {@link yfiles.view.SvgVisual}s. + *

    + *

    + * The class cannot be used to group {@link yfiles.view.HtmlCanvasVisual}s. + *

    + * @class + * @extends {yfiles.view.SvgVisual} + */ + export interface SvgVisualGroup extends yfiles.view.SvgVisual{} + export class SvgVisualGroup { + /** + * Initializes a new instance of the {@link yfiles.view.SvgVisualGroup} class. + */ + constructor(); + /** + * Adds another {@link yfiles.view.SvgVisual} to the children collection of this instance. + * @param child The child to add. + */ + add(child:yfiles.view.SvgVisual):void; + /** + * Removes a previously added {@link yfiles.view.SvgVisual} from the children collection of this instance. + * @param child The child to remove. + */ + remove(child:yfiles.view.SvgVisual):void; + /** + * Gets or sets a transform that is applied to the children of the container. + * @type {yfiles.geometry.Matrix} + */ + transform:yfiles.geometry.Matrix; + /** + * Provides read and write access to the list of children. + * @type {yfiles.collections.IList.} + */ + children:yfiles.collections.IList; + static $class:yfiles.lang.Class; + } /** * Renders a grid using various different {@link yfiles.view.GridVisualCreator#gridStyle styles}. * @see yfiles.view.GridInfo * @see yfiles.view.GridVisualCreator#gridStyle - * @class yfiles.view.GridVisualCreator + * @class * @implements {yfiles.view.IVisualCreator} */ export interface GridVisualCreator extends Object,yfiles.view.IVisualCreator{} export class GridVisualCreator { /** * Initializes a new instance of the {@link yfiles.view.GridVisualCreator} class. - * @param {yfiles.view.GridInfo} gridInfo The grid info. - * @constructor + * @param gridInfo The grid info. */ constructor(gridInfo:yfiles.view.GridInfo); /** @@ -13228,9 +13611,8 @@ declare namespace system{ *

    * This initializes the {@link yfiles.view.GridVisualCreator#gridInfo} field using the given values. *

    - * @param {number} horizontalSpacing The x spacing. - * @param {number} verticalSpacing The y spacing. - * @constructor + * @param horizontalSpacing The x spacing. + * @param verticalSpacing The y spacing. */ constructor(horizontalSpacing:number,verticalSpacing:number); /** @@ -13238,25 +13620,24 @@ declare namespace system{ *

    * The spacing is initialized to 25 units. *

    - * @constructor */ constructor(); /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** * Gets or sets the grid style that this implementation uses. - * @default 0 + * @default yfiles.view.GridStyle.DOTS * @type {yfiles.view.GridStyle} */ gridStyle:yfiles.view.GridStyle; @@ -13325,8 +13706,8 @@ declare namespace system{ * {@link yfiles.geometry.Rect#INFINITE}. If nothing is rendered, this method should return an empty rectangle, where either or * both the width and height is non-positive or {@link yfiles.geometry.Rect#EMPTY}. *

    - * @param {yfiles.view.ICanvasContext} context the context to calculate the bounds for - * @returns {yfiles.geometry.Rect} the bounds or {@link yfiles.geometry.Rect#EMPTY} to indicate an unbound area + * @param context the context to calculate the bounds for + * @returns the bounds or {@link #EMPTY} to indicate an unbound area * @abstract */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; @@ -13334,8 +13715,8 @@ declare namespace system{ var IBoundsProvider:{ /** * Creates an instance that returns the given model as the bounds. - * @param {yfiles.geometry.IRectangle} bounds the rectangle - * @returns {yfiles.view.IBoundsProvider} + * @param bounds the rectangle + * @returns * @static */ fromRectangle?(bounds:yfiles.geometry.IRectangle):yfiles.view.IBoundsProvider; @@ -13375,9 +13756,9 @@ declare namespace system{ *

    * Conservative implementations can always return true. *

    - * @param {yfiles.view.ICanvasContext} context The context to determine the visibility for. - * @param {yfiles.geometry.Rect} rectangle The visible region clip. - * @returns {boolean} false if and only if it is safe not to paint the element because it would not affect the given clipping region. + * @param context The context to determine the visibility for. + * @param rectangle The visible region clip. + * @returns false if and only if it is safe not to paint the element because it would not affect the given clipping region. * @abstract */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; @@ -13405,17 +13786,13 @@ declare namespace system{ * Disables caching of {@link yfiles.view.Visual}s completely. */ NEVER, - /** - * {@link yfiles.view.Visual}s will be cached using a weak reference, which means they might be removed by the Garbage Collection. - */ - WEAK, /** * {@link yfiles.view.Visual}s will always be cached. *

    * The cached reference will be kept until the corresponding {@link yfiles.view.ICanvasObject} is removed. *

    */ - STRONG + ALWAYS } /** * An interface that describes the current context for rendering routines. @@ -13435,7 +13812,7 @@ declare namespace system{ *

    * If the visual has not been registered previously this method will do nothing. *

    - * @param {yfiles.view.Visual} visual The visual which has been removed. + * @param visual The visual which has been removed. * @see yfiles.view.IRenderContext#setDisposeCallback * @see yfiles.view.IVisualCreator * @see yfiles.view.IVisualCreator#updateVisual @@ -13454,9 +13831,9 @@ declare namespace system{ *

    * The registered callback has to call {@link yfiles.view.IRenderContext#childVisualRemoved} on all child visuals of the visual. *

    - * @param {yfiles.view.Visual} visual The visual to be registered. This is the visual which is returned by the {@link yfiles.view.IVisualCreator#createVisual} or {@link yfiles.view.IVisualCreator#updateVisual} + * @param visual The visual to be registered. This is the visual which is returned by the {@link #createVisual} or {@link #updateVisual} * method which calls this method. - * @param {function(yfiles.view.IRenderContext, yfiles.view.Visual, boolean): yfiles.view.Visual} callback A dispose visual callback which calls {@link yfiles.view.IRenderContext#childVisualRemoved} on all child visuals of the + * @param callback A dispose visual callback which calls {@link #childVisualRemoved} on all child visuals of the * registered visual. */ registerForChildrenIfNecessary?(visual:yfiles.view.Visual,callback:(context:yfiles.view.IRenderContext,removedVisual:yfiles.view.Visual,dispose:boolean)=>yfiles.view.Visual):void; @@ -13471,16 +13848,16 @@ declare namespace system{ *

    * The callback can also be used to support caching for temporarily removed visuals. See dispose visual callback. *

    - * @param {yfiles.view.Visual} visual The visual which needs to be disposed after removal. - * @param {function(yfiles.view.IRenderContext, yfiles.view.Visual, boolean): yfiles.view.Visual} callback A callback which will dispose the visual. + * @param visual The visual which needs to be disposed after removal. + * @param callback A callback which will dispose the visual. * @see yfiles.view.IVisualCreator * @see yfiles.view.IVisualCreator#createVisual */ setDisposeCallback?(visual:yfiles.view.Visual,callback:(context:yfiles.view.IRenderContext,removedVisual:yfiles.view.Visual,dispose:boolean)=>yfiles.view.Visual):void; /** * Converts the given set of world coordinates to a coordinate pair that can be used to render within the {@link yfiles.view.IRenderContext#viewTransform}. - * @param {yfiles.geometry.Point} worldPoint The coordinates in the world coordinate system. - * @returns {yfiles.geometry.Point} The coordinates in the view coordinate system. + * @param worldPoint The coordinates in the world coordinate system. + * @returns The coordinates in the view coordinate system. * @see yfiles.view.IRenderContext#viewTransform * @abstract */ @@ -13540,8 +13917,8 @@ declare namespace system{ * {@link yfiles.view.CanvasComponent} uses this interface through the {@link yfiles.view.ICanvasObjectDescriptor} to populate the visual * canvas object tree. *

    - * @param {yfiles.view.IRenderContext} context The context that describes where the visual will be used. - * @returns {yfiles.view.Visual} The visual to include in the canvas object visual tree. This may be null. + * @param context The context that describes where the visual will be used. + * @returns The visual to include in the canvas object visual tree. This may be null. * @see yfiles.view.IVisualCreator#updateVisual * @abstract */ @@ -13554,10 +13931,10 @@ declare namespace system{ * previously been created by the same instance during a call to {@link yfiles.view.IVisualCreator#createVisual}. Implementation * may update the oldVisual and return that same reference, or create a new visual and return the new instance or null. *

    - * @param {yfiles.view.IRenderContext} context The context that describes where the visual will be used in. - * @param {yfiles.view.Visual} oldVisual The visual instance that had been returned the last time the {@link yfiles.view.IVisualCreator#createVisual} method was called + * @param context The context that describes where the visual will be used in. + * @param oldVisual The visual instance that had been returned the last time the {@link #createVisual} method was called * on this instance. - * @returns {yfiles.view.Visual} oldVisual, if this instance modified the visual, or a new visual that should replace the existing one in the canvas + * @returns oldVisual, if this instance modified the visual, or a new visual that should replace the existing one in the canvas * object visual tree. * @see yfiles.view.IVisualCreator#createVisual * @see yfiles.view.ICanvasObjectDescriptor @@ -13576,7 +13953,7 @@ declare namespace system{ * Use {@link yfiles.view.VoidVisualCreator#INSTANCE} for methods that require non-null {@link yfiles.view.IVisualCreator} implementations * if you want to have no visualization. *

    - * @class yfiles.view.VoidVisualCreator + * @class * @implements {yfiles.view.IVisualCreator} * @final */ @@ -13584,15 +13961,15 @@ declare namespace system{ export class VoidVisualCreator { /** * Returns null. - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * Returns null. - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -13612,7 +13989,7 @@ declare namespace system{ * instance that is passed in the constructor as a parameter or the return value of the method {@link yfiles.view.OrientedRectangleIndicatorInstaller#getRectangle} * if the former does not exist (i.e. the parameterless constructor was used to instantiate this class). *

    - * @class yfiles.view.OrientedRectangleIndicatorInstaller + * @class * @implements {yfiles.view.ISelectionIndicatorInstaller} * @implements {yfiles.view.IHighlightIndicatorInstaller} * @implements {yfiles.view.IFocusIndicatorInstaller} @@ -13629,9 +14006,8 @@ declare namespace system{ * If the {@link yfiles.view.OrientedRectangleIndicatorInstaller#template} property is not set, the templateKey is used to lookup a {@link yfiles.view.IVisualTemplate} in the resources of the * {@link yfiles.view.CanvasComponent}. If there is none, a default templated is used. *

    - * @param {yfiles.geometry.IOrientedRectangle} fixedBounds - * @param {string} [templateKey=null] - * @constructor + * @param fixedBounds + * @param [templateKey=null] */ constructor(fixedBounds:yfiles.geometry.IOrientedRectangle,templateKey?:string); /** @@ -13640,15 +14016,14 @@ declare namespace system{ * The object that is created through this constructor relies on the value returned by the {@link yfiles.view.OrientedRectangleIndicatorInstaller#getRectangle} * method to {@link yfiles.view.ICanvasObjectGroup#addChild add} to the {@link yfiles.view.ICanvasObjectGroup} in the {@link yfiles.view.ICanvasObjectInstaller#addCanvasObject} method. *

    - * @constructor */ constructor(); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.view.ICanvasObjectGroup} group - * @param {Object} item - * @returns {yfiles.view.ICanvasObject} + * @param context + * @param group + * @param item + * @returns */ addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; /** @@ -13661,8 +14036,8 @@ declare namespace system{ *

    * This implementation returns null for every given object. *

    - * @param {Object} item - * @returns {yfiles.geometry.IOrientedRectangle} An {@link yfiles.geometry.IOrientedRectangle} for the given item that is {@link yfiles.view.ICanvasObjectGroup#addChild added} to the {@link yfiles.view.ICanvasObjectGroup}. + * @param item + * @returns An {@link } for the given item that is {@link #addChild added} to the {@link }. * @protected */ getRectangle(item:Object):yfiles.geometry.IOrientedRectangle; @@ -13701,23 +14076,22 @@ declare namespace system{ /** * A simple {@link yfiles.view.ISelectionIndicatorInstaller} implementation that draws an ellipse centered at a given point in * world coordinate space. - * @class yfiles.view.PointSelectionIndicatorInstaller + * @class * @implements {yfiles.view.ISelectionIndicatorInstaller} */ export interface PointSelectionIndicatorInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller{} export class PointSelectionIndicatorInstaller { /** * Creates a new instance that indicates a point. - * @param {yfiles.geometry.IPoint} point The point to use for the center of the painting. - * @constructor + * @param point The point to use for the center of the painting. */ constructor(point:yfiles.geometry.IPoint); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.view.ICanvasObjectGroup} group - * @param {Object} item - * @returns {yfiles.view.ICanvasObject} + * @param context + * @param group + * @param item + * @returns */ addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; /** @@ -13725,18 +14099,18 @@ declare namespace system{ *

    * This implementation simply returns the value provided to the constructor. *

    - * @param {Object} userObject - * @returns {yfiles.geometry.IPoint} + * @param userObject + * @returns * @protected */ getCenterPoint(userObject:Object):yfiles.geometry.IPoint; /** - * Gets or sets the {@link yfiles.view.PointSelectionIndicatorInstaller#stroke} to use for drawing the point in the view coordinate system. + * Gets or sets the {@link yfiles.view.Stroke} to use for drawing the point in the view coordinate system. * @type {yfiles.view.Stroke} */ stroke:yfiles.view.Stroke; /** - * Gets or sets the brush to use for filling the point's ellipse in the view coordinate system. + * Gets or sets the {@link yfiles.view.Fill} to use for filling the point's ellipse in the view coordinate system. * @type {yfiles.view.Fill} */ fill:yfiles.view.Fill; @@ -13750,7 +14124,7 @@ declare namespace system{ * instance that is passed in the constructor as a parameter or the return value of the method {@link yfiles.view.RectangleIndicatorInstaller#getRectangle} * if the former does not exist (i.e. the parameterless constructor was used to instantiate this class). *

    - * @class yfiles.view.RectangleIndicatorInstaller + * @class * @implements {yfiles.view.ISelectionIndicatorInstaller} * @implements {yfiles.view.IHighlightIndicatorInstaller} * @implements {yfiles.view.IFocusIndicatorInstaller} @@ -13767,9 +14141,8 @@ declare namespace system{ * If the {@link yfiles.view.RectangleIndicatorInstaller#template} property is not set, the resourceKey is used to lookup a {@link yfiles.view.IVisualTemplate} in the resources of the * {@link yfiles.view.CanvasComponent}. If there is none, a default templated is used. *

    - * @param {yfiles.geometry.IRectangle} fixedBounds - * @param {string} [resourceKey=null] - * @constructor + * @param fixedBounds + * @param [resourceKey=null] */ constructor(fixedBounds:yfiles.geometry.IRectangle,resourceKey?:string); /** @@ -13778,15 +14151,14 @@ declare namespace system{ * The object that is created through this constructor relies on the value returned by the {@link yfiles.view.RectangleIndicatorInstaller#getRectangle} * method to {@link yfiles.view.ICanvasObjectGroup#addChild add} to the {@link yfiles.view.ICanvasObjectGroup} in the {@link yfiles.view.ICanvasObjectInstaller#addCanvasObject} method. *

    - * @constructor */ constructor(); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.view.ICanvasObjectGroup} group - * @param {Object} item - * @returns {yfiles.view.ICanvasObject} + * @param context + * @param group + * @param item + * @returns */ addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; /** @@ -13799,8 +14171,8 @@ declare namespace system{ *

    * This implementation returns null for every given object. *

    - * @param {Object} userObject - * @returns {yfiles.geometry.IRectangle} An {@link yfiles.geometry.IRectangle} for the given item that is {@link yfiles.view.ICanvasObjectGroup#addChild added} to the {@link yfiles.view.ICanvasObjectGroup}. + * @param userObject + * @returns An {@link } for the given item that is {@link #addChild added} to the {@link }. * @protected */ getRectangle(userObject:Object):yfiles.geometry.IRectangle; @@ -13836,1573 +14208,1231 @@ declare namespace system{ template:yfiles.view.IVisualTemplate; static $class:yfiles.lang.Class; } - export enum MouseEventTypes{ - /** - * Not a mouse event. - */ - NONE, - /** - * The mouse has been moved. - */ - MOVE, - /** - * The mouse has been dragged, which means that it has been moved while at least one button has been pressed. - */ - DRAG, - /** - * A button has been pressed. - */ - DOWN, - /** - * A button has been released. - *

    - * If there was no drag event since the last press event, this will result in a click. - *

    - */ - UP, - /** - * The mouse has entered the control's bounds. - */ - ENTER, - /** - * The mouse has exited the control's bounds. - */ - LEAVE, - /** - * The mouse wheel has been turned. - */ - WHEEL, - /** - * A mouse click has been recognized. - *

    - * This is the case if a press has directly been followed by a release. - *

    - */ - CLICK, - /** - * Mouse input capture has been lost. - *

    - * This can happen during mouse drags, if any button is pressed and the focus is taken from the application or transferred - * to another component by other means then moving the mouse. - *

    - */ - LOST_CAPTURE - } /** - * Complex event arguments that is used by the {@link yfiles.view.CanvasComponent} to indicate mouse events in world coordinates. - * @class yfiles.view.MouseEventArgs - * @extends {yfiles.lang.EventArgs} - */ - export interface MouseEventArgs extends yfiles.lang.EventArgs{} - export class MouseEventArgs { - /** - * Constructs a new mouse event argument. - * @param {yfiles.view.MouseEventTypes} eventType The type of the event - * @param {yfiles.geometry.Point} location the position of the mouse in world coordinates at the time of the event - * @param {yfiles.view.MouseButtons} [changedButtons=yfiles.view.MouseButtons.NONE] the mouse buttons that have changed state if the type of event is {@link yfiles.view.MouseEventTypes#DOWN} or - * {@link yfiles.view.MouseEventTypes#UP} - * @param {yfiles.view.ModifierKeys} [changedModifiers=yfiles.view.ModifierKeys.NONE] the modifier Keys that have been changed - * @param {yfiles.view.MouseButtons} [buttons=yfiles.view.MouseButtons.NONE] the current state of the MouseButtons - * @param {yfiles.view.ModifierKeys} [modifiers=yfiles.view.ModifierKeys.NONE] the current state of the modifier Keys - * @param {number} [clickCount=0] the number of clicks this event represents, 2 for a double click - * @param {number} [mouseWheelDelta=0] the signed number of mouse wheel turn units - * @param {number} [scrollAmount=0] The number of lines to scroll, if scrollType is {@link yfiles.view.MouseWheelDeltaMode#LINES}. - * @param {yfiles.view.MouseWheelDeltaMode} [scrollType=yfiles.view.MouseWheelDeltaMode.LINES] The type of scrolling performed. - * @param {Event} originalEvent - * @constructor - */ - constructor(originalEvent:Event,eventType:yfiles.view.MouseEventTypes,location:yfiles.geometry.Point,changedButtons?:yfiles.view.MouseButtons,changedModifiers?:yfiles.view.ModifierKeys,buttons?:yfiles.view.MouseButtons,modifiers?:yfiles.view.ModifierKeys,clickCount?:number,mouseWheelDelta?:number,scrollAmount?:number,scrollType?:yfiles.view.MouseWheelDeltaMode); - /** - * Constructs a new mouse event argument. - * @param {Object} options The parameters to pass. - * @param {yfiles.view.MouseEventTypes} options.eventType The type of the event - * @param {yfiles.geometry.Point} options.location the position of the mouse in world coordinates at the time of the event - * @param {yfiles.view.MouseButtons} [options.changedButtons=yfiles.view.MouseButtons.NONE] the mouse buttons that have changed state if the type of event is {@link yfiles.view.MouseEventTypes#DOWN} or - * {@link yfiles.view.MouseEventTypes#UP} - * @param {yfiles.view.ModifierKeys} [options.changedModifiers=yfiles.view.ModifierKeys.NONE] the modifier Keys that have been changed - * @param {yfiles.view.MouseButtons} [options.buttons=yfiles.view.MouseButtons.NONE] the current state of the MouseButtons - * @param {yfiles.view.ModifierKeys} [options.modifiers=yfiles.view.ModifierKeys.NONE] the current state of the modifier Keys - * @param {number} [options.clickCount=0] the number of clicks this event represents, 2 for a double click - * @param {number} [options.mouseWheelDelta=0] the signed number of mouse wheel turn units - * @param {number} [options.scrollAmount=0] The number of lines to scroll, if scrollType is {@link yfiles.view.MouseWheelDeltaMode#LINES}. - * @param {yfiles.view.MouseWheelDeltaMode} [options.scrollType=yfiles.view.MouseWheelDeltaMode.LINES] The type of scrolling performed. - * @param {Event} options.originalEvent - * @constructor - */ - constructor(options:{originalEvent:Event,eventType:yfiles.view.MouseEventTypes,location:yfiles.geometry.Point,changedButtons?:yfiles.view.MouseButtons,changedModifiers?:yfiles.view.ModifierKeys,buttons?:yfiles.view.MouseButtons,modifiers?:yfiles.view.ModifierKeys,clickCount?:number,mouseWheelDelta?:number,scrollAmount?:number,scrollType?:yfiles.view.MouseWheelDeltaMode}); - /** - * Sets this event's {@link yfiles.view.MouseEventArgs#defaultPrevented} property to true signalling that the event has been properly handled and any default behaviors should - * be prevented. - *

    - * This will call the corresponding method on the {@link yfiles.view.MouseEventArgs#originalEvent original native event}. - *

    - * @see yfiles.view.MouseEventArgs#defaultPrevented - */ - preventDefault():void; - /** - * Gets the type of this event. - * @type {yfiles.view.MouseEventTypes} - */ - eventType:yfiles.view.MouseEventTypes; - /** - * Returns the coordinates in the world coordinate space associated with this event. - * @type {yfiles.geometry.Point} - */ - location:yfiles.geometry.Point; - /** - * Returns the number of clicks the current event represents if it is of type {@link yfiles.view.MouseEventTypes#CLICK}. - * @type {number} - */ - clickCount:number; - /** - * Gets the signed number of mouse wheel turn units. - *

    - * Note that this can, for high-precision mouse wheels, include fractional turns. - *

    - * @type {number} - */ - wheelDelta:number; - /** - * Gets the distance to scroll at once when {@link yfiles.view.MouseEventArgs#deltaMode} is {@link yfiles.view.MouseWheelDeltaMode#LINES}. - *

    - * This is a system setting that only applies to scrolling (not zooming) and usually translates to the number of small - * scroll increments per scroll wheel notch. - *

    - *

    - * This property has a value of 1 if {@link yfiles.view.MouseEventArgs#deltaMode} is {@link yfiles.view.MouseWheelDeltaMode#PAGE}, as it is not applicable in that case. - *

    - * @type {number} - */ - scrollAmount:number; - /** - * Gets the scrolling behavior. - *

    - * This is a system setting that only applies to scrolling (not zooming) and can be either - * {@link yfiles.view.MouseWheelDeltaMode#LINES}, in which case {@link yfiles.view.MouseEventArgs#scrollAmount} will contain the number of "lines" to scroll with each scroll - * wheel notch, or {@link yfiles.view.MouseWheelDeltaMode#PAGE} in which case a single scroll wheel notch should scroll a "page" at - * a time. - *

    - * @type {yfiles.view.MouseWheelDeltaMode} - */ - deltaMode:yfiles.view.MouseWheelDeltaMode; - /** - * Returns the modifier keys that have changed for this event. - * @see yfiles.view.MouseEventArgs#modifiers - * @type {yfiles.view.ModifierKeys} - */ - changedModifiers:yfiles.view.ModifierKeys; - /** - * Returns the mouse buttons that have changed for this event. - * @see yfiles.view.MouseEventArgs#buttons - * @type {yfiles.view.MouseButtons} - */ - changedButtons:yfiles.view.MouseButtons; - /** - * The state of the modifier keys at the time of the event creation. - * @type {yfiles.view.ModifierKeys} - */ - modifiers:yfiles.view.ModifierKeys; - /** - * The state of the mouse buttons at the time of the event creation. - * @type {yfiles.view.MouseButtons} - */ - buttons:yfiles.view.MouseButtons; - /** - * Gets the original DOM event associated with this event. - * @type {Event} - */ - originalEvent:Event; - /** - * Gets a value indicating whether the default behaviors for this event have been prevented by a previous call to - * {@link yfiles.view.MouseEventArgs#preventDefault}. - * @type {boolean} - */ - defaultPrevented:boolean; - static $class:yfiles.lang.Class; - } - export enum MouseWheelDeltaMode{ - /** - * Scrolling should scroll a set number of lines per mouse wheel notch. - * @see yfiles.view.MouseEventArgs#scrollAmount - */ - LINES, - /** - * Scrolling should scroll a single "page" per mouse wheel notch. - */ - PAGE - } - export enum TouchEventTypes{ - /** - * Not a touch event. - */ - NONE, - /** - * A pointer has been moved. - */ - MOVE, - /** - * A touch device went down. - */ - DOWN, - /** - * A touch device went up. - */ - UP, - /** - * A touch device has entered the control's bounds. - */ - ENTER, - /** - * A touch device has exited the control's bounds. - */ - LEAVE, - /** - * A touch tap has been recognized. - *

    - * This is the case if a down has directly been followed by an up. - *

    - */ - TAP, - /** - * A long press has been recognized. - *

    - * This is the case if a down has been held a certain amount of time without a move. - *

    - */ - LONG_PRESS, - /** - * Touch capture has been lost while the device was down. or sent to the background or similar actions. - *

    - * This can be the case if the application or control is minimized - *

    - */ - LOST_CAPTURE - } - /** - * Complex event arguments that is used by the {@link yfiles.view.CanvasComponent} to indicate touch events in world coordinates. - * @class yfiles.view.TouchEventArgs - * @extends {yfiles.lang.EventArgs} - */ - export interface TouchEventArgs extends yfiles.lang.EventArgs{} - export class TouchEventArgs { - /** - * Constructs a new touch event argument. - * @param {yfiles.view.TouchEventTypes} eventType The type of the event - * @param {yfiles.geometry.Point} location The position of the touch device in world coordinates at the time of the event - * @param {yfiles.view.TouchDevice} device The device the event was triggered by - * @param {Event} originalEvent - * @constructor - */ - constructor(originalEvent:Event,eventType:yfiles.view.TouchEventTypes,location:yfiles.geometry.Point,device:yfiles.view.TouchDevice); - /** - * Constructs a new touch event argument. - * @param {yfiles.view.TouchEventTypes} eventType The type of the event - * @param {yfiles.geometry.Point} location The position of the touch device in world coordinates at the time of the event - * @param {yfiles.view.TouchDevice} device The device the event was triggered by - * @param {number} tapCount the number of taps this event represents, 2 for a double tap - * @param {Event} originalEvent - * @constructor - */ - constructor(originalEvent:Event,eventType:yfiles.view.TouchEventTypes,location:yfiles.geometry.Point,device:yfiles.view.TouchDevice,tapCount:number); - /** - * Sets this event's {@link yfiles.view.TouchEventArgs#defaultPrevented} property to true signalling that the event has been properly handled and any default behaviors should - * be prevented. - *

    - * This will call the corresponding method on the {@link yfiles.view.TouchEventArgs#originalEvent original native event}. - *

    - * @see yfiles.view.TouchEventArgs#defaultPrevented - */ - preventDefault():void; - /** - * Gets the type of this event. - * @type {yfiles.view.TouchEventTypes} - */ - eventType:yfiles.view.TouchEventTypes; - /** - * Returns the location represented by this event in world coordinates. - * @type {yfiles.geometry.Point} - */ - location:yfiles.geometry.Point; - /** - * Returns the touch device associated with this event. - * @type {yfiles.view.TouchDevice} - */ - device:yfiles.view.TouchDevice; - /** - * Returns the number of taps the current event represents if it is of type {@link yfiles.view.TouchEventTypes#TAP}. - * @type {number} - */ - tapCount:number; - /** - * Gets the original DOM event associated with this event. - * @type {Event} - */ - originalEvent:Event; - /** - * Gets a value indicating whether the default behaviors for this event have been prevented by a previous call to - * {@link yfiles.view.TouchEventArgs#preventDefault}. - * @type {boolean} - */ - defaultPrevented:boolean; - static $class:yfiles.lang.Class; - } - /** - * The representation of a touch point on the screen. - * @class yfiles.view.TouchDevice - */ - export interface TouchDevice extends Object{} - export class TouchDevice { - /** - * Gets the device's index - * @type {number} - */ - deviceIndex:number; - /** - * Gets a value indicating whether this device is the primary one. - *

    - * If {@link yfiles.view.TouchDevice#deviceIndex} is 0 this property has the value true, otherwise false. - *

    - * @type {boolean} - */ - isPrimaryDevice:boolean; - /** - * Gets the last device coordinate in the view coordinate system. - * @type {yfiles.geometry.Point} - */ - lastViewCoordinate:yfiles.geometry.Point; - /** - * Gets the time of the last {@link yfiles.view.TouchEventArgs event} that was raised by this device. - * @type {Date} - */ - lastEventTimeJS:Date; - /** - * Indicates if this device is currently down or not. - *

    - * Default is true. - *

    - * @type {boolean} - */ - isDown:boolean; - static $class:yfiles.lang.Class; - } - /** - * The event argument class that is used by {@link yfiles.view.DragSource#addQueryContinueDragListener QueryContinueDrag} - * during drags to query the drag source whether the drag should be continued. - * @class yfiles.view.QueryContinueDragEventArgs - * @extends {yfiles.lang.EventArgs} - * @final - */ - export interface QueryContinueDragEventArgs extends yfiles.lang.EventArgs{} - export class QueryContinueDragEventArgs { - /** - * Gets or sets the action. - * @type {yfiles.view.DragAction} - */ - action:yfiles.view.DragAction; - /** - * Gets a value indicating whether the escape key had been pressed. - * @type {boolean} - */ - escapePressed:boolean; - /** - * Gets the current state of the keys. - * @type {yfiles.view.DragDropKeyStates} - */ - keyStates:yfiles.view.DragDropKeyStates; - /** - * Gets or sets a value indicating whether this {@link yfiles.view.QueryContinueDragEventArgs} is handled. - * @type {boolean} - */ - handled:boolean; - static $class:yfiles.lang.Class; - } - export enum DragAction{ - /** - * Whether the drag should be continued. - */ - CONTINUE, - /** - * Whether the drag should be finalized by an immediate drop. - */ - DROP, - /** - * Whether the drag operation should be canceled. - */ - CANCEL - } - /** - * Helper class for drag and drop support that is used for the source of drag and drop operations. - * @class yfiles.view.DragSource - */ - export interface DragSource extends Object{} - export class DragSource { - /** - * Initializes a new instance of the {@link yfiles.view.DragSource} class setting the {@link yfiles.view.DragSource#source} property to the given element. - * @param {HTMLElement} source The source. - * @constructor - */ - constructor(source:HTMLElement); - /** - * Cleans up by removing the association with the {@link yfiles.view.DragSource#source} element. - */ - cleanUp():void; - /** - * Raises the {@link yfiles.view.DragSource#addQueryContinueDragListener QueryContinueDrag} event. - *

    - * If the event is not {@link yfiles.view.QueryContinueDragEventArgs#handled handled}, a default logic will be applied: the drag operation is canceled if the left mouse button is - * released or escape has been pressed, otherwise the drag will be {@link yfiles.view.DragAction#CONTINUE continued}. - *

    - * @param {yfiles.view.QueryContinueDragEventArgs} evt The {@link yfiles.view.QueryContinueDragEventArgs} instance containing the event data. - */ - onQueryContinueDrag(evt:yfiles.view.QueryContinueDragEventArgs):void; - /** - * Initiates a new drag operation using the provided drag data and effects. - *

    - * If useCssCursors is enabled, the following CSS classes are assigned to elements hovered during a drag operation, - * depending on the allowed drag-drop operations for these elements: - *

    - *
      - *
    • yfiles-cursor-dragdrop-move
    • - *
    • yfiles-cursor-dragdrop-link
    • - *
    • yfiles-cursor-dragdrop-all
    • - *
    • yfiles-cursor-dragdrop-no-drop
    • - *
    - * @param {yfiles.view.DragDropItem} dragData The data to use for the drag. - * @param {yfiles.view.DragDropEffects} [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed effects. - * @param {boolean} [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. - */ - startDrag(dragData:yfiles.view.DragDropItem,dragDropEffects?:yfiles.view.DragDropEffects,useCssCursors?:boolean):void; - /** - * Initiates a new drag operation using the provided drag data and effects. - *

    - * If useCssCursors is enabled, the following CSS classes are assigned to elements hovered during a drag operation, - * depending on the allowed drag-drop operations for these elements: - *

    - *
      - *
    • yfiles-cursor-dragdrop-move
    • - *
    • yfiles-cursor-dragdrop-link
    • - *
    • yfiles-cursor-dragdrop-all
    • - *
    • yfiles-cursor-dragdrop-no-drop
    • - *
    - * @param {Object} options The parameters to pass. - * @param {yfiles.view.DragDropItem} options.dragData The data to use for the drag. - * @param {yfiles.view.DragDropEffects} [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed effects. - * @param {boolean} [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. - */ - startDrag(options:{dragData:yfiles.view.DragDropItem,dragDropEffects?:yfiles.view.DragDropEffects,useCssCursors?:boolean}):void; - /** - * Adds the given listener for the QueryContinueDrag event that occurs when the state of the {@link yfiles.view.DragDropKeyStates} - * has changed to query the source whether the drag operation should be continued. - *

    - * Handlers should adjust the {@link yfiles.view.QueryContinueDragEventArgs#handled} and {@link yfiles.view.QueryContinueDragEventArgs#action} properties accordingly. - *

    - * @param {function(Object, yfiles.view.QueryContinueDragEventArgs): void} listener The listener to add. - * @see yfiles.view.DragSource#removeQueryContinueDragListener - */ - addQueryContinueDragListener(listener:(sender:Object,evt:yfiles.view.QueryContinueDragEventArgs)=>void):void; - /** - * Removes the given listener for the QueryContinueDrag event that occurs when the state of the {@link yfiles.view.DragDropKeyStates} - * has changed to query the source whether the drag operation should be continued. - *

    - * Handlers should adjust the {@link yfiles.view.QueryContinueDragEventArgs#handled} and {@link yfiles.view.QueryContinueDragEventArgs#action} properties accordingly. - *

    - * @param {function(Object, yfiles.view.QueryContinueDragEventArgs): void} listener The listener to remove. - * @see yfiles.view.DragSource#addQueryContinueDragListener - */ - removeQueryContinueDragListener(listener:(sender:Object,evt:yfiles.view.QueryContinueDragEventArgs)=>void):void; - /** - * Gets or sets the source element from which drags can originate. - *

    - * If the {@link yfiles.view.DragSource#allowDrag} property is enabled, this will automatically register mouse event handlers on the element that will recognize - * default drag gestures (press followed by drag) to {@link yfiles.view.DragSource#startDrag initiate a drag and drop operation}. - *

    - * @default null - * @type {HTMLElement} - */ - source:HTMLElement; - /** - * Gets or sets a value indicating whether default drag gestures should be automatically recognized on the {@link yfiles.view.DragSource#source}. - * @default false - * @type {boolean} - */ - allowDrag:boolean; - /** - * Gets or sets the data that will be used for the {@link yfiles.view.DragSource#allowDrag automatic drag operation}. - *

    - * If this data is not a {@link yfiles.view.DragDropItem}, the {@link yfiles.input.DropInputMode expected format} of the automatic drag operation will be code. - *

    - * @default null - * @type {Object} - */ - item:Object; - /** - * Gets or sets the {@link yfiles.view.DragSource#effectAllowed} that will be used for the {@link yfiles.view.DragSource#allowDrag automatic drag operation}. - * @default 7 - * @type {yfiles.view.DragDropEffects} - */ - effectAllowed:yfiles.view.DragDropEffects; - static $class:yfiles.lang.Class; - } - /** - * Helper class that plays the role of the target during a drag and drop operation that is initiated using {@link yfiles.view.DragSource#startDrag} - * in a {@link yfiles.view.DragSource}. - * @class yfiles.view.DropTarget - */ - export interface DropTarget extends Object{} - export class DropTarget { - /** - * Initializes a new instance of the {@link yfiles.view.DropTarget} class. - *

    - * In order to make the instance available to the drag and drop mechanisms, the {@link yfiles.view.DropTarget#setDropTarget} helper - * method should be used. If the optional element is passed in, it will automatically be registered. - *

    - * @param {Element} [element=null] The element to optionally {@link yfiles.view.DropTarget#setDropTarget associate} with the new instance. - * @see yfiles.view.DropTarget#setDropTarget - * @see yfiles.view.DropTarget#getDropTarget - * @constructor - */ - constructor(element?:Element); - /** - * Gets the {@link yfiles.view.DropTarget} instance associated with the given element. - * @param {Element} element The element to get the drop target instance of. - * @returns {yfiles.view.DropTarget} The associated instance or null. - * @see yfiles.view.DropTarget#setDropTarget - * @static - */ - static getDropTarget(element:Element):yfiles.view.DropTarget; - /** - * Sets the drop target for the given element. - * @param {Element} element The element or null to register the drop target instance with. - * @param {yfiles.view.DropTarget} dropTarget The instance to attach to the element, null to remove the association from the element. - * @see yfiles.view.DropTarget#getDropTarget - * @static - */ - static setDropTarget(element:Element,dropTarget:yfiles.view.DropTarget):void; - /** - * Adds the given listener for the DragEnter event that occurs when a drag enters the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to add. - * @see yfiles.view.DropTarget#removeDragEnterListener - */ - addDragEnterListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Removes the given listener for the DragEnter event that occurs when a drag enters the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to remove. - * @see yfiles.view.DropTarget#addDragEnterListener - */ - removeDragEnterListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Adds the given listener for the DragLeave event that occurs when a drag leaves the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to add. - * @see yfiles.view.DropTarget#removeDragLeaveListener - */ - addDragLeaveListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Removes the given listener for the DragLeave event that occurs when a drag leaves the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to remove. - * @see yfiles.view.DropTarget#addDragLeaveListener - */ - removeDragLeaveListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Adds the given listener for the DragOver event that occurs when a drag is being performed over the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to add. - * @see yfiles.view.DropTarget#removeDragOverListener - */ - addDragOverListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Removes the given listener for the DragOver event that occurs when a drag is being performed over the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to remove. - * @see yfiles.view.DropTarget#addDragOverListener - */ - removeDragOverListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Adds the given listener for the Drop event that occurs when the drop operation is performed on the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to add. - * @see yfiles.view.DropTarget#removeDropListener - */ - addDropListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Removes the given listener for the Drop event that occurs when the drop operation is performed on the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to remove. - * @see yfiles.view.DropTarget#addDropListener - */ - removeDropListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Gets or sets a value indicating whether dropping to this target is currently allowed. - * @type {boolean} - */ - allowDrop:boolean; - static $class:yfiles.lang.Class; - } - /** - * A container for {@link yfiles.view.DashStyle#dashes} and an {@link yfiles.view.DashStyle#offset}. + * Helper class used by {@link yfiles.view.CanvasComponent} to limit the interactive movement of the viewport. *

    - * All of these values are in terms of multiples of the the thickness of a - * {@link yfiles.view.Stroke}. This is different from the corresponding properties of a SVG stroke. + * The {@link yfiles.view.CanvasComponent#viewportLimiter} instance should be consulted whenever the user tries to change the viewport. Using method {@link yfiles.view.ViewportLimiter#limitViewport} + * the desired viewport can be validated by the implementation. Note that setting the {@link yfiles.view.CanvasComponent#zoom} property or {@link yfiles.view.CanvasComponent#viewPoint} property will not be + * influenced by implementations of this class. It is up to the caller to perform verification. *

    - * @class yfiles.view.DashStyle + * @see yfiles.view.ViewportLimiter#bounds + * @class */ - export interface DashStyle extends Object{} - export class DashStyle { + export interface ViewportLimiter extends Object{} + export class ViewportLimiter { /** - * Initializes a new instance of the {@link yfiles.view.DashStyle} class using the provided dashes and offset. - * @param {Array.} dashes The dashes. - * @param {number} offset The offset. - * @constructor - */ - constructor(dashes:number[],offset:number); - /** - * Initializes a new instance of the {@link yfiles.view.DashStyle} class using an empty {@link yfiles.view.DashStyle#dashes} and zero {@link yfiles.view.DashStyle#offset}. - * @constructor + * Initializes a new instance of the {@link yfiles.view.ViewportLimiter} class. */ constructor(); /** - * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.DashStyle#isFrozen frozen}. - * @returns {Object} An instance of the same type as this instance. - */ - clone():Object; - /** - * Freezes this instance. + * Gets the to bounds that should be honored for the upcoming call. *

    - * Freezing an object makes it immutable, which can result in performance enhancements. + * This method is used as callback by {@link yfiles.view.ViewportLimiter#limitViewport} for each request. The default + * implementation just yields {@link yfiles.view.ViewportLimiter#bounds}. *

    + * @param canvas The canvas control. + * @param suggestedViewport The suggested viewport. + * @returns The bounds to honor or null. + * @protected */ - freeze():void; + getCurrentBounds(canvas:yfiles.view.CanvasComponent,suggestedViewport:yfiles.geometry.Rect):yfiles.geometry.Rect; /** - * Determines if this instance is frozen. - * @returns {boolean} + * Inspects the desired or suggested new viewport for the given control and returns a valid viewport to use. + * @param canvas The canvas control on which the viewport should be applied. + * @param suggestedViewport The suggested viewport. + * @returns The viewport that should be used. */ - isFrozen():boolean; + limitViewport(canvas:yfiles.view.CanvasComponent,suggestedViewport:yfiles.geometry.Rect):yfiles.geometry.Rect; /** - * Gets or sets the dashes. - * @type {yfiles.collections.List.} + * Gets or sets a value indicating whether both dimensions of {@link yfiles.view.ViewportLimiter#bounds} need to be honored. + * @default true + * @type {boolean} */ - dashes:yfiles.collections.List; + honorBothDimensions:boolean; /** - * Gets or sets the offset. - * @type {number} + * Gets or sets the maximal allowed navigable bounds for the viewport. + * @type {yfiles.geometry.Rect} */ - offset:number; - /** - * Gets the dash style with a single dash. - *

    - * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and - * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't look as expected if its dash cap is {@link yfiles.view.LineCap#FLAT}. - * Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. - *

    - */ - static DASH:yfiles.view.DashStyle; - /** - * Gets the dash style with a single dash and dot. - *

    - * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and - * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is - * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. - *

    - */ - static DASH_DOT:yfiles.view.DashStyle; - /** - * Gets the dash style with a single dash and two dots. - *

    - * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and - * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is - * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. - *

    - */ - static DASH_DOT_DOT:yfiles.view.DashStyle; - /** - * Gets the dash style with a single dot. - *

    - * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and - * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is - * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. - *

    - */ - static DOT:yfiles.view.DashStyle; - /** - * Gets the solid dash style with no dashes. - */ - static SOLID:yfiles.view.DashStyle; + bounds:yfiles.geometry.Rect; static $class:yfiles.lang.Class; } - /** - * The default implementation of a data object for the {@link yfiles.input.DropInputMode}. - * @class yfiles.view.DragDropItem - * @final - */ - export interface DragDropItem extends Object{} - export class DragDropItem { + export enum DragDropKeyStates{ /** - * Initializes a new instance of the {@link yfiles.view.DragDropItem} class and sets the provided data item for the specified - * format. - * @param {string} [format=null] The format. - * @param {Object} [data=null] The data item. - * @see yfiles.view.DragDropItem#setData - * @constructor + * The left mouse button is down or a touch gesture is in progress. */ - constructor(format?:string,data?:Object); + POINTER_DOWN, /** - * Initializes a new instance of the {@link yfiles.view.DragDropItem} class and sets the provided data item for the specified - * format. - * @param {Object} options The parameters to pass. - * @param {string} [options.format=null] The format. - * @param {Object} [options.data=null] The data item. - * @see yfiles.view.DragDropItem#setData - * @constructor + * No button and no key is pressed. */ - constructor(options:{format?:string,data?:Object}); + NONE, /** - * Gets the data item for the given format. - * @param {string} format The format. - * @returns {Object} The data item that is stored for this format, or null if no such item exists. - * @see yfiles.view.DragDropItem#setData + * The shift key is down. */ - getData(format:string):Object; + SHIFT_KEY, /** - * Sets the data item for the given format. - * @param {string} format The format. - * @param {Object} data The data item. - * @see yfiles.view.DragDropItem#getData + * The control key is down. */ - setData(format:string,data:Object):void; + CONTROL_KEY, /** - * Gets the types of the data items stored in this instance. - * @type {Array.} + * The alt key is down. */ - types:string[]; - static $class:yfiles.lang.Class; + ALT_KEY } /** - * A utility class that holds all properties of a {@link yfiles.view.Stroke}. - * @class yfiles.view.Stroke - * @implements {yfiles.lang.ICloneable} - * @final + * A simple {@link yfiles.view.ICanvasObjectDescriptor} that can be used to draw {@link yfiles.input.IPortCandidate} instances in a + * {@link yfiles.view.CanvasComponent}. + * @class + * @implements {yfiles.view.ICanvasObjectDescriptor} + * @implements {yfiles.view.IVisualCreator} + * @implements {yfiles.view.IBoundsProvider} + * @implements {yfiles.input.IHitTestable} + * @implements {yfiles.view.IVisibilityTestable} + * @implements {yfiles.input.IMarqueeTestable} */ - export interface Stroke extends Object,yfiles.lang.ICloneable{} - export class Stroke { + export interface DefaultPortCandidateDescriptor extends Object,yfiles.view.ICanvasObjectDescriptor,yfiles.view.IVisualCreator,yfiles.view.IBoundsProvider,yfiles.input.IHitTestable,yfiles.view.IVisibilityTestable,yfiles.input.IMarqueeTestable{} + export class DefaultPortCandidateDescriptor { /** - * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given brush and thickness. - * @param {yfiles.view.Fill} [fill=null] The brush. - * @param {number} [thickness=1.0] The thickness. - * @constructor + * Instantiates a new descriptor. */ - constructor(fill?:yfiles.view.Fill,thickness?:number); + constructor(); /** - * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given brush and thickness. - * @param {Object} options The parameters to pass. - * @param {yfiles.view.Fill} [options.fill=null] The brush. - * @param {number} [options.thickness=1.0] The thickness. - * @param {yfiles.view.LineCap} options.lineCap The dash cap. + * + * @param forUserObject + * @returns + */ + getBoundsProvider(forUserObject:Object):yfiles.view.IBoundsProvider; + /** + * + * @param forUserObject + * @returns + */ + getHitTestable(forUserObject:Object):yfiles.input.IHitTestable; + /** + * + * @param forUserObject + * @returns + */ + getVisibilityTestable(forUserObject:Object):yfiles.view.IVisibilityTestable; + /** + * + * @param forUserObject + * @returns + */ + getVisualCreator(forUserObject:Object):yfiles.view.IVisualCreator; + /** + * + * @param context + * @param canvasObject + * @returns + */ + isDirty(context:yfiles.view.ICanvasContext,canvasObject:yfiles.view.ICanvasObject):boolean; + /** + * Sets the {@link yfiles.view.IVisualTemplate} to use for the given {@link string} by this instance. *

    - * This option sets the {@link yfiles.view.Stroke#lineCap} property on the created object. + * This method can be used to reconfigure the visualization for the various keys that are declared by this class. *

    - * @param {yfiles.view.DashStyle} options.dashStyle The dash style for the {@link yfiles.view.Stroke}. + * @param resourceKey The key to reconfigure. This is one of + * {@link #CANDIDATE_DRAWING_VALID_NON_FOCUSED_KEY}, + * {@link #CANDIDATE_DRAWING_INVALID_NON_FOCUSED_KEY}, + * {@link #CANDIDATE_DRAWING_INVALID_FOCUSED_KEY}, + * {@link #CANDIDATE_DRAWING_VALID_FOCUSED_KEY}. + * @param template The template to use instead of the default. + */ + setTemplate(resourceKey:string,template:yfiles.view.IVisualTemplate):void; + /** + * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} + * that will be used for rendering a valid, non-focused {@link yfiles.input.IPortCandidate}. *

    - * This option sets the {@link yfiles.view.Stroke#dashStyle} property on the created object. + * The drawing returned should be centered around (0,0). *

    - * @param {yfiles.view.LineJoin} options.lineJoin The line join property. - *

    - * This option sets the {@link yfiles.view.Stroke#lineJoin} property on the created object. - *

    - * @param {number} options.miterLimit The miter limit. - *

    - * This option sets the {@link yfiles.view.Stroke#miterLimit} property on the created object. - *

    - * @constructor - */ - constructor(options:{fill?:yfiles.view.Fill,thickness?:number,lineCap?:yfiles.view.LineCap,dashStyle?:yfiles.view.DashStyle,lineJoin?:yfiles.view.LineJoin,miterLimit?:number}); - /** - * Assigns the stroke defined by this instance to the given element. - * @param {SVGElement} element The element whose stroke should be set. - * @param {yfiles.view.ICanvasContext} context The context. - */ - applyTo(element:SVGElement,context:yfiles.view.ICanvasContext):void; - /** - * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.Stroke#isFrozen frozen}. - * @returns {Object} An instance of the same type as this instance. - */ - clone():Object; - /** - * Clones the current value of this instance to a new unfrozen {@link yfiles.view.Stroke}. - * @returns {yfiles.view.Stroke} - */ - cloneCurrentValue():yfiles.view.Stroke; - /** - * Freezes this instance. - *

    - * Freezing an object makes it immutable, which can result in performance enhancements. - *

    - */ - freeze():void; - /** - * Determines if this instance is frozen. - * @returns {boolean} - */ - isFrozen():boolean; - /** - * Gets or sets the brush for the {@link yfiles.view.Stroke}. - * @default 'Black' - * @type {yfiles.view.Fill} - */ - fill:yfiles.view.Fill; - /** - * Gets or sets the dash cap. - * @default 1 - * @type {yfiles.view.LineCap} - */ - lineCap:yfiles.view.LineCap; - /** - * Gets or sets the line join property. - * @default 2 - * @type {yfiles.view.LineJoin} - */ - lineJoin:yfiles.view.LineJoin; - /** - * Gets or sets the dash style for the {@link yfiles.view.Stroke}. - *

    - * The visual appearance of the 'dashes' and 'gaps' specified by this property depends on the value of the property {@link yfiles.view.Stroke#lineCap}, too. - *

    - *

    - * The predefined dash styles are designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and - * {@link yfiles.view.LineCap#ROUND}. With {@link yfiles.view.LineCap#FLAT}, the dashes might not look like expected, for example {@link yfiles.view.DashStyle#DOT} will not - * be visible at all. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value in this - * case. - *

    - * @default 'Solid' - * @type {yfiles.view.DashStyle} - */ - dashStyle:yfiles.view.DashStyle; - /** - * Gets or sets the miter limit. - * @default 10.0 - * @type {number} - */ - miterLimit:number; - /** - * Gets or sets the thickness of the stroke. - * @default 1.0 - * @type {number} - */ - thickness:number; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ALICE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ALICE_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ANTIQUE_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ANTIQUE_WHITE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AQUA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static AQUA:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AQUAMARINE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static AQUAMARINE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AZURE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static AZURE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BEIGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BEIGE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BISQUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BISQUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLACK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BLACK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLANCHED_ALMOND} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BLANCHED_ALMOND:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLUE_VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BLUE_VIOLET:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BROWN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BURLY_WOOD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BURLY_WOOD:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CADET_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CADET_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CHARTREUSE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CHARTREUSE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CHOCOLATE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CHOCOLATE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CORAL:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORNFLOWER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CORNFLOWER_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORNSILK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CORNSILK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CRIMSON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CRIMSON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CYAN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_CYAN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_GOLDENROD:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_KHAKI} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_KHAKI:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_MAGENTA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_MAGENTA:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_OLIVE_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_OLIVE_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_ORANGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_ORANGE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_ORCHID:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_SALMON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_SEA_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_SLATE_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_SLATE_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_TURQUOISE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_VIOLET:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DEEP_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DEEP_PINK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DEEP_SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DEEP_SKY_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DIM_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DIM_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DODGER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DODGER_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FIREBRICK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static FIREBRICK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FLORAL_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static FLORAL_WHITE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FOREST_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static FOREST_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FUCHSIA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static FUCHSIA:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GAINSBORO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GAINSBORO:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GHOST_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GHOST_WHITE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GOLD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GOLD:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GOLDENROD:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GREEN_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GREEN_YELLOW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#HONEYDEW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static HONEYDEW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#HOT_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static HOT_PINK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#INDIAN_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static INDIAN_RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#INDIGO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static INDIGO:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#IVORY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static IVORY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#KHAKI} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static KHAKI:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAVENDER} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LAVENDER:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAVENDER_BLUSH} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LAVENDER_BLUSH:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAWN_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LAWN_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LEMON_CHIFFON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LEMON_CHIFFON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_CORAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_CORAL:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_CYAN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GOLDENROD_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_GOLDENROD_YELLOW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_PINK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_SALMON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_SEA_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_SKY_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_SLATE_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_STEEL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_STEEL_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_YELLOW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIME} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIME:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIME_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIME_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LINEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LINEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MAGENTA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MAGENTA:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MAROON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MAROON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_AQUAMARINE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_AQUAMARINE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_ORCHID:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_PURPLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_PURPLE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_SEA_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_SLATE_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SPRING_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_SPRING_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_TURQUOISE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_VIOLET_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_VIOLET_RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MIDNIGHT_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MIDNIGHT_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MINT_CREAM} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MINT_CREAM:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MISTY_ROSE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MISTY_ROSE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MOCCASIN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MOCCASIN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#NAVAJO_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static NAVAJO_WHITE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#NAVY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static NAVY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLD_LACE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static OLD_LACE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLIVE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static OLIVE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLIVE_DRAB} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static OLIVE_DRAB:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORANGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ORANGE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORANGE_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ORANGE_RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ORCHID:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PALE_GOLDENROD:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PALE_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PALE_TURQUOISE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_VIOLET_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PALE_VIOLET_RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PAPAYA_WHIP} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PAPAYA_WHIP:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PEACH_PUFF} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PEACH_PUFF:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PERU} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PERU:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PINK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PLUM} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PLUM:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#POWDER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static POWDER_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PURPLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PURPLE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ROSY_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ROSY_BROWN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ROYAL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ROYAL_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SADDLE_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SADDLE_BROWN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SALMON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SANDY_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SANDY_BROWN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SEA_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SEA_SHELL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SEA_SHELL:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SIENNA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SIENNA:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SILVER} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SILVER:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SKY_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SLATE_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SLATE_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SNOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SNOW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SPRING_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SPRING_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#STEEL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static STEEL_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static TAN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TEAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static TEAL:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#THISTLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static THISTLE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TOMATO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static TOMATO:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TRANSPARENT} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static TRANSPARENT:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static TURQUOISE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static VIOLET:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHEAT} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static WHEAT:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static WHITE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHITE_SMOKE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static WHITE_SMOKE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static YELLOW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#YELLOW_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static YELLOW_GREEN:yfiles.view.Stroke; - static $class:yfiles.lang.Class; - } - /** - * Describes a font, with size, family, style, weight and line spacing. - * @class yfiles.view.Font - */ - export interface Font extends Object{} - export class Font { - /** - * Initializes a new instance of the {@link yfiles.view.Font} class with size 10, "Arial" family, normal weight and style and line - * spacing 0.5, or the given values. - * @param {string} [fontFamily=null] - * @param {number} [fontSize=10] - * @param {yfiles.view.FontStyle} [fontStyle=null] - * @param {yfiles.view.FontWeight} [fontWeight=null] - * @param {number} [lineSpacing=0.5] - * @param {yfiles.view.TextDecoration} [textDecoration=null] - * @see yfiles.view.Font#createCopy - * @constructor - */ - constructor(fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration); - /** - * Initializes a new instance of the {@link yfiles.view.Font} class with size 10, "Arial" family, normal weight and style and line - * spacing 0.5, or the given values. - * @param {Object} options The parameters to pass. - * @param {string} [options.fontFamily=null] - * @param {number} [options.fontSize=10] - * @param {yfiles.view.FontStyle} [options.fontStyle=null] - * @param {yfiles.view.FontWeight} [options.fontWeight=null] - * @param {number} [options.lineSpacing=0.5] - * @param {yfiles.view.TextDecoration} [options.textDecoration=null] - * @see yfiles.view.Font#createCopy - * @constructor - */ - constructor(options:{fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration}); - /** - * Assigns the text properties of this instance to the given text element. - * @param {SVGTextElement} textElement The text element to assign set the {@link yfiles.view.Font} on. - */ - applyTo(textElement:SVGTextElement):void; - /** - * Creates a copy with the values of this instance or optionally the explicitly specified values. - * @param {string} [fontFamily=null] The font family to use for the copy. - * @param {number} [fontSize=-1] The font size to use for the copy. - * @param {yfiles.view.FontStyle} [fontStyle=null] The font style to use for the copy. - * @param {yfiles.view.FontWeight} [fontWeight=null] The font weight to use for the copy. - * @param {number} [lineSpacing=-1] The line spacing to use for the copy. - * @param {yfiles.view.TextDecoration} [textDecoration=null] The text decoration to use for the copy. - * @returns {yfiles.view.Font} A new {@link yfiles.view.Font} instance. - */ - createCopy(fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration):yfiles.view.Font; - /** - * Creates a copy with the values of this instance or optionally the explicitly specified values. - * @param {Object} options The parameters to pass. - * @param {string} [options.fontFamily=null] The font family to use for the copy. - * @param {number} [options.fontSize=-1] The font size to use for the copy. - * @param {yfiles.view.FontStyle} [options.fontStyle=null] The font style to use for the copy. - * @param {yfiles.view.FontWeight} [options.fontWeight=null] The font weight to use for the copy. - * @param {number} [options.lineSpacing=-1] The line spacing to use for the copy. - * @param {yfiles.view.TextDecoration} [options.textDecoration=null] The text decoration to use for the copy. - * @returns {yfiles.view.Font} A new {@link yfiles.view.Font} instance. - */ - createCopy(options:{fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration}):yfiles.view.Font; - /** - * Gets the size of the font. - *

    - * The font size is interpreted as px. - *

    - * @default 10 - * @type {number} - */ - fontSize:number; - /** - * Gets or sets the font family. - * @default 'Arial' + * @const + * @static * @type {string} */ - fontFamily:string; + static CANDIDATE_DRAWING_VALID_NON_FOCUSED_KEY:string; /** - * Gets or sets the font style. - * @default 0 - * @type {yfiles.view.FontStyle} - */ - fontStyle:yfiles.view.FontStyle; - /** - * Gets or sets the font weight. - * @default 0 - * @type {yfiles.view.FontWeight} - */ - fontWeight:yfiles.view.FontWeight; - /** - * Gets or sets the line spacing. + * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} + * that will be used for rendering a valid, focused {@link yfiles.input.IPortCandidate}. *

    - * The value is interpreted as parts of the line height. + * The drawing returned should be centered around (0,0). + *

    + * @const + * @static + * @type {string} + */ + static CANDIDATE_DRAWING_VALID_FOCUSED_KEY:string; + /** + * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} + * that will be used for rendering an invalid, non-focused {@link yfiles.input.IPortCandidate}. + *

    + * The drawing returned should be centered around (0,0). + *

    + * @const + * @static + * @type {string} + */ + static CANDIDATE_DRAWING_INVALID_NON_FOCUSED_KEY:string; + /** + * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} + * that will be used for rendering a invalid, focused {@link yfiles.input.IPortCandidate}. + *

    + * The drawing returned should be centered around (0,0). + *

    + * @const + * @static + * @type {string} + */ + static CANDIDATE_DRAWING_INVALID_FOCUSED_KEY:string; + /** + * Gets or sets a property that determines whether this descriptor uses the "current" candidates. + * @type {boolean} + */ + currentCandidate:boolean; + /** + * Gets or sets the logical size of the candidate. + *

    + * This size is used for hit testing, visibility tests, etc. The default is 3. *

    - * @default 0.5 * @type {number} */ - lineSpacing:number; - /** - * Gets or sets the text decoration. - * @default 0 - * @type {yfiles.view.TextDecoration} - */ - textDecoration:yfiles.view.TextDecoration; + size:number; static $class:yfiles.lang.Class; } - export enum FontStyle{ - NORMAL, - ITALIC, - OBLIQUE, - INHERIT + /** + * Manages the visual appearance of an {@link yfiles.graph.IGraph} instance in a {@link yfiles.view.CanvasComponent}. + *

    + * This class monitors the structural changes of an {@link yfiles.graph.IGraph} implementation and installs the necessary {@link yfiles.view.ICanvasObject} + * instance in the canvas for each item in the graph. Note that {@link yfiles.view.GraphComponent} has an instance of this type + * built-in already and usually it is not necessary to create an own one. This class will also {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting use the node hierarchy} to + * nest the nodes {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting and edges} accordingly. + *

    + * @see yfiles.view.GraphModelManager#nodeGroup + * @see yfiles.view.GraphModelManager#useHierarchicEdgeNesting + * @see yfiles.view.GraphModelManager#useHierarchicNodeNesting + * @class + */ + export interface GraphModelManager extends Object{} + export class GraphModelManager { + /** + * Creates a manager instance for the given control. + *

    + * The contents of the graph will be added to given group that is must be part of the canvas. + *

    + *

    + * In order to get anything useful out of this instance the {@link yfiles.view.GraphModelManager#graph} property should be set to an instance after construction. + *

    + * @param canvas the canvas to manage the visual appearance of a graph for. + * @param contentGroup the group to add the graph's visual content to. Can be null, in which case {@link #contentGroup} should be set afterwards or {@link #createContentGroup} + * will automatically create a group lazily. + */ + constructor(canvas:yfiles.view.CanvasComponent,contentGroup:yfiles.view.ICanvasObjectGroup); + /** + * Creates a manager instance for the given control. + *

    + * The contents of the graph will be added to a newly created group that is added to the root of the scene graph. + *

    + *

    + * In order to get anything useful out of this instance the {@link yfiles.view.GraphModelManager#graph} property should be set to an instance after construction. + *

    + * @param canvas the canvas to manage the visual appearance of a graph for. + */ + constructor(canvas:yfiles.view.CanvasComponent); + /** + * Compares two items with respect to their visibility order. + * @param item1 the first item to compare + * @param item2 the second item to compare + * @returns an integer value indicating the relative rendering order of the two items + * @see yfiles.view.GraphModelManager#comparer + */ + compare(item1:yfiles.graph.IModelItem,item2:yfiles.graph.IModelItem):number; + /** + * Factory method that creates the {@link yfiles.view.GraphModelManager#contentGroup} + *

    + * The default implementation will just add another group to the {@link yfiles.view.CanvasComponent}. + *

    + * @returns The group to use for adding the content. + * @protected + */ + createContentGroup():yfiles.view.ICanvasObjectGroup; + /** + * Factory method for the {@link yfiles.view.GraphModelManager#edgeGroup} property. + *

    + * This method will be called upon first access to the property. + *

    + * @returns a new group that has been added to the {@link #contentGroup} + * @protected + */ + createEdgeGroup():yfiles.view.ICanvasObjectGroup; + /** + * Factory method for the {@link yfiles.view.GraphModelManager#edgeLabelGroup} property. + *

    + * This method will be called upon first access to the property. + *

    + * @returns a new group that has been added to the {@link #contentGroup} + * @protected + */ + createEdgeLabelGroup():yfiles.view.ICanvasObjectGroup; + /** + * Gets a {@link yfiles.input.IHitTester.} that can be used to enumerate hits on the canvas at a given world coordinate position. + *

    + * This enumerator will enumerate hits in the order so that the visually topmost element will be reported first. + *

    + * Type parameter T. + * @param itemType + * @returns + * @template T + */ + createHitTester(itemType:yfiles.lang.Class):yfiles.input.IHitTester; + /** + * Factory method for the {@link yfiles.view.GraphModelManager#nodeGroup} property. + *

    + * This method will be called upon first access to the property. + *

    + * @returns a new group that has been added to the {@link #contentGroup} + * @protected + */ + createNodeGroup():yfiles.view.ICanvasObjectGroup; + /** + * Factory method for the {@link yfiles.view.GraphModelManager#nodeLabelGroup} property. + *

    + * This method will be called upon first access to the property. + *

    + * @returns a new group that has been added to the {@link #contentGroup} + * @protected + */ + createNodeLabelGroup():yfiles.view.ICanvasObjectGroup; + /** + * Factory method for the {@link yfiles.view.GraphModelManager#portGroup} property. + *

    + * This method will be called upon first access to the property. + *

    + * @returns a new group that has been added to the {@link #contentGroup} + * @protected + */ + createPortGroup():yfiles.view.ICanvasObjectGroup; + /** + * Retrieves the {@link yfiles.view.ICanvasObject} for a given model item managed by this instance. + * @param item the item + * @returns the canvas object for the given item or null + * @see yfiles.view.ItemModelManager.#getCanvasObject + */ + getCanvasObject(item:yfiles.graph.IModelItem):yfiles.view.ICanvasObject; + /** + * Retrieves the Canvas Object group to use for the given label. + *

    + * This implementation is called by the default {@link yfiles.view.GraphModelManager#nodeLabelDescriptor} and {@link yfiles.view.GraphModelManager#edgeLabelDescriptor} instances. + *

    + * @param label The label that will be installed in the canvas. + * @returns The group to use. + * @protected + */ + getCanvasObjectGroup(label:yfiles.graph.ILabel):yfiles.view.ICanvasObjectGroup; + /** + * Retrieves the Canvas Object group to use for the given port. + *

    + * This implementation is called by the default {@link yfiles.view.GraphModelManager#portDescriptor} instance. + *

    + * @param port The port that will be installed in the canvas. + * @returns The group to use. + * @protected + */ + getCanvasObjectGroup(port:yfiles.graph.IPort):yfiles.view.ICanvasObjectGroup; + /** + * Retrieves the Canvas Object group to use for the given edge. + *

    + * This implementation is called by the default {@link yfiles.view.GraphModelManager#edgeDescriptor} instance. + *

    + * @param edge The edge that will be installed in the canvas. + * @returns The group to use. + * @protected + */ + getCanvasObjectGroup(edge:yfiles.graph.IEdge):yfiles.view.ICanvasObjectGroup; + /** + * Retrieves the Canvas Object group to use for the given node. + *

    + * This implementation is called by the default {@link yfiles.view.GraphModelManager#nodeDescriptor} instance. + *

    + * @param node The node that will be installed in the canvas. + * @returns The group to use. + * @protected + */ + getCanvasObjectGroup(node:yfiles.graph.INode):yfiles.view.ICanvasObjectGroup; + /** + * Retrieves the corresponding {@link yfiles.graph.IModelItem} for the given canvas object. + * @param canvasObject the instance to use for the query + * @returns The item that is associated with the object or null. + */ + getModelItem(canvasObject:yfiles.view.ICanvasObject):yfiles.graph.IModelItem; + /** + * Enumerates hits on the canvas at a given world coordinate position for a given context. + *

    + * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The + * enumeration is performed lazily. + *

    + * @param context The context to provide to {@link #isHit} + * @param location the world coordinates to perform the hit test + * @param root The group to search the subtree of. + * @returns an enumerable that will enumerate the hits at the given coordinates + */ + hitElementsAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root:yfiles.view.ICanvasObjectGroup):yfiles.collections.IEnumerable; + /** + * Enumerates hits on the canvas at a given world coordinate position. + *

    + * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The + * enumeration is performed lazily. + *

    + * @param location the world coordinates to perform the hit test + * @returns an enumerable that will enumerate the hits at the given coordinates + */ + hitElementsAt(location:yfiles.geometry.Point):yfiles.collections.IEnumerable; + /** + * Called when the {@link yfiles.view.GraphModelManager#graph} property changes. + *

    + * This method registers the collections of the graph instance with the {@link yfiles.view.CollectionModelManager. mechanism} that manages the mapping between the + * elements and the + * {@link yfiles.view.ICanvasObject}s. Subclasses should call the base method if they want to use the default mechanisms. + *

    + * @param oldGraph The old graph instance. + * @param newGraph The new graph instance. + * @protected + */ + onGraphChanged(oldGraph:yfiles.graph.IGraph,newGraph:yfiles.graph.IGraph):void; + /** + * Enumerates hits on the canvas at a given world coordinate position in a given context. + *

    + * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The + * enumeration is performed lazily. + *

    + * Type parameter T. + * @param modelItemType + * @param context The context to provide to {@link #isHit} + * @param location the world coordinates to perform the hit test + * @param root The group to search the subtree of. + * @returns an enumerable that will enumerate the hits at the given coordinates + * @template T + */ + typedHitElementsAt(modelItemType:yfiles.lang.Class,context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root:yfiles.view.ICanvasObjectGroup):yfiles.collections.IEnumerable; + /** + * Enumerates hits on the canvas at a given world coordinate position. + *

    + * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The + * enumeration is performed lazily. + *

    + * Type parameter T. + * @param itemType + * @param location the world coordinates to perform the hit test + * @returns an enumerable that will enumerate the hits at the given coordinates + * @template T + */ + typedHitElementsAt(itemType:yfiles.lang.Class,location:yfiles.geometry.Point):yfiles.collections.IEnumerable; + /** + * {@link yfiles.view.CollectionModelManager.#update Updates} the visual representation of the given item. + * @param item The item to update the visual representation + * @see yfiles.view.CollectionModelManager.#update + */ + update(item:yfiles.graph.IModelItem):void; + /** + * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing node styles. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createNodeGroup} + * will be called. Note that in the case of {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchic node nesting}, nodes will not be installed at the top-level of this + * group. Rather a more complicated nesting of dynamically created {@link yfiles.view.ICanvasObjectGroup}s will be used. + *

    + * @see yfiles.view.GraphModelManager#getCanvasObjectGroup + * @see yfiles.view.GraphModelManager#nodeDescriptor + * @type {yfiles.view.ICanvasObjectGroup} + */ + nodeGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing edge styles. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createEdgeGroup} + * will be called. Note that in the case of {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchically nested graphs} edges will only be put directly in this + * {@link yfiles.view.ICanvasObjectGroup}, if the {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting} property is set to false. Otherwise edges will actually be nested in the subtree + * of the {@link yfiles.view.GraphModelManager#nodeGroup} according to the node nesting. + *

    + * @see yfiles.view.GraphModelManager#getCanvasObjectGroup + * @see yfiles.view.GraphModelManager#edgeDescriptor + * @type {yfiles.view.ICanvasObjectGroup} + */ + edgeGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing edge label styles. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createEdgeLabelGroup} + * will be called. + *

    + * @see yfiles.view.GraphModelManager#getCanvasObjectGroup + * @see yfiles.view.GraphModelManager#edgeLabelDescriptor + * @type {yfiles.view.ICanvasObjectGroup} + */ + edgeLabelGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing node label styles. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createNodeLabelGroup} + * will be called. + *

    + * @see yfiles.view.GraphModelManager#getCanvasObjectGroup + * @see yfiles.view.GraphModelManager#nodeLabelDescriptor + * @type {yfiles.view.ICanvasObjectGroup} + */ + nodeLabelGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing port styles. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createPortGroup} + * will be called. + *

    + * @see yfiles.view.GraphModelManager#getCanvasObjectGroup + * @see yfiles.view.GraphModelManager#portDescriptor + * @type {yfiles.view.ICanvasObjectGroup} + */ + portGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.IEdge} into the + * canvas. + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + edgeDescriptor:yfiles.view.ICanvasObjectDescriptor; + /** + * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.IPort} into the + * canvas. + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + portDescriptor:yfiles.view.ICanvasObjectDescriptor; + /** + * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.ILabel} of an {@link yfiles.graph.IEdge} + * into the canvas. + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + edgeLabelDescriptor:yfiles.view.ICanvasObjectDescriptor; + /** + * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.ILabel} of an {@link yfiles.graph.INode} + * into the canvas. + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + nodeLabelDescriptor:yfiles.view.ICanvasObjectDescriptor; + /** + * Determines whether this instance should nest the edges accordingly if the graph is grouped. + *

    + * Hierarchic nesting for edges requires that {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchic nesting for nodes} is enabled as well. If both properties are + * enabled (the default) the edges will actually be interleaved with the nodes in the nested canvas object subtree so the {@link yfiles.view.GraphModelManager#edgeGroup} + * will be empty. + *

    + * @see yfiles.view.GraphModelManager#useHierarchicNodeNesting + * @type {boolean} + */ + useHierarchicEdgeNesting:boolean; + /** + * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.INode} into the + * canvas. + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + nodeDescriptor:yfiles.view.ICanvasObjectDescriptor; + /** + * Gets or sets the content group this manager instance uses to add visual representation of the graph to. + * @type {yfiles.view.ICanvasObjectGroup} + */ + contentGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets an {@link yfiles.collections.IComparer.} instance that can be used to compare two model items with respect to their visual display order. + *

    + * An item is considered to be greater than another item if it is rendered on top of it. + *

    + * @type {yfiles.collections.IComparer.} + */ + comparer:yfiles.collections.IComparer; + /** + * Gets a {@link yfiles.input.IHitTester.} that can be used to enumerate hits on the canvas at a given world coordinate position. + *

    + * This enumerator will enumerate hits in the order so that the visually topmost element will be reported first. + *

    + * @type {yfiles.input.IHitTester.} + */ + hitTester:yfiles.input.IHitTester; + /** + * Gets or sets the graph this manager manages. + * @see yfiles.view.GraphModelManager#onGraphChanged + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * Determines whether this instance should nest the nodes {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting and optionally edges} accordingly if the graph is grouped. + * @type {boolean} + */ + useHierarchicNodeNesting:boolean; + /** + * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.INode}s which simply defers to + * the node's {@link yfiles.styles.INodeStyle}. + * @const + * @static + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + static DEFAULT_NODE_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; + /** + * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.IEdge}s which simply defers to + * the edge's {@link yfiles.styles.IEdgeStyle}. + * @const + * @static + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + static DEFAULT_EDGE_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; + /** + * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.IPort}s which simply defers to + * the port's {@link yfiles.styles.IPortStyle}. + * @const + * @static + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + static DEFAULT_PORT_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; + /** + * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.ILabel}s which simply defers + * to the label's {@link yfiles.styles.ILabelStyle}. + * @const + * @static + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + static DEFAULT_LABEL_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; + static $class:yfiles.lang.Class; } - export enum FontWeight{ - NORMAL, - BOLD, - BOLDER, - LIGHTER, - ITEM100, - ITEM200, - ITEM300, - ITEM400, - ITEM500, - ITEM600, - ITEM700, - ITEM800, - ITEM900, - INHERIT + /** + * An implementation of the {@link yfiles.view.IObstacleProvider} interface that uses the {@link yfiles.graph.IGraph#edges edges} and {@link yfiles.graph.IGraph#nodes nodes} of an {@link yfiles.graph.IGraph} + * as obstacles. + *

    + * The {@link yfiles.view.BridgeManager} then calculates bridges for edge paths that cross these obstacles. + *

    + *

    + * This class can be used to add bridge support via the {@link yfiles.view.BridgeManager} to a rendered {@link yfiles.graph.IGraph}. + *

    + * @see yfiles.view.BridgeManager#addObstacleProvider + * @see yfiles.view.BridgeManager + * @see yfiles.view.IObstacleProvider + * @class + * @implements {yfiles.view.IObstacleProvider} + */ + export interface GraphObstacleProvider extends Object,yfiles.view.IObstacleProvider{} + export class GraphObstacleProvider { + /** + * Helper method that retrieves the {@link yfiles.graph.IGraph} to use from the context + *

    + * This implementation uses the {@link yfiles.graph.ILookup#lookup} of the {@link yfiles.view.ICanvasContext#canvasComponent} to query the {@link yfiles.graph.IGraph} implementation. + *

    + * @param context The context to retrieve the implementation from. + * @returns The {@link } instance to query or null. + * @protected + */ + getGraph(context:yfiles.view.IRenderContext):yfiles.graph.IGraph; + /** + * Iterates over all {@link yfiles.graph.IGraph#edges} and {@link yfiles.graph.IGraph#nodes} to query an {@link yfiles.view.IObstacleProvider} from the {@link yfiles.graph.IModelItem}'s + * {@link yfiles.graph.ILookup#lookup}. + *

    + * This method will depending on the {@link yfiles.view.GraphObstacleProvider#queryEdges} and {@link yfiles.view.GraphObstacleProvider#queryNodes} property query the items for an implementation of {@link yfiles.view.IObstacleProvider} + * and concatenate all resulting {@link yfiles.geometry.GeneralPath} obstacles into one path that will then be returned. + *

    + * @param context The context where the obstacles are queried for. + * @returns A path that is the concatenated path of all obstacles for the given context. + */ + getObstacles(context:yfiles.view.IRenderContext):yfiles.geometry.GeneralPath; + /** + * Gets or sets a value indicating whether to query the {@link yfiles.graph.IGraph#edges} for an {@link yfiles.view.IObstacleProvider} implementation. + *

    + * The default is true. + *

    + * @type {boolean} + */ + queryEdges:boolean; + /** + * Gets or sets a value indicating whether to query the {@link yfiles.graph.IGraph#nodes} for an {@link yfiles.view.IObstacleProvider} implementation. + * @type {boolean} + */ + queryNodes:boolean; + static $class:yfiles.lang.Class; + } + /** + * Simple implementation of the {@link yfiles.view.IGraphSelection} interface. + * @class + * @implements {yfiles.view.IGraphSelection} + */ + export interface GraphSelection extends Object,yfiles.view.IGraphSelection{} + export class GraphSelection { + /** + * Instantiates an instance using the the graph as the model. + * @param graph + */ + constructor(graph:yfiles.graph.IGraph); + /** + * Creates a new instance with no initial {@link yfiles.view.GraphSelection#graph} assigned. + *

    + * In order to be always in sync with the structural changes in a graph, an instance should be associated with an {@link yfiles.graph.IGraph} + * using the {@link yfiles.view.GraphSelection#graph} property. + *

    + */ + constructor(); + /** + * + */ + clear():void; + /** + * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the bends. + * @returns + * @protected + */ + createBendSelectionModel():yfiles.view.DefaultSelectionModel; + /** + * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the edges. + * @returns + * @protected + */ + createEdgeSelectionModel():yfiles.view.DefaultSelectionModel; + /** + * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the labels. + * @returns + * @protected + */ + createLabelSelectionModel():yfiles.view.DefaultSelectionModel; + /** + * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the nodes. + * @returns + * @protected + */ + createNodeSelectionModel():yfiles.view.DefaultSelectionModel; + /** + * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the ports. + * @returns + * @protected + */ + createPortSelectionModel():yfiles.view.DefaultSelectionModel; + /** + * Returns an enumerator that iterates through the collection of all selected elements. + * @returns An {@link } object that can be used to iterate through all selected elements. + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * + * @param item + * @returns + */ + isSelected(item:yfiles.graph.IModelItem):boolean; + /** + * Raises the {@link yfiles.view.GraphSelection#addItemSelectionChangedListener ItemSelectionChanged} event + * @param evt The parameters for the event + * @protected + */ + onItemSelectionChanged(evt:yfiles.view.ItemSelectionChangedEventArgs):void; + /** + * + * @param item + * @param selected + */ + setSelected(item:yfiles.graph.IModelItem,selected:boolean):void; + /** + * + * @type {yfiles.view.ISelectionModel.} + */ + selectedNodes:yfiles.view.ISelectionModel; + /** + * + * @type {yfiles.view.ISelectionModel.} + */ + selectedEdges:yfiles.view.ISelectionModel; + /** + * + * @type {yfiles.view.ISelectionModel.} + */ + selectedLabels:yfiles.view.ISelectionModel; + /** + * + * @type {yfiles.view.ISelectionModel.} + */ + selectedPorts:yfiles.view.ISelectionModel; + /** + * + * @type {yfiles.view.ISelectionModel.} + */ + selectedBends:yfiles.view.ISelectionModel; + /** + * + * @type {number} + */ + size:number; + /** + * Gets or sets the {@link yfiles.graph.IGraph} this instance is using as the domain for the selection. + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * + * @param listener + */ + addItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; + /** + * + * @param listener + */ + removeItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + /** + * Manages the selection state of items in an {@link yfiles.graph.IGraph} instance. + *

    + * This interface provides access to the {@link yfiles.view.ISelectionModel.} instances that manage the selection of nodes, edges, labels, ports, and bends. + * The generic methods that use {@link yfiles.graph.IModelItem} parameters delegate to the corresponding domain-specific selection + * models. + *

    + * @see yfiles.view.ISelectionModel. + * @interface + * @implements {yfiles.view.ISelectionModel.} + */ + export interface IGraphSelection extends Object,yfiles.view.ISelectionModel{ + /** + * An {@link yfiles.view.ISelectionModel.} of the selected nodes. + *

    + * This is the node part of the selection that this instance is a composite of. + *

    + * @abstract + * @type {yfiles.view.ISelectionModel.} + */ + selectedNodes:yfiles.view.ISelectionModel; + /** + * An {@link yfiles.view.ISelectionModel.} of the selected labels. + *

    + * This is the label part of the selection that this instance is a composite of. + *

    + * @abstract + * @type {yfiles.view.ISelectionModel.} + */ + selectedLabels:yfiles.view.ISelectionModel; + /** + * An {@link yfiles.view.ISelectionModel.} of the selected edges. + *

    + * This is the edge part of the selection that this instance is a composite of. + *

    + * @abstract + * @type {yfiles.view.ISelectionModel.} + */ + selectedEdges:yfiles.view.ISelectionModel; + /** + * An {@link yfiles.view.ISelectionModel.} of the selected ports. + *

    + * This is the ports part of the selection that this instance is a composite of. + *

    + * @abstract + * @type {yfiles.view.ISelectionModel.} + */ + selectedPorts:yfiles.view.ISelectionModel; + /** + * An {@link yfiles.view.ISelectionModel.} of the selected bends. + *

    + * This is the bend part of the selection that this instance is a composite of. + *

    + * @abstract + * @type {yfiles.view.ISelectionModel.} + */ + selectedBends:yfiles.view.ISelectionModel; + } + var IGraphSelection:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An implementation of the {@link yfiles.view.ICanvasObjectInstaller} interface that can decorate the visual appearence of an + * {@link yfiles.graph.IEdge}. + *

    + * This will install an {@link yfiles.view.ICanvasObject} during {@link yfiles.view.ICanvasObjectInstaller#addCanvasObject installation}, that will render the path and the bends of an edge + * using a {@link yfiles.view.EdgeDecorationInstaller#getStroke pen} for the path and a {@link yfiles.view.EdgeDecorationInstaller#getBendDrawing drawing} for the bends. + *

    + * @class + * @implements {yfiles.view.ISelectionIndicatorInstaller} + * @implements {yfiles.view.IHighlightIndicatorInstaller} + * @implements {yfiles.view.IFocusIndicatorInstaller} + */ + export interface EdgeDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} + export class EdgeDecorationInstaller { + /** + * Installs a rendering for the item if it is an {@link yfiles.graph.IEdge} that will use the {@link yfiles.view.EdgeDecorationInstaller#getBendDrawing} + * and {@link yfiles.view.EdgeDecorationInstaller#getStroke} to render the path and bends. + * @param context The canvas context. + * @param group The {@link } to add the new canvas object to. + * @param item The item to install. + * @returns The canvas object representing the item. + */ + addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; + /** + * Callback method that retrieves the drawing of the bend for the context. + *

    + * This implementation will use the {@link yfiles.view.EdgeSelectionIndicatorInstaller#BEND_TEMPLATE_KEY} resource to find a {@link yfiles.view.IVisualTemplate} + * instance. If null is yielded, a default drawing will be used. + *

    + * @param canvas The canvas for which the drawing shall be returned. + * @param edge The edge for which the rendering will be used. + * @returns The drawing instance to use for the rendering of the bends in the given context. + * @protected + * @abstract + */ + getBendDrawing(canvas:yfiles.view.CanvasComponent,edge:yfiles.graph.IEdge):yfiles.view.IVisualTemplate; + /** + * Callback method that retrieves the {@link yfiles.view.Stroke} for the context. + *

    + * This implementation will use the {@link yfiles.view.EdgeSelectionIndicatorInstaller#STROKE_KEY} resource to find a {@link yfiles.view.Stroke} + * instance. If null is yielded, a default {@link yfiles.view.Stroke} will be used. + *

    + * @param edge The edge for which the rendering will be used. + * @param canvas The canvas for which the {@link } shall be returned. + * @returns The {@link } instance to use for the rendering of the edge in the given context. + * @protected + * @abstract + */ + getStroke(canvas:yfiles.view.CanvasComponent,edge:yfiles.graph.IEdge):yfiles.view.Stroke; + static $class:yfiles.lang.Class; + } + /** + * An implementation of the {@link yfiles.view.ICanvasObjectInstaller} interface that can install the selection outline of an + * {@link yfiles.graph.IEdge}. + *

    + * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeSelectionIndicatorInstaller#getStroke pen} for the + * path and a {@link yfiles.view.EdgeSelectionIndicatorInstaller#getBendDrawing drawing} for the bends. + *

    + * @class + * @extends {yfiles.view.EdgeDecorationInstaller} + */ + export interface EdgeSelectionIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} + export class EdgeSelectionIndicatorInstaller { + constructor(); + /** + * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. + * @const + * @static + * @type {string} + */ + static STROKE_KEY:string; + /** + * A {@link string} that will be used to find the {@link yfiles.view.IVisualTemplate} that will be used to draw the bends of the edge. + * @const + * @static + * @type {string} + */ + static BEND_TEMPLATE_KEY:string; + static $class:yfiles.lang.Class; + } + /** + * An specialized subclass of the {@link yfiles.view.EdgeSelectionIndicatorInstaller} that can install the focus indicator of an + * {@link yfiles.graph.IEdge}. + *

    + * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeFocusIndicatorInstaller#getStroke pen} for the + * path and a {@link yfiles.view.EdgeFocusIndicatorInstaller#getBendDrawing drawing} for the bends. + *

    + * @class + * @extends {yfiles.view.EdgeDecorationInstaller} + */ + export interface EdgeFocusIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} + export class EdgeFocusIndicatorInstaller { + constructor(); + /** + * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. + * @const + * @static + * @type {string} + */ + static STROKE_KEY:string; + /** + * A {@link string} that will be used to find the {@link yfiles.view.IVisualTemplate} that will be used to draw the bends of the edge. + * @const + * @static + * @type {string} + */ + static BEND_TEMPLATE_KEY:string; + static $class:yfiles.lang.Class; + } + /** + * An specialized subclass of the {@link yfiles.view.EdgeSelectionIndicatorInstaller} that can install the highlight rendering of + * an {@link yfiles.graph.IEdge}. + *

    + * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeHighlightIndicatorInstaller#getStroke pen} for the + * path and a {@link yfiles.view.EdgeHighlightIndicatorInstaller#getBendDrawing drawing} for the bends. + *

    + * @class + * @extends {yfiles.view.EdgeDecorationInstaller} + */ + export interface EdgeHighlightIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} + export class EdgeHighlightIndicatorInstaller { + constructor(); + /** + * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. + * @const + * @static + * @type {string} + */ + static STROKE_KEY:string; + /** + * A {@link string} that will be used to find the {@link yfiles.view.IVisualTemplate} that will be used to draw the bends of the edge. + * @const + * @static + * @type {string} + */ + static BEND_TEMPLATE_KEY:string; + static $class:yfiles.lang.Class; + } + /** + * Allows the use of an {@link yfiles.styles.IEdgeStyle} to render the selection, highlight or focus indicator of edges. + *

    + * The {@link yfiles.view.EdgeStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the + * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the + * default yFiles indicators. + *

    + * @see yfiles.view.NodeStyleDecorationInstaller + * @see yfiles.view.LabelStyleDecorationInstaller + * @class + * @implements {yfiles.view.ISelectionIndicatorInstaller} + * @implements {yfiles.view.IHighlightIndicatorInstaller} + * @implements {yfiles.view.IFocusIndicatorInstaller} + */ + export interface EdgeStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} + export class EdgeStyleDecorationInstaller { + /** + * Create a new instance of this class. + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.styles.IEdgeStyle} options.edgeStyle The style to use for the rendering. + *

    + * This option sets the {@link yfiles.view.EdgeStyleDecorationInstaller#edgeStyle} property on the created object. + *

    + * @param {yfiles.view.StyleDecorationZoomPolicy} options.zoomPolicy Specifies how the style is affected by the current zoom level. + *

    + * This option sets the {@link yfiles.view.EdgeStyleDecorationInstaller#zoomPolicy} property on the created object. + *

    + */ + constructor(options?:{edgeStyle?:yfiles.styles.IEdgeStyle,zoomPolicy?:yfiles.view.StyleDecorationZoomPolicy}); + /** + * Installs a rendering for the item if it is an {@link yfiles.graph.IEdge}. + * @param context The canvas context. + * @param group The canvas object group to add the newly created {@link } to. + * @param item The item to install. + * @returns The canvas object representing the item. + */ + addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; + /** + * Specifies how the style is affected by the current zoom level. + *

    + * Changes of the value of this property are propagated to all styles created by this instance and become immediately + * visible. + *

    + * @type {yfiles.view.StyleDecorationZoomPolicy} + */ + zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; + /** + * The style to use for the rendering. + *

    + * Changes of the value of this property are not propagated to already created styles. + *

    + * @type {yfiles.styles.IEdgeStyle} + */ + edgeStyle:yfiles.styles.IEdgeStyle; + static $class:yfiles.lang.Class; + } + /** + * An {@link yfiles.view.IVisualCreator} for use in a {@link yfiles.view.CanvasComponent} that renders a {@link yfiles.graph.IGraph} instance in a + * sloppy overview style. + * @class + * @implements {yfiles.view.IVisualCreator} + */ + export interface GraphOverviewCanvasVisualCreator extends Object,yfiles.view.IVisualCreator{} + export class GraphOverviewCanvasVisualCreator { + /** + * Creates a new instance for the given graph. + * @param graph + */ + constructor(graph:yfiles.graph.IGraph); + /** + * Callback that paints the specified edge. + * @param renderContext + * @param ctx + * @param edge + * @protected + */ + paintEdge(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,edge:yfiles.graph.IEdge):void; + /** + * Callback method that paints the specified node. + * @param renderContext + * @param ctx + * @param node + * @protected + */ + paintGroupNode(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,node:yfiles.graph.INode):void; + /** + * Callback method that paints the specified node. + * @param renderContext + * @param ctx + * @param node + * @protected + */ + paintNode(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,node:yfiles.graph.INode):void; + static $class:yfiles.lang.Class; + } + /** + * Allows the use of an {@link yfiles.styles.ILabelStyle} to render the selection, highlight or focus indicator of labels. + *

    + * The {@link yfiles.view.LabelStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the + * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the + * default yFiles indicators. + *

    + * @see yfiles.view.EdgeStyleDecorationInstaller + * @see yfiles.view.NodeStyleDecorationInstaller + * @class + * @implements {yfiles.view.ISelectionIndicatorInstaller} + * @implements {yfiles.view.IHighlightIndicatorInstaller} + * @implements {yfiles.view.IFocusIndicatorInstaller} + */ + export interface LabelStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} + export class LabelStyleDecorationInstaller { + /** + * Create a new instance of this class. + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.styles.ILabelStyle} options.labelStyle The style to use for the rendering. + *

    + * This option sets the {@link yfiles.view.LabelStyleDecorationInstaller#labelStyle} property on the created object. + *

    + * @param {yfiles.geometry.Insets} options.margins Specifies the margin around the label layout. + *

    + * This option sets the {@link yfiles.view.LabelStyleDecorationInstaller#margins} property on the created object. + *

    + * @param {yfiles.view.StyleDecorationZoomPolicy} options.zoomPolicy Specifies how the style is affected by the current zoom level. + *

    + * This option sets the {@link yfiles.view.LabelStyleDecorationInstaller#zoomPolicy} property on the created object. + *

    + */ + constructor(options?:{labelStyle?:yfiles.styles.ILabelStyle,margins?:yfiles.geometry.Insets,zoomPolicy?:yfiles.view.StyleDecorationZoomPolicy}); + /** + * Installs a rendering for the item if it is an {@link yfiles.graph.ILabel}. + * @param context The canvas context. + * @param group The canvas object group to add the newly created canvas object to. + * @param item The item to install. + * @returns The canvas object representing the item. + */ + addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; + /** + * Specifies how the style is affected by the current zoom level. + *

    + * Changes of the value of this property are propagated to all styles created by this instance and become immediately + * visible. + *

    + * @type {yfiles.view.StyleDecorationZoomPolicy} + */ + zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; + /** + * Specifies the margin around the label layout. + *

    + * Actually, the bounds rendered by the style is the original label layout enlarged by this margin. + *

    + *

    + * Changes of the value of this property are propagated to all styles created by this instance and become immediately + * visible. + *

    + * @type {yfiles.geometry.Insets} + */ + margins:yfiles.geometry.Insets; + /** + * The style to use for the rendering. + *

    + * Changes of the value of this property are not propagated to already created styles. + *

    + * @type {yfiles.styles.ILabelStyle} + */ + labelStyle:yfiles.styles.ILabelStyle; + static $class:yfiles.lang.Class; + } + /** + * Allows the use of an {@link yfiles.styles.INodeStyle} to render the selection, highlight or focus indicator of nodes. + *

    + * The {@link yfiles.view.NodeStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the + * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the + * default yFiles indicators. + *

    + * @see yfiles.view.EdgeStyleDecorationInstaller + * @see yfiles.view.LabelStyleDecorationInstaller + * @class + * @implements {yfiles.view.ISelectionIndicatorInstaller} + * @implements {yfiles.view.IHighlightIndicatorInstaller} + * @implements {yfiles.view.IFocusIndicatorInstaller} + */ + export interface NodeStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} + export class NodeStyleDecorationInstaller { + /** + * Create a new instance of this class. + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.styles.INodeStyle} options.nodeStyle The style to use for the rendering. + *

    + * This option sets the {@link yfiles.view.NodeStyleDecorationInstaller#nodeStyle} property on the created object. + *

    + * @param {yfiles.geometry.Insets} options.margins Specifies the margin around the node layout. + *

    + * This option sets the {@link yfiles.view.NodeStyleDecorationInstaller#margins} property on the created object. + *

    + * @param {yfiles.view.StyleDecorationZoomPolicy} options.zoomPolicy Specifies how the style is affected by the current zoom level. + *

    + * This option sets the {@link yfiles.view.NodeStyleDecorationInstaller#zoomPolicy} property on the created object. + *

    + */ + constructor(options?:{nodeStyle?:yfiles.styles.INodeStyle,margins?:yfiles.geometry.Insets,zoomPolicy?:yfiles.view.StyleDecorationZoomPolicy}); + /** + * Installs a rendering for the item if it is an {@link yfiles.graph.INode}. + * @param context The canvas context. + * @param group The canvas object group to add the newly created canvas object to. + * @param item The item to install. + * @returns The canvas object representing the item. + */ + addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; + /** + * Specifies how the style is affected by the current zoom level. + *

    + * Changes of the value of this property are propagated to all styles created by this instance and become immediately + * visible. + *

    + * @type {yfiles.view.StyleDecorationZoomPolicy} + */ + zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; + /** + * Specifies the margin around the node layout. + *

    + * Actually, the bounds rendered by the style is the original node layout enlarged by this margin. + *

    + *

    + * Changes of the value of this property are propagated to all styles created by this instance and become immediately + * visible. + *

    + * @type {yfiles.geometry.Insets} + */ + margins:yfiles.geometry.Insets; + /** + * The style to use for the rendering. + *

    + * Changes of the value of this property are not propagated to already created styles. + *

    + * @type {yfiles.styles.INodeStyle} + */ + nodeStyle:yfiles.styles.INodeStyle; + static $class:yfiles.lang.Class; + } + export enum StyleDecorationZoomPolicy{ + /** + * The visual is rendered in the view coordinate space and doesn't scale with the zoom level. + *

    + * This is similar to the default node resize handles, for example. + *

    + */ + VIEW_COORDINATES, + /** + * The visual is rendered in the world coordinate space and scales with the zoom level like a regular graph item + * visualization, for example a node style. + */ + WORLD_COORDINATES, + /** + * Uses WorldCoordinates rendering for zoom level >= 1 and ViewCoordinates rendering for zoom level < 1. + */ + MIXED } /** * Represents any object which fills an area. - * @class yfiles.view.Fill + * @class * @implements {yfiles.lang.ICloneable} */ export interface Fill extends Object,yfiles.lang.ICloneable{} @@ -15413,13 +15443,13 @@ declare namespace system{ * If this {@link yfiles.view.Fill} is a gradient and implements the {@link yfiles.view.ISvgDefsCreator} interface, it will be added to the * defs section of the SVG document. The fill of the given element will be set to a reference to the gradient element. *

    - * @param {SVGElement} element The element whose fill should be set. - * @param {yfiles.view.ICanvasContext} context The context. + * @param element The element whose fill should be set. + * @param context The context. */ applyTo(element:SVGElement,context:yfiles.view.ICanvasContext):void; /** * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.Fill#isFrozen frozen}. - * @returns {Object} An instance of the same type as this instance. + * @returns An instance of the same type as this instance. */ clone():Object; /** @@ -15431,7 +15461,7 @@ declare namespace system{ freeze():void; /** * Determines if this instance is frozen. - * @returns {boolean} + * @returns */ isFrozen():boolean; /** @@ -16425,28 +16455,26 @@ declare namespace system{ } /** * Represents an ARGB (alpha, red, green, blue) encoded color object. - * @class yfiles.view.Color + * @class * @final */ export interface Color extends Object{} export class Color { /** * Initializes a new instance of the {@link yfiles.view.Color} class. - * @param {number} [a=255] The alpha value; 255 by default. - * @param {number} [r=0] The red value; 0 by default. - * @param {number} [g=0] The green value; 0 by default - * @param {number} [b=0] The blue value; 0 by default. - * @constructor + * @param [a=255] The alpha value; 255 by default. + * @param [r=0] The red value; 0 by default. + * @param [g=0] The green value; 0 by default + * @param [b=0] The blue value; 0 by default. */ constructor(r?:number,g?:number,b?:number,a?:number); /** * Initializes a new instance of the {@link yfiles.view.Color} class. * @param {Object} options The parameters to pass. - * @param {number} [options.a=255] The alpha value; 255 by default. - * @param {number} [options.r=0] The red value; 0 by default. - * @param {number} [options.g=0] The green value; 0 by default - * @param {number} [options.b=0] The blue value; 0 by default. - * @constructor + * @param [options.a=255] The alpha value; 255 by default. + * @param [options.r=0] The red value; 0 by default. + * @param [options.g=0] The green value; 0 by default + * @param [options.b=0] The blue value; 0 by default. */ constructor(options:{r?:number,g?:number,b?:number,a?:number}); /** @@ -16454,11 +16482,11 @@ declare namespace system{ *

    * All values must be between 0 and 255. *

    - * @param {number} a The alpha value. - * @param {number} r The red value. - * @param {number} g The green value. - * @param {number} b The blue value. - * @returns {yfiles.view.Color} A new color instance with the given values. + * @param a The alpha value. + * @param r The red value. + * @param g The green value. + * @param b The blue value. + * @returns A new color instance with the given values. * @static */ static fromArgb(a:number,r:number,g:number,b:number):yfiles.view.Color; @@ -17485,20 +17513,18 @@ declare namespace system{ } /** * - * @class yfiles.view.ColorExtension + * @class * @extends {yfiles.graphml.MarkupExtension} */ export interface ColorExtension extends yfiles.graphml.MarkupExtension{} export class ColorExtension { /** * - * @param {yfiles.view.Color} color - * @constructor + * @param color */ constructor(color:yfiles.view.Color); /** * - * @constructor */ constructor(); /** @@ -17510,21 +17536,20 @@ declare namespace system{ } /** * Represents a cursor object. - * @class yfiles.view.Cursor + * @class */ export interface Cursor extends Object{} export class Cursor { /** * Initializes a new {@link yfiles.view.Cursor} instance using the provided url and an alternative. - * @param {string} url The url should point to a file in the ".cur" format with a size of at most 32x32 pixels to ensure compatibility across + * @param url The url should point to a file in the ".cur" format with a size of at most 32x32 pixels to ensure compatibility across * browsers. - * @param {yfiles.view.Cursor} alternative Cursors can be chained but the last alternative needs to be one of the predefined cursors. - * @constructor + * @param alternative Cursors can be chained but the last alternative needs to be one of the predefined cursors. */ constructor(url:string,alternative:yfiles.view.Cursor); /** * Returns the CSS text representation for the cursor and its alternatives. - * @returns {string} The CSS text representation for the cursor. + * @returns The CSS text representation for the cursor. */ getSystemCursor():string; /** @@ -17805,6 +17830,95 @@ declare namespace system{ static GRABBING:yfiles.view.Cursor; static $class:yfiles.lang.Class; } + /** + * A container for {@link yfiles.view.DashStyle#dashes} and an {@link yfiles.view.DashStyle#offset}. + *

    + * All of these values are in terms of multiples of the the thickness of a + * {@link yfiles.view.Stroke}. This is different from the corresponding properties of a SVG stroke. + *

    + * @class + */ + export interface DashStyle extends Object{} + export class DashStyle { + /** + * Initializes a new instance of the {@link yfiles.view.DashStyle} class using the provided dashes and offset. + * @param dashes The dashes. + * @param offset The offset. + */ + constructor(dashes:number[],offset:number); + /** + * Initializes a new instance of the {@link yfiles.view.DashStyle} class using an empty {@link yfiles.view.DashStyle#dashes} and zero {@link yfiles.view.DashStyle#offset}. + */ + constructor(); + /** + * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.DashStyle#isFrozen frozen}. + * @returns An instance of the same type as this instance. + */ + clone():Object; + /** + * Freezes this instance. + *

    + * Freezing an object makes it immutable, which can result in performance enhancements. + *

    + */ + freeze():void; + /** + * Determines if this instance is frozen. + * @returns + */ + isFrozen():boolean; + /** + * Gets or sets the dashes. + * @type {yfiles.collections.List.} + */ + dashes:yfiles.collections.List; + /** + * Gets or sets the offset. + * @type {number} + */ + offset:number; + /** + * Gets the dash style with a single dash. + *

    + * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and + * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't look as expected if its dash cap is {@link yfiles.view.LineCap#FLAT}. + * Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. + *

    + */ + static DASH:yfiles.view.DashStyle; + /** + * Gets the dash style with a single dash and dot. + *

    + * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and + * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is + * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. + *

    + */ + static DASH_DOT:yfiles.view.DashStyle; + /** + * Gets the dash style with a single dash and two dots. + *

    + * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and + * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is + * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. + *

    + */ + static DASH_DOT_DOT:yfiles.view.DashStyle; + /** + * Gets the dash style with a single dot. + *

    + * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and + * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is + * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. + *

    + */ + static DOT:yfiles.view.DashStyle; + /** + * Gets the solid dash style with no dashes. + */ + static SOLID:yfiles.view.DashStyle; + static $class:yfiles.lang.Class; + } /** * Template factory for creating visual representations of rectangular shaped objects. *

    @@ -17822,10 +17936,10 @@ declare namespace system{ * {@link yfiles.view.CanvasComponent} uses this interface through the {@link yfiles.view.ICanvasObjectDescriptor} to populate the visual * canvas object tree. *

    - * @param {yfiles.view.IRenderContext} context The context that describes where the visual will be used. - * @param {yfiles.geometry.Rect} bounds The initial bounds to use for the visual. - * @param {Object} dataObject The data object to visualize. - * @returns {yfiles.view.SvgVisual} The visual to include in the canvas object visual tree. This may be null. + * @param context The context that describes where the visual will be used. + * @param bounds The initial bounds to use for the visual. + * @param dataObject The data object to visualize. + * @returns The visual to include in the canvas object visual tree. This may be null. * @see yfiles.view.IVisualTemplate#updateVisual * @abstract */ @@ -17838,12 +17952,12 @@ declare namespace system{ * previously been created by the same instance during a call to {@link yfiles.view.IVisualTemplate#createVisual}. Implementation * may update the oldVisual and return that same reference, or create a new visual and return the new instance or null. *

    - * @param {yfiles.view.IRenderContext} context The context that describes where the visual will be used in. - * @param {yfiles.view.SvgVisual} oldVisual The visual instance that had been returned the last time the {@link yfiles.view.IVisualTemplate#createVisual} method was called + * @param context The context that describes where the visual will be used in. + * @param oldVisual The visual instance that had been returned the last time the {@link #createVisual} method was called * on this instance. - * @param {yfiles.geometry.Rect} bounds The initial bounds to use for the visual. - * @param {Object} dataObject The data object to visualize. - * @returns {yfiles.view.SvgVisual} oldVisual, if this instance modified the visual, or a new visual that should replace the existing one in the canvas + * @param bounds The initial bounds to use for the visual. + * @param dataObject The data object to visualize. + * @returns oldVisual, if this instance modified the visual, or a new visual that should replace the existing one in the canvas * object visual tree. * @abstract */ @@ -17853,6 +17967,51 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; + /** + * The default implementation of a data object for the {@link yfiles.input.DropInputMode}. + * @class + * @final + */ + export interface DragDropItem extends Object{} + export class DragDropItem { + /** + * Initializes a new instance of the {@link yfiles.view.DragDropItem} class and sets the provided data item for the specified + * format. + * @param [format=null] The format. + * @param [data=null] The data item. + * @see yfiles.view.DragDropItem#setData + */ + constructor(format?:string,data?:Object); + /** + * Initializes a new instance of the {@link yfiles.view.DragDropItem} class and sets the provided data item for the specified + * format. + * @param {Object} options The parameters to pass. + * @param [options.format=null] The format. + * @param [options.data=null] The data item. + * @see yfiles.view.DragDropItem#setData + */ + constructor(options:{format?:string,data?:Object}); + /** + * Gets the data item for the given format. + * @param format The format. + * @returns The data item that is stored for this format, or null if no such item exists. + * @see yfiles.view.DragDropItem#setData + */ + getData(format:string):Object; + /** + * Sets the data item for the given format. + * @param format The format. + * @param data The data item. + * @see yfiles.view.DragDropItem#getData + */ + setData(format:string,data:Object):void; + /** + * Gets the types of the data items stored in this instance. + * @type {Array.} + */ + types:string[]; + static $class:yfiles.lang.Class; + } export enum DragDropEffects{ /** * Indicates that the drop target cannot be used for dropping the data. @@ -17894,15 +18053,15 @@ declare namespace system{ /** * The event argument that will be used by {@link yfiles.view.DropTarget} to notify handlers of the various events during a drag * and drop operation. - * @class yfiles.view.DragEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface DragEventArgs extends yfiles.lang.EventArgs{} export class DragEventArgs { /** * Gets the position of the current drag operation in the coordinates system of the provided element. - * @param {HTMLElement} element The element for which the coordinates should be used. - * @returns {yfiles.geometry.Point} The position in the coordinates system of element + * @param element The element for which the coordinates should be used. + * @returns The position in the coordinates system of element */ getPosition(element:HTMLElement):yfiles.geometry.Point; /** @@ -17955,29 +18114,52 @@ declare namespace system{ } /** * Specifies the properties of a transition point of a gradient. - * @class yfiles.view.GradientStop + * @class * @implements {yfiles.lang.ICloneable} */ export interface GradientStop extends Object,yfiles.lang.ICloneable{} export class GradientStop { /** - * Creates a new transition point of a gradient. - * @param {yfiles.view.Color} [color=null] - * @param {number} [offset=0] - * @constructor + * Creates a new transition point of a gradient with the given rgba values and offset. + *

    + * The rgba values must be between 0 and 255. + *

    + * @param r The red value. + * @param g The green value. + * @param b The blue value. + * @param [a=255] The alpha value, 255 by default. + * @param [offset=0] The offset, 0 by default. + */ + constructor(r:number,g:number,b:number,a?:number,offset?:number); + /** + * Creates a new transition point of a gradient with the given rgba values and offset. + *

    + * The rgba values must be between 0 and 255. + *

    + * @param {Object} options The parameters to pass. + * @param options.r The red value. + * @param options.g The green value. + * @param options.b The blue value. + * @param [options.a=255] The alpha value, 255 by default. + * @param [options.offset=0] The offset, 0 by default. + */ + constructor(options:{r:number,g:number,b:number,a?:number,offset?:number}); + /** + * Creates a new transition point of a gradient with the given color and offset. + * @param [color=null] The stop's color. + * @param [offset=0] The offset. */ constructor(color?:yfiles.view.Color,offset?:number); /** - * Creates a new transition point of a gradient. + * Creates a new transition point of a gradient with the given color and offset. * @param {Object} options The parameters to pass. - * @param {yfiles.view.Color} [options.color=null] - * @param {number} [options.offset=0] - * @constructor + * @param [options.color=null] The stop's color. + * @param [options.offset=0] The offset. */ constructor(options:{color?:yfiles.view.Color,offset?:number}); /** * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.GradientStop#isFrozen frozen}. - * @returns {Object} An instance of the same type as this instance. + * @returns An instance of the same type as this instance. */ clone():Object; /** @@ -17989,7 +18171,7 @@ declare namespace system{ freeze():void; /** * Determines if this instance is frozen. - * @returns {boolean} + * @returns */ isFrozen():boolean; /** @@ -18021,24 +18203,24 @@ declare namespace system{ export interface ISvgDefsCreator extends Object{ /** * Checks if the specified node references the element represented by this object. - * @param {yfiles.view.ICanvasContext} context The current canvas context. - * @param {Node} node The SVG node. - * @param {string} id The defs id that has been stored for this instance by the provided context. - * @returns {boolean} true if node references the element represented by this instance. + * @param context The current canvas context. + * @param node The SVG node. + * @param id The defs id that has been stored for this instance by the provided context. + * @returns true if node references the element represented by this instance. * @abstract */ accept(context:yfiles.view.ICanvasContext,node:Node,id:string):boolean; /** * Creates the element that is put into the defs section of the SVG element. - * @param {yfiles.view.ICanvasContext} context The canvas context that can be used to register brushes etc. - * @returns {SVGElement} An {@link SVGElement} that can be put into the defs section of the SVG element. + * @param context The canvas context that can be used to register brushes etc. + * @returns An {@link } that can be put into the defs section of the SVG element. * @abstract */ createDefsElement(context:yfiles.view.ICanvasContext):SVGElement; /** * Updates the defs element with the current gradient data. - * @param {yfiles.view.ICanvasContext} context - * @param {SVGElement} oldElement + * @param context + * @param oldElement * @abstract */ updateDefsElement(context:yfiles.view.ICanvasContext,oldElement:SVGElement):void; @@ -18046,18 +18228,18 @@ declare namespace system{ var ISvgDefsCreator:{ /** * Determine whether the given element has an attribute with the given name that references the id in the defs element. - * @param {Element} element The element to inspect - * @param {string} attributeName The attribute to check - * @param {string} defsId The id in the defs section - * @returns {boolean} Whether the attribute is equal to "url(#{defsId})" + * @param element The element to inspect + * @param attributeName The attribute to check + * @param defsId The id in the defs section + * @returns Whether the attribute is equal to "url(#{defsId})" * @static */ isAttributeReference?(element:Element,attributeName:string,defsId:string):boolean; /** * Determines whether the specified element is an SVG use element that references the given id. - * @param {Node} element The element to inspect. - * @param {string} defsId The id of the element in the defs section. - * @returns {boolean} true if the specified element references the element; otherwise, false. + * @param element The element to inspect. + * @param defsId The id of the element in the defs section. + * @returns true if the specified element references the element; otherwise, false. * @static */ isUseReference?(element:Node,defsId:string):boolean; @@ -18195,17 +18377,16 @@ declare namespace system{ } /** * A wrapper for the native keyboard event which abstracts away incompatibilities in browser implementations. - * @class yfiles.view.KeyEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface KeyEventArgs extends yfiles.lang.EventArgs{} export class KeyEventArgs { /** * Creates a new instance of this class from a native keyboard event. - * @param {KeyboardEvent} evt The native keyboard event. - * @param {boolean} isPrintable if set to true [is printable]. - * @param {yfiles.view.KeyEventType} type The type of the event. - * @constructor + * @param evt The native keyboard event. + * @param isPrintable if set to true [is printable]. + * @param type The type of the event. */ constructor(evt:KeyboardEvent,isPrintable:boolean,type:yfiles.view.KeyEventType); /** @@ -18280,7 +18461,7 @@ declare namespace system{ } /** * Fills an area with a linear gradient. - * @class yfiles.view.LinearGradient + * @class * @extends {yfiles.view.Fill} * @implements {yfiles.view.ISvgDefsCreator} */ @@ -18289,7 +18470,7 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.view.LinearGradient} class. * @param {Object} [options=null] The parameters to pass. - * @param options.gradientStops An array of {@link yfiles.view.GradientStop}s. Each item will be added to the {@link yfiles.view.LinearGradient#gradientStops} collection. + * @param options.gradientStops An array of {@link }s. Each item will be added to the {@link #gradientStops} collection. * @param {yfiles.geometry.Point} options.startPoint The start point of this gradient. *

    * This option sets the {@link yfiles.view.LinearGradient#startPoint} property on the created object. @@ -18302,38 +18483,37 @@ declare namespace system{ *

    * This option sets the {@link yfiles.view.LinearGradient#spreadMethod} property on the created object. *

    - * @constructor */ constructor(options?:{startPoint?:yfiles.geometry.Point,endPoint?:yfiles.geometry.Point,spreadMethod?:yfiles.view.GradientSpreadMethod,gradientStops?:Array}); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {Node} item - * @param {string} id - * @returns {boolean} + * @param context + * @param item + * @param id + * @returns */ accept(context:yfiles.view.ICanvasContext,item:Node,id:string):boolean; /** * Creates a new SVG gradient that corresponds to this gradient brush. - * @param {yfiles.view.ICanvasContext} context - * @returns {SVGElement} A new SVG gradient that corresponds to this gradient brush + * @param context + * @returns A new SVG gradient that corresponds to this gradient brush */ createDefsElement(context:yfiles.view.ICanvasContext):SVGElement; /** * Creates a new SVG gradient that corresponds to this gradient brush. - * @returns {SVGElement} A new SVG gradient that corresponds to this gradient brush + * @returns A new SVG gradient that corresponds to this gradient brush */ toSvgGradient():SVGElement; /** * Updates the SVG gradient within the defs section of the SVG document if it has changed. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {SVGElement} oldElement The old element. + * @param context The context. + * @param oldElement The old element. */ updateDefsElement(context:yfiles.view.ICanvasContext,oldElement:SVGElement):void; /** * Updates the SVG gradient within the defs section of the SVG document if it has changed. - * @param {SVGElement} oldElement The old element. - * @param {yfiles.view.ICanvasContext} context The context. + * @param oldElement The old element. + * @param context The context. */ updateSvgGradient(oldElement:SVGElement,context:yfiles.view.ICanvasContext):void; /** @@ -18382,7 +18562,7 @@ declare namespace system{ } /** * Fills an area with a SVG pattern. - * @class yfiles.view.PatternFill + * @class * @extends {yfiles.view.Fill} * @implements {yfiles.view.ISvgDefsCreator} */ @@ -18390,27 +18570,26 @@ declare namespace system{ export class PatternFill { /** * Initializes a new instance of the {@link yfiles.view.PatternFill} class. - * @constructor */ constructor(); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {Node} node - * @param {string} id - * @returns {boolean} + * @param context + * @param node + * @param id + * @returns */ accept(context:yfiles.view.ICanvasContext,node:Node,id:string):boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {SVGElement} + * @param context + * @returns */ createDefsElement(context:yfiles.view.ICanvasContext):SVGElement; /** * - * @param {yfiles.view.ICanvasContext} context - * @param {SVGElement} oldElement + * @param context + * @param oldElement */ updateDefsElement(context:yfiles.view.ICanvasContext,oldElement:SVGElement):void; /** @@ -18435,6 +18614,723 @@ declare namespace system{ size:yfiles.geometry.Size; static $class:yfiles.lang.Class; } + /** + * A utility class that holds all properties of a {@link yfiles.view.Stroke}. + * @class + * @implements {yfiles.lang.ICloneable} + * @final + */ + export interface Stroke extends Object,yfiles.lang.ICloneable{} + export class Stroke { + /** + * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given rgba values and thickness. + *

    + * The rgba values must be between 0 and 255. + *

    + * @param r The red value. + * @param g The green value. + * @param b The blue value. + * @param [a=255] The alpha value, 255 by default. + * @param [thickness=1.0] The thickness, 1 by default. + */ + constructor(r:number,g:number,b:number,a?:number,thickness?:number); + /** + * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given rgba values and thickness. + *

    + * The rgba values must be between 0 and 255. + *

    + * @param {Object} options The parameters to pass. + * @param options.r The red value. + * @param options.g The green value. + * @param options.b The blue value. + * @param [options.a=255] The alpha value, 255 by default. + * @param [options.thickness=1.0] The thickness, 1 by default. + * @param {yfiles.view.LineCap} options.lineCap The dash cap. + *

    + * This option sets the {@link yfiles.view.Stroke#lineCap} property on the created object. + *

    + * @param {yfiles.view.DashStyle} options.dashStyle The dash style for the {@link yfiles.view.Stroke}. + *

    + * This option sets the {@link yfiles.view.Stroke#dashStyle} property on the created object. + *

    + * @param {yfiles.view.LineJoin} options.lineJoin The line join property. + *

    + * This option sets the {@link yfiles.view.Stroke#lineJoin} property on the created object. + *

    + * @param {number} options.miterLimit The miter limit. + *

    + * This option sets the {@link yfiles.view.Stroke#miterLimit} property on the created object. + *

    + */ + constructor(options:{r:number,g:number,b:number,a?:number,thickness?:number,lineCap?:yfiles.view.LineCap,dashStyle?:yfiles.view.DashStyle,lineJoin?:yfiles.view.LineJoin,miterLimit?:number}); + /** + * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given brush and thickness. + * @param [fill=null] The brush. + * @param [thickness=1.0] The thickness. + */ + constructor(fill?:yfiles.view.Fill,thickness?:number); + /** + * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given brush and thickness. + * @param {Object} options The parameters to pass. + * @param [options.fill=null] The brush. + * @param [options.thickness=1.0] The thickness. + * @param {yfiles.view.LineCap} options.lineCap The dash cap. + *

    + * This option sets the {@link yfiles.view.Stroke#lineCap} property on the created object. + *

    + * @param {yfiles.view.DashStyle} options.dashStyle The dash style for the {@link yfiles.view.Stroke}. + *

    + * This option sets the {@link yfiles.view.Stroke#dashStyle} property on the created object. + *

    + * @param {yfiles.view.LineJoin} options.lineJoin The line join property. + *

    + * This option sets the {@link yfiles.view.Stroke#lineJoin} property on the created object. + *

    + * @param {number} options.miterLimit The miter limit. + *

    + * This option sets the {@link yfiles.view.Stroke#miterLimit} property on the created object. + *

    + */ + constructor(options:{fill?:yfiles.view.Fill,thickness?:number,lineCap?:yfiles.view.LineCap,dashStyle?:yfiles.view.DashStyle,lineJoin?:yfiles.view.LineJoin,miterLimit?:number}); + /** + * Assigns the stroke defined by this instance to the given element. + * @param element The element whose stroke should be set. + * @param context The context. + */ + applyTo(element:SVGElement,context:yfiles.view.ICanvasContext):void; + /** + * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.Stroke#isFrozen frozen}. + * @returns An instance of the same type as this instance. + */ + clone():Object; + /** + * Clones the current value of this instance to a new unfrozen {@link yfiles.view.Stroke}. + * @returns + */ + cloneCurrentValue():yfiles.view.Stroke; + /** + * Freezes this instance. + *

    + * Freezing an object makes it immutable, which can result in performance enhancements. + *

    + */ + freeze():void; + /** + * Determines if this instance is frozen. + * @returns + */ + isFrozen():boolean; + /** + * Gets or sets the brush for the {@link yfiles.view.Stroke}. + * @default 'Black' + * @type {yfiles.view.Fill} + */ + fill:yfiles.view.Fill; + /** + * Gets or sets the dash cap. + * @default yfiles.view.LineCap.FLAT + * @type {yfiles.view.LineCap} + */ + lineCap:yfiles.view.LineCap; + /** + * Gets or sets the line join property. + * @default yfiles.view.LineJoin.MITER + * @type {yfiles.view.LineJoin} + */ + lineJoin:yfiles.view.LineJoin; + /** + * Gets or sets the dash style for the {@link yfiles.view.Stroke}. + *

    + * The visual appearance of the 'dashes' and 'gaps' specified by this property depends on the value of the property {@link yfiles.view.Stroke#lineCap}, too. + *

    + *

    + * The predefined dash styles are designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and + * {@link yfiles.view.LineCap#ROUND}. With {@link yfiles.view.LineCap#FLAT}, the dashes might not look like expected, for example {@link yfiles.view.DashStyle#DOT} will not + * be visible at all. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value in this + * case. + *

    + * @default 'Solid' + * @type {yfiles.view.DashStyle} + */ + dashStyle:yfiles.view.DashStyle; + /** + * Gets or sets the miter limit. + * @default 10.0 + * @type {number} + */ + miterLimit:number; + /** + * Gets or sets the thickness of the stroke. + * @default 1.0 + * @type {number} + */ + thickness:number; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ALICE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ALICE_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ANTIQUE_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ANTIQUE_WHITE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AQUA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static AQUA:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AQUAMARINE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static AQUAMARINE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AZURE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static AZURE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BEIGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BEIGE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BISQUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BISQUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLACK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BLACK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLANCHED_ALMOND} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BLANCHED_ALMOND:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLUE_VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BLUE_VIOLET:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BROWN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BURLY_WOOD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BURLY_WOOD:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CADET_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CADET_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CHARTREUSE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CHARTREUSE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CHOCOLATE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CHOCOLATE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CORAL:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORNFLOWER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CORNFLOWER_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORNSILK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CORNSILK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CRIMSON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CRIMSON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CYAN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_CYAN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_GOLDENROD:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_KHAKI} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_KHAKI:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_MAGENTA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_MAGENTA:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_OLIVE_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_OLIVE_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_ORANGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_ORANGE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_ORCHID:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_SALMON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_SEA_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_SLATE_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_SLATE_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_TURQUOISE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_VIOLET:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DEEP_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DEEP_PINK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DEEP_SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DEEP_SKY_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DIM_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DIM_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DODGER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DODGER_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FIREBRICK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static FIREBRICK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FLORAL_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static FLORAL_WHITE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FOREST_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static FOREST_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FUCHSIA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static FUCHSIA:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GAINSBORO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GAINSBORO:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GHOST_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GHOST_WHITE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GOLD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GOLD:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GOLDENROD:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GREEN_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GREEN_YELLOW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#HONEYDEW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static HONEYDEW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#HOT_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static HOT_PINK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#INDIAN_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static INDIAN_RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#INDIGO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static INDIGO:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#IVORY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static IVORY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#KHAKI} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static KHAKI:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAVENDER} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LAVENDER:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAVENDER_BLUSH} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LAVENDER_BLUSH:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAWN_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LAWN_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LEMON_CHIFFON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LEMON_CHIFFON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_CORAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_CORAL:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_CYAN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GOLDENROD_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_GOLDENROD_YELLOW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_PINK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_SALMON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_SEA_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_SKY_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_SLATE_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_STEEL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_STEEL_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_YELLOW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIME} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIME:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIME_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIME_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LINEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LINEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MAGENTA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MAGENTA:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MAROON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MAROON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_AQUAMARINE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_AQUAMARINE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_ORCHID:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_PURPLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_PURPLE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_SEA_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_SLATE_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SPRING_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_SPRING_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_TURQUOISE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_VIOLET_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_VIOLET_RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MIDNIGHT_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MIDNIGHT_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MINT_CREAM} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MINT_CREAM:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MISTY_ROSE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MISTY_ROSE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MOCCASIN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MOCCASIN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#NAVAJO_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static NAVAJO_WHITE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#NAVY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static NAVY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLD_LACE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static OLD_LACE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLIVE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static OLIVE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLIVE_DRAB} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static OLIVE_DRAB:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORANGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ORANGE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORANGE_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ORANGE_RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ORCHID:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PALE_GOLDENROD:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PALE_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PALE_TURQUOISE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_VIOLET_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PALE_VIOLET_RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PAPAYA_WHIP} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PAPAYA_WHIP:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PEACH_PUFF} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PEACH_PUFF:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PERU} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PERU:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PINK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PLUM} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PLUM:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#POWDER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static POWDER_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PURPLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PURPLE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ROSY_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ROSY_BROWN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ROYAL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ROYAL_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SADDLE_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SADDLE_BROWN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SALMON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SANDY_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SANDY_BROWN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SEA_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SEA_SHELL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SEA_SHELL:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SIENNA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SIENNA:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SILVER} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SILVER:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SKY_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SLATE_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SLATE_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SNOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SNOW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SPRING_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SPRING_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#STEEL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static STEEL_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static TAN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TEAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static TEAL:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#THISTLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static THISTLE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TOMATO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static TOMATO:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TRANSPARENT} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static TRANSPARENT:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static TURQUOISE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static VIOLET:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHEAT} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static WHEAT:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static WHITE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHITE_SMOKE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static WHITE_SMOKE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static YELLOW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#YELLOW_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static YELLOW_GREEN:yfiles.view.Stroke; + static $class:yfiles.lang.Class; + } export enum LineCap{ /** * Indicates that the line cap of a {@link yfiles.view.Stroke} should be squared. @@ -18465,7 +19361,7 @@ declare namespace system{ } /** * Fills an area with a radial gradient. - * @class yfiles.view.RadialGradient + * @class * @extends {yfiles.view.Fill} * @implements {yfiles.view.ISvgDefsCreator} */ @@ -18474,7 +19370,7 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.view.RadialGradient} class. * @param {Object} [options=null] The parameters to pass. - * @param options.gradientStops An array of {@link yfiles.view.GradientStop}s. Each item will be added to the {@link yfiles.view.RadialGradient#gradientStops} collection. + * @param options.gradientStops An array of {@link }s. Each item will be added to the {@link #gradientStops} collection. * @param {yfiles.geometry.Point} options.center The center of this radial gradient. *

    * This option sets the {@link yfiles.view.RadialGradient#center} property on the created object. @@ -18495,38 +19391,37 @@ declare namespace system{ *

    * This option sets the {@link yfiles.view.RadialGradient#gradientOrigin} property on the created object. *

    - * @constructor */ constructor(options?:{center?:yfiles.geometry.Point,radiusX?:number,radiusY?:number,spreadMethod?:yfiles.view.GradientSpreadMethod,gradientOrigin?:yfiles.geometry.Point,gradientStops?:Array}); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {Node} item - * @param {string} id - * @returns {boolean} + * @param context + * @param item + * @param id + * @returns */ accept(context:yfiles.view.ICanvasContext,item:Node,id:string):boolean; /** * Creates a new SVG gradient that corresponds to this gradient brush. - * @param {yfiles.view.ICanvasContext} context - * @returns {SVGElement} A new SVG gradient that corresponds to this gradient brush + * @param context + * @returns A new SVG gradient that corresponds to this gradient brush */ createDefsElement(context:yfiles.view.ICanvasContext):SVGElement; /** * Creates a new SVG gradient that corresponds to this gradient brush. - * @returns {SVGElement} A new SVG gradient that corresponds to this gradient brush + * @returns A new SVG gradient that corresponds to this gradient brush */ toSvgGradient():SVGElement; /** * Updates the SVG gradient within the defs section of the SVG document if it has changed. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {SVGElement} oldElement The old element. + * @param context The context. + * @param oldElement The old element. */ updateDefsElement(context:yfiles.view.ICanvasContext,oldElement:SVGElement):void; /** * Updates the SVG gradient within the defs section of the SVG document if it has changed. - * @param {SVGElement} oldElement The old element. - * @param {yfiles.view.ICanvasContext} context The context. + * @param oldElement The old element. + * @param context The context. */ updateSvgGradient(oldElement:SVGElement,context:yfiles.view.ICanvasContext):void; /** @@ -18570,7 +19465,7 @@ declare namespace system{ * of visuals can be used at the top-level of a {@link yfiles.view.CanvasComponent}'s {@link yfiles.view.ICanvasObject}s, only. *

    * @see yfiles.view.HtmlCanvasVisual#paint - * @class yfiles.view.HtmlCanvasVisual + * @class * @extends {yfiles.view.Visual} */ export interface HtmlCanvasVisual extends yfiles.view.Visual{} @@ -18582,8 +19477,8 @@ declare namespace system{ * Implementations should not destroy the context's state, but should make sure to restore the state to the previously * active state. This is especially true for the transformation and clip. *

    - * @param {yfiles.view.IRenderContext} renderContext The render context of the {@link yfiles.view.CanvasComponent} - * @param {CanvasRenderingContext2D} ctx The HTML5 Canvas context to use for rendering. + * @param renderContext The render context of the {@link } + * @param ctx The HTML5 Canvas context to use for rendering. * @abstract */ paint(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D):void; @@ -18610,17 +19505,27 @@ declare namespace system{ } /** * Fills an area with a specified solid color. - * @class yfiles.view.SolidColorFill + * @class * @extends {yfiles.view.Fill} */ export interface SolidColorFill extends yfiles.view.Fill{} export class SolidColorFill { /** - * Initializes a new instance of the {@link yfiles.view.SolidColorFill} class with the specified color. - * @param {yfiles.view.Color} color The solid color with which the area is filled. - * @constructor + * Initializes a new instance of the {@link yfiles.view.SolidColorFill} class with the specified rgba values. + *

    + * All values must be between 0 and 255. + *

    + * @param r The red value. + * @param g The green value. + * @param b The blue value. + * @param [a=255] The alpha value, 255 by default. */ - constructor(color:yfiles.view.Color); + constructor(r:number,g:number,b:number,a?:number); + /** + * Initializes a new instance of the {@link yfiles.view.SolidColorFill} class with the specified color. + * @param [color=null] The solid color with which the area is filled. + */ + constructor(color?:yfiles.view.Color); /** * Gets the solid color with which the area is filled. * @type {yfiles.view.Color} @@ -18630,15 +19535,14 @@ declare namespace system{ } /** * Wraps a {@link SVGElement} as {@link yfiles.view.Visual}. - * @class yfiles.view.SvgVisual + * @class * @extends {yfiles.view.Visual} */ export interface SvgVisual extends yfiles.view.Visual{} export class SvgVisual { /** * Initializes a new instance of the {@link yfiles.view.SvgVisual} class which wraps the specified SVG element. - * @param {SVGElement} element The SVG element which this object wraps. - * @constructor + * @param element The SVG element which this object wraps. */ constructor(element:SVGElement); /** @@ -18647,9 +19551,9 @@ declare namespace system{ * This implementation uses caching and the baseVal property of the transform attribute if possible and thus performs * better than using the plain DOM API. *

    - * @param {Element} transformable The SVG element that should be translated. - * @param {number} scaleX The vertical scale. - * @param {number} scaleY The horizontal scale. + * @param transformable The SVG element that should be translated. + * @param scaleX The vertical scale. + * @param scaleY The horizontal scale. * @static */ static setScale(transformable:Element,scaleX:number,scaleY:number):void; @@ -18659,9 +19563,9 @@ declare namespace system{ * This implementation uses caching and the baseVal property of the transform attribute if possible and thus performs * better than using the plain DOM API. *

    - * @param {Element} transformable The SVG element that should be translated. - * @param {number} dx The offset on the x-axis. - * @param {number} dy The offset on the y-axis. + * @param transformable The SVG element that should be translated. + * @param dx The offset on the x-axis. + * @param dy The offset on the y-axis. * @static */ static setTranslate(transformable:Element,dx:number,dy:number):void; @@ -18736,7 +19640,7 @@ declare namespace system{ */ CHARACTER, /** - * The text could be wrapped and clipped after any character. An ellipsis is added to indicate clipped text. + * The text could be wrapped and clipped after any character and an ellipsis is added to indicate clipped text. */ CHARACTER_ELLIPSIS, /** @@ -18744,13 +19648,13 @@ declare namespace system{ */ WORD, /** - * The text could be wrapped and clipped at word boundaries. An ellipsis is added to indicate trimmed text. + * The text could be wrapped and clipped at word boundaries and an ellipsis is added to indicate trimmed text. */ WORD_ELLIPSIS } /** * Displays a string or any HTML element as tool tip. - * @class yfiles.view.ToolTip + * @class */ export interface ToolTip extends Object{} export class ToolTip { @@ -18759,7 +19663,6 @@ declare namespace system{ *

    * This implementation calls {@link yfiles.view.ToolTip#createToolTip} to create the HTML element to display as tool tip. *

    - * @constructor */ constructor(); /** @@ -18767,7 +19670,7 @@ declare namespace system{ *

    * This implementation creates a simple HTML div element with the CSS class yfiles-tooltip. *

    - * @returns {HTMLDivElement} A HTML div element. + * @returns A HTML div element. * @protected */ createToolTip():HTMLDivElement; @@ -18780,8 +19683,8 @@ declare namespace system{ * Subclasses which intend to use a more complex element as tool tip have to override this method to set the content * properly. *

    - * @param {Object} oldContent The content to remove. - * @param {Object} newContent The content to add. + * @param oldContent The content to remove. + * @param newContent The content to add. * @protected */ onContentChanged(oldContent:Object,newContent:Object):void; @@ -18811,7 +19714,10 @@ declare namespace system{ */ desiredSize:yfiles.geometry.Size; /** - * Gets or sets the content. + * Gets or sets the content of this tooltip. + *

    + * The content can be either a string or any HTML element. + *

    *

    * This setter invokes the method {@link yfiles.view.ToolTip#onContentChanged} if the content is changed. *

    @@ -18820,6 +19726,131 @@ declare namespace system{ content:Object; static $class:yfiles.lang.Class; } + /** + * Describes a font, with size, family, style, weight and line spacing. + * @class + */ + export interface Font extends Object{} + export class Font { + /** + * Initializes a new instance of the {@link yfiles.view.Font} class with size 10, "Arial" family, normal weight and style and line + * spacing 0.5, or the given values. + * @param [fontFamily=null] + * @param [fontSize=10] + * @param [fontStyle=null] + * @param [fontWeight=null] + * @param [lineSpacing=0.5] + * @param [textDecoration=null] + * @see yfiles.view.Font#createCopy + */ + constructor(fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration); + /** + * Initializes a new instance of the {@link yfiles.view.Font} class with size 10, "Arial" family, normal weight and style and line + * spacing 0.5, or the given values. + * @param {Object} options The parameters to pass. + * @param [options.fontFamily=null] + * @param [options.fontSize=10] + * @param [options.fontStyle=null] + * @param [options.fontWeight=null] + * @param [options.lineSpacing=0.5] + * @param [options.textDecoration=null] + * @see yfiles.view.Font#createCopy + */ + constructor(options:{fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration}); + /** + * Assigns the text properties of this instance to the given text element. + * @param textElement The text element to assign set the {@link } on. + */ + applyTo(textElement:SVGTextElement):void; + /** + * Creates a copy with the values of this instance or optionally the explicitly specified values. + * @param [fontFamily=null] The font family to use for the copy. + * @param [fontSize=-1] The font size to use for the copy. + * @param [fontStyle=null] The font style to use for the copy. + * @param [fontWeight=null] The font weight to use for the copy. + * @param [lineSpacing=-1] The line spacing to use for the copy. + * @param [textDecoration=null] The text decoration to use for the copy. + * @returns A new {@link } instance. + */ + createCopy(fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration):yfiles.view.Font; + /** + * Creates a copy with the values of this instance or optionally the explicitly specified values. + * @param {Object} options The parameters to pass. + * @param [options.fontFamily=null] The font family to use for the copy. + * @param [options.fontSize=-1] The font size to use for the copy. + * @param [options.fontStyle=null] The font style to use for the copy. + * @param [options.fontWeight=null] The font weight to use for the copy. + * @param [options.lineSpacing=-1] The line spacing to use for the copy. + * @param [options.textDecoration=null] The text decoration to use for the copy. + * @returns A new {@link } instance. + */ + createCopy(options:{fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration}):yfiles.view.Font; + /** + * Gets the size of the font. + *

    + * The font size is interpreted as px. + *

    + * @default 10 + * @type {number} + */ + fontSize:number; + /** + * Gets or sets the font family. + * @default 'Arial' + * @type {string} + */ + fontFamily:string; + /** + * Gets or sets the font style. + * @default yfiles.view.FontStyle.NORMAL + * @type {yfiles.view.FontStyle} + */ + fontStyle:yfiles.view.FontStyle; + /** + * Gets or sets the font weight. + * @default yfiles.view.FontWeight.NORMAL + * @type {yfiles.view.FontWeight} + */ + fontWeight:yfiles.view.FontWeight; + /** + * Gets or sets the line spacing. + *

    + * The value is interpreted as parts of the line height. + *

    + * @default 0.5 + * @type {number} + */ + lineSpacing:number; + /** + * Gets or sets the text decoration. + * @default yfiles.view.TextDecoration.NONE + * @type {yfiles.view.TextDecoration} + */ + textDecoration:yfiles.view.TextDecoration; + static $class:yfiles.lang.Class; + } + export enum FontStyle{ + NORMAL, + ITALIC, + OBLIQUE, + INHERIT + } + export enum FontWeight{ + NORMAL, + BOLD, + BOLDER, + LIGHTER, + ITEM100, + ITEM200, + ITEM300, + ITEM400, + ITEM500, + ITEM600, + ITEM700, + ITEM800, + ITEM900, + INHERIT + } export enum VerticalTextAlignment{ /** * Indicates that the object should be placed in the center of another object. @@ -18838,1628 +19869,630 @@ declare namespace system{ * Base class for all objects that support drawing in the context of a {@link yfiles.view.CanvasComponent}. * @see yfiles.view.SvgVisual * @see yfiles.view.HtmlCanvasVisual - * @class yfiles.view.Visual + * @class */ export interface Visual extends Object{} export class Visual { static $class:yfiles.lang.Class; } - /** - * A component for displaying and editing an {@link yfiles.graph.IGraph}. - *

    - * This is a specialized {@link yfiles.view.CanvasComponent} that can hold, display, and edit an {@link yfiles.graph.IGraph} instance. It - * provides access to the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphComponent#selection} instances. - *

    - *

    - * This class has bindings for the following {@link yfiles.input.ICommand}s. - *

    - *
      - *
    • {@link yfiles.input.ICommand#FIT_GRAPH_BOUNDS} that invokes FitGraphBounds()
    • - *
    • {@link yfiles.input.ICommand#SET_CURRENT_ITEM} for setting the {@link yfiles.view.GraphComponent#currentItem}
    • - *
    • {@link yfiles.input.ICommand#ZOOM_TO_CURRENT_ITEM} for adjusting the {@link yfiles.view.CanvasComponent#viewport} to the {@link yfiles.view.GraphComponent#currentItem}
    • - *
    - *

    - * The {@link yfiles.input.ICommand#ZOOM_TO_CURRENT_ITEM} is enabled, if {@link yfiles.view.CanvasComponent#navigationCommandsEnabled} is true. - *

    - *

    - * The components that can be used to display and edit a model are discussed in the section - * {@link @DGUIDE_PREFIX@/view_graphcontrol.html The Component for Displaying Graphs}. - *

    - *

    Related demos:

    - *
      - *
    • Demo: GraphViewer, Demo.yFiles.Graph.Viewer
    • - *
    • Demo: SimpleEditorForm, Demo.yFiles.Graph.SimpleEditor
    • - *
    - * @class yfiles.view.GraphComponent - * @extends {yfiles.view.CanvasComponent} - */ - export interface GraphComponent extends yfiles.view.CanvasComponent{} - export class GraphComponent { + export enum MouseEventTypes{ /** - * Creates a new instance of {@link yfiles.view.GraphComponent} using the div element that is specified by the selector. - *

    - * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default - * values upon first access. Thus this instance can be used right away without any further initialization. - *

    - * @param {string} selector The CSS selector or id for an existing div element - * @constructor - */ - constructor(selector:string); - /** - * Creates a new instance of {@link yfiles.view.GraphComponent} using the div element that is specified by the selector. - *

    - * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default - * values upon first access. Thus this instance can be used right away without any further initialization. - *

    - * @param {Object} options The parameters to pass. - * @param {string} options.selector The CSS selector or id for an existing div element - * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. - *

    - * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. - *

    - * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. - *

    - * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. - *

    - * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. - *

    - * @constructor - */ - constructor(options:{selector:string,inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); - /** - * Creates a new instance of the {@link yfiles.view.GraphComponent} in the given div element. - *

    - * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default - * values upon first access. Thus this instance can be used right away without any further initialization. - *

    - * @param {HTMLDivElement} div The existing div element to use for rendering the canvas into. - * @constructor - */ - constructor(div:HTMLDivElement); - /** - * Creates a new instance of the {@link yfiles.view.GraphComponent} in the given div element. - *

    - * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default - * values upon first access. Thus this instance can be used right away without any further initialization. - *

    - * @param {Object} options The parameters to pass. - * @param {HTMLDivElement} options.div The existing div element to use for rendering the canvas into. - * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. - *

    - * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. - *

    - * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. - *

    - * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. - *

    - * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. - *

    - * @constructor - */ - constructor(options:{div:HTMLDivElement,inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); - /** - * Creates a new instance of the {@link yfiles.view.GraphComponent}. - *

    - * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default - * values upon first access. Thus this instance can be used right away without any further initialization. This constructor - * creates a new div element that needs to be manually added to the DOM. - *

    - * @param {Object} [options=null] The parameters to pass. - * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. - *

    - * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. - *

    - * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. - *

    - * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. - *

    - * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. - *

    - * @constructor - */ - constructor(options?:{inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); - /** - * Factory method for the FocusIndicatorManager property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#focusIndicatorManager} property. - *

    - * @returns {yfiles.view.FocusIndicatorManager.} a new instance of FocusIndicatorManager - * @protected - */ - createFocusIndicatorManager():yfiles.view.FocusIndicatorManager; - /** - * Factory method for the Graph property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#graph} property. - *

    - * @returns {yfiles.graph.IGraph} a new instance of {@link yfiles.graph.DefaultGraph} - * @protected - */ - createGraph():yfiles.graph.IGraph; - /** - * Creates the default instance to use if no custom instance has been set. - * @returns {yfiles.graph.GraphClipboard} A default {@link yfiles.graph.GraphClipboard} instance. - * @protected - */ - createGraphClipboard():yfiles.graph.GraphClipboard; - /** - * Factory method for the {@link yfiles.view.GraphComponent#graphModelManager} property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#graphModelManager} property. - *

    - * @returns {yfiles.view.GraphModelManager} a new instance of GraphModelManager - * @protected - */ - createGraphModelManager():yfiles.view.GraphModelManager; - /** - * Factory method for the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. - *

    - * @returns {yfiles.view.HighlightIndicatorManager.} a new instance of HighlightIndicatorManager - * @protected - */ - createHighlightIndicatorManager():yfiles.view.HighlightIndicatorManager; - /** - * Factory method for the Selection property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#selection} property. - *

    - * @returns {yfiles.view.IGraphSelection} a new instance of {@link yfiles.view.GraphSelection} - * @protected - */ - createSelection():yfiles.view.IGraphSelection; - /** - * Factory method for the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. - *

    - * @returns {yfiles.view.SelectionIndicatorManager.} a new instance of {@link yfiles.view.SelectionIndicatorManager.} - * @protected - */ - createSelectionIndicatorManager():yfiles.view.SelectionIndicatorManager; - /** - * {@link yfiles.view.CanvasComponent#updateContentRect Updates the content rectangle} for the {@link yfiles.view.CanvasComponent#contentGroup} considering the provided insets and - * {@link yfiles.view.CanvasComponent#fitContent adjusts the viewport to encompass the contents}. - * @param {yfiles.geometry.Insets} [insets=null] - */ - fitGraphBounds(insets?:yfiles.geometry.Insets):void; - /** - * Convenience method that runs a layouter on the graph of a given graph control and animates the transition. - *

    - * An event is called once the animation has finished. - *

    - *

    - * The implementation simply delegates to a properly configured instance of {@link yfiles.layout.LayoutExecutor}. In addition to - * the default configuration, it enables {@link yfiles.layout.LayoutExecutor#animateViewport}, {@link yfiles.layout.LayoutExecutor#easedAnimation}, and {@link yfiles.layout.LayoutExecutor#updateContentRect}. For more fine-grained control of the animation, use {@link yfiles.layout.LayoutExecutor} - * directly. - *

    - * @param {yfiles.layout.ILayoutAlgorithm} layout - * @param {yfiles.lang.TimeSpan} [morphDuration=null] - * @param {yfiles.layout.LayoutData} [layoutData=null] - * @returns {Promise.} - */ - morphLayout(layout:yfiles.layout.ILayoutAlgorithm,morphDuration?:yfiles.lang.TimeSpan,layoutData?:yfiles.layout.LayoutData):Promise; - /** - * Convenience method that runs a layouter on the graph of a given graph control and animates the transition. - *

    - * An event is called once the animation has finished. - *

    - *

    - * The implementation simply delegates to a properly configured instance of {@link yfiles.layout.LayoutExecutor}. In addition to - * the default configuration, it enables {@link yfiles.layout.LayoutExecutor#animateViewport}, {@link yfiles.layout.LayoutExecutor#easedAnimation}, and {@link yfiles.layout.LayoutExecutor#updateContentRect}. For more fine-grained control of the animation, use {@link yfiles.layout.LayoutExecutor} - * directly. - *

    - * @param {Object} options The parameters to pass. - * @param {yfiles.layout.ILayoutAlgorithm} options.layout - * @param {yfiles.lang.TimeSpan} [options.morphDuration=null] - * @param {yfiles.layout.LayoutData} [options.layoutData=null] - * @returns {Promise.} - */ - morphLayout(options:{layout:yfiles.layout.ILayoutAlgorithm,morphDuration?:yfiles.lang.TimeSpan,layoutData?:yfiles.layout.LayoutData}):Promise; - /** - * Gets or sets the 'current' item. - * @default null - * @type {yfiles.graph.IModelItem} - */ - currentItem:yfiles.graph.IModelItem; - /** - * Adds the given listener for the CurrentItemChanged event that occurs when the {@link yfiles.view.GraphComponent#currentItem} property has changed its value. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. - * @see yfiles.view.GraphComponent#removeCurrentItemChangedListener - */ - addCurrentItemChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Removes the given listener for the CurrentItemChanged event that occurs when the {@link yfiles.view.GraphComponent#currentItem} property has changed its value. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. - * @see yfiles.view.GraphComponent#addCurrentItemChangedListener - */ - removeCurrentItemChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createSelectionIndicatorManager} - * will be called. - *

    - * @type {yfiles.view.SelectionIndicatorManager.} - */ - selectionIndicatorManager:yfiles.view.SelectionIndicatorManager; - /** - * Gets or sets the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createHighlightIndicatorManager} - * will be called. - *

    - * @type {yfiles.view.HighlightIndicatorManager.} - */ - highlightIndicatorManager:yfiles.view.HighlightIndicatorManager; - /** - * Gets or sets the FocusIndicatorManager property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createFocusIndicatorManager} - * will be called. - *

    - * @type {yfiles.view.FocusIndicatorManager.} - */ - focusIndicatorManager:yfiles.view.FocusIndicatorManager; - /** - * Gets or sets the {@link yfiles.view.GraphComponent#graphModelManager} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createGraphModelManager} - * will be called. - *

    - * @type {yfiles.view.GraphModelManager} - */ - graphModelManager:yfiles.view.GraphModelManager; - /** - * Gets or sets the graph that is displayed in this control. - *

    - * Normally the {@link yfiles.view.GraphSelection} property must be adjusted accordingly if the graph instance is replaced. Also - * depending on the {@link yfiles.input.IInputMode} implementation the instances used in this component might need to be replaced - * or adjusted, too. If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createGraph} - * will be called. - *

    - * @type {yfiles.graph.IGraph} - */ - graph:yfiles.graph.IGraph; - /** - * Adds the given listener for the GraphChanged event that occurs when the {@link yfiles.view.GraphComponent#graph} property has been changed. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.view.GraphComponent#removeGraphChangedListener - */ - addGraphChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GraphChanged event that occurs when the {@link yfiles.view.GraphComponent#graph} property has been changed. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.view.GraphComponent#addGraphChangedListener - */ - removeGraphChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Gets or sets the selection model that is used for this control. - *

    - * The selection model instance needs to be adjusted, normally if the {@link yfiles.view.GraphComponent#graph} instance is changed. If the field has not yet been - * initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createSelection} will be called. - *

    - * @type {yfiles.view.IGraphSelection} - */ - selection:yfiles.view.IGraphSelection; - /** - * Gets or sets the {@link yfiles.graph.GraphClipboard} associated with this control. - *

    - * If no instance has been configured with this control, a default implementation will be used. - *

    - * @type {yfiles.graph.GraphClipboard} - */ - clipboard:yfiles.graph.GraphClipboard; - static $class:yfiles.lang.Class; - } - export enum DragDropKeyStates{ - /** - * The left mouse button is down or a touch gesture is in progress. - */ - POINTER_DOWN, - /** - * No button and no key is pressed. + * Not a mouse event. */ NONE, /** - * The shift key is down. + * The mouse has been moved. */ - SHIFT_KEY, + MOVE, /** - * The control key is down. + * The mouse has been dragged, which means it has been moved while at least one button has been pressed. */ - CONTROL_KEY, + DRAG, /** - * The alt key is down. + * A button has been pressed. */ - ALT_KEY + DOWN, + /** + * A button has been released. + *

    + * If there was no drag event since the last press event, this will result in a click. + *

    + */ + UP, + /** + * The mouse has entered the control's bounds. + */ + ENTER, + /** + * The mouse has exited the control's bounds. + */ + LEAVE, + /** + * The mouse wheel has been turned. + */ + WHEEL, + /** + * A mouse click has been recognized. + *

    + * This is the case if a press has directly been followed by a release. + *

    + */ + CLICK, + /** + * Mouse input capture has been lost. + *

    + * This can happen during mouse drags, if any button is pressed and the focus is taken from the application or transferred + * to another component by other means then moving the mouse. + *

    + */ + LOST_CAPTURE } /** - * A simple {@link yfiles.view.ICanvasObjectDescriptor} that can be used to draw {@link yfiles.input.IPortCandidate} instances in a - * {@link yfiles.view.CanvasComponent}. - * @class yfiles.view.DefaultPortCandidateDescriptor - * @implements {yfiles.view.ICanvasObjectDescriptor} - * @implements {yfiles.view.IVisualCreator} - * @implements {yfiles.view.IBoundsProvider} - * @implements {yfiles.input.IHitTestable} - * @implements {yfiles.view.IVisibilityTestable} - * @implements {yfiles.input.IMarqueeTestable} + * Complex event arguments that is used by the {@link yfiles.view.CanvasComponent} to indicate mouse events in world coordinates. + * @class + * @extends {yfiles.lang.EventArgs} */ - export interface DefaultPortCandidateDescriptor extends Object,yfiles.view.ICanvasObjectDescriptor,yfiles.view.IVisualCreator,yfiles.view.IBoundsProvider,yfiles.input.IHitTestable,yfiles.view.IVisibilityTestable,yfiles.input.IMarqueeTestable{} - export class DefaultPortCandidateDescriptor { + export interface MouseEventArgs extends yfiles.lang.EventArgs{} + export class MouseEventArgs { /** - * Instantiates a new descriptor. - * @constructor + * Constructs a new mouse event argument. + * @param eventType The type of the event + * @param location the position of the mouse in world coordinates at the time of the event + * @param [changedButtons=yfiles.view.MouseButtons.NONE] the mouse buttons that have changed state if the type of event is {@link #DOWN} or + * {@link #UP} + * @param [changedModifiers=yfiles.view.ModifierKeys.NONE] the modifier Keys that have been changed + * @param [buttons=yfiles.view.MouseButtons.NONE] the current state of the MouseButtons + * @param [modifiers=yfiles.view.ModifierKeys.NONE] the current state of the modifier Keys + * @param [clickCount=0] the number of clicks this event represents, 2 for a double click + * @param [mouseWheelDelta=0] the signed number of mouse wheel turn units + * @param [scrollAmount=0] The number of lines to scroll, if scrollType is {@link #LINES}. + * @param [scrollType=yfiles.view.MouseWheelDeltaMode.LINES] The type of scrolling performed. + * @param originalEvent */ - constructor(); + constructor(originalEvent:Event,eventType:yfiles.view.MouseEventTypes,location:yfiles.geometry.Point,changedButtons?:yfiles.view.MouseButtons,changedModifiers?:yfiles.view.ModifierKeys,buttons?:yfiles.view.MouseButtons,modifiers?:yfiles.view.ModifierKeys,clickCount?:number,mouseWheelDelta?:number,scrollAmount?:number,scrollType?:yfiles.view.MouseWheelDeltaMode); /** - * - * @param {Object} forUserObject - * @returns {yfiles.view.IBoundsProvider} + * Constructs a new mouse event argument. + * @param {Object} options The parameters to pass. + * @param options.eventType The type of the event + * @param options.location the position of the mouse in world coordinates at the time of the event + * @param [options.changedButtons=yfiles.view.MouseButtons.NONE] the mouse buttons that have changed state if the type of event is {@link #DOWN} or + * {@link #UP} + * @param [options.changedModifiers=yfiles.view.ModifierKeys.NONE] the modifier Keys that have been changed + * @param [options.buttons=yfiles.view.MouseButtons.NONE] the current state of the MouseButtons + * @param [options.modifiers=yfiles.view.ModifierKeys.NONE] the current state of the modifier Keys + * @param [options.clickCount=0] the number of clicks this event represents, 2 for a double click + * @param [options.mouseWheelDelta=0] the signed number of mouse wheel turn units + * @param [options.scrollAmount=0] The number of lines to scroll, if scrollType is {@link #LINES}. + * @param [options.scrollType=yfiles.view.MouseWheelDeltaMode.LINES] The type of scrolling performed. + * @param options.originalEvent */ - getBoundsProvider(forUserObject:Object):yfiles.view.IBoundsProvider; + constructor(options:{originalEvent:Event,eventType:yfiles.view.MouseEventTypes,location:yfiles.geometry.Point,changedButtons?:yfiles.view.MouseButtons,changedModifiers?:yfiles.view.ModifierKeys,buttons?:yfiles.view.MouseButtons,modifiers?:yfiles.view.ModifierKeys,clickCount?:number,mouseWheelDelta?:number,scrollAmount?:number,scrollType?:yfiles.view.MouseWheelDeltaMode}); /** - * - * @param {Object} forUserObject - * @returns {yfiles.input.IHitTestable} - */ - getHitTestable(forUserObject:Object):yfiles.input.IHitTestable; - /** - * - * @param {Object} forUserObject - * @returns {yfiles.view.IVisibilityTestable} - */ - getVisibilityTestable(forUserObject:Object):yfiles.view.IVisibilityTestable; - /** - * - * @param {Object} forUserObject - * @returns {yfiles.view.IVisualCreator} - */ - getVisualCreator(forUserObject:Object):yfiles.view.IVisualCreator; - /** - * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.view.ICanvasObject} canvasObject - * @returns {boolean} - */ - isDirty(context:yfiles.view.ICanvasContext,canvasObject:yfiles.view.ICanvasObject):boolean; - /** - * Sets the {@link yfiles.view.IVisualTemplate} to use for the given {@link string} by this instance. + * Sets this event's {@link yfiles.view.MouseEventArgs#defaultPrevented} property to true signalling that the event has been properly handled and any default behaviors should + * be prevented. *

    - * This method can be used to reconfigure the visualization for the various keys that are declared by this class. + * This will call the corresponding method on the {@link yfiles.view.MouseEventArgs#originalEvent original native event}. *

    - * @param {string} resourceKey The key to reconfigure. This is one of - * {@link yfiles.view.DefaultPortCandidateDescriptor#CANDIDATE_DRAWING_VALID_NON_FOCUSED_KEY}, - * {@link yfiles.view.DefaultPortCandidateDescriptor#CANDIDATE_DRAWING_INVALID_NON_FOCUSED_KEY}, - * {@link yfiles.view.DefaultPortCandidateDescriptor#CANDIDATE_DRAWING_INVALID_FOCUSED_KEY}, - * {@link yfiles.view.DefaultPortCandidateDescriptor#CANDIDATE_DRAWING_VALID_FOCUSED_KEY}. - * @param {yfiles.view.IVisualTemplate} template The template to use instead of the default. + * @see yfiles.view.MouseEventArgs#defaultPrevented */ - setTemplate(resourceKey:string,template:yfiles.view.IVisualTemplate):void; + preventDefault():void; /** - * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} - * that will be used for rendering a valid, non-focused {@link yfiles.input.IPortCandidate}. + * Gets the type of this event. + * @type {yfiles.view.MouseEventTypes} + */ + eventType:yfiles.view.MouseEventTypes; + /** + * Returns the coordinates in the world coordinate space associated with this event. + * @type {yfiles.geometry.Point} + */ + location:yfiles.geometry.Point; + /** + * Returns the number of clicks the current event represents if it is of type {@link yfiles.view.MouseEventTypes#CLICK}. + * @type {number} + */ + clickCount:number; + /** + * Gets the signed number of mouse wheel turn units. *

    - * The drawing returned should be centered around (0,0). - *

    - * @const - * @static - * @type {string} - */ - static CANDIDATE_DRAWING_VALID_NON_FOCUSED_KEY:string; - /** - * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} - * that will be used for rendering a valid, focused {@link yfiles.input.IPortCandidate}. - *

    - * The drawing returned should be centered around (0,0). - *

    - * @const - * @static - * @type {string} - */ - static CANDIDATE_DRAWING_VALID_FOCUSED_KEY:string; - /** - * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} - * that will be used for rendering an invalid, non-focused {@link yfiles.input.IPortCandidate}. - *

    - * The drawing returned should be centered around (0,0). - *

    - * @const - * @static - * @type {string} - */ - static CANDIDATE_DRAWING_INVALID_NON_FOCUSED_KEY:string; - /** - * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} - * that will be used for rendering a invalid, focused {@link yfiles.input.IPortCandidate}. - *

    - * The drawing returned should be centered around (0,0). - *

    - * @const - * @static - * @type {string} - */ - static CANDIDATE_DRAWING_INVALID_FOCUSED_KEY:string; - /** - * Gets or sets a property that determines whether this descriptor uses the "current" candidates. - * @type {boolean} - */ - currentCandidate:boolean; - /** - * Gets or sets the logical size of the candidate. - *

    - * This size is used for hit testing, visibility tests, etc. The default is 3. + * Note that this can, for high-precision mouse wheels, include fractional turns. *

    * @type {number} */ - size:number; - static $class:yfiles.lang.Class; - } - /** - * Manages the visual appearance of an {@link yfiles.graph.IGraph} instance in a {@link yfiles.view.CanvasComponent}. - *

    - * This class monitors the structural changes of an {@link yfiles.graph.IGraph} implementation and installs the necessary {@link yfiles.view.ICanvasObject} - * instance in the canvas for each item in the graph. Note that {@link yfiles.view.GraphComponent} has an instance of this type - * built-in already and usually it is not necessary to create an own one. This class will also {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting use the node hierarchy} to - * nest the nodes {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting and edges} accordingly. - *

    - * @see yfiles.view.GraphModelManager#nodeGroup - * @see yfiles.view.GraphModelManager#useHierarchicEdgeNesting - * @see yfiles.view.GraphModelManager#useHierarchicNodeNesting - * @class yfiles.view.GraphModelManager - */ - export interface GraphModelManager extends Object{} - export class GraphModelManager { + wheelDelta:number; /** - * Creates a manager instance for the given control. + * Gets the distance to scroll at once when {@link yfiles.view.MouseEventArgs#deltaMode} is {@link yfiles.view.MouseWheelDeltaMode#LINES}. *

    - * The contents of the graph will be added to given group that is must be part of the canvas. + * This is a system setting that only applies to scrolling (not zooming) and usually translates to the number of small + * scroll increments per scroll wheel notch. *

    *

    - * In order to get anything useful out of this instance the {@link yfiles.view.GraphModelManager#graph} property should be set to an instance after construction. + * This property has a value of 1 if {@link yfiles.view.MouseEventArgs#deltaMode} is {@link yfiles.view.MouseWheelDeltaMode#PAGE}, as it is not applicable in that case. *

    - * @param {yfiles.view.CanvasComponent} canvas the canvas to manage the visual appearance of a graph for. - * @param {yfiles.view.ICanvasObjectGroup} contentGroup the group to add the graph's visual content to. Can be null, in which case {@link yfiles.view.GraphModelManager#contentGroup} should be set afterwards or {@link yfiles.view.GraphModelManager#createContentGroup} - * will automatically create a group lazily. - * @constructor - */ - constructor(canvas:yfiles.view.CanvasComponent,contentGroup:yfiles.view.ICanvasObjectGroup); - /** - * Creates a manager instance for the given control. - *

    - * The contents of the graph will be added to a newly created group that is added to the root of the scene graph. - *

    - *

    - * In order to get anything useful out of this instance the {@link yfiles.view.GraphModelManager#graph} property should be set to an instance after construction. - *

    - * @param {yfiles.view.CanvasComponent} canvas the canvas to manage the visual appearance of a graph for. - * @constructor - */ - constructor(canvas:yfiles.view.CanvasComponent); - /** - * Compares two items with respect to their visibility order. - * @param {yfiles.graph.IModelItem} item1 the first item to compare - * @param {yfiles.graph.IModelItem} item2 the second item to compare - * @returns {number} an integer value indicating the relative rendering order of the two items - * @see yfiles.view.GraphModelManager#comparer - */ - compare(item1:yfiles.graph.IModelItem,item2:yfiles.graph.IModelItem):number; - /** - * Factory method that creates the {@link yfiles.view.GraphModelManager#contentGroup} - *

    - * The default implementation will just add another group to the {@link yfiles.view.CanvasComponent}. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} The group to use for adding the content. - * @protected - */ - createContentGroup():yfiles.view.ICanvasObjectGroup; - /** - * Factory method for the {@link yfiles.view.GraphModelManager#edgeGroup} property. - *

    - * This method will be called upon first access to the property. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new group that has been added to the {@link yfiles.view.GraphModelManager#contentGroup} - * @protected - */ - createEdgeGroup():yfiles.view.ICanvasObjectGroup; - /** - * Factory method for the {@link yfiles.view.GraphModelManager#edgeLabelGroup} property. - *

    - * This method will be called upon first access to the property. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new group that has been added to the {@link yfiles.view.GraphModelManager#contentGroup} - * @protected - */ - createEdgeLabelGroup():yfiles.view.ICanvasObjectGroup; - /** - * Gets a {@link yfiles.input.IHitTester.} that can be used to enumerate hits on the canvas at a given world coordinate position. - *

    - * This enumerator will enumerate hits in the order so that the visually topmost element will be reported first. - *

    - * Type parameter T. - * @param {yfiles.lang.Class} itemType - * @returns {yfiles.input.IHitTester.} - * @template T - */ - createHitTester(itemType:yfiles.lang.Class):yfiles.input.IHitTester; - /** - * Factory method for the {@link yfiles.view.GraphModelManager#nodeGroup} property. - *

    - * This method will be called upon first access to the property. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new group that has been added to the {@link yfiles.view.GraphModelManager#contentGroup} - * @protected - */ - createNodeGroup():yfiles.view.ICanvasObjectGroup; - /** - * Factory method for the {@link yfiles.view.GraphModelManager#nodeLabelGroup} property. - *

    - * This method will be called upon first access to the property. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new group that has been added to the {@link yfiles.view.GraphModelManager#contentGroup} - * @protected - */ - createNodeLabelGroup():yfiles.view.ICanvasObjectGroup; - /** - * Factory method for the {@link yfiles.view.GraphModelManager#portGroup} property. - *

    - * This method will be called upon first access to the property. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new group that has been added to the {@link yfiles.view.GraphModelManager#contentGroup} - * @protected - */ - createPortGroup():yfiles.view.ICanvasObjectGroup; - /** - * Retrieves the {@link yfiles.view.ICanvasObject} for a given model item managed by this instance. - * @param {yfiles.graph.IModelItem} item the item - * @returns {yfiles.view.ICanvasObject} the canvas object for the given item or null - * @see yfiles.view.ItemModelManager.#getCanvasObject - */ - getCanvasObject(item:yfiles.graph.IModelItem):yfiles.view.ICanvasObject; - /** - * Retrieves the Canvas Object group to use for the given label. - *

    - * This implementation is called by the default {@link yfiles.view.GraphModelManager#nodeLabelDescriptor} and {@link yfiles.view.GraphModelManager#edgeLabelDescriptor} instances. - *

    - * @param {yfiles.graph.ILabel} label The label that will be installed in the canvas. - * @returns {yfiles.view.ICanvasObjectGroup} The group to use. - * @protected - */ - getCanvasObjectGroup(label:yfiles.graph.ILabel):yfiles.view.ICanvasObjectGroup; - /** - * Retrieves the Canvas Object group to use for the given port. - *

    - * This implementation is called by the default {@link yfiles.view.GraphModelManager#portDescriptor} instance. - *

    - * @param {yfiles.graph.IPort} port The port that will be installed in the canvas. - * @returns {yfiles.view.ICanvasObjectGroup} The group to use. - * @protected - */ - getCanvasObjectGroup(port:yfiles.graph.IPort):yfiles.view.ICanvasObjectGroup; - /** - * Retrieves the Canvas Object group to use for the given edge. - *

    - * This implementation is called by the default {@link yfiles.view.GraphModelManager#edgeDescriptor} instance. - *

    - * @param {yfiles.graph.IEdge} edge The edge that will be installed in the canvas. - * @returns {yfiles.view.ICanvasObjectGroup} The group to use. - * @protected - */ - getCanvasObjectGroup(edge:yfiles.graph.IEdge):yfiles.view.ICanvasObjectGroup; - /** - * Retrieves the Canvas Object group to use for the given node. - *

    - * This implementation is called by the default {@link yfiles.view.GraphModelManager#nodeDescriptor} instance. - *

    - * @param {yfiles.graph.INode} node The node that will be installed in the canvas. - * @returns {yfiles.view.ICanvasObjectGroup} The group to use. - * @protected - */ - getCanvasObjectGroup(node:yfiles.graph.INode):yfiles.view.ICanvasObjectGroup; - /** - * Retrieves the corresponding {@link yfiles.graph.IModelItem} for the given canvas object. - * @param {yfiles.view.ICanvasObject} canvasObject the instance to use for the query - * @returns {yfiles.graph.IModelItem} The item that is associated with the object or null. - */ - getModelItem(canvasObject:yfiles.view.ICanvasObject):yfiles.graph.IModelItem; - /** - * Enumerates hits on the canvas at a given world coordinate position for a given context. - *

    - * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The - * enumeration is performed lazily. - *

    - * @param {yfiles.input.IInputModeContext} context The context to provide to {@link yfiles.input.IHitTestable#isHit} - * @param {yfiles.geometry.Point} location the world coordinates to perform the hit test - * @param {yfiles.view.ICanvasObjectGroup} root The group to search the subtree of. - * @returns {yfiles.collections.IEnumerable.} an enumerable that will enumerate the hits at the given coordinates - */ - hitElementsAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root:yfiles.view.ICanvasObjectGroup):yfiles.collections.IEnumerable; - /** - * Enumerates hits on the canvas at a given world coordinate position. - *

    - * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The - * enumeration is performed lazily. - *

    - * @param {yfiles.geometry.Point} location the world coordinates to perform the hit test - * @returns {yfiles.collections.IEnumerable.} an enumerable that will enumerate the hits at the given coordinates - */ - hitElementsAt(location:yfiles.geometry.Point):yfiles.collections.IEnumerable; - /** - * Called when the {@link yfiles.view.GraphModelManager#graph} property changes. - *

    - * This method registers the collections of the graph instance with the {@link yfiles.view.CollectionModelManager. mechanism} that manages the mapping between the - * elements and the - * {@link yfiles.view.ICanvasObject}s. Subclasses should call the base method if they want to use the default mechanisms. - *

    - * @param {yfiles.graph.IGraph} oldGraph The old graph instance. - * @param {yfiles.graph.IGraph} newGraph The new graph instance. - * @protected - */ - onGraphChanged(oldGraph:yfiles.graph.IGraph,newGraph:yfiles.graph.IGraph):void; - /** - * Enumerates hits on the canvas at a given world coordinate position in a given context. - *

    - * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The - * enumeration is performed lazily. - *

    - * Type parameter T. - * @param {yfiles.lang.Class} modelItemType - * @param {yfiles.input.IInputModeContext} context The context to provide to {@link yfiles.input.IHitTestable#isHit} - * @param {yfiles.geometry.Point} location the world coordinates to perform the hit test - * @param {yfiles.view.ICanvasObjectGroup} root The group to search the subtree of. - * @returns {yfiles.collections.IEnumerable.} an enumerable that will enumerate the hits at the given coordinates - * @template T - */ - typedHitElementsAt(modelItemType:yfiles.lang.Class,context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root:yfiles.view.ICanvasObjectGroup):yfiles.collections.IEnumerable; - /** - * Enumerates hits on the canvas at a given world coordinate position. - *

    - * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The - * enumeration is performed lazily. - *

    - * Type parameter T. - * @param {yfiles.lang.Class} itemType - * @param {yfiles.geometry.Point} location the world coordinates to perform the hit test - * @returns {yfiles.collections.IEnumerable.} an enumerable that will enumerate the hits at the given coordinates - * @template T - */ - typedHitElementsAt(itemType:yfiles.lang.Class,location:yfiles.geometry.Point):yfiles.collections.IEnumerable; - /** - * {@link yfiles.view.CollectionModelManager.#update Updates} the visual representation of the given item. - * @param {yfiles.graph.IModelItem} item The item to update the visual representation - * @see yfiles.view.CollectionModelManager.#update - */ - update(item:yfiles.graph.IModelItem):void; - /** - * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing node styles. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createNodeGroup} - * will be called. Note that in the case of {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchic node nesting}, nodes will not be installed at the top-level of this - * group. Rather a more complicated nesting of dynamically created {@link yfiles.view.ICanvasObjectGroup}s will be used. - *

    - * @see yfiles.view.GraphModelManager#getCanvasObjectGroup - * @see yfiles.view.GraphModelManager#nodeDescriptor - * @type {yfiles.view.ICanvasObjectGroup} - */ - nodeGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing edge styles. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createEdgeGroup} - * will be called. Note that in the case of {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchically nested graphs} edges will only be put directly in this - * {@link yfiles.view.ICanvasObjectGroup}, if the {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting} property is set to false. Otherwise edges will actually be nested in the subtree - * of the {@link yfiles.view.GraphModelManager#nodeGroup} according to the node nesting. - *

    - * @see yfiles.view.GraphModelManager#getCanvasObjectGroup - * @see yfiles.view.GraphModelManager#edgeDescriptor - * @type {yfiles.view.ICanvasObjectGroup} - */ - edgeGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing edge label styles. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createEdgeLabelGroup} - * will be called. - *

    - * @see yfiles.view.GraphModelManager#getCanvasObjectGroup - * @see yfiles.view.GraphModelManager#edgeLabelDescriptor - * @type {yfiles.view.ICanvasObjectGroup} - */ - edgeLabelGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing node label styles. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createNodeLabelGroup} - * will be called. - *

    - * @see yfiles.view.GraphModelManager#getCanvasObjectGroup - * @see yfiles.view.GraphModelManager#nodeLabelDescriptor - * @type {yfiles.view.ICanvasObjectGroup} - */ - nodeLabelGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing port styles. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createPortGroup} - * will be called. - *

    - * @see yfiles.view.GraphModelManager#getCanvasObjectGroup - * @see yfiles.view.GraphModelManager#portDescriptor - * @type {yfiles.view.ICanvasObjectGroup} - */ - portGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.IEdge} into the - * canvas. - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - edgeDescriptor:yfiles.view.ICanvasObjectDescriptor; - /** - * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.IPort} into the - * canvas. - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - portDescriptor:yfiles.view.ICanvasObjectDescriptor; - /** - * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.ILabel} of an {@link yfiles.graph.IEdge} - * into the canvas. - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - edgeLabelDescriptor:yfiles.view.ICanvasObjectDescriptor; - /** - * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.ILabel} of an {@link yfiles.graph.INode} - * into the canvas. - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - nodeLabelDescriptor:yfiles.view.ICanvasObjectDescriptor; - /** - * Determines whether this instance should nest the edges accordingly if the graph is grouped. - *

    - * Hierarchic nesting for edges requires that {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchic nesting for nodes} is enabled as well. If both properties are - * enabled (the default) the edges will actually be interleaved with the nodes in the nested canvas object subtree so the {@link yfiles.view.GraphModelManager#edgeGroup} - * will be empty. - *

    - * @see yfiles.view.GraphModelManager#useHierarchicNodeNesting - * @type {boolean} - */ - useHierarchicEdgeNesting:boolean; - /** - * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.INode} into the - * canvas. - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - nodeDescriptor:yfiles.view.ICanvasObjectDescriptor; - /** - * Gets or sets the content group this manager instance uses to add visual representation of the graph to. - * @type {yfiles.view.ICanvasObjectGroup} - */ - contentGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets an {@link yfiles.collections.IComparer.} instance that can be used to compare two model items with respect to their visual display order. - *

    - * An item is considered to be greater than another item if it is rendered on top of it. - *

    - * @type {yfiles.collections.IComparer.} - */ - comparer:yfiles.collections.IComparer; - /** - * Gets a {@link yfiles.input.IHitTester.} that can be used to enumerate hits on the canvas at a given world coordinate position. - *

    - * This enumerator will enumerate hits in the order so that the visually topmost element will be reported first. - *

    - * @type {yfiles.input.IHitTester.} - */ - hitTester:yfiles.input.IHitTester; - /** - * Gets or sets the graph this manager manages. - * @see yfiles.view.GraphModelManager#onGraphChanged - * @type {yfiles.graph.IGraph} - */ - graph:yfiles.graph.IGraph; - /** - * Determines whether this instance should nest the nodes {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting and optionally edges} accordingly if the graph is grouped. - * @type {boolean} - */ - useHierarchicNodeNesting:boolean; - /** - * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.INode}s which simply defers to - * the node's {@link yfiles.styles.INodeStyle}. - * @const - * @static - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - static DEFAULT_NODE_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; - /** - * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.IEdge}s which simply defers to - * the edge's {@link yfiles.styles.IEdgeStyle}. - * @const - * @static - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - static DEFAULT_EDGE_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; - /** - * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.IPort}s which simply defers to - * the port's {@link yfiles.styles.IPortStyle}. - * @const - * @static - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - static DEFAULT_PORT_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; - /** - * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.ILabel}s which simply defers - * to the label's {@link yfiles.styles.ILabelStyle}. - * @const - * @static - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - static DEFAULT_LABEL_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; - static $class:yfiles.lang.Class; - } - /** - * An implementation of the {@link yfiles.view.IObstacleProvider} interface that uses the {@link yfiles.graph.IGraph#edges edges} and {@link yfiles.graph.IGraph#nodes nodes} of an {@link yfiles.graph.IGraph} - * as obstacles. - *

    - * The {@link yfiles.view.BridgeManager} then calculates bridges for edge paths that cross these obstacles. - *

    - *

    - * This class can be used to add bridge support via the {@link yfiles.view.BridgeManager} to a rendered {@link yfiles.graph.IGraph}. - *

    - * @see yfiles.view.BridgeManager#addObstacleProvider - * @see yfiles.view.BridgeManager - * @see yfiles.view.IObstacleProvider - * @class yfiles.view.GraphObstacleProvider - * @implements {yfiles.view.IObstacleProvider} - */ - export interface GraphObstacleProvider extends Object,yfiles.view.IObstacleProvider{} - export class GraphObstacleProvider { - /** - * Helper method that retrieves the {@link yfiles.graph.IGraph} to use from the context - *

    - * This implementation uses the {@link yfiles.graph.ILookup#lookup} of the {@link yfiles.view.ICanvasContext#canvasComponent} to query the {@link yfiles.graph.IGraph} implementation. - *

    - * @param {yfiles.view.IRenderContext} context The context to retrieve the implementation from. - * @returns {yfiles.graph.IGraph} The {@link yfiles.graph.IGraph} instance to query or null. - * @protected - */ - getGraph(context:yfiles.view.IRenderContext):yfiles.graph.IGraph; - /** - * Iterates over all {@link yfiles.graph.IGraph#edges} and {@link yfiles.graph.IGraph#nodes} to query an {@link yfiles.view.IObstacleProvider} from the {@link yfiles.graph.IModelItem}'s - * {@link yfiles.graph.ILookup#lookup}. - *

    - * This method will depending on the {@link yfiles.view.GraphObstacleProvider#queryEdges} and {@link yfiles.view.GraphObstacleProvider#queryNodes} property query the items for an implementation of {@link yfiles.view.IObstacleProvider} - * and concatenate all resulting {@link yfiles.geometry.GeneralPath} obstacles into one path that will then be returned. - *

    - * @param {yfiles.view.IRenderContext} context The context where the obstacles are queried for. - * @returns {yfiles.geometry.GeneralPath} A path that is the concatenated path of all obstacles for the given context. - */ - getObstacles(context:yfiles.view.IRenderContext):yfiles.geometry.GeneralPath; - /** - * Gets or sets a value indicating whether to query the {@link yfiles.graph.IGraph#edges} for an {@link yfiles.view.IObstacleProvider} implementation. - *

    - * The default is true. - *

    - * @type {boolean} - */ - queryEdges:boolean; - /** - * Gets or sets a value indicating whether to query the {@link yfiles.graph.IGraph#nodes} for an {@link yfiles.view.IObstacleProvider} implementation. - * @type {boolean} - */ - queryNodes:boolean; - static $class:yfiles.lang.Class; - } - /** - * Simple implementation of the {@link yfiles.view.IGraphSelection} interface. - * @class yfiles.view.GraphSelection - * @implements {yfiles.view.IGraphSelection} - */ - export interface GraphSelection extends Object,yfiles.view.IGraphSelection{} - export class GraphSelection { - /** - * Instantiates an instance using the the graph as the model. - * @param {yfiles.graph.IGraph} graph - * @constructor - */ - constructor(graph:yfiles.graph.IGraph); - /** - * Creates a new instance with no initial {@link yfiles.view.GraphSelection#graph} assigned. - *

    - * In order to be always in sync with the structural changes in a graph, an instance should be associated with an {@link yfiles.graph.IGraph} - * using the {@link yfiles.view.GraphSelection#graph} property. - *

    - * @constructor - */ - constructor(); - /** - * - */ - clear():void; - /** - * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the bends. - * @returns {yfiles.view.DefaultSelectionModel.} - * @protected - */ - createBendSelectionModel():yfiles.view.DefaultSelectionModel; - /** - * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the edges. - * @returns {yfiles.view.DefaultSelectionModel.} - * @protected - */ - createEdgeSelectionModel():yfiles.view.DefaultSelectionModel; - /** - * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the labels. - * @returns {yfiles.view.DefaultSelectionModel.} - * @protected - */ - createLabelSelectionModel():yfiles.view.DefaultSelectionModel; - /** - * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the nodes. - * @returns {yfiles.view.DefaultSelectionModel.} - * @protected - */ - createNodeSelectionModel():yfiles.view.DefaultSelectionModel; - /** - * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the ports. - * @returns {yfiles.view.DefaultSelectionModel.} - * @protected - */ - createPortSelectionModel():yfiles.view.DefaultSelectionModel; - /** - * Returns an enumerator that iterates through the collection of all selected elements. - * @returns {yfiles.collections.IEnumerator.} An {@link yfiles.collections.IEnumerator.} object that can be used to iterate through all selected elements. - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * - * @param {yfiles.graph.IModelItem} item - * @returns {boolean} - */ - isSelected(item:yfiles.graph.IModelItem):boolean; - /** - * Raises the {@link yfiles.view.GraphSelection#addItemSelectionChangedListener ItemSelectionChanged} event - * @param {yfiles.view.ItemSelectionChangedEventArgs.} evt The parameters for the event - * @protected - */ - onItemSelectionChanged(evt:yfiles.view.ItemSelectionChangedEventArgs):void; - /** - * - * @param {yfiles.graph.IModelItem} item - * @param {boolean} selected - */ - setSelected(item:yfiles.graph.IModelItem,selected:boolean):void; - /** - * - * @type {yfiles.view.ISelectionModel.} - */ - selectedNodes:yfiles.view.ISelectionModel; - /** - * - * @type {yfiles.view.ISelectionModel.} - */ - selectedEdges:yfiles.view.ISelectionModel; - /** - * - * @type {yfiles.view.ISelectionModel.} - */ - selectedLabels:yfiles.view.ISelectionModel; - /** - * - * @type {yfiles.view.ISelectionModel.} - */ - selectedPorts:yfiles.view.ISelectionModel; - /** - * - * @type {yfiles.view.ISelectionModel.} - */ - selectedBends:yfiles.view.ISelectionModel; - /** - * * @type {number} */ - size:number; + scrollAmount:number; /** - * Gets or sets the {@link yfiles.graph.IGraph} this instance is using as the domain for the selection. - * @type {yfiles.graph.IGraph} + * Gets the scrolling behavior. + *

    + * This is a system setting that only applies to scrolling (not zooming) and can be either + * {@link yfiles.view.MouseWheelDeltaMode#LINES}, in which case {@link yfiles.view.MouseEventArgs#scrollAmount} will contain the number of "lines" to scroll with each scroll + * wheel notch, or {@link yfiles.view.MouseWheelDeltaMode#PAGE} in which case a single scroll wheel notch should scroll a "page" at + * a time. + *

    + * @type {yfiles.view.MouseWheelDeltaMode} */ - graph:yfiles.graph.IGraph; + deltaMode:yfiles.view.MouseWheelDeltaMode; /** - * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * Returns the modifier keys that have changed for this event. + * @see yfiles.view.MouseEventArgs#modifiers + * @type {yfiles.view.ModifierKeys} */ - addItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; + changedModifiers:yfiles.view.ModifierKeys; /** - * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * Returns the mouse buttons that have changed for this event. + * @see yfiles.view.MouseEventArgs#buttons + * @type {yfiles.view.MouseButtons} */ - removeItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; + changedButtons:yfiles.view.MouseButtons; + /** + * The state of the modifier keys at the time of the event creation. + * @type {yfiles.view.ModifierKeys} + */ + modifiers:yfiles.view.ModifierKeys; + /** + * The state of the mouse buttons at the time of the event creation. + * @type {yfiles.view.MouseButtons} + */ + buttons:yfiles.view.MouseButtons; + /** + * Gets the original DOM event associated with this event. + * @type {Event} + */ + originalEvent:Event; + /** + * Gets a value indicating whether the default behaviors for this event have been prevented by a previous call to + * {@link yfiles.view.MouseEventArgs#preventDefault}. + * @type {boolean} + */ + defaultPrevented:boolean; + static $class:yfiles.lang.Class; + } + export enum MouseWheelDeltaMode{ + /** + * Scrolling should scroll a set number of lines per mouse wheel notch. + * @see yfiles.view.MouseEventArgs#scrollAmount + */ + LINES, + /** + * Scrolling should scroll a single "page" per mouse wheel notch. + */ + PAGE + } + export enum TouchEventTypes{ + /** + * Not a touch event. + */ + NONE, + /** + * A pointer has been moved. + */ + MOVE, + /** + * A touch device went down. + */ + DOWN, + /** + * A touch device went up. + */ + UP, + /** + * A touch device has entered the control's bounds. + */ + ENTER, + /** + * A touch device has exited the control's bounds. + */ + LEAVE, + /** + * A touch tap has been recognized. + *

    + * This is the case if a down has directly been followed by an up. + *

    + */ + TAP, + /** + * A long press has been recognized. + *

    + * This is the case if a down has been held a certain amount of time without a move. + *

    + */ + LONG_PRESS, + /** + * Touch capture has been lost while the device was down. or sent to the background or similar actions. + *

    + * This can be the case if the application or control is minimized + *

    + */ + LOST_CAPTURE + } + /** + * Complex event arguments that is used by the {@link yfiles.view.CanvasComponent} to indicate touch events in world coordinates. + * @class + * @extends {yfiles.lang.EventArgs} + */ + export interface TouchEventArgs extends yfiles.lang.EventArgs{} + export class TouchEventArgs { + /** + * Constructs a new touch event argument. + * @param eventType The type of the event + * @param location The position of the touch device in world coordinates at the time of the event + * @param device The device the event was triggered by + * @param originalEvent + */ + constructor(originalEvent:Event,eventType:yfiles.view.TouchEventTypes,location:yfiles.geometry.Point,device:yfiles.view.TouchDevice); + /** + * Constructs a new touch event argument. + * @param eventType The type of the event + * @param location The position of the touch device in world coordinates at the time of the event + * @param device The device the event was triggered by + * @param tapCount the number of taps this event represents, 2 for a double tap + * @param originalEvent + */ + constructor(originalEvent:Event,eventType:yfiles.view.TouchEventTypes,location:yfiles.geometry.Point,device:yfiles.view.TouchDevice,tapCount:number); + /** + * Sets this event's {@link yfiles.view.TouchEventArgs#defaultPrevented} property to true signalling that the event has been properly handled and any default behaviors should + * be prevented. + *

    + * This will call the corresponding method on the {@link yfiles.view.TouchEventArgs#originalEvent original native event}. + *

    + * @see yfiles.view.TouchEventArgs#defaultPrevented + */ + preventDefault():void; + /** + * Gets the type of this event. + * @type {yfiles.view.TouchEventTypes} + */ + eventType:yfiles.view.TouchEventTypes; + /** + * Returns the location represented by this event in world coordinates. + * @type {yfiles.geometry.Point} + */ + location:yfiles.geometry.Point; + /** + * Returns the touch device associated with this event. + * @type {yfiles.view.TouchDevice} + */ + device:yfiles.view.TouchDevice; + /** + * Returns the number of taps the current event represents if it is of type {@link yfiles.view.TouchEventTypes#TAP}. + * @type {number} + */ + tapCount:number; + /** + * Gets the original DOM event associated with this event. + * @type {Event} + */ + originalEvent:Event; + /** + * Gets a value indicating whether the default behaviors for this event have been prevented by a previous call to + * {@link yfiles.view.TouchEventArgs#preventDefault}. + * @type {boolean} + */ + defaultPrevented:boolean; static $class:yfiles.lang.Class; } /** - * Manages the selection state of items in an {@link yfiles.graph.IGraph} instance. - *

    - * This interface provides access to the {@link yfiles.view.ISelectionModel.} instances that manage the selection of nodes, edges, labels, ports, and bends. - * The generic methods that use {@link yfiles.graph.IModelItem} parameters delegate to the corresponding domain-specific selection - * models. - *

    - * @see yfiles.view.ISelectionModel. - * @interface - * @implements {yfiles.view.ISelectionModel.} + * The representation of a touch point on the screen. + * @class */ - export interface IGraphSelection extends Object,yfiles.view.ISelectionModel{ + export interface TouchDevice extends Object{} + export class TouchDevice { /** - * An {@link yfiles.view.ISelectionModel.} of the selected nodes. - *

    - * This is the node part of the selection that this instance is a composite of. - *

    - * @abstract - * @type {yfiles.view.ISelectionModel.} + * Gets the device's index + * @type {number} */ - selectedNodes:yfiles.view.ISelectionModel; + deviceIndex:number; /** - * An {@link yfiles.view.ISelectionModel.} of the selected labels. + * Gets a value indicating whether this device is the primary one. *

    - * This is the label part of the selection that this instance is a composite of. + * If {@link yfiles.view.TouchDevice#deviceIndex} is 0 this property has the value true, otherwise false. *

    - * @abstract - * @type {yfiles.view.ISelectionModel.} + * @type {boolean} */ - selectedLabels:yfiles.view.ISelectionModel; + isPrimaryDevice:boolean; /** - * An {@link yfiles.view.ISelectionModel.} of the selected edges. - *

    - * This is the edge part of the selection that this instance is a composite of. - *

    - * @abstract - * @type {yfiles.view.ISelectionModel.} + * Gets the last device coordinate in the view coordinate system. + * @type {yfiles.geometry.Point} */ - selectedEdges:yfiles.view.ISelectionModel; + lastViewCoordinate:yfiles.geometry.Point; /** - * An {@link yfiles.view.ISelectionModel.} of the selected ports. - *

    - * This is the ports part of the selection that this instance is a composite of. - *

    - * @abstract - * @type {yfiles.view.ISelectionModel.} + * Gets the time of the last {@link yfiles.view.TouchEventArgs event} that was raised by this device. + * @type {Date} */ - selectedPorts:yfiles.view.ISelectionModel; + lastEventTimeJS:Date; /** - * An {@link yfiles.view.ISelectionModel.} of the selected bends. + * Indicates if this device is currently down or not. *

    - * This is the bend part of the selection that this instance is a composite of. + * Default is true. *

    - * @abstract - * @type {yfiles.view.ISelectionModel.} + * @type {boolean} */ - selectedBends:yfiles.view.ISelectionModel; + isDown:boolean; + static $class:yfiles.lang.Class; } - var IGraphSelection:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; /** - * Convenience component implementation that shows an overview of an {@link yfiles.graph.IGraph} contained in another {@link yfiles.view.GraphOverviewComponent#graphComponent}. - *

    - * This component uses a {@link yfiles.view.GraphOverviewComponent#graphVisualCreator} to display the graph in a preview mode and an {@link yfiles.view.GraphOverviewComponent#overviewInputMode} to allow for easily navigating in the {@link yfiles.view.GraphOverviewComponent#graphComponent}. - *

    - *

    Related demos:

    - *
      - *
    • Demo: SimpleEditorForm, Demo.yFiles.Graph.SimpleEditor
    • - *
    - * @class yfiles.view.GraphOverviewComponent - * @extends {yfiles.view.CanvasComponent} + * The event argument class that is used by {@link yfiles.view.DragSource#addQueryContinueDragListener QueryContinueDrag} + * during drags to query the drag source whether the drag should be continued. + * @class + * @extends {yfiles.lang.EventArgs} + * @final */ - export interface GraphOverviewComponent extends yfiles.view.CanvasComponent{} - export class GraphOverviewComponent { + export interface QueryContinueDragEventArgs extends yfiles.lang.EventArgs{} + export class QueryContinueDragEventArgs { /** - * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is specified by the selector and - * that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. - *

    - * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. - *

    - * @param {yfiles.view.GraphComponent} [graphComponent=null] The {@link yfiles.view.GraphOverviewComponent#graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. - * @param {string} selector The CSS selector or id for an existing div element - * @constructor + * Gets or sets the action. + * @type {yfiles.view.DragAction} */ - constructor(selector:string,graphComponent?:yfiles.view.GraphComponent); + action:yfiles.view.DragAction; /** - * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is specified by the selector and - * that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + * Gets a value indicating whether the escape key had been pressed. + * @type {boolean} + */ + escapePressed:boolean; + /** + * Gets the current state of the keys. + * @type {yfiles.view.DragDropKeyStates} + */ + keyStates:yfiles.view.DragDropKeyStates; + /** + * Gets or sets a value indicating whether this {@link yfiles.view.QueryContinueDragEventArgs} is handled. + * @type {boolean} + */ + handled:boolean; + static $class:yfiles.lang.Class; + } + export enum DragAction{ + /** + * Whether the drag should be continued. + */ + CONTINUE, + /** + * Whether the drag should be finalized by an immediate drop. + */ + DROP, + /** + * Whether the drag operation should be canceled. + */ + CANCEL + } + /** + * Helper class for drag and drop support that is used for the source of drag and drop operations. + * @class + */ + export interface DragSource extends Object{} + export class DragSource { + /** + * Initializes a new instance of the {@link yfiles.view.DragSource} class setting the {@link yfiles.view.DragSource#source} property to the given element. + * @param source The source. + */ + constructor(source:HTMLElement); + /** + * Cleans up by removing the association with the {@link yfiles.view.DragSource#source} element. + */ + cleanUp():void; + /** + * Raises the {@link yfiles.view.DragSource#addQueryContinueDragListener QueryContinueDrag} event. *

    - * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + * If the event is not {@link yfiles.view.QueryContinueDragEventArgs#handled handled}, a default logic will be applied: the drag operation is canceled if the left mouse button is + * released or escape has been pressed, otherwise the drag will be {@link yfiles.view.DragAction#CONTINUE continued}. *

    + * @param evt The {@link } instance containing the event data. + */ + onQueryContinueDrag(evt:yfiles.view.QueryContinueDragEventArgs):void; + /** + * Initiates a new drag operation using the provided drag data and effects. + *

    + * If useCssCursors is enabled, the following CSS classes are assigned to elements hovered during a drag operation, + * depending on the allowed drag-drop operations for these elements: + *

    + *
      + *
    • yfiles-cursor-dragdrop-move
    • + *
    • yfiles-cursor-dragdrop-link
    • + *
    • yfiles-cursor-dragdrop-all
    • + *
    • yfiles-cursor-dragdrop-no-drop
    • + *
    + * @param dragData The data to use for the drag. + * @param [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed effects. + * @param [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. + */ + startDrag(dragData:yfiles.view.DragDropItem,dragDropEffects?:yfiles.view.DragDropEffects,useCssCursors?:boolean):void; + /** + * Initiates a new drag operation using the provided drag data and effects. + *

    + * If useCssCursors is enabled, the following CSS classes are assigned to elements hovered during a drag operation, + * depending on the allowed drag-drop operations for these elements: + *

    + *
      + *
    • yfiles-cursor-dragdrop-move
    • + *
    • yfiles-cursor-dragdrop-link
    • + *
    • yfiles-cursor-dragdrop-all
    • + *
    • yfiles-cursor-dragdrop-no-drop
    • + *
    * @param {Object} options The parameters to pass. - * @param {yfiles.view.GraphComponent} [options.graphComponent=null] The {@link yfiles.view.GraphOverviewComponent#graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. - * @param {string} options.selector The CSS selector or id for an existing div element - * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. - *

    - * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. - *

    - * @constructor + * @param options.dragData The data to use for the drag. + * @param [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed effects. + * @param [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. */ - constructor(options:{selector:string,graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); + startDrag(options:{dragData:yfiles.view.DragDropItem,dragDropEffects?:yfiles.view.DragDropEffects,useCssCursors?:boolean}):void; /** - * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is optionally bound to the - * provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + * Adds the given listener for the QueryContinueDrag event that occurs when the state of the {@link yfiles.view.DragDropKeyStates} + * has changed to query the source whether the drag operation should be continued. *

    - * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + * Handlers should adjust the {@link yfiles.view.QueryContinueDragEventArgs#handled} and {@link yfiles.view.QueryContinueDragEventArgs#action} properties accordingly. *

    - * @param {HTMLDivElement} div The div element to use for holding the canvas. - * @param {yfiles.view.GraphComponent} [graphComponent=null] The optional graph control to {@link yfiles.view.GraphOverviewComponent#graphComponent bind} this instance to. If omitted, the property needs to be set to initialize the - * component. - * @constructor + * @param listener The listener to add. + * @see yfiles.view.DragSource#removeQueryContinueDragListener */ - constructor(div:HTMLDivElement,graphComponent?:yfiles.view.GraphComponent); + addQueryContinueDragListener(listener:(sender:Object,evt:yfiles.view.QueryContinueDragEventArgs)=>void):void; /** - * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is optionally bound to the - * provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + * Removes the given listener for the QueryContinueDrag event that occurs when the state of the {@link yfiles.view.DragDropKeyStates} + * has changed to query the source whether the drag operation should be continued. *

    - * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + * Handlers should adjust the {@link yfiles.view.QueryContinueDragEventArgs#handled} and {@link yfiles.view.QueryContinueDragEventArgs#action} properties accordingly. *

    - * @param {Object} options The parameters to pass. - * @param {HTMLDivElement} options.div The div element to use for holding the canvas. - * @param {yfiles.view.GraphComponent} [options.graphComponent=null] The optional graph control to {@link yfiles.view.GraphOverviewComponent#graphComponent bind} this instance to. If omitted, the property needs to be set to initialize the - * component. - * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. + * @param listener The listener to remove. + * @see yfiles.view.DragSource#addQueryContinueDragListener + */ + removeQueryContinueDragListener(listener:(sender:Object,evt:yfiles.view.QueryContinueDragEventArgs)=>void):void; + /** + * Gets or sets the source element from which drags can originate. *

    - * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. + * If the {@link yfiles.view.DragSource#allowDrag} property is enabled, this will automatically register mouse event handlers on the element that will recognize + * default drag gestures (press followed by drag) to {@link yfiles.view.DragSource#startDrag initiate a drag and drop operation}. *

    - * @constructor + * @default null + * @type {HTMLElement} */ - constructor(options:{div:HTMLDivElement,graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); + source:HTMLElement; /** - * Creates a new instance that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. - *

    - * This constructor creates a new {@link yfiles.view.CanvasComponent#div} element that needs to be added to the DOM manually. If no graphControl is provided, in - * order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. - *

    - * @param {yfiles.view.GraphComponent} [graphComponent=null] The {@link yfiles.view.GraphOverviewComponent#graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. - * @constructor - */ - constructor(graphComponent?:yfiles.view.GraphComponent); - /** - * Creates a new instance that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. - *

    - * This constructor creates a new {@link yfiles.view.CanvasComponent#div} element that needs to be added to the DOM manually. If no graphControl is provided, in - * order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. - *

    - * @param {Object} options The parameters to pass. - * @param {yfiles.view.GraphComponent} [options.graphComponent=null] The {@link yfiles.view.GraphOverviewComponent#graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. - * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. - *

    - * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. - *

    - * @constructor - */ - constructor(options:{graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); - /** - * Factory method that creates the {@link yfiles.view.IVisualCreator} that renders the preview of the graph in a HTML canvas - * element. - * @param {yfiles.graph.IGraph} graph The graph to draw. - * @returns {yfiles.view.IVisualCreator} An {@link yfiles.view.IVisualCreator} that creates HTML canvas rendering. - * @protected - */ - createCanvasVisualCreator(graph:yfiles.graph.IGraph):yfiles.view.IVisualCreator; - /** - * Factory method that creates the {@link yfiles.view.IVisualCreator} that renders the preview of the graph in SVG. - * @param {yfiles.graph.IGraph} graph The graph to draw. - * @returns {yfiles.view.IVisualCreator} An {@link yfiles.view.IVisualCreator} that creates SVG. - * @protected - */ - createSvgVisualCreator(graph:yfiles.graph.IGraph):yfiles.view.IVisualCreator; - /** - * Gets or sets a value indicating whether the graph is rendered using SVG rendering. + * Gets or sets a value indicating whether default drag gestures should be automatically recognized on the {@link yfiles.view.DragSource#source}. * @default false * @type {boolean} */ - svgRendering:boolean; + allowDrag:boolean; /** - * Gets the {@link yfiles.styles.GraphOverviewSvgVisualCreator} that is used to render the over view graph. - * @type {yfiles.view.IVisualCreator} + * Gets or sets the data that will be used for the {@link yfiles.view.DragSource#allowDrag automatic drag operation}. + *

    + * If this data is not a {@link yfiles.view.DragDropItem}, the {@link yfiles.input.DropInputMode expected format} of the automatic drag operation will be code. + *

    + * @default null + * @type {Object} */ - graphVisualCreator:yfiles.view.IVisualCreator; + item:Object; /** - * Gets the {@link yfiles.input.IInputMode} that is used to navigate the client control. - * @type {yfiles.input.OverviewInputMode} + * Gets or sets the {@link yfiles.view.DragSource#effectAllowed} that will be used for the {@link yfiles.view.DragSource#allowDrag automatic drag operation}. + * @default yfiles.view.DragDropEffects.ALL + * @type {yfiles.view.DragDropEffects} */ - overviewInputMode:yfiles.input.OverviewInputMode; - /** - * Gets or sets the graph that is rendered in the overview. - * @type {yfiles.graph.IGraph} - */ - graph:yfiles.graph.IGraph; - /** - * Gets or sets the client component, that will be used to retrieve the graph from and that will be used for navigating. - * @type {yfiles.view.GraphComponent} - */ - graphComponent:yfiles.view.GraphComponent; + effectAllowed:yfiles.view.DragDropEffects; static $class:yfiles.lang.Class; } /** - * An implementation of the {@link yfiles.view.ICanvasObjectInstaller} interface that can decorate the visual appearence of an - * {@link yfiles.graph.IEdge}. - *

    - * This will install an {@link yfiles.view.ICanvasObject} during {@link yfiles.view.ICanvasObjectInstaller#addCanvasObject installation}, that will render the path and the bends of an edge - * using a {@link yfiles.view.EdgeDecorationInstaller#getStroke pen} for the path and a {@link yfiles.view.EdgeDecorationInstaller#getBendDrawing drawing} for the bends. - *

    - * @class yfiles.view.EdgeDecorationInstaller - * @implements {yfiles.view.ISelectionIndicatorInstaller} - * @implements {yfiles.view.IHighlightIndicatorInstaller} - * @implements {yfiles.view.IFocusIndicatorInstaller} + * Helper class that plays the role of the target during a drag and drop operation that is initiated using {@link yfiles.view.DragSource#startDrag} + * in a {@link yfiles.view.DragSource}. + * @class */ - export interface EdgeDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} - export class EdgeDecorationInstaller { + export interface DropTarget extends Object{} + export class DropTarget { /** - * Installs a rendering for the item if it is an {@link yfiles.graph.IEdge} that will use the {@link yfiles.view.EdgeDecorationInstaller#getBendDrawing} - * and {@link yfiles.view.EdgeDecorationInstaller#getStroke} to render the path and bends. - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.view.ICanvasObjectGroup} group The {@link yfiles.view.ICanvasObjectGroup} to add the new canvas object to. - * @param {Object} item The item to install. - * @returns {yfiles.view.ICanvasObject} The canvas object representing the item. - */ - addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; - /** - * Callback method that retrieves the drawing of the bend for the context. + * Initializes a new instance of the {@link yfiles.view.DropTarget} class. *

    - * This implementation will use the {@link yfiles.view.EdgeSelectionIndicatorInstaller#BEND_TEMPLATE_KEY} resource to find a {@link yfiles.view.IVisualTemplate} - * instance. If null is yielded, a default drawing will be used. + * In order to make the instance available to the drag and drop mechanisms, the {@link yfiles.view.DropTarget#setDropTarget} helper + * method should be used. If the optional element is passed in, it will automatically be registered. *

    - * @param {yfiles.view.CanvasComponent} canvas The canvas for which the drawing shall be returned. - * @param {yfiles.graph.IEdge} edge The edge for which the rendering will be used. - * @returns {yfiles.view.IVisualTemplate} The drawing instance to use for the rendering of the bends in the given context. - * @protected - * @abstract + * @param [element=null] The element to optionally {@link #setDropTarget associate} with the new instance. + * @see yfiles.view.DropTarget#setDropTarget + * @see yfiles.view.DropTarget#getDropTarget */ - getBendDrawing(canvas:yfiles.view.CanvasComponent,edge:yfiles.graph.IEdge):yfiles.view.IVisualTemplate; + constructor(element?:Element); /** - * Callback method that retrieves the {@link yfiles.view.Stroke} for the context. - *

    - * This implementation will use the {@link yfiles.view.EdgeSelectionIndicatorInstaller#STROKE_KEY} resource to find a {@link yfiles.view.Stroke} - * instance. If null is yielded, a default {@link yfiles.view.Stroke} will be used. - *

    - * @param {yfiles.graph.IEdge} edge The edge for which the rendering will be used. - * @param {yfiles.view.CanvasComponent} canvas The canvas for which the {@link yfiles.view.Stroke} shall be returned. - * @returns {yfiles.view.Stroke} The {@link yfiles.view.Stroke} instance to use for the rendering of the edge in the given context. - * @protected - * @abstract - */ - getStroke(canvas:yfiles.view.CanvasComponent,edge:yfiles.graph.IEdge):yfiles.view.Stroke; - static $class:yfiles.lang.Class; - } - /** - * An implementation of the {@link yfiles.view.ICanvasObjectInstaller} interface that can install the selection outline of an - * {@link yfiles.graph.IEdge}. - *

    - * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeSelectionIndicatorInstaller#getStroke pen} for the - * path and a {@link yfiles.view.EdgeSelectionIndicatorInstaller#getBendDrawing drawing} for the bends. - *

    - * @class yfiles.view.EdgeSelectionIndicatorInstaller - * @extends {yfiles.view.EdgeDecorationInstaller} - */ - export interface EdgeSelectionIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} - export class EdgeSelectionIndicatorInstaller { - constructor(); - /** - * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. - * @const + * Gets the {@link yfiles.view.DropTarget} instance associated with the given element. + * @param element The element to get the drop target instance of. + * @returns The associated instance or null. + * @see yfiles.view.DropTarget#setDropTarget * @static - * @type {string} */ - static STROKE_KEY:string; + static getDropTarget(element:Element):yfiles.view.DropTarget; /** - * A {@link string} that will be used to find the {@link yfiles.view.IVisualTemplate} that will be used to draw the bends of the edge. - * @const + * Sets the drop target for the given element. + * @param element The element or null to register the drop target instance with. + * @param dropTarget The instance to attach to the element, null to remove the association from the element. + * @see yfiles.view.DropTarget#getDropTarget * @static - * @type {string} */ - static BEND_TEMPLATE_KEY:string; + static setDropTarget(element:Element,dropTarget:yfiles.view.DropTarget):void; + /** + * Adds the given listener for the DragEnter event that occurs when a drag enters the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to add. + * @see yfiles.view.DropTarget#removeDragEnterListener + */ + addDragEnterListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Removes the given listener for the DragEnter event that occurs when a drag enters the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to remove. + * @see yfiles.view.DropTarget#addDragEnterListener + */ + removeDragEnterListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Adds the given listener for the DragLeave event that occurs when a drag leaves the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to add. + * @see yfiles.view.DropTarget#removeDragLeaveListener + */ + addDragLeaveListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Removes the given listener for the DragLeave event that occurs when a drag leaves the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to remove. + * @see yfiles.view.DropTarget#addDragLeaveListener + */ + removeDragLeaveListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Adds the given listener for the DragOver event that occurs when a drag is being performed over the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to add. + * @see yfiles.view.DropTarget#removeDragOverListener + */ + addDragOverListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Removes the given listener for the DragOver event that occurs when a drag is being performed over the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to remove. + * @see yfiles.view.DropTarget#addDragOverListener + */ + removeDragOverListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Adds the given listener for the Drop event that occurs when the drop operation is performed on the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to add. + * @see yfiles.view.DropTarget#removeDropListener + */ + addDropListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Removes the given listener for the Drop event that occurs when the drop operation is performed on the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to remove. + * @see yfiles.view.DropTarget#addDropListener + */ + removeDropListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Gets or sets a value indicating whether dropping to this target is currently allowed. + * @type {boolean} + */ + allowDrop:boolean; static $class:yfiles.lang.Class; } - /** - * An specialized subclass of the {@link yfiles.view.EdgeSelectionIndicatorInstaller} that can install the focus indicator of an - * {@link yfiles.graph.IEdge}. - *

    - * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeFocusIndicatorInstaller#getStroke pen} for the - * path and a {@link yfiles.view.EdgeFocusIndicatorInstaller#getBendDrawing drawing} for the bends. - *

    - * @class yfiles.view.EdgeFocusIndicatorInstaller - * @extends {yfiles.view.EdgeDecorationInstaller} - */ - export interface EdgeFocusIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} - export class EdgeFocusIndicatorInstaller { - constructor(); - /** - * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. - * @const - * @static - * @type {string} - */ - static STROKE_KEY:string; - /** - * A {@link string} that will be used to find the DataTemplate that will be used to draw the bends of the edge. - * @const - * @static - * @type {string} - */ - static BEND_TEMPLATE_KEY:string; - static $class:yfiles.lang.Class; - } - /** - * An specialized subclass of the {@link yfiles.view.EdgeSelectionIndicatorInstaller} that can install the highlight rendering of - * an {@link yfiles.graph.IEdge}. - *

    - * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeHighlightIndicatorInstaller#getStroke pen} for the - * path and a {@link yfiles.view.EdgeHighlightIndicatorInstaller#getBendDrawing drawing} for the bends. - *

    - * @class yfiles.view.EdgeHighlightIndicatorInstaller - * @extends {yfiles.view.EdgeDecorationInstaller} - */ - export interface EdgeHighlightIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} - export class EdgeHighlightIndicatorInstaller { - constructor(); - /** - * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. - * @const - * @static - * @type {string} - */ - static STROKE_KEY:string; - /** - * A {@link string} that will be used to find the DataTemplate that will be used to draw the bends of the edge. - * @const - * @static - * @type {string} - */ - static BEND_TEMPLATE_KEY:string; - static $class:yfiles.lang.Class; - } - /** - * Allows the use of an {@link yfiles.styles.IEdgeStyle} to render the selection, highlight or focus indicator of edges. - *

    - * The {@link yfiles.view.EdgeStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the - * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the - * default yFiles indicators. - *

    - * @see yfiles.view.NodeStyleDecorationInstaller - * @see yfiles.view.LabelStyleDecorationInstaller - * @class yfiles.view.EdgeStyleDecorationInstaller - * @implements {yfiles.view.ISelectionIndicatorInstaller} - * @implements {yfiles.view.IHighlightIndicatorInstaller} - * @implements {yfiles.view.IFocusIndicatorInstaller} - */ - export interface EdgeStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} - export class EdgeStyleDecorationInstaller { - /** - * Create a new instance of this class. - * @constructor - */ - constructor(); - /** - * Installs a rendering for the item if it is an {@link yfiles.graph.IEdge}. - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.view.ICanvasObjectGroup} group The canvas object group to add the newly created {@link yfiles.view.ICanvasObject} to. - * @param {Object} item The item to install. - * @returns {yfiles.view.ICanvasObject} The canvas object representing the item. - */ - addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; - /** - * Specifies how the style is affected by the current zoom level. - *

    - * Changes of the value of this property are propagated to all styles created by this instance and become immediately - * visible. - *

    - * @type {yfiles.view.StyleDecorationZoomPolicy} - */ - zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; - /** - * The style to use for the rendering. - *

    - * Changes of the value of this property are not propagated to already created styles. - *

    - * @type {yfiles.styles.IEdgeStyle} - */ - edgeStyle:yfiles.styles.IEdgeStyle; - static $class:yfiles.lang.Class; - } - /** - * An {@link yfiles.view.IVisualCreator} for use in a {@link yfiles.view.CanvasComponent} that renders a {@link yfiles.graph.IGraph} instance in a - * sloppy overview style. - * @class yfiles.view.GraphOverviewCanvasVisualCreator - * @implements {yfiles.view.IVisualCreator} - */ - export interface GraphOverviewCanvasVisualCreator extends Object,yfiles.view.IVisualCreator{} - export class GraphOverviewCanvasVisualCreator { - /** - * Creates a new instance for the given graph. - * @param {yfiles.graph.IGraph} graph - * @constructor - */ - constructor(graph:yfiles.graph.IGraph); - /** - * Callback that paints the specified edge. - * @param {yfiles.view.IRenderContext} renderContext - * @param {CanvasRenderingContext2D} ctx - * @param {yfiles.graph.IEdge} edge - * @protected - */ - paintEdge(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,edge:yfiles.graph.IEdge):void; - /** - * Callback method that paints the specified node. - * @param {yfiles.view.IRenderContext} renderContext - * @param {CanvasRenderingContext2D} ctx - * @param {yfiles.graph.INode} node - * @protected - */ - paintGroupNode(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,node:yfiles.graph.INode):void; - /** - * Callback method that paints the specified node. - * @param {yfiles.view.IRenderContext} renderContext - * @param {CanvasRenderingContext2D} ctx - * @param {yfiles.graph.INode} node - * @protected - */ - paintNode(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,node:yfiles.graph.INode):void; - static $class:yfiles.lang.Class; - } - /** - * Allows the use of an {@link yfiles.styles.ILabelStyle} to render the selection, highlight or focus indicator of labels. - *

    - * The {@link yfiles.view.LabelStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the - * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the - * default yFiles indicators. - *

    - * @see yfiles.view.EdgeStyleDecorationInstaller - * @see yfiles.view.NodeStyleDecorationInstaller - * @class yfiles.view.LabelStyleDecorationInstaller - * @implements {yfiles.view.ISelectionIndicatorInstaller} - * @implements {yfiles.view.IHighlightIndicatorInstaller} - * @implements {yfiles.view.IFocusIndicatorInstaller} - */ - export interface LabelStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} - export class LabelStyleDecorationInstaller { - /** - * Create a new instance of this class. - * @constructor - */ - constructor(); - /** - * Installs a rendering for the item if it is an {@link yfiles.graph.ILabel}. - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.view.ICanvasObjectGroup} group The canvas object group to add the newly created canvas object to. - * @param {Object} item The item to install. - * @returns {yfiles.view.ICanvasObject} The canvas object representing the item. - */ - addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; - /** - * Specifies how the style is affected by the current zoom level. - *

    - * Changes of the value of this property are propagated to all styles created by this instance and become immediately - * visible. - *

    - * @type {yfiles.view.StyleDecorationZoomPolicy} - */ - zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; - /** - * Specifies the margin around the label layout. - *

    - * Actually, the bounds rendered by the style is the original label layout enlarged by this margin. - *

    - *

    - * Changes of the value of this property are propagated to all styles created by this instance and become immediately - * visible. - *

    - * @type {yfiles.geometry.Insets} - */ - margin:yfiles.geometry.Insets; - /** - * The style to use for the rendering. - *

    - * Changes of the value of this property are not propagated to already created styles. - *

    - * @type {yfiles.styles.ILabelStyle} - */ - labelStyle:yfiles.styles.ILabelStyle; - static $class:yfiles.lang.Class; - } - /** - * Allows the use of an {@link yfiles.styles.INodeStyle} to render the selection, highlight or focus indicator of nodes. - *

    - * The {@link yfiles.view.NodeStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the - * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the - * default yFiles indicators. - *

    - * @see yfiles.view.EdgeStyleDecorationInstaller - * @see yfiles.view.LabelStyleDecorationInstaller - * @class yfiles.view.NodeStyleDecorationInstaller - * @implements {yfiles.view.ISelectionIndicatorInstaller} - * @implements {yfiles.view.IHighlightIndicatorInstaller} - * @implements {yfiles.view.IFocusIndicatorInstaller} - */ - export interface NodeStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} - export class NodeStyleDecorationInstaller { - /** - * Create a new instance of this class. - * @constructor - */ - constructor(); - /** - * Installs a rendering for the item if it is an {@link yfiles.graph.INode}. - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.view.ICanvasObjectGroup} group The canvas object group to add the newly created canvas object to. - * @param {Object} item The item to install. - * @returns {yfiles.view.ICanvasObject} The canvas object representing the item. - */ - addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; - /** - * Specifies how the style is affected by the current zoom level. - *

    - * Changes of the value of this property are propagated to all styles created by this instance and become immediately - * visible. - *

    - * @type {yfiles.view.StyleDecorationZoomPolicy} - */ - zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; - /** - * Specifies the margin around the node layout. - *

    - * Actually, the bounds rendered by the style is the original node layout enlarged by this margin. - *

    - *

    - * Changes of the value of this property are propagated to all styles created by this instance and become immediately - * visible. - *

    - * @type {yfiles.geometry.Insets} - */ - margin:yfiles.geometry.Insets; - /** - * The style to use for the rendering. - *

    - * Changes of the value of this property are not propagated to already created styles. - *

    - * @type {yfiles.styles.INodeStyle} - */ - nodeStyle:yfiles.styles.INodeStyle; - static $class:yfiles.lang.Class; - } - export enum StyleDecorationZoomPolicy{ - /** - * The visual is rendered in the view coordinate space and doesn't scale with the zoom level. - *

    - * This is similar to the default node resize handles, for example. - *

    - */ - VIEW_COORDINATES, - /** - * The visual is rendered in the world coordinate space and scales with the zoom level like a regular graph item - * visualization, for example a node style. - */ - WORLD_COORDINATES, - /** - * Uses WorldCoordinates rendering for zoom level >= 1 and ViewCoordinates rendering for zoom level < 1. - */ - MIXED - } /** * An animation for the {@link yfiles.graph.IStripe stripes} in an {@link yfiles.graph.ITable}. - * @class yfiles.view.TableAnimation + * @class * @implements {yfiles.view.IAnimation} */ export interface TableAnimation extends Object,yfiles.view.IAnimation{} @@ -20472,15 +20505,14 @@ declare namespace system{ * leaf stripes, i.e. those without child stripes, are considered. The sizes of a stripe with children is implicitly determined by its * contents. *

    - * @param {yfiles.graph.ITable} table The table to animate. - * @param {Array.} columnLayout The sizes of the leaf columns, in natural order. - * @param {Array.} rowLayout The sizes of the leaf rows, in natural order. - * @constructor + * @param table The table to animate. + * @param columnLayout The sizes of the leaf columns, in natural order. + * @param rowLayout The sizes of the leaf rows, in natural order. */ constructor(table:yfiles.graph.ITable,columnLayout:number[],rowLayout:number[]); /** * - * @param {number} time + * @param time */ animate(time:number):void; /** @@ -20489,9 +20521,9 @@ declare namespace system{ cleanup():void; /** * Create the animation for a single {@link yfiles.graph.IStripe} - * @param {yfiles.graph.IStripe} stripe The stripe - * @param {number} targetSize The target size of the stripe - * @returns {yfiles.view.IAnimation} An animation that morphs the stripe size + * @param stripe The stripe + * @param targetSize The target size of the stripe + * @returns An animation that morphs the stripe size * @protected */ createStripeAnimation(stripe:yfiles.graph.IStripe,targetSize:number):yfiles.view.IAnimation; @@ -20557,14 +20589,13 @@ declare namespace system{ }; /** * Default implementation of the {@link yfiles.view.IStripeSelection} interface. - * @class yfiles.view.StripeSelection + * @class * @implements {yfiles.view.IStripeSelection} */ export interface StripeSelection extends Object,yfiles.view.IStripeSelection{} export class StripeSelection { /** * Default constructor that creates empty selection models. - * @constructor */ constructor(); /** @@ -20573,25 +20604,25 @@ declare namespace system{ clear():void; /** * - * @returns {yfiles.collections.IEnumerator.} + * @returns */ getEnumerator():yfiles.collections.IEnumerator; /** * Return whether stripe is currently selected - * @param {yfiles.graph.IStripe} stripe The stripe to test - * @returns {boolean} true iff stripe is currently selected + * @param stripe The stripe to test + * @returns true iff stripe is currently selected */ isSelected(stripe:yfiles.graph.IStripe):boolean; /** * Raises the {@link yfiles.view.StripeSelection#addItemSelectionChangedListener ItemSelectionChanged} event - * @param {yfiles.view.ItemSelectionChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onItemSelectionChanged(evt:yfiles.view.ItemSelectionChangedEventArgs):void; /** * - * @param {yfiles.graph.IStripe} item - * @param {boolean} selected + * @param item + * @param selected */ setSelected(item:yfiles.graph.IStripe,selected:boolean):void; /** @@ -20627,12 +20658,12 @@ declare namespace system{ size:number; /** * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * @param listener */ addItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * @param listener */ removeItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; static $class:yfiles.lang.Class; @@ -20673,9 +20704,9 @@ declare namespace system{ export interface IHitTester extends Object{ /** * Yields an enumerable that enumerates the hits for a given world coordinate. - * @param {yfiles.input.IInputModeContext} context The context in which to perform the hit testing. - * @param {yfiles.geometry.Point} location the coordinates in the world coordinate system - * @returns {yfiles.collections.IEnumerable.} an enumerable that yields hits for the given coordinates + * @param context The context in which to perform the hit testing. + * @param location the coordinates in the world coordinate system + * @returns an enumerable that yields hits for the given coordinates * @abstract */ enumerateHits(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.collections.IEnumerable; @@ -20774,22 +20805,20 @@ declare namespace system{ *

    * This class adds convenience methods for derived classes. *

    - * @class yfiles.input.InputModeBase + * @class * @implements {yfiles.input.IInputMode} */ export interface InputModeBase extends Object,yfiles.input.IInputMode{} export class InputModeBase { /** * Initializes a new instance of the {@link yfiles.input.InputModeBase} class. - * @param {boolean} exclusive Iff this mode should be {@link yfiles.input.InputModeBase#exclusive}. + * @param exclusive Iff this mode should be {@link #exclusive}. * @protected - * @constructor */ constructor(exclusive:boolean); /** * Initializes a new instance of the {@link yfiles.input.InputModeBase} class that is {@link yfiles.input.InputModeBase#exclusive} by default. * @protected - * @constructor */ constructor(); /** @@ -20808,7 +20837,7 @@ declare namespace system{ *

    * This will return true, iff a {@link yfiles.input.InputModeBase#controller} has been injected and the helper allows requesting the mutex. *

    - * @returns {boolean} Whether a call to {@link yfiles.input.InputModeBase#requestMutex} would currently succeed. + * @returns Whether a call to {@link #requestMutex} would currently succeed. * @protected */ canRequestMutex():boolean; @@ -20824,7 +20853,7 @@ declare namespace system{ * by looking up {@link yfiles.input.IInputModeContext} from the {@link yfiles.view.ICanvasContext}'s {@link yfiles.graph.ILookup#lookup} method or * simply downcasting. *

    - * @returns {yfiles.input.IInputModeContext} A readily configured {@link yfiles.input.IInputModeContext}. + * @returns A readily configured {@link }. * @see yfiles.view.CanvasComponent#hitElementsAt * @see yfiles.input.IHitTestable#isHit * @see yfiles.input.IInputModeContext @@ -20833,11 +20862,11 @@ declare namespace system{ createChildInputModeContext():yfiles.input.IInputModeContext; /** * Helper method that yields a suitably configured {@link yfiles.input.InputModeEventArgs} for this input mode. - * @param {yfiles.input.IInputModeContext} context An input mode context that is available in the {@link yfiles.input.InputModeEventArgs}. + * @param context An input mode context that is available in the {@link }. *

    * Can be null in which case a new context for this instance is created automatically. *

    - * @returns {yfiles.input.InputModeEventArgs} An input mode event argument that is configured for this instance. + * @returns An input mode event argument that is configured for this instance. * @protected */ createInputModeEventArgs(context:yfiles.input.IInputModeContext):yfiles.input.InputModeEventArgs; @@ -20847,7 +20876,7 @@ declare namespace system{ * If no {@link yfiles.input.InputModeBase#controller} had been associated with this instance upon the call to {@link yfiles.input.InputModeBase#requestMutex} this method will * return false. *

    - * @returns {boolean} Whether this instance has the input mutex. + * @returns Whether this instance has the input mutex. * @protected */ hasMutex():boolean; @@ -20872,8 +20901,8 @@ declare namespace system{ * method the first time this mode gets installed. The initialization will be surrounded by calls to {@link yfiles.input.InputModeBase#onInitializing} * and {@link yfiles.input.InputModeBase#onInitialized} to trigger the corresponding events. *

    - * @param {yfiles.input.IInputModeContext} context the context to install this mode into - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.InputModeBase#controller} for this mode. + * @param context the context to install this mode into + * @param controller The {@link #controller} for this mode. * @see yfiles.input.InputModeBase#inputModeContext * @see yfiles.view.CanvasComponent#inputMode */ @@ -20884,7 +20913,7 @@ declare namespace system{ *

    * This method is called by subclasses when the editing process has been {@link yfiles.input.InputModeBase#cancel}ed. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event arguments. + * @param evt The event arguments. * @see yfiles.input.InputModeBase#initialize * @protected */ @@ -20918,7 +20947,7 @@ declare namespace system{ * This method will be called by {@link yfiles.input.InputModeBase#install} for the first installation directly after {@link yfiles.input.InputModeBase#initialize} * has returned. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event arguments. + * @param evt The event arguments. * @see yfiles.input.InputModeBase#initialize * @protected */ @@ -20930,7 +20959,7 @@ declare namespace system{ * This method will be called by {@link yfiles.input.InputModeBase#install} for the first installation directly before {@link yfiles.input.InputModeBase#initialize} * is invoked. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event arguments. + * @param evt The event arguments. * @see yfiles.input.InputModeBase#initialize * @protected */ @@ -20960,7 +20989,7 @@ declare namespace system{ * This method will be called by {@link yfiles.input.InputModeBase#tryStop} or can be called by subclasses during a {@link yfiles.input.InputModeBase#tryStop} * operation. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event arguments. + * @param evt The event arguments. * @see yfiles.input.InputModeBase#tryStop * @see yfiles.input.InputModeBase#addStoppedListener * @protected @@ -21007,8 +21036,7 @@ declare namespace system{ /** * Requests capturing of all mouse and touch input that happens in the {@link yfiles.view.CanvasComponent}. *

    - * This sets the CaptureAllPointerInput property to - * true, which will prevent visuals inside the canvas from stealing mouse input. + * This sets the {@link yfiles.view.CanvasComponent#captureAllPointerInput} property to true, which will prevent visuals inside the canvas from stealing mouse input. *

    * @see yfiles.input.InputModeBase#releasePointer * @protected @@ -21030,7 +21058,7 @@ declare namespace system{ *

    * Calling this method raises the {@link yfiles.input.InputModeBase#addStoppedListener Stopped} event. *

    - * @returns {boolean} true iff this instance does not {@link yfiles.input.InputModeBase#hasMutex own the mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. * @see yfiles.input.InputModeBase#onStopped */ tryStop():boolean; @@ -21039,8 +21067,8 @@ declare namespace system{ *

    * Subclasses should always call base.Uninstall(context) as the last statement. *

    - * @param {yfiles.input.IInputModeContext} context The context to remove this mode from. This is the same instance that has been passed to - * {@link yfiles.input.InputModeBase#install}. + * @param context The context to remove this mode from. This is the same instance that has been passed to + * {@link #install}. */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -21048,7 +21076,7 @@ declare namespace system{ *

    * Clients can use this event to perform configuration of the instance shortly before the initialization begins. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.InputModeBase#install * @see yfiles.input.InputModeBase#removeInitializingListener */ @@ -21059,7 +21087,7 @@ declare namespace system{ *

    * Clients can use this event to perform configuration of the instance shortly before the initialization begins. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.InputModeBase#install * @see yfiles.input.InputModeBase#addInitializingListener */ @@ -21070,7 +21098,7 @@ declare namespace system{ * Clients can use this event to perform post configuration steps of the instance shortly after the initialization has been * performed. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.InputModeBase#install * @see yfiles.input.InputModeBase#removeInitializedListener */ @@ -21082,7 +21110,7 @@ declare namespace system{ * Clients can use this event to perform post configuration steps of the instance shortly after the initialization has been * performed. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.InputModeBase#install * @see yfiles.input.InputModeBase#addInitializedListener */ @@ -21092,7 +21120,7 @@ declare namespace system{ *

    * Clients can use this event to perform post cleanup steps of the instance shortly after the mode has been canceled. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.InputModeBase#onCanceled * @see yfiles.input.InputModeBase#cancel * @see yfiles.input.InputModeBase#tryStop @@ -21105,7 +21133,7 @@ declare namespace system{ *

    * Clients can use this event to perform post cleanup steps of the instance shortly after the mode has been canceled. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.InputModeBase#onCanceled * @see yfiles.input.InputModeBase#cancel * @see yfiles.input.InputModeBase#tryStop @@ -21118,7 +21146,7 @@ declare namespace system{ *

    * Clients can use this event to perform post cleanup steps of the instance shortly after the mode has been stopped. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.InputModeBase#onStopped * @see yfiles.input.InputModeBase#cancel * @see yfiles.input.InputModeBase#tryStop @@ -21131,7 +21159,7 @@ declare namespace system{ *

    * Clients can use this event to perform post cleanup steps of the instance shortly after the mode has been stopped. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.InputModeBase#onStopped * @see yfiles.input.InputModeBase#cancel * @see yfiles.input.InputModeBase#tryStop @@ -21203,19 +21231,18 @@ declare namespace system{ } /** * Event arguments used by {@link yfiles.input.ClickInputMode#addClickedListener Clicked}. - * @class yfiles.input.ClickEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface ClickEventArgs extends yfiles.input.InputModeEventArgs{} export class ClickEventArgs { /** * Initializes a new instance of the {@link yfiles.input.ClickEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context in which the click occurred. - * @param {yfiles.geometry.Point} location The location. - * @param {yfiles.view.ModifierKeys} modifiers State of the modifiers. - * @param {yfiles.view.MouseButtons} mouseButtons The mouse button(s) that have changed - * @param {number} clickCount - * @constructor + * @param context The context in which the click occurred. + * @param location The location. + * @param modifiers State of the modifiers. + * @param mouseButtons The mouse button(s) that have changed + * @param clickCount */ constructor(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,modifiers:yfiles.view.ModifierKeys,mouseButtons:yfiles.view.MouseButtons,clickCount:number); /** @@ -21290,14 +21317,13 @@ declare namespace system{ * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#swallowFocusClick * @see yfiles.input.ClickInputMode#activeButtons - * @class yfiles.input.ClickInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface ClickInputMode extends Object,yfiles.input.IInputMode{} export class ClickInputMode { /** * Creates a new instance of this mode that detects left mouse clicks. - * @constructor */ constructor(); /** @@ -21311,19 +21337,19 @@ declare namespace system{ cancel():void; /** * Creates the event recognizer that is used to recognize the clicks for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createClickRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Creates the event recognizer that is used to recognize the press event for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createPressRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Creates the event recognizer that is used to recognize the release event for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createReleaseRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; @@ -21339,44 +21365,44 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ClickInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** * Determines whether the given event is a press event that occurred at an invalid location. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @see yfiles.input.ClickInputMode#validClickHitTestable * @protected */ isInvalidPress(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid click event. - * @param {Object} src - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param src + * @param evt + * @returns * @see yfiles.input.ClickInputMode#validClickHitTestable * @protected */ isValidClick(src:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid press event. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @protected */ isValidPress(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid release event. - * @param {Object} src - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param src + * @param evt + * @returns * @see yfiles.input.ClickInputMode#validClickHitTestable * @protected */ @@ -21397,7 +21423,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.ClickInputMode#addClickedListener Clicked} event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21428,7 +21454,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.ClickInputMode#addDoubleClickedListener DoubleClicked} event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onDoubleClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21437,7 +21463,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.ClickInputMode#addLeftClickedListener LeftClicked} event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onLeftClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21447,7 +21473,7 @@ declare namespace system{ * This method will trigger the {@link yfiles.input.ClickInputMode#addLeftDoubleClickedListener LeftDoubleClicked} * event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onLeftDoubleClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21456,7 +21482,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.ClickInputMode#addRightClickedListener RightClicked} event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onRightClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21466,7 +21492,7 @@ declare namespace system{ * This method will trigger the {@link yfiles.input.ClickInputMode#addRightDoubleClickedListener RightDoubleClicked} * event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onRightDoubleClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21501,13 +21527,13 @@ declare namespace system{ *

    * To ensure that the flag really acts just once, this method resets the flag and returns its value prior to the reset. *

    - * @returns {boolean} + * @returns * @protected */ queryAndResetPreventNextDoubleClick():boolean; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -21519,7 +21545,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -21563,7 +21589,7 @@ declare namespace system{ controller:yfiles.input.ConcurrencyController; /** * Adds the given listener for the Clicked event that occurs once a click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeClickedListener @@ -21571,7 +21597,7 @@ declare namespace system{ addClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the Clicked event that occurs once a click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addClickedListener @@ -21579,7 +21605,7 @@ declare namespace system{ removeClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Adds the given listener for the LeftClicked event that occurs once a left click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeLeftClickedListener @@ -21587,7 +21613,7 @@ declare namespace system{ addLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the LeftClicked event that occurs once a left click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addLeftClickedListener @@ -21595,7 +21621,7 @@ declare namespace system{ removeLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Adds the given listener for the RightClicked event that occurs once a right click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeRightClickedListener @@ -21603,7 +21629,7 @@ declare namespace system{ addRightClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the RightClicked event that occurs once a right click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addRightClickedListener @@ -21611,7 +21637,7 @@ declare namespace system{ removeRightClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Adds the given listener for the DoubleClicked event that occurs once a double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeDoubleClickedListener @@ -21619,7 +21645,7 @@ declare namespace system{ addDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the DoubleClicked event that occurs once a double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addDoubleClickedListener @@ -21627,7 +21653,7 @@ declare namespace system{ removeDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Adds the given listener for the LeftDoubleClicked event that occurs once a left double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeLeftDoubleClickedListener @@ -21635,7 +21661,7 @@ declare namespace system{ addLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the LeftDoubleClicked event that occurs once a left double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addLeftDoubleClickedListener @@ -21643,7 +21669,7 @@ declare namespace system{ removeLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Adds the given listener for the RightDoubleClicked event that occurs once a right double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeRightDoubleClickedListener @@ -21651,7 +21677,7 @@ declare namespace system{ addRightDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the RightDoubleClicked event that occurs once a right double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addRightDoubleClickedListener @@ -21661,7 +21687,7 @@ declare namespace system{ * Gets or sets the click handling mode that determines the triggering behavior of {@link yfiles.input.ClickInputMode#addClickedListener Clicked} * and {@link yfiles.input.ClickInputMode#addDoubleClickedListener DoubleClicked}. * @see yfiles.input.ClickInputMode#doubleClickPolicy - * @default 2 + * @default yfiles.input.DoubleClickPolicy.BOTH_SINGLE_CLICKS_AND_DOUBLE_CLICK * @type {yfiles.input.DoubleClickPolicy} */ doubleClickPolicy:yfiles.input.DoubleClickPolicy; @@ -21697,7 +21723,7 @@ declare namespace system{ * Default value is {@link yfiles.view.MouseButtons#LEFT} *

    * @see yfiles.input.ClickInputMode#createClickRecognizer - * @default 1 + * @default yfiles.view.MouseButtons.LEFT * @type {yfiles.view.MouseButtons} */ activeButtons:yfiles.view.MouseButtons; @@ -21729,19 +21755,18 @@ declare namespace system{ * Event handlers can use the {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult} method to add snapping results for the * current move operation. *

    - * @class yfiles.input.CollectSnapResultsEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface CollectSnapResultsEventArgs extends yfiles.input.InputModeEventArgs{} export class CollectSnapResultsEventArgs { /** * Creates a new instance of the event arguments using the provided values for initialization. - * @param {yfiles.input.IInputModeContext} context The context for which the event is queried. - * @param {yfiles.geometry.Point} originalLocation The original location of the mouse at the beginning of the gesture. - * @param {yfiles.geometry.Point} newLocation The new (current) location of the mouse. - * @param {number} snapDistance The zoom invariant snap distance. - * @param {yfiles.collections.ICollection.} snapResults The collection to store the snap results in. - * @constructor + * @param context The context for which the event is queried. + * @param originalLocation The original location of the mouse at the beginning of the gesture. + * @param newLocation The new (current) location of the mouse. + * @param snapDistance The zoom invariant snap distance. + * @param snapResults The collection to store the snap results in. */ constructor(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point,snapDistance:number,snapResults:yfiles.collections.ICollection); /** @@ -21749,7 +21774,7 @@ declare namespace system{ *

    * null values will be discarded. *

    - * @param {yfiles.input.SnapResult} snapResult The result to add. + * @param snapResult The result to add. */ addSnapResult(snapResult:yfiles.input.SnapResult):void; /** @@ -21783,7 +21808,7 @@ declare namespace system{ *

    * @see yfiles.input.IInputMode * @see yfiles.input.MultiplexingInputMode - * @class yfiles.input.ConcurrencyController + * @class * @final */ export interface ConcurrencyController extends Object{} @@ -21794,8 +21819,7 @@ declare namespace system{ * The returned {@link yfiles.input.ConcurrencyController} is not synchronized with any other one so the mode will effectively run * in a non-{@link yfiles.input.ConcurrencyController#exclusive exclusive} mode. *

    - * @param {yfiles.input.IInputMode} mode The mode, the {@link yfiles.input.ConcurrencyController} shall be created for. - * @constructor + * @param mode The mode, the {@link } shall be created for. */ constructor(mode:yfiles.input.IInputMode); /** @@ -21803,7 +21827,7 @@ declare namespace system{ *

    * This will return true, iff this instance is {@link yfiles.input.ConcurrencyController#active} and doesn't hold the mutex. *

    - * @returns {boolean} Whether a call to {@link yfiles.input.ConcurrencyController#requestMutex} would currently succeed. + * @returns Whether a call to {@link #requestMutex} would currently succeed. */ canRequestMutex():boolean; /** @@ -21811,7 +21835,7 @@ declare namespace system{ *

    * The instance owns the input mutex if it has successfully {@link yfiles.input.ConcurrencyController#requestMutex requested} the mutex in the past and not yet {@link yfiles.input.ConcurrencyController#releaseMutex released} it. *

    - * @returns {boolean} Whether this instance has the input mutex. + * @returns Whether this instance has the input mutex. */ hasMutex():boolean; /** @@ -21844,7 +21868,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ConcurrencyController#removeMutexObtainedListener */ addMutexObtainedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21853,7 +21877,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ConcurrencyController#addMutexObtainedListener */ removeMutexObtainedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21862,7 +21886,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ConcurrencyController#removeMutexReleasedListener */ addMutexReleasedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21871,7 +21895,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ConcurrencyController#addMutexReleasedListener */ removeMutexReleasedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21913,7 +21937,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ConcurrencyController#removeActiveChangedListener */ addActiveChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21922,7 +21946,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ConcurrencyController#addActiveChangedListener */ removeActiveChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21953,7 +21977,7 @@ declare namespace system{ * {@link yfiles.input.MultiplexingInputMode} listens to property changes of the controller of its sub modes. properties. This * event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ConcurrencyController#removePreferredCursorChangedListener */ addPreferredCursorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21963,7 +21987,7 @@ declare namespace system{ * {@link yfiles.input.MultiplexingInputMode} listens to property changes of the controller of its sub modes. properties. This * event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ConcurrencyController#addPreferredCursorChangedListener */ removePreferredCursorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21973,7 +21997,7 @@ declare namespace system{ *

    * {@link yfiles.input.MultiplexingInputMode} listens to priority changes of the controller of its sub modes. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ConcurrencyController#removePriorityChangedListener */ addPriorityChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21983,7 +22007,7 @@ declare namespace system{ *

    * {@link yfiles.input.MultiplexingInputMode} listens to priority changes of the controller of its sub modes. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ConcurrencyController#addPriorityChangedListener */ removePriorityChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21992,16 +22016,15 @@ declare namespace system{ /** * Event arguments for the {@link yfiles.input.ContextMenuInputMode#addPopulateMenuListener PopulateMenu} * event. - * @class yfiles.input.PopulateMenuEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface PopulateMenuEventArgs extends yfiles.input.InputModeEventArgs{} export class PopulateMenuEventArgs { /** * Initializes a new instance of the {@link yfiles.input.PopulateMenuEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context. - * @param {yfiles.geometry.Point} queryLocation The query location. - * @constructor + * @param context The context. + * @param queryLocation The query location. */ constructor(context:yfiles.input.IInputModeContext,queryLocation:yfiles.geometry.Point); /** @@ -22061,14 +22084,13 @@ declare namespace system{ *
      *
    • Demo: Context Menu, demo.yfiles.input.contextmenu
    • *
    - * @class yfiles.input.ContextMenuInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface ContextMenuInputMode extends Object,yfiles.input.IInputMode{} export class ContextMenuInputMode { /** * Initializes a new instance of the {@link yfiles.input.ContextMenuInputMode} class. - * @constructor */ constructor(); /** @@ -22078,14 +22100,14 @@ declare namespace system{ /** * Creates an {@link yfiles.input.IInputModeContext} for use with the {@link yfiles.input.ContextMenuInputMode#addPopulateMenuListener PopulateMenu} * call in the upcoming query. - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext}. + * @returns An instance of {@link }. * @protected */ createPopulateMenuContext():yfiles.input.IInputModeContext; /** * Installs this mode in the canvas. - * @param {yfiles.input.IInputModeContext} context The context to install this mode into. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ContextMenuInputMode#controller} for this mode. + * @param context The context to install this mode into. + * @param controller The {@link #controller} for this mode. */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** @@ -22143,14 +22165,14 @@ declare namespace system{ * event and will use the {@link yfiles.input.PopulateMenuEventArgs#showMenu} value as the return value. If the event will not be handled, this method will return true if the * menu already contains elements. *

    - * @param {yfiles.geometry.Point} location The location in the world coordinate system for which the context menu has been invoked. - * @returns {boolean} Whether to show the context menu. + * @param location The location in the world coordinate system for which the context menu has been invoked. + * @returns Whether to show the context menu. * @protected */ onMenuOpening(location:yfiles.geometry.Point):boolean; /** * Raises the {@link yfiles.input.ContextMenuInputMode#addPopulateMenuListener PopulateMenu} event. - * @param {yfiles.input.PopulateMenuEventArgs} evt The {@link yfiles.input.PopulateMenuEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onPopulateMenu(evt:yfiles.input.PopulateMenuEventArgs):void; @@ -22172,21 +22194,21 @@ declare namespace system{ * Since this input mode does not know when the user wants to open a context menu, this method must be called to possibly * cancel the request and, otherwise, update the internal state of this mode. *

    - * @param {yfiles.geometry.Point} [queryLocation=null] The optional location for which the context menu content should be queried. This value will be passed to {@link yfiles.input.ContextMenuInputMode#onPopulateMenu} - * and will ultimately be available in {@link yfiles.input.PopulateMenuEventArgs#queryLocation}. If not specified, the last known mouse location will be used. - * @returns {boolean} + * @param [queryLocation=null] The optional location for which the context menu content should be queried. This value will be passed to {@link #onPopulateMenu} + * and will ultimately be available in {@link #queryLocation}. If not specified, the last known mouse location will be used. + * @returns * @see yfiles.input.ContextMenuInputMode#menuClosed * @see yfiles.input.ContextMenuInputMode#addCloseMenuListener */ shouldOpenMenu(queryLocation?:yfiles.geometry.Point):boolean; /** * Stops the display of the context menu and requests that the context menu is closed. - * @returns {boolean} + * @returns */ tryStop():boolean; /** * Removes the menu from the context and replaces it with the old instance. - * @param {yfiles.input.IInputModeContext} context The context to uninstall this mode from. + * @param context The context to uninstall this mode from. */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -22233,7 +22255,7 @@ declare namespace system{ * will be called, even if one of them sets the {@link yfiles.input.PopulateMenuEventArgs#handled} property to * true. Every handler should query this property and decide carefully what to do. *

    - * @param {function(Object, yfiles.input.PopulateMenuEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ContextMenuInputMode#removePopulateMenuListener */ addPopulateMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateMenuEventArgs)=>void):void; @@ -22244,7 +22266,7 @@ declare namespace system{ * will be called, even if one of them sets the {@link yfiles.input.PopulateMenuEventArgs#handled} property to * true. Every handler should query this property and decide carefully what to do. *

    - * @param {function(Object, yfiles.input.PopulateMenuEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ContextMenuInputMode#addPopulateMenuListener */ removePopulateMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateMenuEventArgs)=>void):void; @@ -22273,7 +22295,7 @@ declare namespace system{ *

    * Custom context menus must be closed in response to this event. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ContextMenuInputMode#menuClosed * @see yfiles.input.ContextMenuInputMode#removeCloseMenuListener */ @@ -22284,7 +22306,7 @@ declare namespace system{ *

    * Custom context menus must be closed in response to this event. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ContextMenuInputMode#menuClosed * @see yfiles.input.ContextMenuInputMode#addCloseMenuListener */ @@ -22322,7 +22344,7 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.DropInputMode#exclusive} by default. *

    - * @class yfiles.input.DropInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface DropInputMode extends Object,yfiles.input.IInputMode{} @@ -22332,16 +22354,15 @@ declare namespace system{ *

    * This instance fires events only if a drag operation carries data of the expected format. *

    - * @param {string} expectedFormat This is a format that is used in {@link yfiles.view.DragDropItem#getData}. + * @param expectedFormat This is a format that is used in {@link #getData}. * @see yfiles.input.DropInputMode#addDragEnteredListener * @see yfiles.input.DropInputMode#addDragDroppedListener - * @constructor */ constructor(expectedFormat:string); /** * Callback that adjusts the effect accordingly. - * @param {yfiles.view.DragEventArgs} evt - * @returns {boolean} + * @param evt + * @returns * @protected */ adjustEffect(evt:yfiles.view.DragEventArgs):boolean; @@ -22351,7 +22372,7 @@ declare namespace system{ cancel():void; /** * Helper method that yields a suitably configured {@link yfiles.input.InputModeEventArgs} for this input mode. - * @returns {yfiles.input.InputModeEventArgs} An input mode event argument that is configured for this instance. + * @returns An input mode event argument that is configured for this instance. * @protected */ createInputModeEventArgs():yfiles.input.InputModeEventArgs; @@ -22360,8 +22381,8 @@ declare namespace system{ *

    * Clients should not call this method as this is handled by the framework. *

    - * @param {yfiles.input.IInputModeContext} context the context to install this mode into - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.DropInputMode#controller} for this mode. + * @param context the context to install this mode into + * @param controller The {@link #controller} for this mode. * @see yfiles.view.CanvasComponent */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -22400,25 +22421,25 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Called once a drag has been dropped on the canvas. - * @param {yfiles.input.InputModeEventArgs} evt + * @param evt * @protected */ onDragDropped(evt:yfiles.input.InputModeEventArgs):void; /** * Called once a drag has entered the canvas. - * @param {yfiles.input.InputModeEventArgs} evt + * @param evt * @protected */ onDragEntered(evt:yfiles.input.InputModeEventArgs):void; /** * Called whenever a drag is over the canvas. - * @param {yfiles.input.InputModeEventArgs} evt + * @param evt * @protected */ onDraggedOver(evt:yfiles.input.InputModeEventArgs):void; /** * Called once a drag has left the canvas. - * @param {yfiles.input.InputModeEventArgs} evt + * @param evt * @protected */ onDragLeft(evt:yfiles.input.InputModeEventArgs):void; @@ -22439,13 +22460,13 @@ declare namespace system{ * It is called prior to the {@link yfiles.input.DropInputMode#onDragEntered}, {@link yfiles.input.DropInputMode#onDraggedOver}, {@link yfiles.input.DropInputMode#onDragDropped} * and {@link yfiles.input.DropInputMode#onDragLeft} methods. *

    - * @param {yfiles.geometry.Point} location The current location of the mouse in world coordinates. + * @param location The current location of the mouse in world coordinates. * @protected */ setDragLocation(location:yfiles.geometry.Point):void; /** * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. - * @returns {boolean} true iff this instance does not {@link yfiles.input.ConcurrencyController#hasMutex own the mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. */ tryStop():boolean; /** @@ -22453,7 +22474,7 @@ declare namespace system{ *

    * Clients should not call this method as this is handled by the framework. *

    - * @param {yfiles.input.IInputModeContext} context the context + * @param context the context */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -22508,7 +22529,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.DropInputMode#removeDragEnteredListener */ addDragEnteredListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22527,7 +22548,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.DropInputMode#addDragEnteredListener */ removeDragEnteredListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22546,7 +22567,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.DropInputMode#removeDragOverListener */ addDragOverListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22565,7 +22586,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.DropInputMode#addDragOverListener */ removeDragOverListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22584,7 +22605,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.DropInputMode#removeDragLeftListener */ addDragLeftListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22603,7 +22624,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.DropInputMode#addDragLeftListener */ removeDragLeftListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22622,7 +22643,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.DropInputMode#removeDragDroppedListener */ addDragDroppedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22641,7 +22662,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.DropInputMode#addDragDroppedListener */ removeDragDroppedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22709,14 +22730,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.ConcurrencyController#exclusive} by default. *

    - * @class yfiles.input.FocusGuardInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface FocusGuardInputMode extends Object,yfiles.input.IInputMode{} export class FocusGuardInputMode { /** * Creates a new instance of this mode. - * @constructor */ constructor(); /** @@ -22735,10 +22755,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.FocusGuardInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -22788,7 +22808,7 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -22800,7 +22820,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -22849,7 +22869,7 @@ declare namespace system{ * This mode is {@link yfiles.input.HandleInputMode#exclusive} by default. *

    * @see yfiles.input.IHandle - * @class yfiles.input.HandleInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface HandleInputMode extends Object,yfiles.input.IInputMode{} @@ -22857,12 +22877,11 @@ declare namespace system{ /** * Creates a new mode with no handles initially. * @see yfiles.input.HandleInputMode#handles - * @constructor */ constructor(); /** * Adds a handle to the collection of handles managed by this instance. - * @param {yfiles.input.IHandle} handle The handle to add. + * @param handle The handle to add. */ addHandle(handle:yfiles.input.IHandle):void; /** @@ -22870,10 +22889,10 @@ declare namespace system{ *

    * The cursor and type are used to initialize the {@link yfiles.input.IHandle} instance. *

    - * @param {yfiles.geometry.IMutablePoint} location The point to use as a handle. - * @param {yfiles.view.Cursor} [cursor=null] The cursor to use. - * @param {yfiles.input.HandleTypes} [type=yfiles.input.HandleTypes.DEFAULT] The type of the handle to create. - * @returns {yfiles.input.IHandle} The handle created. + * @param location The point to use as a handle. + * @param [cursor=null] The cursor to use. + * @param [type=yfiles.input.HandleTypes.DEFAULT] The type of the handle to create. + * @returns The handle created. */ addHandle(location:yfiles.geometry.IMutablePoint,cursor?:yfiles.view.Cursor,type?:yfiles.input.HandleTypes):yfiles.input.IHandle; /** @@ -22882,10 +22901,10 @@ declare namespace system{ * The cursor and type are used to initialize the {@link yfiles.input.IHandle} instance. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.IMutablePoint} options.location The point to use as a handle. - * @param {yfiles.view.Cursor} [options.cursor=null] The cursor to use. - * @param {yfiles.input.HandleTypes} [options.type=yfiles.input.HandleTypes.DEFAULT] The type of the handle to create. - * @returns {yfiles.input.IHandle} The handle created. + * @param options.location The point to use as a handle. + * @param [options.cursor=null] The cursor to use. + * @param [options.type=yfiles.input.HandleTypes.DEFAULT] The type of the handle to create. + * @returns The handle created. */ addHandle(options:{location:yfiles.geometry.IMutablePoint,cursor?:yfiles.view.Cursor,type?:yfiles.input.HandleTypes}):yfiles.input.IHandle; /** @@ -22893,7 +22912,7 @@ declare namespace system{ *

    * This happens when the mouse pointer hovers over a handle. This changes the mouse cursor to the handle's {@link yfiles.input.IHandle#cursor}. *

    - * @param {yfiles.input.IHandle} handle + * @param handle * @protected */ arm(handle:yfiles.input.IHandle):void; @@ -22902,7 +22921,7 @@ declare namespace system{ *

    * This will simulate the user having initialized a drag of the given handle. *

    - * @param {yfiles.input.IHandle} handle The handle to be dragged. + * @param handle The handle to be dragged. */ beginDragging(handle:yfiles.input.IHandle):void; /** @@ -22912,21 +22931,21 @@ declare namespace system{ /** * Creates an {@link yfiles.input.IInputModeContext} for use with the {@link yfiles.input.IHandle} interface for the upcoming drag * operation. - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext}. + * @returns An instance of {@link }. * @protected */ createHandleInputModeContext():yfiles.input.IInputModeContext; /** * Helper method that yields a suitably configured {@link yfiles.input.InputModeEventArgs} for this input mode. - * @returns {yfiles.input.InputModeEventArgs} An input mode event argument that is configured for this instance. + * @returns An input mode event argument that is configured for this instance. * @protected */ createInputModeEventArgs():yfiles.input.InputModeEventArgs; /** * Callback that creates the {@link yfiles.view.Visual} for the given handle. - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.input.IHandle} handle The handle to create a visual representation for. - * @returns {yfiles.view.SvgVisual} The {@link yfiles.view.Visual}. + * @param handle The handle to create a visual representation for. + * @param context + * @returns The {@link }. * @protected */ createVisual(context:yfiles.view.IRenderContext,handle:yfiles.input.IHandle):yfiles.view.SvgVisual; @@ -22943,15 +22962,15 @@ declare namespace system{ *

    * The default implementation compares the manhatten distance of the handles to find the closest handle. *

    - * @param {yfiles.geometry.Point} location The coordinates in the world coordinate system. - * @returns {yfiles.input.IHandle} The closest handle that has been hit or null + * @param location The coordinates in the world coordinate system. + * @returns The closest handle that has been hit or null * @protected */ getClosestHitHandle(location:yfiles.geometry.Point):yfiles.input.IHandle; /** * Finds the closest hit handle for the given world coordinate pair. - * @param {yfiles.geometry.Point} location The coordinates in the world coordinate system. - * @returns {yfiles.input.IHandle} The closest handle that has been hit or null + * @param location The coordinates in the world coordinate system. + * @returns The closest handle that has been hit or null * @protected */ getClosestHitHandleTouch(location:yfiles.geometry.Point):yfiles.input.IHandle; @@ -22960,28 +22979,28 @@ declare namespace system{ *

    * This implementation uses the manhatten distance as a metric to determine if the handle was hit. *

    - * @param {yfiles.input.IHandle} handle The handle to check - * @param {yfiles.geometry.Point} location The view coordinates to check. - * @param {yfiles.geometry.Point} distance The distance of the handle to the location. In the default implementation, this is a tuple representing the x- and + * @param handle The handle to check + * @param location The view coordinates to check. + * @param distance The distance of the handle to the location. In the default implementation, this is a tuple representing the x- and * y-distance of the handle to the location. - * @returns {boolean} Whether the handle has been hit. + * @returns Whether the handle has been hit. * @protected */ handleIsHit(handle:yfiles.input.IHandle,location:yfiles.geometry.Point,distance:yfiles.geometry.Point):boolean; /** * Determines whether a given handle has been visually hit by the touch device at the given world coordinates. - * @param {yfiles.input.IHandle} handle The handle to check - * @param {yfiles.geometry.Point} location The world coordinates to check. - * @param {yfiles.geometry.Point} distance The distance of the handle to the touch location. In the default implementation, this is a tuple representing the x- and + * @param handle The handle to check + * @param location The world coordinates to check. + * @param distance The distance of the handle to the touch location. In the default implementation, this is a tuple representing the x- and * y-distance of the handle to the touch location. - * @returns {boolean} Whether the handle has been hit. + * @returns Whether the handle has been hit. * @protected */ handleIsHitTouch(handle:yfiles.input.IHandle,location:yfiles.geometry.Point,distance:yfiles.geometry.Point):boolean; /** * Installs the visual representation of the handles into the canvas into the {@link yfiles.view.CanvasComponent#inputModeGroup}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.input.ConcurrencyController} controller + * @param context + * @param controller */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** @@ -22991,9 +23010,9 @@ declare namespace system{ invalidate():void; /** * Event recognizer callback used to determine whether the mouse is currently hovering over a handle. - * @param {Object} sender - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} Whether the mouse is hovering over handle. + * @param sender + * @param evt + * @returns Whether the mouse is hovering over handle. * @see yfiles.input.HandleInputMode#getClosestHitHandle * @protected */ @@ -23033,13 +23052,13 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Triggers the {@link yfiles.input.HandleInputMode#addDragCanceledListener DragCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.HandleInputMode#addDragCancelingListener DragCanceling} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceling(evt:yfiles.input.InputModeEventArgs):void; @@ -23048,7 +23067,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.HandleInputMode#addDragFinishedListener DragFinished} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinished(evt:yfiles.input.InputModeEventArgs):void; @@ -23057,7 +23076,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.HandleInputMode#addDragFinishingListener DragFinishing} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinishing(evt:yfiles.input.InputModeEventArgs):void; @@ -23066,7 +23085,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.HandleInputMode#addDraggedListener Dragged} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.InputModeEventArgs):void; @@ -23075,19 +23094,19 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.HandleInputMode#addDraggingListener Dragging} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.HandleInputMode#addDragStartedListener DragStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarted(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.HandleInputMode#addDragStartingListener DragStarting} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarting(evt:yfiles.input.InputModeEventArgs):void; @@ -23104,17 +23123,17 @@ declare namespace system{ onStopped():void; /** * Removes a handle from the collection of handles managed by this instance. - * @param {yfiles.input.IHandle} handle The handle to remove. + * @param handle The handle to remove. */ removeHandle(handle:yfiles.input.IHandle):void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** * Removes the {@link yfiles.view.ICanvasObject} that displays the handles from the canvas. - * @param {yfiles.input.IInputModeContext} context + * @param context */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -23588,97 +23607,97 @@ declare namespace system{ affectedItems:yfiles.collections.IEnumerable; /** * Adds the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragFinishingListener */ addDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragFinishingListener */ removeDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragFinishedListener */ addDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragFinishedListener */ removeDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragStartingListener */ addDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragStartingListener */ removeDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragStartedListener */ addDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragStartedListener */ removeDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragCancelingListener */ addDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragCancelingListener */ removeDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -23708,8 +23727,8 @@ declare namespace system{ * {@link yfiles.input.IDragHandler#handleMove}. Implementations should reset the position of the items they modify to their * initial state. Alternatively to this method the {@link yfiles.input.IDragHandler#dragFinished} method might be called. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Point} originalLocation The value of the coordinate of the {@link yfiles.input.IDragHandler#location} property at the time of {@link yfiles.input.IDragHandler#initializeDrag}. + * @param context The context to retrieve information about the drag from. + * @param originalLocation The value of the coordinate of the {@link #location} property at the time of {@link #initializeDrag}. * @abstract */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; @@ -23720,11 +23739,11 @@ declare namespace system{ * {@link yfiles.input.IDragHandler#handleMove}. Alternatively to this method the {@link yfiles.input.IDragHandler#cancelDrag} method might * be called. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Point} newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.IDragHandler#location} may or may not be modified to reflect the new value. This is the same value as delivered in the last - * invocation of {@link yfiles.input.IDragHandler#handleMove} - * @param {yfiles.geometry.Point} originalLocation The value of the {@link yfiles.input.IDragHandler#location} property at the time of {@link yfiles.input.IDragHandler#initializeDrag}. + * @param context The context to retrieve information about the drag from. + * @param newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #location} may or may not be modified to reflect the new value. This is the same value as delivered in the last + * invocation of {@link #handleMove} + * @param originalLocation The value of the {@link #location} property at the time of {@link #initializeDrag}. * @abstract */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; @@ -23735,10 +23754,10 @@ declare namespace system{ * call will be followed by either one {@link yfiles.input.IDragHandler#dragFinished} or one {@link yfiles.input.IDragHandler#cancelDrag} * call. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Point} originalLocation The value of the {@link yfiles.input.IDragHandler#location} property at the time of {@link yfiles.input.IDragHandler#initializeDrag}. - * @param {yfiles.geometry.Point} newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.IDragHandler#location} may or may not be modified to reflect the new value. + * @param context The context to retrieve information about the drag from. + * @param originalLocation The value of the {@link #location} property at the time of {@link #initializeDrag}. + * @param newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #location} may or may not be modified to reflect the new value. * @abstract */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; @@ -23748,7 +23767,7 @@ declare namespace system{ * This call will be followed by one or more calls to {@link yfiles.input.IDragHandler#handleMove}, and a final {@link yfiles.input.IDragHandler#dragFinished} * or {@link yfiles.input.IDragHandler#cancelDrag}. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. + * @param context The context to retrieve information about the drag from. * @abstract */ initializeDrag(context:yfiles.input.IInputModeContext):void; @@ -23794,12 +23813,12 @@ declare namespace system{ export interface IGridConstraintProvider extends Object{ /** * Performs the actual snapping to grid coordinates. - * @param {yfiles.input.IInputModeContext} context The context in which the snapping should occur. - * @param {T} item The item of which the coordinates should be snapped. - * @param {yfiles.geometry.IMutablePoint} location The coordinates to snap. - * @param {yfiles.input.SnapPolicy} xSnapPolicy The policy for the x coordinate. - * @param {yfiles.input.SnapPolicy} ySnapPolicy The policy for the y coordinate. - * @returns {boolean} Whether the point has been snapped. + * @param context The context in which the snapping should occur. + * @param item The item of which the coordinates should be snapped. + * @param location The coordinates to snap. + * @param xSnapPolicy The policy for the x coordinate. + * @param ySnapPolicy The policy for the y coordinate. + * @returns Whether the point has been snapped. * @abstract */ snapToGrid(context:yfiles.input.IInputModeContext,item:T,location:yfiles.geometry.IMutablePoint,xSnapPolicy:yfiles.input.SnapPolicy,ySnapPolicy:yfiles.input.SnapPolicy):boolean; @@ -23829,7 +23848,7 @@ declare namespace system{ /** * A simple integer based implementation of {@link yfiles.input.IGridConstraintProvider.}. * Type parameter T: The type of the items. - * @class yfiles.input.GridConstraintProvider. + * @class * @implements {yfiles.input.IGridConstraintProvider.} * @template T */ @@ -23837,31 +23856,28 @@ declare namespace system{ export class GridConstraintProvider { /** * Creates a new instance using the given grid info. - * @param {yfiles.view.GridInfo} gridInfo The grid info object. - * @constructor + * @param gridInfo The grid info object. */ constructor(gridInfo:yfiles.view.GridInfo); /** * Creates a new instance using the given grid specification. - * @param {number} gridWidth Width of the grid. - * @param {number} gridHeight Height of the grid. - * @constructor + * @param gridWidth Width of the grid. + * @param gridHeight Height of the grid. */ constructor(gridWidth:number,gridHeight:number); /** * Creates a new instance using the given grid distances. - * @param {number} gridSize - * @constructor + * @param gridSize */ constructor(gridSize:number); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {T} item - * @param {yfiles.geometry.IMutablePoint} location - * @param {yfiles.input.SnapPolicy} xSnapPolicy - * @param {yfiles.input.SnapPolicy} ySnapPolicy - * @returns {boolean} + * @param context + * @param item + * @param location + * @param xSnapPolicy + * @param ySnapPolicy + * @returns */ snapToGrid(context:yfiles.input.IInputModeContext,item:T,location:yfiles.geometry.IMutablePoint,xSnapPolicy:yfiles.input.SnapPolicy,ySnapPolicy:yfiles.input.SnapPolicy):boolean; /** @@ -24121,8 +24137,8 @@ declare namespace system{ export interface IHandleProvider extends Object{ /** * Returns a collection of zero or more {@link yfiles.input.IHandle} implementations that are associated with this instance. - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.collections.IEnumerable.} A collection of handles. + * @param context + * @returns A collection of handles. * @abstract */ getHandles(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; @@ -24148,8 +24164,8 @@ declare namespace system{ * Client code will use this method to query the available positions and may then call for each of the positions the {@link yfiles.input.IReshapeHandleProvider#getHandle} * method to retrieve an implementation. *

    - * @param {yfiles.input.IInputModeContext} context The context for which the handles are queried. - * @returns {yfiles.input.HandlePositions} A bitwise combination of all positions the {@link yfiles.input.IReshapeHandleProvider#getHandle} method can be queried for. + * @param context The context for which the handles are queried. + * @returns A bitwise combination of all positions the {@link #getHandle} method can be queried for. * @abstract */ getAvailableHandles(context:yfiles.input.IInputModeContext):yfiles.input.HandlePositions; @@ -24159,9 +24175,9 @@ declare namespace system{ * This method may be called for each possible single position contained in the set as returned by * {@link yfiles.input.IReshapeHandleProvider#getAvailableHandles}. *

    - * @param {yfiles.input.IInputModeContext} context The context for which the handles are queried. - * @param {yfiles.input.HandlePositions} position The single position a handle implementation should be returned for. - * @returns {yfiles.input.IHandle} An implementation of {@link yfiles.input.IHandle} for the given position. + * @param context The context for which the handles are queried. + * @param position The single position a handle implementation should be returned for. + * @returns An implementation of {@link } for the given position. * @abstract */ getHandle(context:yfiles.input.IInputModeContext,position:yfiles.input.HandlePositions):yfiles.input.IHandle; @@ -24210,10 +24226,10 @@ declare namespace system{ *
    * Implementations may hold a reference to the context instance and use it while they are being installed. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ConcurrencyController} for this mode. + * @param controller The {@link } for this mode. * @see yfiles.input.IInputMode#uninstall * @abstract */ @@ -24224,7 +24240,7 @@ declare namespace system{ * This should stop the current edit, if one is in progress and possibly commit all of the changes. If stopping is not * possible, this method can return false *

    - * @returns {boolean} true if and only if the editing has been stopped or there was no edit in progress + * @returns true if and only if the editing has been stopped or there was no edit in progress * @see yfiles.input.IInputMode#cancel * @abstract */ @@ -24235,7 +24251,7 @@ declare namespace system{ * This code should clean up all changes made to the canvas in the {@link yfiles.input.IInputMode#install} method. After a mode has * been uninstalled it can be installed again into the same or another canvas. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. * @abstract */ @@ -24280,7 +24296,7 @@ declare namespace system{ */ export interface IInputModeContext extends Object,yfiles.view.ICanvasContext{ /** - * Tries to call {@link yfiles.graph.IGraph#invalidateDisplays} on the {@link yfiles.input.IInputModeContext#graph graph} from the {@link yfiles.input.IInputModeContext}. + * Tries to call {@link yfiles.graph.IGraph#invalidateDisplays} on the {@link yfiles.input.IInputModeContext#graph graph} obtains from the {@link yfiles.input.IInputModeContext}. *

    * If the graph instance cannot be found, {@link yfiles.view.CanvasComponent#invalidate} will be called instead. *

    @@ -24296,12 +24312,11 @@ declare namespace system{ */ parentInputMode:yfiles.input.IInputMode; /** - * Tries to retrieve an {@link yfiles.graph.IGraph} instance from the {@link yfiles.input.IInputModeContext}. + * Tries to retrieve an {@link yfiles.graph.IGraph} instance from an {@link yfiles.input.IInputModeContext}. *

    * This will use the {@link yfiles.graph.ILookup} and if this yields nothing, it will use the {@link yfiles.graph.ILookup} of the {@link yfiles.view.ICanvasContext#canvasComponent} or * finally test if it is a {@link yfiles.view.GraphComponent} to obtain the graph from. *

    - * @returns Return the graph or null. * @type {yfiles.graph.IGraph} */ graph?:yfiles.graph.IGraph; @@ -24310,55 +24325,55 @@ declare namespace system{ /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided parent mode, parent context, and * lookup decoration. - * @param {yfiles.input.IInputMode} parent - * @param {yfiles.input.IInputModeContext} parentContext - * @param {function(Object, yfiles.lang.Class): Object} lookupCallback - * @returns {yfiles.input.IInputModeContext} + * @param parent + * @param parentContext + * @param lookupCallback + * @returns * @static */ createInputModeContext?(parent:yfiles.input.IInputMode,parentContext:yfiles.input.IInputModeContext,lookupCallback:(subject:Object,type:yfiles.lang.Class)=>Object):yfiles.input.IInputModeContext; /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided parent mode and lookup decoration. - * @param {yfiles.input.IInputMode} parent - * @param {function(Object, yfiles.lang.Class): Object} lookupCallback - * @returns {yfiles.input.IInputModeContext} + * @param parent + * @param lookupCallback + * @returns * @static */ createInputModeContext?(parent:yfiles.input.IInputMode,lookupCallback:(subject:Object,type:yfiles.lang.Class)=>Object):yfiles.input.IInputModeContext; /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided values. - * @param {yfiles.view.CanvasComponent} canvas The {@link yfiles.view.CanvasComponent} to use, may not be null. - * @param {yfiles.input.IInputMode} [parent=null] The mode to set as the parent. This may be null for the canvas' context. - * @param {yfiles.graph.ILookup} [lookup=null] The lookup to use. - * @returns {yfiles.input.IInputModeContext} + * @param canvas The {@link } to use, may not be null. + * @param [parent=null] The mode to set as the parent. This may be null for the canvas' context. + * @param [lookup=null] The lookup to use. + * @returns * @static */ createInputModeContext?(canvas:yfiles.view.CanvasComponent,parent?:yfiles.input.IInputMode,lookup?:yfiles.graph.ILookup):yfiles.input.IInputModeContext; /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided values. * @param {Object} options The parameters to pass. - * @param {yfiles.view.CanvasComponent} options.canvas The {@link yfiles.view.CanvasComponent} to use, may not be null. - * @param {yfiles.input.IInputMode} [options.parent=null] The mode to set as the parent. This may be null for the canvas' context. - * @param {yfiles.graph.ILookup} [options.lookup=null] The lookup to use. - * @returns {yfiles.input.IInputModeContext} + * @param options.canvas The {@link } to use, may not be null. + * @param [options.parent=null] The mode to set as the parent. This may be null for the canvas' context. + * @param [options.lookup=null] The lookup to use. + * @returns * @static */ createInputModeContext?(options:{canvas:yfiles.view.CanvasComponent,parent?:yfiles.input.IInputMode,lookup?:yfiles.graph.ILookup}):yfiles.input.IInputModeContext; /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided parent mode, parent context, and * lookup decoration. - * @param {yfiles.input.IInputMode} parent - * @param {yfiles.input.IInputModeContext} parentContext - * @param {yfiles.graph.ILookup} lookup - * @returns {yfiles.input.IInputModeContext} + * @param parent + * @param parentContext + * @param lookup + * @returns * @static */ createInputModeContext?(parent:yfiles.input.IInputMode,parentContext:yfiles.input.IInputModeContext,lookup:yfiles.graph.ILookup):yfiles.input.IInputModeContext; /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided parent mode and lookup decoration. - * @param {yfiles.input.IInputMode} parent - * @param {yfiles.graph.ILookup} [lookup=null] - * @returns {yfiles.input.IInputModeContext} + * @param parent + * @param [lookup=null] + * @returns * @static */ createInputModeContext?(parent:yfiles.input.IInputMode,lookup?:yfiles.graph.ILookup):yfiles.input.IInputModeContext; @@ -24388,7 +24403,7 @@ declare namespace system{ export interface IModelItemCollector extends Object{ /** * Adds a model item to this collector instance. - * @param {yfiles.graph.IModelItem} item The model item to add. + * @param item The model item to add. * @abstract */ add(item:yfiles.graph.IModelItem):void; @@ -24447,8 +24462,8 @@ declare namespace system{ * of {@link yfiles.input.IReshapeHandler#handleReshape}. Implementations should reset the bounds of the items they modify to their * initial state. Alternatively to this method the {@link yfiles.input.IReshapeHandler#reshapeFinished} method might be called. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the reshaping from. - * @param {yfiles.geometry.Rect} originalBounds The value of the coordinate of the {@link yfiles.input.IReshapeHandler#bounds} property at the time of {@link yfiles.input.IReshapeHandler#initializeReshape}. + * @param context The context to retrieve information about the reshaping from. + * @param originalBounds The value of the coordinate of the {@link #bounds} property at the time of {@link #initializeReshape}. * @abstract */ cancelReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect):void; @@ -24459,10 +24474,10 @@ declare namespace system{ * final call will be followed by either one {@link yfiles.input.IReshapeHandler#reshapeFinished} or one {@link yfiles.input.IReshapeHandler#cancelReshape} * call. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the reshaping from. - * @param {yfiles.geometry.Rect} originalBounds The value of the {@link yfiles.input.IReshapeHandler#bounds} property at the time of {@link yfiles.input.IReshapeHandler#initializeReshape}. - * @param {yfiles.geometry.Rect} newBounds The coordinates of the bounds in the world coordinate system that the client wants the shape to be at. Depending on the - * implementation the {@link yfiles.input.IReshapeHandler#bounds} may or may not be modified to reflect the new value. + * @param context The context to retrieve information about the reshaping from. + * @param originalBounds The value of the {@link #bounds} property at the time of {@link #initializeReshape}. + * @param newBounds The coordinates of the bounds in the world coordinate system that the client wants the shape to be at. Depending on the + * implementation the {@link #bounds} may or may not be modified to reflect the new value. * @abstract */ handleReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; @@ -24472,7 +24487,7 @@ declare namespace system{ * This call will be followed by one or more calls to {@link yfiles.input.IReshapeHandler#handleReshape}, and a final {@link yfiles.input.IReshapeHandler#reshapeFinished} * or {@link yfiles.input.IReshapeHandler#cancelReshape}. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. + * @param context The context to retrieve information about the drag from. * @abstract */ initializeReshape(context:yfiles.input.IInputModeContext):void; @@ -24483,11 +24498,11 @@ declare namespace system{ * of {@link yfiles.input.IReshapeHandler#handleReshape}. Alternatively to this method the {@link yfiles.input.IReshapeHandler#cancelReshape} * method might be called. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Rect} newBounds The coordinates of the bounds in the world coordinate system that the client wants the shape to be at. Depending on the - * implementation the {@link yfiles.input.IReshapeHandler#bounds} may or may not be modified to reflect the new value. This is the same value as delivered in the last - * invocation of {@link yfiles.input.IReshapeHandler#handleReshape} - * @param {yfiles.geometry.Rect} originalBounds The value of the coordinate of the {@link yfiles.input.IReshapeHandler#bounds} property at the time of {@link yfiles.input.IReshapeHandler#initializeReshape}. + * @param context The context to retrieve information about the drag from. + * @param newBounds The coordinates of the bounds in the world coordinate system that the client wants the shape to be at. Depending on the + * implementation the {@link #bounds} may or may not be modified to reflect the new value. This is the same value as delivered in the last + * invocation of {@link #handleReshape} + * @param originalBounds The value of the coordinate of the {@link #bounds} property at the time of {@link #initializeReshape}. * @abstract */ reshapeFinished(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; @@ -24507,15 +24522,14 @@ declare namespace system{ }; /** * Event argument base class that is used by events that are triggered by {@link yfiles.input.IInputMode} implementations - * @class yfiles.input.InputModeEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface InputModeEventArgs extends yfiles.lang.EventArgs{} export class InputModeEventArgs { /** * Initializes a new instance of the {@link yfiles.input.InputModeEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context to initialize the {@link yfiles.input.InputModeEventArgs#context} property with. - * @constructor + * @param context The context to initialize the {@link #context} property with. */ constructor(context:yfiles.input.IInputModeContext); /** @@ -24530,7 +24544,7 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.KeyboardInputMode#exclusive} by default. *

    - * @class yfiles.input.KeyboardInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface KeyboardInputMode extends Object,yfiles.input.IInputMode{} @@ -24541,10 +24555,10 @@ declare namespace system{ *

    * The command will not be allowed to execute if this mode is {@link yfiles.input.KeyboardInputMode#enabled disabled} or {@link yfiles.input.ConcurrencyController#active inactive}. *

    - * @param {yfiles.input.ICommand} command The command to register handlers with. - * @param {function(yfiles.input.ICommand, Object, Object): boolean} [execute=null] The handler for the execution; a handler that will do nothing if omitted. - * @param {function(yfiles.input.ICommand, Object, Object): boolean} [canExecute=null] The handler that determines executability; a handler that is always enabled if omitted. - * @returns {yfiles.input.KeyboardInputModeBinding} A token for the newly created command binding that can used to later {@link yfiles.input.KeyboardInputModeBinding#remove remove} this binding from this instance again. + * @param command The command to register handlers with. + * @param [execute=null] The handler for the execution; a handler that will do nothing if omitted. + * @param [canExecute=null] The handler that determines executability; a handler that is always enabled if omitted. + * @returns A token for the newly created command binding that can used to later {@link #remove remove} this binding from this instance again. */ addCommandBinding(command:yfiles.input.ICommand,execute?:(command:yfiles.input.ICommand,parameter:Object,source:Object)=>boolean,canExecute?:(command:yfiles.input.ICommand,parameter:Object,source:Object)=>boolean):yfiles.input.KeyboardInputModeBinding; /** @@ -24553,10 +24567,10 @@ declare namespace system{ * The command will not be allowed to execute if this mode is {@link yfiles.input.KeyboardInputMode#enabled disabled} or {@link yfiles.input.ConcurrencyController#active inactive}. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.input.ICommand} options.command The command to register handlers with. - * @param {function(yfiles.input.ICommand, Object, Object): boolean} [options.execute=null] The handler for the execution; a handler that will do nothing if omitted. - * @param {function(yfiles.input.ICommand, Object, Object): boolean} [options.canExecute=null] The handler that determines executability; a handler that is always enabled if omitted. - * @returns {yfiles.input.KeyboardInputModeBinding} A token for the newly created command binding that can used to later {@link yfiles.input.KeyboardInputModeBinding#remove remove} this binding from this instance again. + * @param options.command The command to register handlers with. + * @param [options.execute=null] The handler for the execution; a handler that will do nothing if omitted. + * @param [options.canExecute=null] The handler that determines executability; a handler that is always enabled if omitted. + * @returns A token for the newly created command binding that can used to later {@link #remove remove} this binding from this instance again. */ addCommandBinding(options:{command:yfiles.input.ICommand,execute?:(command:yfiles.input.ICommand,parameter:Object,source:Object)=>boolean,canExecute?:(command:yfiles.input.ICommand,parameter:Object,source:Object)=>boolean}):yfiles.input.KeyboardInputModeBinding; /** @@ -24564,20 +24578,20 @@ declare namespace system{ *

    * Using this registration method, the command will not be allowed to execute if this mode is {@link yfiles.input.KeyboardInputMode#enabled disabled} or {@link yfiles.input.ConcurrencyController#active inactive}. *

    - * @param {yfiles.view.Key} key The key constant that should be recognized. - * @param {yfiles.view.ModifierKeys} modifiers The modifiers that should be recognized when the key is pressed. - * @param {yfiles.input.ICommand} command The command to execute. - * @param {Object} [commandParameter=null] The command parameter to use for the {@link yfiles.input.ICommand#execute execution}; null if omitted. - * @returns {yfiles.input.KeyboardInputModeBinding} A token for the newly created command binding that can used to later {@link yfiles.input.KeyboardInputModeBinding#remove remove} this binding from this instance again. + * @param key The key constant that should be recognized. + * @param modifiers The modifiers that should be recognized when the key is pressed. + * @param command The command to execute. + * @param [commandParameter=null] The command parameter to use for the {@link #execute execution}; null if omitted. + * @returns A token for the newly created command binding that can used to later {@link #remove remove} this binding from this instance again. */ addKeyBinding(key:yfiles.view.Key,modifiers:yfiles.view.ModifierKeys,command:yfiles.input.ICommand,commandParameter?:Object):yfiles.input.KeyboardInputModeBinding; /** * Adds a given handler to this instance that will be triggered if the event recognizer recognizes a {@link yfiles.view.KeyEventArgs key event} that has * been triggered by the {@link yfiles.view.CanvasComponent}. - * @param {function(Object, yfiles.lang.EventArgs): boolean} recognizer An event recognizer that will be fed with all key events. - * @param {yfiles.input.ICommand} command The command to invoke if the recognizer matches a key event. - * @param {Object} [commandParameter=null] The optional parameter to provide to the command. - * @returns {yfiles.input.KeyboardInputModeBinding} The newly constructed binding on which {@link yfiles.input.KeyboardInputModeBinding#remove} can be called to remove the + * @param recognizer An event recognizer that will be fed with all key events. + * @param command The command to invoke if the recognizer matches a key event. + * @param [commandParameter=null] The optional parameter to provide to the command. + * @returns The newly constructed binding on which {@link #remove} can be called to remove the * resulting binding from this instance. */ addRecognizerBinding(recognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean,command:yfiles.input.ICommand,commandParameter?:Object):yfiles.input.KeyboardInputModeBinding; @@ -24597,10 +24611,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.KeyboardInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -24653,16 +24667,16 @@ declare namespace system{ /** * Removes all previously registered commands from this instance. *

    - * This effectively turn disables the command for the instance managed by this mode. + * This effectively disables the command for the instance managed by this mode. *

    - * @param {yfiles.input.ICommand} command The command to remove from all registered bindings. + * @param command The command to remove from all registered bindings. * @see yfiles.input.KeyboardInputMode#addKeyBinding * @see yfiles.input.KeyboardInputMode#addRecognizerBinding */ removeCommand(command:yfiles.input.ICommand):void; /** * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. - * @returns {boolean} true iff this instance does not {@link yfiles.input.ConcurrencyController#hasMutex own the mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. */ tryStop():boolean; /** @@ -24674,7 +24688,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -24725,7 +24739,7 @@ declare namespace system{ * {@link yfiles.input.KeyboardInputMode#addRecognizerBinding}. Removing the instances is done via the instance method {@link yfiles.input.KeyboardInputModeBinding#remove} * of this type. *

    - * @class yfiles.input.KeyboardInputModeBinding + * @class * @final */ export interface KeyboardInputModeBinding extends Object{} @@ -24752,14 +24766,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.MarqueeSelectionInputMode#exclusive} by default. *

    - * @class yfiles.input.MarqueeSelectionInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface MarqueeSelectionInputMode extends Object,yfiles.input.IInputMode{} export class MarqueeSelectionInputMode { /** * Creates a new instance of the marquee selection mode. - * @constructor */ constructor(); /** @@ -24768,7 +24781,7 @@ declare namespace system{ cancel():void; /** * Helper method that yields a suitably configured {@link yfiles.input.InputModeEventArgs} for this input mode. - * @returns {yfiles.input.MarqueeSelectionEventArgs} An input mode event argument that is configured for this instance. + * @returns An input mode event argument that is configured for this instance. * @protected */ createInputModeEventArgs():yfiles.input.MarqueeSelectionEventArgs; @@ -24784,10 +24797,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.MarqueeSelectionInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -24827,14 +24840,14 @@ declare namespace system{ /** * Triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragCanceledListener DragCanceled} * event. - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.MarqueeSelectionEventArgs):void; /** * Triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragCancelingListener DragCanceling} * event. - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceling(evt:yfiles.input.MarqueeSelectionEventArgs):void; @@ -24844,7 +24857,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragFinishedListener DragFinished} * event. *

    - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinished(evt:yfiles.input.MarqueeSelectionEventArgs):void; @@ -24854,7 +24867,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragFinishingListener DragFinishing} * event. *

    - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinishing(evt:yfiles.input.MarqueeSelectionEventArgs):void; @@ -24864,7 +24877,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDraggedListener Dragged} * event. *

    - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.MarqueeSelectionEventArgs):void; @@ -24874,21 +24887,21 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDraggingListener Dragging} * event. *

    - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.MarqueeSelectionEventArgs):void; /** * Triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragStartedListener DragStarted} * event. - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarted(evt:yfiles.input.MarqueeSelectionEventArgs):void; /** * Triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragStartingListener DragStarting} * event. - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarting(evt:yfiles.input.MarqueeSelectionEventArgs):void; @@ -24905,7 +24918,7 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -24917,7 +24930,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -25042,97 +25055,97 @@ declare namespace system{ releasedRecognizerTouch:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragCancelingListener */ addDragCancelingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragCancelingListener */ removeDragCancelingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragFinishingListener */ addDragFinishingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragFinishingListener */ removeDragFinishingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragFinished event that occurs the drag has been finished. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragFinishedListener */ addDragFinishedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragFinished event that occurs the drag has been finished. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragFinishedListener */ removeDragFinishedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragStartingListener */ addDragStartingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragStartingListener */ removeDragStartingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragStartedListener */ addDragStartedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragStartedListener */ removeDragStartedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; @@ -25140,7 +25153,7 @@ declare namespace system{ } /** * Event arguments used by {@link yfiles.input.MarqueeSelectionInputMode}. - * @class yfiles.input.MarqueeSelectionEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface MarqueeSelectionEventArgs extends yfiles.input.InputModeEventArgs{} @@ -25156,16 +25169,15 @@ declare namespace system{ * Event argument that can be used to query the text to display when the mouse hovers over the given point in world * coordinate space. * @see yfiles.input.MouseHoverInputMode - * @class yfiles.input.ToolTipQueryEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface ToolTipQueryEventArgs extends yfiles.input.InputModeEventArgs{} export class ToolTipQueryEventArgs { /** * Initializes a new instance of the {@link yfiles.input.ToolTipQueryEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context of the query. - * @param {yfiles.geometry.Point} queryLocation The query location. - * @constructor + * @param context The context of the query. + * @param queryLocation The query location. */ constructor(context:yfiles.input.IInputModeContext,queryLocation:yfiles.geometry.Point); /** @@ -25176,6 +25188,9 @@ declare namespace system{ /** * Gets or sets the tool tip content to use. *

    + * The content can be either a string or any HTML element. + *

    + *

    * Setting this property will set the {@link yfiles.input.ToolTipQueryEventArgs#handled} property to true. *

    * @type {Object} @@ -25202,21 +25217,19 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.MouseHoverInputMode#exclusive} by default. *

    - * @class yfiles.input.MouseHoverInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface MouseHoverInputMode extends Object,yfiles.input.IInputMode{} export class MouseHoverInputMode { /** * Creates a new instance using the provided {@link yfiles.input.MouseHoverInputMode#toolTip} and query callback. - * @param {yfiles.view.ToolTip} toolTip - * @param {function(Object, yfiles.input.ToolTipQueryEventArgs): void} textProvider - * @constructor + * @param toolTip + * @param textProvider */ constructor(toolTip:yfiles.view.ToolTip,textProvider:(sender:Object,evt:yfiles.input.ToolTipQueryEventArgs)=>void); /** * Creates a new instance with default values. - * @constructor */ constructor(); /** @@ -25225,8 +25238,8 @@ declare namespace system{ * This default implementation of this method moves the tooltip into the visible area if it extends beyond the document * bounds. *

    - * @param {yfiles.geometry.Point} originalPosition The calculated tooltip position relative to the document root - * @returns {yfiles.geometry.Point} The adjusted tooltip location + * @param originalPosition The calculated tooltip position relative to the document root + * @returns The adjusted tooltip location * @see yfiles.input.MouseHoverInputMode#getToolTipLocation * @protected */ @@ -25238,20 +25251,20 @@ declare namespace system{ /** * Creates an {@link yfiles.input.IInputModeContext} for use with the {@link yfiles.input.MouseHoverInputMode#addQueryToolTipListener QueryToolTip} * event for the upcoming text query operation. - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext}. + * @returns An instance of {@link }. * @protected */ createHoverInputModeContext():yfiles.input.IInputModeContext; /** * Factory method that creates the {@link yfiles.input.MouseHoverInputMode#toolTip}. - * @returns {yfiles.view.ToolTip} A simple {@link yfiles.input.MouseHoverInputMode#toolTip}. + * @returns A simple {@link #toolTip}. * @protected */ createToolTip():yfiles.view.ToolTip; /** * Callback method that provides a text for the given location or null. - * @param {yfiles.geometry.Point} location The location to find a text for. - * @returns {Object} A string or null to indicate that no tool tip should be shown. + * @param location The location to find a text for. + * @returns A string or null to indicate that no tool tip should be shown. * @see yfiles.input.MouseHoverInputMode#addQueryToolTipListener * @see yfiles.input.MouseHoverInputMode#createHoverInputModeContext * @protected @@ -25262,8 +25275,8 @@ declare namespace system{ *

    * This method adds the {@link yfiles.input.MouseHoverInputMode#toolTipLocationOffset} after converting the given location to view coordinates. *

    - * @param {yfiles.geometry.Point} location The position in world coordinates. - * @returns {yfiles.geometry.Point} The position in view coordinates. + * @param location The position in world coordinates. + * @returns The position in view coordinates. * @see yfiles.input.MouseHoverInputMode#toolTipLocationOffset * @protected */ @@ -25284,10 +25297,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.MouseHoverInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -25331,7 +25344,7 @@ declare namespace system{ onHide():void; /** * Raises the {@link yfiles.input.MouseHoverInputMode#addQueryToolTipListener QueryToolTip} event. - * @param {yfiles.input.ToolTipQueryEventArgs} evt The {@link yfiles.input.ToolTipQueryEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onQueryToolTip(evt:yfiles.input.ToolTipQueryEventArgs):void; @@ -25341,7 +25354,7 @@ declare namespace system{ * This method will call {@link yfiles.input.MouseHoverInputMode#getToolTipContent} to query the content and will display the {@link yfiles.input.MouseHoverInputMode#toolTip} at * the location returned by {@link yfiles.input.MouseHoverInputMode#getToolTipLocation} if the content is not null. *

    - * @param {yfiles.geometry.Point} location + * @param location * @protected */ onShow(location:yfiles.geometry.Point):void; @@ -25358,12 +25371,12 @@ declare namespace system{ onStopped():void; /** * Immediately shows the tool tip at the given location. - * @param {yfiles.geometry.Point} location The location in the world coordinate system. + * @param location The location in the world coordinate system. */ show(location:yfiles.geometry.Point):void; /** * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. - * @returns {boolean} true iff this instance does not {@link yfiles.input.ConcurrencyController#hasMutex own the mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. */ tryStop():boolean; /** @@ -25375,7 +25388,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -25459,7 +25472,14 @@ declare namespace system{ /** * Gets or sets the delay time before showing the tool tip. *

    - * The default value is 1 second + * The default is + *

    + *
    +       * 1
    +       * 
    + * + *

    + * second. *

    * @default '00:00:01.0' * @type {yfiles.lang.TimeSpan} @@ -25485,7 +25505,7 @@ declare namespace system{ *

    * Handlers should set the {@link yfiles.input.ToolTipQueryEventArgs#toolTip} property or set/respect the {@link yfiles.input.ToolTipQueryEventArgs#handled} property accordingly. *

    - * @param {function(Object, yfiles.input.ToolTipQueryEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MouseHoverInputMode#removeQueryToolTipListener */ addQueryToolTipListener(listener:(sender:Object,evt:yfiles.input.ToolTipQueryEventArgs)=>void):void; @@ -25495,7 +25515,7 @@ declare namespace system{ *

    * Handlers should set the {@link yfiles.input.ToolTipQueryEventArgs#toolTip} property or set/respect the {@link yfiles.input.ToolTipQueryEventArgs#handled} property accordingly. *

    - * @param {function(Object, yfiles.input.ToolTipQueryEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MouseHoverInputMode#addQueryToolTipListener */ removeQueryToolTipListener(listener:(sender:Object,evt:yfiles.input.ToolTipQueryEventArgs)=>void):void; @@ -25510,14 +25530,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.MoveInputMode#exclusive} by default. *

    - * @class yfiles.input.MoveInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface MoveInputMode extends Object,yfiles.input.IInputMode{} export class MoveInputMode { /** * Initializes a new instance of the {@link yfiles.input.MoveInputMode} class. - * @constructor */ constructor(); /** @@ -25540,7 +25559,7 @@ declare namespace system{ /** * Creates an {@link yfiles.input.IInputModeContext} for use with the {@link yfiles.input.IPositionHandler} interface for the upcoming drag * operation. - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext}. + * @returns An instance of {@link }. * @protected */ createPositionHandlerInputModeContext():yfiles.input.IInputModeContext; @@ -25557,7 +25576,7 @@ declare namespace system{ *

    * Subsequent moves of input devices will behave as if the dragging has been successfully initiated at location. *

    - * @param {yfiles.geometry.Point} location The location where the drag had been initialized. + * @param location The location where the drag had been initialized. */ doStartDrag(location:yfiles.geometry.Point):void; /** @@ -25572,10 +25591,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.MoveInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -25584,8 +25603,8 @@ declare namespace system{ *

    * This implementation delegates to the {@link yfiles.input.MoveInputMode#hitTestable}. During this callback it is possible to reset or reconfigure the {@link yfiles.input.MoveInputMode#positionHandler}. *

    - * @param {yfiles.geometry.Point} location The location in the world coordinate system. - * @returns {boolean} true if at the given location it is valid to start the move gesture; otherwise, false. + * @param location The location in the world coordinate system. + * @returns true if at the given location it is valid to start the move gesture; otherwise, false. * @protected */ isValidStartLocation(location:yfiles.geometry.Point):boolean; @@ -25624,13 +25643,13 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Triggers the {@link yfiles.input.MoveInputMode#addDragCanceledListener DragCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveInputMode#addDragCancelingListener DragCanceling} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceling(evt:yfiles.input.InputModeEventArgs):void; @@ -25639,7 +25658,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.MoveInputMode#addDragFinishedListener DragFinished} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinished(evt:yfiles.input.InputModeEventArgs):void; @@ -25648,7 +25667,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.MoveInputMode#addDragFinishingListener DragFinishing} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinishing(evt:yfiles.input.InputModeEventArgs):void; @@ -25657,7 +25676,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.MoveInputMode#addDraggedListener Dragged} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.InputModeEventArgs):void; @@ -25666,25 +25685,25 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.MoveInputMode#addDraggingListener Dragging} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveInputMode#addDragStartedListener DragStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarted(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveInputMode#addDragStartingListener DragStarting} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarting(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.MoveInputMode#addQueryPositionHandlerListener QueryPositionHandler} event. - * @param {yfiles.input.QueryPositionHandlerEventArgs} evt The {@link yfiles.input.QueryPositionHandlerEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onQueryPositionHandler(evt:yfiles.input.QueryPositionHandlerEventArgs):void; @@ -25701,7 +25720,7 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -25713,7 +25732,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -25868,7 +25887,7 @@ declare namespace system{ * If the event args are {@link yfiles.input.QueryPositionHandlerEventArgs#handled}, the {@link yfiles.input.IPositionHandler} that is carried with the event args is used to actually move * the items. Otherwise the pre-set {@link yfiles.input.MoveInputMode#positionHandler} property is used. *

    - * @param {function(Object, yfiles.input.QueryPositionHandlerEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeQueryPositionHandlerListener */ addQueryPositionHandlerListener(listener:(sender:Object,evt:yfiles.input.QueryPositionHandlerEventArgs)=>void):void; @@ -25879,7 +25898,7 @@ declare namespace system{ * If the event args are {@link yfiles.input.QueryPositionHandlerEventArgs#handled}, the {@link yfiles.input.IPositionHandler} that is carried with the event args is used to actually move * the items. Otherwise the pre-set {@link yfiles.input.MoveInputMode#positionHandler} property is used. *

    - * @param {function(Object, yfiles.input.QueryPositionHandlerEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addQueryPositionHandlerListener */ removeQueryPositionHandlerListener(listener:(sender:Object,evt:yfiles.input.QueryPositionHandlerEventArgs)=>void):void; @@ -25909,97 +25928,97 @@ declare namespace system{ affectedItems:yfiles.collections.IEnumerable; /** * Adds the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragFinishingListener */ addDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragFinishingListener */ removeDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragFinishedListener */ addDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragFinishedListener */ removeDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragStartingListener */ addDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragStartingListener */ removeDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragStartedListener */ addDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragStartedListener */ removeDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragCancelingListener */ addDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragCancelingListener */ removeDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -26010,16 +26029,15 @@ declare namespace system{ * {@link yfiles.input.MoveInputMode}. * @see yfiles.input.MoveInputMode * @see yfiles.input.MoveInputMode#addQueryPositionHandlerListener - * @class yfiles.input.QueryPositionHandlerEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface QueryPositionHandlerEventArgs extends yfiles.input.InputModeEventArgs{} export class QueryPositionHandlerEventArgs { /** * Instantiates a new {@link yfiles.input.QueryPositionHandlerEventArgs} - * @param {yfiles.input.IInputModeContext} context The {@link yfiles.input.IInputModeContext} of the operation. - * @param {yfiles.geometry.Point} queryLocation The initial location of the movement. - * @constructor + * @param context The {@link } of the operation. + * @param queryLocation The initial location of the movement. */ constructor(context:yfiles.input.IInputModeContext,queryLocation:yfiles.geometry.Point); /** @@ -26070,14 +26088,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.MoveViewportInputMode#exclusive} by default. *

    - * @class yfiles.input.MoveViewportInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface MoveViewportInputMode extends Object,yfiles.input.IInputMode{} export class MoveViewportInputMode { /** * Creates a new instance of the move viewport mode - * @constructor */ constructor(); /** @@ -26112,10 +26129,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.MoveViewportInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -26154,13 +26171,13 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Triggers the {@link yfiles.input.MoveViewportInputMode#addDragCanceledListener DragCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveViewportInputMode#addDragCancelingListener DragCanceling} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceling(evt:yfiles.input.InputModeEventArgs):void; @@ -26170,7 +26187,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MoveViewportInputMode#addDragFinishedListener DragFinished} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinished(evt:yfiles.input.InputModeEventArgs):void; @@ -26180,7 +26197,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MoveViewportInputMode#addDragFinishingListener DragFinishing} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinishing(evt:yfiles.input.InputModeEventArgs):void; @@ -26190,7 +26207,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MoveViewportInputMode#addDraggedListener Dragged} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.InputModeEventArgs):void; @@ -26200,19 +26217,19 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MoveViewportInputMode#addDraggingListener Dragging} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveViewportInputMode#addDragStartedListener DragStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarted(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveViewportInputMode#addDragStartingListener DragStarting} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarting(evt:yfiles.input.InputModeEventArgs):void; @@ -26229,12 +26246,12 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -26333,7 +26350,7 @@ declare namespace system{ inertiaDamping:number; /** * Gets or sets the mode that determines when to use inertia when dragging the viewport. - * @default 2 + * @default yfiles.input.InertiaPolicies.TOUCH * @type {yfiles.input.InertiaPolicies} */ inertia:yfiles.input.InertiaPolicies; @@ -26377,97 +26394,97 @@ declare namespace system{ releasedRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragFinishingListener */ addDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragFinishingListener */ removeDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragFinishedListener */ addDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragFinishedListener */ removeDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragStartingListener */ addDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragStartingListener */ removeDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragStartedListener */ addDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragStartedListener */ removeDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragCancelingListener */ addDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragCancelingListener */ removeDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -26493,14 +26510,13 @@ declare namespace system{ *

    * @see yfiles.input.MultiplexingInputMode#mutexOwner * @see yfiles.input.MultiplexingInputMode#add - * @class yfiles.input.MultiplexingInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface MultiplexingInputMode extends Object,yfiles.input.IInputMode{} export class MultiplexingInputMode { /** * Creates an instance with no initial modes. - * @constructor */ constructor(); /** @@ -26512,7 +26528,7 @@ declare namespace system{ * Input modes will run exclusively if the {@link yfiles.input.ConcurrencyController#exclusive} property of their {@link yfiles.input.IInputMode#install installed controller} is set to true. Otherwise they can not * and will not be deactivated if another {@link yfiles.input.IInputMode} acquires the mutex. *

    - * @param {yfiles.input.IInputMode} mode The input mode to add to this mode. + * @param mode The input mode to add to this mode. * @throws {Stubs.Exceptions.ArgumentError} If the same mode has is already added to this instance. */ add(mode:yfiles.input.IInputMode):void; @@ -26530,8 +26546,8 @@ declare namespace system{ cancel():void; /** * Callback method that will be used by the {@link yfiles.input.MultiplexingInputMode#createChildInputModeContext child context's} {@link yfiles.graph.ILookup#lookup} method. - * @param {yfiles.lang.Class} type The type argument passed to {@link yfiles.graph.ILookup#lookup}. - * @returns {Object} The result of the lookup query, or null. + * @param type The type argument passed to {@link #lookup}. + * @returns The result of the lookup query, or null. * @see yfiles.input.MultiplexingInputMode#createChildInputModeContext * @protected */ @@ -26544,23 +26560,23 @@ declare namespace system{ * calls for the created context will be resolved by this instance's {@link yfiles.input.MultiplexingInputMode#childInputModeContextLookup} * method. *

    - * @returns {yfiles.input.IInputModeContext} A new instance that delegates to the {@link yfiles.input.MultiplexingInputMode#inputModeContext parent's context.} + * @returns A new instance that delegates to the {@link #inputModeContext parent's context.} * @protected */ createChildInputModeContext():yfiles.input.IInputModeContext; /** * Helper method that yields a suitably configured {@link yfiles.input.InputModeEventArgs} for this input mode. - * @param {yfiles.input.IInputModeContext} context An input mode context that is available in the {@link yfiles.input.InputModeEventArgs}. + * @param context An input mode context that is available in the {@link }. *

    * Can be null in which case a new context for this instance is created automatically. *

    - * @returns {yfiles.input.InputModeEventArgs} An input mode event argument that is configured for this instance. + * @returns An input mode event argument that is configured for this instance. * @protected */ createInputModeEventArgs(context:yfiles.input.IInputModeContext):yfiles.input.InputModeEventArgs; /** * Returns a list of all modes managed by this instance in sorted order. - * @returns {yfiles.collections.IList.} A list of the modes. + * @returns A list of the modes. */ getSortedModes():yfiles.collections.IList; /** @@ -26578,8 +26594,8 @@ declare namespace system{ initialize():void; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.input.ConcurrencyController} controller + * @param context + * @param controller */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** @@ -26606,7 +26622,7 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Removes the given mode from this compound mode. - * @param {yfiles.input.IInputMode} mode The mode to remove. + * @param mode The mode to remove. */ remove(mode:yfiles.input.IInputMode):void; /** @@ -26619,12 +26635,12 @@ declare namespace system{ subModePriorityChanged():void; /** * Tries to stop all modes. - * @returns {boolean} + * @returns */ tryStop():boolean; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -26692,14 +26708,13 @@ declare namespace system{ * @see yfiles.input.OverviewInputMode#keyboardInputMode * @see yfiles.input.OverviewInputMode#clickInputMode * @see yfiles.input.OverviewInputMode#tapInputMode - * @class yfiles.input.OverviewInputMode + * @class * @extends {yfiles.input.MultiplexingInputMode} */ export interface OverviewInputMode extends yfiles.input.MultiplexingInputMode{} export class OverviewInputMode { /** * Creates a new instance. - * @constructor */ constructor(); /** @@ -26707,34 +26722,34 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.OverviewInputMode#clickInputMode} property. *

    - * @returns {yfiles.input.ClickInputMode} a new instance of ClickInputMode + * @returns a new instance of ClickInputMode * @protected */ createClickInputMode():yfiles.input.ClickInputMode; /** - * Factory method for the HandleInputMode property. + * Factory method for the {@link yfiles.input.OverviewInputMode#handleInputMode} property. *

    * This method will be called upon first access to the {@link yfiles.input.OverviewInputMode#handleInputMode} property. *

    - * @returns {yfiles.input.HandleInputMode} a new instance of HandleInputMode + * @returns a new instance of {@link } * @protected */ createHandleInputMode():yfiles.input.HandleInputMode; /** - * Factory method for the KeyboardInputMode property. + * Factory method for the {@link yfiles.input.OverviewInputMode#keyboardInputMode} property. *

    * This method will be called upon first access to the {@link yfiles.input.OverviewInputMode#keyboardInputMode} property. *

    - * @returns {yfiles.input.KeyboardInputMode} a new instance of KeyboardInputMode + * @returns a new instance of {@link }. * @protected */ createKeyboardInputMode():yfiles.input.KeyboardInputMode; /** - * Factory method for the MoveInputMode property. + * Factory method for the {@link yfiles.input.OverviewInputMode#moveInputMode} property. *

    * This method will be called upon first access to the {@link yfiles.input.OverviewInputMode#moveInputMode} property. *

    - * @returns {yfiles.input.MoveInputMode} a new instance of MoveInputMode + * @returns a new instance of MoveInputMode * @protected */ createMoveInputMode():yfiles.input.MoveInputMode; @@ -26743,7 +26758,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.OverviewInputMode#tapInputMode} property. *

    - * @returns {yfiles.input.TapInputMode} a new instance of TapInputMode + * @returns a new instance of TapInputMode * @protected */ createTapInputMode():yfiles.input.TapInputMode; @@ -26753,8 +26768,8 @@ declare namespace system{ *

    * This implementation unconditionally returns true, subclasses may override this method to adjust the behavior. *

    - * @param {yfiles.input.ICommand} command The command to install. - * @returns {boolean} Whether to install this command. + * @param command The command to install. + * @returns Whether to install this command. * @protected */ shouldInstallCommand(command:yfiles.input.ICommand):boolean; @@ -26790,7 +26805,7 @@ declare namespace system{ */ static VIEWPORT_TEMPLATE_KEY:string; /** - * Gets the HandleInputMode. + * Gets the {@link yfiles.input.HandleInputMode}. *

    * This mode is responsible for handling the single handle that allows to resize the viewport rectangle. *

    @@ -26805,7 +26820,7 @@ declare namespace system{ */ handleInputMode:yfiles.input.HandleInputMode; /** - * Gets the MoveInputMode. + * Gets the {@link yfiles.input.MoveInputMode}. *

    * This mode is responsible for moving the viewport rectangle. *

    @@ -26844,7 +26859,7 @@ declare namespace system{ */ tapInputMode:yfiles.input.TapInputMode; /** - * Gets the KeyboardInputMode. + * Gets the {@link yfiles.input.KeyboardInputMode}. *

    * This mode handles all keyboard interaction gestures with the overview control. *

    @@ -26881,8 +26896,8 @@ declare namespace system{ *
  • {@link yfiles.input.ICommand#SCROLL_PAGE_UP}
  • *
  • {@link yfiles.input.ICommand#SCROLL_PAGE_LEFT}
  • *
  • {@link yfiles.input.ICommand#SCROLL_PAGE_RIGHT}
  • - *
  • FitContentCommand
  • - *
  • UpdateContentRectCommand
  • + *
  • {@link yfiles.input.ICommand#FIT_CONTENT}
  • + *
  • {@link yfiles.input.ICommand#UPDATE_CONTENT_RECT}
  • * * @type {yfiles.collections.ICollection.} */ @@ -26922,7 +26937,7 @@ declare namespace system{ * A specialized subclass of {@link yfiles.input.PopulateMenuEventArgs} that carries the {@link yfiles.input.PopulateItemContextMenuEventArgs.#item} for which the context menu should be * populated. * Type parameter TModelItem: The type of the {@link yfiles.input.PopulateItemContextMenuEventArgs.#item model item}. - * @class yfiles.input.PopulateItemContextMenuEventArgs. + * @class * @extends {yfiles.input.PopulateMenuEventArgs} * @template TModelItem */ @@ -26930,10 +26945,9 @@ declare namespace system{ export class PopulateItemContextMenuEventArgs { /** * Initializes a new instance of the {@link yfiles.input.PopulateItemContextMenuEventArgs.} class. - * @param {yfiles.input.IInputModeContext} context The context to populate the menu for. - * @param {yfiles.geometry.Point} queryLocation The query location. - * @param {TModelItem} item The item for which the context menu should be populated, may be null. - * @constructor + * @param context The context to populate the menu for. + * @param queryLocation The query location. + * @param item The item for which the context menu should be populated, may be null. */ constructor(context:yfiles.input.IInputModeContext,queryLocation:yfiles.geometry.Point,item:TModelItem); /** @@ -26946,7 +26960,7 @@ declare namespace system{ /** * A specialized subclass of {@link yfiles.input.ToolTipQueryEventArgs} that carries the {@link yfiles.input.QueryItemToolTipEventArgs.#item} for which the tool tip is queried. * Type parameter TModelItem: The type of the {@link yfiles.input.QueryItemToolTipEventArgs.#item model item}. - * @class yfiles.input.QueryItemToolTipEventArgs. + * @class * @extends {yfiles.input.ToolTipQueryEventArgs} * @template TModelItem */ @@ -26954,10 +26968,9 @@ declare namespace system{ export class QueryItemToolTipEventArgs { /** * Initializes a new instance of the {@link yfiles.input.QueryItemToolTipEventArgs.} class. - * @param {yfiles.input.IInputModeContext} context The context to yield the tool tip for. - * @param {yfiles.geometry.Point} queryLocation The query location. - * @param {TModelItem} item The item for which the tool tip is queried.. - * @constructor + * @param context The context to yield the tool tip for. + * @param queryLocation The query location. + * @param item The item for which the tool tip is queried.. */ constructor(context:yfiles.input.IInputModeContext,queryLocation:yfiles.geometry.Point,item:TModelItem); /** @@ -26970,16 +26983,15 @@ declare namespace system{ /** * A simple convenience implementation of an {@link yfiles.input.IReshapeHandleProvider} that returns handles that modify a * {@link yfiles.geometry.IMutableRectangle}. - * @class yfiles.input.RectangleReshapeHandleProvider + * @class * @extends {yfiles.input.ReshapeHandleProviderBase} */ export interface RectangleReshapeHandleProvider extends yfiles.input.ReshapeHandleProviderBase{} export class RectangleReshapeHandleProvider { /** * Creates a default instance that provide handles for each of the positions given for the rectangle. - * @param {yfiles.geometry.IMutableRectangle} rectangle The rectangle to create handles for. - * @param {yfiles.input.HandlePositions} [handlePositions=yfiles.input.HandlePositions.BORDER] A bitwise combination of all handle positions this instance should provide a handle for. - * @constructor + * @param rectangle The rectangle to create handles for. + * @param [handlePositions=yfiles.input.HandlePositions.BORDER] A bitwise combination of all handle positions this instance should provide a handle for. */ constructor(rectangle:yfiles.geometry.IMutableRectangle,handlePositions?:yfiles.input.HandlePositions); /** @@ -26993,7 +27005,7 @@ declare namespace system{ /** * Abstract base class implementation of the {@link yfiles.input.IReshapeHandleProvider} interface that has properties to restrict * the size and area of a reshapeable. - * @class yfiles.input.ReshapeHandleProviderBase + * @class * @implements {yfiles.input.IReshapeHandleProvider} */ export interface ReshapeHandleProviderBase extends Object,yfiles.input.IReshapeHandleProvider{} @@ -27001,9 +27013,9 @@ declare namespace system{ constructor(); /** * Returns the {@link yfiles.input.ReshapeHandleProviderBase#handlePositions} property. - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.input.HandlePositions} A bitwise combination of all handle positions this instance provides a handle for if queried in - * {@link yfiles.input.RectangleReshapeHandleProvider#getHandle}. + * @param context + * @returns A bitwise combination of all handle positions this instance provides a handle for if queried in + * {@link #getHandle}. */ getAvailableHandles(context:yfiles.input.IInputModeContext):yfiles.input.HandlePositions; /** @@ -27013,9 +27025,9 @@ declare namespace system{ * This method may be called for each possible single position contained in the set as returned by * {@link yfiles.input.ReshapeHandleProviderBase#getAvailableHandles}. *

    - * @param {yfiles.input.IInputModeContext} context The context for which the handles are queried. - * @param {yfiles.input.HandlePositions} position The position to provide an instance for. - * @returns {yfiles.input.IHandle} A handle implementation. + * @param context The context for which the handles are queried. + * @param position The position to provide an instance for. + * @returns A handle implementation. * @abstract */ getHandle(context:yfiles.input.IInputModeContext,position:yfiles.input.HandlePositions):yfiles.input.IHandle; @@ -27058,7 +27070,7 @@ declare namespace system{ /** * Event arguments that are used when modifying a {@link yfiles.view.ISelectionModel.} * Type parameter T: The type of the items in the {@link yfiles.view.ISelectionModel.}. - * @class yfiles.input.SelectionEventArgs. + * @class * @extends {yfiles.input.InputModeEventArgs} * @template T */ @@ -27066,9 +27078,8 @@ declare namespace system{ export class SelectionEventArgs { /** * Creates a new instance. - * @param {yfiles.input.IInputModeContext} context The context the event with these event args is dispatched. - * @param {yfiles.view.ISelectionModel.} selection The selection that is modified. - * @constructor + * @param context The context the event with these event args is dispatched. + * @param selection The selection that is modified. */ constructor(context:yfiles.input.IInputModeContext,selection:yfiles.view.ISelectionModel); /** @@ -27103,13 +27114,12 @@ declare namespace system{ * @see yfiles.input.HandleInputMode#snapContext * @see yfiles.input.MoveInputMode#snapContext * @see yfiles.input.SnapContext#createSnapResultsModelManager - * @class yfiles.input.SnapContext + * @class */ export interface SnapContext extends Object{} export class SnapContext { /** * Initializes a new instance of the {@link yfiles.input.SnapContext} class. - * @constructor */ constructor(); /** @@ -27132,14 +27142,14 @@ declare namespace system{ /** * Helper method used by {@link yfiles.input.SnapContext#createSnapResultsModelManager} to create the {@link yfiles.view.ICanvasObjectDescriptor} * for the {@link yfiles.input.SnapResult} type. - * @returns {yfiles.view.ICanvasObjectDescriptor} An instance that can install {@link yfiles.input.SnapResult}s in a {@link yfiles.view.CanvasComponent}. + * @returns An instance that can install {@link }s in a {@link }. */ createSnapResultCanvasObjectDescriptor():yfiles.view.ICanvasObjectDescriptor; /** * Helper method that creates the a {@link yfiles.view.CollectionModelManager.} that can be used to present the current {@link yfiles.input.SnapResult}s in the provided * {@link yfiles.view.CanvasComponent}. - * @param {yfiles.view.CanvasComponent} canvas The control to initialize the {@link yfiles.view.CollectionModelManager.} with. - * @returns {yfiles.view.CollectionModelManager.} The model manager that manages the visual representation of the {@link yfiles.input.SnapResult}s. + * @param canvas The control to initialize the {@link } with. + * @returns The model manager that manages the visual representation of the {@link }s. */ createSnapResultsModelManager(canvas:yfiles.view.CanvasComponent):yfiles.view.CollectionModelManager; /** @@ -27148,10 +27158,10 @@ declare namespace system{ * Clears all temporary lists and sets {@link yfiles.input.SnapContext#isInitialized} back to false. Also the {@link yfiles.input.SnapContext#cleanUp} method is invoked and the * {@link yfiles.input.SnapContext#addCleanedUpListener CleanedUp} event is triggered. *

    - * @param {yfiles.geometry.Point} newLocation The current mouse location. - * @param {boolean} snappingDisabled If set to true snapping is temporarily disabled. This will remove the snap line visualizations and return a {@link yfiles.input.SnapState} - * with the unchanged coordinates and the {@link yfiles.input.SnapTypes#NOT_SNAPPED} {@link yfiles.input.SnapState#snapType}. - * @returns {yfiles.input.SnapState} A {@link yfiles.input.SnapState} that specifies the adjusted coordinates and how they have been adjusted. The unchanged + * @param newLocation The current mouse location. + * @param snappingDisabled If set to true snapping is temporarily disabled. This will remove the snap line visualizations and return a {@link } + * with the unchanged coordinates and the {@link #NOT_SNAPPED} {@link #snapType}. + * @returns A {@link } that specifies the adjusted coordinates and how they have been adjusted. The unchanged * coordinates if snapping has been temporarily disabled by setting snappingDisabled to true. */ dragFinished(newLocation:yfiles.geometry.Point,snappingDisabled:boolean):yfiles.input.SnapState; @@ -27163,8 +27173,8 @@ declare namespace system{ * {@link yfiles.input.SnapContext#handleMove}. This method does not need to be called if snapping has been temporarily disabled by * calling {@link yfiles.input.SnapContext#handleMove} with its snappingDisabled parameter set to true. *

    - * @param {yfiles.geometry.Point} mouseLocation The actual mouse location. - * @param {yfiles.input.SnapState} finalSnapState The final snap state that contains the location that has been used by the client code for the move and how it has been + * @param mouseLocation The actual mouse location. + * @param finalSnapState The final snap state that contains the location that has been used by the client code for the move and how it has been * snapped. */ dragged(mouseLocation:yfiles.geometry.Point,finalSnapState:yfiles.input.SnapState):void; @@ -27185,10 +27195,10 @@ declare namespace system{ * This method returns the adjusted (mouse) coordinates. It also manages the collection of {@link yfiles.input.SnapResult}s. If * snapping should be temporarily (for a mouse move) disabled, snappingDisabled has to be set to true. *

    - * @param {yfiles.geometry.Point} newLocation The current mouse location. - * @param {boolean} snappingDisabled If set to true snapping is temporarily disabled. This will remove the snap line visualizations and return a {@link yfiles.input.SnapState} - * with the unchanged coordinates and the {@link yfiles.input.SnapState#snapType} {@link yfiles.input.SnapTypes#NOT_SNAPPED}. - * @returns {yfiles.input.SnapState} The adjusted coordinates and how they have been adjusted. The unchanged coordinates if snapping has been temporarily + * @param newLocation The current mouse location. + * @param snappingDisabled If set to true snapping is temporarily disabled. This will remove the snap line visualizations and return a {@link } + * with the unchanged coordinates and the {@link #snapType} {@link #NOT_SNAPPED}. + * @returns The adjusted coordinates and how they have been adjusted. The unchanged coordinates if snapping has been temporarily * disabled by setting snappingDisabled to true. */ handleMove(newLocation:yfiles.geometry.Point,snappingDisabled:boolean):yfiles.input.SnapState; @@ -27197,32 +27207,32 @@ declare namespace system{ *

    * Updates {@link yfiles.input.SnapContext#isInitializing}, {@link yfiles.input.SnapContext#originalLocation}, and {@link yfiles.input.SnapContext#currentInputModeContext} and then triggers the {@link yfiles.input.SnapContext#addInitializingListener Initializing} event. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the interactive drag is started. - * @param {yfiles.geometry.Point} originalLocation The original location of the mouse. + * @param context The context in which the interactive drag is started. + * @param originalLocation The original location of the mouse. * @throws {Stubs.Exceptions.InvalidOperationError} If this context is already {@link yfiles.input.SnapContext#isInitialized initialized}. */ initializeDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Raises the {@link yfiles.input.SnapContext#cleanUp} event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onCleanUp(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.SnapContext#addCollectSnapResultsListener CollectSnapResults} event. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onCollectSnapResults(evt:yfiles.input.CollectSnapResultsEventArgs):void; /** * Raises the {@link yfiles.input.SnapContext#addInitializedListener Initialized} event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onInitialized(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.SnapContext#addInitializingListener Initializing} event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onInitializing(evt:yfiles.input.InputModeEventArgs):void; @@ -27231,18 +27241,18 @@ declare namespace system{ *

    * Chooses from a list of possible results the most important ones. Also maintains the collection of snap results. *

    - * @param {yfiles.collections.List.} snapResults A temporary list of suggested {@link yfiles.input.SnapResult}s. - * @param {yfiles.geometry.Point} originalLocation The point in world coordinates where the mouse move started. - * @param {yfiles.geometry.Point} newLocation The current mouse location. - * @returns {yfiles.input.SnapState} The adjusted coordinates and how they have been adjusted. + * @param snapResults A temporary list of suggested {@link }s. + * @param originalLocation The point in world coordinates where the mouse move started. + * @param newLocation The current mouse location. + * @returns The adjusted coordinates and how they have been adjusted. * @protected */ processSnapResults(snapResults:yfiles.collections.List,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):yfiles.input.SnapState; /** * Helper method that wraps the given context so that a {@link yfiles.graph.ILookup#lookup} query on the wrapped context for the {@link yfiles.input.SnapContext} * type yields this instance. - * @param {yfiles.input.IInputModeContext} context The context to wrap and delegate all calls to. - * @returns {yfiles.input.IInputModeContext} A modified instance that yields this instance if it is queried for the {@link yfiles.input.SnapContext} type. + * @param context The context to wrap and delegate all calls to. + * @returns A modified instance that yields this instance if it is queried for the {@link } type. */ wrapContext(context:yfiles.input.IInputModeContext):yfiles.input.IInputModeContext; /** @@ -27256,7 +27266,7 @@ declare namespace system{ * {@link yfiles.input.IDragHandler}s of the moved items have to take care themselves whether to add a handler to the list * depending on the their settings. *

    - * @param {function(Object, yfiles.input.CollectSnapResultsEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.SnapContext#removeCollectSnapResultsListener */ addCollectSnapResultsListener(listener:(sender:Object,evt:yfiles.input.CollectSnapResultsEventArgs)=>void):void; @@ -27271,48 +27281,48 @@ declare namespace system{ * {@link yfiles.input.IDragHandler}s of the moved items have to take care themselves whether to add a handler to the list * depending on the their settings. *

    - * @param {function(Object, yfiles.input.CollectSnapResultsEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.SnapContext#addCollectSnapResultsListener */ removeCollectSnapResultsListener(listener:(sender:Object,evt:yfiles.input.CollectSnapResultsEventArgs)=>void):void; /** * Adds the given listener for the CleanedUp event that occurs when this instance has been cleaned up. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.SnapContext#cleanUp * @see yfiles.input.SnapContext#removeCleanedUpListener */ addCleanedUpListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the CleanedUp event that occurs when this instance has been cleaned up. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.SnapContext#cleanUp * @see yfiles.input.SnapContext#addCleanedUpListener */ removeCleanedUpListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Initialized event that occurs when this instance has been initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.SnapContext#initializeDrag * @see yfiles.input.SnapContext#removeInitializedListener */ addInitializedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Initialized event that occurs when this instance has been initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.SnapContext#initializeDrag * @see yfiles.input.SnapContext#addInitializedListener */ removeInitializedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Initializing event that occurs when this instance is about to be initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.SnapContext#initializeDrag * @see yfiles.input.SnapContext#removeInitializingListener */ addInitializingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Initializing event that occurs when this instance is about to be initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.SnapContext#initializeDrag * @see yfiles.input.SnapContext#addInitializingListener */ @@ -27387,7 +27397,7 @@ declare namespace system{ * It carries a {@link yfiles.input.SnapResult#weight} and can be used to obtain a {@link yfiles.view.IVisualCreator} that will be included in the view if the result is * actually {@link yfiles.input.SnapResult#isSnapped snapped} after all other results with higher weight have been {@link yfiles.input.SnapResult#snap snapped}. *

    - * @class yfiles.input.SnapResult + * @class * @implements {yfiles.lang.IComparable} */ export interface SnapResult extends Object,yfiles.lang.IComparable{} @@ -27395,62 +27405,62 @@ declare namespace system{ /** * Factory method that creates a {@link yfiles.input.SnapResult} to which a {@link yfiles.graph.ILabel} will snap, based on the given * snapLine. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The {@link yfiles.graph.ILabelModelParameter} which represents the position to snap to. - * @param {number} weight The weight of this result. The higher the weight, the more important it is. - * @param {yfiles.geometry.Point} delta The value to add to the mouse coordinates to snap to this result. - * @param {Object} tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest - * {@link yfiles.input.SnapResult#weight} will be rendered. - * @param {yfiles.input.SnapLine} snapLine The snap line this class would snap to or null if it doesn't snap to a SnapLine. - * @param {yfiles.geometry.Point} snappedCoordinates The coordinates at the moved item at which the drawn snap line should end. - * @param {Object} movedObject The moved object for which this result is created. - * @returns {yfiles.input.SnapResult} + * @param layoutParameter The {@link } which represents the position to snap to. + * @param weight The weight of this result. The higher the weight, the more important it is. + * @param delta The value to add to the mouse coordinates to snap to this result. + * @param tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest + * {@link #weight} will be rendered. + * @param snapLine The snap line this class would snap to or null if it doesn't snap to a SnapLine. + * @param snappedCoordinates The coordinates at the moved item at which the drawn snap line should end. + * @param movedObject The moved object for which this result is created. + * @returns * @static */ static createLabelSnapResult(layoutParameter:yfiles.graph.ILabelModelParameter,weight:number,delta:yfiles.geometry.Point,tag:Object,snapLine:yfiles.input.SnapLine,snappedCoordinates:yfiles.geometry.Point,movedObject:Object):yfiles.input.SnapResult; /** * Factory method that creates a {@link yfiles.input.SnapResult} that snaps to a given location. - * @param {yfiles.geometry.Point} location The location to snap to. - * @param {number} weight The weight to assign to the result. - * @param {Object} tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest - * {@link yfiles.input.SnapResult#weight} will be rendered. - * @param {yfiles.view.IVisualCreator} visualCreator The visual creator to use. - * @param {yfiles.input.SnapTypes} snapType The type of the snapping operation to apply. - * @returns {yfiles.input.SnapResult} A result that snaps to the provided location using the provided mode. + * @param location The location to snap to. + * @param weight The weight to assign to the result. + * @param tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest + * {@link #weight} will be rendered. + * @param visualCreator The visual creator to use. + * @param snapType The type of the snapping operation to apply. + * @returns A result that snaps to the provided location using the provided mode. * @static */ static createPointSnapResult(location:yfiles.geometry.Point,weight:number,tag:Object,visualCreator:yfiles.view.IVisualCreator,snapType:yfiles.input.SnapTypes):yfiles.input.SnapResult; /** * Factory method that creates a {@link yfiles.input.SnapResult} which snaps to a given size through a resize operation. - * @param {number} weight The weight of this result. The higher the weight, the more important it is. - * @param {number} delta The value to add to the mouse coordinates to snap to this result. - * @param {Object} tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest - * {@link yfiles.input.SnapResult#weight} will be rendered. - * @param {yfiles.collections.IEnumerable.} rectangles The rectangles that have the same width or height as the node will. The rectangle are used for visualization and should + * @param weight The weight of this result. The higher the weight, the more important it is. + * @param delta The value to add to the mouse coordinates to snap to this result. + * @param tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest + * {@link #weight} will be rendered. + * @param rectangles The rectangles that have the same width or height as the node will. The rectangle are used for visualization and should * include all objects for which a visualization should be displayed. Typically, these are all objects which have the same * size and the object which is currently reshaped. - * @param {number} size The target size to which the resized object will snap. - * @param {boolean} horizontal Indicates whether width or height should snap. true if the width should snap. - * @returns {yfiles.input.SnapResult} + * @param size The target size to which the resized object will snap. + * @param horizontal Indicates whether width or height should snap. true if the width should snap. + * @returns * @static */ static createResizeSnapResult(weight:number,delta:number,tag:Object,rectangles:yfiles.collections.IEnumerable,size:number,horizontal:boolean):yfiles.input.SnapResult; /** * Factory method that creates a {@link yfiles.input.SnapResult} which represents a {@link yfiles.input.SnapLine} to which the current * moved item will potentially snap. - * @param {number} weight The weight of this result. The higher the weight, the more important it is. - * @param {yfiles.geometry.Point} delta The value to add to the mouse coordinates to snap to this result. - * @param {Object} tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest - * {@link yfiles.input.SnapResult#weight} will be rendered. - * @param {yfiles.input.SnapLine} snapLine The snap line this class would snap to or null if it doesn't snap to a SnapLine. - * @param {yfiles.geometry.Point} snappedLocation The coordinates at the moved item at which the drawn snap line should end. - * @param {Object} movedObject The moved object for which this result is created. - * @returns {yfiles.input.SnapResult} + * @param weight The weight of this result. The higher the weight, the more important it is. + * @param delta The value to add to the mouse coordinates to snap to this result. + * @param tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest + * {@link #weight} will be rendered. + * @param snapLine The snap line this class would snap to or null if it doesn't snap to a SnapLine. + * @param snappedLocation The coordinates at the moved item at which the drawn snap line should end. + * @param movedObject The moved object for which this result is created. + * @returns * @static */ static createSnapLineSnapResult(weight:number,delta:yfiles.geometry.Point,tag:Object,snapLine:yfiles.input.SnapLine,snappedLocation:yfiles.geometry.Point,movedObject:Object):yfiles.input.SnapResult; /** * Returns a {@link yfiles.view.IVisualCreator} instance that can be used to create a {@link yfiles.view.Visual} for this result. - * @returns {yfiles.view.IVisualCreator} A visual creator which creates a Visual which depicts this snap result. + * @returns A visual creator which creates a {@link } which depicts this snap result. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract */ @@ -27460,9 +27470,9 @@ declare namespace system{ *

    * This implementation simply returns false. *

    - * @param {yfiles.geometry.Point} unsnappedLocation The unsnapped location. - * @param {yfiles.input.SnapState} finalSnapState The final snap state that has been used by the client. - * @returns {boolean} Whether the location are still snapped for this instance. + * @param unsnappedLocation The unsnapped location. + * @param finalSnapState The final snap state that has been used by the client. + * @returns Whether the location are still snapped for this instance. */ isSnapped(unsnappedLocation:yfiles.geometry.Point,finalSnapState:yfiles.input.SnapState):boolean; /** @@ -27470,8 +27480,8 @@ declare namespace system{ *

    * This implementation does nothing. *

    - * @param {yfiles.geometry.Point} unsnappedLocation The location prior to the snapping. - * @param {yfiles.input.SnapState} currentSnapState The currently snapped location and the state of the snapping. This instance can be modified by subclasses. + * @param unsnappedLocation The location prior to the snapping. + * @param currentSnapState The currently snapped location and the state of the snapping. This instance can be modified by subclasses. */ snap(unsnappedLocation:yfiles.geometry.Point,currentSnapState:yfiles.input.SnapState):void; /** @@ -27538,31 +27548,30 @@ declare namespace system{ *

    * This class is used by {@link yfiles.input.SnapContext} to {@link yfiles.input.SnapContext#processSnapResults process} {@link yfiles.input.SnapResult#snap snap results}. *

    - * @class yfiles.input.SnapState + * @class * @final */ export interface SnapState extends Object{} export class SnapState { /** * Initializes a new instance of the {@link yfiles.input.SnapState} class. - * @param {yfiles.geometry.Point} location The initial location. - * @param {yfiles.input.SnapTypes} [snapType=yfiles.input.SnapTypes.NOT_SNAPPED] The current type of the snap. - * @constructor + * @param location The initial location. + * @param [snapType=yfiles.input.SnapTypes.NOT_SNAPPED] The current type of the snap. */ constructor(location:yfiles.geometry.Point,snapType?:yfiles.input.SnapTypes); /** * Sets the {@link yfiles.input.SnapState#location} to the given point and adjusts the {@link yfiles.input.SnapState#snapType} accordingly. - * @param {yfiles.geometry.Point} newLocation The new location. + * @param newLocation The new location. */ snapTo(newLocation:yfiles.geometry.Point):void; /** * Modifies the X property of the {@link yfiles.input.SnapState#location} and adjusts the {@link yfiles.input.SnapState#snapType} accordingly. - * @param {number} newX The new X. + * @param newX The new X. */ snapX(newX:number):void; /** * Modifies the Y property of the {@link yfiles.input.SnapState#location} and adjusts the {@link yfiles.input.SnapState#snapType} accordingly. - * @param {number} newY The new Y. + * @param newY The new Y. */ snapY(newY:number):void; /** @@ -27579,22 +27588,20 @@ declare namespace system{ } /** * Event arguments used by {@link yfiles.input.TapInputMode#addTappedListener Tapped}. - * @class yfiles.input.TapEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface TapEventArgs extends yfiles.input.InputModeEventArgs{} export class TapEventArgs { /** * Initializes a new instance of the {@link yfiles.input.TapEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context in which the tap occurred. - * @param {yfiles.geometry.Point} location The location. - * @constructor + * @param context The context in which the tap occurred. + * @param location The location. */ constructor(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point); /** * Initializes a new instance of the {@link yfiles.input.TapEventArgs} class. - * @param {yfiles.geometry.Point} location The location. - * @constructor + * @param location The location. */ constructor(location:yfiles.geometry.Point); /** @@ -27646,14 +27653,13 @@ declare namespace system{ *

    * @see yfiles.input.TapInputMode#tapHandlingPolicy * @see yfiles.input.TapInputMode#swallowFocusTap - * @class yfiles.input.TapInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface TapInputMode extends Object,yfiles.input.IInputMode{} export class TapInputMode { /** * Creates a new instance of this mode that detects touch taps. - * @constructor */ constructor(); /** @@ -27667,19 +27673,19 @@ declare namespace system{ cancel():void; /** * Creates the event recognizer that is used to recognize the press event for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createPressRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Creates the event recognizer that is used to recognize the release event for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createReleaseRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Creates the event recognizer that is used to recognize the taps for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createTapRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; @@ -27695,43 +27701,43 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ConcurrencyController} for this mode. + * @param controller The {@link } for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** * Determines whether the given event is a press event that occurred at an invalid location. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @see yfiles.input.TapInputMode#validTapHitTestable * @protected */ isInvalidPress(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid press event. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @protected */ isValidPress(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid release event. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @protected */ isValidRelease(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid tap event. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @protected */ isValidTap(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; @@ -27773,7 +27779,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.TapInputMode#addDoubleTappedListener DoubleTapped} event. *

    - * @param {yfiles.input.TapEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onDoubleTapped(evt:yfiles.input.TapEventArgs):void; @@ -27793,7 +27799,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.TapInputMode#addTappedListener Tapped} event. *

    - * @param {yfiles.input.TapEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onTapped(evt:yfiles.input.TapEventArgs):void; @@ -27817,13 +27823,13 @@ declare namespace system{ *

    * To ensure that the flag really acts just once, this method resets the flag and returns its value prior to the reset. *

    - * @returns {boolean} + * @returns * @protected */ queryAndResetPreventNextDoubleTap():boolean; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -27835,7 +27841,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -27878,7 +27884,7 @@ declare namespace system{ controller:yfiles.input.ConcurrencyController; /** * Adds the given listener for the Tapped event that occurs once a tap has been detected. - * @param {function(Object, yfiles.input.TapEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TapEventArgs * @see yfiles.input.TapInputMode#tapHandlingPolicy * @see yfiles.input.TapInputMode#removeTappedListener @@ -27886,7 +27892,7 @@ declare namespace system{ addTappedListener(listener:(sender:Object,evt:yfiles.input.TapEventArgs)=>void):void; /** * Removes the given listener for the Tapped event that occurs once a tap has been detected. - * @param {function(Object, yfiles.input.TapEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TapEventArgs * @see yfiles.input.TapInputMode#tapHandlingPolicy * @see yfiles.input.TapInputMode#addTappedListener @@ -27894,7 +27900,7 @@ declare namespace system{ removeTappedListener(listener:(sender:Object,evt:yfiles.input.TapEventArgs)=>void):void; /** * Adds the given listener for the DoubleTapped event that occurs once a double-tap has been detected. - * @param {function(Object, yfiles.input.TapEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TapEventArgs * @see yfiles.input.TapInputMode#tapHandlingPolicy * @see yfiles.input.TapInputMode#removeDoubleTappedListener @@ -27902,7 +27908,7 @@ declare namespace system{ addDoubleTappedListener(listener:(sender:Object,evt:yfiles.input.TapEventArgs)=>void):void; /** * Removes the given listener for the DoubleTapped event that occurs once a double-tap has been detected. - * @param {function(Object, yfiles.input.TapEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TapEventArgs * @see yfiles.input.TapInputMode#tapHandlingPolicy * @see yfiles.input.TapInputMode#addDoubleTappedListener @@ -27912,7 +27918,7 @@ declare namespace system{ * Gets or sets the tap handling policy that determines the triggering behavior of {@link yfiles.input.TapInputMode#addTappedListener Tapped} * and {@link yfiles.input.TapInputMode#addDoubleTappedListener DoubleTapped}. * @see yfiles.input.TapInputMode#tapHandlingPolicy - * @default 2 + * @default yfiles.input.TapHandlingPolicy.BOTH_SINGLE_TAPS_AND_DOUBLE_TAP * @type {yfiles.input.TapHandlingPolicy} */ tapHandlingPolicy:yfiles.input.TapHandlingPolicy; @@ -27960,14 +27966,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.TextEditorInputMode#exclusive} by default. *

    - * @class yfiles.input.TextEditorInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface TextEditorInputMode extends Object,yfiles.input.IInputMode{} export class TextEditorInputMode { /** * Creates a new instance using a default text box. - * @constructor */ constructor(); /** @@ -27977,7 +27982,7 @@ declare namespace system{ adjustPosition():void; /** * Adjusts the size of the text box in the {@link yfiles.input.TextEditorInputMode#editorContainer}. - * @param {yfiles.geometry.Size} maxSize The suggested maximum size to use. + * @param maxSize The suggested maximum size to use. * @protected */ adjustSize(maxSize:yfiles.geometry.Size):void; @@ -27989,7 +27994,7 @@ declare namespace system{ *

    * This implementation makes sure the textbox does not exceed the bounds of the canvas. *

    - * @returns {yfiles.geometry.Size} The maximum size for the textbox. + * @returns The maximum size for the textbox. * @see yfiles.input.TextEditorInputMode#adjustSize * @protected */ @@ -28004,11 +28009,11 @@ declare namespace system{ clear():void; /** * Starts interactive text editing. - * @returns {Promise.} A Promise that will fulfill with the edited text or fulfill with null if editing is cancelled. + * @returns A Promise that will fulfill with the edited text or fulfill with null if editing is cancelled. */ edit():Promise; /** - * Adjusts the {@link yfiles.view.CanvasComponent#viewport} of the canvas such that the text box is in the visible area. + * Adjusts the {@link yfiles.view.CanvasComponent#viewport} of the {@link yfiles.view.CanvasComponent} such that the text box is in the visible area. *

    * Called once when the editing starts. *

    @@ -28017,7 +28022,7 @@ declare namespace system{ ensureVisible():void; /** * Returns the bounds of the text area in world coordinates. - * @returns {yfiles.geometry.Rect} + * @returns * @protected */ getTextBoxBounds():yfiles.geometry.Rect; @@ -28033,10 +28038,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.TextEditorInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -28096,13 +28101,13 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Raises the {@link yfiles.input.TextEditorInputMode#addEditingCanceledListener EditingCanceled} event. - * @param {yfiles.input.TextEventArgs} evt The event argument + * @param evt The event argument * @protected */ onEditingCanceled(evt:yfiles.input.TextEventArgs):void; /** * Raises the {@link yfiles.input.TextEditorInputMode#addEditingStartedListener EditingStarted} event. - * @param {yfiles.input.TextEventArgs} evt The event argument. + * @param evt The event argument. * @protected */ onEditingStarted(evt:yfiles.input.TextEventArgs):void; @@ -28128,13 +28133,13 @@ declare namespace system{ onStopped():void; /** * Raises the {@link yfiles.input.TextEditorInputMode#addTextEditedListener TextEdited} event. - * @param {yfiles.input.TextEventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onTextEdited(evt:yfiles.input.TextEventArgs):void; /** * Stops editing and returns true. - * @returns {boolean} base.Stop() + * @returns base.Stop() */ tryStop():boolean; /** @@ -28146,7 +28151,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -28194,37 +28199,37 @@ declare namespace system{ controller:yfiles.input.ConcurrencyController; /** * Adds the given listener for the TextEdited event that occurs once the text has been edited. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TextEditorInputMode#removeTextEditedListener */ addTextEditedListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; /** * Removes the given listener for the TextEdited event that occurs once the text has been edited. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TextEditorInputMode#addTextEditedListener */ removeTextEditedListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; /** * Adds the given listener for the EditingCanceled event that occurs if the editing has not been finished. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TextEditorInputMode#removeEditingCanceledListener */ addEditingCanceledListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; /** * Removes the given listener for the EditingCanceled event that occurs if the editing has not been finished. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TextEditorInputMode#addEditingCanceledListener */ removeEditingCanceledListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; /** * Adds the given listener for the EditingStarted event that occurs when text editing is started. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TextEditorInputMode#removeEditingStartedListener */ addEditingStartedListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; /** * Removes the given listener for the EditingStarted event that occurs when text editing is started. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TextEditorInputMode#addEditingStartedListener */ removeEditingStartedListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; @@ -28260,7 +28265,7 @@ declare namespace system{ /** * Gets or sets the event recognizer to detect the key gesture for new line breaks. *

    - * When the provided {@link yfiles.view.KeyEventArgs} are recognized, a new line break is inserted at the current curret position. + * When the provided {@link yfiles.view.KeyEventArgs} are recognized, a new line break is inserted at the current caret position. *

    * @see yfiles.input.TextEditorInputMode#cancelRecognizer * @see yfiles.input.TextEditorInputMode#stopRecognizer @@ -28356,16 +28361,15 @@ declare namespace system{ } /** * Event arguments used by {@link yfiles.input.TextEditorInputMode}. - * @class yfiles.input.TextEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface TextEventArgs extends yfiles.input.InputModeEventArgs{} export class TextEventArgs { /** * Creates a new instance. - * @param {yfiles.input.IInputModeContext} context The context in which this text event happened. - * @param {string} text The text that was or will be edited. - * @constructor + * @param context The context in which this text event happened. + * @param text The text that was or will be edited. */ constructor(context:yfiles.input.IInputModeContext,text:string); /** @@ -28378,22 +28382,20 @@ declare namespace system{ /** * An {@link yfiles.input.IInputMode} implementation that can be used to block user interaction. *

    - * Setting the {@link yfiles.input.WaitInputMode#waiting} property will try to cancel ongoing edits of the {@link yfiles.input.ConcurrencyController#mutexOwner mutex owner} and set the {@link yfiles.view.CanvasComponent#editable} state to false and set the - * preferred cursor to {@link yfiles.input.WaitInputMode#waitCursor}. This mode will try to add itself to the - * {@link yfiles.view.CanvasComponent#lookup Lookup of the CanvasControl}, so that other clients can make use of its functionality. + * Setting the {@link yfiles.input.WaitInputMode#waiting} property will try to cancel ongoing edits of the {@link yfiles.input.ConcurrencyController#mutexOwner mutex owner} and set the preferred cursor to {@link yfiles.input.WaitInputMode#waitCursor}. This mode + * will try to add itself to the {@link yfiles.view.CanvasComponent#lookup Lookup of the CanvasControl}, so that other clients can make use of its functionality. *

    *

    * This mode uses an {@link yfiles.input.ConcurrencyController#exclusive} controller by default. *

    * @see yfiles.input.WaitInputMode#waiting - * @class yfiles.input.WaitInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface WaitInputMode extends Object,yfiles.input.IInputMode{} export class WaitInputMode { /** * Creates a new instance of this mode. - * @constructor */ constructor(); /** @@ -28402,7 +28404,7 @@ declare namespace system{ cancel():void; /** * Returns if this mode can request the mutex when {@link yfiles.input.WaitInputMode#waiting} is set to true. - * @returns {boolean} if this mode can request the mutex when {@link yfiles.input.WaitInputMode#waiting} is set to true. + * @returns if this mode can request the mutex when {@link #waiting} is set to true. */ canStartWaiting():boolean; /** @@ -28425,10 +28427,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.WaitInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -28478,13 +28480,13 @@ declare namespace system{ onStopped():void; /** * Raises the {@link yfiles.input.WaitInputMode#addWaitingEndedListener WaitingEnded} event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onWaitingEnded(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.WaitInputMode#addWaitingStartedListener WaitingStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onWaitingStarted(evt:yfiles.input.InputModeEventArgs):void; @@ -28492,14 +28494,14 @@ declare namespace system{ * This will initiate the waiting process by trying to * {@link yfiles.input.ConcurrencyController#requestMutex}request the input mutex. *

    - * This will set the {@link yfiles.input.ConcurrencyController#preferredCursor} to {@link yfiles.input.WaitInputMode#waitCursor} and set the {@link yfiles.view.CanvasComponent#editable} property of the canvas to false. + * This will set the {@link yfiles.input.ConcurrencyController#preferredCursor} to {@link yfiles.input.WaitInputMode#waitCursor}. *

    * @protected */ startWaiting():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -28511,7 +28513,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -28550,25 +28552,25 @@ declare namespace system{ waiting:boolean; /** * Adds the given listener for the WaitingStarted event that occurs when the waiting started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.WaitInputMode#removeWaitingStartedListener */ addWaitingStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the WaitingStarted event that occurs when the waiting started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.WaitInputMode#addWaitingStartedListener */ removeWaitingStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the WaitingEnded event that occurs when the waiting ended. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.WaitInputMode#removeWaitingEndedListener */ addWaitingEndedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the WaitingEnded event that occurs when the waiting ended. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.WaitInputMode#addWaitingEndedListener */ removeWaitingEndedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -28584,7 +28586,7 @@ declare namespace system{ * of an item. * @see yfiles.input.ConstrainedDragHandler. * @see yfiles.input.ConstrainedDragHandler.#constrainNewLocation - * @class yfiles.input.ConstrainedPositionHandler + * @class * @extends {yfiles.input.ConstrainedDragHandler.} * @implements {yfiles.input.IPositionHandler} */ @@ -28592,9 +28594,8 @@ declare namespace system{ export class ConstrainedPositionHandler { /** * Initializes a new instance of the {@link yfiles.input.ConstrainedPositionHandler} class that delegates to the wrappedHandler. - * @param {yfiles.input.IPositionHandler} wrappedHandler The handler to wrap. + * @param wrappedHandler The handler to wrap. * @protected - * @constructor */ constructor(wrappedHandler:yfiles.input.IPositionHandler); static $class:yfiles.lang.Class; @@ -28603,7 +28604,7 @@ declare namespace system{ * A convenience implementation of the {@link yfiles.input.IHandle} interface that can be used to constrain the handle of an item. * @see yfiles.input.ConstrainedDragHandler. * @see yfiles.input.ConstrainedDragHandler.#constrainNewLocation - * @class yfiles.input.ConstrainedHandle + * @class * @extends {yfiles.input.ConstrainedDragHandler.} * @implements {yfiles.input.IHandle} */ @@ -28611,9 +28612,8 @@ declare namespace system{ export class ConstrainedHandle { /** * Initializes a new instance of the {@link yfiles.input.ConstrainedHandle} class that delegates to the wrappedHandle. - * @param {yfiles.input.IHandle} wrappedHandle The handle to wrap. + * @param wrappedHandle The handle to wrap. * @protected - * @constructor */ constructor(wrappedHandle:yfiles.input.IHandle); /** @@ -28634,31 +28634,30 @@ declare namespace system{ * @see yfiles.input.ConstrainedHandle * @see yfiles.input.ConstrainedPositionHandler * @see yfiles.input.ConstrainedReshapeHandler#constrainNewBounds - * @class yfiles.input.ConstrainedReshapeHandler + * @class * @implements {yfiles.input.IReshapeHandler} */ export interface ConstrainedReshapeHandler extends Object,yfiles.input.IReshapeHandler{} export class ConstrainedReshapeHandler { /** * Initializes a new instance of the {@link yfiles.input.ConstrainedReshapeHandler} class that delegates to the wrappedHandler. - * @param {yfiles.input.IReshapeHandler} wrappedHandler The handler to wrap. + * @param wrappedHandler The handler to wrap. * @protected - * @constructor */ constructor(wrappedHandler:yfiles.input.IReshapeHandler); /** * Cancels the move operation and calls {@link yfiles.input.ConstrainedReshapeHandler#onCanceled} - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Rect} originalBounds The value of the coordinate of the {@link yfiles.input.ConstrainedReshapeHandler#bounds} property at the time of {@link yfiles.input.ConstrainedReshapeHandler#initializeReshape}. + * @param context The context to retrieve information about the drag from. + * @param originalBounds The value of the coordinate of the {@link #bounds} property at the time of {@link #initializeReshape}. */ cancelReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect):void; /** * Callback that needs to implement the constraints for the new bounds. - * @param {yfiles.input.IInputModeContext} context The context in which the reshape will be performed. - * @param {yfiles.geometry.Rect} originalBounds The value of the {@link yfiles.input.ConstrainedReshapeHandler#bounds} property at the time of {@link yfiles.input.ConstrainedReshapeHandler#initializeReshape}. - * @param {yfiles.geometry.Rect} newBounds The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.ConstrainedReshapeHandler#bounds} may or may not be modified to reflect the new value. - * @returns {yfiles.geometry.Rect} The constrained value of newBounds. + * @param context The context in which the reshape will be performed. + * @param originalBounds The value of the {@link #bounds} property at the time of {@link #initializeReshape}. + * @param newBounds The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #bounds} may or may not be modified to reflect the new value. + * @returns The constrained value of newBounds. * @protected * @abstract */ @@ -28669,55 +28668,54 @@ declare namespace system{ * This method will use the {@link yfiles.input.ConstrainedReshapeHandler#constrainNewBounds} callback to let subclasses constrain * the reshaping. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the reshape will be performed. - * @param {yfiles.geometry.Rect} originalBounds The value of the {@link yfiles.input.ConstrainedReshapeHandler#bounds} property at the time of {@link yfiles.input.ConstrainedReshapeHandler#initializeReshape}. - * @param {yfiles.geometry.Rect} newBounds The coordinates in the world coordinate system that the client wants to reshape the item to. Depending on the - * implementation the {@link yfiles.input.ConstrainedReshapeHandler#bounds} may or may not be modified to reflect the new value. - * @returns Whether the reshape had any visual effect. This is a hint to the engine to optimize invalidation. + * @param context The context in which the reshape will be performed. + * @param originalBounds The value of the {@link #bounds} property at the time of {@link #initializeReshape}. + * @param newBounds The coordinates in the world coordinate system that the client wants to reshape the item to. Depending on the + * implementation the {@link #bounds} may or may not be modified to reflect the new value. */ handleReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** * Initializes the reshape operation and subsequently calls {@link yfiles.input.ConstrainedReshapeHandler#onInitialized} - * @param {yfiles.input.IInputModeContext} context The context in which the drag will be performed. + * @param context The context in which the drag will be performed. */ initializeReshape(context:yfiles.input.IInputModeContext):void; /** * Called when the {@link yfiles.input.ConstrainedReshapeHandler#cancelReshape} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} originalBounds The original bounds. + * @param context The input mode context. + * @param originalBounds The original bounds. * @protected */ onCanceled(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect):void; /** * Called when the {@link yfiles.input.ConstrainedReshapeHandler#reshapeFinished} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} originalBounds The original bounds. - * @param {yfiles.geometry.Rect} newBounds The new bounds. + * @param context The input mode context. + * @param originalBounds The original bounds. + * @param newBounds The new bounds. * @protected */ onFinished(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** * Called when the {@link yfiles.input.ConstrainedReshapeHandler#initializeReshape} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} originalBounds The original bounds. + * @param context The input mode context. + * @param originalBounds The original bounds. * @protected */ onInitialized(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect):void; /** * Called when the {@link yfiles.input.ConstrainedReshapeHandler#handleReshape} operation has been performed. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} originalBounds The original Bounds. - * @param {yfiles.geometry.Rect} newBounds The new Bounds. + * @param context The input mode context. + * @param originalBounds The original Bounds. + * @param newBounds The new Bounds. * @protected */ onReshaped(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** * Handles the finish operation and invokes {@link yfiles.input.ConstrainedReshapeHandler#onFinished} - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Rect} originalBounds The value of the {@link yfiles.input.ConstrainedReshapeHandler#bounds} property at the time of {@link yfiles.input.ConstrainedReshapeHandler#initializeReshape}. - * @param {yfiles.geometry.Rect} newBounds The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.ConstrainedReshapeHandler#bounds} may or may not be modified to reflect the new value. This is the same value as delivered in the last - * invocation of {@link yfiles.input.ConstrainedReshapeHandler#handleReshape} + * @param context The context to retrieve information about the drag from. + * @param originalBounds The value of the {@link #bounds} property at the time of {@link #initializeReshape}. + * @param newBounds The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #bounds} may or may not be modified to reflect the new value. This is the same value as delivered in the last + * invocation of {@link #handleReshape} */ reshapeFinished(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** @@ -28740,7 +28738,7 @@ declare namespace system{ * @see yfiles.input.ConstrainedHandle * @see yfiles.input.ConstrainedPositionHandler * @see yfiles.input.ConstrainedDragHandler.#constrainNewLocation - * @class yfiles.input.ConstrainedDragHandler. + * @class * @implements {yfiles.input.IDragHandler} * @template TWrapped */ @@ -28748,35 +28746,34 @@ declare namespace system{ export class ConstrainedDragHandler { /** * Initializes a new instance of the {@link yfiles.input.ConstrainedDragHandler.} class that delegates to the wrappedHandler. - * @param {TWrapped} wrappedHandler The handler to wrap. + * @param wrappedHandler The handler to wrap. * @protected - * @constructor */ constructor(wrappedHandler:TWrapped); /** * Cancels the move operation and calls {@link yfiles.input.ConstrainedDragHandler.#onCanceled} - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Point} originalLocation The value of the coordinate of the {@link yfiles.input.ConstrainedDragHandler.#location} property at the time of {@link yfiles.input.ConstrainedDragHandler.#initializeDrag}. + * @param context The context to retrieve information about the drag from. + * @param originalLocation The value of the coordinate of the {@link #location} property at the time of {@link #initializeDrag}. */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Callback that needs to implement the constraints for the new location. - * @param {yfiles.input.IInputModeContext} context The context in which the drag will be performed. - * @param {yfiles.geometry.Point} originalLocation The value of the {@link yfiles.input.ConstrainedDragHandler.#location} property at the time of {@link yfiles.input.ConstrainedDragHandler.#initializeDrag}. - * @param {yfiles.geometry.Point} newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.ConstrainedDragHandler.#location} may or may not be modified to reflect the new value. - * @returns {yfiles.geometry.Point} The constrained value of newLocation. + * @param context The context in which the drag will be performed. + * @param originalLocation The value of the {@link #location} property at the time of {@link #initializeDrag}. + * @param newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #location} may or may not be modified to reflect the new value. + * @returns The constrained value of newLocation. * @protected * @abstract */ constrainNewLocation(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):yfiles.geometry.Point; /** * Handles the finish operation and invokes {@link yfiles.input.ConstrainedDragHandler.#onFinished} - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Point} originalLocation The value of the {@link yfiles.input.ConstrainedDragHandler.#location} property at the time of {@link yfiles.input.ConstrainedDragHandler.#initializeDrag}. - * @param {yfiles.geometry.Point} newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.ConstrainedDragHandler.#location} may or may not be modified to reflect the new value. This is the same value as delivered in the last - * invocation of {@link yfiles.input.ConstrainedDragHandler.#handleMove} + * @param context The context to retrieve information about the drag from. + * @param originalLocation The value of the {@link #location} property at the time of {@link #initializeDrag}. + * @param newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #location} may or may not be modified to reflect the new value. This is the same value as delivered in the last + * invocation of {@link #handleMove} */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** @@ -28784,45 +28781,44 @@ declare namespace system{ *

    * This method will use the {@link yfiles.input.ConstrainedDragHandler.#constrainNewLocation} callback to let subclasses constrain the movement. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the drag will be performed. - * @param {yfiles.geometry.Point} originalLocation The value of the {@link yfiles.input.ConstrainedDragHandler.#location} property at the time of {@link yfiles.input.ConstrainedDragHandler.#initializeDrag}. - * @param {yfiles.geometry.Point} newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.ConstrainedDragHandler.#location} may or may not be modified to reflect the new value. - * @returns Whether the move had any visual effect. This is a hint to the engine to optimize invalidation. + * @param context The context in which the drag will be performed. + * @param originalLocation The value of the {@link #location} property at the time of {@link #initializeDrag}. + * @param newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #location} may or may not be modified to reflect the new value. */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Initializes the drag operation and subsequently calls {@link yfiles.input.ConstrainedDragHandler.#onInitialized} - * @param {yfiles.input.IInputModeContext} context The context in which the drag will be performed. + * @param context The context in which the drag will be performed. */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** * Called when the {@link yfiles.input.ConstrainedDragHandler.#cancelDrag} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} originalLocation The original location. + * @param context The input mode context. + * @param originalLocation The original location. * @protected */ onCanceled(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Called when the {@link yfiles.input.ConstrainedDragHandler.#dragFinished} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} originalLocation The original location. - * @param {yfiles.geometry.Point} newLocation The new location. + * @param context The input mode context. + * @param originalLocation The original location. + * @param newLocation The new location. * @protected */ onFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Called when the {@link yfiles.input.ConstrainedDragHandler.#initializeDrag} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} originalLocation The original location. + * @param context The input mode context. + * @param originalLocation The original location. * @protected */ onInitialized(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Called when the {@link yfiles.input.ConstrainedDragHandler.#handleMove} operation has been performed. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} originalLocation The original location. - * @param {yfiles.geometry.Point} newLocation The new location. + * @param context The input mode context. + * @param originalLocation The original location. + * @param newLocation The new location. * @protected */ onMoved(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; @@ -28858,9 +28854,9 @@ declare namespace system{ * Implementations should inspect the {@link yfiles.view.ICanvasContext#hitTestRadius} and take the value into account when performing hit tests. This allows the user to * hit elements even if the zoom level is very small and allows for accurate hit tests at greater zoom levels. *

    - * @param {yfiles.input.IInputModeContext} context the context the hit test is performed in - * @param {yfiles.geometry.Point} location the coordinates in world coordinate system - * @returns {boolean} whether something has been hit + * @param context the context the hit test is performed in + * @param location the coordinates in world coordinate system + * @returns whether something has been hit * @abstract */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; @@ -28868,8 +28864,8 @@ declare namespace system{ var IHitTestable:{ /** * Wrap a handler into an interface. - * @param {function(yfiles.input.IInputModeContext, yfiles.geometry.Point): boolean} handler - * @returns {yfiles.input.IHitTestable} + * @param handler + * @returns * @static */ create?(handler:(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point)=>boolean):yfiles.input.IHitTestable; @@ -28908,9 +28904,9 @@ declare namespace system{ *

    * Implementations should respect the {@link yfiles.view.ICanvasContext#hitTestRadius} if marquee selections should behave differently on different zoom levels. *

    - * @param {yfiles.input.IInputModeContext} context the current input mode context - * @param {yfiles.geometry.Rect} rectangle the box describing the marquee's bounds - * @returns {boolean} true if the item is considered to be captured by the marquee + * @param context the current input mode context + * @param rectangle the box describing the marquee's bounds + * @returns true if the item is considered to be captured by the marquee * @abstract */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; @@ -28940,7 +28936,7 @@ declare namespace system{ * implementation is used for specifying the position of the handle. As a convenience this class also implements the {@link yfiles.geometry.IMutablePoint} * interface which modifies the handle's position. *

    - * @class yfiles.input.RectangleHandle + * @class * @implements {yfiles.geometry.IMutablePoint} * @implements {yfiles.input.IHandle} */ @@ -28952,45 +28948,44 @@ declare namespace system{ * The instance modifies the instances using the reshapeable interface and reads the current state using the rect. The * handle will automatically trim changes of the rectangle to the specified minimum and maximum size. *

    - * @param {yfiles.input.HandlePositions} position The position of the handle. - * @param {yfiles.geometry.IMutableRectangle} rectangle The rectangle to change. - * @constructor + * @param position The position of the handle. + * @param rectangle The rectangle to change. */ constructor(position:yfiles.input.HandlePositions,rectangle:yfiles.geometry.IMutableRectangle); /** * Delegates the original values to {@link yfiles.input.RectangleHandle#set} - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * This implementation does nothing. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Delegates to {@link yfiles.input.RectangleHandle#set}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * This implementation does nothing. - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** * Delegates the work to the reshapeable. - * @param {yfiles.geometry.Point} delta + * @param delta */ moveBy(delta:yfiles.geometry.Point):void; /** * Delegates to {@link yfiles.input.RectangleHandle#moveBy}. - * @param {number} x - * @param {number} y + * @param x + * @param y */ set(x:number,y:number):void; /** @@ -29070,7 +29065,7 @@ declare namespace system{ *

    * This class works on an {@link yfiles.input.IReshapeHandler}. *

    - * @class yfiles.input.ReshapeHandlerHandle + * @class * @implements {yfiles.input.IHandle} */ export interface ReshapeHandlerHandle extends Object,yfiles.input.IHandle{} @@ -29081,11 +29076,10 @@ declare namespace system{ * The instance modifies the instances using the reshapeable interface and reads the current state using the rect. The * handle will automatically trim changes of the rectangle to the specified minimum and maximum size. *

    - * @param {yfiles.input.HandlePositions} position The position of the handle. - * @param {yfiles.input.IReshapeHandler} reshapeHandler The reshapeable to write the changes to. - * @param {yfiles.geometry.ISize} [maximumSize=null] The maximum size allowed for the rectangle. - * @param {yfiles.geometry.ISize} [minimumSize=null] The minimum size allowed for the rectangle. - * @constructor + * @param position The position of the handle. + * @param reshapeHandler The reshapeable to write the changes to. + * @param [maximumSize=null] The maximum size allowed for the rectangle. + * @param [minimumSize=null] The minimum size allowed for the rectangle. */ constructor(position:yfiles.input.HandlePositions,reshapeHandler:yfiles.input.IReshapeHandler,minimumSize?:yfiles.geometry.ISize,maximumSize?:yfiles.geometry.ISize); /** @@ -29095,36 +29089,35 @@ declare namespace system{ * handle will automatically trim changes of the rectangle to the specified minimum and maximum size. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.input.HandlePositions} options.position The position of the handle. - * @param {yfiles.input.IReshapeHandler} options.reshapeHandler The reshapeable to write the changes to. - * @param {yfiles.geometry.ISize} [options.maximumSize=null] The maximum size allowed for the rectangle. - * @param {yfiles.geometry.ISize} [options.minimumSize=null] The minimum size allowed for the rectangle. - * @constructor + * @param options.position The position of the handle. + * @param options.reshapeHandler The reshapeable to write the changes to. + * @param [options.maximumSize=null] The maximum size allowed for the rectangle. + * @param [options.minimumSize=null] The minimum size allowed for the rectangle. */ constructor(options:{position:yfiles.input.HandlePositions,reshapeHandler:yfiles.input.IReshapeHandler,minimumSize?:yfiles.geometry.ISize,maximumSize?:yfiles.geometry.ISize}); /** * Delegates the cancel request to the {@link yfiles.input.IReshapeHandler}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Delegates the finish request to the {@link yfiles.input.IReshapeHandler}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Delegates the move request to the {@link yfiles.input.IReshapeHandler#handleReshape} method. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * This implementation does nothing. - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** @@ -29178,531 +29171,5175 @@ declare namespace system{ static $class:yfiles.lang.Class; } /** - * Utility class that holds implementation singletons and utility methods for simple event recognizers. - * @class yfiles.input.EventRecognizers - * @static + * Event arguments for the {@link yfiles.input.GraphSnapContext#addCollectSnapLinesListener CollectSnapLines} event. + *

    + * Instances of this class are also passed to + * {@link yfiles.input.ISnapLineProvider#addSnapLines}. Implementations of that interface can use the following methods to add snap + * lines for specific purposes: + *

    + *
      + *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedNodeSnapLine} – Adds an orthogonal snap line for nodes.
    • + *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedSegmentSnapLine} – Adds an orthogonal snap line for edge segments and bends.
    • + *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addPortSnapLine} – Adds an orthogonal snap line for ports.
    • + *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addAdditionalSnapLine} – Adds an additional orthogonal snap line to which all element will snap.
    • + *
    + * @class + * @extends {yfiles.input.InputModeEventArgs} */ - export interface EventRecognizers extends Object{} - export class EventRecognizers { + export interface CollectGraphSnapLinesEventArgs extends yfiles.input.InputModeEventArgs{} + export class CollectGraphSnapLinesEventArgs { /** - * Creates an instance that is the logical 'and' combination of the provided recognizers. - * @param {...function(Object, yfiles.lang.EventArgs): boolean} recognizers The recognizers to perform the logical operation on. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} An instance that is the result of the logical 'and' operation of the provided instances. - * @static + * Initializes a new instance of the {@link yfiles.input.CollectGraphSnapLinesEventArgs} class. + * @param context The context where the event is being used in. + * @param fixedNodeSnapLines The fixed node snap lines collection to add to. + * @param fixedSegmentSnapLines The fixed segment snap lines collection to add to. + * @param fixedPortSnapLines The fixed port snap lines collection to add to. + * @param additionalSnapLines The additional snap lines collection to add to. */ - static createAndRecognizer(...recognizers:((eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean)[]):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + constructor(context:yfiles.input.IInputModeContext,fixedNodeSnapLines:yfiles.collections.ICollection,fixedSegmentSnapLines:yfiles.collections.ICollection,fixedPortSnapLines:yfiles.collections.ICollection,additionalSnapLines:yfiles.collections.ICollection); /** - * Creates an instance that is the logical 'or' combination of the provided recognizers. - * @param {...function(Object, yfiles.lang.EventArgs): boolean} recognizers The recognizers to perform the logical operation on. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} An instance that is the result of the logical 'or' operation of the provided instances. - * @static + * Adds a snap line all elements will snap to. + * @param snapLine The snap line to add to the list of lines that all elements snap to by default. + * @see yfiles.input.GraphSnapContext#additionalSnapLines */ - static createOrRecognizer(...recognizers:((eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean)[]):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + addAdditionalSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; /** - * Creates an event recognizer instance that yields the boolean inverse of the given event recognizer. - * @param {function(Object, yfiles.lang.EventArgs): boolean} recognizer The recognizer to invert. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} An implementation that performs the logical negation for the argument. - * @static + * Adds a snap line for nodes. + * @param snapLine The snap line to add to the list of lines that nodes snap to by default. + * @see yfiles.input.GraphSnapContext#fixedNodeSnapLines */ - static inverse(recognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + addFixedNodeSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; /** - * A callback that will always return true; - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Adds a snap line for edge segments and bends. + * @param snapLine The snap line to add to the list of lines that segments snap to by default. + * @see yfiles.input.GraphSnapContext#fixedSegmentSnapLines */ - static ALWAYS:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + addFixedSegmentSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; /** - * A callback that will always return false; - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Adds a snap line for ports. + * @param snapLine The snap line to add to the list of lines that ports snap to by default. + * @see yfiles.input.GraphSnapContext#fixedPortSnapLines */ - static NEVER:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + addPortSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; static $class:yfiles.lang.Class; } /** - * Utility class with simple event recognizers that work on {@link yfiles.view.KeyEventArgs}. - * @class yfiles.input.KeyEventRecognizers - * @static + * Abstract base class for {@link yfiles.input.GraphViewerInputMode} and {@link yfiles.input.GraphEditorInputMode}. + *

    + * This class is not supposed to and in fact cannot be extended from user code. It only exists to provide common + * functionality to the two aforementioned input modes. If customizations are wanted or needed both {@link yfiles.input.GraphViewerInputMode} + * and {@link yfiles.input.GraphEditorInputMode} can be extended. + *

    + * @class + * @extends {yfiles.input.MultiplexingInputMode} */ - export interface KeyEventRecognizers extends Object{} - export class KeyEventRecognizers { + export interface GraphInputMode extends yfiles.input.MultiplexingInputMode{} + export class GraphInputMode { /** - * Creates an event recognizer for a given key and type using a given set of modifiers. - * @param {yfiles.view.KeyEventType} type The type of the event. - * @param {yfiles.view.Key} value The key that is subject of the event. - * @param {yfiles.view.ModifierKeys} [modifiers=yfiles.view.ModifierKeys.NONE] The state of the modifiers that must be set. This is {@link yfiles.view.ModifierKeys#NONE} if not set. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} - * @static - */ - static create(type:yfiles.view.KeyEventType,value:yfiles.view.Key,modifiers?:yfiles.view.ModifierKeys):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * Creates an event recognizer that matches key presses. - * @param {yfiles.view.Key} key - * @param {yfiles.view.ModifierKeys} [modifiers=0] - * @returns {function(Object, yfiles.lang.EventArgs): boolean} An event recognizer that uses the gesture. - * @static - */ - static createKeyPress(key:yfiles.view.Key,modifiers?:yfiles.view.ModifierKeys):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when escape has been typed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static ESCAPE_TYPED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when any key has been pressed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static KEY_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when any key has been typed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static KEY_TYPED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when any key has been released. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static KEY_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when escape has been pressed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static ESCAPE_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when delete has been pressed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static DELETE_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when escape has been released. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static ESCAPE_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when the shift modifier is active. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static SHIFT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when the alt modifier is active. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static ALT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when the control modifier is active. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static CONTROL_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when the Meta modifier is active. + * Clears the selection on the current {@link yfiles.input.GraphInputMode#graphSelection}. *

    - * Meta maps to the Windows key on Windows platforms and the Command key on Mac. + * This implementation may be overridden for customizations. All it does is call {@link yfiles.view.ISelectionModel.#clear}. *

    - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static META_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + clearSelection():void; /** - * An event recognizer that recognizes when the shift modifier is being pressed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Actually performs the click on the given item. + *

    + * This will raise the {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked}, {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} + * (depending on the button), and {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} events. If + * either event is unhandled by all its event handlers the item will be {@link yfiles.input.GraphInputMode#setSelected selected} and {@link yfiles.input.GraphInputMode#setCurrentItem focused}. Before selection + * {@link yfiles.input.GraphInputMode#clearSelection the current selection will be cleared}, unless the {@link yfiles.input.GraphInputMode#multiSelectionRecognizer} is triggered. + *

    + * @param item The item that has been clicked. + * @param evt The original event arguments for the click. Setting its {@link #handled} property to true will indicate that the click was handled. By + * default this happens when the clicked item is either selected or focused. + * @protected */ - static SHIFT_DOWN:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + click(item:yfiles.graph.IModelItem,evt:yfiles.input.ClickEventArgs):void; /** - * An event recognizer that recognizes when the shift modifier is being released. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Clears the selection on click if {@link yfiles.view.CanvasComponent#lastMouseEvent the click} is not recognized by {@link yfiles.input.GraphInputMode#multiSelectionRecognizer}. + *

    + * This method is only called if no item has been hit and at least one item is currently selected. + *

    + *

    + * This will use the {@link yfiles.input.GraphInputMode#clearSelection} method to deselect all items. + *

    + * @param context The context where the click appeared + * @returns Whether the selection has been cleared by this method. + * @protected */ - static SHIFT_UP:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + clickClearSelection(context:yfiles.input.IInputModeContext):boolean; /** - * An event recognizer that recognizes when the ctrl modifier is being pressed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Copies the currently selected elements to the clipboard. */ - static CTRL_DOWN:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + copy():void; /** - * An event recognizer that recognizes when the Ctrl modifier is being released. - * @const - * @static + * Factory method for the {@link yfiles.input.GraphInputMode#clickInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#clickInputMode} property. + *

    + *

    + * This implementation {@link yfiles.input.ClickInputMode#activeButtons activates} both {@link yfiles.view.MouseButtons#LEFT} and {@link yfiles.view.MouseButtons#RIGHT} + *

    + * @returns a new instance of ClickInputMode + * @protected + */ + createClickInputMode():yfiles.input.ClickInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#contextMenuInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#contextMenuInputMode} property. + *

    + * @returns a new instance of ContextMenuInputMode + * @protected + */ + createContextMenuInputMode():yfiles.input.ContextMenuInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property. + *

    + * @returns a new instance of {@link #itemHoverInputMode} with the {@link #hoverItems} property set to {@link #NONE}. + * @protected + */ + createItemHoverInputMode():yfiles.input.ItemHoverInputMode; + /** + * Factory method that creates the {@link yfiles.input.GraphInputMode#keyboardInputMode} instance. + * @returns + * @protected + */ + createKeyboardInputMode():yfiles.input.KeyboardInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. + *

    + * @returns a new instance of MarqueeSelectionInputMode + * @protected + */ + createMarqueeSelectionInputMode():yfiles.input.MarqueeSelectionInputMode; + /** + * Factory method for the {@link yfiles.input.MouseHoverInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.MouseHoverInputMode} property. + *

    + * @returns a new instance of {@link } + * @protected + */ + createMouseHoverInputMode():yfiles.input.MouseHoverInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property. + *

    + * @returns a new instance of {@link #moveViewportInputMode} + * @protected + */ + createMoveViewportInputMode():yfiles.input.MoveViewportInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#navigationInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#navigationInputMode} property. + *

    + * @returns a new instance of NavigationInputMode + * @protected + */ + createNavigationInputMode():yfiles.input.NavigationInputMode; + /** + * Helper method that yields a suitably configured {@link yfiles.input.SelectionEventArgs.} using the {@link yfiles.input.GraphInputMode#graphSelection} for this input mode. + * @param context An input mode context that is available in the {@link }. + *

    + * Can be null in which case a new context for this instance is created automatically. + *

    + * @returns A selection event argument that is configured for this instance. + * @protected + */ + createSelectionEventArgs(context:yfiles.input.IInputModeContext):yfiles.input.SelectionEventArgs; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#tapInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#tapInputMode} property. + *

    + * @returns a new instance of TapInputMode + * @protected + */ + createTapInputMode():yfiles.input.TapInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#waitInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#waitInputMode} property. + *

    + * @returns a new instance of {@link #waitInputMode} + * @protected + */ + createWaitInputMode():yfiles.input.WaitInputMode; + /** + * Actually performs a double-click on the given item. + *

    + * This will raise the {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} + * (depending on the button), and {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} + * events. + *

    + * @param item The item that has been double-clicked. + * @param evt The original event arguments for the click. Setting its {@link #handled} property to true will indicate that the double-click was + * handled and events on other items in the same location are no longer raised. + * @protected + */ + doubleClick(item:yfiles.graph.IModelItem,evt:yfiles.input.ClickEventArgs):void; + /** + * Actually performs a double-tap on the given item. + *

    + * This will raise the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event. + *

    + * @param item The item that has been double-tapped. + * @param evt The original event arguments for the tap. Setting its {@link #handled} property to true will indicate that the double-tap was handled + * and events on other items in the same location are no longer raised. + * @protected + */ + doubleTap(item:yfiles.graph.IModelItem,evt:yfiles.input.TapEventArgs):void; + /** + * Used as a callback to find the items hit underneath a certain point. + *

    + * This implementation uses the {@link yfiles.input.GraphEditorInputMode#hitTester} to determine the hit items. + *

    + * @param context The context to use for to the {@link #isHit} callback. + * @param location The location to test. + * @param tests An array of {@link } values that encode for which model items the hit test should be performed for + * prioritizing. + * @param [filter=null] The predicate that can be used to filter the results. May be null. + * @returns An enumerable over the items that have been found for the location. + */ + findItems(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,tests:yfiles.graph.GraphItemTypes[],filter?:(obj:yfiles.graph.IModelItem)=>boolean):yfiles.collections.IEnumerable; + /** + * Used as a callback to find the items hit underneath a certain point. + *

    + * This implementation uses the {@link yfiles.input.GraphEditorInputMode#hitTester} to determine the hit items. + *

    + * @param location The location to test. + * @param tests An array of {@link } values that encode for which model items the hit test should be performed for + * prioritizing. + * @param [filter=null] The predicate that can be used to filter the results. May be null. + * @returns An enumerable over the items that have been found for the location. + */ + findItems(location:yfiles.geometry.Point,tests:yfiles.graph.GraphItemTypes[],filter?:(obj:yfiles.graph.IModelItem)=>boolean):yfiles.collections.IEnumerable; + /** + * Called by {@link yfiles.input.GraphInputMode#click} to query the item for an {@link yfiles.input.IClickListener} in its {@link yfiles.graph.ILookup#lookup} + * and handle it appropriately. + *

    + * This method will query the {@link yfiles.input.IClickListener} and check whether it was {@link yfiles.input.IClickListener#getHitTestable hit} by the click, and if so, will invoke + * {@link yfiles.input.IClickListener#onClicked} and return true. + *

    + * @param context The context for the click. + * @param item The item that has been clicked. + * @param location The click location. + * @returns Whether the action has been invoked and handling should be stopped. + * @see yfiles.input.IClickListener + * @see yfiles.input.GraphInputMode#click + * @protected + */ + handleClickListener(context:yfiles.input.IInputModeContext,item:yfiles.graph.IModelItem,location:yfiles.geometry.Point):boolean; + /** + * Performs marquee-selection with the given rectangle. + *

    + * It delegates directly to the {@link yfiles.input.GraphInputMode#onMarqueeSelect} overload internally. + *

    + * @param marqueeRectangle The selection rectangle. + */ + marqueeSelect(marqueeRectangle:yfiles.geometry.Rect):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addCanvasClickedListener CanvasClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ClickEventArgs#handled} property to true. + *

    + * @param evt The {@link } instance that contains the information about the click. + * @protected + */ + onCanvasClicked(evt:yfiles.input.ClickEventArgs):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#clickInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onClickInputModeChanged(oldMode:yfiles.input.ClickInputMode,newMode:yfiles.input.ClickInputMode):void; + /** + * Called when the {@link yfiles.input.ContextMenuInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onContextMenuInputModeChanged(oldMode:yfiles.input.ContextMenuInputMode,newMode:yfiles.input.ContextMenuInputMode):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been clicked. + * @protected + */ + onItemClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been double clicked. + * @protected + */ + onItemDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onItemHoverInputModeChanged(oldMode:yfiles.input.ItemHoverInputMode,newMode:yfiles.input.ItemHoverInputMode):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been clicked. + * @protected + */ + onItemLeftClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been double clicked. + * @protected + */ + onItemLeftDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been clicked. + * @protected + */ + onItemRightClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been double clicked. + * @protected + */ + onItemRightDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#keyboardInputMode} changed. + * @param oldMode The old {@link #keyboardInputMode}. + * @param newMode The new {@link #keyboardInputMode}. + * @protected + */ + onKeyboardInputModeChanged(oldMode:yfiles.input.KeyboardInputMode,newMode:yfiles.input.KeyboardInputMode):void; + /** + * Performs marquee-selection with the given rectangle. + *

    + * This method is called internally when either the {@link yfiles.input.GraphInputMode#marqueeSelect} method is called or the user + * performs a marquee-selection gesture via {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode}. + *

    + * @param context The input mode context. + * @param marqueeRectangle The selection rectangle. + * @protected + */ + onMarqueeSelect(context:yfiles.input.IInputModeContext,marqueeRectangle:yfiles.geometry.Rect):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onMarqueeSelectionInputModeChanged(oldMode:yfiles.input.MarqueeSelectionInputMode,newMode:yfiles.input.MarqueeSelectionInputMode):void; + /** + * Selects the given elements in the editor inside the provided marquee-selection rectangle. + *

    + * This implementation iterates over the items and queries them for an implementation of {@link yfiles.input.IMarqueeTestable} + * using their {@link yfiles.graph.ILookup#lookup}. This instance will be used to determine whether the item should be selected. + *

    + *

    + * This method is, in the default implementation, only called with individual item types in items. + *

    + * @param context The input mode context. + * @param marqueeRectangle The rectangle in world coordinates. + * @param items The items to iterate over. + * @param predicate The predicate that determines whether the provided item should be tested at all. May be null. + * @see yfiles.input.GraphInputMode#setSelected + * @see yfiles.input.GraphInputMode#onMarqueeSelect + * @protected + */ + onMarqueeSelectItems(context:yfiles.input.IInputModeContext,marqueeRectangle:yfiles.geometry.Rect,items:yfiles.collections.IEnumerable,predicate:(obj:yfiles.graph.IModelItem)=>boolean):void; + /** + * Called when the {@link yfiles.input.MouseHoverInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onMouseHoverInputModeChanged(oldMode:yfiles.input.MouseHoverInputMode,newMode:yfiles.input.MouseHoverInputMode):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onMoveViewportInputModeChanged(oldMode:yfiles.input.MoveViewportInputMode,newMode:yfiles.input.MoveViewportInputMode):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addMultiSelectionFinishedListener MultiSelectionFinished} event. + * @param evt + * @protected + */ + onMultiSelectionFinished(evt:yfiles.input.SelectionEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addMultiSelectionStartedListener MultiSelectionStarted} event. + * @param evt + * @protected + */ + onMultiSelectionStarted(evt:yfiles.input.SelectionEventArgs):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#navigationInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onNavigationInputModeChanged(oldMode:yfiles.input.NavigationInputMode,newMode:yfiles.input.NavigationInputMode):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener PopulateItemContextMenu} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onPopulateItemContextMenu(evt:yfiles.input.PopulateItemContextMenuEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener QueryItemToolTip} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onQueryItemToolTip(evt:yfiles.input.QueryItemToolTipEventArgs):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#tapInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onTapInputModeChanged(oldMode:yfiles.input.TapInputMode,newMode:yfiles.input.TapInputMode):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#waitInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onWaitInputModeChanged(oldMode:yfiles.input.WaitInputMode,newMode:yfiles.input.WaitInputMode):void; + /** + * Clears the current selection and selects all nodes and bends in this graph. + *

    + * By default, this method will be called in response to a Ctrl+A key press recognized by {@link yfiles.input.GraphInputMode#keyboardInputMode}. + *

    + * @see yfiles.input.GraphInputMode#clearSelection + * @see yfiles.input.GraphInputMode#setSelected + * @see yfiles.input.ICommand#SELECT_ALL + * @see yfiles.input.GraphInputMode#selectableItems + * @see yfiles.input.GraphInputMode#ignoreVoidStyles + */ + selectAll():void; + /** + * Callback that is used by this instance to set the current item on the {@link yfiles.input.NavigationInputMode#setCurrentItem NavigationInputMode} + * @param item The item to set as the new "current" item. + */ + setCurrentItem(item:yfiles.graph.IModelItem):void; + /** + * Uses the {@link yfiles.input.GraphInputMode#graphSelection} to select the given item. + * @param item The item to set the selection state on. + * @param selected The new selection state. + */ + setSelected(item:yfiles.graph.IModelItem,selected:boolean):void; + /** + * Callback predicate method that is used to determine whether the given item can be {@link yfiles.input.GraphInputMode#click clicked}. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#clickableItems} value to determine whether the item should be clicked. Note that this method will not be + * called for items that don't match {@link yfiles.input.GraphInputMode#clickableItems} for performance reasons. + *

    + * @param item The item to check. + * @returns Whether the item should be {@link #click clicked} in response to a detected mouse click. + * @protected + */ + shouldClick(item:yfiles.graph.IModelItem):boolean; + /** + * Callback predicate method that is used to determine whether the given item should be selected when + * {@link yfiles.input.GraphInputMode#click clicked with the primary mouse button}. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#clickSelectableItems} value to determine whether the item should be selected. Note that this method will not be + * called for items that don't match {@link yfiles.input.GraphInputMode#clickSelectableItems} and {@link yfiles.input.GraphInputMode#selectableItems} for performance reasons. + *

    + * @param item The item to check. + * @returns Whether the item should be selected in response to a detected mouse click with the primary button. + * @protected + */ + shouldClickSelect(item:yfiles.graph.IModelItem):boolean; + /** + * Callback predicate method that is used to determine whether the given item can be {@link yfiles.input.GraphInputMode#doubleClick double clicked}. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#shouldClick} method to determine whether the item should be + * double clicked. Note that this method will not be called for items that don't match {@link yfiles.input.GraphInputMode#clickableItems} for performance reasons. + *

    + * @param item The item to check. + * @returns Whether the item should be {@link #doubleClick double clicked} in response to a detected mouse click. + * @protected + */ + shouldDoubleClick(item:yfiles.graph.IModelItem):boolean; + /** + * Callback that determines whether the provided {@link yfiles.graph.IModelItem} should be {@link yfiles.input.GraphInputMode#setCurrentItem set to the current item}. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#focusableItems} property to determine whether the item can be set to the current item. It also honors the + * {@link yfiles.input.GraphInputMode#ignoreVoidStyles} property. + *

    + * @param item The item to check. + * @returns Whether to set the item as the current item. + * @protected + */ + shouldFocus(item:yfiles.graph.IModelItem):boolean; + /** + * Callback method that is used to determine which of the built-in {@link yfiles.input.ICommand}s to install. + *

    + * This implementation unconditionally returns true, subclasses may override this method to adjust the behavior. + *

    + * @param command The command to install. + * @returns Whether to install this command. + * @protected + */ + shouldInstallCommand(command:yfiles.input.ICommand):boolean; + /** + * Callback method used by {@link yfiles.input.GraphInputMode#marqueeSelect} that takes {@link yfiles.input.GraphInputMode#marqueeSelectableItems} and {@link yfiles.input.GraphInputMode#shouldSelectItem} + * into account. + * @param item The item to check. + * @returns Whether to possibly marquee select the item. + * @protected + */ + shouldMarqueeSelect(item:yfiles.graph.IModelItem):boolean; + /** + * Determines whether for the given item a context menu should be queried. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#contextMenuItems} property to determine whether a context menu should be queried for the given item. + *

    + * @param item The item to check. + * @returns Whether to raise a {@link #addPopulateItemContextMenuListener PopulateItemContextMenu} event for + * the given item. + * @protected + */ + shouldPopulateContextMenu(item:yfiles.graph.IModelItem):boolean; + /** + * Determines whether for the given item a tool tip should be queried. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#toolTipItems} property to determine whether tool tip should be queried for the given item. + *

    + * @param item The item to check. + * @returns Whether to raise a {@link #addQueryItemToolTipListener QueryItemToolTip} event for the + * given item. + * @protected + */ + shouldQueryToolTip(item:yfiles.graph.IModelItem):boolean; + /** + * Callback predicate method that is used as a broad classification whether an item can generally be selected. + *

    + * This implementation uses and honors the {@link yfiles.input.GraphInputMode#selectableItems}, {@link yfiles.input.GraphInputMode#ignoreVoidStyles} and {@link yfiles.input.GraphInputMode#selectablePredicate} properties. This method is by default also called by {@link yfiles.input.GraphInputMode#shouldClickSelect} + * and {@link yfiles.input.GraphInputMode#shouldMarqueeSelect}, so turning selection off here also turns it off in other places. + *

    + * @param item The item to check. + * @returns true if the item is selectable in general, false if not. + * @protected + */ + shouldSelectItem(item:yfiles.graph.IModelItem):boolean; + /** + * Actually performs the tap on the given item. + *

    + * This will raise the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event. If the event + * is unhandled by all its event handlers the item will be {@link yfiles.input.GraphInputMode#setSelected selected} and {@link yfiles.input.GraphInputMode#setCurrentItem focused}. Before selection + * {@link yfiles.input.GraphInputMode#clearSelection the current selection will be cleared}. + *

    + * @param item The item that has been tapped. + * @param evt The original event arguments for the tap. Setting its {@link #handled} property to true will indicate that the tap was handled. By + * default this happens when the tapped item is either selected or focused. + * @protected + */ + tap(item:yfiles.graph.IModelItem,evt:yfiles.input.TapEventArgs):void; + /** + * Gets the graph instance from the {@link yfiles.input.MultiplexingInputMode#inputModeContext}. + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * Gets the graph selection from the {@link yfiles.input.MultiplexingInputMode#inputModeContext}. + * @type {yfiles.view.IGraphSelection} + */ + graphSelection:yfiles.view.IGraphSelection; + /** + * Gets or sets the order of the types of items that should be used to determine what item has been clicked or tapped. + *

    + * Change this field to adjust which items will be {@link yfiles.input.GraphInputMode#setSelected selected} if there are multiple items at a given location. The default + * order is + *

    + *
      + *
    • {@link yfiles.graph.GraphItemTypes#BEND}
    • + *
    • {@link yfiles.graph.GraphItemTypes#EDGE_LABEL}
    • + *
    • {@link yfiles.graph.GraphItemTypes#EDGE}
    • + *
    • {@link yfiles.graph.GraphItemTypes#NODE}
    • + *
    • {@link yfiles.graph.GraphItemTypes#NODE_LABEL}
    • + *
    • {@link yfiles.graph.GraphItemTypes#PORT}
    • + *
    + * @see yfiles.input.GraphInputMode#clickSelectableItems + * @see yfiles.input.GraphInputMode#selectableItems + * @see yfiles.input.GraphInputMode#findItems + * @type {Array.} + */ + clickHitTestOrder:yfiles.graph.GraphItemTypes[]; + /** + * Gets or sets the order of the types of items that should be used to determine what item has been double-clicked or + * double-tapped. + *

    + * Change this field to adjust which items will be considered when {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener double-clicked} if there are multiple items at a given + * location. The default order is + *

    + *
      + *
    • {@link yfiles.graph.GraphItemTypes#EDGE_LABEL}
    • + *
    • {@link yfiles.graph.GraphItemTypes#NODE_LABEL}
    • + *
    • {@link yfiles.graph.GraphItemTypes#BEND}
    • + *
    • {@link yfiles.graph.GraphItemTypes#EDGE}
    • + *
    • {@link yfiles.graph.GraphItemTypes#NODE}
    • + *
    • {@link yfiles.graph.GraphItemTypes#PORT}
    • + *
    + * @see yfiles.input.GraphInputMode#clickSelectableItems + * @see yfiles.input.GraphInputMode#selectableItems + * @see yfiles.input.GraphInputMode#findItems + * @type {Array.} + */ + doubleClickHitTestOrder:yfiles.graph.GraphItemTypes[]; + /** + * Gets or sets the event recognizer that will be queried to decide if a click should select the item that is currently + * visible under the mouse cursor, without giving more important items higher priority. + *

    + * If the recognizer determines that the user wanted to use the detail clicking behavior, the {@link yfiles.input.GraphEditorInputMode#hitTester} will be queried for the + * given item and the first item that is returned will be considered a hit. Otherwise all hit items are examined and are + * prioritized by item type. E.g. by default clicking on a node will select the node, even if there is a node label which + * has been clicked at the same point. If detail selection is recognized, the label will be selected. + *

    + *

    + * The default is {@link yfiles.input.KeyEventRecognizers#SHIFT_PRESSED}. + *

    * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static CTRL_UP:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + detailSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * Gets or sets the event recognizer that will be queried to decide if a click should cycle through all the items that are + * currently under the mouse cursor. + *

    + * If the recognizer determines that the user wanted to use the cyclic click selection behavior, the {@link yfiles.input.GraphEditorInputMode#hitTester} will be queried for + * the given item and previously reported items will be ignored. E.g. if multiple nodes are overlapping each other, + * clicking on them will report the first item for the first click, the second one for the second click and so on. If all + * elements have been reported previously, the first one is going to be reported again. If the order of the elements at the + * clicked location changes, the cyclic selection is restarted anew. + *

    + *

    + * The default is {@link yfiles.input.KeyEventRecognizers#ALT_PRESSED}. + *

    + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + cyclicSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * Gets or sets the event recognizer that will be queried to decide if a click is deemed a multi selection gesture. + *

    + * The default is a combination of {@link yfiles.input.KeyEventRecognizers#CONTROL_PRESSED} or + * {@link yfiles.input.KeyEventRecognizers#META_PRESSED}. + *

    + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + multiSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * Determines which types of items should be reported through the {@link yfiles.input.GraphInputMode#addItemClickedListener item click events}. + *

    + * This also affects taps. + *

    + *

    + * The default is {@link yfiles.graph.GraphItemTypes#ALL}. + *

    + * @see yfiles.input.GraphInputMode#shouldClick + * @type {yfiles.graph.GraphItemTypes} + */ + clickableItems:yfiles.graph.GraphItemTypes; + /** + * Gets or sets the items that can be given focus via the {@link yfiles.input.GraphInputMode#setCurrentItem} method. + *

    + * The focusable items. The default is {@link yfiles.graph.GraphItemTypes#NODE} + *

    + * @default yfiles.graph.GraphItemTypes.NODE + * @type {yfiles.graph.GraphItemTypes} + */ + focusableItems:yfiles.graph.GraphItemTypes; + /** + * Determines which types of items should be selectable at all. + *

    + * The default is {@link yfiles.graph.GraphItemTypes#ALL}. + *

    + * @see yfiles.input.GraphInputMode#setSelected + * @type {yfiles.graph.GraphItemTypes} + */ + selectableItems:yfiles.graph.GraphItemTypes; + /** + * Gets or sets a predicate that is queried to determine whether a given {@link yfiles.graph.IModelItem} is selectable. + *

    + * This allows to further restrict which items are selectable, compared to {@link yfiles.input.GraphInputMode#selectableItems}. If this property is set to null the effect is + * the same as a predicate that always returns true. + *

    + * @type {function(yfiles.graph.IModelItem): boolean} + */ + selectablePredicate:(obj:yfiles.graph.IModelItem)=>boolean; + /** + * Determines which types of items should be selectable by mouse clicks. + *

    + * The default is {@link yfiles.graph.GraphItemTypes#ALL}. + *

    + * @see yfiles.input.GraphInputMode#shouldClickSelect + * @see yfiles.input.GraphInputMode#setSelected + * @type {yfiles.graph.GraphItemTypes} + */ + clickSelectableItems:yfiles.graph.GraphItemTypes; + /** + * Determines which types of items should be selected during {@link yfiles.input.GraphInputMode#marqueeSelect marquee selections}. + *

    + * The default is a combination of {@link yfiles.graph.GraphItemTypes#NODE}, {@link yfiles.graph.GraphItemTypes#EDGE}, and + * {@link yfiles.graph.GraphItemTypes#BEND}. + *

    + * @see yfiles.input.GraphInputMode#shouldMarqueeSelect + * @see yfiles.input.GraphInputMode#setSelected + * @type {yfiles.graph.GraphItemTypes} + */ + marqueeSelectableItems:yfiles.graph.GraphItemTypes; + /** + * Gets or sets a value indicating whether void styles ({@link yfiles.styles.VoidNodeStyle}, {@link yfiles.styles.VoidEdgeStyle}, + * {@link yfiles.styles.VoidLabelStyle}, and {@link yfiles.styles.VoidPortStyle}) should be ignored when selecting or focusing items. + * @type {boolean} + */ + ignoreVoidStyles:boolean; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#contextMenuInputMode} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createContextMenuInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onContextMenuInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 60. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.ContextMenuInputMode} + */ + contextMenuInputMode:yfiles.input.ContextMenuInputMode; + /** + * Gets or sets the types of items a context menu should be queried for. + *

    + * The items for which a context menu should be {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener queried}. The default value is + * {@link yfiles.graph.GraphItemTypes#NODE}|{@link yfiles.graph.GraphItemTypes#EDGE}. + *

    + * @default 1 | 2 + * @type {yfiles.graph.GraphItemTypes} + */ + contextMenuItems:yfiles.graph.GraphItemTypes; + /** + * Adds the given listener for the PopulateItemContextMenu event that occurs when the {@link yfiles.input.ContextMenuInputMode context menu} over an item is about to + * be opened to determine the contents of the Menu. + *

    + * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#contextMenuItems} type. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#removePopulateItemContextMenuListener + */ + addPopulateItemContextMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateItemContextMenuEventArgs)=>void):void; + /** + * Removes the given listener for the PopulateItemContextMenu event that occurs when the {@link yfiles.input.ContextMenuInputMode context menu} over an item is about + * to be opened to determine the contents of the Menu. + *

    + * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#contextMenuItems} type. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addPopulateItemContextMenuListener + */ + removePopulateItemContextMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateItemContextMenuEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#mouseHoverInputMode} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMouseHoverInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMouseHoverInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 100. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.MouseHoverInputMode} + */ + mouseHoverInputMode:yfiles.input.MouseHoverInputMode; + /** + * Gets the types of the items that should be queried a tool tip for. + *

    + * The items for which a tool tip text should be {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener queried}. The default value is + * {@link yfiles.graph.GraphItemTypes#NODE}|{@link yfiles.graph.GraphItemTypes#EDGE}|{@link yfiles.graph.GraphItemTypes#LABEL}|{@link yfiles.graph.GraphItemTypes#PORT}|. + *

    + * @default 1 | 2 | 12 | 16 + * @type {yfiles.graph.GraphItemTypes} + */ + toolTipItems:yfiles.graph.GraphItemTypes; + /** + * Adds the given listener for the QueryItemToolTip event that occurs when the mouse is {@link yfiles.input.MouseHoverInputMode hovering} over an item to determine + * the tool tip to display. + *

    + * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#toolTipItems} type. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#removeQueryItemToolTipListener + */ + addQueryItemToolTipListener(listener:(sender:Object,evt:yfiles.input.QueryItemToolTipEventArgs)=>void):void; + /** + * Removes the given listener for the QueryItemToolTip event that occurs when the mouse is {@link yfiles.input.MouseHoverInputMode hovering} over an item to + * determine the tool tip to display. + *

    + * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#toolTipItems} type. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addQueryItemToolTipListener + */ + removeQueryItemToolTipListener(listener:(sender:Object,evt:yfiles.input.QueryItemToolTipEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.input.ClickInputMode} that is used by this instance to determine clicks. + *

    + * Whenever the mode detects a {@link yfiles.input.ClickInputMode#addClickedListener click}, this mode will use the {@link yfiles.input.IHitTester.} from the {@link yfiles.input.MultiplexingInputMode#inputModeContext} to determine the items being hit. If they match the + * {@link yfiles.input.GraphInputMode#clickableItems} type, the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will be triggered. If + * they {@link yfiles.input.GraphInputMode#shouldFocus}, the item will be {@link yfiles.input.GraphInputMode#setCurrentItem set as the current item}. + *

    + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createClickInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onClickInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 10. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @see yfiles.input.GraphInputMode#onItemClicked + * @type {yfiles.input.ClickInputMode} + */ + clickInputMode:yfiles.input.ClickInputMode; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#tapInputMode} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createTapInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onTapInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 20. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.TapInputMode} + */ + tapInputMode:yfiles.input.TapInputMode; + /** + * Adds the given listener for the ItemClicked event that occurs when an item has been clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. + *

    + *

    + * This event will also be raised for {@link yfiles.input.GraphInputMode#tap taps}. + *

    + *

    + * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} and + * {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked}) will be raised before this event. + * If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftClickedListener + * @see yfiles.input.GraphInputMode#addItemRightClickedListener + * @see yfiles.input.GraphInputMode#removeItemClickedListener + */ + addItemClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemClicked event that occurs when an item has been clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. + *

    + *

    + * This event will also be raised for {@link yfiles.input.GraphInputMode#tap taps}. + *

    + *

    + * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} and + * {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked}) will be raised before this event. + * If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftClickedListener + * @see yfiles.input.GraphInputMode#addItemRightClickedListener + * @see yfiles.input.GraphInputMode#addItemClickedListener + */ + removeItemClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the ItemLeftClicked event that occurs when an item has been left clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that + * case. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#addItemRightClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#removeItemLeftClickedListener + */ + addItemLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemLeftClicked event that occurs when an item has been left clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that + * case. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#addItemRightClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftClickedListener + */ + removeItemLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the ItemRightClicked event that occurs when an item has been right clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that + * case. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#removeItemRightClickedListener + */ + addItemRightClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemRightClicked event that occurs when an item has been right clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that + * case. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightClickedListener + */ + removeItemRightClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the ItemDoubleClicked event that occurs when an item has been double clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. + *

    + *

    + * Depending on the value of the {@link yfiles.input.ClickInputMode#doubleClickPolicy} property of {@link yfiles.input.GraphInputMode#clickInputMode} this event may be preceded by no, one, or two {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * events (as well as the corresponding button-specific event). + *

    + *

    + * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and + * {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked}) will be raised before this + * event. If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#removeItemDoubleClickedListener + */ + addItemDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemDoubleClicked event that occurs when an item has been double clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. + *

    + *

    + * Depending on the value of the {@link yfiles.input.ClickInputMode#doubleClickPolicy} property of {@link yfiles.input.GraphInputMode#clickInputMode} this event may be preceded by no, one, or two {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * events (as well as the corresponding button-specific event). + *

    + *

    + * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and + * {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked}) will be raised before this + * event. If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + */ + removeItemDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the ItemLeftDoubleClicked event that occurs when an item has been left double clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised + * in that case. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#removeItemLeftDoubleClickedListener + */ + addItemLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemLeftDoubleClicked event that occurs when an item has been left double clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised + * in that case. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + */ + removeItemLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the ItemRightDoubleClicked event that occurs when an item has been right double clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised + * in that case. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#removeItemRightDoubleClickedListener + */ + addItemRightDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemRightDoubleClicked event that occurs when an item has been right double clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised + * in that case. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + */ + removeItemRightDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the CanvasClicked event that occurs when the empty canvas area has been clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ClickEventArgs#handled} property to true the event will not be propagated anymore. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#removeCanvasClickedListener + */ + addCanvasClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; + /** + * Removes the given listener for the CanvasClicked event that occurs when the empty canvas area has been clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ClickEventArgs#handled} property to true the event will not be propagated anymore. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#addCanvasClickedListener + */ + removeCanvasClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMarqueeSelectionInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMarqueeSelectionInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 50. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.MarqueeSelectionInputMode} + */ + marqueeSelectionInputMode:yfiles.input.MarqueeSelectionInputMode; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#navigationInputMode} property. + *

    + * This mode is responsible for navigating and traversing the elements in the {@link yfiles.graph.IGraph}. If the field has not yet + * been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createNavigationInputMode} will be + * called. Upon change the {@link yfiles.input.GraphInputMode#onNavigationInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 55. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.NavigationInputMode} + */ + navigationInputMode:yfiles.input.NavigationInputMode; + /** + * Adds the given listener for the MultiSelectionStarted event that occurs when a single or multi select operation has been + * started. + *

    + * The event is not triggered for the individual selection operations that constitute a multi selection operation. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#removeMultiSelectionStartedListener + */ + addMultiSelectionStartedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; + /** + * Removes the given listener for the MultiSelectionStarted event that occurs when a single or multi select operation has + * been started. + *

    + * The event is not triggered for the individual selection operations that constitute a multi selection operation. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addMultiSelectionStartedListener + */ + removeMultiSelectionStartedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; + /** + * Adds the given listener for the MultiSelectionFinished event that occurs when a single or multi select operation has + * been finished. + *

    + * The event is not triggered for the individual selection operations that constitute a multi selection operation. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#removeMultiSelectionFinishedListener + */ + addMultiSelectionFinishedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; + /** + * Removes the given listener for the MultiSelectionFinished event that occurs when a single or multi select operation has + * been finished. + *

    + * The event is not triggered for the individual selection operations that constitute a multi selection operation. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addMultiSelectionFinishedListener + */ + removeMultiSelectionFinishedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.input.WaitInputMode} that is provided by this instance for those who need to make use of it. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createWaitInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onWaitInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of -1. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @see yfiles.input.WaitInputMode#waiting + * @type {yfiles.input.WaitInputMode} + */ + waitInputMode:yfiles.input.WaitInputMode; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#itemHoverInputMode} that is provided by this instance for those who need to make use of it. + *

    + * Note that initially the {@link yfiles.input.ItemHoverInputMode#hoverItems} property is set to + * {@link yfiles.graph.GraphItemTypes#NONE}, which effectively disables the functionality of the mode initially. In order to get + * the mode to fire events, the property should be set to a corresponding value. + *

    + *

    + * If the backing field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createItemHoverInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onItemHoverInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 55. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.ItemHoverInputMode} + */ + itemHoverInputMode:yfiles.input.ItemHoverInputMode; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#moveViewportInputMode} associated with this instance. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMoveViewportInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMoveViewportInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 39. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.MoveViewportInputMode} + */ + moveViewportInputMode:yfiles.input.MoveViewportInputMode; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#keyboardInputMode}. + *

    + * By default this input mode has a priority of 0. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.KeyboardInputMode} + */ + keyboardInputMode:yfiles.input.KeyboardInputMode; + /** + * Gets a collection of commands that this input mode will handle. + *

    + * This collection can be modified by removing commands to prevent the input mode from handling them. Previously removed + * commands can also be re-added again to enable them again. However, the input mode will never handle commands that + * weren't in the initial collection. Adding those will do nothing. + *

    + * @type {yfiles.collections.ICollection.} + */ + availableCommands:yfiles.collections.ICollection; + /** + * Gets or sets a property that determines whether clipboard operations with the usual shortcuts are enabled on the + * canvas. + *

    + * Default value is true + *

    + * @default true + * @type {boolean} + */ + allowClipboardOperations:boolean; static $class:yfiles.lang.Class; } /** - * A utility class that offers event recognizers that deal with {@link yfiles.view.MouseEventArgs}. - * @class yfiles.input.MouseEventRecognizers - * @static + * An {@link yfiles.input.IInputMode} implementation for use in a {@link yfiles.view.GraphComponent} to assign to the {@link yfiles.view.CanvasComponent#inputMode} property. + *

    + * This mode can be used in a viewer-centric application where there is no need to modify the {@link yfiles.graph.IGraph} but + * browsing of the graph should be convenient. This mode allows for {@link yfiles.input.GraphInputMode#addItemClickedListener clicking on items using the mouse}, + * {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener displaying tool tips for items}, {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener showing a context menu}, {@link yfiles.input.NavigationInputMode allowing for easy navigation and traversal}, + * {@link yfiles.input.MoveViewportInputMode moving the view port}, and {@link yfiles.input.GraphInputMode#marqueeSelectableItems optionally doing marquee selection}. Also {@link yfiles.input.ItemHoverInputMode} can be used to get + * notified of the elements that the mouse is hovering over. + *

    + *

    + * Due to the viewer-centric nature of this input mode, collapsing and expanding groups is disabled per default. To enable + * this feature, set {@link yfiles.input.NavigationInputMode#allowCollapseGroup} and {@link yfiles.input.NavigationInputMode#allowExpandGroup} to true. + *

    + *

    + * This input mode manages a set of specialized input modes, each handling a specific part of the interaction with the + * graph. The following list details those along with their default + * {@link yfiles.input.IInputMode#priority priorities}. Lower priorities come earlier when handing events. + *

    + *
      + *
    • {@link yfiles.input.WaitInputMode} (−1) – Disables this input mode when layouts or animations run.
    • + *
    • {@link yfiles.input.KeyboardInputMode} (0) – Handles commands and arbitrary keyboard shortcuts.
    • + *
    • {@link yfiles.input.ClickInputMode} (10) – Handles mouse clicks and double-clicks.
    • + *
    • {@link yfiles.input.TapInputMode} (20) – Handles taps and double-tap.
    • + *
    • {@link yfiles.input.MarqueeSelectionInputMode} (30) – Allows dragging a rectangle to select items within it.
    • + *
    • {@link yfiles.input.MoveViewportInputMode} (39) – Allows panning the viewport.
    • + *
    • {@link yfiles.input.ItemHoverInputMode} (55) – Provides events to indicate that the mouse pointer hovers over an item.
    • + *
    • {@link yfiles.input.NavigationInputMode} (55) – Provides general navigation facilities, such as navigating from one item to another with the arrow keys.
    • + *
    • {@link yfiles.input.ContextMenuInputMode} (60) – Handles querying the context menu contents based on a location as well as preparing the menu for display.
    • + *
    • {@link yfiles.input.MouseHoverInputMode} (100) – Handles tool tips.
    • + *
    + * @class + * @extends {yfiles.input.GraphInputMode} */ - export interface MouseEventRecognizers extends Object{} - export class MouseEventRecognizers { + export interface GraphViewerInputMode extends yfiles.input.GraphInputMode{} + export class GraphViewerInputMode { /** - * An event recognizer that identifies mouse movements that are not drags. - * @see yfiles.input.MouseEventRecognizers#DRAGGED - * @see yfiles.input.MouseEventRecognizers#MOVED_OR_DRAGGED - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Initializes a new instance of the {@link yfiles.input.GraphViewerInputMode} class. */ - static MOVED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse movements. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static MOVED_OR_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse movements. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse movements. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse input capture lost events. - *

    - * This event will occur often, especially after all mouse buttons have been released. More relevant for - * {@link yfiles.input.IInputMode}s is the {@link yfiles.input.MouseEventRecognizers#LOST_CAPTURE_DURING_DRAG} event recognizer. - *

    - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LOST_CAPTURE:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse input capture lost events while at least one mouse button was pressed. - *

    - * Since the mouse capture has been lost, the necessary {@link yfiles.view.MouseEventTypes#UP} events will never be triggered. This - * recognizer is useful for identifying this situation. - *

    - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LOST_CAPTURE_DURING_DRAG:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies left mouse button clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LEFT_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies button clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies button multi-clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static MULTI_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies right mouse button clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RIGHT_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies middle mouse button clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static MIDDLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies left mouse button double clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LEFT_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies right mouse button double clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RIGHT_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies middle mouse button double clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static MIDDLE_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies left mouse button press events. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LEFT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies left mouse button release events. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LEFT_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies right mouse button press events. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RIGHT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies right mouse button release events. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RIGHT_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse drag events. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies left mouse button drags. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LEFT_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies when the has left the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static EXITED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies when the mouse has entered the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static ENTERED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies right mouse button drags. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RIGHT_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies middle mouse button drags. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static MIDDLE_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + constructor(); static $class:yfiles.lang.Class; } /** - * A utility class that offers event recognizers that deal with {@link yfiles.view.TouchEventArgs}. - * @class yfiles.input.TouchEventRecognizers - * @static + * A simple interface that can be used to react to clicks on regions of {@link yfiles.styles.INodeStyle}s etc. + *

    + * {@link yfiles.input.GraphEditorInputMode} will query the {@link yfiles.graph.IModelItem}'s Lookup method for this interface if it has + * detected {@link yfiles.input.GraphInputMode#click}s. If the item yields an instance of this interface and the click was inside + * the {@link yfiles.input.IClickListener#getHitTestable}, then {@link yfiles.input.IClickListener#onClicked} is invoked. + *

    + * @see yfiles.input.GraphEditorInputMode + * @see yfiles.styles.CollapsibleNodeStyleDecorator + * @interface */ - export interface TouchEventRecognizers extends Object{} - export class TouchEventRecognizers { + export interface IClickListener extends Object{ /** - * An event recognizer that identifies touch movements of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Gets an {@link yfiles.input.IHitTestable} that can be used to check if {@link yfiles.input.IClickListener#onClicked} should be invoked. + * @returns A hit testable that can determine whether {@link #onClicked} should be invoked by a given click. + * @abstract */ - static TOUCH_MOVED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getHitTestable():yfiles.input.IHitTestable; /** - * An event recognizer that identifies the loss of touch capture for the any device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Called by the framework to indicate that the {@link yfiles.graph.IModelItem} has been clicked by the user at the specified + * location. + *

    + * This method is called by {@link yfiles.input.GraphInputMode#click} for the + * {@link yfiles.graph.IModelItem}s that yielded an instance of this interface. + *

    + * @param context The context to use for the click operation. + * @param location The location of the click + * @abstract */ - static LOST_CAPTURE:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + onClicked(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):void; + } + var IClickListener:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An interface for classes that can yield {@link yfiles.input.IHandle} implementations for the {@link yfiles.graph.IEdge#sourcePort source} and {@link yfiles.graph.IEdge#targetPort target} ends of an + * {@link yfiles.graph.IEdge}. + *

    + * This interface will be queried by the default implementation of the {@link yfiles.input.IHandleProvider} that is in the lookup + * of an {@link yfiles.graph.IEdge}. It is recommended to use this interface instead of the more generic {@link yfiles.input.IHandleProvider} + * interface, because other generic code can then use this interface to gain access to a specific {@link yfiles.input.IHandle} more + * easily. + *

    + * @interface + */ + export interface IEdgePortHandleProvider extends Object{ /** - * An event recognizer that identifies the loss of touch capture for the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Gets an {@link yfiles.input.IHandle} implementation for one end of the provided edge. + * @param context The context in which the handle will be used. + * @param edge The edge for which an handle is needed. + * @param sourceHandle if set to true the handle for the source side/port should be returned. + * @returns The handle to use for the provided side or null. + * @abstract */ - static LOST_CAPTURE_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getHandle(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourceHandle:boolean):yfiles.input.IHandle; + } + var IEdgePortHandleProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Helper interface to customize interactive label editing. + *

    + * Implementations of this interface can be put into the {@link yfiles.graph.ILookup} of {@link yfiles.graph.ILabelOwner}s and + * {@link yfiles.graph.ILabel}s so that it is possible to tweak the behavior on a case by case basis. + *

    + *

    + * Conceptually, in most cases, implementations of this interface behaves like an additional event handler for {@link yfiles.input.GraphEditorInputMode#addLabelAddingListener LabelAdding} + * and {@link yfiles.input.GraphEditorInputMode#addLabelEditingListener LabelEditing}. If no event handler + * handled those events, an {@link yfiles.input.IEditLabelHelper} will be queried from the {@link yfiles.graph.ILookup} and the unhandled + * event arguments passed to the respective methods. + *

    + * @see yfiles.input.EditLabelHelper + * @see yfiles.input.GraphEditorInputMode#createLabel + * @see yfiles.input.GraphEditorInputMode#editLabel + * @see yfiles.input.GraphEditorInputMode#addLabel + * @see yfiles.input.GraphEditorInputMode#addLabelAddingListener + * @see yfiles.input.GraphEditorInputMode#addLabelEditingListener + * @interface + */ + export interface IEditLabelHelper extends Object{ /** - * An event recognizer that identifies the loss of touch capture for the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Helper method that will be called when trying to add a label to an {@link yfiles.graph.ILabelOwner}. + *

    + * Implementations of this method can set the {@link yfiles.graph.ILabel#style}, {@link yfiles.graph.ILabel#layoutParameter}, {@link yfiles.graph.ILabel#preferredSize}, and {@link yfiles.graph.ITagOwner#tag} for newly-added labels by setting the appropriate properties on + * args. + *

    + *

    + * Setting the {@link yfiles.input.LabelEditingEventArgs#cancel} property on args to true will disallow label creation. + *

    + * @param evt The original event arguments. + * @see yfiles.input.IEditLabelHelper#onLabelEditing + * @abstract */ - static LOST_CAPTURE_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + onLabelAdding(evt:yfiles.input.LabelEditingEventArgs):void; /** - * An event recognizer that identifies touch movements of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Helper method that will be called when trying to edit a label. + *

    + * This method can be called for editing labels for an {@link yfiles.graph.ILabelOwner}, in which case the {@link yfiles.input.LabelEditingEventArgs#label} property on args will + * be null, but the {@link yfiles.input.LabelEditingEventArgs#owner} property will be non-null. It can also be called for editing a specific label, in which case the {@link yfiles.input.LabelEditingEventArgs#label} + * property on args will be non-null, and the {@link yfiles.input.LabelEditingEventArgs#owner} property will be set to the label's owner. + *

    + *

    + * Implementations of this method can set a specific label to be edited, by setting the {@link yfiles.input.LabelEditingEventArgs#label} property of the args to an + * existing label instance. This label does not need to belong to the same owner that is queried for. Setting the {@link yfiles.input.LabelEditingEventArgs#label} property + * to null will not edit an existing label, but instead add a new one on the {@link yfiles.graph.ILabelOwner} set in the {@link yfiles.input.LabelEditingEventArgs#owner} + * property. + *

    + *

    + * When a new label is added, the properties {@link yfiles.input.LabelEditingEventArgs#style}, {@link yfiles.input.LabelEditingEventArgs#layoutParameter}, {@link yfiles.input.LabelEditingEventArgs#preferredSize}, and {@link yfiles.input.LabelEditingEventArgs#tag} are used for the newly-created label, just as in + * {@link yfiles.input.IEditLabelHelper#onLabelAdding}. + *

    + *

    + * Setting the {@link yfiles.input.LabelEditingEventArgs#cancel} property on args to true will disallow label editing and creation. + *

    + * @param evt The original event arguments. + * @see yfiles.input.IEditLabelHelper#onLabelAdding + * @abstract */ - static TOUCH_DOWN_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + onLabelEditing(evt:yfiles.input.LabelEditingEventArgs):void; + } + var IEditLabelHelper:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Provides the snap lines and the snap results to the {@link yfiles.input.LabelSnapContext} during dragging of labels. + * @see yfiles.input.LabelSnapContext + * @see yfiles.graph.LabelDecorator#labelSnapContextHelperDecorator + * @interface + */ + export interface ILabelSnapContextHelper extends Object{ /** - * An event recognizer that identifies touch movements of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Called during {@link yfiles.input.IDragHandler#initializeDrag initialization} of a label dragging to add {@link yfiles.input.SnapLine snap lines} to which the label can potentially snap to the + * snapContext. + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * the context explicitly. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The label that is dragged. + * @abstract */ - static TOUCH_UP_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + addSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; /** - * An event recognizer that identifies touch taps of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Called while the given label is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult snap results} for the {@link yfiles.input.SnapLine snap lines} provided by the context. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the necessary information from and {@link #addSnapResult add results to}. + * @param suggestedLayout The {@link #layout layout} of the label that would be used without snapping. + * @param label The label that is dragged. + * @abstract */ - static TOUCH_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + collectSnapResults(context:yfiles.input.LabelSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.IOrientedRectangle,label:yfiles.graph.ILabel):void; + } + var ILabelSnapContextHelper:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An interface used by implementations that provide various size constraints for {@link yfiles.graph.INode}s. + *

    Related demos:

    + *
      + *
    • Demo: SizeConstraintProvider, demo.yfiles.input.sizeconstraintprovider
    • + *
    + * @see yfiles.input.NodeSizeConstraintProvider + * @interface + */ + export interface INodeSizeConstraintProvider extends Object{ /** - * An event recognizer that identifies touch double-taps of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Returns the maximum size allowed for the given node. + * @param node The node to return the maximum size for. + * @returns The maximum size or {@link #INFINITE} if there is no constraint on the size. + * @abstract */ - static TOUCH_DOUBLE_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMaximumSize(node:yfiles.graph.INode):yfiles.geometry.Size; /** - * An event recognizer that identifies touch multi-taps of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Returns the minimum area that needs to be enclosed by the given node. + * @param node The node to return the area for. + * @returns The area to enclose or {@link #EMPTY} if there is no constraint on the size due to an enclosed area. + * @abstract */ - static TOUCH_MULTI_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMinimumEnclosedArea(node:yfiles.graph.INode):yfiles.geometry.Rect; /** - * An event recognizer that identifies when the primary device has left the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Returns the minimum size allowed for the given node. + * @param node The node to return the minimum size for. + * @returns The minimum size or {@link #EMPTY} if there is no constraint on the size. + * @abstract */ - static TOUCH_EXITED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMinimumSize(node:yfiles.graph.INode):yfiles.geometry.Size; + } + var INodeSizeConstraintProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A simple default implementation of {@link yfiles.input.INodeSizeConstraintProvider} + * @class + * @implements {yfiles.input.INodeSizeConstraintProvider} + */ + export interface NodeSizeConstraintProvider extends Object,yfiles.input.INodeSizeConstraintProvider{} + export class NodeSizeConstraintProvider { /** - * An event recognizer that identifies when the primary device has entered the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Creates a new instance using the provided size instances as the initial values. + *

    + * Not specifing the minimumEnclosedArea will set it to {@link yfiles.geometry.Rect#EMPTY}. + *

    + * @param minimumSize The {@link #minimumSize}. + * @param maximumSize The {@link #maximumSize}. + * @param [minimumEnclosedArea=null] The {@link #minimumEnclosedArea}. */ - static TOUCH_ENTERED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + constructor(minimumSize:yfiles.geometry.ISize,maximumSize:yfiles.geometry.ISize,minimumEnclosedArea?:yfiles.geometry.IRectangle); /** - * An event recognizer that identifies long presses of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * + * @param node + * @returns */ - static TOUCH_LONG_PRESSED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMaximumSize(node:yfiles.graph.INode):yfiles.geometry.Size; /** - * An event recognizer that identifies touch movements of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * + * @param node + * @returns */ - static TOUCH_MOVED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMinimumEnclosedArea(node:yfiles.graph.INode):yfiles.geometry.Rect; /** - * An event recognizer that identifies touch movements of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * + * @param node + * @returns */ - static TOUCH_DOWN_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMinimumSize(node:yfiles.graph.INode):yfiles.geometry.Size; /** - * An event recognizer that identifies touch movements of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMaximumSize}. + * @type {yfiles.geometry.ISize} */ - static TOUCH_UP_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + maximumSize:yfiles.geometry.ISize; /** - * An event recognizer that identifies touch taps of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMinimumEnclosedArea}. + * @type {yfiles.geometry.IRectangle} */ - static TOUCH_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + minimumEnclosedArea:yfiles.geometry.IRectangle; /** - * An event recognizer that identifies touch double-taps of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMinimumSize}. + * @type {yfiles.geometry.ISize} */ - static TOUCH_DOUBLE_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies touch multi-taps of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static TOUCH_MULTI_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies when the secondary device has left the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static TOUCH_EXITED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies when the secondary device has entered the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static TOUCH_ENTERED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies long presses of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static TOUCH_LONG_PRESSED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + minimumSize:yfiles.geometry.ISize; static $class:yfiles.lang.Class; } + /** + * Interface used by {@link yfiles.input.OrthogonalEdgeEditingContext} and the like that can be decorated to the {@link yfiles.graph.ILookup} + * of {@link yfiles.graph.IEdge}s. + *

    + * This interface is for editing edges in such a way that their path stays orthogonal, i.e. all of the segments are + * oriented either horizontally or vertically. + *

    + * @see yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper + * @interface + */ + export interface IOrthogonalEdgeHelper extends Object{ + /** + * Callback method that is invoked after the provided edge has been edited orthogonally. + *

    + * This callback can be used to remove unused bends and finalize the orthogonal edge editing gesture. + *

    + * @param context The input mode context which edited the edge. + * @param graph The graph to use for modifying the edge instance. + * @param edge The edge to clean up the path. + * @abstract + */ + cleanUpEdge(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge):void; + /** + * Gets the declared orientation of the given segment at the provided edge. + *

    + * The orientation cannot always be inferred from the current geometry: If a segment has a zero length it is unclear what + * orientation it should have, also a segment could be accidentally orthogonally oriented, while in fact it is considered + * {@link yfiles.input.SegmentOrientation#NON_ORTHOGONAL}. + *

    + * @param context The input mode context in which the orientation is needed. + * @param edge The edge to inspect. + * @param segmentIndex The index of the segment. + * @returns The declared orientation of the segment. + * @abstract + */ + getSegmentOrientation(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,segmentIndex:number):yfiles.input.SegmentOrientation; + /** + * Determines whether the provided edge should be edited orthogonally in the specified input mode context. + *

    + * If this method returns false, the other methods will not be queried at all. + *

    + * @param context The input mode context in which the edge is about to be edited. + * @param edge The edge to inspect. + * @returns true if the edge should be orthogonally edited in the specified input mode context; false otherwise. + * @abstract + */ + shouldEditOrthogonally(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge):boolean; + /** + * Determines whether this end of the provided edge can be moved in the input mode context. + *

    + * This information is required to determine whether an edge's first or last segment needs to be split or the adjacent edge + * end can be moved along with the other end of the segment. + *

    + * @param context The input mode context in which the segment is edited. + * @param edge The edge to inspect. + * @param sourceEnd if set to true the source end of the edge is queried, otherwise the target end. + * @returns true if the end of the edge can be moved for the specified input mode context; false otherwise, in which case the + * corresponding segment needs to be split to keep the segment orientation orthogonal. + * @abstract + */ + shouldMoveEndImplicitly(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourceEnd:boolean):boolean; + } + var IOrthogonalEdgeHelper:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface used for implementations that recognize, approve and disapprove node reparenting gestures, as well as actually + * performs the reparenting. + *

    + * Implementations of this interface are queried from the {@link yfiles.input.IInputModeContext} by code that wants to reparent a + * node. Specifically this is used by default to reparent nodes during the {@link yfiles.input.MoveInputMode dragging of nodes}. + *

    + *

    Related demos:

    + *
      + *
    • Demo: ReparentHandler, demo.yfiles.input.reparenthandler
    • + *
    + * @interface + */ + export interface IReparentNodeHandler extends Object{ + /** + * Determines whether the current gesture that can be determined through the context is a reparent gesture. + * @param context The context that provides information about the user input. + * @param node The node that will possibly be reparented. + * @returns Whether this is a reparenting gesture. + * @abstract + */ + isReparentGesture(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; + /** + * Determines whether the provided node may be reparented to a newParent. + * @param context The context that provides information about the user input. + * @param node The node that will be reparented. + * @param newParent The potential new parent or null. Can be a group or a non-group node. + * @returns Whether newParent is a valid new parent for node. + * @abstract + */ + isValidParent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):boolean; + /** + * Performs the actual reparenting after the reparent gesture has been finalized. + *

    + * Implementations should {@link yfiles.graph.IGraph#setParent set the parent} of node to newParent. + *

    + * @param context The context that provides information about the user input. + * @param node The node that will be reparented. + * @param newParent The potential new parent or null. Can be a group or a non-group node. + * @abstract + */ + reparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):void; + /** + * Determines whether the user may detach the given node from its current parent in order to reparent it. + * @param context The context that provides information about the user input. + * @param node The node that is about to be detached from its current parent. + * @returns Whether the node may be detached and reparented. + * @abstract + */ + shouldReparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; + } + var IReparentNodeHandler:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Queried by the {@link yfiles.input.GraphSnapContext} to add {@link yfiles.input.OrthogonalSnapLine}s to its collections during the + * {@link yfiles.input.SnapContext#isInitializing initialization phase}. + *

    + * Implementations of this interface are queried by {@link yfiles.input.GraphSnapContext} for each item that is not modified during + * the edit using the {@link yfiles.graph.ILookup#lookup} of the respective item. + *

    + * @see yfiles.graph.NodeDecorator#snapLineProviderDecorator + * @interface + */ + export interface ISnapLineProvider extends Object{ + /** + * Called by the {@link yfiles.input.GraphSnapContext} when a {@link yfiles.input.GraphSnapContext#initializeDrag drag} is about to start. + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * context explicitly. + * @param evt The argument to use for adding snap lines. + * @param item The item to add snap lines for. + * @abstract + */ + addSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,item:yfiles.graph.IModelItem):void; + } + var ISnapLineProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Provides data for the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked}, + * {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked}, + * {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked}, + * {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked}, {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} + * and {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} events. + * Type parameter T: The type of the item this event carries. + * @class + * @extends {yfiles.collections.ItemEventArgs.} + * @template T + */ + export interface ItemClickedEventArgs extends yfiles.collections.ItemEventArgs{} + export class ItemClickedEventArgs { + /** + * Initializes a new instance of the {@link yfiles.input.ItemClickedEventArgs.} class. + * @param item The item which is the subject of the event. + * @param location The location of the click. + */ + constructor(item:T,location:yfiles.geometry.Point); + /** + * Gets or sets a value indicating whether this {@link yfiles.input.ItemClickedEventArgs.} is handled. + *

    + * Setting the event to handled indicates whether the event should be further propagated or whether there has not been any + * code that actively handled the event to the event source. How this flag is actually being treated depends on the source + * of the event. + *

    + * @type {boolean} + */ + handled:boolean; + /** + * Gets the location of the click. + * @type {yfiles.geometry.Point} + */ + location:yfiles.geometry.Point; + static $class:yfiles.lang.Class; + } + /** + * An input mode for use in a {@link yfiles.view.GraphComponent} that fires events when the mouse enters or leaves the + * visualization of a {@link yfiles.graph.IModelItem graph item}. + *

    + * This mode can be used to determine when the mouse is being moved from one item to the next. + *

    + *

    + * This mode is {@link yfiles.input.ItemHoverInputMode#exclusive} by default. + *

    + * @class + * @implements {yfiles.input.IInputMode} + */ + export interface ItemHoverInputMode extends Object,yfiles.input.IInputMode{} + export class ItemHoverInputMode { + /** + * Initializes a new instance of the {@link yfiles.input.ItemHoverInputMode} class. + */ + constructor(); + /** + * + */ + cancel():void; + /** + * Gets the items that have been hit at the given location. + * @param location The location in world coordinates to query. + * @returns An enumerable over all items that have been hit at the given location. + * @protected + */ + getHitItemsAt(location:yfiles.geometry.Point):yfiles.collections.IEnumerable; + /** + * Installs this mode into the given context that is provided by the canvas. + *

    + * In general a mode can only be installed into a single canvas at all times. + *

    + *

    + * This method is called to initialize this instance. Subclasses should override this method to register the corresponding + * event handler delegates for the various input events they need to register with. + *

    + *

    + * Overriding implementations should call the base implementation, first. + *

    + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is + * installed. + * @param controller The {@link #controller} for this mode. + * @see yfiles.input.IInputMode#uninstall + */ + install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; + /** + * Determines whether the given item is a valid item to be considered for hovering. + *

    + * This implementation checks whether the item is covered by the {@link yfiles.input.ItemHoverInputMode#hoverItems} set, only. + *

    + * @param item The item to check. + * @returns true if it is valid to report a hover over the specified item; false otherwise. + * @see yfiles.input.ItemHoverInputMode#discardInvalidItems + * @protected + */ + isValidHoverItem(item:yfiles.graph.IModelItem):boolean; + /** + * Called after {@link yfiles.input.ItemHoverInputMode#cancel} has been called. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been canceled. + *

    + *

    + * This implementation does nothing. + *

    + * @protected + */ + onCanceled():void; + /** + * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to true. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been activated. + *

    + *

    + * Overriding implementations should call the base implementation. + *

    + * @protected + */ + onConcurrencyControllerActivated():void; + /** + * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to false. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been deactivated. + *

    + *

    + * Overriding implementations should call the base implementation. + *

    + * @protected + */ + onConcurrencyControllerDeactivated():void; + /** + * Raises the {@link yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener HoveredItemChanged} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onHoveredItemChanged(evt:yfiles.input.HoveredItemChangedEventArgs):void; + /** + * Called after {@link yfiles.input.ItemHoverInputMode#tryStop} has been called. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been stopped. + *

    + *

    + * This implementation does nothing. + *

    + * @protected + */ + onStopped():void; + /** + * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. + */ + tryStop():boolean; + /** + * Uninstalls this mode from the given context. + *

    + * This code should clean up all changes made to the canvas in the {@link yfiles.input.IInputMode#install} method. After a mode has + * been uninstalled it can be installed again into the same or another canvas. + *

    + *

    + * Overriding implementations should call the base implementation after their own code. + *

    + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during + * installation. + */ + uninstall(context:yfiles.input.IInputModeContext):void; + /** + * Forces a reevaluation of the item that the mouse is currently hovering over or at a specific location. + *

    + * This method may be called by code that is aware of the fact that the visualization has changed, but the mouse may not + * have been moved. By default this implementation will only re-query the items at the mouse location when the mouse has + * moved. This method can be called to force a reevaluation in other cases. + *

    + * @param [location=null] The query location. + */ + updateHover(location?:yfiles.geometry.Point):void; + /** + * + * @type {number} + */ + priority:number; + /** + * Gets or sets a value indicating whether this mode will be the only one running when it has the mutex. + *

    + * The value of this property will be delegated to the {@link yfiles.input.ConcurrencyController#exclusive} property of the {@link yfiles.input.ItemHoverInputMode#controller}. + *

    + *

    + * If this mode is marked as exclusive and has the mutex, all other modes {@link yfiles.input.MultiplexingInputMode#add added} to the same {@link yfiles.input.MultiplexingInputMode} + * will be deactivated. Otherwise it will always run concurrently with all other modes. + *

    + * @type {boolean} + */ + exclusive:boolean; + /** + * Gets or sets the enabled state of this input mode. + *

    + * Clients can use this property to disable or reenable this instance. This will set the {@link yfiles.input.ConcurrencyController#enabled Enabled} property of the installed + * {@link yfiles.input.ItemHoverInputMode#controller} so a disabled instance should never try to acquire the input mutex. + *

    + * @type {boolean} + */ + enabled:boolean; + /** + * + * @type {yfiles.input.IInputModeContext} + */ + inputModeContext:yfiles.input.IInputModeContext; + /** + * Returns the installed {@link yfiles.input.ItemHoverInputMode#controller}. + * @protected + * @type {yfiles.input.ConcurrencyController} + */ + controller:yfiles.input.ConcurrencyController; + /** + * Adds the given listener for the HoveredItemChanged event that occurs when the item that is being hovered over with the + * mouse changes. + *

    + * This event is also fired when the mouse pointer leaves an item. + *

    + * @param listener The listener to add. + * @see yfiles.input.ItemHoverInputMode#removeHoveredItemChangedListener + */ + addHoveredItemChangedListener(listener:(sender:Object,evt:yfiles.input.HoveredItemChangedEventArgs)=>void):void; + /** + * Removes the given listener for the HoveredItemChanged event that occurs when the item that is being hovered over with + * the mouse changes. + *

    + * This event is also fired when the mouse pointer leaves an item. + *

    + * @param listener The listener to remove. + * @see yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener + */ + removeHoveredItemChangedListener(listener:(sender:Object,evt:yfiles.input.HoveredItemChangedEventArgs)=>void):void; + /** + * Gets the current item the mouse is hovering over. + * @type {yfiles.graph.IModelItem} + */ + currentHoverItem:yfiles.graph.IModelItem; + /** + * Gets or sets which graph items are considered by this input mode. + *

    + * The default is {@link yfiles.graph.GraphItemTypes#ALL}. + *

    + * @type {yfiles.graph.GraphItemTypes} + */ + hoverItems:yfiles.graph.GraphItemTypes; + /** + * Gets or sets the cursor to use when the mouse is hovering over a {@link yfiles.input.ItemHoverInputMode#isValidHoverItem} valid + * hover item. + * @type {yfiles.view.Cursor} + */ + hoverCursor:yfiles.view.Cursor; + /** + * Determines whether items that have been hit at the current location that are not {@link yfiles.input.ItemHoverInputMode#isValidHoverItem valid items} should be ignored or + * reported as null. + * @see yfiles.input.ItemHoverInputMode#isValidHoverItem + * @type {boolean} + */ + discardInvalidItems:boolean; + static $class:yfiles.lang.Class; + } + /** + * Event argument class containing information about which {@link yfiles.graph.IModelItem} the mouse is currently hovering over. + *

    + * This event is used by the {@link yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener HoveredItemChanged} + * event. The {@link yfiles.collections.ItemEventArgs.#item} property yields the item that is currently being hovered over or null if the mouse just left an item without + * hovering over an other one. The {@link yfiles.input.HoveredItemChangedEventArgs#oldItem} property provides the previously hovered item. + *

    + * @class + * @extends {yfiles.collections.ItemEventArgs.} + */ + export interface HoveredItemChangedEventArgs extends yfiles.collections.ItemEventArgs{} + export class HoveredItemChangedEventArgs { + /** + * Initializes a new instance of the {@link yfiles.input.HoveredItemChangedEventArgs} class. + * @param item The model item, possibly null. + * @param oldItem The old item, possibly null. + */ + constructor(item:yfiles.graph.IModelItem,oldItem:yfiles.graph.IModelItem); + /** + * The item that was previously hovered, possibly null. + * @see yfiles.collections.ItemEventArgs.#item + * @type {yfiles.graph.IModelItem} + */ + oldItem:yfiles.graph.IModelItem; + static $class:yfiles.lang.Class; + } + /** + * Event arguments for the {@link yfiles.input.GraphEditorInputMode#addLabelAddingListener LabelAdding} and {@link yfiles.input.GraphEditorInputMode#addLabelEditingListener LabelEditing} + * events, as well as the {@link yfiles.input.IEditLabelHelper} interface. + * @class + * @extends {yfiles.input.InputModeEventArgs} + * @final + */ + export interface LabelEditingEventArgs extends yfiles.input.InputModeEventArgs{} + export class LabelEditingEventArgs { + /** + * Initializes a new instance of the {@link yfiles.input.LabelEditingEventArgs} class with the given context, owner, and label. + * @param context The input mode context to use. + * @param owner The {@link } whose label should be edited. + * @param label The {@link } that should be edited. + */ + constructor(context:yfiles.input.IInputModeContext,owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel); + /** + * Gets or sets the label to edit. + *

    + * This can be set to an exiting label to edit a specific one, or set to null to add a new label instead (e.g. for + * {@link yfiles.graph.ILabelOwner}s that have no label yet). + *

    + *

    + * If this property is set to null, the properties {@link yfiles.input.LabelEditingEventArgs#style}, {@link yfiles.input.LabelEditingEventArgs#preferredSize}, {@link yfiles.input.LabelEditingEventArgs#layoutParameter}, and {@link yfiles.input.LabelEditingEventArgs#tag} are used for the newly-added label, just like with + * {@link yfiles.input.LabelEditingEventArgs}. + *

    + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {yfiles.graph.ILabel} + */ + label:yfiles.graph.ILabel; + /** + * Gets or sets a value indicating whether the action (adding or editing a label) should be canceled. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {boolean} + */ + cancel:boolean; + /** + * Gets or sets a value indicating whether this event has been handled. + *

    + * A handled instance of {@link yfiles.input.LabelEditingEventArgs} will not be passed to further event handlers or an {@link yfiles.input.IEditLabelHelper} + * instance. + *

    + *

    + * Setting any of the other properties implicitly also sets this to true. + *

    + * @type {boolean} + */ + handled:boolean; + /** + * Gets or sets the owner of the label. + *

    + * This property can be null if there is no owner known, e.g. if the event is raised for + * non-{@link yfiles.graph.ILabelOwner}s. Otherwise it is initially set to the item for which the event is raised. + *

    + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {yfiles.graph.ILabelOwner} + */ + owner:yfiles.graph.ILabelOwner; + /** + * Gets or sets the {@link yfiles.graph.ILabel#style} of the label to add. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {yfiles.styles.ILabelStyle} + */ + style:yfiles.styles.ILabelStyle; + /** + * Gets or sets the {@link yfiles.graph.ILabel#preferredSize} of the label to add. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {yfiles.geometry.Size} + */ + preferredSize:yfiles.geometry.Size; + /** + * Gets or sets the {@link yfiles.graph.ILabel#layoutParameter} of the label to add. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {yfiles.graph.ILabelModelParameter} + */ + layoutParameter:yfiles.graph.ILabelModelParameter; + /** + * Gets or sets the {@link yfiles.graph.ITagOwner#tag} of the label to add. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {Object} + */ + tag:Object; + /** + * Configures the {@link yfiles.input.TextEditorInputMode} for editing the provided label instance. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {function(yfiles.input.IInputModeContext, yfiles.input.TextEditorInputMode, yfiles.graph.ILabel): void} + */ + textEditorInputModeConfigurator:(context:yfiles.input.IInputModeContext,mode:yfiles.input.TextEditorInputMode,label:yfiles.graph.ILabel)=>void; + static $class:yfiles.lang.Class; + } + /** + * Manages interactive snapping of {@link yfiles.graph.ILabel}s to their owner during drag operations like movements. + *

    + * This class provides a set of properties to customize the snapping behavior. {@link yfiles.input.IPositionHandler} + * implementations and similar classes can use the following idiom to get an instance of this class: + *

    + *

    Related demos:

    + *
      + *
    • Tutorial: 01 Getting Started, step 15 Snapping
    • + *
    + * @see yfiles.input.MoveLabelInputMode + * @see yfiles.input.GraphEditorInputMode#snapContext + * @class + * @extends {yfiles.input.SnapContext} + */ + export interface LabelSnapContext extends yfiles.input.SnapContext{} + export class LabelSnapContext { + /** + * Initializes a new instance of the {@link yfiles.input.LabelSnapContext} class. + */ + constructor(); + /** + * Adds the given snapLine to the {@link yfiles.input.LabelSnapContext#snapLines snap line} collection of this context. + * @param snapLine The snap line to add. + * @see yfiles.input.GraphSnapContext#additionalSnapLines + */ + addSnapLine(snapLine:yfiles.input.SnapLine):void; + /** + * Raises the {@link yfiles.input.LabelSnapContext#addCollectSnapLinesListener CollectSnapLines} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onCollectSnapLines(evt:yfiles.input.CollectLabelSnapLineEventArgs):void; + /** + * Determines whether this instance should collect snap lines for the initial position of a label. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectInitialLocationSnapLines:boolean; + /** + * Determines whether this instance should collect six snap lines, two through the center and four through the border sides + * of the label owner. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectNodeShapeSnapLines:boolean; + /** + * Determines whether this instance should collect four snap lines in parallel to the owner's borders at the initial label + * distance. + *

    + * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to + * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node + * bounds. + *

    + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectOwnNodeDistanceSnapLines:boolean; + /** + * Determines whether this instance should collect snap lines in parallel to the border of the label owner at the distance + * of other node labels of that owner. + *

    + * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to + * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node + * bounds. + *

    + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectSameOwnerNodeDistanceSnapLines:boolean; + /** + * Determines whether this instance should collect snap lines in parallel to the border of the label owner at the distance + * of other node labels in the graph. + *

    + * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to + * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node + * bounds. + *

    + *

    + * The default is false. + *

    + * @default false + * @type {boolean} + */ + collectAllNodeDistanceSnapLines:boolean; + /** + * Determines whether this instance should collect snap lines on the edge path. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectEdgePathSnapLines:boolean; + /** + * Determines whether this instance should collect two snap lines in parallel to the edge path of the label owner at the + * initial distance of the edge label. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectOwnEdgeDistanceSnapLines:boolean; + /** + * Determines whether this instance should collect snap lines in parallel to the edge path of the label owner at the + * distances of all edge labels of that owner. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectSameOwnerEdgeDistanceSnapLines:boolean; + /** + * Determines whether this instance should collect snap lines in parallel to the edge path of the label owner at the + * distance of other edge labels in the graph. + *

    + * The default is false. + *

    + * @default false + * @type {boolean} + */ + collectAllEdgeDistanceSnapLines:boolean; + /** + * Specifies whether this context will automatically snap the node labels to snap lines. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapNodeLabels:boolean; + /** + * Specifies whether this context will automatically snap the edge labels to snap lines. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapEdgeLabels:boolean; + /** + * Gets or sets the amount by which snap lines that are induced by existing edge segments are being extended. + *

    + * The default is 40.0d, this value will be used to prolongate the ends of the snap lines. + *

    + * @default 40.0 + * @type {number} + */ + snapLineExtension:number; + /** + * The collection of the {@link yfiles.input.SnapLine snap lines} that have been {@link yfiles.input.LabelSnapContext#addSnapLine added} to this context. + *

    + * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. + *

    + * @see yfiles.input.LabelSnapContext#addSnapLine + * @type {yfiles.collections.IEnumerable.} + */ + snapLines:yfiles.collections.IEnumerable; + /** + * Adds the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to + * collect {@link yfiles.input.SnapLine}s. + *

    + * Event handlers should add snap lines to the caller using the methods provided by + * {@link yfiles.input.CollectLabelSnapLineEventArgs}. + *

    + * @param listener The listener to add. + * @see yfiles.input.LabelSnapContext#removeCollectSnapLinesListener + */ + addCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectLabelSnapLineEventArgs)=>void):void; + /** + * Removes the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to + * collect {@link yfiles.input.SnapLine}s. + *

    + * Event handlers should add snap lines to the caller using the methods provided by + * {@link yfiles.input.CollectLabelSnapLineEventArgs}. + *

    + * @param listener The listener to remove. + * @see yfiles.input.LabelSnapContext#addCollectSnapLinesListener + */ + removeCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectLabelSnapLineEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + /** + * The event arguments used by {@link yfiles.input.LabelSnapContext} to collect custom snap lines for each drag. + * @see yfiles.input.LabelSnapContext#addCollectSnapLinesListener + * @class + * @extends {yfiles.input.InputModeEventArgs} + */ + export interface CollectLabelSnapLineEventArgs extends yfiles.input.InputModeEventArgs{} + export class CollectLabelSnapLineEventArgs { + /** + * Creates a new instance of this class. + * @param context The context this event is being used in. + * @param snapLines The snap lines collection to add to. + */ + constructor(context:yfiles.input.IInputModeContext,snapLines:yfiles.collections.ICollection); + /** + * Adds the given snap line to the snap line collection of this class. + * @param snapLine the snap line to add. + */ + addSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; + static $class:yfiles.lang.Class; + } + /** + * An {@link yfiles.input.IInputMode} that can {@link yfiles.input.NavigationInputMode#moveTo navigate} an {@link yfiles.graph.IGraph} displayed in a {@link yfiles.input.NavigationInputMode#graphComponent}. + *

    + * This mode is {@link yfiles.input.NavigationInputMode#exclusive} by default. + *

    + * @class + * @implements {yfiles.input.IInputMode} + */ + export interface NavigationInputMode extends Object,yfiles.input.IInputMode{} + export class NavigationInputMode { + /** + * Initializes a new instance of the {@link yfiles.input.NavigationInputMode} class. + */ + constructor(); + /** + * Callback that adjusts the {@link yfiles.view.CanvasComponent#contentRect} to encompass all elements. + *

    + * This implementation will try to delegate to {@link yfiles.input.GraphEditorInputMode#adjustContentRect} if it can find the {@link yfiles.input.GraphEditorInputMode} + * in the {@link yfiles.input.NavigationInputMode#inputModeContext}, otherwise the {@link yfiles.input.ICommand#FIT_GRAPH_BOUNDS} is executed. + *

    + * @protected + */ + adjustContentRect():void; + /** + * Adjust the group node location according to the value of {@link yfiles.input.NavigationInputMode#autoGroupNodeAlignmentPolicy}. + * @param collapse true iff the node has just been collapsed. + * @param groupNode The node that has changed its state. + * @protected + */ + adjustGroupNodeLocation(collapse:boolean,groupNode:yfiles.graph.INode):void; + /** + * + */ + cancel():void; + /** + * Clears the selection in the {@link yfiles.input.NavigationInputMode#graphComponent}. + */ + clearSelection():void; + /** + * {@link yfiles.graph.IFoldingView#collapse Collapses} the given group node to hide the contents of the group node from this {@link yfiles.graph.IFoldingView}. + * @param groupNode The group node to collapse. + * @see yfiles.graph.FoldingManager + * @see yfiles.input.NavigationInputMode#allowCollapseGroup + */ + collapseGroup(groupNode:yfiles.graph.INode):void; + /** + * Performs CollapseGroup for all {@link yfiles.view.IGraphSelection#selectedNodes}. + */ + collapseSelection():void; + /** + * This method allows for entering a group node so that the currently displayed {@link yfiles.graph.IFoldingView}'s {@link yfiles.graph.IFoldingView#localRoot} will be reset + * to the provided node. + *

    + * It is possible to both use a local group node that is part of the currently displayed {@link yfiles.input.NavigationInputMode#graph} as the node argument, as well as + * an item that belongs to the {@link yfiles.graph.FoldingManager#masterGraph} to allow for switching to group nodes which are currently not being displayed in this + * view. + *

    + * @param node The node that needs to be either part of the current graph, or part of the {@link #masterGraph}. + * @see yfiles.input.NavigationInputMode#shouldEnterGroup + * @see yfiles.input.NavigationInputMode#allowEnterGroup + * @see yfiles.graph.FoldingManager + */ + enterGroup(node:yfiles.graph.INode):void; + /** + * Performs {@link yfiles.input.NavigationInputMode#enterGroup} for the first valid {@link yfiles.view.IGraphSelection#selectedNodes}. + */ + enterSelectedGroup():void; + /** + * Exits the current {@link yfiles.graph.IFoldingView#localRoot} of the currently displayed {@link yfiles.graph.IFoldingView view} and shows the contents of the parent container. + *

    + * This method will also {@link yfiles.input.GraphInputMode#clearSelection clear the selection} and {@link yfiles.input.GraphInputMode#setSelected select} the exited group node. + *

    + * @see yfiles.graph.FoldingManager + * @see yfiles.input.NavigationInputMode#allowExitGroup + * @see yfiles.input.NavigationInputMode#shouldExitGroup + */ + exitGroup():void; + /** + * {@link yfiles.graph.IFoldingView#expand Expands} the given group node to show the contents of the collapsed group node in this {@link yfiles.graph.IFoldingView}. + * @param groupNode The group node to expand + * @see yfiles.graph.FoldingManager + * @see yfiles.input.NavigationInputMode#allowExpandGroup + */ + expandGroup(groupNode:yfiles.graph.INode):void; + /** + * Performs {@link yfiles.input.NavigationInputMode#expandGroup} for all {@link yfiles.view.IGraphSelection#selectedNodes}. + */ + expandSelection():void; + /** + * Moves the focus into the given direction, extending the selection to the new element. + * @param direction The direction to move the focus and extend the selection. + */ + extendSelectionTo(direction:yfiles.input.MoveFocusDirection):void; + /** + * Installs this mode into the given context that is provided by the canvas. + *

    + * In general a mode can only be installed into a single canvas at all times. + *

    + *

    + * This method is called to initialize this instance. Subclasses should override this method to register the corresponding + * event handler delegates for the various input events they need to register with. + *

    + *

    + * Overriding implementations should call the base implementation, first. + *

    + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is + * installed. + * @param controller The {@link #controller} for this mode. + * @see yfiles.input.IInputMode#uninstall + */ + install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; + /** + * Moves the focus into the given direction, not changing the current selection. + * @param direction The direction to move the focus. + */ + moveFocusTo(direction:yfiles.input.MoveFocusDirection):void; + /** + * Moves the focus into the given direction, setting the selection to the new element. + * @param direction The direction to move the focus and selection. + */ + moveTo(direction:yfiles.input.MoveFocusDirection):void; + /** + * Called after {@link yfiles.input.NavigationInputMode#cancel} has been called. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been canceled. + *

    + *

    + * This implementation does nothing. + *

    + * @protected + */ + onCanceled():void; + /** + * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to true. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been activated. + *

    + *

    + * Overriding implementations should call the base implementation. + *

    + * @protected + */ + onConcurrencyControllerActivated():void; + /** + * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to false. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been deactivated. + *

    + *

    + * Overriding implementations should call the base implementation. + *

    + * @protected + */ + onConcurrencyControllerDeactivated():void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupCollapsedListener GroupCollapsed} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupCollapsed(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupCollapsingListener GroupCollapsing} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupCollapsing(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupEnteredListener GroupEntered} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupEntered(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupEnteringListener GroupEntering} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupEntering(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupExitedListener GroupExited} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupExited(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupExitingListener GroupExiting} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupExiting(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupExpandedListener GroupExpanded} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupExpanded(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupExpandingListener GroupExpanding} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupExpanding(evt:yfiles.collections.ItemEventArgs):void; + /** + * Callback that actually sets the current item property. + * @param graphComponent The {@link #graphComponent} to set the current item of. + * @param item The item to set. + * @returns Whether the operation was actually performed. + * @protected + */ + onSetCurrentItem(graphComponent:yfiles.view.GraphComponent,item:yfiles.graph.IModelItem):boolean; + /** + * Called after {@link yfiles.input.NavigationInputMode#tryStop} has been called. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been stopped. + *

    + *

    + * This implementation does nothing. + *

    + * @protected + */ + onStopped():void; + /** + * Selects the {@link yfiles.view.GraphComponent#currentItem} current item. + *

    + * This method delegates to {@link yfiles.input.NavigationInputMode#selectItem}. + *

    + */ + selectCurrentItem():void; + /** + * Callback that selects the given item. + * @param graphComponent The {@link #graphComponent}. + * @param item The item to select. + * @param extendSelection if set to true the current selection is extended otherwise it is cleared beforehand. + * @see yfiles.input.NavigationInputMode#clearSelection + * @protected + */ + selectItem(graphComponent:yfiles.view.GraphComponent,item:yfiles.graph.IModelItem,extendSelection:boolean):void; + /** + * Sets the "current" item to the given one. + * @param item The item to set as the current item. + * @see yfiles.input.NavigationInputMode#onSetCurrentItem + */ + setCurrentItem(item:yfiles.graph.IModelItem):void; + /** + * Sets the {@link yfiles.input.NavigationInputMode#graphComponent} to use for the various actions. + *

    + * This will register or unregister the commands for the control. This method is called in response to {@link yfiles.input.NavigationInputMode#install} + * and {@link yfiles.input.NavigationInputMode#uninstall}. + *

    + * @param graphComponent The control to use or null. + * @protected + */ + setGraphComponent(graphComponent:yfiles.view.GraphComponent):void; + /** + * Predicate method that decides whether it is allowed to collapse the given group node. + *

    + * This implementation returns the value of {@link yfiles.input.NavigationInputMode#allowCollapseGroup}. + *

    + * @param groupNode + * @returns Whether to collapse the given group or not. + * @protected + */ + shouldCollapseGroup(groupNode:yfiles.graph.INode):boolean; + /** + * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#enterGroup enter} the specific group node. + *

    + * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowEnterGroup}. + *

    + * @param node The group node to enter. + * @returns Whether to enter the group or not. + * @protected + */ + shouldEnterGroup(node:yfiles.graph.INode):boolean; + /** + * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#exitGroup exit} the current group node. + *

    + * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowExitGroup}. + *

    + * @returns Whether to exit the current group or not. + * @protected + */ + shouldExitGroup():boolean; + /** + * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#expandGroup expand} the given group node. + *

    + * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowExpandGroup}. + *

    + * @param node + * @returns Whether to expand the given group or not. + * @protected + */ + shouldExpandGroup(node:yfiles.graph.INode):boolean; + /** + * Callback predicate method that determines whether a given model item should be navigated to. + *

    + * This implementation uses the {@link yfiles.input.NavigationInputMode#navigableItems} property to determine whether the item can be navigated to. + *

    + * @param item The model item. + * @returns Whether the item should be considered for navigational commands. + * @protected + */ + shouldNavigateTo(item:yfiles.graph.IModelItem):boolean; + /** + * Determines whether the input mode should try to request the mutex when a command is executed. + *

    + * This resets the state of any other input mode, unless it currently possesses the mutex. + *

    + *

    + * The value of this method is queried for {@link yfiles.input.ICommand#COLLAPSE_GROUP}, {@link yfiles.input.ICommand#EXPAND_GROUP}, + * {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE}, {@link yfiles.input.ICommand#ENTER_GROUP} and {@link yfiles.input.ICommand#EXIT_GROUP}. + *

    + * @returns whether the input mode should request the mutex. + * @protected + */ + shouldRequestMutex():boolean; + /** + * Callback predicate method that determines whether a given model item should be selected. + *

    + * This implementation uses the {@link yfiles.input.NavigationInputMode#selectableItems} property to determine whether the item should be selected. + *

    + * @param item The model item. + * @returns Whether the item should be selected by the navigational commands. + * @protected + */ + shouldSelect(item:yfiles.graph.IModelItem):boolean; + /** + * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#toggleExpansionState toggle} the collapsed state of the given group node. + *

    + * This implementation uses {@link yfiles.input.NavigationInputMode#shouldExpandGroup} and {@link yfiles.input.NavigationInputMode#shouldCollapseGroup} + * respectively. + *

    + * @param node + * @returns Whether to expand the given group or not. + * @protected + */ + shouldToggleExpansionState(node:yfiles.graph.INode):boolean; + /** + * Toggles the {@link yfiles.graph.IFoldingView#isExpanded expanded/collapsed} state for the given group node in the {@link yfiles.graph.IFoldingView}. + * @param groupNode The group node to toggle the state for. + * @see yfiles.graph.FoldingManager + */ + toggleExpansionState(groupNode:yfiles.graph.INode):void; + /** + * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. + */ + tryStop():boolean; + /** + * Uninstalls this mode from the given context. + *

    + * This code should clean up all changes made to the canvas in the {@link yfiles.input.IInputMode#install} method. After a mode has + * been uninstalled it can be installed again into the same or another canvas. + *

    + *

    + * Overriding implementations should call the base implementation after their own code. + *

    + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during + * installation. + */ + uninstall(context:yfiles.input.IInputModeContext):void; + /** + * + * @type {number} + */ + priority:number; + /** + * Gets or sets a value indicating whether this mode will be the only one running when it has the mutex. + *

    + * The value of this property will be delegated to the {@link yfiles.input.ConcurrencyController#exclusive} property of the {@link yfiles.input.NavigationInputMode#controller}. + *

    + *

    + * If this mode is marked as exclusive and has the mutex, all other modes {@link yfiles.input.MultiplexingInputMode#add added} to the same {@link yfiles.input.MultiplexingInputMode} + * will be deactivated. Otherwise it will always run concurrently with all other modes. + *

    + * @type {boolean} + */ + exclusive:boolean; + /** + * Gets or sets the enabled state of this input mode. + *

    + * Clients can use this property to disable or reenable this instance. This will set the {@link yfiles.input.ConcurrencyController#enabled Enabled} property of the installed + * {@link yfiles.input.NavigationInputMode#controller} so a disabled instance should never try to acquire the input mutex. + *

    + * @type {boolean} + */ + enabled:boolean; + /** + * + * @type {yfiles.input.IInputModeContext} + */ + inputModeContext:yfiles.input.IInputModeContext; + /** + * Returns the installed {@link yfiles.input.NavigationInputMode#controller}. + * @protected + * @type {yfiles.input.ConcurrencyController} + */ + controller:yfiles.input.ConcurrencyController; + /** + * Gets or sets the item types that can be navigated to by this mode. + * @see yfiles.input.NavigationInputMode#shouldNavigateTo + * @type {yfiles.graph.GraphItemTypes} + */ + navigableItems:yfiles.graph.GraphItemTypes; + /** + * Gets the types of the items that should be selectable by this instance. + *

    + * The selectable items. The default value is {@link yfiles.graph.GraphItemTypes#NODE}. + *

    + * @default yfiles.graph.GraphItemTypes.NODE + * @type {yfiles.graph.GraphItemTypes} + */ + selectableItems:yfiles.graph.GraphItemTypes; + /** + * Gets or sets the the location that should be kept fixed if toggling a group node state. + *

    + * Default value is {@link yfiles.input.NodeAlignmentPolicy#NONE} + *

    + * @see yfiles.input.NavigationInputMode#expandGroup + * @default yfiles.input.NodeAlignmentPolicy.NONE + * @type {yfiles.input.NodeAlignmentPolicy} + */ + autoGroupNodeAlignmentPolicy:yfiles.input.NodeAlignmentPolicy; + /** + * Gets or sets the {@link yfiles.input.NavigationInputMode#graphComponent} this mode acts on. + * @type {yfiles.view.GraphComponent} + */ + graphComponent:yfiles.view.GraphComponent; + /** + * Gets the list of commands that are available in this instance. + *

    + * By default, all supported commands are available + *

    + *

    + * Removing commands from this collection also removes the command bindings registered by this instance. + *

    + *

    + * Add supported commands to make them available in this instance. + *

    + *

    + * Supported commands are + *

    + *
      + *
    • {@link yfiles.input.ICommand#MOVE_LEFT}
    • + *
    • {@link yfiles.input.ICommand#MOVE_RIGHT}
    • + *
    • {@link yfiles.input.ICommand#MOVE_UP}
    • + *
    • {@link yfiles.input.ICommand#MOVE_DOWN}
    • + *
    • {@link yfiles.input.ICommand#MOVE_TO_PAGE_UP}
    • + *
    • {@link yfiles.input.ICommand#MOVE_TO_PAGE_DOWN}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_BACK}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_FORWARD}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_UP}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_DOWN}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_PAGE_UP}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_PAGE_DOWN}
    • + *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_LEFT}
    • + *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_RIGHT}
    • + *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_UP}
    • + *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_DOWN}
    • + *
    • {@link yfiles.input.ICommand#SELECT_TO_PAGE_UP}
    • + *
    • {@link yfiles.input.ICommand#SELECT_TO_PAGE_DOWN}
    • + *
    + * @type {yfiles.collections.ICollection.} + */ + availableCommands:yfiles.collections.ICollection; + /** + * Gets or sets a value indicating whether to use the {@link yfiles.view.GraphComponent#currentItem} as a fallback for the commands if no item is provided in the + * parameter and the current selection is empty. + *

    + * This applies to the following commands: + *

    + *
      + *
    • {@link yfiles.input.ICommand#ENTER_GROUP}
    • + *
    • {@link yfiles.input.ICommand#EXPAND_GROUP}
    • + *
    • {@link yfiles.input.ICommand#COLLAPSE_GROUP}
    • + *
    • {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE}
    • + *
    + * @default false + * @type {boolean} + */ + useCurrentItemForCommands:boolean; + /** + * Gets or sets the {@link yfiles.view.IGraphSelection} this mode operates on. + * @type {yfiles.view.IGraphSelection} + */ + graphSelection:yfiles.view.IGraphSelection; + /** + * Gets or sets the graph this mode operates on. + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#enterGroup enter group nodes} via the + * {@link yfiles.input.ICommand#ENTER_GROUP}. + *

    + * The default value is true. + *

    + * @see yfiles.input.NavigationInputMode#shouldEnterGroup + * @see yfiles.graph.FoldingManager + * @type {boolean} + */ + allowEnterGroup:boolean; + /** + * Gets or sets a value that determines whether it is allowed to collapse group nodes via the + * {@link yfiles.input.ICommand#COLLAPSE_GROUP}. + *

    + * The default value is true. + *

    + * @see yfiles.input.NavigationInputMode#collapseGroup + * @see yfiles.input.NavigationInputMode#shouldCollapseGroup + * @see yfiles.graph.FoldingManager + * @type {boolean} + */ + allowCollapseGroup:boolean; + /** + * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#expandGroup expand group nodes} via the + * {@link yfiles.input.ICommand#EXPAND_GROUP}. + *

    + * The default value is true. + *

    + * @see yfiles.input.NavigationInputMode#shouldExpandGroup + * @see yfiles.graph.FoldingManager + * @type {boolean} + */ + allowExpandGroup:boolean; + /** + * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#exitGroup exit the current group node} via the + * {@link yfiles.input.ICommand#EXIT_GROUP}. + *

    + * The default value is true. + *

    + * @see yfiles.input.NavigationInputMode#shouldExitGroup + * @see yfiles.graph.FoldingManager + * @default true + * @type {boolean} + */ + allowExitGroup:boolean; + /** + * Gets or sets a value that determines whether {@link yfiles.view.CanvasComponent#fitContent} or the {@link yfiles.input.ICommand#FIT_CONTENT} + * should be triggered after a group navigation action. + *

    + * The default value is true. + *

    + * @default true + * @type {boolean} + */ + fitContentAfterGroupActions:boolean; + /** + * Adds the given listener for the GroupCollapsing event that occurs before a group will be Collapsed. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupCollapsingListener + */ + addGroupCollapsingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupCollapsing event that occurs before a group will be Collapsed. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupCollapsingListener + */ + removeGroupCollapsingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupCollapsed event that occurs whenever a group has been Collapsed. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupCollapsedListener + */ + addGroupCollapsedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupCollapsed event that occurs whenever a group has been Collapsed. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupCollapsedListener + */ + removeGroupCollapsedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupExpanding event that occurs before a group will be {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupExpandingListener + */ + addGroupExpandingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupExpanding event that occurs before a group will be {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupExpandingListener + */ + removeGroupExpandingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupExpanded event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupExpandedListener + */ + addGroupExpandedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupExpanded event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupExpandedListener + */ + removeGroupExpandedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupEntering event that occurs before a group will be {@link yfiles.input.NavigationInputMode#enterGroup Entered}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupEnteringListener + */ + addGroupEnteringListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupEntering event that occurs before a group will be {@link yfiles.input.NavigationInputMode#enterGroup Entered}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupEnteringListener + */ + removeGroupEnteringListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupEntered event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#enterGroup Entered}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupEnteredListener + */ + addGroupEnteredListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupEntered event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#enterGroup Entered}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupEnteredListener + */ + removeGroupEnteredListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupExiting event that occurs before a group will be {@link yfiles.input.NavigationInputMode#exitGroup Exited}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupExitingListener + */ + addGroupExitingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupExiting event that occurs before a group will be {@link yfiles.input.NavigationInputMode#exitGroup Exited}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupExitingListener + */ + removeGroupExitingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupExited event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#exitGroup Exited}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupExitedListener + */ + addGroupExitedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupExited event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#exitGroup Exited}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupExitedListener + */ + removeGroupExitedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + export enum MoveFocusDirection{ + /** + * No direction. + */ + NONE, + /** + * In the direction of the negative x Axis. + */ + LEFT, + /** + * In the direction of the positive x Axis. + */ + RIGHT, + /** + * In the direction of the negative y Axis. + */ + UP, + /** + * In the direction of the positive y Axis. + */ + DOWN, + /** + * In the direction of the {@link yfiles.graph.IGraph#setParent parent} in the grouped graph. + */ + PARENT, + /** + * In the direction of the {@link yfiles.graph.IGraph#getChildren children} in the grouped graph. + */ + CHILD + } + export enum NodeAlignmentPolicy{ + /** + * Don't fix any specific point, only use the layout from the target state. + */ + NONE, + /** + * Fix the center point. + */ + CENTER, + /** + * Fix the upper left corner. + */ + TOP_LEFT, + /** + * Fix the lower left corner. + */ + BOTTOM_LEFT, + /** + * Fix the upper right corner. + */ + TOP_RIGHT, + /** + * Fix the lower right corner. + */ + BOTTOM_RIGHT, + /** + * Fix the uppermost center. + */ + TOP_CENTER, + /** + * Fix the lowermost center. + */ + BOTTOM_CENTER, + /** + * Fix the left center. + */ + CENTER_LEFT, + /** + * Fix the right center. + */ + CENTER_RIGHT + } + export enum OrthogonalEdgeEditingPolicy{ + /** + * Enables orthogonal edge creation or editing for a specific sub-aspect automatically if an {@link yfiles.input.OrthogonalEdgeEditingContext#enabled} {@link yfiles.input.OrthogonalEdgeEditingContext} + * instance is set in the {@link yfiles.input.GraphEditorInputMode#orthogonalEdgeEditingContext parent input mode}. + */ + AUTO, + /** + * Enables orthogonal edge creation or editing for a specific sub-aspect of edge creation. + */ + ALWAYS, + /** + * Disables orthogonal edge creation or editing for a specific sub-aspect of edge creation. + */ + NEVER + } + export enum SegmentOrientation{ + /** + * The segment has a horizontal orientation, which means that the end points should be moved vertically in synch so that + * the orientation is not destroyed. + */ + HORIZONTAL, + /** + * The segment has a vertical orientation, which means that the end points should be moved horizontally in synch so that + * the orientation is not destroyed. + */ + VERTICAL, + /** + * The segment does not need to be treated especially, both endpoints can be moved independently from each other. + */ + NON_ORTHOGONAL + } + /** + * Concrete {@link yfiles.input.SnapContext} implementation which handles snapping movement for {@link yfiles.graph.IGraph} items. + *

    + * This class provides a set of properties that determine the way snapping operations are being performed in the context of + * {@link yfiles.graph.IGraph}s. {@link yfiles.input.IPositionHandler} implementations and the like can use the following idiom to retrieve + * instances of this class: + *

    + *

    Related demos:

    + *
      + *
    • Tutorial: 01 Getting Started, step 15 Snapping
    • + *
    + * @see yfiles.input.GraphEditorInputMode + * @see yfiles.input.GraphEditorInputMode#snapContext + * @class + * @extends {yfiles.input.SnapContext} + */ + export interface GraphSnapContext extends yfiles.input.SnapContext{} + export class GraphSnapContext { + /** + * Creates a new instance with default settings. + */ + constructor(); + /** + * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.IBend} that will be considered for the next drag gesture. + *

    + * The default {@link yfiles.input.IHandle} of an {@link yfiles.graph.IBend} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} + * method so snap results are calculated when this bend is repositioned. Custom {@link yfiles.input.IHandle} implementations can + * add infos created by {@link yfiles.input.GraphSnapContext#getMovementInfo}. + *

    + * @param info The {@link } representing the bend to be moved. Can be created with + * {@link #getMovementInfo}. + */ + addBendToBeMoved(info:yfiles.input.MovementInfo):void; + /** + * Adds {@link yfiles.input.MovementInfo} representing the end of an {@link yfiles.graph.IEdge} that will be considered for the next drag + * gesture. + *

    + * The {@link yfiles.input.IHandle} returned by the default {@link yfiles.input.IEdgePortHandleProvider} of an {@link yfiles.graph.IEdge} calls + * this method in its {@link yfiles.input.IDragHandler#initializeDrag} method so snap results are calculated when reparenting this + * edge end. Custom {@link yfiles.input.IHandle} implementations can call {@link yfiles.input.GraphSnapContext#getMovementInfos} and add + * the first or last {@link yfiles.input.MovementInfo} of the returned list. + *

    + * @param info The {@link } representing the edge end to be reparented. Can be created with + * {@link #getMovementInfos}. + * @param sourceEnd true if the info represents the source end of the edge. + */ + addEdgeEndToBeMoved(info:yfiles.input.MovementInfo,sourceEnd:boolean):void; + /** + * Adds an item which will be reshaped. + * @param item The item to be reshaped. + */ + addItemToBeReshaped(item:yfiles.graph.IModelItem):void; + /** + * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.INode} that will be considered for the next drag gesture. + *

    + * The default {@link yfiles.input.IPositionHandler} of an {@link yfiles.graph.INode} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} + * method so snap results are calculated when this node is repositioned. Custom {@link yfiles.input.IPositionHandler} + * implementations can add infos created by {@link yfiles.input.GraphSnapContext#getMovementInfo}. + *

    + * @param info The {@link } representing the node to be moved. Can be created with + * {@link #getMovementInfo}. + */ + addNodeToBeMoved(info:yfiles.input.MovementInfo):void; + /** + * Adds an orthogonally moved segment to this context for which this instance will automatically collect + * {@link yfiles.input.SnapResult}s and provide a default visualization. + *

    + * This method can be called during initialization to collect orthogonal segments that should be tested against {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines} and {@link yfiles.input.GraphSnapContext#additionalSnapLines}. + *

    + * @param start The starting point of the manipulated segment. + * @param end The end point of the manipulated segment. + */ + addOrthogonalSegment(start:yfiles.input.MovementInfo,end:yfiles.input.MovementInfo):void; + /** + * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.IPort} that will be considered for the next drag gesture. + *

    + * The default {@link yfiles.input.IHandle} of an {@link yfiles.graph.IPort} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} + * method so snap results are calculated for this port. Custom {@link yfiles.input.IHandle} implementations can add infos created + * by {@link yfiles.input.GraphSnapContext#getMovementInfo}. + *

    + * @param info The {@link } representing the port to be moved. Can be created with + * {@link #getMovementInfo}. + */ + addPortToBeMoved(info:yfiles.input.MovementInfo):void; + /** + * Adds an entry for the same-height-snapping. + *

    + * During {@link yfiles.input.SnapContext#isInitializing initialization} this method can be used to register entries that can later be retrieved using the {@link yfiles.input.GraphSnapContext#findSameHeightEntries} + * method. The rectangle will be used to obtain the height value and will also be used for the visualization of the snap + * result. + *

    + * @param rectangle The rectangle to obtain the height value from. This rectangle will be used for the snap result visualization. + * @see yfiles.input.GraphSnapContext#addSameWidthEntry + */ + addSameHeightEntry(rectangle:yfiles.geometry.Rect):void; + /** + * Adds an entry for the same-width-snapping. + *

    + * During {@link yfiles.input.SnapContext#isInitializing initialization} this method can be used to register entries that can later be retrieved using the {@link yfiles.input.GraphSnapContext#findSameWidthEntries} + * method. The rectangle will be used to obtain the width value and will also be used for the visualization of the snap + * result. + *

    + * @param rectangle The rectangle to obtain the width value from. This rectangle will be used for the snap result visualization. + * @see yfiles.input.GraphSnapContext#addSameHeightEntry + */ + addSameWidthEntry(rectangle:yfiles.geometry.Rect):void; + /** + * Collects the {@link yfiles.input.OrthogonalSnapLine}s for the nodes which are not moving. + *

    + * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.INode}. + *

    + * @param evt + * @protected + */ + collectFixedNodeSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; + /** + * Collects the {@link yfiles.input.OrthogonalSnapLine}s for the ports which are not moving. + *

    + * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.IPort}. + *

    + * @param evt + * @protected + */ + collectFixedPortSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; + /** + * Collects snap lines for edge segments. + *

    + * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.IEdge}. This + * implementation should then make us of {@link yfiles.input.GraphSnapContext#getMovementInfos} to determine what segments are + * fixed. + *

    + * @param evt + * @protected + */ + collectFixedSegmentSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; + /** + * Collects all node widths and heights in the collections {@link yfiles.input.GraphSnapContext#findSameWidthEntries} and + * {@link yfiles.input.GraphSnapContext#findSameHeightEntries}. + *

    + * This method will only be called if {@link yfiles.input.GraphSnapContext#collectNodeSizes} is enabled and delegates to {@link yfiles.input.GraphSnapContext#addSameHeightEntry} and + * {@link yfiles.input.GraphSnapContext#addSameWidthEntry}. + *

    + * @protected + */ + collectSameSizeEntries():void; + /** + * Finds pairs of nodes that are visually adjacent to create {@link yfiles.input.GraphSnapContext#collectNodePairCenterSnapLines center} and {@link yfiles.input.GraphSnapContext#collectNodePairSnapLines same distance} snap lines. + * @protected + */ + collectVisibleNodePairs():void; + /** + * Finds the entries ({@link yfiles.geometry.Rect}s) that have been registered using the {@link yfiles.input.GraphSnapContext#addSameHeightEntry} + * previously that best match the given constraints. + * @param size The size to find the closest set of identical sizes. + * @param maxSize The maximum allowed size. + * @param minSize The minimum allowed size. + * @returns The set of rectangles that have been added previously using {@link #addSameHeightEntry}. + */ + findSameHeightEntries(size:number,maxSize:number,minSize:number):yfiles.collections.IListEnumerable; + /** + * Finds the entries ({@link yfiles.geometry.Rect}s) that have been registered using the {@link yfiles.input.GraphSnapContext#addSameWidthEntry} + * previously that best match the given constraints. + * @param size The size to find the closest set of identical sizes. + * @param maxSize The maximum allowed size. + * @param minSize The minimum allowed size. + * @returns The set of rectangles that have been added previously using {@link #addSameWidthEntry}. + */ + findSameWidthEntries(size:number,maxSize:number,minSize:number):yfiles.collections.IListEnumerable; + /** + * Gets a subset of {@link yfiles.input.GraphSnapContext#additionalSnapLines} that matches the given orientation, snapType and intersects with the provided area. + * @param orientation The orientation of the lines to return. + * @param snapType The snap type to be included. + * @param area The area to test for intersection. + * @returns An enumerable of the snap lines that match the provided criteria. + */ + getAdditionalSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + /** + * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedNodeSnapLines} that matches the given orientation, snapType and intersects with the provided area. + * @param orientation The orientation of the lines to return. + * @param snapType The snap type to be included. + * @param area The area to test for intersection. + * @returns An enumerable of the snap lines that match the provided criteria. + */ + getFixedNodeSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + /** + * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedPortSnapLines} that matches the given orientation, snapType and intersects with the provided area. + * @param orientation The orientation of the lines to return. + * @param snapType The snap type to be included. + * @param area The area to test for intersection. + * @returns An enumerable of the snap lines that match the provided criteria. + */ + getFixedPortSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + /** + * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines} that matches the given orientation, snapType and intersects with the provided area. + * @param orientation The orientation of the lines to return. + * @param snapType The snap type to be included. + * @param area The area to test for intersection. + * @returns An enumerable of the snap lines that match the provided criteria. + */ + getFixedSegmentSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + /** + * Gets the movement info for the given port. + *

    + * This is either the info passed to {@link yfiles.input.GraphSnapContext#addNodeToBeMoved} or another, dynamically created + * instance, if no specific one had been registered. + *

    + * @param port The port to obtain the info for. + * @returns An instance of {@link } that describes the movement of the port. + */ + getMovementInfo(port:yfiles.graph.IPort):yfiles.input.MovementInfo; + /** + * Gets the movement info for the given node. + *

    + * This is either the info passed to {@link yfiles.input.GraphSnapContext#addNodeToBeMoved} or another, dynamically created + * instance, if no specific one had been registered. + *

    + * @param node The node to obtain the info for. + * @returns An instance of {@link } that describes the movement of the node. + */ + getMovementInfo(node:yfiles.graph.INode):yfiles.input.MovementInfo; + /** + * Gets the movement info for the given bend. + *

    + * This is either the info passed to {@link yfiles.input.GraphSnapContext#addBendToBeMoved} or a dynamically created instance if no + * specific one had been registered. + *

    + * @param bend The bend to obtain the info for. + * @returns An instance of {@link } that describes the movement of the bend. + */ + getMovementInfo(bend:yfiles.graph.IBend):yfiles.input.MovementInfo; + /** + * Gets the {@link yfiles.input.MovementInfo movement information} for the provided edge. + *

    + * The result describes the shape of the edge and the reshaping behavior of the geometry. The first element in the + * enumerable is the source end of the edge, followed by bend like elements and the target side. Note that it cannot in + * general be assumed {@link yfiles.input.MovementInfo#movedItem} of the first and last element is either a {@link yfiles.graph.IPort} or {@link yfiles.graph.IEdge}, also items in + * between may not necessarily be bound to {@link yfiles.graph.IBend}s and therefore their {@link yfiles.input.MovementInfo#movedItem} can be of a different type than + * {@link yfiles.graph.IBend}. + *

    + * @param edge The edge to obtain the movement information of. + * @returns An {@link } of {@link }s items that describe the geometry of the edge being modified. + */ + getMovementInfos(edge:yfiles.graph.IEdge):yfiles.collections.IListEnumerable; + /** + * Raises the {@link yfiles.input.GraphSnapContext#addCollectSnapLinesListener CollectSnapLines} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onCollectSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; + /** + * Gets the nodes that stay fixed for the current edit. + * @protected + * @type {yfiles.collections.ICollection.} + */ + fixedNodes:yfiles.collections.ICollection; + /** + * Adds the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to + * collect {@link yfiles.input.OrthogonalSnapLine}s. + *

    + * Event handlers should add snap lines to the caller using the methods provided by + * {@link yfiles.input.CollectGraphSnapLinesEventArgs}. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphSnapContext#removeCollectSnapLinesListener + */ + addCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectGraphSnapLinesEventArgs)=>void):void; + /** + * Removes the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to + * collect {@link yfiles.input.OrthogonalSnapLine}s. + *

    + * Event handlers should add snap lines to the caller using the methods provided by + * {@link yfiles.input.CollectGraphSnapLinesEventArgs}. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphSnapContext#addCollectSnapLinesListener + */ + removeCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectGraphSnapLinesEventArgs)=>void):void; + /** + * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines fixed snap lines} for edge segments. + *

    + * The default is true. + *

    + * @see yfiles.input.ISnapLineProvider + * @see yfiles.input.GraphSnapContext#collectFixedSegmentSnapLines + * @default true + * @type {boolean} + */ + collectEdgeSnapLines:boolean; + /** + * Determines whether this instance should collect the sizes of fixed nodes. + *

    + * The default is true. + *

    + * @see yfiles.input.GraphSnapContext#collectSameSizeEntries + * @default true + * @type {boolean} + */ + collectNodeSizes:boolean; + /** + * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedNodeSnapLines fixed snap lines} for nodes. + *

    + * The default is true. + *

    + * @see yfiles.input.ISnapLineProvider + * @see yfiles.input.GraphSnapContext#collectFixedNodeSnapLines + * @default true + * @type {boolean} + */ + collectNodeSnapLines:boolean; + /** + * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedPortSnapLines fixed snap lines} for ports. + *

    + * The default is true. + *

    + * @see yfiles.input.ISnapLineProvider + * @see yfiles.input.GraphSnapContext#collectFixedPortSnapLines + * @default true + * @type {boolean} + */ + collectPortSnapLines:boolean; + /** + * Whether this context will automatically snap the movements of bends so that the two adjacent segments become + * horizontally or vertically oriented. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapBendAdjacentSegments:boolean; + /** + * Whether this context will automatically snap the movements of nodes so that the first and last segments of edges become + * orthogonal. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapPortAdjacentSegments:boolean; + /** + * Determines whether this context will automatically snap orthogonal edge segments to snap lines. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapSegmentsToSnapLines:boolean; + /** + * Whether this context will automatically snap the bends to snap lines. + *

    + * The default is false. + *

    + * @default false + * @type {boolean} + */ + snapBendsToSnapLines:boolean; + /** + * Whether {@link yfiles.input.INodeSnapResultProvider} implementations should snap nodes to snap lines. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapNodesToSnapLines:boolean; + /** + * The preferred distance between node borders. + *

    + * This will influence the creation of the node snap lines. For each fixed node there will be snap lines on the borders of + * the node itself and around the node at the specified distance. + *

    + *

    + * The default is 0.0d which disables distant snap lines around the nodes. + *

    + * @default 0.0 + * @type {number} + */ + nodeToNodeDistance:number; + /** + * The preferred distance between node borders and edge segments. + *

    + * This will influence the creation of the node snap lines. For each fixed node there will be snap lines on the borders of + * the node itself and around the node at the specified distance to which orthogonal edge segments can snap. + *

    + *

    + * The default is -1.0d which disables distant snap lines around the nodes for edge segments. + *

    + * @default -1.0 + * @type {number} + */ + nodeToEdgeDistance:number; + /** + * Gets the preferred distance between edges. + *

    + * This will influence the creation of the segment snap lines. For each orthogonally oriented fixed segment there will be + * snap lines on the segment itself and to both sides of the segment at the specified distance. + *

    + *

    + * The default is 0.0d which disables parallel snap lines. + *

    + * @default 0.0 + * @type {number} + */ + edgeToEdgeDistance:number; + /** + * Determines whether this context will automatically snap the movement in such a way that the overall move gesture is + * constrained to the horizontal or vertical axis. + *

    + * The default is false. + *

    + * @default false + * @type {boolean} + */ + snapOrthogonalMovement:boolean; + /** + * Determines whether this instance will try to align the centers of adjacent nodes so that their centers are equally far + * away from each other. + *

    + * Note that this will only make a difference for differently sized nodes. + *

    + *

    + * By default this feature is turned off, so that the instance will try to distribute nodes evenly, so that there is the + * same spacing between their borders, not between their centers. + *

    + * @default false + * @type {boolean} + */ + collectNodePairCenterSnapLines:boolean; + /** + * Gets or sets a value indicating whether this instance will collect pairs of adjacent nodes and add snapping logic so + * that moved nodes will snap so that the distances to the adjacent nodes are equal. + * @default true + * @type {boolean} + */ + collectNodePairSnapLines:boolean; + /** + * Gets or sets a value indicating whether this instance will collect pairs of adjacent nodes and add snapping logic so + * that moved edge segments will snap so that the distances to the adjacent nodes are equal. + * @default true + * @type {boolean} + */ + collectNodePairSegmentSnapLines:boolean; + /** + * Gets or sets the type of the grid snapping that should be performed. + *

    + * Determines which grid elements an object should snap to. + *

    + * @see yfiles.input.GraphSnapContext#nodeGridConstraintProvider + * @see yfiles.input.GraphSnapContext#bendGridConstraintProvider + * @see yfiles.input.GraphSnapContext#portGridConstraintProvider + * @default yfiles.input.GridSnapTypes.NONE + * @type {yfiles.input.GridSnapTypes} + */ + gridSnapType:yfiles.input.GridSnapTypes; + /** + * Gets or sets the GridSnapDistance. + *

    + * The maximum distance between the current mouse coordinates and the coordinates to which the mouse will snap. The + * distance is interpreted in view coordinates. + *

    + * @default 10.0 + * @type {number} + */ + gridSnapDistance:number; + /** + * Gets or sets the grid constraint provider for the {@link yfiles.graph.INode}s. + * @type {yfiles.input.IGridConstraintProvider.} + */ + nodeGridConstraintProvider:yfiles.input.IGridConstraintProvider; + /** + * Gets or sets the grid constraint provider for the {@link yfiles.graph.IBend}s. + * @type {yfiles.input.IGridConstraintProvider.} + */ + bendGridConstraintProvider:yfiles.input.IGridConstraintProvider; + /** + * Gets or sets the grid constraint provider for the {@link yfiles.graph.IPort}s. + * @type {yfiles.input.IGridConstraintProvider.} + */ + portGridConstraintProvider:yfiles.input.IGridConstraintProvider; + /** + * Gets or sets the amount by which snap lines that are induced by existing edge segments and node borders are being + * extended. + *

    + * The default is 40.0d, this value will be used to extend the ends of the snap lines. + *

    + * @default 40.0 + * @type {number} + */ + snapLineExtension:number; + /** + * Gets or sets a value indicating whether to crop the snap lines at obstacles. + *

    + * The default is true + *

    + * @type {boolean} + */ + cropSnapLines:boolean; + /** + * The collection of {@link yfiles.input.OrthogonalSnapLine}s for fixed nodes. + *

    + * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. + *

    + * @see yfiles.input.GraphSnapContext#getFixedNodeSnapLines + * @type {yfiles.collections.IEnumerable.} + */ + fixedNodeSnapLines:yfiles.collections.IEnumerable; + /** + * The collection of {@link yfiles.input.OrthogonalSnapLine}s for fixed segments. + *

    + * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. + *

    + * @see yfiles.input.GraphSnapContext#getFixedSegmentSnapLines + * @type {yfiles.collections.IEnumerable.} + */ + fixedSegmentSnapLines:yfiles.collections.IEnumerable; + /** + * The collection of {@link yfiles.input.OrthogonalSnapLine}s to which ports should be snapping. + *

    + * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. + *

    + * @see yfiles.input.GraphSnapContext#getFixedPortSnapLines + * @type {yfiles.collections.IEnumerable.} + */ + fixedPortSnapLines:yfiles.collections.IEnumerable; + /** + * The collection of additional {@link yfiles.input.OrthogonalSnapLine}s. + *

    + * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. + *

    + * @see yfiles.input.GraphSnapContext#getAdditionalSnapLines + * @type {yfiles.collections.IEnumerable.} + */ + additionalSnapLines:yfiles.collections.IEnumerable; + static $class:yfiles.lang.Class; + } + export enum MoveTypes{ + /** + * The element does not move at all during the edit. + */ + FIXED, + /** + * The element moves linearly with the mouse in horizontal direction. + */ + LINEAR_MOVE_X, + /** + * The element moves linearly with the mouse in vertical direction. + */ + LINEAR_MOVE_Y, + /** + * The element moves linearly with the mouse in both directions. + */ + LINEAR_MOVE, + /** + * The element moves in horizontal direction but not linearly/predictably with the mouse. + *

    + * A typical example is a port whose position is adjusted during a resize of its owning node. + *

    + *

    + * Elements which do not move linearly with the mouse cannot snap to a defined position. + *

    + */ + ARBITRARY_MOVE_X, + /** + * The element moves in vertical direction but not linearly/predictably with the mouse. + *

    + * A typical example is a port whose position is adjusted during a resize of its owning node. + *

    + *

    + * Elements which do not move linearly with the mouse cannot snap to a defined position. + *

    + */ + ARBITRARY_MOVE_Y, + /** + * The element moves in both directions but not linearly/predictably with the mouse. + *

    + * A typical example is a port whose position is adjusted during a resize of its owning node. + *

    + *

    + * Elements which do not move linearly with the mouse cannot snap to a defined position. + *

    + */ + ARBITRARY_MOVE, + /** + * The bitwise combination of {@link yfiles.input.MoveTypes#LINEAR_MOVE_X} and {@link yfiles.input.MoveTypes#ARBITRARY_MOVE_X} + */ + MOVEMENT_X, + /** + * The bitwise combination of {@link yfiles.input.MoveTypes#LINEAR_MOVE_Y} and {@link yfiles.input.MoveTypes#ARBITRARY_MOVE_Y} + */ + MOVEMENT_Y + } + /** + * A helper class that is used in the context of {@link yfiles.input.GraphSnapContext} to describe the movement of entities during + * the edit process. + * @class + */ + export interface MovementInfo extends Object{} + export class MovementInfo { + /** + * Initializes a new instance of the {@link yfiles.input.MovementInfo} class. + * @param originalLocation The original location. + * @param moveType The type of the move. + * @param movedItem The item that is being moved. + * @protected + */ + constructor(originalLocation:yfiles.geometry.Point,moveType:yfiles.input.MoveTypes,movedItem:yfiles.graph.IModelItem); + /** + * Gets the new x coordinate of the element if the mouse has been moved by dx during the gesture. + *

    + * This takes the {@link yfiles.input.MovementInfo#moveType} and {@link yfiles.input.MovementInfo#originalLocation} into account. + *

    + * @param dx The delta x coordinate. + * @returns The new x coordinate. + */ + getX(dx:number):number; + /** + * Gets the new y coordinate of the element if the mouse has been moved by dy during the gesture. + *

    + * This takes the {@link yfiles.input.MovementInfo#moveType} and {@link yfiles.input.MovementInfo#originalLocation} into account. + *

    + * @param dy The delta y coordinate. + * @returns The new y coordinate. + */ + getY(dy:number):number; + /** + * Determines whether this instances moves synchronized with the provided info. + * @param info The info to check. + * @returns Whether this info and the given info move horizontally synchronized. + * @see yfiles.input.MovementInfo#horizontalAnchor + */ + movesHorizontallySynchronizedWith(info:yfiles.input.MovementInfo):boolean; + /** + * Determines whether this instances moves synchronized with the provided info. + * @param info The info to check. + * @returns Whether this info and the given info move vertically synchronized. + * @see yfiles.input.MovementInfo#verticalAnchor + */ + movesVerticallySynchronizedWith(info:yfiles.input.MovementInfo):boolean; + /** + * Gets the item that is being moved. + * @type {yfiles.graph.IModelItem} + */ + movedItem:yfiles.graph.IModelItem; + /** + * Gets or sets the horizontal movement info to which this info is anchored horizontally. + *

    + * This info can be declared to be implicitly anchored to another info. Method {@link yfiles.input.MovementInfo#movesHorizontallySynchronizedWith} + * will try to match against the anchors to determine if two infos are moving synchronized. + *

    + * @type {yfiles.input.MovementInfo} + */ + horizontalAnchor:yfiles.input.MovementInfo; + /** + * Gets or sets the vertical movement info to which this info is anchored vertically. + *

    + * This info can be declared to be implicitly anchored to another info. Method {@link yfiles.input.MovementInfo#movesVerticallySynchronizedWith} + * will try to match against the anchors to determine if two infos are moving synchronized. + *

    + * @type {yfiles.input.MovementInfo} + */ + verticalAnchor:yfiles.input.MovementInfo; + /** + * Gets the original location of the element at the time the editing started. + * @type {yfiles.geometry.Point} + */ + originalLocation:yfiles.geometry.Point; + /** + * Gets the current location as a live point. + * @abstract + * @type {yfiles.geometry.IPoint} + */ + currentLocation:yfiles.geometry.IPoint; + /** + * Indicates the type of the movement for this instance. + * @type {yfiles.input.MoveTypes} + */ + moveType:yfiles.input.MoveTypes; + /** + * Gets a value indicating whether the y coordinate of the item is fixed during the move operation. + * @type {boolean} + */ + isVerticallyFixed:boolean; + /** + * Gets a value indicating whether the x coordinate of the item is fixed during the move operation. + * @type {boolean} + */ + isHorizontallyFixed:boolean; + static $class:yfiles.lang.Class; + } + /** + * A snap line is a line segment in the world coordinate system to which other items (lines or points) snap during + * interactive movements. + *

    + * {@link yfiles.input.GraphSnapContext} and {@link yfiles.input.LabelSnapContext} make use of this class to interactively snap moving + * elements to snap lines. + *

    + * @class + */ + export interface SnapLine extends Object{} + export class SnapLine { + /** + * Creates a new snap line using the provided attributes. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param from The first location that delimits this snap line. + * @param to The second location that delimits this snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:yfiles.geometry.Point,to:yfiles.geometry.Point,tag:Object,weight:number); + /** + * Resource key which determines a snap line having a fixed visualization independent of the {@link yfiles.input.SnapResult}. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_FIXED_LINE_KEY:string; + /** + * Resource key which determines a snap line with three special locations, for example the start, end and center of an edge + * segment. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EDGE_SEGMENT_KEY:string; + /** + * Resource key which determines a grid snap line having a fixed visualization independent of the {@link yfiles.input.SnapResult}. + * @const + * @static + * @type {string} + */ + static GRID_LINE_FIXED_LINE_KEY:string; + /** + * Resource key which determines a decorated snap line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_VARIABLE_LINE_KEY:string; + /** + * Resource key which determines a blank line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_BLANK_VARIABLE_LINE_KEY:string; + /** + * Resource key which determines a decorated line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates that is extended on both sides. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EXTENDED_VARIABLE_LINE_KEY:string; + /** + * Resource key which determines a snap line which lets an item snap in a defined distance to another graph item. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_FIXED_DISTANCE_KEY:string; + /** + * Resource key which determines a snap line which lets an item snap in the center between the bounds of two other items. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_CENTER_BETWEEN_BOUNDS_KEY:string; + /** + * Resource key which determines a snap line which lets an item snap in the center between the centers of two other items. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_CENTER_BETWEEN_CENTERS_KEY:string; + /** + * Resource key which determines a snap line which lets an item snap if it has an equal distance to two other items. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EQUAL_DISTANCE_BETWEEN_BOUNDS_KEY:string; + /** + * Resource key which determines a snap line which lets an item snap if it's center has an equal distance to the centers' + * of two other items. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EQUAL_DISTANCE_BETWEEN_CENTERS_KEY:string; + /** + * Resource key which determines the snapping of a resized item if it's new width is equal to another item. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EQUAL_WIDTH_KEY:string; + /** + * Resource key which determines the snapping of a resized item if it's new height is equal to another item. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EQUAL_HEIGHT_KEY:string; + /** + * Resource key which determines the snapping of an item to a grid position. + * @const + * @static + * @type {string} + */ + static SNAP_TO_GRID_KEY:string; + /** + * Resource key which determines the {@link yfiles.view.Stroke} used for the snap line visualization. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_STROKE_KEY:string; + /** + * The type of the line that describes how other items will snap to this line. + *

    + * his is one of {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, + * {@link yfiles.input.SnapLineSnapTypes#LEFT}, {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. + *

    + * @type {yfiles.input.SnapLineSnapTypes} + */ + snapType:yfiles.input.SnapLineSnapTypes; + /** + * The coordinates of the center point of the snap line. + * @type {yfiles.geometry.Point} + */ + coordinates:yfiles.geometry.Point; + /** + * The tag that is associated with this snap line. + *

    + * The tag is most commonly used for the {@link yfiles.input.SnapResult#tag snap result tag}. + *

    + * @type {Object} + */ + tag:Object; + /** + * The weight/importance of this snap line. + *

    + * Greater values indicate greater importance. + *

    + * @type {number} + */ + weight:number; + /** + * The first location that delimits this snap line. + * @type {yfiles.geometry.Point} + */ + from:yfiles.geometry.Point; + /** + * The second location that delimits this snap line. + * @type {yfiles.geometry.Point} + */ + to:yfiles.geometry.Point; + /** + * The resource key which determines the visual appearance of the snap line. + * @type {string} + */ + resourceKey:string; + static $class:yfiles.lang.Class; + } + /** + * An orthogonal snap line, in other words, one that is parallel to the x or y axis. + * @class + * @extends {yfiles.input.SnapLine} + */ + export interface OrthogonalSnapLine extends yfiles.input.SnapLine{} + export class OrthogonalSnapLine { + /** + * Creates a new snap line using the provided attributes. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); + /** + * Creates a new snap line using the provided attributes. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param from The smaller value of the coordinate that delimits this snap line. + * @param to The greater value of the coordinate that delimits this snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); + /** + * The orientation of the snap line. + *

    + * This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or {@link yfiles.input.SnapLineOrientation#VERTICAL}. + *

    + * @type {yfiles.input.SnapLineOrientation} + */ + orientation:yfiles.input.SnapLineOrientation; + static $class:yfiles.lang.Class; + } + /** + * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores a {@link yfiles.input.NodeBasedSnapLine#node} as additional information that can be used for the + * visualization. + * @class + * @extends {yfiles.input.OrthogonalSnapLine} + */ + export interface NodeBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} + export class NodeBasedSnapLine { + /** + * Initializes a new instance of the {@link yfiles.input.NodeBasedSnapLine} class. + * @param node The node to assign to {@link #node}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + * @param from The smaller value of the coordinate that delimits this snap line. + * @param to The greater value of the coordinate that delimits this snap line. + */ + constructor(node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); + /** + * Initializes a new instance of the {@link yfiles.input.NodeBasedSnapLine} class. + * @param node The node to assign to {@link #node}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); + /** + * Gets the node that is associated with this snap line. + *

    + * Usually this is the instance that induced this snap line. + *

    + * @type {yfiles.graph.INode} + */ + node:yfiles.graph.INode; + static $class:yfiles.lang.Class; + } + /** + * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores two {@link yfiles.graph.INode nodes} as additional information that can be used for the + * visualization. + * @see yfiles.input.NodePairBasedSnapLine#firstNode + * @see yfiles.input.NodePairBasedSnapLine#secondNode + * @class + * @extends {yfiles.input.OrthogonalSnapLine} + */ + export interface NodePairBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} + export class NodePairBasedSnapLine { + /** + * Initializes a new instance of the {@link yfiles.input.NodePairBasedSnapLine} class. + * @param firstNode The first node to assign to {@link #firstNode}. + * @param secondNode The second node to assign to {@link #secondNode}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + * @param from The smaller value of the coordinate that delimits this snap line. + * @param to The greater value of the coordinate that delimits this snap line. + */ + constructor(firstNode:yfiles.graph.INode,secondNode:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); + /** + * Initializes a new instance of the {@link yfiles.input.NodePairBasedSnapLine} class. + * @param firstNode The first node to assign to {@link #firstNode}. + * @param secondNode The second node to assign to {@link #secondNode}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(firstNode:yfiles.graph.INode,secondNode:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); + /** + * Gets the first node that is associated with this snap line. + *

    + * Usually this is one of the instances that induced this snap line. + *

    + * @type {yfiles.graph.INode} + */ + firstNode:yfiles.graph.INode; + /** + * Gets the second node that is associated with this snap line. + *

    + * Usually this is one of the instances that induced this snap line. + *

    + * @type {yfiles.graph.INode} + */ + secondNode:yfiles.graph.INode; + static $class:yfiles.lang.Class; + } + /** + * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores a {@link yfiles.input.PointBasedSnapLine#point} instance as additional information that can be used for the + * visualization. + * @class + * @extends {yfiles.input.OrthogonalSnapLine} + */ + export interface PointBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} + export class PointBasedSnapLine { + /** + * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. + * @param point The point to assign to {@link #point}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + * @param from The smaller value of the coordinate that delimits this snap line. + * @param to The greater value of the coordinate that delimits this snap line. + */ + constructor(point:yfiles.geometry.IPoint,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); + /** + * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. + * @param point The point to assign to {@link #point}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(point:yfiles.geometry.IPoint,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); + /** + * Gets the point that is associated with this snap line. + *

    + * Usually this is the instance that induced this snap line. + *

    + * @type {yfiles.geometry.IPoint} + */ + point:yfiles.geometry.IPoint; + static $class:yfiles.lang.Class; + } + /** + * A specialized {@link yfiles.input.SnapLine} that is parallel to an edge segment and stores that edge. + *

    + * In addition to the line itself, this class has three special nape locations the represent the source, center and end + * location of the related edge segment. All snap lines of this type have the {@link yfiles.input.SnapLine#snapType} {@link yfiles.input.SnapLineSnapTypes#CENTER} and + * the {@link yfiles.input.SnapLine#resourceKey} {@link yfiles.input.SnapLine#SNAP_LINE_EDGE_SEGMENT_KEY}. + *

    + * @class + * @extends {yfiles.input.SnapLine} + */ + export interface EdgeSegmentSnapLine extends yfiles.input.SnapLine{} + export class EdgeSegmentSnapLine { + /** + * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. + * @param edge The edge to assign to {@link #edge}. + * @param from The first location that delimits this snap line. + * @param to The second location that delimits this snap line. + * @param segmentSource The location that represents the source of the related segment on this line. + * @param segmentTarget The location that represents the target of the related segment on this line. + * @param distance The distance of this snap line from its related edge segment. + * @param segmentIndex The segment index of the related edge segment. + * @param tag A tag that is associated with this snap line. + * @param weight The weight (importance) of this snap line. + */ + constructor(edge:yfiles.graph.IEdge,from:yfiles.geometry.Point,to:yfiles.geometry.Point,segmentSource:yfiles.geometry.Point,segmentTarget:yfiles.geometry.Point,distance:number,segmentIndex:number,tag:Object,weight:number); + /** + * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. + * @param edge The edge to assign to {@link #edge}. + * @param segmentSource The location that represents the source of the related segment on this line. In addition, this location is used as {@link #from} + * location. + * @param segmentTarget The location that represents the target of the related segment on this line. In addition, this location is used as {@link #to} + * location. + * @param distance The distance of this snap line from its related edge segment. + * @param segmentIndex The segment index of the related edge segment. + */ + constructor(edge:yfiles.graph.IEdge,segmentSource:yfiles.geometry.Point,segmentTarget:yfiles.geometry.Point,distance:number,segmentIndex:number); + /** + * Gets the edge that is associated with this snap line. + * @type {yfiles.graph.IEdge} + */ + edge:yfiles.graph.IEdge; + /** + * Gets the direction vector of this snap line. + * @type {yfiles.geometry.Point} + */ + direction:yfiles.geometry.Point; + /** + * Gets the distance of this snap line from its related edge segment. + * @type {number} + */ + distance:number; + /** + * Gets the segment index of the related edge segment. + * @type {number} + */ + segmentIndex:number; + /** + * Gets the location that represents the source of the related segment on this line. + * @type {yfiles.geometry.Point} + */ + segmentSource:yfiles.geometry.Point; + /** + * Gets the location that represents the target of the related segment on this line. + * @type {yfiles.geometry.Point} + */ + segmentTarget:yfiles.geometry.Point; + /** + * Gets and sets the location of the source marker of this snap line. + *

    + * If this is null, the location of the {@link yfiles.input.EdgeSegmentSnapLine#segmentSource} is marked instead. + *

    + * @type {yfiles.geometry.Point} + */ + sourceMarker:yfiles.geometry.Point; + /** + * Gets and sets the location of the target marker of this snap line. + *

    + * If this is null, the location of the {@link yfiles.input.EdgeSegmentSnapLine#segmentTarget} is marked instead. + *

    + * @type {yfiles.geometry.Point} + */ + targetMarker:yfiles.geometry.Point; + static $class:yfiles.lang.Class; + } + export enum SnapLineOrientation{ + /** + * Constant that describes a horizontal {@link yfiles.input.SnapLineOrientation orientation} of a snap line. + */ + HORIZONTAL, + /** + * Constant that describes a vertical {@link yfiles.input.SnapLineOrientation orientation} of a snap line. + */ + VERTICAL + } + export enum SnapLineSnapTypes{ + /** + * Describes snap lines to which nothing will snap. + */ + NONE, + /** + * Describes snap lines to which the top sides of rectangular elements will snap. + */ + TOP, + /** + * Describes snap lines to which the bottom sides of rectangular elements will snap. + */ + BOTTOM, + /** + * Describes snap lines to which the left sides of rectangular elements will snap. + */ + LEFT, + /** + * Describes snap lines to which the right sides of rectangular elements will snap. + */ + RIGHT, + /** + * Describes snap lines to which the center of elements will snap. + */ + CENTER, + /** + * Describes vertical snap lines + */ + VERTICAL, + /** + * Describes horizontal snap lines + */ + HORIZONTAL, + /** + * Describes snap lines to which all elements will snap at all sides + */ + ALL + } + /** + * A simple default implementation of an {@link yfiles.input.IPortCandidate}. + *

    + * Subclasses need to override {@link yfiles.input.DefaultPortCandidate#createInstance} if they don't {@link yfiles.input.DefaultPortCandidate#setInstance set} a port instance. + *

    + * @class + * @implements {yfiles.input.IPortCandidate} + */ + export interface DefaultPortCandidate extends Object,yfiles.input.IPortCandidate{} + export class DefaultPortCandidate { + /** + * Creates a candidate for the given owner that uses the graph's defaults for the port's style and a default parameter for + * the given model. + *

    + * The {@link yfiles.input.DefaultPortCandidate#locationParameter} is set to the parameter that best matches the {@link yfiles.geometry.Point#ORIGIN origin} for the given model. + *

    + * @param owner The owner. + * @param model The model. + */ + constructor(owner:yfiles.graph.IPortOwner,model:yfiles.graph.IPortLocationModel); + /** + * Creates a candidate for the given owner that uses the graph's defaults for the port's style and the given + * locationParameter. + *

    + * If no locationParameter is given, the used candidate has a fixed location at {@link yfiles.geometry.Point#ORIGIN} that does not + * depend on the owner. + *

    + * @param owner The owner. + * @param [locationParameter=null] The location. + * @param [validity=yfiles.input.PortCandidateValidity.VALID] The validity of the port candidate. + */ + constructor(owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,validity?:yfiles.input.PortCandidateValidity); + /** + * Creates a candidate for the given owner that uses the graph's defaults for the port's style and the given + * locationParameter. + *

    + * If no locationParameter is given, the used candidate has a fixed location at {@link yfiles.geometry.Point#ORIGIN} that does not + * depend on the owner. + *

    + * @param {Object} options The parameters to pass. + * @param options.owner The owner. + * @param [options.locationParameter=null] The location. + * @param [options.validity=yfiles.input.PortCandidateValidity.VALID] The validity of the port candidate. + */ + constructor(options:{owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,validity?:yfiles.input.PortCandidateValidity}); + /** + * Creates a candidate using the given port as the template. + * @param port The port to use. + */ + constructor(port:yfiles.graph.IPort); + /** + * Actually creates the {@link yfiles.graph.IPort} instance. + *

    + * This method is called in response to a call to {@link yfiles.input.DefaultPortCandidate#createPort} on this instance and the + * instances created by {@link yfiles.input.DefaultPortCandidate#getPortCandidateAt}. + *

    + * @param context The input mode context. + * @param graph The graph to add the port to. + * @param locationParameter The parameter to use. + * @param style The style to use. + * @param tag The tag to use. + * @returns The newly created port. + * @protected + */ + createInstance(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,locationParameter:yfiles.graph.IPortLocationModelParameter,style:yfiles.styles.IPortStyle,tag:Object):yfiles.graph.IPort; + /** + * This implementation will throw a {@link yfiles.lang.Exception} if the validity is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. + *

    + * This implementation will delegate to the {@link yfiles.input.DefaultPortCandidate#createInstance} method. + *

    + * @param context + * @returns + */ + createPort(context:yfiles.input.IInputModeContext):yfiles.graph.IPort; + /** + * Returns a candidate that is derived from this instance that best fits the provided location. + *

    + * The returned implementation will finally call {@link yfiles.input.DefaultPortCandidate#createInstance} using the newly + * calculated {@link yfiles.input.DefaultPortCandidate#locationParameter}. + *

    + * @param context The input mode context for which a concrete candidate is queried. + * @param location The location for which a candidate should be returned. + * @returns A {@link } implementation whose {@link #validity} is guaranteed to be non-{@link #DYNAMIC}. + * @see yfiles.input.DefaultPortCandidate#validity + */ + getPortCandidateAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; + /** + * Sets the instance that will be returned by {@link yfiles.input.DefaultPortCandidate#port} and {@link yfiles.input.DefaultPortCandidate#createPort}. + * @param port A port that already exists in the graph or null. + */ + setInstance(port:yfiles.graph.IPort):void; + /** + * Determines whether this candidate is a valid one depending on the context it has been obtained from. + * @default yfiles.input.PortCandidateValidity.VALID + * @type {yfiles.input.PortCandidateValidity} + */ + validity:yfiles.input.PortCandidateValidity; + /** + * Gets or set the tag for this candidate. + *

    + * The interpretation of this value is implementation dependent and may be used for visual feedback or interactive + * behavior. + *

    + * @default null + * @type {Object} + */ + candidateTag:Object; + /** + * Gets or sets the port tag to create the port with. + * @default null + * @type {Object} + */ + portTag:Object; + /** + * Gets or sets the model parameter that will be used for the {@link yfiles.graph.IPort#locationParameter} if this candidate is chosen. + *

    + * The parameter which may not be null. + *

    + * @type {yfiles.graph.IPortLocationModelParameter} + */ + locationParameter:yfiles.graph.IPortLocationModelParameter; + /** + * The model that will be used by this instance to determine the new {@link yfiles.input.DefaultPortCandidate#locationParameter} if the {@link yfiles.input.DefaultPortCandidate#getPortCandidateAt} + * is called and the {@link yfiles.input.DefaultPortCandidate#validity} is set to {@link yfiles.input.PortCandidateValidity#DYNAMIC}. + * @default null + * @type {yfiles.graph.IPortLocationModel} + */ + model:yfiles.graph.IPortLocationModel; + /** + * Gets or sets the style to use for the newly created port. + * @default null + * @type {yfiles.styles.IPortStyle} + */ + style:yfiles.styles.IPortStyle; + /** + * Gets or sets the owner of the port to be created. + * @type {yfiles.graph.IPortOwner} + */ + owner:yfiles.graph.IPortOwner; + /** + * Returns the instance provided to the constructor or to the {@link yfiles.input.DefaultPortCandidate#setInstance setter}. + * @see yfiles.input.DefaultPortCandidate#createPort + * @type {yfiles.graph.IPort} + */ + port:yfiles.graph.IPort; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.input.IPositionHandler} implementation used in the context of {@link yfiles.graph.IGraph}s where there is a + * {@link yfiles.graph.IGraph#getChildren active hierarchy}. + *

    + * This implementation delegates through to a simpler implementation that only deals with the geometric relocation of the + * node. In addition to that it finds the {@link yfiles.input.IReparentNodeHandler} from the {@link yfiles.input.IInputModeContext} to + * detect {@link yfiles.input.IReparentNodeHandler#isReparentGesture a reparenting gesture} by the user. If such a gesture is recognized, the node can be moved freely until a {@link yfiles.input.IReparentNodeHandler#isValidParent valid new parent node} + * is found. This implementation then temporarily sets that node as a new visual parent and highlight the node. When the + * gesture is finished, the {@link yfiles.input.IReparentNodeHandler#reparent} method is called to perform the actual reparenting. + *

    + *

    + * In order to customize this default behavior, subclasses of this type can be {@link yfiles.graph.NodeDecorator#positionHandlerDecorator decorated} to the + * {@link yfiles.graph.INode}s in the graph. + *

    + * @class + * @implements {yfiles.input.IPositionHandler} + */ + export interface GroupingNodePositionHandler extends Object,yfiles.input.IPositionHandler{} + export class GroupingNodePositionHandler { + /** + * Initializes a new instance of the {@link yfiles.input.GroupingNodePositionHandler} class. + *

    + * This implementation uses the provided wrappedHandler to delegate the handling of the node's {@link yfiles.graph.INode#layout} changes. + *

    + * @param node The node to reposition. + * @param [wrappedHandler=null] The positionhandler to + */ + constructor(node:yfiles.graph.INode,wrappedHandler?:yfiles.input.IPositionHandler); + /** + * + * @param inputModeContext + * @param originalLocation + */ + cancelDrag(inputModeContext:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; + /** + * + * @param inputModeContext + * @param originalLocation + * @param newLocation + */ + dragFinished(inputModeContext:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; + /** + * + * @param inputModeContext + * @param originalLocation + * @param newLocation + */ + handleMove(inputModeContext:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; + /** + * + * @param inputModeContext + */ + initializeDrag(inputModeContext:yfiles.input.IInputModeContext):void; + /** + * Sets a temporary visual parent for the node during reparenting. + *

    + * This is used to show the grouping hierarchy level a node would end in after finishing the reparenting gesture. Override + * this method with an empty implementation to not change the z-order of the dragged node during the gesture. + *

    + * @param inputModeContext The current {@link }. + * @param node The node being reparented. + * @param parent The temporary parent for the node. + */ + setCurrentParent(inputModeContext:yfiles.input.IInputModeContext,node:yfiles.graph.INode,parent:yfiles.graph.INode):void; + /** + * Delegates to the wrapped {@link yfiles.input.IPositionHandler}'s {@link yfiles.input.IDragHandler#location location}. + * @type {yfiles.geometry.IPoint} + */ + location:yfiles.geometry.IPoint; + static $class:yfiles.lang.Class; + } + /** + * Callback interface for instances that can create bends for a given edge and graph. + *

    + * Implementations of this interface may be found in the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IEdge} instances. This + * interface is used by {@link yfiles.input.GraphEditorInputMode} to create new bends for an edge as soon as the user performs the + * bend creation gesture. + *

    + * @see yfiles.input.GraphEditorInputMode#onCreateBendInputModeBendCreated + * @interface + */ + export interface IBendCreator extends Object{ + /** + * Creates a bend at the given graph for the given edge at the position supplied. + * @param context The context for which the bend should be created. + * @param graph The graph, the edge belongs to. + * @param edge The edge. + * @param location The preferred coordinates of the bend. + * @returns The index of the bend in the edges' {@link #bends} or -1 if no bend has been created. + * @abstract + */ + createBend(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,location:yfiles.geometry.Point):number; + } + var IBendCreator:{ + /** + * A static instance that does not create any bends. + * @const + * @static + * @type {yfiles.input.IBendCreator} + */ + NO_BENDS?:yfiles.input.IBendCreator; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that can be used to find bends at specific locations in the canvas. + *

    + * This interface is usually provided through the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IEdge} implementations. + *

    + * @interface + */ + export interface IBendSelectionTester extends Object{ + /** + * Returns the bends within the given rectangle. + * @param context The input mode context to use for querying the position. + * @param rectangle A rectangle in world coordinates. + * @returns The bends inside of rectangle. + * @abstract + */ + getBendsInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + /** + * Returns the bend at the given world coordinate position. + * @param context The input mode context to use for querying the position. + * @param location A location in world coordinates. + * @returns The bend at the position or null if there is no bend. + * @abstract + */ + getHitBend(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.graph.IBend; + } + var IBendSelectionTester:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An interface that checks for containment of an {@link yfiles.graph.IBend} in 2D coordinate space. + *

    + * This interface is used to determine which bends of edges that connect child nodes are moved when the parent node is + * moved. Therefore, special care has to be taken if you want to provide this interface in the node lookup for other purposes, as this + * can also affect implicit bend movement. + *

    + * @interface + */ + export interface IContainsBendTester extends Object{ + /** + * Determines whether the provided bend is deemed to lie within the shape this test is implemented for. + *

    + * This method is used to determine which bends of edges that connect child nodes are moved when the parent node is moved. + * If an implementation of {@link yfiles.input.IContainsBendTester} is present in the node's {@link yfiles.graph.ILookup#lookup}, this + * method is called with the bend and the bend will be moved together with the parent node iff true is returned. If no + * implemention is provided, only bends that lie inside the bounds of the parent node are moved. + *

    + * @param context The input mode context to use. + * @param bend The bend to test + * @returns true iff the bend is contained within the shape. + * @abstract + */ + contains(context:yfiles.input.IInputModeContext,bend:yfiles.graph.IBend):boolean; + } + var IContainsBendTester:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.INode nodes} to collect a number of + * {@link yfiles.input.SnapResult}s during the move/edit operation. + *

    + * This interface is queried from the {@link yfiles.graph.ILookup} of the + * {@link yfiles.graph.INode}s that are being moved during the edit. + *

    + * @see yfiles.input.GraphSnapContext + * @see yfiles.graph.NodeDecorator#nodeSnapResultProviderDecorator + * @interface + */ + export interface INodeSnapResultProvider extends Object{ + /** + * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for + * {@link yfiles.input.OrthogonalSnapLine}s to which this node can potentially snap. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the necessary information from and {@link #addSnapResult add results to}. + * @param suggestedLayout The {@link #layout layout} of the node if the node would not snap. + * @param node The node that is being moved. + * @abstract + */ + collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; + } + var INodeSnapResultProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface for classes that help during snapping of parts of edges. + *

    + * An implementation of this class is obtained from the lookup of the {@link yfiles.graph.IEdge}s which are being edited during an + * operation where {@link yfiles.input.GraphSnapContext graph snapping} is involved. + *

    + * @see yfiles.graph.EdgeDecorator#edgeSnapResultProviderDecorator + * @interface + */ + export interface IEdgeSnapResultProvider extends Object{ + /** + * Called to during the snapping operation whenever {@link yfiles.input.SnapContext#addCollectSnapResultsListener snap results are collected}. + *

    + * This method will be called for each collection of the results. + *

    + * @param context The context that is using this instance. + * @param evt The event argument to obtain the necessary information from and {@link #addSnapResult add results to}. + * @param movementInfos The movement infos that describe the edge. + * @param edge The edge for which the {@link }s should be {@link #addSnapResult collected}. + * @abstract + */ + collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,movementInfos:yfiles.collections.IListEnumerable,edge:yfiles.graph.IEdge):void; + } + var IEdgeSnapResultProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.IBend bends} to collect a number of + * {@link yfiles.input.SnapResult}s during the move/edit operation. + *

    + * This interface is queried from the {@link yfiles.graph.ILookup} of the + * {@link yfiles.graph.IBend}s that are being moved during the edit. + *

    + * @see yfiles.input.GraphSnapContext + * @see yfiles.graph.BendDecorator#bendSnapResultProviderDecorator + * @interface + */ + export interface IBendSnapResultProvider extends Object{ + /** + * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for + * {@link yfiles.input.OrthogonalSnapLine}s to which this bend can potentially snap. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the necessary information from and {@link #addSnapResult add results to}. + * @param suggestedLocation The {@link #location location} of the bend if the bend would not snap. + * @param bend The bend that is being moved. + * @abstract + */ + collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLocation:yfiles.geometry.Point,bend:yfiles.graph.IBend):void; + } + var IBendSnapResultProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.IPort port} to collect a number of + * {@link yfiles.input.SnapResult}s during the move/edit operation. + *

    + * This interface is queried from the {@link yfiles.graph.ILookup} of the + * {@link yfiles.graph.IPort}s that are being moved during the edit. + *

    + * @see yfiles.input.GraphSnapContext + * @see yfiles.graph.PortDecorator#portSnapResultProviderDecorator + * @interface + */ + export interface IPortSnapResultProvider extends Object{ + /** + * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for + * {@link yfiles.input.OrthogonalSnapLine}s to which this bend can potentially snap. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the necessary information from and {@link #addSnapResult add results to}. + * @param suggestedLocation The {@link #location location} of the bend if the bend would not snap. + * @param port The port that is being moved + * @abstract + */ + collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLocation:yfiles.geometry.Point,port:yfiles.graph.IPort):void; + } + var IPortSnapResultProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface for an implementation which evaluates a list of given {@link yfiles.input.SnapLine}s for a node which is resized and + * adds a set of {@link yfiles.input.SnapResult}s for sizes to which this node can potentially snap. + * @interface + */ + export interface INodeReshapeSnapResultProvider extends Object{ + /** + * Called when a node's handle is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for + * {@link yfiles.input.OrthogonalSnapLine}s or sizes to which this node can potentially snap during resizing. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the context from and add the results to. + * @param node The node that is being reshaped. + * @param reshapeContext Carries information about the reshape operation. + * @abstract + */ + collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext):void; + } + var INodeReshapeSnapResultProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Helper class that carries information about a reshape operation. + *

    + * This class is mainly intended for use by {@link yfiles.input.INodeReshapeSnapResultProvider#collectSnapResults}. + *

    + * @class + * @final + */ + export interface ReshapeRectangleContext extends Object{} + export class ReshapeRectangleContext { + /** + * Initializes a new instance of the {@link yfiles.input.ReshapeRectangleContext} class. + * @param initialBounds The initial bounds of the node. + * @param minimumSize The minimum size of the node. + * @param maximumSize The maximum size of the node. + * @param minimumEnclosedArea The minimum area the node's layout needs to encompass. + * @param reshapePosition The position of the reshape handle. + * @param topLeftChangeFactor The factor by which the top left corner of the node layout changes when the handle is dragged. + * @param bottomRightChangeFactor The factor by which the bottom right corner of the node layout changes when the handle is dragged. + * @param sizeChangeFactor The factor by which the size of the node layout changes when the handle is dragged. + */ + constructor(initialBounds:yfiles.geometry.Rect,minimumSize:yfiles.geometry.ISize,maximumSize:yfiles.geometry.ISize,minimumEnclosedArea:yfiles.geometry.IRectangle,reshapePosition:yfiles.input.HandlePositions,topLeftChangeFactor:yfiles.geometry.Point,bottomRightChangeFactor:yfiles.geometry.Point,sizeChangeFactor:yfiles.geometry.Size); + /** + * Gets the initial bounds of the node. + * @type {yfiles.geometry.Rect} + */ + initialBounds:yfiles.geometry.Rect; + /** + * Gets the minimum size of the node. + * @type {yfiles.geometry.ISize} + */ + minimumSize:yfiles.geometry.ISize; + /** + * Gets or sets the maximum size of the node. + * @type {yfiles.geometry.ISize} + */ + maximumSize:yfiles.geometry.ISize; + /** + * Gets minimum area the node's layout needs to encompass + * @type {yfiles.geometry.IRectangle} + */ + minimumEnclosedArea:yfiles.geometry.IRectangle; + /** + * Gets the position of the reshape handle. + * @type {yfiles.input.HandlePositions} + */ + reshapePosition:yfiles.input.HandlePositions; + /** + * Gets the factor by which the top left corner of the node layout changes when the handle is dragged. + * @type {yfiles.geometry.Point} + */ + topLeftChangeFactor:yfiles.geometry.Point; + /** + * Gets the factor by which the bottom right corner of the node layout changes when the handle is dragged. + * @type {yfiles.geometry.Point} + */ + bottomRightChangeFactor:yfiles.geometry.Point; + /** + * Gets the factor by which the size of the node layout changes when the handle is dragged. + * @type {yfiles.geometry.Size} + */ + sizeChangeFactor:yfiles.geometry.Size; + static $class:yfiles.lang.Class; + } + /** + * An interface for possible {@link yfiles.graph.IPort} candidates used by {@link yfiles.input.IPortCandidateProvider} and the like. + *

    + * Note that if an instance's {@link yfiles.input.IPortCandidate#validity} property is {@link yfiles.input.PortCandidateValidity#DYNAMIC} this instance {@link yfiles.input.IPortCandidate#getPortCandidateAt} + * method serves as a factory for the actual candidates. + *

    + * @see yfiles.input.IEdgeReconnectionPortCandidateProvider + * @see yfiles.input.IPortCandidateProvider + * @see yfiles.input.DefaultPortCandidate + * @interface + */ + export interface IPortCandidate extends Object{ + /** + * If the client decides to use this port candidate, this method will serve as a factory to create the instance. + *

    + * If this candidate wraps an existing port, it may return that {@link yfiles.input.IPortCandidate#port instance}. If this instance's {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC} + * this method may throw an {@link yfiles.lang.Exception}. + *

    + * @param context The input mode context for which the port will be created. Implementations can depend on it providing an {@link } + * instance in the lookup of the instance. + * @returns The port instance to use if this candidate has been chosen. This method may not return null. + * @throws {Stubs.Exceptions.NotSupportedError} If the {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. + * @see yfiles.input.IInputModeContext#graph + * @see yfiles.input.IPortCandidate#port + * @see yfiles.input.IPortCandidate#getPortCandidateAt + * @abstract + */ + createPort(context:yfiles.input.IInputModeContext):yfiles.graph.IPort; + /** + * Returns a candidate that is derived from this instance that best fits the provided location. + *

    + * This method needs to be called by clients if the {@link yfiles.input.IPortCandidate#validity} of this instance is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. In + * that case calling this method must return an instance whose validity is not {@link yfiles.input.PortCandidateValidity#DYNAMIC}. + *

    + * @param context The input mode context for which a concrete candidate is queried. + * @param location The location for which a candidate should be returned. + * @returns A {@link } implementation whose {@link #validity} is guaranteed to be non-{@link #DYNAMIC}. + * @see yfiles.input.IPortCandidate#validity + * @abstract + */ + getPortCandidateAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; + /** + * Possibly yields a user defined tag for this candidate. + *

    + * The interpretation of this value is implementation dependent and may be used for visual feedback or interactive + * behavior. + *

    + * @abstract + * @type {Object} + */ + candidateTag:Object; + /** + * Determines whether this instance is a valid port candidate. + *

    + * Implementations of {@link yfiles.input.IPortCandidateProvider} may return sets of port candidates where some of them are marked + * as invalid e.g. in order to provide visual feedback. If the value is {@link yfiles.input.PortCandidateValidity#DYNAMIC}, method + * {@link yfiles.input.IPortCandidate#getPortCandidateAt} needs to be used to determine a concrete candidate instance. + *

    + * @see yfiles.input.IPortCandidate#getPortCandidateAt + * @abstract + * @type {yfiles.input.PortCandidateValidity} + */ + validity:yfiles.input.PortCandidateValidity; + /** + * Returns the model parameter that will be used for the {@link yfiles.graph.IPort#locationParameter} if this candidate is chosen. + *

    + * Note that the value of this property is undefined if this instance's {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. In + * this case, the parameter needs to be obtained via the {@link yfiles.input.IPortCandidate#getPortCandidateAt} instance. + *

    + * @abstract + * @type {yfiles.graph.IPortLocationModelParameter} + */ + locationParameter:yfiles.graph.IPortLocationModelParameter; + /** + * Returns the possible owner of the port to be created for this candidate. + * @abstract + * @type {yfiles.graph.IPortOwner} + */ + owner:yfiles.graph.IPortOwner; + /** + * Gets the port instance that is already live in the graph if this candidate wraps an existing port or null otherwise. + * @see yfiles.input.IPortCandidate#createPort + * @abstract + * @type {yfiles.graph.IPort} + */ + port:yfiles.graph.IPort; + } + var IPortCandidate:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + export enum PortCandidateValidity{ + /** + * The candidate is valid and can be used to connect an edge to. + */ + VALID, + /** + * The candidate should not be used to connect an edge to. + */ + INVALID, + /** + * The candidate cannot be used to create a port, instead {@link yfiles.input.IPortCandidate#getPortCandidateAt} needs to be called + * to obtain a {@link yfiles.input.IPortCandidate} that is either {@link yfiles.input.PortCandidateValidity#VALID} or + * {@link yfiles.input.PortCandidateValidity#INVALID}. + */ + DYNAMIC + } + /** + * This interface is used to provide {@link yfiles.input.IPortCandidate}s for a specific {@link yfiles.graph.IPortOwner}. + *

    + * It is used in the context of the items that will later become the owner ({@link yfiles.graph.IPortOwner}) of the ports obtained + * from the candidates. They are mainly used during edge creation where there is no real edge yet (only the dummy edge) and + * thus they need to use the opposite {@link yfiles.input.IPortCandidate} to understand the context. + *

    + *

    + * Implementations of this interface may be queried using the {@link yfiles.graph.ILookup#lookup} method of {@link yfiles.graph.IPortOwner} + * implementations like {@link yfiles.graph.INode}. + *

    + *

    + * Note that this interface is similar to the interface {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} in the sense + * that they will both provide {@link yfiles.input.IPortCandidate} instances in a certain query context. They are used in different + * query contexts, though. The two interfaces can come together in concrete implementations of + * {@link yfiles.input.IEdgeReconnectionPortCandidateProvider}: an edge could potentially be connected to ports at any given {@link yfiles.graph.IPortOwner} + * and thus the {@link yfiles.input.IPortCandidateProvider} interface can be queried from the respective {@link yfiles.graph.IPortOwner} + * that the edge will be reconnected to. + *

    + *

    Related demos:

    + *
      + *
    • Demo: PortCandidateProvider, demo.yfiles.input.portcandidateprovider
    • + *
    + * @see yfiles.graph.NodeDecorator#portCandidateProviderDecorator + * @interface + */ + export interface IPortCandidateProvider extends Object{ + /** + * Returns all port candidates that apply for the provided opposite port candidate. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param target The opposite port candidate. + * @param context The context for which the candidates should be provided. + * @returns An enumerable over all port candidates that are associated with the given opposite port. + * @abstract + */ + getSourcePortCandidates(context:yfiles.input.IInputModeContext,target:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; + /** + * Returns all source port candidates that belong to the context of this provider. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param context The context for which the candidates should be provided. + * @returns An enumerable over all source port candidates that are associated with the current context. + * @abstract + */ + getSourcePortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; + /** + * Returns all port candidates that apply for the provided opposite port candidate. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param context The context for which the candidates should be provided. + * @param source The opposite port candidate. + * @returns An enumerable over all port candidates that are associated with the given opposite port. + * @abstract + */ + getTargetPortCandidates(context:yfiles.input.IInputModeContext,source:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; + /** + * Returns all target port candidates that belong to the context of this provider. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param context The context for which the candidates should be provided. + * @returns An enumerable over all target port candidates that are associated with the current context. + * @abstract + */ + getTargetPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; + } + var IPortCandidateProvider:{ + /** + * Creates a generic composite implementation for the {@link yfiles.input.IPortCandidateProvider} interface. + * @param providers The providers to create the composite from. + * @returns + * @static + */ + combine?(...providers:yfiles.input.IPortCandidateProvider[]):yfiles.input.IPortCandidateProvider; + /** + * Creates a generic composite implementation for the {@link yfiles.input.IPortCandidateProvider} interface. + * @param providers The providers to create the composite from. + * @returns + * @static + */ + combine?(providers:yfiles.collections.IEnumerable):yfiles.input.IPortCandidateProvider; + /** + * Creates an implementation of an {@link yfiles.input.IPortCandidateProvider} that provides only the given port candidates. + * @param candidates The port candidates the provider should provide. + * @returns A new {@link }. + * @static + */ + fromCandidates?(...candidates:yfiles.input.IPortCandidate[]):yfiles.input.PortCandidateProviderBase; + /** + * Creates an implementation of an {@link yfiles.input.IPortCandidateProvider} that provides only the given port candidates. + * @param candidates The port candidates the provider should provide. + * @returns A new {@link }. + * @static + */ + fromCandidates?(candidates:yfiles.collections.IEnumerable):yfiles.input.PortCandidateProviderBase; + /** + * Creates an implementation of the {@link yfiles.input.IPortCandidateProvider} interface that returns the ports that exist in the + * given {@link yfiles.graph.IPortOwner#ports}'s {@link yfiles.graph.IPortOwner} collection. + * @param owner The owner of the port collection. + * @returns + * @static + */ + fromExistingPorts?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; + /** + * Creates a trivial implementation of an {@link yfiles.input.IPortCandidateProvider} that always returns exactly one candidate + * that is centered at the node's {@link yfiles.graph.INode#layout}. + * @param node The node to get the layout's center from. + * @returns + * @static + */ + fromNodeCenter?(node:yfiles.graph.INode):yfiles.input.PortCandidateProviderBase; + /** + * Creates a simple implementation of an {@link yfiles.input.IPortCandidateProvider} that always returns a candidate that uses the + * default {@link yfiles.graph.IPortDefaults#locationParameter} for the corresponding {@link yfiles.graph.IPortDefaults}. + * @param owner + * @returns + * @static + */ + fromPortDefaults?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; + /** + * Creates an implementation of {@link yfiles.input.IPortCandidateProvider} that works for {@link yfiles.graph.IPortOwner} implementations + * that have {@link yfiles.styles.IShapeGeometry} instances in their lookup. + * @param owner The owner to receive the shape geometry from + * @param minimumSegmentLength the minimum length a segment needs to have in order to be used to add port candidates. + * @param ratios A number of double values that are interpreted as ratio values between 0.0 and 1.0. If none are given, the provider + * inserts a port candidate at the center of each straight line segment. + * @param addExistingPortsEnabled determines whether {@link #addExistingPorts existing ports should be added to the list of ports}. + * @returns + * @static + */ + fromShapeGeometry?(owner:yfiles.graph.IPortOwner,addExistingPortsEnabled:boolean,minimumSegmentLength:number,...ratios:number[]):yfiles.input.PortCandidateProviderBase; + /** + * Creates an implementation of {@link yfiles.input.IPortCandidateProvider} that works for {@link yfiles.graph.IPortOwner} implementations + * that have {@link yfiles.styles.IShapeGeometry} instances in their lookup. + * @param owner The owner to receive the shape geometry from + * @param ratios A number of double values that are interpreted as ratio values between 0.0 and 1.0. If none are given, the provider + * inserts a port candidate at the center of each straight line segment. + * @returns + * @static + */ + fromShapeGeometry?(owner:yfiles.graph.IPortOwner,...ratios:number[]):yfiles.input.PortCandidateProviderBase; + /** + * Creates a simple implementation of an {@link yfiles.input.IPortCandidateProvider} that returns unoccupied ports at a given + * entity. + * @param owner The owner to query the ports from. + * @returns + * @static + */ + fromUnoccupiedPorts?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; + /** + * A generic implementation of the {@link yfiles.input.IPortCandidateProvider} interface that provides no candidates. + * @const + * @static + * @type {yfiles.input.IPortCandidateProvider} + */ + NO_CANDIDATES?:yfiles.input.IPortCandidateProvider; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This interface can be used to query {@link yfiles.input.IPortCandidate}s for a specific existing {@link yfiles.graph.IEdge} + *

    + * As the name implies this is only used in the context of reconnecting existing edges. It is queried for existing edges to + * find out about possible alternative port candidates that given edge could connect to. It is used during gestures where + * an edge is reconnected to another port(candidate), i.e. when the source or target port handle of an edge is moved and + * the source or target port properties of the edge get set to the new {@link yfiles.input.IPortCandidate}s. + *

    + *

    + * Implementations of this interface can be queried using the {@link yfiles.graph.ILookup#lookup} method of an {@link yfiles.graph.IEdge} + * implementation. This interface provides alternative candidates for the {@link yfiles.graph.IEdge#sourcePort} or {@link yfiles.graph.IEdge#targetPort} of an edge. + *

    + *

    + * Note that this interface is similar to the interface {@link yfiles.input.IPortCandidateProvider} in the sense that they will + * both provide {@link yfiles.input.IPortCandidate} instances in a certain query context. They are used in different query + * contexts, though. The two interfaces can come together in concrete implementations of + * {@link yfiles.input.IEdgeReconnectionPortCandidateProvider}: an edge could potentially be connected to ports at any given {@link yfiles.graph.IPortOwner} + * and thus the {@link yfiles.input.IPortCandidateProvider} interface can be queried from the respective {@link yfiles.graph.IPortOwner} + * that the edge will be reconnected to. + *

    + *

    Related demos:

    + *
      + *
    • Demo: EdgePortCandidateProvider, demo.yfiles.input.edgeportcandidateprovider
    • + *
    + * @interface + */ + export interface IEdgeReconnectionPortCandidateProvider extends Object{ + /** + * Returns all source port candidates that may be used for the edge. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param context The context for which the candidates should be provided. + * @returns An enumerable over all source port candidates that are associated with the current context edge. + * @abstract + */ + getSourcePortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; + /** + * Returns all source port candidates that may be used for the edge. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param context The context for which the candidates should be provided. + * @returns An enumerable over all target port candidates that are associated with the current context edge. + * @abstract + */ + getTargetPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; + } + var IEdgeReconnectionPortCandidateProvider:{ + /** + * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns the + * candidates provided by the source and target port's owner's {@link yfiles.input.IPortCandidateProvider} implementations or the + * existing edge's port, if no such provider is registered. + *

    + * This instance uses the lookup mechanism of the nodes to query the providers. + *

    + * @param edge + * @returns + * @static + */ + fromSourceAndTarget?(edge:yfiles.graph.IEdge):yfiles.input.IEdgeReconnectionPortCandidateProvider; + /** + * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns a union of + * all {@link yfiles.input.IPortCandidateProvider#getSourcePortCandidates source port candidates} or {@link yfiles.input.IPortCandidateProvider#getTargetPortCandidates target port candidates}, respectively, of nodes in the graph. + *

    + * This implementation can be used to allow for {@link yfiles.input.PortRelocationHandle relocating an edge's port} to any available source or target port in the + * graph. + *

    + * @const + * @static + * @type {yfiles.input.IEdgeReconnectionPortCandidateProvider} + */ + ALL_NODE_CANDIDATES?:yfiles.input.IEdgeReconnectionPortCandidateProvider; + /** + * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns a union of + * all {@link yfiles.input.IPortCandidateProvider#getSourcePortCandidates source port candidates} or {@link yfiles.input.IPortCandidateProvider#getTargetPortCandidates target port candidates}, respectively, of nodse and edges in the graph. + *

    + * This implementation can be used to allow for {@link yfiles.input.PortRelocationHandle relocating an edge's port} to any available source or target port in the + * graph. + *

    + * @const + * @static + * @type {yfiles.input.IEdgeReconnectionPortCandidateProvider} + */ + ALL_NODE_AND_EDGE_CANDIDATES?:yfiles.input.IEdgeReconnectionPortCandidateProvider; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that can be used to find ports at specific locations in the canvas. + *

    + * This interface is mostly provided through the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IPortOwner} implementations + * such as {@link yfiles.graph.INode}. + *

    + * @interface + */ + export interface IPortSelectionTester extends Object{ + /** + * Returns the port at the given world coordinate position or null if there is no such port. + * @param context The input mode context to use for querying the position. + * @param location The coordinates of the position in the world coordinate system. + * @returns The port at the position or null. + * @abstract + */ + getHitPort(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.graph.IPort; + /** + * Returns the ports for the given marquee rectangle. + * @param context The input mode context to use for querying the position. + * @param rectangle The marquee selection box in the world coordinate system. + * @returns An enumerable over the ports inside the marquee selection box. + * @abstract + */ + getPortsInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + } + var IPortSelectionTester:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface for implementations that yield insets for a given {@link yfiles.graph.INode}. + *

    + * Implementations of this interface will be queried from an {@link yfiles.graph.INode}'s {@link yfiles.graph.ILookup#lookup} method. The + * default implementation of a graph uses this instance by default to determine the insets of a group node. + *

    + * @interface + */ + export interface INodeInsetsProvider extends Object{ + /** + * Returns the insets for the given node. + * @param node The node to yield insets for. + * @returns The insets for the node. + * @abstract + */ + getInsets(node:yfiles.graph.INode):yfiles.geometry.Insets; + } + var INodeInsetsProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; /** * Base interface for a command that can be executed. *

    * Implementations of this interface are provided by the library. Use {@link yfiles.input.ICommand#createCommand} to conveniently - * create your own implementation of this interface that can then be used with . + * create your own implementation of this interface that can then be used with AddCommandBinding. *

    * @see yfiles.input.ICommand#createCommand * @interface @@ -29710,40 +34347,40 @@ declare namespace system{ export interface ICommand extends Object{ /** * Determines whether this command be executed with respect to the given parameter and target. - * @param {Object} [parameter=null] The parameter or null - * @param {Object} [target=null] The target to execute the command on or null - * @returns {boolean} Whether {@link yfiles.input.ICommand#execute} can be called with the given parameter and target. + * @param [parameter=null] The parameter or null + * @param [target=null] The target to execute the command on or null + * @returns Whether {@link #execute} can be called with the given parameter and target. * @abstract */ canExecute(parameter?:Object,target?:Object):boolean; /** * Determines whether this command be executed with respect to the given parameter and target. * @param {Object} options The parameters to pass. - * @param {Object} [options.parameter=null] The parameter or null - * @param {Object} [options.target=null] The target to execute the command on or null - * @returns {boolean} Whether {@link yfiles.input.ICommand#execute} can be called with the given parameter and target. + * @param [options.parameter=null] The parameter or null + * @param [options.target=null] The target to execute the command on or null + * @returns Whether {@link #execute} can be called with the given parameter and target. * @abstract */ canExecute(options:{parameter?:Object,target?:Object}):boolean; /** * Executes this command with respect to the given parameter and target. - * @param {Object} [parameter=null] The parameter or null - * @param {Object} [target=null] The target to execute the command on or null + * @param [parameter=null] The parameter or null + * @param [target=null] The target to execute the command on or null * @abstract */ execute(parameter?:Object,target?:Object):void; /** * Executes this command with respect to the given parameter and target. * @param {Object} options The parameters to pass. - * @param {Object} [options.parameter=null] The parameter or null - * @param {Object} [options.target=null] The target to execute the command on or null + * @param [options.parameter=null] The parameter or null + * @param [options.target=null] The target to execute the command on or null * @abstract */ execute(options:{parameter?:Object,target?:Object}):void; /** * Adds the given listener for the CanExecuteChanged event that occurs when the result of a call to {@link yfiles.input.ICommand#canExecute} * may yield a different result. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ICommand#removeCanExecuteChangedListener * @abstract */ @@ -29751,7 +34388,7 @@ declare namespace system{ /** * Removes the given listener for the CanExecuteChanged event that occurs when the result of a call to {@link yfiles.input.ICommand#canExecute} * may yield a different result. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ICommand#addCanExecuteChangedListener * @abstract */ @@ -29764,13 +34401,13 @@ declare namespace system{ * The return value serves as a token and does not in itself contain any command handling logic. Use to associate command * handlers with the instance returned. *

    - * @param {string} [name=null] The optional name for the command. - * @returns {yfiles.input.ICommand} A new {@link yfiles.input.ICommand} instance. + * @param [name=null] The optional name for the command. + * @returns A new {@link } instance. * @static */ createCommand?(name?:string):yfiles.input.ICommand; /** - * Suggests a requery of the {@link Root.RH#canExecute executability} of all routed commands that are known to the system to adjust the UI to properly + * Suggests a requery of the {@link Root.UO#canExecute executability} of all routed commands that are known to the system to adjust the UI to properly * reflect the state. *

    * This will enqueue a delayed query into the event queue. @@ -29873,7 +34510,7 @@ declare namespace system{ */ EXPAND_GROUP?:yfiles.input.ICommand; /** - * A {@link yfiles.input.ICommand} that can be {@link yfiles.input.ICommand#execute executed} from within the {@link yfiles.view.GraphComponent} to {@link yfiles.input.NavigationInputMode#collapseGroup collapse} group nodes. + * A {@link yfiles.input.ICommand} that can be {@link yfiles.input.ICommand#execute executed} from within the {@link yfiles.view.GraphComponent} to collapse group nodes. *

    * If the parameter to this command is null, the currently selected group nodes are collapsed. If the parameter is an {@link yfiles.graph.INode} * instance, that group node will be collapsed. If the parameter is an {@link yfiles.collections.IEnumerable.} instance, then all group nodes in that enumeration @@ -30172,7 +34809,7 @@ declare namespace system{ * different amount. *

    *

    - * The default shortcut for this command is Page↑. + * The default shortcut for this command is Page Up. *

    * @see yfiles.input.ICommand#SCROLL_PAGE_DOWN * @see yfiles.input.ICommand#SCROLL_PAGE_LEFT @@ -30190,7 +34827,7 @@ declare namespace system{ * different amount. *

    *

    - * The default shortcut for this command is Page↓. + * The default shortcut for this command is Page Down. *

    * @see yfiles.input.ICommand#SCROLL_PAGE_UP * @see yfiles.input.ICommand#SCROLL_PAGE_LEFT @@ -30242,7 +34879,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the next item to the left. *

    *

    - * The default shortcut for this command is ←. + * The default shortcut for this command is Arrow Left. *

    * @see yfiles.input.ICommand#MOVE_UP * @see yfiles.input.ICommand#MOVE_DOWN @@ -30260,7 +34897,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the next item to the right. *

    *

    - * The default shortcut for this command is →. + * The default shortcut for this command is Arrow Right. *

    * @see yfiles.input.ICommand#MOVE_UP * @see yfiles.input.ICommand#MOVE_DOWN @@ -30278,7 +34915,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the next item above. *

    *

    - * The default shortcut for this command is ↑. + * The default shortcut for this command is Arrow Up. *

    * @see yfiles.input.ICommand#MOVE_DOWN * @see yfiles.input.ICommand#MOVE_LEFT @@ -30296,7 +34933,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the next item below. *

    *

    - * The default shortcut for this command is ↓. + * The default shortcut for this command is Arrow Down. *

    * @see yfiles.input.ICommand#MOVE_UP * @see yfiles.input.ICommand#MOVE_LEFT @@ -30314,7 +34951,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the parent node, if possible. *

    *

    - * The default shortcut for this command is Page↑. + * The default shortcut for this command is Page Up. *

    * @see yfiles.input.ICommand#MOVE_UP * @see yfiles.input.ICommand#MOVE_DOWN @@ -30332,7 +34969,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the first child node, if possible. *

    *

    - * The default shortcut for this command is Page↓. + * The default shortcut for this command is Page Down. *

    * @see yfiles.input.ICommand#MOVE_UP * @see yfiles.input.ICommand#MOVE_DOWN @@ -30350,7 +34987,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the next item to the left. *

    *

    - * The default shortcut for this command is Ctrl+←. + * The default shortcut for this command is Ctrl+Arrow Left. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_FORWARD * @see yfiles.input.ICommand#MOVE_FOCUS_UP @@ -30368,7 +35005,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the next item to the right. *

    *

    - * The default shortcut for this command is Ctrl+→. + * The default shortcut for this command is Ctrl+Arrow Right. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_BACK * @see yfiles.input.ICommand#MOVE_FOCUS_UP @@ -30386,7 +35023,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the next item above. *

    *

    - * The default shortcut for this command is Ctrl+↑. + * The default shortcut for this command is Ctrl+Arrow Up. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_BACK * @see yfiles.input.ICommand#MOVE_FOCUS_FORWARD @@ -30404,7 +35041,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the next item below. *

    *

    - * The default shortcut for this command is Ctrl+↓. + * The default shortcut for this command is Ctrl+Arrow Down. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_BACK * @see yfiles.input.ICommand#MOVE_FOCUS_FORWARD @@ -30422,7 +35059,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the parent node, if possible. *

    *

    - * The default shortcut for this command is Ctrl+Page↑. + * The default shortcut for this command is Ctrl+Page Up. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_BACK * @see yfiles.input.ICommand#MOVE_FOCUS_FORWARD @@ -30440,7 +35077,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the first child node, if possible. *

    *

    - * The default shortcut for this command is Ctrl+Page↓. + * The default shortcut for this command is Ctrl+Page Down. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_BACK * @see yfiles.input.ICommand#MOVE_FOCUS_FORWARD @@ -30458,7 +35095,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the next item to the left. *

    *

    - * The default shortcut for this command is Shift+←. + * The default shortcut for this command is Shift+Arrow Left. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_UP * @see yfiles.input.ICommand#EXTEND_SELECTION_DOWN @@ -30476,7 +35113,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the next item to the right. *

    *

    - * The default shortcut for this command is Shift+→. + * The default shortcut for this command is Shift+Arrow Right. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_UP * @see yfiles.input.ICommand#EXTEND_SELECTION_DOWN @@ -30494,7 +35131,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the next item above. *

    *

    - * The default shortcut for this command is Shift+↑. + * The default shortcut for this command is Shift+Arrow Up. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_DOWN * @see yfiles.input.ICommand#EXTEND_SELECTION_LEFT @@ -30512,7 +35149,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the next item below. *

    *

    - * The default shortcut for this command is Shift+↓. + * The default shortcut for this command is Shift+Arrow Down. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_UP * @see yfiles.input.ICommand#EXTEND_SELECTION_LEFT @@ -30530,7 +35167,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the parent node, if possible. *

    *

    - * The default shortcut for this command is Shift+Page↑. + * The default shortcut for this command is Shift+Page Up. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_UP * @see yfiles.input.ICommand#EXTEND_SELECTION_DOWN @@ -30548,7 +35185,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the first child node, if possible. *

    *

    - * The default shortcut for this command is Shift+Page↓. + * The default shortcut for this command is Shift+Page Down. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_UP * @see yfiles.input.ICommand#EXTEND_SELECTION_DOWN @@ -30563,7 +35200,7 @@ declare namespace system{ /** * A {@link yfiles.input.ICommand} to increase the zoom level. *

    - * {@link yfiles.view.CanvasComponent} handles this command to increase the zoom level by 20 %. A different factor from the default + * {@link yfiles.view.CanvasComponent} handles this command to increase the zoom level by 20%. A different factor from the default * 1.2 may be given as the command parameter. *

    *

    @@ -30579,7 +35216,7 @@ declare namespace system{ /** * A {@link yfiles.input.ICommand} to decrease the zoom level. *

    - * {@link yfiles.view.CanvasComponent} handles this command to decrease the zoom level by 20 %. A different factor from the default + * {@link yfiles.view.CanvasComponent} handles this command to decrease the zoom level by 20%. A different factor from the default * 1.2 may be given as the command parameter. *

    *

    @@ -30639,7 +35276,7 @@ declare namespace system{ */ ZOOM_TO_CURRENT_ITEM?:yfiles.input.ICommand; /** - * A {@link yfiles.input.ICommand} that invokes FitContent if executed. + * A {@link yfiles.input.ICommand} that invokes {@link yfiles.input.ICommand#FIT_CONTENT} if executed. * @const * @static * @type {yfiles.input.ICommand} @@ -30656,5118 +35293,526 @@ declare namespace system{ isInstance(o:Object):boolean; }; /** - * Event arguments for the {@link yfiles.input.GraphSnapContext#addCollectSnapLinesListener CollectSnapLines} event. - *

    - * Instances of this class are also passed to - * {@link yfiles.input.ISnapLineProvider#addSnapLines}. Implementations of that interface can use the following methods to add snap - * lines for specific purposes: - *

    - *
      - *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedNodeSnapLine} – Adds an orthogonal snap line for nodes.
    • - *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedSegmentSnapLine} – Adds an orthogonal snap line for edge segments and bends.
    • - *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addPortSnapLine} – Adds an orthogonal snap line for ports.
    • - *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addAdditionalSnapLine} – Adds an additional orthogonal snap line to which all element will snap.
    • - *
    - * @class yfiles.input.CollectGraphSnapLinesEventArgs - * @extends {yfiles.input.InputModeEventArgs} + * Utility class that holds implementation singletons and utility methods for simple event recognizers. + * @class + * @static */ - export interface CollectGraphSnapLinesEventArgs extends yfiles.input.InputModeEventArgs{} - export class CollectGraphSnapLinesEventArgs { + export interface EventRecognizers extends Object{} + export class EventRecognizers { /** - * Initializes a new instance of the {@link yfiles.input.CollectGraphSnapLinesEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context where the event is being used in. - * @param {yfiles.collections.ICollection.} fixedNodeSnapLines The fixed node snap lines collection to add to. - * @param {yfiles.collections.ICollection.} fixedSegmentSnapLines The fixed segment snap lines collection to add to. - * @param {yfiles.collections.ICollection.} fixedPortSnapLines The fixed port snap lines collection to add to. - * @param {yfiles.collections.ICollection.} additionalSnapLines The additional snap lines collection to add to. - * @constructor + * Creates an instance that is the logical 'and' combination of the provided recognizers. + * @param recognizers The recognizers to perform the logical operation on. + * @returns An instance that is the result of the logical 'and' operation of the provided instances. + * @static */ - constructor(context:yfiles.input.IInputModeContext,fixedNodeSnapLines:yfiles.collections.ICollection,fixedSegmentSnapLines:yfiles.collections.ICollection,fixedPortSnapLines:yfiles.collections.ICollection,additionalSnapLines:yfiles.collections.ICollection); + static createAndRecognizer(...recognizers:((eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean)[]):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Adds a snap line all elements will snap to. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to add to the list of lines that all elements snap to by default. - * @see yfiles.input.GraphSnapContext#additionalSnapLines + * Creates an instance that is the logical 'or' combination of the provided recognizers. + * @param recognizers The recognizers to perform the logical operation on. + * @returns An instance that is the result of the logical 'or' operation of the provided instances. + * @static */ - addAdditionalSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; + static createOrRecognizer(...recognizers:((eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean)[]):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Adds a snap line for nodes. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to add to the list of lines that nodes snap to by default. - * @see yfiles.input.GraphSnapContext#fixedNodeSnapLines + * Creates an event recognizer instance that yields the boolean inverse of the given event recognizer. + * @param recognizer The recognizer to invert. + * @returns An implementation that performs the logical negation for the argument. + * @static */ - addFixedNodeSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; + static inverse(recognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Adds a snap line for edge segments and bends. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to add to the list of lines that segments snap to by default. - * @see yfiles.input.GraphSnapContext#fixedSegmentSnapLines - */ - addFixedSegmentSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; - /** - * Adds a snap line for ports. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to add to the list of lines that ports snap to by default. - * @see yfiles.input.GraphSnapContext#fixedPortSnapLines - */ - addPortSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; - static $class:yfiles.lang.Class; - } - /** - * Abstract base class for {@link yfiles.input.GraphViewerInputMode} and {@link yfiles.input.GraphEditorInputMode}. - *

    - * This class is not supposed to and in fact cannot be extended from user code. It only exists to provide common - * functionality to the two aforementioned input modes. If customizations are wanted or needed both {@link yfiles.input.GraphViewerInputMode} - * and {@link yfiles.input.GraphEditorInputMode} can be extended. - *

    - * @class yfiles.input.GraphInputMode - * @extends {yfiles.input.MultiplexingInputMode} - */ - export interface GraphInputMode extends yfiles.input.MultiplexingInputMode{} - export class GraphInputMode { - /** - * Clears the selection on the current {@link yfiles.input.GraphInputMode#graphSelection}. - *

    - * This implementation may be overridden for customizations. All it does is call {@link yfiles.view.ISelectionModel.#clear}. - *

    - */ - clearSelection():void; - /** - * Actually performs the click on the given item. - *

    - * This will raise the {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked}, {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} - * (depending on the button), and {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} events. If - * either event is unhandled by all its event handlers the item will be {@link yfiles.input.GraphInputMode#setSelected selected} and {@link yfiles.input.GraphInputMode#setCurrentItem focused}. Before selection - * {@link yfiles.input.GraphInputMode#clearSelection the current selection will be cleared}, unless the {@link yfiles.input.GraphInputMode#multiSelectionRecognizer} is triggered. - *

    - * @param {yfiles.graph.IModelItem} item The item that has been clicked. - * @param {yfiles.input.ClickEventArgs} evt The original event arguments for the click. Setting its {@link yfiles.input.ClickEventArgs#handled} property to true will indicate that the click was handled. By - * default this happens when the clicked item is either selected or focused. - * @protected - */ - click(item:yfiles.graph.IModelItem,evt:yfiles.input.ClickEventArgs):void; - /** - * Clears the selection on click if {@link yfiles.view.CanvasComponent#lastMouseEvent the click} is not recognized by {@link yfiles.input.GraphInputMode#multiSelectionRecognizer}. - *

    - * This method is only called if no item has been hit and at least one item is currently selected. - *

    - *

    - * This will use the {@link yfiles.input.GraphInputMode#clearSelection} method to deselect all items. - *

    - * @param {yfiles.input.IInputModeContext} context The context where the click appeared - * @returns {boolean} Whether the selection has been cleared by this method. - * @protected - */ - clickClearSelection(context:yfiles.input.IInputModeContext):boolean; - /** - * Copies the currently selected elements to the clipboard. - */ - copy():void; - /** - * Factory method for the ClickInputMode property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#clickInputMode} property. - *

    - *

    - * This implementation {@link yfiles.input.ClickInputMode#activeButtons activates} both {@link yfiles.view.MouseButtons#LEFT} and {@link yfiles.view.MouseButtons#RIGHT} - *

    - * @returns {yfiles.input.ClickInputMode} a new instance of ClickInputMode - * @protected - */ - createClickInputMode():yfiles.input.ClickInputMode; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#contextMenuInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.ContextMenuInputMode} property. - *

    - * @returns {yfiles.input.ContextMenuInputMode} a new instance of ContextMenuInputMode - * @protected - */ - createContextMenuInputMode():yfiles.input.ContextMenuInputMode; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property. - *

    - * @returns {yfiles.input.ItemHoverInputMode} a new instance of {@link yfiles.input.GraphInputMode#itemHoverInputMode} with the {@link yfiles.input.ItemHoverInputMode#hoverItems} property set to {@link yfiles.graph.GraphItemTypes#NONE}. - * @protected - */ - createItemHoverInputMode():yfiles.input.ItemHoverInputMode; - /** - * Factory method that creates the {@link yfiles.input.GraphInputMode#keyboardInputMode} instance. - * @returns {yfiles.input.KeyboardInputMode} - * @protected - */ - createKeyboardInputMode():yfiles.input.KeyboardInputMode; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. - *

    - * @returns {yfiles.input.MarqueeSelectionInputMode} a new instance of MarqueeSelectionInputMode - * @protected - */ - createMarqueeSelectionInputMode():yfiles.input.MarqueeSelectionInputMode; - /** - * Factory method for the {@link yfiles.input.MouseHoverInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.MouseHoverInputMode} property. - *

    - * @returns {yfiles.input.MouseHoverInputMode} a new instance of {@link yfiles.input.MouseHoverInputMode} - * @protected - */ - createMouseHoverInputMode():yfiles.input.MouseHoverInputMode; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property. - *

    - * @returns {yfiles.input.MoveViewportInputMode} a new instance of {@link yfiles.input.GraphInputMode#moveViewportInputMode} - * @protected - */ - createMoveViewportInputMode():yfiles.input.MoveViewportInputMode; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#navigationInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#navigationInputMode} property. - *

    - * @returns {yfiles.input.NavigationInputMode} a new instance of NavigationInputMode - * @protected - */ - createNavigationInputMode():yfiles.input.NavigationInputMode; - /** - * Helper method that yields a suitably configured {@link yfiles.input.SelectionEventArgs.} using the {@link yfiles.input.GraphInputMode#graphSelection} for this input mode. - * @param {yfiles.input.IInputModeContext} context An input mode context that is available in the {@link yfiles.input.SelectionEventArgs.}. - *

    - * Can be null in which case a new context for this instance is created automatically. - *

    - * @returns {yfiles.input.SelectionEventArgs.} A selection event argument that is configured for this instance. - * @protected - */ - createSelectionEventArgs(context:yfiles.input.IInputModeContext):yfiles.input.SelectionEventArgs; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#tapInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#tapInputMode} property. - *

    - * @returns {yfiles.input.TapInputMode} a new instance of TapInputMode - * @protected - */ - createTapInputMode():yfiles.input.TapInputMode; - /** - * Factory method for the WaitInputMode property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#waitInputMode} property. - *

    - * @returns {yfiles.input.WaitInputMode} a new instance of {@link yfiles.input.GraphInputMode#waitInputMode} - * @protected - */ - createWaitInputMode():yfiles.input.WaitInputMode; - /** - * Actually performs a double-click on the given item. - *

    - * This will raise the {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} - * (depending on the button), and {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} - * events. - *

    - * @param {yfiles.graph.IModelItem} item The item that has been double-clicked. - * @param {yfiles.input.ClickEventArgs} evt The original event arguments for the click. Setting its {@link yfiles.input.ClickEventArgs#handled} property to true will indicate that the double-click was - * handled and events on other items in the same location are no longer raised. - * @protected - */ - doubleClick(item:yfiles.graph.IModelItem,evt:yfiles.input.ClickEventArgs):void; - /** - * Actually performs a double-tap on the given item. - *

    - * This will raise the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event. - *

    - * @param {yfiles.graph.IModelItem} item The item that has been double-tapped. - * @param {yfiles.input.TapEventArgs} evt The original event arguments for the tap. Setting its {@link yfiles.input.TapEventArgs#handled} property to true will indicate that the double-tap was handled - * and events on other items in the same location are no longer raised. - * @protected - */ - doubleTap(item:yfiles.graph.IModelItem,evt:yfiles.input.TapEventArgs):void; - /** - * Used as a callback to find the items hit underneath a certain point. - *

    - * This implementation uses the {@link yfiles.input.GraphEditorInputMode#hitTester} to determine the hit items. - *

    - * @param {yfiles.input.IInputModeContext} context The context to use for to the {@link yfiles.input.IHitTestable#isHit} callback. - * @param {yfiles.geometry.Point} location The location to test. - * @param {Array.} tests An array of {@link yfiles.graph.GraphItemTypes} values that encode for which model items the hit test should be performed for - * prioritizing. - * @param {function(yfiles.graph.IModelItem): boolean} [filter=null] The predicate that can be used to filter the results. May be null. - * @returns {yfiles.collections.IEnumerable.} An enumerable over the items that have been found for the location. - */ - findItems(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,tests:yfiles.graph.GraphItemTypes[],filter?:(obj:yfiles.graph.IModelItem)=>boolean):yfiles.collections.IEnumerable; - /** - * Used as a callback to find the items hit underneath a certain point. - *

    - * This implementation uses the {@link yfiles.input.GraphEditorInputMode#hitTester} to determine the hit items. - *

    - * @param {yfiles.geometry.Point} location The location to test. - * @param {Array.} tests An array of {@link yfiles.graph.GraphItemTypes} values that encode for which model items the hit test should be performed for - * prioritizing. - * @param {function(yfiles.graph.IModelItem): boolean} [filter=null] The predicate that can be used to filter the results. May be null. - * @returns {yfiles.collections.IEnumerable.} An enumerable over the items that have been found for the location. - */ - findItems(location:yfiles.geometry.Point,tests:yfiles.graph.GraphItemTypes[],filter?:(obj:yfiles.graph.IModelItem)=>boolean):yfiles.collections.IEnumerable; - /** - * Called by {@link yfiles.input.GraphInputMode#click} to query the item for an {@link yfiles.input.IClickListener} in its {@link yfiles.graph.ILookup#lookup} - * and handle it appropriately. - *

    - * This method will query the {@link yfiles.input.IClickListener} and check whether it was {@link yfiles.input.IClickListener#getHitTestable hit} by the click, and if so, will invoke - * {@link yfiles.input.IClickListener#onClicked} and return true. - *

    - * @param {yfiles.input.IInputModeContext} context The context for the click. - * @param {yfiles.graph.IModelItem} item The item that has been clicked. - * @param {yfiles.geometry.Point} location The click location. - * @returns {boolean} Whether the action has been invoked and handling should be stopped. - * @see yfiles.input.IClickListener - * @see yfiles.input.GraphInputMode#click - * @protected - */ - handleClickListener(context:yfiles.input.IInputModeContext,item:yfiles.graph.IModelItem,location:yfiles.geometry.Point):boolean; - /** - * Selects the given elements in the editor inside the provided marquee-selection rectangle. - *

    - * This implementation iterates over the items and queries them for an implementation of {@link yfiles.input.IMarqueeTestable} - * using their {@link yfiles.graph.ILookup#lookup}. This instance will be used to determine whether the item should be selected. - *

    - *

    - * This method is, in the default implementation, only called with individual item types in items. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} marqueeRectangle The rectangle in world coordinates. - * @param {yfiles.collections.IEnumerable.} items The items to iterate over. - * @param {function(yfiles.graph.IModelItem): boolean} predicate The predicate that determines whether the provided item should be tested at all. May be null. - * @see yfiles.input.GraphInputMode#setSelected - * @see yfiles.input.GraphInputMode#marqueeSelect - * @protected - */ - marqueeSelect(context:yfiles.input.IInputModeContext,marqueeRectangle:yfiles.geometry.Rect,items:yfiles.collections.IEnumerable,predicate:(obj:yfiles.graph.IModelItem)=>boolean):void; - /** - * Performs marquee-selection with the given rectangle. - *

    - * This method is called internally when either the {@link yfiles.input.GraphInputMode#marqueeSelect} method is called or the user - * performs a marquee-selection gesture via {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} marqueeRectangle The selection rectangle. - * @protected - */ - marqueeSelect(context:yfiles.input.IInputModeContext,marqueeRectangle:yfiles.geometry.Rect):void; - /** - * Performs marquee-selection with the given rectangle. - *

    - * It delegates directly to the {@link yfiles.input.GraphInputMode#marqueeSelect} overload internally. - *

    - * @param {yfiles.geometry.Rect} marqueeRectangle The selection rectangle. - */ - marqueeSelect(marqueeRectangle:yfiles.geometry.Rect):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addCanvasClickedListener CanvasClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ClickEventArgs#handled} property to true. - *

    - * @param {yfiles.input.ClickEventArgs} evt The {@link yfiles.input.ClickEventArgs} instance that contains the information about the click. - * @protected - */ - onCanvasClicked(evt:yfiles.input.ClickEventArgs):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#clickInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ClickInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.ClickInputMode} newMode the new value - * @protected - */ - onClickInputModeChanged(oldMode:yfiles.input.ClickInputMode,newMode:yfiles.input.ClickInputMode):void; - /** - * Called when the {@link yfiles.input.ContextMenuInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ContextMenuInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.ContextMenuInputMode} newMode the new value - * @protected - */ - onContextMenuInputModeChanged(oldMode:yfiles.input.ContextMenuInputMode,newMode:yfiles.input.ContextMenuInputMode):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been clicked. - * @protected - */ - onItemClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been double clicked. - * @protected - */ - onItemDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ItemHoverInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.ItemHoverInputMode} newMode the new value - * @protected - */ - onItemHoverInputModeChanged(oldMode:yfiles.input.ItemHoverInputMode,newMode:yfiles.input.ItemHoverInputMode):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been clicked. - * @protected - */ - onItemLeftClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been double clicked. - * @protected - */ - onItemLeftDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been clicked. - * @protected - */ - onItemRightClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been double clicked. - * @protected - */ - onItemRightDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#keyboardInputMode} changed. - * @param {yfiles.input.KeyboardInputMode} oldMode The old {@link yfiles.input.GraphInputMode#keyboardInputMode}. - * @param {yfiles.input.KeyboardInputMode} newMode The new {@link yfiles.input.GraphInputMode#keyboardInputMode}. - * @protected - */ - onKeyboardInputModeChanged(oldMode:yfiles.input.KeyboardInputMode,newMode:yfiles.input.KeyboardInputMode):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.MarqueeSelectionInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.MarqueeSelectionInputMode} newMode the new value - * @protected - */ - onMarqueeSelectionInputModeChanged(oldMode:yfiles.input.MarqueeSelectionInputMode,newMode:yfiles.input.MarqueeSelectionInputMode):void; - /** - * Called when the {@link yfiles.input.MouseHoverInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.MouseHoverInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.MouseHoverInputMode} newMode the new value - * @protected - */ - onMouseHoverInputModeChanged(oldMode:yfiles.input.MouseHoverInputMode,newMode:yfiles.input.MouseHoverInputMode):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.MoveViewportInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.MoveViewportInputMode} newMode the new value - * @protected - */ - onMoveViewportInputModeChanged(oldMode:yfiles.input.MoveViewportInputMode,newMode:yfiles.input.MoveViewportInputMode):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addMultiSelectionFinishedListener MultiSelectionFinished} event. - * @param {yfiles.input.SelectionEventArgs.} evt - * @protected - */ - onMultiSelectionFinished(evt:yfiles.input.SelectionEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addMultiSelectionStartedListener MultiSelectionStarted} event. - * @param {yfiles.input.SelectionEventArgs.} evt - * @protected - */ - onMultiSelectionStarted(evt:yfiles.input.SelectionEventArgs):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#navigationInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.NavigationInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.NavigationInputMode} newMode the new value - * @protected - */ - onNavigationInputModeChanged(oldMode:yfiles.input.NavigationInputMode,newMode:yfiles.input.NavigationInputMode):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener PopulateItemContextMenu} event. - * @param {yfiles.input.PopulateItemContextMenuEventArgs.} evt The {@link yfiles.input.PopulateItemContextMenuEventArgs.} instance containing the event data. - * @protected - */ - onPopulateItemContextMenu(evt:yfiles.input.PopulateItemContextMenuEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener QueryItemToolTip} event. - * @param {yfiles.input.QueryItemToolTipEventArgs.} evt The {@link yfiles.input.QueryItemToolTipEventArgs.} instance containing the event data. - * @protected - */ - onQueryItemToolTip(evt:yfiles.input.QueryItemToolTipEventArgs):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#tapInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.TapInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.TapInputMode} newMode the new value - * @protected - */ - onTapInputModeChanged(oldMode:yfiles.input.TapInputMode,newMode:yfiles.input.TapInputMode):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#waitInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.WaitInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.WaitInputMode} newMode the new value - * @protected - */ - onWaitInputModeChanged(oldMode:yfiles.input.WaitInputMode,newMode:yfiles.input.WaitInputMode):void; - /** - * Clears the current selection and selects all nodes and bends in this graph. - *

    - * By default, this method will be called in response to a Ctrl+A key press recognized by {@link yfiles.input.GraphInputMode#keyboardInputMode}. - *

    - * @see yfiles.input.GraphInputMode#clearSelection - * @see yfiles.input.GraphInputMode#setSelected - * @see yfiles.input.ICommand#SELECT_ALL - * @see yfiles.input.GraphInputMode#selectableItems - * @see yfiles.input.GraphInputMode#ignoreVoidStyles - */ - selectAll():void; - /** - * Callback that is used by this instance to set the current item on the {@link yfiles.input.NavigationInputMode#setCurrentItem NavigationInputMode} - * @param {yfiles.graph.IModelItem} item The item to set as the new "current" item. - */ - setCurrentItem(item:yfiles.graph.IModelItem):void; - /** - * Uses the {@link yfiles.input.GraphInputMode#graphSelection} to select the given item. - * @param {yfiles.graph.IModelItem} item The item to set the selection state on. - * @param {boolean} selected The new selection state. - */ - setSelected(item:yfiles.graph.IModelItem,selected:boolean):void; - /** - * Callback predicate method that is used to determine whether the given item can be {@link yfiles.input.GraphInputMode#click clicked}. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#clickableItems} value to determine whether the item should be clicked. Note that this method will not be - * called for items that don't match {@link yfiles.input.GraphInputMode#clickableItems} for performance reasons. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether the item should be {@link yfiles.input.GraphInputMode#click clicked} in response to a detected mouse click. - * @protected - */ - shouldClick(item:yfiles.graph.IModelItem):boolean; - /** - * Callback predicate method that is used to determine whether the given item should be selected when - * {@link yfiles.input.GraphInputMode#click clicked with the primary mouse button}. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#clickSelectableItems} value to determine whether the item should be selected. Note that this method will not be - * called for items that don't match {@link yfiles.input.GraphInputMode#clickSelectableItems} and {@link yfiles.input.GraphInputMode#selectableItems} for performance reasons. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether the item should be selected in response to a detected mouse click with the primary button. - * @protected - */ - shouldClickSelect(item:yfiles.graph.IModelItem):boolean; - /** - * Callback predicate method that is used to determine whether the given item can be {@link yfiles.input.GraphInputMode#doubleClick double clicked}. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#shouldClick} method to determine whether the item should be - * double clicked. Note that this method will not be called for items that don't match {@link yfiles.input.GraphInputMode#clickableItems} for performance reasons. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether the item should be {@link yfiles.input.GraphInputMode#doubleClick double clicked} in response to a detected mouse click. - * @protected - */ - shouldDoubleClick(item:yfiles.graph.IModelItem):boolean; - /** - * Callback that determines whether the provided {@link yfiles.graph.IModelItem} should be {@link yfiles.input.GraphInputMode#setCurrentItem set to the current item}. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#focusableItems} property to determine whether the item can be set to the current item. It also honors the - * {@link yfiles.input.GraphInputMode#ignoreVoidStyles} property. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether to set the item as the current item. - * @protected - */ - shouldFocus(item:yfiles.graph.IModelItem):boolean; - /** - * Callback method that is used to determine which of the built-in {@link yfiles.input.ICommand}s to install. - *

    - * This implementation unconditionally returns true, subclasses may override this method to adjust the behavior. - *

    - * @param {yfiles.input.ICommand} command The command to install. - * @returns {boolean} Whether to install this command. - * @protected - */ - shouldInstallCommand(command:yfiles.input.ICommand):boolean; - /** - * Callback method used by {@link yfiles.input.GraphInputMode#marqueeSelect} that takes {@link yfiles.input.GraphInputMode#marqueeSelectableItems} and {@link yfiles.input.GraphInputMode#shouldSelectItem} - * into account. - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether to possibly marquee select the item. - * @protected - */ - shouldMarqueeSelect(item:yfiles.graph.IModelItem):boolean; - /** - * Determines whether for the given item a context menu should be queried. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#contextMenuItems} property to determine whether a context menu should be queried for the given item. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether to raise a {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener PopulateItemContextMenu} event for - * the given item. - * @protected - */ - shouldPopulateContextMenu(item:yfiles.graph.IModelItem):boolean; - /** - * Determines whether for the given item a tool tip should be queried. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#toolTipItems} property to determine whether tool tip should be queried for the given item. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether to raise a {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener QueryItemToolTip} event for the - * given item. - * @protected - */ - shouldQueryToolTip(item:yfiles.graph.IModelItem):boolean; - /** - * Callback predicate method that is used as a broad classification whether an item can generally be selected. - *

    - * This implementation uses and honors the {@link yfiles.input.GraphInputMode#selectableItems}, {@link yfiles.input.GraphInputMode#ignoreVoidStyles} and {@link yfiles.input.GraphInputMode#selectablePredicate} properties. This method is by default also called by {@link yfiles.input.GraphInputMode#shouldClickSelect} - * and {@link yfiles.input.GraphInputMode#shouldMarqueeSelect}, so turning selection off here also turns it off in other places. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} true if the item is selectable in general, false if not. - * @protected - */ - shouldSelectItem(item:yfiles.graph.IModelItem):boolean; - /** - * Actually performs the tap on the given item. - *

    - * This will raise the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event. If the event - * is unhandled by all its event handlers the item will be {@link yfiles.input.GraphInputMode#setSelected selected} and {@link yfiles.input.GraphInputMode#setCurrentItem focused}. Before selection - * {@link yfiles.input.GraphInputMode#clearSelection the current selection will be cleared}. - *

    - * @param {yfiles.graph.IModelItem} item The item that has been tapped. - * @param {yfiles.input.TapEventArgs} evt The original event arguments for the tap. Setting its {@link yfiles.input.TapEventArgs#handled} property to true will indicate that the tap was handled. By - * default this happens when the tapped item is either selected or focused. - * @protected - */ - tap(item:yfiles.graph.IModelItem,evt:yfiles.input.TapEventArgs):void; - /** - * Gets the graph instance from the {@link yfiles.input.MultiplexingInputMode#inputModeContext}. - * @type {yfiles.graph.IGraph} - */ - graph:yfiles.graph.IGraph; - /** - * Gets the graph selection from the {@link yfiles.input.MultiplexingInputMode#inputModeContext}. - * @type {yfiles.view.IGraphSelection} - */ - graphSelection:yfiles.view.IGraphSelection; - /** - * Gets or sets the order of the types of items that should be used to determine what item has been clicked or tapped. - *

    - * Change this field to adjust which items will be {@link yfiles.input.GraphInputMode#setSelected selected} if there are multiple items at a given location. The default - * order is - *

    - *
      - *
    • {@link yfiles.graph.GraphItemTypes#BEND}
    • - *
    • {@link yfiles.graph.GraphItemTypes#EDGE_LABEL}
    • - *
    • {@link yfiles.graph.GraphItemTypes#EDGE}
    • - *
    • {@link yfiles.graph.GraphItemTypes#NODE}
    • - *
    • {@link yfiles.graph.GraphItemTypes#NODE_LABEL}
    • - *
    • {@link yfiles.graph.GraphItemTypes#PORT}
    • - *
    - * @see yfiles.input.GraphInputMode#clickSelectableItems - * @see yfiles.input.GraphInputMode#selectableItems - * @see yfiles.input.GraphInputMode#findItems - * @type {Array.} - */ - clickHitTestOrder:yfiles.graph.GraphItemTypes[]; - /** - * Gets or sets the order of the types of items that should be used to determine what item has been double-clicked or - * double-tapped. - *

    - * Change this field to adjust which items will be considered when {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener double-clicked} if there are multiple items at a given - * location. The default order is - *

    - *
      - *
    • {@link yfiles.graph.GraphItemTypes#EDGE_LABEL}
    • - *
    • {@link yfiles.graph.GraphItemTypes#NODE_LABEL}
    • - *
    • {@link yfiles.graph.GraphItemTypes#BEND}
    • - *
    • {@link yfiles.graph.GraphItemTypes#EDGE}
    • - *
    • {@link yfiles.graph.GraphItemTypes#NODE}
    • - *
    • {@link yfiles.graph.GraphItemTypes#PORT}
    • - *
    - * @see yfiles.input.GraphInputMode#clickSelectableItems - * @see yfiles.input.GraphInputMode#selectableItems - * @see yfiles.input.GraphInputMode#findItems - * @type {Array.} - */ - doubleClickHitTestOrder:yfiles.graph.GraphItemTypes[]; - /** - * Gets or sets the event recognizer that will be queried to decide if a click should select the item that is currently - * visible under the mouse cursor, without giving more important items higher priority. - *

    - * If the recognizer determines that the user wanted to use the detail clicking behavior, the {@link yfiles.input.GraphEditorInputMode#hitTester} will be queried for the - * given item and the first item that is returned will be considered a hit. Otherwise all hit items are examined and are - * prioritized by item type. E.g. by default clicking on a node will select the node, even if there is a node label which - * has been clicked at the same point. If detail selection is recognized, the label will be selected. - *

    - *

    - * The default is {@link yfiles.input.KeyEventRecognizers#SHIFT_PRESSED}. - *

    + * A callback that will always return true; + * @const + * @static * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - detailSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static ALWAYS:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Gets or sets the event recognizer that will be queried to decide if a click should cycle through all the items that are - * currently under the mouse cursor. - *

    - * If the recognizer determines that the user wanted to use the cyclic click selection behavior, the {@link yfiles.input.GraphEditorInputMode#hitTester} will be queried for - * the given item and previously reported items will be ignored. E.g. if multiple nodes are overlapping each other, - * clicking on them will report the first item for the first click, the second one for the second click and so on. If all - * elements have been reported previously, the first one is going to be reported again. If the order of the elements at the - * clicked location changes, the cyclic selection is restarted anew. - *

    - *

    - * The default is {@link yfiles.input.KeyEventRecognizers#ALT_PRESSED}. - *

    + * A callback that will always return false; + * @const + * @static * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - cyclicSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static NEVER:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static $class:yfiles.lang.Class; + } + /** + * Utility class with simple event recognizers that work on {@link yfiles.view.KeyEventArgs}. + * @class + * @static + */ + export interface KeyEventRecognizers extends Object{} + export class KeyEventRecognizers { /** - * Gets or sets the event recognizer that will be queried to decide if a click is deemed a multi selection gesture. - *

    - * The default is a combination of {@link yfiles.input.KeyEventRecognizers#CONTROL_PRESSED} or - * {@link yfiles.input.KeyEventRecognizers#META_PRESSED}. - *

    + * Creates an event recognizer for a given key and type using a given set of modifiers. + * @param type The type of the event. + * @param value The key that is subject of the event. + * @param [modifiers=yfiles.view.ModifierKeys.NONE] The state of the modifiers that must be set. This is {@link #NONE} if not set. + * @returns + * @static + */ + static create(type:yfiles.view.KeyEventType,value:yfiles.view.Key,modifiers?:yfiles.view.ModifierKeys):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * Creates an event recognizer that matches key presses. + * @param key The key to create the recognizer for. + * @param [modifiers=yfiles.view.ModifierKeys.NONE] The modifier keys that should be pressed for the recognizer + * @returns An event recognizer that uses the gesture. + * @static + */ + static createKeyPress(key:yfiles.view.Key,modifiers?:yfiles.view.ModifierKeys):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that recognizes when escape has been typed. + * @const + * @static * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - multiSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static ESCAPE_TYPED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Determines which types of items should be reported through the {@link yfiles.input.GraphInputMode#addItemClickedListener item click events}. - *

    - * This also affects taps. - *

    - *

    - * The default is {@link yfiles.graph.GraphItemTypes#ALL}. - *

    - * @see yfiles.input.GraphInputMode#shouldClick - * @type {yfiles.graph.GraphItemTypes} - */ - clickableItems:yfiles.graph.GraphItemTypes; - /** - * Gets or sets the items that can be given focus via the {@link yfiles.input.GraphInputMode#setCurrentItem} method. - *

    - * The focusable items. The default is {@link yfiles.graph.GraphItemTypes#NODE} - *

    - * @default 1 - * @type {yfiles.graph.GraphItemTypes} - */ - focusableItems:yfiles.graph.GraphItemTypes; - /** - * Determines which types of items should be selectable at all. - *

    - * The default is {@link yfiles.graph.GraphItemTypes#ALL}. - *

    - * @see yfiles.input.GraphInputMode#setSelected - * @type {yfiles.graph.GraphItemTypes} - */ - selectableItems:yfiles.graph.GraphItemTypes; - /** - * Gets or sets a predicate that is queried to determine whether a given {@link yfiles.graph.IModelItem} is selectable. - *

    - * This allows to further restrict which items are selectable, compared to {@link yfiles.input.GraphInputMode#selectableItems}. If this property is set to null the effect is - * the same as a predicate that always returns true. - *

    - * @type {function(yfiles.graph.IModelItem): boolean} - */ - selectablePredicate:(obj:yfiles.graph.IModelItem)=>boolean; - /** - * Determines which types of items should be selectable by mouse clicks. - *

    - * The default is {@link yfiles.graph.GraphItemTypes#ALL}. - *

    - * @see yfiles.input.GraphInputMode#shouldClickSelect - * @see yfiles.input.GraphInputMode#setSelected - * @type {yfiles.graph.GraphItemTypes} - */ - clickSelectableItems:yfiles.graph.GraphItemTypes; - /** - * Determines which types of items should be selected during {@link yfiles.input.GraphInputMode#marqueeSelect marquee selections}. - *

    - * The default is a combination of {@link yfiles.graph.GraphItemTypes#NODE}, {@link yfiles.graph.GraphItemTypes#EDGE}, and - * {@link yfiles.graph.GraphItemTypes#BEND}. - *

    - * @see yfiles.input.GraphInputMode#shouldMarqueeSelect - * @see yfiles.input.GraphInputMode#setSelected - * @type {yfiles.graph.GraphItemTypes} - */ - marqueeSelectableItems:yfiles.graph.GraphItemTypes; - /** - * Gets or sets a value indicating whether void styles ({@link yfiles.styles.VoidNodeStyle}, {@link yfiles.styles.VoidEdgeStyle}, - * {@link yfiles.styles.VoidLabelStyle}, and {@link yfiles.styles.VoidPortStyle}) should be ignored when selecting or focusing items. - * @type {boolean} - */ - ignoreVoidStyles:boolean; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#contextMenuInputMode} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createContextMenuInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onContextMenuInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 60. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.ContextMenuInputMode} - */ - contextMenuInputMode:yfiles.input.ContextMenuInputMode; - /** - * Gets or sets the types of items a context menu should be queried for. - *

    - * The items for which a context menu should be {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener queried}. The default value is - * {@link yfiles.graph.GraphItemTypes#NODE}|{@link yfiles.graph.GraphItemTypes#EDGE}. - *

    - * @default 1 | 2 - * @type {yfiles.graph.GraphItemTypes} - */ - contextMenuItems:yfiles.graph.GraphItemTypes; - /** - * Adds the given listener for the PopulateItemContextMenu event that occurs when the {@link yfiles.input.ContextMenuInputMode context menu} over an item is about to - * be opened to determine the contents of the Menu. - *

    - * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#contextMenuItems} type. - *

    - * @param {function(Object, yfiles.input.PopulateItemContextMenuEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#removePopulateItemContextMenuListener - */ - addPopulateItemContextMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateItemContextMenuEventArgs)=>void):void; - /** - * Removes the given listener for the PopulateItemContextMenu event that occurs when the {@link yfiles.input.ContextMenuInputMode context menu} over an item is about - * to be opened to determine the contents of the Menu. - *

    - * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#contextMenuItems} type. - *

    - * @param {function(Object, yfiles.input.PopulateItemContextMenuEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addPopulateItemContextMenuListener - */ - removePopulateItemContextMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateItemContextMenuEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#mouseHoverInputMode} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMouseHoverInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMouseHoverInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 100. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.MouseHoverInputMode} - */ - mouseHoverInputMode:yfiles.input.MouseHoverInputMode; - /** - * Gets the types of the items that should be queried a tool tip for. - *

    - * The items for which a tool tip text should be {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener queried}. The default value is - * {@link yfiles.graph.GraphItemTypes#NODE}|{@link yfiles.graph.GraphItemTypes#EDGE}|{@link yfiles.graph.GraphItemTypes#LABEL}|{@link yfiles.graph.GraphItemTypes#PORT}|. - *

    - * @default 1 | 2 | 12 | 16 - * @type {yfiles.graph.GraphItemTypes} - */ - toolTipItems:yfiles.graph.GraphItemTypes; - /** - * Adds the given listener for the QueryItemToolTip event that occurs when the mouse is {@link yfiles.input.MouseHoverInputMode hovering} over an item to determine - * the tool tip to display. - *

    - * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#toolTipItems} type. - *

    - * @param {function(Object, yfiles.input.QueryItemToolTipEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#removeQueryItemToolTipListener - */ - addQueryItemToolTipListener(listener:(sender:Object,evt:yfiles.input.QueryItemToolTipEventArgs)=>void):void; - /** - * Removes the given listener for the QueryItemToolTip event that occurs when the mouse is {@link yfiles.input.MouseHoverInputMode hovering} over an item to - * determine the tool tip to display. - *

    - * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#toolTipItems} type. - *

    - * @param {function(Object, yfiles.input.QueryItemToolTipEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addQueryItemToolTipListener - */ - removeQueryItemToolTipListener(listener:(sender:Object,evt:yfiles.input.QueryItemToolTipEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.input.ClickInputMode} that is used by this instance to determine clicks. - *

    - * Whenever the mode detects a {@link yfiles.input.ClickInputMode#addClickedListener click}, this mode will use the {@link yfiles.input.IHitTester.} from the {@link yfiles.input.MultiplexingInputMode#inputModeContext} to determine the items being hit. If they match the - * {@link yfiles.input.GraphInputMode#clickableItems} type, the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will be triggered. If - * they {@link yfiles.input.GraphInputMode#shouldFocus}, the item will be {@link yfiles.input.GraphInputMode#setCurrentItem set as the current item}. - *

    - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createClickInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onClickInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 10. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @see yfiles.input.GraphInputMode#onItemClicked - * @type {yfiles.input.ClickInputMode} - */ - clickInputMode:yfiles.input.ClickInputMode; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#tapInputMode} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createTapInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onTapInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 20. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.TapInputMode} - */ - tapInputMode:yfiles.input.TapInputMode; - /** - * Adds the given listener for the ItemClicked event that occurs when an item has been clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. - *

    - *

    - * This event will also be raised for {@link yfiles.input.GraphInputMode#tap taps}. - *

    - *

    - * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} and - * {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked}) will be raised before this event. - * If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftClickedListener - * @see yfiles.input.GraphInputMode#addItemRightClickedListener - * @see yfiles.input.GraphInputMode#removeItemClickedListener - */ - addItemClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemClicked event that occurs when an item has been clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. - *

    - *

    - * This event will also be raised for {@link yfiles.input.GraphInputMode#tap taps}. - *

    - *

    - * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} and - * {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked}) will be raised before this event. - * If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftClickedListener - * @see yfiles.input.GraphInputMode#addItemRightClickedListener - * @see yfiles.input.GraphInputMode#addItemClickedListener - */ - removeItemClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the ItemLeftClicked event that occurs when an item has been left clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that - * case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#addItemRightClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#removeItemLeftClickedListener - */ - addItemLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemLeftClicked event that occurs when an item has been left clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that - * case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#addItemRightClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftClickedListener - */ - removeItemLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the ItemRightClicked event that occurs when an item has been right clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that - * case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#removeItemRightClickedListener - */ - addItemRightClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemRightClicked event that occurs when an item has been right clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that - * case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightClickedListener - */ - removeItemRightClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the ItemDoubleClicked event that occurs when an item has been double clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. - *

    - *

    - * Depending on the value of the {@link yfiles.input.ClickInputMode#doubleClickPolicy} property of {@link yfiles.input.GraphInputMode#clickInputMode} this event may be preceded by no, one, or two {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * events (as well as the corresponding button-specific event). - *

    - *

    - * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and - * {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked}) will be raised before this - * event. If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#removeItemDoubleClickedListener - */ - addItemDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemDoubleClicked event that occurs when an item has been double clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. - *

    - *

    - * Depending on the value of the {@link yfiles.input.ClickInputMode#doubleClickPolicy} property of {@link yfiles.input.GraphInputMode#clickInputMode} this event may be preceded by no, one, or two {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * events (as well as the corresponding button-specific event). - *

    - *

    - * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and - * {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked}) will be raised before this - * event. If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - */ - removeItemDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the ItemLeftDoubleClicked event that occurs when an item has been left double clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised - * in that case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#removeItemLeftDoubleClickedListener - */ - addItemLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemLeftDoubleClicked event that occurs when an item has been left double clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised - * in that case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - */ - removeItemLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the ItemRightDoubleClicked event that occurs when an item has been right double clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised - * in that case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#removeItemRightDoubleClickedListener - */ - addItemRightDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemRightDoubleClicked event that occurs when an item has been right double clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised - * in that case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - */ - removeItemRightDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the CanvasClicked event that occurs when the empty canvas area has been clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ClickEventArgs#handled} property to true the event will not be propagated anymore. - *

    - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#removeCanvasClickedListener - */ - addCanvasClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; - /** - * Removes the given listener for the CanvasClicked event that occurs when the empty canvas area has been clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ClickEventArgs#handled} property to true the event will not be propagated anymore. - *

    - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#addCanvasClickedListener - */ - removeCanvasClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMarqueeSelectionInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMarqueeSelectionInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 50. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.MarqueeSelectionInputMode} - */ - marqueeSelectionInputMode:yfiles.input.MarqueeSelectionInputMode; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#navigationInputMode} property. - *

    - * This mode is responsible for navigating and traversing the elements in the {@link yfiles.graph.IGraph}. If the field has not yet - * been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createNavigationInputMode} will be - * called. Upon change the {@link yfiles.input.GraphInputMode#onNavigationInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 55. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.NavigationInputMode} - */ - navigationInputMode:yfiles.input.NavigationInputMode; - /** - * Adds the given listener for the MultiSelectionStarted event that occurs when a single or multi select operation has been - * started. - *

    - * The event is not triggered for the individual selection operations that constitute a multi selection operation. - *

    - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#removeMultiSelectionStartedListener - */ - addMultiSelectionStartedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; - /** - * Removes the given listener for the MultiSelectionStarted event that occurs when a single or multi select operation has - * been started. - *

    - * The event is not triggered for the individual selection operations that constitute a multi selection operation. - *

    - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addMultiSelectionStartedListener - */ - removeMultiSelectionStartedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; - /** - * Adds the given listener for the MultiSelectionFinished event that occurs when a single or multi select operation has - * been finished. - *

    - * The event is not triggered for the individual selection operations that constitute a multi selection operation. - *

    - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#removeMultiSelectionFinishedListener - */ - addMultiSelectionFinishedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; - /** - * Removes the given listener for the MultiSelectionFinished event that occurs when a single or multi select operation has - * been finished. - *

    - * The event is not triggered for the individual selection operations that constitute a multi selection operation. - *

    - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addMultiSelectionFinishedListener - */ - removeMultiSelectionFinishedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.input.WaitInputMode} that is provided by this instance for those who need to make use of it. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createWaitInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onWaitInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of -1. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @see yfiles.input.WaitInputMode#waiting - * @type {yfiles.input.WaitInputMode} - */ - waitInputMode:yfiles.input.WaitInputMode; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#itemHoverInputMode} that is provided by this instance for those who need to make use of it. - *

    - * Note that initially the {@link yfiles.input.ItemHoverInputMode#hoverItems} property is set to - * {@link yfiles.graph.GraphItemTypes#NONE}, which effectively disables the functionality of the mode initially. In order to get - * the mode to fire events, the property should be set to a corresponding value. - *

    - *

    - * If the backing field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createItemHoverInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onItemHoverInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 55. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.ItemHoverInputMode} - */ - itemHoverInputMode:yfiles.input.ItemHoverInputMode; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#moveViewportInputMode} associated with this instance. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMoveViewportInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMoveViewportInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 39. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.MoveViewportInputMode} - */ - moveViewportInputMode:yfiles.input.MoveViewportInputMode; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#keyboardInputMode}. - *

    - * By default this input mode has a priority of 0. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.KeyboardInputMode} - */ - keyboardInputMode:yfiles.input.KeyboardInputMode; - /** - * Gets a collection of commands that this input mode will handle. - *

    - * This collection can be modified by removing commands to prevent the input mode from handling them. Previously removed - * commands can also be re-added again to enable them again. However, the input mode will never handle commands that - * weren't in the initial collection. Adding those will do nothing. - *

    - * @type {yfiles.collections.ICollection.} - */ - availableCommands:yfiles.collections.ICollection; - /** - * Gets or sets a property that determines whether clipboard operations with the usual shortcuts are enabled on the - * canvas. - *

    - * Default value is true - *

    - * @default true - * @type {boolean} - */ - allowClipboardOperations:boolean; - static $class:yfiles.lang.Class; - } - /** - * An {@link yfiles.input.IInputMode} implementation for use in a {@link yfiles.view.GraphComponent} to assign to the {@link yfiles.view.CanvasComponent#inputMode} property. - *

    - * This mode can be used in a viewer-centric application where there is no need to modify the {@link yfiles.graph.IGraph} but - * browsing of the graph should be convenient. This mode allows for {@link yfiles.input.GraphInputMode#addItemClickedListener clicking on items using the mouse}, - * {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener displaying tool tips for items}, {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener showing a context menu}, {@link yfiles.input.NavigationInputMode allowing for easy navigation and traversal}, - * {@link yfiles.input.MoveViewportInputMode moving the view port}, and {@link yfiles.input.GraphInputMode#marqueeSelectableItems optionally doing marquee selection}. Also {@link yfiles.input.ItemHoverInputMode} can be used to get - * notified of the elements that the mouse is hovering over. - *

    - *

    - * Due to the viewer-centric nature of this input mode, collapsing and expanding groups is disabled per default. To enable - * this feature, set {@link yfiles.input.NavigationInputMode#allowCollapseGroup} and {@link yfiles.input.NavigationInputMode#allowExpandGroup} to true. - *

    - *

    - * This input mode manages a set of specialized input modes, each handling a specific part of the interaction with the - * graph. The following list details those along with their default - * {@link yfiles.input.IInputMode#priority priorities}. Lower priorities come earlier when handing events. - *

    - *
      - *
    • {@link yfiles.input.WaitInputMode} (−1) – Disables this input mode when layouts or animations run.
    • - *
    • {@link yfiles.input.KeyboardInputMode} (0) – Handles commands and arbitrary keyboard shortcuts.
    • - *
    • {@link yfiles.input.ClickInputMode} (10) – Handles mouse clicks and double-clicks.
    • - *
    • {@link yfiles.input.TapInputMode} (20) – Handles taps and double-tap.
    • - *
    • {@link yfiles.input.MarqueeSelectionInputMode} (30) – Allows dragging a rectangle to select items within it.
    • - *
    • {@link yfiles.input.MoveViewportInputMode} (39) – Allows panning the viewport.
    • - *
    • {@link yfiles.input.ItemHoverInputMode} (55) – Provides events to indicate that the mouse pointer hovers over an item.
    • - *
    • {@link yfiles.input.NavigationInputMode} (55) – Provides general navigation facilities, such as navigating from one item to another with the arrow keys.
    • - *
    • {@link yfiles.input.ContextMenuInputMode} (60) – Handles querying the context menu contents based on a location as well as preparing the menu for display.
    • - *
    • {@link yfiles.input.MouseHoverInputMode} (100) – Handles tool tips.
    • - *
    - * @class yfiles.input.GraphViewerInputMode - * @extends {yfiles.input.GraphInputMode} - */ - export interface GraphViewerInputMode extends yfiles.input.GraphInputMode{} - export class GraphViewerInputMode { - /** - * Initializes a new instance of the {@link yfiles.input.GraphViewerInputMode} class. - * @constructor - */ - constructor(); - static $class:yfiles.lang.Class; - } - /** - * A simple interface that can be used to react to clicks on regions of {@link yfiles.styles.INodeStyle}s etc. - *

    - * {@link yfiles.input.GraphEditorInputMode} will query the {@link yfiles.graph.IModelItem}'s Lookup method for this interface if it has - * detected {@link yfiles.input.GraphInputMode#click}s. If the item yields an instance of this interface and the click was inside - * the {@link yfiles.input.IClickListener#getHitTestable}, then {@link yfiles.input.IClickListener#onClicked} is invoked. - *

    - * @see yfiles.input.GraphEditorInputMode - * @see yfiles.styles.CollapsibleNodeStyleDecorator - * @interface - */ - export interface IClickListener extends Object{ - /** - * Gets an {@link yfiles.input.IHitTestable} that can be used to check if {@link yfiles.input.IClickListener#onClicked} should be invoked. - * @returns {yfiles.input.IHitTestable} A hit testable that can determine whether {@link yfiles.input.IClickListener#onClicked} should be invoked by a given click. - * @abstract - */ - getHitTestable():yfiles.input.IHitTestable; - /** - * Called by the framework to indicate that the {@link yfiles.graph.IModelItem} has been clicked by the user at the specified - * location. - *

    - * This method is called by {@link yfiles.input.GraphInputMode#click} for the - * {@link yfiles.graph.IModelItem}s that yielded an instance of this interface. - *

    - * @param {yfiles.input.IInputModeContext} context The context to use for the click operation. - * @param {yfiles.geometry.Point} location The location of the click - * @abstract - */ - onClicked(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):void; - } - var IClickListener:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An interface for classes that can yield {@link yfiles.input.IHandle} implementations for the {@link yfiles.graph.IEdge#sourcePort source} and {@link yfiles.graph.IEdge#targetPort target} ends of an - * {@link yfiles.graph.IEdge}. - *

    - * This interface will be queried by the default implementation of the {@link yfiles.input.IHandleProvider} that is in the lookup - * of an {@link yfiles.graph.IEdge}. It is recommended to use this interface instead of the more generic {@link yfiles.input.IHandleProvider} - * interface, because other generic code can then use this interface to gain access to a specific {@link yfiles.input.IHandle} more - * easily. - *

    - * @interface - */ - export interface IEdgePortHandleProvider extends Object{ - /** - * Gets an {@link yfiles.input.IHandle} implementation for one end of the provided edge. - * @param {yfiles.input.IInputModeContext} context The context in which the handle will be used. - * @param {yfiles.graph.IEdge} edge The edge for which an handle is needed. - * @param {boolean} sourceHandle if set to true the handle for the source side/port should be returned. - * @returns {yfiles.input.IHandle} The handle to use for the provided side or null. - * @abstract - */ - getHandle(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourceHandle:boolean):yfiles.input.IHandle; - } - var IEdgePortHandleProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Helper interface to customize interactive label editing. - *

    - * Implementations of this interface can be put into the {@link yfiles.graph.ILookup} of {@link yfiles.graph.ILabelOwner}s and - * {@link yfiles.graph.ILabel}s so that it is possible to tweak the behavior on a case by case basis. - *

    - *

    - * Conceptually, in most cases, implementations of this interface behaves like an additional event handler for {@link yfiles.input.GraphEditorInputMode#addLabelAddingListener LabelAdding} - * and {@link yfiles.input.GraphEditorInputMode#addLabelEditingListener LabelEditing}. If no event handler - * handled those events, an {@link yfiles.input.IEditLabelHelper} will be queried from the {@link yfiles.graph.ILookup} and the unhandled - * event arguments passed to the respective methods. - *

    - * @see yfiles.input.EditLabelHelper - * @see yfiles.input.GraphEditorInputMode#createLabel - * @see yfiles.input.GraphEditorInputMode#editLabel - * @see yfiles.input.GraphEditorInputMode#addLabel - * @see yfiles.input.GraphEditorInputMode#addLabelAddingListener - * @see yfiles.input.GraphEditorInputMode#addLabelEditingListener - * @interface - */ - export interface IEditLabelHelper extends Object{ - /** - * Helper method that will be called when trying to add a label to an {@link yfiles.graph.ILabelOwner}. - *

    - * Implementations of this method can set the {@link yfiles.graph.ILabel#style}, {@link yfiles.graph.ILabel#layoutParameter}, {@link yfiles.graph.ILabel#preferredSize}, and {@link yfiles.graph.ITagOwner#tag} for newly-added labels by setting the appropriate properties on - * args. - *

    - *

    - * Setting the {@link yfiles.input.LabelEditingEventArgs#cancel} property on args to true will disallow label creation. - *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The original event arguments. - * @see yfiles.input.IEditLabelHelper#onLabelEditing - * @abstract - */ - onLabelAdding(evt:yfiles.input.LabelEditingEventArgs):void; - /** - * Helper method that will be called when trying to edit a label. - *

    - * This method can be called for editing labels for an {@link yfiles.graph.ILabelOwner}, in which case the {@link yfiles.input.LabelEditingEventArgs#label} property on args will - * be null, but the {@link yfiles.input.LabelEditingEventArgs#owner} property will be non-null. It can also be called for editing a specific label, in which case the {@link yfiles.input.LabelEditingEventArgs#label} - * property on args will be non-null, and the {@link yfiles.input.LabelEditingEventArgs#owner} property will be set to the label's owner. - *

    - *

    - * Implementations of this method can set a specific label to be edited, by setting the {@link yfiles.input.LabelEditingEventArgs#label} property of the args to an - * existing label instance. This label does not need to belong to the same owner that is queried for. Setting the {@link yfiles.input.LabelEditingEventArgs#label} property - * to null will not edit an existing label, but instead add a new one on the {@link yfiles.graph.ILabelOwner} set in the {@link yfiles.input.LabelEditingEventArgs#owner} - * property. - *

    - *

    - * When a new label is added, the properties {@link yfiles.input.LabelEditingEventArgs#style}, {@link yfiles.input.LabelEditingEventArgs#layoutParameter}, {@link yfiles.input.LabelEditingEventArgs#preferredSize}, and {@link yfiles.input.LabelEditingEventArgs#tag} are used for the newly-created label, just as in - * {@link yfiles.input.IEditLabelHelper#onLabelAdding}. - *

    - *

    - * Setting the {@link yfiles.input.LabelEditingEventArgs#cancel} property on args to true will disallow label editing and creation. - *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The original event arguments. - * @see yfiles.input.IEditLabelHelper#onLabelAdding - * @abstract - */ - onLabelEditing(evt:yfiles.input.LabelEditingEventArgs):void; - } - var IEditLabelHelper:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Provides the snap lines and the snap results to the {@link yfiles.input.LabelSnapContext} during dragging of labels. - * @see yfiles.input.LabelSnapContext - * @see yfiles.graph.LabelDecorator#labelSnapContextHelperDecorator - * @interface - */ - export interface ILabelSnapContextHelper extends Object{ - /** - * Called during {@link yfiles.input.IDragHandler#initializeDrag initialization} of a label dragging to add {@link yfiles.input.SnapLine snap lines} to which the label can potentially snap to the - * snapContext. - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of - * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The label that is dragged. - * @abstract - */ - addSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; - /** - * Called while the given label is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult snap results} for the {@link yfiles.input.SnapLine snap lines} provided by the context. - * @param {yfiles.input.LabelSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the necessary information from and {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add results to}. - * @param {yfiles.geometry.IOrientedRectangle} suggestedLayout The {@link yfiles.graph.ILabel#layout layout} of the label that would be used without snapping. - * @param {yfiles.graph.ILabel} label The label that is dragged. - * @abstract - */ - collectSnapResults(context:yfiles.input.LabelSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.IOrientedRectangle,label:yfiles.graph.ILabel):void; - } - var ILabelSnapContextHelper:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An interface used by implementations that provide various size constraints for {@link yfiles.graph.INode}s. - *

    Related demos:

    - *
      - *
    • Demo: SizeConstraintProvider, demo.yfiles.input.sizeconstraintprovider
    • - *
    - * @see yfiles.input.NodeSizeConstraintProvider - * @interface - */ - export interface INodeSizeConstraintProvider extends Object{ - /** - * Returns the maximum size allowed for the given node. - * @param {yfiles.graph.INode} node The node to return the maximum size for. - * @returns {yfiles.geometry.Size} The maximum size or {@link yfiles.geometry.Size#INFINITE} if there is no constraint on the size. - * @abstract - */ - getMaximumSize(node:yfiles.graph.INode):yfiles.geometry.Size; - /** - * Returns the minimum area that needs to be enclosed by the given node. - * @param {yfiles.graph.INode} node The node to return the area for. - * @returns {yfiles.geometry.Rect} The area to enclose or {@link yfiles.geometry.Rect#EMPTY} if there is no constraint on the size due to an enclosed area. - * @abstract - */ - getMinimumEnclosedArea(node:yfiles.graph.INode):yfiles.geometry.Rect; - /** - * Returns the minimum size allowed for the given node. - * @param {yfiles.graph.INode} node The node to return the minimum size for. - * @returns {yfiles.geometry.Size} The minimum size or {@link yfiles.geometry.Size#EMPTY} if there is no constraint on the size. - * @abstract - */ - getMinimumSize(node:yfiles.graph.INode):yfiles.geometry.Size; - } - var INodeSizeConstraintProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A simple default implementation of {@link yfiles.input.INodeSizeConstraintProvider} - * @class yfiles.input.NodeSizeConstraintProvider - * @implements {yfiles.input.INodeSizeConstraintProvider} - */ - export interface NodeSizeConstraintProvider extends Object,yfiles.input.INodeSizeConstraintProvider{} - export class NodeSizeConstraintProvider { - /** - * Creates a new instance using the provided size instances as the initial values. - *

    - * Not specifing the minimumEnclosedArea will set it to {@link yfiles.geometry.Rect#EMPTY}. - *

    - * @param {yfiles.geometry.ISize} minimumSize The {@link yfiles.input.NodeSizeConstraintProvider#minimumSize}. - * @param {yfiles.geometry.ISize} maximumSize The {@link yfiles.input.NodeSizeConstraintProvider#maximumSize}. - * @param {yfiles.geometry.IRectangle} [minimumEnclosedArea=null] The {@link yfiles.input.NodeSizeConstraintProvider#minimumEnclosedArea}. - * @constructor - */ - constructor(minimumSize:yfiles.geometry.ISize,maximumSize:yfiles.geometry.ISize,minimumEnclosedArea?:yfiles.geometry.IRectangle); - /** - * - * @param {yfiles.graph.INode} node - * @returns {yfiles.geometry.Size} - */ - getMaximumSize(node:yfiles.graph.INode):yfiles.geometry.Size; - /** - * - * @param {yfiles.graph.INode} node - * @returns {yfiles.geometry.Rect} - */ - getMinimumEnclosedArea(node:yfiles.graph.INode):yfiles.geometry.Rect; - /** - * - * @param {yfiles.graph.INode} node - * @returns {yfiles.geometry.Size} - */ - getMinimumSize(node:yfiles.graph.INode):yfiles.geometry.Size; - /** - * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMaximumSize}. - * @type {yfiles.geometry.ISize} - */ - maximumSize:yfiles.geometry.ISize; - /** - * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMinimumEnclosedArea}. - * @type {yfiles.geometry.IRectangle} - */ - minimumEnclosedArea:yfiles.geometry.IRectangle; - /** - * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMinimumSize}. - * @type {yfiles.geometry.ISize} - */ - minimumSize:yfiles.geometry.ISize; - static $class:yfiles.lang.Class; - } - /** - * Interface used by {@link yfiles.input.OrthogonalEdgeEditingContext} and the like that can be decorated to the {@link yfiles.graph.ILookup} - * of {@link yfiles.graph.IEdge}s. - *

    - * This interface is for editing edges in such a way that their path stays orthogonal, i.e. all of the segments are - * oriented either horizontally or vertically. - *

    - * @see yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper - * @interface - */ - export interface IOrthogonalEdgeHelper extends Object{ - /** - * Callback method that is invoked after the provided edge has been edited orthogonally. - *

    - * This callback can be used to remove unused bends and finalize the orthogonal edge editing gesture. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context which edited the edge. - * @param {yfiles.graph.IGraph} graph The graph to use for modifying the edge instance. - * @param {yfiles.graph.IEdge} edge The edge to clean up the path. - * @abstract - */ - cleanUpEdge(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge):void; - /** - * Gets the declared orientation of the given segment at the provided edge. - *

    - * The orientation cannot always be inferred from the current geometry: If a segment has a zero length it is unclear what - * orientation it should have, also a segment could be accidentally orthogonally oriented, while in fact it is considered - * {@link yfiles.input.SegmentOrientation#NON_ORTHOGONAL}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the orientation is needed. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @param {number} segmentIndex The index of the segment. - * @returns {yfiles.input.SegmentOrientation} The declared orientation of the segment. - * @abstract - */ - getSegmentOrientation(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,segmentIndex:number):yfiles.input.SegmentOrientation; - /** - * Determines whether the provided edge should be edited orthogonally in the specified input mode context. - *

    - * If this method returns false, the other methods will not be queried at all. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the edge is about to be edited. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @returns {boolean} true if the edge should be orthogonally edited in the specified input mode context; false otherwise. - * @abstract - */ - shouldEditOrthogonally(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge):boolean; - /** - * Determines whether this end of the provided edge can be moved in the input mode context. - *

    - * This information is required to determine whether an edge's first or last segment needs to be split or the adjacent edge - * end can be moved along with the other end of the segment. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the segment is edited. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @param {boolean} sourceEnd if set to true the source end of the edge is queried, otherwise the target end. - * @returns {boolean} true if the end of the edge can be moved for the specified input mode context; false otherwise, in which case the - * corresponding segment needs to be split to keep the segment orientation orthogonal. - * @abstract - */ - shouldMoveEndImplicitly(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourceEnd:boolean):boolean; - } - var IOrthogonalEdgeHelper:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface used for implementations that recognize, approve and disapprove node reparenting gestures, as well as actually - * performs the reparenting. - *

    - * Implementations of this interface are queried from the {@link yfiles.input.IInputModeContext} by code that wants to reparent a - * node. Specifically this is used by default to reparent nodes during the {@link yfiles.input.MoveInputMode dragging of nodes}. - *

    - *

    Related demos:

    - *
      - *
    • Demo: ReparentHandler, demo.yfiles.input.reparenthandler
    • - *
    - * @interface - */ - export interface IReparentNodeHandler extends Object{ - /** - * Determines whether the current gesture that can be determined through the context is a reparent gesture. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.INode} node The node that will possibly be reparented. - * @returns {boolean} Whether this is a reparenting gesture. - * @abstract - */ - isReparentGesture(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; - /** - * Determines whether the provided node may be reparented to a newParent. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.INode} node The node that will be reparented. - * @param {yfiles.graph.INode} newParent The potential new parent or null. Can be a group or a non-group node. - * @returns {boolean} Whether newParent is a valid new parent for node. - * @abstract - */ - isValidParent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):boolean; - /** - * Performs the actual reparenting after the reparent gesture has been finalized. - *

    - * Implementations should {@link yfiles.graph.IGraph#setParent set the parent} of node to newParent. - *

    - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.INode} node The node that will be reparented. - * @param {yfiles.graph.INode} newParent The potential new parent or null. Can be a group or a non-group node. - * @abstract - */ - reparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):void; - /** - * Determines whether the user may detach the given node from its current parent in order to reparent it. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.INode} node The node that is about to be detached from its current parent. - * @returns {boolean} Whether the node may be detached and reparented. - * @abstract - */ - shouldReparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; - } - var IReparentNodeHandler:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Queried by the {@link yfiles.input.GraphSnapContext} to add {@link yfiles.input.OrthogonalSnapLine}s to its collections during the - * {@link yfiles.input.SnapContext#isInitializing initialization phase}. - *

    - * Implementations of this interface are queried by {@link yfiles.input.GraphSnapContext} for each item that is not modified during - * the edit using the {@link yfiles.graph.ILookup#lookup} of the respective item. - *

    - * @see yfiles.graph.NodeDecorator#snapLineProviderDecorator - * @interface - */ - export interface ISnapLineProvider extends Object{ - /** - * Called by the {@link yfiles.input.GraphSnapContext} when a {@link yfiles.input.GraphSnapContext#initializeDrag drag} is about to start. - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the - * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.IModelItem} item The item to add snap lines for. - * @abstract - */ - addSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,item:yfiles.graph.IModelItem):void; - } - var ISnapLineProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Provides data for the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked}, - * {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked}, - * {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked}, - * {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked}, {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} - * and {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} events. - * Type parameter T: The type of the item this event carries. - * @class yfiles.input.ItemClickedEventArgs. - * @extends {yfiles.collections.ItemEventArgs.} - * @template T - */ - export interface ItemClickedEventArgs extends yfiles.collections.ItemEventArgs{} - export class ItemClickedEventArgs { - /** - * Initializes a new instance of the {@link yfiles.input.ItemClickedEventArgs.} class. - * @param {T} item The item which is the subject of the event. - * @param {yfiles.geometry.Point} location The location of the click. - * @constructor - */ - constructor(item:T,location:yfiles.geometry.Point); - /** - * Gets or sets a value indicating whether this {@link yfiles.input.ItemClickedEventArgs.} is handled. - *

    - * Setting the event to handled indicates whether the event should be further propagated or whether there has not been any - * code that actively handled the event to the event source. How this flag is actually being treated depends on the source - * of the event. - *

    - * @type {boolean} - */ - handled:boolean; - /** - * Gets the location of the click. - * @type {yfiles.geometry.Point} - */ - location:yfiles.geometry.Point; - static $class:yfiles.lang.Class; - } - /** - * An input mode for use in a {@link yfiles.view.GraphComponent} that fires events when the mouse enters or leaves the - * visualization of a {@link yfiles.graph.IModelItem graph item}. - *

    - * This mode can be used to determine when the mouse is being moved from one item to the next. - *

    - *

    - * This mode is {@link yfiles.input.ItemHoverInputMode#exclusive} by default. - *

    - * @class yfiles.input.ItemHoverInputMode - * @implements {yfiles.input.IInputMode} - */ - export interface ItemHoverInputMode extends Object,yfiles.input.IInputMode{} - export class ItemHoverInputMode { - /** - * Initializes a new instance of the {@link yfiles.input.ItemHoverInputMode} class. - * @constructor - */ - constructor(); - /** - * - */ - cancel():void; - /** - * Gets the items that have been hit at the given location. - * @param {yfiles.geometry.Point} location The location in world coordinates to query. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all items that have been hit at the given location. - * @protected - */ - getHitItemsAt(location:yfiles.geometry.Point):yfiles.collections.IEnumerable; - /** - * Installs this mode into the given context that is provided by the canvas. - *

    - * In general a mode can only be installed into a single canvas at all times. - *

    - *

    - * This method is called to initialize this instance. Subclasses should override this method to register the corresponding - * event handler delegates for the various input events they need to register with. - *

    - *

    - * Overriding implementations should call the base implementation, first. - *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is - * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ItemHoverInputMode#controller} for this mode. - * @see yfiles.input.IInputMode#uninstall - */ - install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; - /** - * Determines whether the given item is a valid item to be considered for hovering. - *

    - * This implementation checks whether the item is covered by the {@link yfiles.input.ItemHoverInputMode#hoverItems} set, only. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} true if it is valid to report a hover over the specified item; false otherwise. - * @see yfiles.input.ItemHoverInputMode#discardInvalidItems - * @protected - */ - isValidHoverItem(item:yfiles.graph.IModelItem):boolean; - /** - * Called after {@link yfiles.input.ItemHoverInputMode#cancel} has been called. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been canceled. - *

    - *

    - * This implementation does nothing. - *

    - * @protected - */ - onCanceled():void; - /** - * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to true. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been activated. - *

    - *

    - * Overriding implementations should call the base implementation. - *

    - * @protected - */ - onConcurrencyControllerActivated():void; - /** - * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to false. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been deactivated. - *

    - *

    - * Overriding implementations should call the base implementation. - *

    - * @protected - */ - onConcurrencyControllerDeactivated():void; - /** - * Raises the {@link yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener HoveredItemChanged} event. - * @param {yfiles.input.HoveredItemChangedEventArgs} evt The {@link yfiles.input.HoveredItemChangedEventArgs} instance containing the event data. - * @protected - */ - onHoveredItemChanged(evt:yfiles.input.HoveredItemChangedEventArgs):void; - /** - * Called after {@link yfiles.input.ItemHoverInputMode#tryStop} has been called. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been stopped. - *

    - *

    - * This implementation does nothing. - *

    - * @protected - */ - onStopped():void; - /** - * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. - * @returns {boolean} true iff this instance does not {@link yfiles.input.ConcurrencyController#hasMutex own the mutex}. - */ - tryStop():boolean; - /** - * Uninstalls this mode from the given context. - *

    - * This code should clean up all changes made to the canvas in the {@link yfiles.input.IInputMode#install} method. After a mode has - * been uninstalled it can be installed again into the same or another canvas. - *

    - *

    - * Overriding implementations should call the base implementation after their own code. - *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during - * installation. - */ - uninstall(context:yfiles.input.IInputModeContext):void; - /** - * Forces a reevaluation of the item that the mouse is currently hovering over or at a specific location. - *

    - * This method may be called by code that is aware of the fact that the visualization has changed, but the mouse may not - * have been moved. By default this implementation will only re-query the items at the mouse location when the mouse has - * moved. This method can be called to force a reevaluation in other cases. - *

    - * @param {yfiles.geometry.Point} [location=null] The query location. - */ - updateHover(location?:yfiles.geometry.Point):void; - /** - * - * @type {number} - */ - priority:number; - /** - * Gets or sets a value indicating whether this mode will be the only one running when it has the mutex. - *

    - * The value of this property will be delegated to the {@link yfiles.input.ConcurrencyController#exclusive} property of the {@link yfiles.input.ItemHoverInputMode#controller}. - *

    - *

    - * If this mode is marked as exclusive and has the mutex, all other modes {@link yfiles.input.MultiplexingInputMode#add added} to the same {@link yfiles.input.MultiplexingInputMode} - * will be deactivated. Otherwise it will always run concurrently with all other modes. - *

    - * @type {boolean} - */ - exclusive:boolean; - /** - * Gets or sets the enabled state of this input mode. - *

    - * Clients can use this property to disable or reenable this instance. This will set the {@link yfiles.input.ConcurrencyController#enabled Enabled} property of the installed - * {@link yfiles.input.ItemHoverInputMode#controller} so a disabled instance should never try to acquire the input mutex. - *

    - * @type {boolean} - */ - enabled:boolean; - /** - * - * @type {yfiles.input.IInputModeContext} - */ - inputModeContext:yfiles.input.IInputModeContext; - /** - * Returns the installed {@link yfiles.input.ItemHoverInputMode#controller}. - * @protected - * @type {yfiles.input.ConcurrencyController} - */ - controller:yfiles.input.ConcurrencyController; - /** - * Adds the given listener for the HoveredItemChanged event that occurs when the item that is being hovered over with the - * mouse changes. - *

    - * This event is also fired when the mouse pointer leaves an item. - *

    - * @param {function(Object, yfiles.input.HoveredItemChangedEventArgs): void} listener The listener to add. - * @see yfiles.input.ItemHoverInputMode#removeHoveredItemChangedListener - */ - addHoveredItemChangedListener(listener:(sender:Object,evt:yfiles.input.HoveredItemChangedEventArgs)=>void):void; - /** - * Removes the given listener for the HoveredItemChanged event that occurs when the item that is being hovered over with - * the mouse changes. - *

    - * This event is also fired when the mouse pointer leaves an item. - *

    - * @param {function(Object, yfiles.input.HoveredItemChangedEventArgs): void} listener The listener to remove. - * @see yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener - */ - removeHoveredItemChangedListener(listener:(sender:Object,evt:yfiles.input.HoveredItemChangedEventArgs)=>void):void; - /** - * Gets the current item the mouse is hovering over. - * @type {yfiles.graph.IModelItem} - */ - currentHoverItem:yfiles.graph.IModelItem; - /** - * Gets or sets which graph items are considered by this input mode. - *

    - * The default is {@link yfiles.graph.GraphItemTypes#ALL}. - *

    - * @type {yfiles.graph.GraphItemTypes} - */ - hoverItems:yfiles.graph.GraphItemTypes; - /** - * Gets or sets the cursor to use when the mouse is hovering over a {@link yfiles.input.ItemHoverInputMode#isValidHoverItem} valid - * hover item. - * @type {yfiles.view.Cursor} - */ - hoverCursor:yfiles.view.Cursor; - /** - * Determines whether items that have been hit at the current location that are not {@link yfiles.input.ItemHoverInputMode#isValidHoverItem valid items} should be ignored or - * reported as null. - * @see yfiles.input.ItemHoverInputMode#isValidHoverItem - * @type {boolean} - */ - discardInvalidItems:boolean; - static $class:yfiles.lang.Class; - } - /** - * Event argument class containing information about which {@link yfiles.graph.IModelItem} the mouse is currently hovering over. - *

    - * This event is used by the {@link yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener HoveredItemChanged} - * event. The {@link yfiles.collections.ItemEventArgs.#item} property yields the item that is currently being hovered over. It carries the {@link yfiles.input.HoveredItemChangedEventArgs#oldItem previously hovered item}, too. - *

    - * @class yfiles.input.HoveredItemChangedEventArgs - * @extends {yfiles.collections.ItemEventArgs.} - */ - export interface HoveredItemChangedEventArgs extends yfiles.collections.ItemEventArgs{} - export class HoveredItemChangedEventArgs { - /** - * Initializes a new instance of the {@link yfiles.input.HoveredItemChangedEventArgs} class. - * @param {yfiles.graph.IModelItem} item The model item. - * @param {yfiles.graph.IModelItem} oldItem The old item. - * @constructor - */ - constructor(item:yfiles.graph.IModelItem,oldItem:yfiles.graph.IModelItem); - /** - * The item that was previously hovered, possibly null. - * @see yfiles.collections.ItemEventArgs.#item - * @type {yfiles.graph.IModelItem} - */ - oldItem:yfiles.graph.IModelItem; - static $class:yfiles.lang.Class; - } - /** - * Event arguments for the {@link yfiles.input.GraphEditorInputMode#addLabelAddingListener LabelAdding} and {@link yfiles.input.GraphEditorInputMode#addLabelEditingListener LabelEditing} - * events, as well as the {@link yfiles.input.IEditLabelHelper} interface. - * @class yfiles.input.LabelEditingEventArgs - * @extends {yfiles.input.InputModeEventArgs} - * @final - */ - export interface LabelEditingEventArgs extends yfiles.input.InputModeEventArgs{} - export class LabelEditingEventArgs { - /** - * Initializes a new instance of the {@link yfiles.input.LabelEditingEventArgs} class with the given context, owner, and label. - * @param {yfiles.input.IInputModeContext} context The input mode context to use. - * @param {yfiles.graph.ILabelOwner} owner The {@link yfiles.graph.ILabelOwner} whose label should be edited. - * @param {yfiles.graph.ILabel} label The {@link yfiles.graph.ILabel} that should be edited. - * @constructor - */ - constructor(context:yfiles.input.IInputModeContext,owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel); - /** - * Gets or sets the label to edit. - *

    - * This can be set to an exiting label to edit a specific one, or set to null to add a new label instead (e.g. for - * {@link yfiles.graph.ILabelOwner}s that have no label yet). - *

    - *

    - * If this property is set to null, the properties {@link yfiles.input.LabelEditingEventArgs#style}, {@link yfiles.input.LabelEditingEventArgs#preferredSize}, {@link yfiles.input.LabelEditingEventArgs#layoutParameter}, and {@link yfiles.input.LabelEditingEventArgs#tag} are used for the newly-added label, just like with - * {@link yfiles.input.LabelEditingEventArgs}. - *

    - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {yfiles.graph.ILabel} - */ - label:yfiles.graph.ILabel; - /** - * Gets or sets a value indicating whether the action (adding or editing a label) should be canceled. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {boolean} - */ - cancel:boolean; - /** - * Gets or sets a value indicating whether this event has been handled. - *

    - * A handled instance of {@link yfiles.input.LabelEditingEventArgs} will not be passed to further event handlers or an {@link yfiles.input.IEditLabelHelper} - * instance. - *

    - *

    - * Setting any of the other properties implicitly also sets this to true. - *

    - * @type {boolean} - */ - handled:boolean; - /** - * Gets or sets the owner of the label. - *

    - * This property can be null if there is no owner known, e.g. if the event is raised for - * non-{@link yfiles.graph.ILabelOwner}s. Otherwise it is initially set to the item for which the event is raised. - *

    - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {yfiles.graph.ILabelOwner} - */ - owner:yfiles.graph.ILabelOwner; - /** - * Gets or sets the {@link yfiles.graph.ILabel#style} of the label to add. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {yfiles.styles.ILabelStyle} - */ - style:yfiles.styles.ILabelStyle; - /** - * Gets or sets the {@link yfiles.graph.ILabel#preferredSize} of the label to add. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {yfiles.geometry.Size} - */ - preferredSize:yfiles.geometry.Size; - /** - * Gets or sets the {@link yfiles.graph.ILabel#layoutParameter} of the label to add. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {yfiles.graph.ILabelModelParameter} - */ - layoutParameter:yfiles.graph.ILabelModelParameter; - /** - * Gets or sets the {@link yfiles.graph.ITagOwner#tag} of the label to add. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {Object} - */ - tag:Object; - /** - * Configures the {@link yfiles.input.TextEditorInputMode} for editing the provided label instance. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {function(yfiles.input.IInputModeContext, yfiles.input.TextEditorInputMode, yfiles.graph.ILabel): void} - */ - textEditorInputModeConfigurator:(context:yfiles.input.IInputModeContext,mode:yfiles.input.TextEditorInputMode,label:yfiles.graph.ILabel)=>void; - static $class:yfiles.lang.Class; - } - /** - * Manages interactive snapping of {@link yfiles.graph.ILabel}s to their owner during drag operations like movements. - *

    - * This class provides a set of properties to customize the snapping behavior. {@link yfiles.input.IPositionHandler} - * implementations and similar classes can use the following idiom to get an instance of this class: - *

    - *

    Related demos:

    - *
      - *
    • Tutorial: 01 Getting Started, step 15 Snapping
    • - *
    - * @see yfiles.input.MoveLabelInputMode - * @see yfiles.input.GraphEditorInputMode#snapContext - * @class yfiles.input.LabelSnapContext - * @extends {yfiles.input.SnapContext} - */ - export interface LabelSnapContext extends yfiles.input.SnapContext{} - export class LabelSnapContext { - /** - * Initializes a new instance of the {@link yfiles.input.LabelSnapContext} class. - * @constructor - */ - constructor(); - /** - * Adds the given snapLine to the {@link yfiles.input.LabelSnapContext#snapLines snap line} collection of this context. - * @param {yfiles.input.SnapLine} snapLine The snap line to add. - * @see yfiles.input.GraphSnapContext#additionalSnapLines - */ - addSnapLine(snapLine:yfiles.input.SnapLine):void; - /** - * Raises the {@link yfiles.input.LabelSnapContext#addCollectSnapLinesListener CollectSnapLines} event. - * @param {yfiles.input.CollectLabelSnapLineEventArgs} evt The {@link yfiles.input.CollectLabelSnapLineEventArgs} instance containing the event data. - * @protected - */ - onCollectSnapLines(evt:yfiles.input.CollectLabelSnapLineEventArgs):void; - /** - * Determines whether this instance should collect snap lines for the initial position of a label. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectInitialLocationSnapLines:boolean; - /** - * Determines whether this instance should collect six snap lines, two through the center and four through the border sides - * of the label owner. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectNodeShapeSnapLines:boolean; - /** - * Determines whether this instance should collect four snap lines in parallel to the owner's borders at the initial label - * distance. - *

    - * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to - * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node - * bounds. - *

    - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectOwnNodeDistanceSnapLines:boolean; - /** - * Determines whether this instance should collect snap lines in parallel to the border of the label owner at the distance - * of other node labels of that owner. - *

    - * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to - * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node - * bounds. - *

    - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectSameOwnerNodeDistanceSnapLines:boolean; - /** - * Determines whether this instance should collect snap lines in parallel to the border of the label owner at the distance - * of other node labels in the graph. - *

    - * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to - * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node - * bounds. - *

    - *

    - * The default is false. - *

    - * @default false - * @type {boolean} - */ - collectAllNodeDistanceSnapLines:boolean; - /** - * Determines whether this instance should collect snap lines on the edge path. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectEdgePathSnapLines:boolean; - /** - * Determines whether this instance should collect two snap lines in parallel to the edge path of the label owner at the - * initial distance of the edge label. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectOwnEdgeDistanceSnapLines:boolean; - /** - * Determines whether this instance should collect snap lines in parallel to the edge path of the label owner at the - * distances of all edge labels of that owner. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectSameOwnerEdgeDistanceSnapLines:boolean; - /** - * Determines whether this instance should collect snap lines in parallel to the edge path of the label owner at the - * distance of other edge labels in the graph. - *

    - * The default is false. - *

    - * @default false - * @type {boolean} - */ - collectAllEdgeDistanceSnapLines:boolean; - /** - * Specifies whether this context will automatically snap the node labels to snap lines. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapNodeLabels:boolean; - /** - * Specifies whether this context will automatically snap the edge labels to snap lines. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapEdgeLabels:boolean; - /** - * Gets or sets the amount by which snap lines that are induced by existing edge segments are being extended. - *

    - * The default is 40.0d, this value will be used to prolongate the ends of the snap lines. - *

    - * @default 40.0 - * @type {number} - */ - snapLineExtension:number; - /** - * The collection of the {@link yfiles.input.SnapLine snap lines} that have been {@link yfiles.input.LabelSnapContext#addSnapLine added} to this context. - *

    - * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. - *

    - * @see yfiles.input.LabelSnapContext#addSnapLine - * @type {yfiles.collections.IEnumerable.} - */ - snapLines:yfiles.collections.IEnumerable; - /** - * Adds the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to - * collect {@link yfiles.input.SnapLine}s. - *

    - * Event handlers should add snap lines to the caller using the methods provided by - * {@link yfiles.input.CollectLabelSnapLineEventArgs}. - *

    - * @param {function(Object, yfiles.input.CollectLabelSnapLineEventArgs): void} listener The listener to add. - * @see yfiles.input.LabelSnapContext#removeCollectSnapLinesListener - */ - addCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectLabelSnapLineEventArgs)=>void):void; - /** - * Removes the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to - * collect {@link yfiles.input.SnapLine}s. - *

    - * Event handlers should add snap lines to the caller using the methods provided by - * {@link yfiles.input.CollectLabelSnapLineEventArgs}. - *

    - * @param {function(Object, yfiles.input.CollectLabelSnapLineEventArgs): void} listener The listener to remove. - * @see yfiles.input.LabelSnapContext#addCollectSnapLinesListener - */ - removeCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectLabelSnapLineEventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - /** - * The event arguments used by {@link yfiles.input.LabelSnapContext} to collect custom snap lines for each drag. - * @see yfiles.input.LabelSnapContext#addCollectSnapLinesListener - * @class yfiles.input.CollectLabelSnapLineEventArgs - * @extends {yfiles.input.InputModeEventArgs} - */ - export interface CollectLabelSnapLineEventArgs extends yfiles.input.InputModeEventArgs{} - export class CollectLabelSnapLineEventArgs { - /** - * Creates a new instance of this class. - * @param {yfiles.input.IInputModeContext} context The context this event is being used in. - * @param {yfiles.collections.ICollection.} snapLines The snap lines collection to add to. - * @constructor - */ - constructor(context:yfiles.input.IInputModeContext,snapLines:yfiles.collections.ICollection); - /** - * Adds the given snap line to the snap line collection of this class. - * @param {yfiles.input.OrthogonalSnapLine} snapLine the snap line to add. - */ - addSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; - static $class:yfiles.lang.Class; - } - /** - * An {@link yfiles.input.IInputMode} that can {@link yfiles.input.NavigationInputMode#moveTo navigate} an {@link yfiles.graph.IGraph} displayed in a {@link yfiles.input.NavigationInputMode#graphComponent}. - *

    - * This mode is {@link yfiles.input.NavigationInputMode#exclusive} by default. - *

    - * @class yfiles.input.NavigationInputMode - * @implements {yfiles.input.IInputMode} - */ - export interface NavigationInputMode extends Object,yfiles.input.IInputMode{} - export class NavigationInputMode { - /** - * Initializes a new instance of the {@link yfiles.input.NavigationInputMode} class. - * @constructor - */ - constructor(); - /** - * Callback that adjusts the {@link yfiles.view.CanvasComponent#contentRect} to encompass all elements. - *

    - * This implementation will try to delegate to {@link yfiles.input.GraphEditorInputMode#adjustContentRect} if it can find the {@link yfiles.input.GraphEditorInputMode} - * in the {@link yfiles.input.NavigationInputMode#inputModeContext}, otherwise the FitGraphBoundsCommand is executed. - *

    - * @protected - */ - adjustContentRect():void; - /** - * Adjust the group node location according to the value of {@link yfiles.input.NavigationInputMode#autoGroupNodeAlignmentPolicy}. - * @param {boolean} collapse true iff the node has just been collapsed. - * @param {yfiles.graph.INode} groupNode The node that has changed its state. - * @protected - */ - adjustGroupNodeLocation(collapse:boolean,groupNode:yfiles.graph.INode):void; - /** - * - */ - cancel():void; - /** - * Clears the selection in the {@link yfiles.input.NavigationInputMode#graphComponent}. - */ - clearSelection():void; - /** - * {@link yfiles.graph.IFoldingView#collapse Collapses} the given group node to hide the contents of the group node from this {@link yfiles.graph.IFoldingView}. - * @param {yfiles.graph.INode} groupNode The group node to collapse. - * @see yfiles.graph.FoldingManager - * @see yfiles.input.NavigationInputMode#allowCollapseGroup - */ - collapseGroup(groupNode:yfiles.graph.INode):void; - /** - * Performs {@link yfiles.input.NavigationInputMode#collapseGroup} for all {@link yfiles.view.IGraphSelection#selectedNodes}. - */ - collapseSelection():void; - /** - * This method allows for entering a group node so that the currently displayed {@link yfiles.graph.IFoldingView}'s {@link yfiles.graph.IFoldingView#localRoot} will be reset - * to the provided node. - *

    - * It is possible to both use a local group node that is part of the currently displayed {@link yfiles.input.NavigationInputMode#graph} as the node argument, as well as - * an item that belongs to the {@link yfiles.graph.FoldingManager#masterGraph} to allow for switching to group nodes which are currently not being displayed in this - * view. - *

    - * @param {yfiles.graph.INode} node The node that needs to be either part of the current graph, or part of the {@link yfiles.graph.FoldingManager#masterGraph}. - * @see yfiles.input.NavigationInputMode#shouldEnterGroup - * @see yfiles.input.NavigationInputMode#allowEnterGroup - * @see yfiles.graph.FoldingManager - */ - enterGroup(node:yfiles.graph.INode):void; - /** - * Performs {@link yfiles.input.NavigationInputMode#enterGroup} for the first valid {@link yfiles.view.IGraphSelection#selectedNodes}. - */ - enterSelectedGroup():void; - /** - * Exits the current {@link yfiles.graph.IFoldingView#localRoot} of the currently displayed {@link yfiles.graph.IFoldingView view} and shows the contents of the parent container. - *

    - * This method will also {@link yfiles.input.GraphInputMode#clearSelection clear the selection} and {@link yfiles.input.GraphInputMode#setSelected select} the exited group node. - *

    - * @see yfiles.graph.FoldingManager - * @see yfiles.input.NavigationInputMode#allowExitGroup - * @see yfiles.input.NavigationInputMode#shouldExitGroup - */ - exitGroup():void; - /** - * {@link yfiles.graph.IFoldingView#expand Expands} the given group node to show the contents of the collapsed group node in this {@link yfiles.graph.IFoldingView}. - * @param {yfiles.graph.INode} groupNode The group node to expand - * @see yfiles.graph.FoldingManager - * @see yfiles.input.NavigationInputMode#allowExpandGroup - */ - expandGroup(groupNode:yfiles.graph.INode):void; - /** - * Performs {@link yfiles.input.NavigationInputMode#expandGroup} for all {@link yfiles.view.IGraphSelection#selectedNodes}. - */ - expandSelection():void; - /** - * Moves the focus into the given direction, extending the selection to the new element. - * @param {yfiles.input.MoveFocusDirection} direction The direction to move the focus and extend the selection. - */ - extendSelectionTo(direction:yfiles.input.MoveFocusDirection):void; - /** - * Installs this mode into the given context that is provided by the canvas. - *

    - * In general a mode can only be installed into a single canvas at all times. - *

    - *

    - * This method is called to initialize this instance. Subclasses should override this method to register the corresponding - * event handler delegates for the various input events they need to register with. - *

    - *

    - * Overriding implementations should call the base implementation, first. - *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is - * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.NavigationInputMode#controller} for this mode. - * @see yfiles.input.IInputMode#uninstall - */ - install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; - /** - * Moves the focus into the given direction, not changing the current selection. - * @param {yfiles.input.MoveFocusDirection} direction The direction to move the focus. - */ - moveFocusTo(direction:yfiles.input.MoveFocusDirection):void; - /** - * Moves the focus into the given direction, setting the selection to the new element. - * @param {yfiles.input.MoveFocusDirection} direction The direction to move the focus and selection. - */ - moveTo(direction:yfiles.input.MoveFocusDirection):void; - /** - * Called after {@link yfiles.input.NavigationInputMode#cancel} has been called. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been canceled. - *

    - *

    - * This implementation does nothing. - *

    - * @protected - */ - onCanceled():void; - /** - * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to true. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been activated. - *

    - *

    - * Overriding implementations should call the base implementation. - *

    - * @protected - */ - onConcurrencyControllerActivated():void; - /** - * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to false. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been deactivated. - *

    - *

    - * Overriding implementations should call the base implementation. - *

    - * @protected - */ - onConcurrencyControllerDeactivated():void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupCollapsedListener GroupCollapsed} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupCollapsed(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupCollapsingListener GroupCollapsing} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupCollapsing(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupEnteredListener GroupEntered} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupEntered(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupEnteringListener GroupEntering} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupEntering(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupExitedListener GroupExited} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupExited(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupExitingListener GroupExiting} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupExiting(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupExpandedListener GroupExpanded} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupExpanded(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupExpandingListener GroupExpanding} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupExpanding(evt:yfiles.collections.ItemEventArgs):void; - /** - * Called after {@link yfiles.input.NavigationInputMode#tryStop} has been called. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been stopped. - *

    - *

    - * This implementation does nothing. - *

    - * @protected - */ - onStopped():void; - /** - * Selects the {@link yfiles.view.GraphComponent#currentItem} current item. - *

    - * This method delegates to {@link yfiles.input.NavigationInputMode#selectItem}. - *

    - */ - selectCurrentItem():void; - /** - * Callback that selects the given item. - * @param {yfiles.view.GraphComponent} graphComponent The {@link yfiles.input.NavigationInputMode#graphComponent}. - * @param {yfiles.graph.IModelItem} item The item to select. - * @param {boolean} extendSelection if set to true the current selection is extended otherwise it is cleared beforehand. - * @see yfiles.input.NavigationInputMode#clearSelection - * @protected - */ - selectItem(graphComponent:yfiles.view.GraphComponent,item:yfiles.graph.IModelItem,extendSelection:boolean):void; - /** - * Callback that actually sets the current item property. - * @param {yfiles.view.GraphComponent} graphComponent The {@link yfiles.input.NavigationInputMode#graphComponent} to set the current item of. - * @param {yfiles.graph.IModelItem} item The item to set. - * @returns {boolean} Whether the operation was actually performed. - * @protected - */ - setCurrentItem(graphComponent:yfiles.view.GraphComponent,item:yfiles.graph.IModelItem):boolean; - /** - * Sets the "current" item to the given one. - * @param {yfiles.graph.IModelItem} item The item to set as the current item. - * @see yfiles.input.NavigationInputMode#setCurrentItem - */ - setCurrentItem(item:yfiles.graph.IModelItem):void; - /** - * Sets the {@link yfiles.input.NavigationInputMode#graphComponent} to use for the various actions. - *

    - * This will register or unregister the commands for the control. This method is called in response to {@link yfiles.input.NavigationInputMode#install} - * and {@link yfiles.input.NavigationInputMode#uninstall}. - *

    - * @param {yfiles.view.GraphComponent} graphComponent The control to use or null. - * @protected - */ - setGraphComponent(graphComponent:yfiles.view.GraphComponent):void; - /** - * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#collapseGroup collapse} the given group node. - *

    - * This implementation returns the value of {@link yfiles.input.NavigationInputMode#allowCollapseGroup}. - *

    - * @param {yfiles.graph.INode} groupNode - * @returns {boolean} Whether to collapse the given group or not. - * @protected - */ - shouldCollapseGroup(groupNode:yfiles.graph.INode):boolean; - /** - * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#enterGroup enter} the specific group node. - *

    - * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowEnterGroup}. - *

    - * @param {yfiles.graph.INode} node The group node to enter. - * @returns {boolean} Whether to enter the group or not. - * @protected - */ - shouldEnterGroup(node:yfiles.graph.INode):boolean; - /** - * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#exitGroup exit} the current group node. - *

    - * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowExitGroup}. - *

    - * @returns {boolean} Whether to exit the current group or not. - * @protected - */ - shouldExitGroup():boolean; - /** - * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#expandGroup expand} the given group node. - *

    - * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowExpandGroup}. - *

    - * @param {yfiles.graph.INode} node - * @returns {boolean} Whether to expand the given group or not. - * @protected - */ - shouldExpandGroup(node:yfiles.graph.INode):boolean; - /** - * Callback predicate method that determines whether a given model item should be navigated to. - *

    - * This implementation uses the {@link yfiles.input.NavigationInputMode#navigableItems} property to determine whether the item can be navigated to. - *

    - * @param {yfiles.graph.IModelItem} item The model item. - * @returns {boolean} Whether the item should be considered for navigational commands. - * @protected - */ - shouldNavigateTo(item:yfiles.graph.IModelItem):boolean; - /** - * Determines whether the input mode should try to request the mutex when a command is executed. - *

    - * This resets the state of any other input mode, unless it currently possesses the mutex. - *

    - *

    - * The value of this method is queried for {@link yfiles.input.ICommand#COLLAPSE_GROUP}, {@link yfiles.input.ICommand#EXPAND_GROUP}, - * {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE}, {@link yfiles.input.ICommand#ENTER_GROUP} and {@link yfiles.input.ICommand#EXIT_GROUP}. - *

    - * @returns {boolean} whether the input mode should request the mutex. - * @protected - */ - shouldRequestMutex():boolean; - /** - * Callback predicate method that determines whether a given model item should be selected. - *

    - * This implementation uses the {@link yfiles.input.NavigationInputMode#selectableItems} property to determine whether the item should be selected. - *

    - * @param {yfiles.graph.IModelItem} item The model item. - * @returns {boolean} Whether the item should be selected by the navigational commands. - * @protected - */ - shouldSelect(item:yfiles.graph.IModelItem):boolean; - /** - * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#toggleExpansionState toggle} the collapsed state of the given group node. - *

    - * This implementation uses {@link yfiles.input.NavigationInputMode#shouldExpandGroup} and {@link yfiles.input.NavigationInputMode#shouldCollapseGroup} - * respectively. - *

    - * @param {yfiles.graph.INode} node - * @returns {boolean} Whether to expand the given group or not. - * @protected - */ - shouldToggleExpansionState(node:yfiles.graph.INode):boolean; - /** - * Toggles the {@link yfiles.graph.IFoldingView#isExpanded expanded/collapsed} state for the given group node in the {@link yfiles.graph.IFoldingView}. - * @param {yfiles.graph.INode} groupNode The group node to toggle the state for. - * @see yfiles.graph.FoldingManager - */ - toggleExpansionState(groupNode:yfiles.graph.INode):void; - /** - * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. - * @returns {boolean} true iff this instance does not {@link yfiles.input.ConcurrencyController#hasMutex own the mutex}. - */ - tryStop():boolean; - /** - * Uninstalls this mode from the given context. - *

    - * This code should clean up all changes made to the canvas in the {@link yfiles.input.IInputMode#install} method. After a mode has - * been uninstalled it can be installed again into the same or another canvas. - *

    - *

    - * Overriding implementations should call the base implementation after their own code. - *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during - * installation. - */ - uninstall(context:yfiles.input.IInputModeContext):void; - /** - * - * @type {number} - */ - priority:number; - /** - * Gets or sets a value indicating whether this mode will be the only one running when it has the mutex. - *

    - * The value of this property will be delegated to the {@link yfiles.input.ConcurrencyController#exclusive} property of the {@link yfiles.input.NavigationInputMode#controller}. - *

    - *

    - * If this mode is marked as exclusive and has the mutex, all other modes {@link yfiles.input.MultiplexingInputMode#add added} to the same {@link yfiles.input.MultiplexingInputMode} - * will be deactivated. Otherwise it will always run concurrently with all other modes. - *

    - * @type {boolean} - */ - exclusive:boolean; - /** - * Gets or sets the enabled state of this input mode. - *

    - * Clients can use this property to disable or reenable this instance. This will set the {@link yfiles.input.ConcurrencyController#enabled Enabled} property of the installed - * {@link yfiles.input.NavigationInputMode#controller} so a disabled instance should never try to acquire the input mutex. - *

    - * @type {boolean} - */ - enabled:boolean; - /** - * - * @type {yfiles.input.IInputModeContext} - */ - inputModeContext:yfiles.input.IInputModeContext; - /** - * Returns the installed {@link yfiles.input.NavigationInputMode#controller}. - * @protected - * @type {yfiles.input.ConcurrencyController} - */ - controller:yfiles.input.ConcurrencyController; - /** - * Gets or sets the item types that can be navigated to by this mode. - * @see yfiles.input.NavigationInputMode#shouldNavigateTo - * @type {yfiles.graph.GraphItemTypes} - */ - navigableItems:yfiles.graph.GraphItemTypes; - /** - * Gets the types of the items that should be selectable by this instance. - *

    - * The selectable items. The default value is {@link yfiles.graph.GraphItemTypes#NODE}. - *

    - * @default 1 - * @type {yfiles.graph.GraphItemTypes} - */ - selectableItems:yfiles.graph.GraphItemTypes; - /** - * Gets or sets the the location that should be kept fixed if toggling a group node state. - *

    - * Default value is {@link yfiles.input.NodeAlignmentPolicy#NONE} - *

    - * @see yfiles.input.NavigationInputMode#expandGroup - * @see yfiles.input.NavigationInputMode#collapseGroup - * @default 0 - * @type {yfiles.input.NodeAlignmentPolicy} - */ - autoGroupNodeAlignmentPolicy:yfiles.input.NodeAlignmentPolicy; - /** - * Gets or sets the {@link yfiles.input.NavigationInputMode#graphComponent} this mode acts on. - * @type {yfiles.view.GraphComponent} - */ - graphComponent:yfiles.view.GraphComponent; - /** - * Gets the list of commands that are available in this instance. - *

    - * By default, all supported commands are available - *

    - *

    - * Removing commands from this collection also removes the command bindings registered by this instance. - *

    - *

    - * Add supported commands to make them available in this instance. - *

    - *

    - * Supported commands are - *

    - *
      - *
    • {@link yfiles.input.ICommand#MOVE_LEFT}
    • - *
    • {@link yfiles.input.ICommand#MOVE_RIGHT}
    • - *
    • {@link yfiles.input.ICommand#MOVE_UP}
    • - *
    • {@link yfiles.input.ICommand#MOVE_DOWN}
    • - *
    • {@link yfiles.input.ICommand#MOVE_TO_PAGE_UP}
    • - *
    • {@link yfiles.input.ICommand#MOVE_TO_PAGE_DOWN}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_BACK}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_FORWARD}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_UP}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_DOWN}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_PAGE_UP}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_PAGE_DOWN}
    • - *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_LEFT}
    • - *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_RIGHT}
    • - *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_UP}
    • - *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_DOWN}
    • - *
    • {@link yfiles.input.ICommand#SELECT_TO_PAGE_UP}
    • - *
    • {@link yfiles.input.ICommand#SELECT_TO_PAGE_DOWN}
    • - *
    - * @type {yfiles.collections.ICollection.} - */ - availableCommands:yfiles.collections.ICollection; - /** - * Gets or sets a value indicating whether to use the {@link yfiles.view.GraphComponent#currentItem} as a fallback for the commands if no item is provided in the - * parameter and the current selection is empty. - *

    - * This applies to the following commands: - *

    - *
      - *
    • {@link yfiles.input.ICommand#ENTER_GROUP}
    • - *
    • {@link yfiles.input.ICommand#EXPAND_GROUP}
    • - *
    • {@link yfiles.input.ICommand#COLLAPSE_GROUP}
    • - *
    • {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE}
    • - *
    - * @default false - * @type {boolean} - */ - useCurrentItemForCommands:boolean; - /** - * Gets or sets the {@link yfiles.view.IGraphSelection} this mode operates on. - * @type {yfiles.view.IGraphSelection} - */ - graphSelection:yfiles.view.IGraphSelection; - /** - * Gets or sets the graph this mode operates on. - * @type {yfiles.graph.IGraph} - */ - graph:yfiles.graph.IGraph; - /** - * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#enterGroup enter group nodes} via the - * {@link yfiles.input.ICommand#ENTER_GROUP}. - *

    - * The default value is true. - *

    - * @see yfiles.input.NavigationInputMode#shouldEnterGroup - * @see yfiles.graph.FoldingManager - * @type {boolean} - */ - allowEnterGroup:boolean; - /** - * Gets or sets a value that determines whether it is allowed to collapse group nodes via the - * {@link yfiles.input.ICommand#COLLAPSE_GROUP}. - *

    - * The default value is true. - *

    - * @see yfiles.input.NavigationInputMode#collapseGroup - * @see yfiles.input.NavigationInputMode#shouldCollapseGroup - * @see yfiles.graph.FoldingManager - * @type {boolean} - */ - allowCollapseGroup:boolean; - /** - * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#expandGroup expand group nodes} via the - * {@link yfiles.input.ICommand#EXPAND_GROUP}. - *

    - * The default value is true. - *

    - * @see yfiles.input.NavigationInputMode#shouldExpandGroup - * @see yfiles.graph.FoldingManager - * @type {boolean} - */ - allowExpandGroup:boolean; - /** - * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#exitGroup exit the current group node} via the - * {@link yfiles.input.ICommand#EXIT_GROUP}. - *

    - * The default value is true. - *

    - * @see yfiles.input.NavigationInputMode#shouldExitGroup - * @see yfiles.graph.FoldingManager - * @default true - * @type {boolean} - */ - allowExitGroup:boolean; - /** - * Gets or sets a value that determines whether {@link yfiles.view.CanvasComponent#fitContent} or the FitContentCommand should be - * triggered after a group navigation action. - *

    - * The default value is true. - *

    - * @default true - * @type {boolean} - */ - fitContentAfterGroupActions:boolean; - /** - * Adds the given listener for the GroupCollapsing event that occurs before a group will be {@link yfiles.input.NavigationInputMode#collapseGroup Collapsed}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupCollapsingListener - */ - addGroupCollapsingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupCollapsing event that occurs before a group will be {@link yfiles.input.NavigationInputMode#collapseGroup Collapsed}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupCollapsingListener - */ - removeGroupCollapsingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupCollapsed event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#collapseGroup Collapsed}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupCollapsedListener - */ - addGroupCollapsedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupCollapsed event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#collapseGroup Collapsed}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupCollapsedListener - */ - removeGroupCollapsedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupExpanding event that occurs before a group will be {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupExpandingListener - */ - addGroupExpandingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupExpanding event that occurs before a group will be {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupExpandingListener - */ - removeGroupExpandingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupExpanded event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupExpandedListener - */ - addGroupExpandedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupExpanded event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupExpandedListener - */ - removeGroupExpandedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupEntering event that occurs before a group will be {@link yfiles.input.NavigationInputMode#enterGroup Entered}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupEnteringListener - */ - addGroupEnteringListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupEntering event that occurs before a group will be {@link yfiles.input.NavigationInputMode#enterGroup Entered}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupEnteringListener - */ - removeGroupEnteringListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupEntered event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#enterGroup Entered}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupEnteredListener - */ - addGroupEnteredListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupEntered event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#enterGroup Entered}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupEnteredListener - */ - removeGroupEnteredListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupExiting event that occurs before a group will be {@link yfiles.input.NavigationInputMode#exitGroup Exited}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupExitingListener - */ - addGroupExitingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupExiting event that occurs before a group will be {@link yfiles.input.NavigationInputMode#exitGroup Exited}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupExitingListener - */ - removeGroupExitingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupExited event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#exitGroup Exited}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupExitedListener - */ - addGroupExitedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupExited event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#exitGroup Exited}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupExitedListener - */ - removeGroupExitedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - export enum MoveFocusDirection{ - /** - * No direction. - */ - NONE, - /** - * In the direction of the negative x Axis. - */ - LEFT, - /** - * In the direction of the positive x Axis. - */ - RIGHT, - /** - * In the direction of the negative y Axis. - */ - UP, - /** - * In the direction of the positive y Axis. - */ - DOWN, - /** - * In the direction of the {@link yfiles.graph.IGraph#setParent parent} in the grouped graph. - */ - PARENT, - /** - * In the direction of the {@link yfiles.graph.IGraph#getChildren children} in the grouped graph. - */ - CHILD - } - export enum NodeAlignmentPolicy{ - /** - * Don't fix any specific point, only use the layout from the target state. - */ - NONE, - /** - * Fix the center point. - */ - CENTER, - /** - * Fix the upper left corner. - */ - TOP_LEFT, - /** - * Fix the lower left corner. - */ - BOTTOM_LEFT, - /** - * Fix the upper right corner. - */ - TOP_RIGHT, - /** - * Fix the lower right corner. - */ - BOTTOM_RIGHT, - /** - * Fix the uppermost center. - */ - TOP_CENTER, - /** - * Fix the lowermost center. - */ - BOTTOM_CENTER, - /** - * Fix the left center. - */ - CENTER_LEFT, - /** - * Fix the right center. - */ - CENTER_RIGHT - } - export enum OrthogonalEdgeEditingPolicy{ - /** - * Enables orthogonal edge creation or editing for a specific sub-aspect automatically if an {@link yfiles.input.OrthogonalEdgeEditingContext#enabled} {@link yfiles.input.OrthogonalEdgeEditingContext} - * instance is set in the {@link yfiles.input.GraphEditorInputMode#orthogonalEdgeEditingContext parent input mode}. - */ - AUTO, - /** - * Enables orthogonal edge creation or editing for a specific sub-aspect of edge creation. - */ - ALWAYS, - /** - * Disables orthogonal edge creation or editing for a specific sub-aspect of edge creation. - */ - NEVER - } - export enum SegmentOrientation{ - /** - * The segment has a horizontal orientation, which means that the end points should be moved vertically in synch so that - * the orientation is not destroyed. - */ - HORIZONTAL, - /** - * The segment has a vertical orientation, which means that the end points should be moved horizontally in synch so that - * the orientation is not destroyed. - */ - VERTICAL, - /** - * The segment does not need to be treated especially, both endpoints can be moved independently from each other. - */ - NON_ORTHOGONAL - } - /** - * Concrete {@link yfiles.input.SnapContext} implementation which handles snapping movement for {@link yfiles.graph.IGraph} items. - *

    - * This class provides a set of properties that determine the way snapping operations are being performed in the context of - * {@link yfiles.graph.IGraph}s. {@link yfiles.input.IPositionHandler} implementations and the like can use the following idiom to retrieve - * instances of this class: - *

    - *

    Related demos:

    - *
      - *
    • Tutorial: 01 Getting Started, step 15 Snapping
    • - *
    - * @see yfiles.input.GraphEditorInputMode - * @see yfiles.input.GraphEditorInputMode#snapContext - * @class yfiles.input.GraphSnapContext - * @extends {yfiles.input.SnapContext} - */ - export interface GraphSnapContext extends yfiles.input.SnapContext{} - export class GraphSnapContext { - /** - * Creates a new instance with default settings. - * @constructor - */ - constructor(); - /** - * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.IBend} that will be considered for the next drag gesture. - *

    - * The default {@link yfiles.input.IHandle} of an {@link yfiles.graph.IBend} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} - * method so snap results are calculated when this bend is repositioned. Custom {@link yfiles.input.IHandle} implementations can - * add infos created by {@link yfiles.input.GraphSnapContext#getMovementInfo}. - *

    - * @param {yfiles.input.MovementInfo} info The {@link yfiles.input.MovementInfo} representing the bend to be moved. Can be created with - * {@link yfiles.input.GraphSnapContext#getMovementInfo}. - */ - addBendToBeMoved(info:yfiles.input.MovementInfo):void; - /** - * Adds {@link yfiles.input.MovementInfo} representing the end of an {@link yfiles.graph.IEdge} that will be considered for the next drag - * gesture. - *

    - * The {@link yfiles.input.IHandle} returned by the default {@link yfiles.input.IEdgePortHandleProvider} of an {@link yfiles.graph.IEdge} calls - * this method in its {@link yfiles.input.IDragHandler#initializeDrag} method so snap results are calculated when reparenting this - * edge end. Custom {@link yfiles.input.IHandle} implementations can call {@link yfiles.input.GraphSnapContext#getMovementInfos} and add - * the first or last {@link yfiles.input.MovementInfo} of the returned list. - *

    - * @param {yfiles.input.MovementInfo} info The {@link yfiles.input.MovementInfo} representing the edge end to be reparented. Can be created with - * {@link yfiles.input.GraphSnapContext#getMovementInfos}. - * @param {boolean} sourceEnd true if the info represents the source end of the edge. - */ - addEdgeEndToBeMoved(info:yfiles.input.MovementInfo,sourceEnd:boolean):void; - /** - * Adds an item which will be reshaped. - * @param {yfiles.graph.IModelItem} item The item to be reshaped. - */ - addItemToBeReshaped(item:yfiles.graph.IModelItem):void; - /** - * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.INode} that will be considered for the next drag gesture. - *

    - * The default {@link yfiles.input.IPositionHandler} of an {@link yfiles.graph.INode} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} - * method so snap results are calculated when this node is repositioned. Custom {@link yfiles.input.IPositionHandler} - * implementations can add infos created by {@link yfiles.input.GraphSnapContext#getMovementInfo}. - *

    - * @param {yfiles.input.MovementInfo} info The {@link yfiles.input.MovementInfo} representing the node to be moved. Can be created with - * {@link yfiles.input.GraphSnapContext#getMovementInfo}. - */ - addNodeToBeMoved(info:yfiles.input.MovementInfo):void; - /** - * Adds an orthogonally moved segment to this context for which this instance will automatically collect - * {@link yfiles.input.SnapResult}s and provide a default visualization. - *

    - * This method can be called during initialization to collect orthogonal segments that should be tested against {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines} and {@link yfiles.input.GraphSnapContext#additionalSnapLines}. - *

    - * @param {yfiles.input.MovementInfo} start The starting point of the manipulated segment. - * @param {yfiles.input.MovementInfo} end The end point of the manipulated segment. - */ - addOrthogonalSegment(start:yfiles.input.MovementInfo,end:yfiles.input.MovementInfo):void; - /** - * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.IPort} that will be considered for the next drag gesture. - *

    - * The default {@link yfiles.input.IHandle} of an {@link yfiles.graph.IPort} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} - * method so snap results are calculated for this port. Custom {@link yfiles.input.IHandle} implementations can add infos created - * by {@link yfiles.input.GraphSnapContext#getMovementInfo}. - *

    - * @param {yfiles.input.MovementInfo} info The {@link yfiles.input.MovementInfo} representing the port to be moved. Can be created with - * {@link yfiles.input.GraphSnapContext#getMovementInfo}. - */ - addPortToBeMoved(info:yfiles.input.MovementInfo):void; - /** - * Adds an entry for the same-height-snapping. - *

    - * During {@link yfiles.input.SnapContext#isInitializing initialization} this method can be used to register entries that can later be retrieved using the {@link yfiles.input.GraphSnapContext#findSameHeightEntries} - * method. The rectangle will be used to obtain the height value and will also be used for the visualization of the snap - * result. - *

    - * @param {yfiles.geometry.Rect} rectangle The rectangle to obtain the height value from. This rectangle will be used for the snap result visualization. - * @see yfiles.input.GraphSnapContext#addSameWidthEntry - */ - addSameHeightEntry(rectangle:yfiles.geometry.Rect):void; - /** - * Adds an entry for the same-width-snapping. - *

    - * During {@link yfiles.input.SnapContext#isInitializing initialization} this method can be used to register entries that can later be retrieved using the {@link yfiles.input.GraphSnapContext#findSameWidthEntries} - * method. The rectangle will be used to obtain the width value and will also be used for the visualization of the snap - * result. - *

    - * @param {yfiles.geometry.Rect} rectangle The rectangle to obtain the width value from. This rectangle will be used for the snap result visualization. - * @see yfiles.input.GraphSnapContext#addSameHeightEntry - */ - addSameWidthEntry(rectangle:yfiles.geometry.Rect):void; - /** - * Collects the {@link yfiles.input.OrthogonalSnapLine}s for the nodes which are not moving. - *

    - * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.INode}. - *

    - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt - * @protected - */ - collectFixedNodeSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; - /** - * Collects the {@link yfiles.input.OrthogonalSnapLine}s for the ports which are not moving. - *

    - * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.IPort}. - *

    - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt - * @protected - */ - collectFixedPortSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; - /** - * Collects snap lines for edge segments. - *

    - * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.IEdge}. This - * implementation should then make us of {@link yfiles.input.GraphSnapContext#getMovementInfos} to determine what segments are - * fixed. - *

    - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt - * @protected - */ - collectFixedSegmentSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; - /** - * Collects all node widths and heights in the collections {@link yfiles.input.GraphSnapContext#findSameWidthEntries} and - * {@link yfiles.input.GraphSnapContext#findSameHeightEntries}. - *

    - * This method will only be called if {@link yfiles.input.GraphSnapContext#collectNodeSizes} is enabled and delegates to {@link yfiles.input.GraphSnapContext#addSameHeightEntry} and - * {@link yfiles.input.GraphSnapContext#addSameWidthEntry}. - *

    - * @protected - */ - collectSameSizeEntries():void; - /** - * Finds pairs of nodes that are visually adjacent to create {@link yfiles.input.GraphSnapContext#collectNodePairCenterSnapLines center} and {@link yfiles.input.GraphSnapContext#collectNodePairSnapLines same distance} snap lines. - * @protected - */ - collectVisibleNodePairs():void; - /** - * Finds the entries ({@link yfiles.geometry.Rect}s) that have been registered using the {@link yfiles.input.GraphSnapContext#addSameHeightEntry} - * previously that best match the given constraints. - * @param {number} size The size to find the closest set of identical sizes. - * @param {number} maxSize The maximum allowed size. - * @param {number} minSize The minimum allowed size. - * @returns {yfiles.collections.IListEnumerable.} The set of rectangles that have been added previously using {@link yfiles.input.GraphSnapContext#addSameHeightEntry}. - */ - findSameHeightEntries(size:number,maxSize:number,minSize:number):yfiles.collections.IListEnumerable; - /** - * Finds the entries ({@link yfiles.geometry.Rect}s) that have been registered using the {@link yfiles.input.GraphSnapContext#addSameWidthEntry} - * previously that best match the given constraints. - * @param {number} size The size to find the closest set of identical sizes. - * @param {number} maxSize The maximum allowed size. - * @param {number} minSize The minimum allowed size. - * @returns {yfiles.collections.IListEnumerable.} The set of rectangles that have been added previously using {@link yfiles.input.GraphSnapContext#addSameWidthEntry}. - */ - findSameWidthEntries(size:number,maxSize:number,minSize:number):yfiles.collections.IListEnumerable; - /** - * Gets a subset of {@link yfiles.input.GraphSnapContext#additionalSnapLines} that matches the given orientation, snapType and intersects with the provided area. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the lines to return. - * @param {yfiles.input.SnapLineSnapTypes} snapType The snap type to be included. - * @param {yfiles.geometry.Rect} area The area to test for intersection. - * @returns {yfiles.collections.IEnumerable.} An enumerable of the snap lines that match the provided criteria. - */ - getAdditionalSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; - /** - * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedNodeSnapLines} that matches the given orientation, snapType and intersects with the provided area. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the lines to return. - * @param {yfiles.input.SnapLineSnapTypes} snapType The snap type to be included. - * @param {yfiles.geometry.Rect} area The area to test for intersection. - * @returns {yfiles.collections.IEnumerable.} An enumerable of the snap lines that match the provided criteria. - */ - getFixedNodeSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; - /** - * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedPortSnapLines} that matches the given orientation, snapType and intersects with the provided area. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the lines to return. - * @param {yfiles.input.SnapLineSnapTypes} snapType The snap type to be included. - * @param {yfiles.geometry.Rect} area The area to test for intersection. - * @returns {yfiles.collections.IEnumerable.} An enumerable of the snap lines that match the provided criteria. - */ - getFixedPortSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; - /** - * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines} that matches the given orientation, snapType and intersects with the provided area. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the lines to return. - * @param {yfiles.input.SnapLineSnapTypes} snapType The snap type to be included. - * @param {yfiles.geometry.Rect} area The area to test for intersection. - * @returns {yfiles.collections.IEnumerable.} An enumerable of the snap lines that match the provided criteria. - */ - getFixedSegmentSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; - /** - * Gets the movement info for the given port. - *

    - * This is either the info passed to {@link yfiles.input.GraphSnapContext#addNodeToBeMoved} or another, dynamically created - * instance, if no specific one had been registered. - *

    - * @param {yfiles.graph.IPort} port The port to obtain the info for. - * @returns {yfiles.input.MovementInfo} An instance of {@link yfiles.input.MovementInfo} that describes the movement of the port. - */ - getMovementInfo(port:yfiles.graph.IPort):yfiles.input.MovementInfo; - /** - * Gets the movement info for the given node. - *

    - * This is either the info passed to {@link yfiles.input.GraphSnapContext#addNodeToBeMoved} or another, dynamically created - * instance, if no specific one had been registered. - *

    - * @param {yfiles.graph.INode} node The node to obtain the info for. - * @returns {yfiles.input.MovementInfo} An instance of {@link yfiles.input.MovementInfo} that describes the movement of the node. - */ - getMovementInfo(node:yfiles.graph.INode):yfiles.input.MovementInfo; - /** - * Gets the movement info for the given bend. - *

    - * This is either the info passed to {@link yfiles.input.GraphSnapContext#addBendToBeMoved} or a dynamically created instance if no - * specific one had been registered. - *

    - * @param {yfiles.graph.IBend} bend The bend to obtain the info for. - * @returns {yfiles.input.MovementInfo} An instance of {@link yfiles.input.MovementInfo} that describes the movement of the bend. - */ - getMovementInfo(bend:yfiles.graph.IBend):yfiles.input.MovementInfo; - /** - * Gets the {@link yfiles.input.MovementInfo movement information} for the provided edge. - *

    - * The result describes the shape of the edge and the reshaping behavior of the geometry. The first element in the - * enumerable is the source end of the edge, followed by bend like elements and the target side. Note that it cannot in - * general be assumed {@link yfiles.input.MovementInfo#movedItem} of the first and last element is either a {@link yfiles.graph.IPort} or {@link yfiles.graph.IEdge}, also items in - * between may not necessarily be bound to {@link yfiles.graph.IBend}s and therefore their {@link yfiles.input.MovementInfo#movedItem} can be of a different type than - * {@link yfiles.graph.IBend}. - *

    - * @param {yfiles.graph.IEdge} edge The edge to obtain the movement information of. - * @returns {yfiles.collections.IListEnumerable.} An {@link yfiles.collections.IListEnumerable.} of {@link yfiles.input.MovementInfo}s items that describe the geometry of the edge being modified. - */ - getMovementInfos(edge:yfiles.graph.IEdge):yfiles.collections.IListEnumerable; - /** - * Raises the {@link yfiles.input.GraphSnapContext#addCollectSnapLinesListener CollectSnapLines} event. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The {@link yfiles.input.CollectGraphSnapLinesEventArgs} instance containing the event data. - * @protected - */ - onCollectSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; - /** - * Gets the nodes that stay fixed for the current edit. - * @protected - * @type {yfiles.collections.ICollection.} - */ - fixedNodes:yfiles.collections.ICollection; - /** - * Adds the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to - * collect {@link yfiles.input.OrthogonalSnapLine}s. - *

    - * Event handlers should add snap lines to the caller using the methods provided by - * {@link yfiles.input.CollectGraphSnapLinesEventArgs}. - *

    - * @param {function(Object, yfiles.input.CollectGraphSnapLinesEventArgs): void} listener The listener to add. - * @see yfiles.input.GraphSnapContext#removeCollectSnapLinesListener - */ - addCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectGraphSnapLinesEventArgs)=>void):void; - /** - * Removes the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to - * collect {@link yfiles.input.OrthogonalSnapLine}s. - *

    - * Event handlers should add snap lines to the caller using the methods provided by - * {@link yfiles.input.CollectGraphSnapLinesEventArgs}. - *

    - * @param {function(Object, yfiles.input.CollectGraphSnapLinesEventArgs): void} listener The listener to remove. - * @see yfiles.input.GraphSnapContext#addCollectSnapLinesListener - */ - removeCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectGraphSnapLinesEventArgs)=>void):void; - /** - * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines fixed snap lines} for edge segments. - *

    - * The default is true. - *

    - * @see yfiles.input.ISnapLineProvider - * @see yfiles.input.GraphSnapContext#collectFixedSegmentSnapLines - * @default true - * @type {boolean} - */ - collectEdgeSnapLines:boolean; - /** - * Determines whether this instance should collect the sizes of fixed nodes. - *

    - * The default is true. - *

    - * @see yfiles.input.GraphSnapContext#collectSameSizeEntries - * @default true - * @type {boolean} - */ - collectNodeSizes:boolean; - /** - * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedNodeSnapLines fixed snap lines} for nodes. - *

    - * The default is true. - *

    - * @see yfiles.input.ISnapLineProvider - * @see yfiles.input.GraphSnapContext#collectFixedNodeSnapLines - * @default true - * @type {boolean} - */ - collectNodeSnapLines:boolean; - /** - * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedPortSnapLines fixed snap lines} for ports. - *

    - * The default is true. - *

    - * @see yfiles.input.ISnapLineProvider - * @see yfiles.input.GraphSnapContext#collectFixedPortSnapLines - * @default true - * @type {boolean} - */ - collectPortSnapLines:boolean; - /** - * Whether this context will automatically snap the movements of bends so that the two adjacent segments become - * horizontally or vertically oriented. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapBendAdjacentSegments:boolean; - /** - * Whether this context will automatically snap the movements of nodes so that the first and last segments of edges become - * orthogonal. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapPortAdjacentSegments:boolean; - /** - * Determines whether this context will automatically snap orthogonal edge segments to snap lines. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapSegmentsToSnapLines:boolean; - /** - * Whether this context will automatically snap the bends to snap lines. - *

    - * The default is false. - *

    - * @default false - * @type {boolean} - */ - snapBendsToSnapLines:boolean; - /** - * Whether {@link yfiles.input.INodeSnapResultProvider} implementations should snap nodes to snap lines. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapNodesToSnapLines:boolean; - /** - * The preferred distance between node borders. - *

    - * This will influence the creation of the node snap lines. For each fixed node there will be snap lines on the borders of - * the node itself and around the node at the specified distance. - *

    - *

    - * The default is 0.0d which disables distant snap lines around the nodes. - *

    - * @default 0.0 - * @type {number} - */ - nodeToNodeDistance:number; - /** - * The preferred distance between node borders and edge segments. T - *

    - * This will influence the creation of the node snap lines. For each fixed node there will be snap lines on the borders of - * the node itself and around the node at the specified distance to which orthogonal edge segments can snap. - *

    - *

    - * The default is -1.0d which disables distant snap lines around the nodes for edge segments. - *

    - * @default -1.0 - * @type {number} - */ - nodeToEdgeDistance:number; - /** - * Gets the preferred distance between edges. - *

    - * This will influence the creation of the segment snap lines. For each orthogonally oriented fixed segment there will be - * snap lines on the segment itself and to both sides of the segment at the specified distance. - *

    - *

    - * The default is 0.0d which disables parallel snap lines. - *

    - * @default 0.0 - * @type {number} - */ - edgeToEdgeDistance:number; - /** - * Determines whether this context will automatically snap the movement in such a way that the overall move gesture is - * constrained to the horizontal or vertical axis. - *

    - * The default is false. - *

    - * @default false - * @type {boolean} - */ - snapOrthogonalMovement:boolean; - /** - * Determines whether this instance will try to align the centers of adjacent nodes so that their centers are equally far - * away from each other. - *

    - * Note that this will only make a difference for differently sized nodes. - *

    - *

    - * By default this feature is turned off, so that the instance will try to distribute nodes evenly, so that there is the - * same spacing between their borders, not between their centers. - *

    - * @default false - * @type {boolean} - */ - collectNodePairCenterSnapLines:boolean; - /** - * Gets or sets a value indicating whether this instance will collect pairs of adjacent nodes and add snapping logic so - * that moved nodes will snap so that the distances to the adjacent nodes are equal. - * @default true - * @type {boolean} - */ - collectNodePairSnapLines:boolean; - /** - * Gets or sets a value indicating whether this instance will collect pairs of adjacent nodes and add snapping logic so - * that moved edge segments will snap so that the distances to the adjacent nodes are equal. - * @default true - * @type {boolean} - */ - collectNodePairSegmentSnapLines:boolean; - /** - * Gets or sets the type of the grid snapping that should be performed. - *

    - * Determines which grid elements an object should snap to. - *

    - * @see yfiles.input.GraphSnapContext#nodeGridConstraintProvider - * @see yfiles.input.GraphSnapContext#bendGridConstraintProvider - * @see yfiles.input.GraphSnapContext#portGridConstraintProvider - * @default 0 - * @type {yfiles.input.GridSnapTypes} - */ - gridSnapType:yfiles.input.GridSnapTypes; - /** - * Gets or sets the GridSnapDistance. - *

    - * The maximum distance between the current mouse coordinates and the coordinates to which the mouse will snap. The - * distance is interpreted in view coordinates. - *

    - * @default 10.0 - * @type {number} - */ - gridSnapDistance:number; - /** - * Gets or sets the grid constraint provider for the {@link yfiles.graph.INode}s. - * @type {yfiles.input.IGridConstraintProvider.} - */ - nodeGridConstraintProvider:yfiles.input.IGridConstraintProvider; - /** - * Gets or sets the grid constraint provider for the {@link yfiles.graph.IBend}s. - * @type {yfiles.input.IGridConstraintProvider.} - */ - bendGridConstraintProvider:yfiles.input.IGridConstraintProvider; - /** - * Gets or sets the grid constraint provider for the {@link yfiles.graph.IPort}s. - * @type {yfiles.input.IGridConstraintProvider.} - */ - portGridConstraintProvider:yfiles.input.IGridConstraintProvider; - /** - * Gets or sets the amount by which snap lines that are induced by existing edge segments and node borders are being - * extended. - *

    - * The default is 40.0d, this value will be used to extend the ends of the snap lines. - *

    - * @default 40.0 - * @type {number} - */ - snapLineExtension:number; - /** - * Gets or sets a value indicating whether to crop the snap lines at obstacles. - *

    - * The default is true - *

    - * @type {boolean} - */ - cropSnapLines:boolean; - /** - * The collection of {@link yfiles.input.OrthogonalSnapLine}s for fixed nodes. - *

    - * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. - *

    - * @see yfiles.input.GraphSnapContext#getFixedNodeSnapLines - * @type {yfiles.collections.IEnumerable.} - */ - fixedNodeSnapLines:yfiles.collections.IEnumerable; - /** - * The collection of {@link yfiles.input.OrthogonalSnapLine}s for fixed segments. - *

    - * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. - *

    - * @see yfiles.input.GraphSnapContext#getFixedSegmentSnapLines - * @type {yfiles.collections.IEnumerable.} - */ - fixedSegmentSnapLines:yfiles.collections.IEnumerable; - /** - * The collection of {@link yfiles.input.OrthogonalSnapLine}s to which ports should be snapping. - *

    - * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. - *

    - * @see yfiles.input.GraphSnapContext#getFixedPortSnapLines - * @type {yfiles.collections.IEnumerable.} - */ - fixedPortSnapLines:yfiles.collections.IEnumerable; - /** - * The collection of additional {@link yfiles.input.OrthogonalSnapLine}s. - *

    - * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. - *

    - * @see yfiles.input.GraphSnapContext#getAdditionalSnapLines - * @type {yfiles.collections.IEnumerable.} - */ - additionalSnapLines:yfiles.collections.IEnumerable; - static $class:yfiles.lang.Class; - } - export enum MoveTypes{ - /** - * The element does not move at all during the edit. - */ - FIXED, - /** - * The element moves linearly with the mouse in horizontal direction. - */ - LINEAR_MOVE_X, - /** - * The element moves linearly with the mouse in vertical direction. - */ - LINEAR_MOVE_Y, - /** - * The element moves linearly with the mouse in both directions. - */ - LINEAR_MOVE, - /** - * The element moves in horizontal direction but not linearly/predictably with the mouse. - *

    - * A typical example is a port whose position is adjusted during a resize of its owning node. - *

    - *

    - * Elements which do not move linearly with the mouse cannot snap to a defined position. - *

    - */ - ARBITRARY_MOVE_X, - /** - * The element moves in vertical direction but not linearly/predictably with the mouse. - *

    - * A typical example is a port whose position is adjusted during a resize of its owning node. - *

    - *

    - * Elements which do not move linearly with the mouse cannot snap to a defined position. - *

    - */ - ARBITRARY_MOVE_Y, - /** - * The element moves in both directions but not linearly/predictably with the mouse. - *

    - * A typical example is a port whose position is adjusted during a resize of its owning node. - *

    - *

    - * Elements which do not move linearly with the mouse cannot snap to a defined position. - *

    - */ - ARBITRARY_MOVE, - /** - * The bitwise combination of {@link yfiles.input.MoveTypes#LINEAR_MOVE_X} and {@link yfiles.input.MoveTypes#ARBITRARY_MOVE_X} - */ - MOVEMENT_X, - /** - * The bitwise combination of {@link yfiles.input.MoveTypes#LINEAR_MOVE_Y} and {@link yfiles.input.MoveTypes#ARBITRARY_MOVE_Y} - */ - MOVEMENT_Y - } - /** - * A helper class that is used in the context of {@link yfiles.input.GraphSnapContext} to describe the movement of entities during - * the edit process. - * @class yfiles.input.MovementInfo - */ - export interface MovementInfo extends Object{} - export class MovementInfo { - /** - * Initializes a new instance of the {@link yfiles.input.MovementInfo} class. - * @param {yfiles.geometry.Point} originalLocation The original location. - * @param {yfiles.input.MoveTypes} moveType The type of the move. - * @param {yfiles.graph.IModelItem} movedItem The item that is being moved. - * @protected - * @constructor - */ - constructor(originalLocation:yfiles.geometry.Point,moveType:yfiles.input.MoveTypes,movedItem:yfiles.graph.IModelItem); - /** - * Gets the new x coordinate of the element if the mouse has been moved by dx during the gesture. - *

    - * This takes the {@link yfiles.input.MovementInfo#moveType} and {@link yfiles.input.MovementInfo#originalLocation} into account. - *

    - * @param {number} dx The delta x coordinate. - * @returns {number} The new x coordinate. - */ - getX(dx:number):number; - /** - * Gets the new y coordinate of the element if the mouse has been moved by dy during the gesture. - *

    - * This takes the {@link yfiles.input.MovementInfo#moveType} and {@link yfiles.input.MovementInfo#originalLocation} into account. - *

    - * @param {number} dy The delta y coordinate. - * @returns {number} The new y coordinate. - */ - getY(dy:number):number; - /** - * Determines whether this instances moves synchronized with the provided info. - * @param {yfiles.input.MovementInfo} info The info to check. - * @returns {boolean} Whether this info and the given info move horizontally synchronized. - * @see yfiles.input.MovementInfo#horizontalAnchor - */ - movesHorizontallySynchronizedWith(info:yfiles.input.MovementInfo):boolean; - /** - * Determines whether this instances moves synchronized with the provided info. - * @param {yfiles.input.MovementInfo} info The info to check. - * @returns {boolean} Whether this info and the given info move vertically synchronized. - * @see yfiles.input.MovementInfo#verticalAnchor - */ - movesVerticallySynchronizedWith(info:yfiles.input.MovementInfo):boolean; - /** - * Gets the item that is being moved. - * @type {yfiles.graph.IModelItem} - */ - movedItem:yfiles.graph.IModelItem; - /** - * Gets or sets the horizontal movement info to which this info is anchored horizontally. - *

    - * This info can be declared to be implicitly anchored to another info. Method {@link yfiles.input.MovementInfo#movesHorizontallySynchronizedWith} - * will try to match against the anchors to determine if two infos are moving synchronized. - *

    - * @type {yfiles.input.MovementInfo} - */ - horizontalAnchor:yfiles.input.MovementInfo; - /** - * Gets or sets the vertical movement info to which this info is anchored vertically. - *

    - * This info can be declared to be implicitly anchored to another info. Method {@link yfiles.input.MovementInfo#movesVerticallySynchronizedWith} - * will try to match against the anchors to determine if two infos are moving synchronized. - *

    - * @type {yfiles.input.MovementInfo} - */ - verticalAnchor:yfiles.input.MovementInfo; - /** - * Gets the original location of the element at the time the editing started. - * @type {yfiles.geometry.Point} - */ - originalLocation:yfiles.geometry.Point; - /** - * Gets the current location as a live point. - * @abstract - * @type {yfiles.geometry.IPoint} - */ - currentLocation:yfiles.geometry.IPoint; - /** - * Indicates the type of the movement for this instance. - * @type {yfiles.input.MoveTypes} - */ - moveType:yfiles.input.MoveTypes; - /** - * Gets a value indicating whether the y coordinate of the item is fixed during the move operation. - * @type {boolean} - */ - isVerticallyFixed:boolean; - /** - * Gets a value indicating whether the x coordinate of the item is fixed during the move operation. - * @type {boolean} - */ - isHorizontallyFixed:boolean; - static $class:yfiles.lang.Class; - } - /** - * A snap line is a line segment in the world coordinate system to which other items (lines or points) snap during - * interactive movements. - *

    - * {@link yfiles.input.GraphSnapContext} and {@link yfiles.input.LabelSnapContext} make use of this class to interactively snap moving - * elements to snap lines. - *

    - * @class yfiles.input.SnapLine - */ - export interface SnapLine extends Object{} - export class SnapLine { - /** - * Creates a new snap line using the provided attributes. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {yfiles.geometry.Point} from The first location that delimits this snap line. - * @param {yfiles.geometry.Point} to The second location that delimits this snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:yfiles.geometry.Point,to:yfiles.geometry.Point,tag:Object,weight:number); - /** - * Resource key which determines a snap line having a fixed visualization independent of the {@link yfiles.input.SnapResult}. + * An event recognizer that recognizes when any key has been pressed. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_FIXED_LINE_KEY:string; + static KEY_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a snap line with three special locations, for example the start, end and center of an edge - * segment. + * An event recognizer that recognizes when any key has been typed. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_EDGE_SEGMENT_KEY:string; + static KEY_TYPED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a grid snap line having a fixed visualization independent of the {@link yfiles.input.SnapResult}. + * An event recognizer that recognizes when any key has been released. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static GRID_LINE_FIXED_LINE_KEY:string; + static KEY_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a decorated snap line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates. + * An event recognizer that recognizes when escape has been pressed. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_VARIABLE_LINE_KEY:string; + static ESCAPE_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a blank line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates. + * An event recognizer that recognizes when delete has been pressed. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_BLANK_VARIABLE_LINE_KEY:string; + static DELETE_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a decorated line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates that is extended on both sides. + * An event recognizer that recognizes when escape has been released. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_EXTENDED_VARIABLE_LINE_KEY:string; + static ESCAPE_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a snap line which lets an item snap in a defined distance to another graph item. + * An event recognizer that recognizes when the shift modifier is active. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_FIXED_DISTANCE_KEY:string; + static SHIFT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a snap line which lets an item snap in the center between the bounds of two other items. + * An event recognizer that recognizes when the alt modifier is active. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_CENTER_BETWEEN_BOUNDS_KEY:string; + static ALT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a snap line which lets an item snap in the center between the centers of two other items. + * An event recognizer that recognizes when the ctrl modifier is active. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_CENTER_BETWEEN_CENTERS_KEY:string; + static CONTROL_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a snap line which lets an item snap if it has an equal distance to two other items. - * @const - * @static - * @type {string} - */ - static SNAP_LINE_EQUAL_DISTANCE_BETWEEN_BOUNDS_KEY:string; - /** - * Resource key which determines a snap line which lets an item snap if it's center has an equal distance to the centers' - * of two other items. - * @const - * @static - * @type {string} - */ - static SNAP_LINE_EQUAL_DISTANCE_BETWEEN_CENTERS_KEY:string; - /** - * Resource key which determines the snapping of a resized item if it's new width is equal to another item. - * @const - * @static - * @type {string} - */ - static SNAP_LINE_EQUAL_WIDTH_KEY:string; - /** - * Resource key which determines the snapping of a resized item if it's new height is equal to another item. - * @const - * @static - * @type {string} - */ - static SNAP_LINE_EQUAL_HEIGHT_KEY:string; - /** - * Resource key which determines the snapping of an item to a grid position. - * @const - * @static - * @type {string} - */ - static SNAP_TO_GRID_KEY:string; - /** - * Resource key which determines the {@link yfiles.view.Stroke} used for the snap line visualization. - * @const - * @static - * @type {string} - */ - static SNAP_LINE_STROKE_KEY:string; - /** - * The type of the line that describes how other items will snap to this line. + * An event recognizer that recognizes when the Meta modifier is active. *

    - * his is one of {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, - * {@link yfiles.input.SnapLineSnapTypes#LEFT}, {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - *

    - * @type {yfiles.input.SnapLineSnapTypes} - */ - snapType:yfiles.input.SnapLineSnapTypes; - /** - * The coordinates of the center point of the snap line. - * @type {yfiles.geometry.Point} - */ - coordinates:yfiles.geometry.Point; - /** - * The tag that is associated with this snap line. The tag is most commonly used for the {@link yfiles.input.SnapResult#tag snap result tag}. - * @type {Object} - */ - tag:Object; - /** - * The weight/importance of this snap line. - *

    - * Greater values indicate greater importance. - *

    - * @type {number} - */ - weight:number; - /** - * The first location that delimits this snap line. - * @type {yfiles.geometry.Point} - */ - from:yfiles.geometry.Point; - /** - * The second location that delimits this snap line. - * @type {yfiles.geometry.Point} - */ - to:yfiles.geometry.Point; - /** - * The resource key which determines the visual appearance of the snap line. - * @type {string} - */ - resourceKey:string; - static $class:yfiles.lang.Class; - } - /** - * An orthogonal snap line, in other words, one that is parallel to the x or y axis. - * @class yfiles.input.OrthogonalSnapLine - * @extends {yfiles.input.SnapLine} - */ - export interface OrthogonalSnapLine extends yfiles.input.SnapLine{} - export class OrthogonalSnapLine { - /** - * Creates a new snap line using the provided attributes. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); - /** - * Creates a new snap line using the provided attributes. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {number} from The smaller value of the coordinate that delimits this snap line. - * @param {number} to The greater value of the coordinate that delimits this snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); - /** - * The orientation of the snap line. - *

    - * This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or {@link yfiles.input.SnapLineOrientation#VERTICAL}. - *

    - * @type {yfiles.input.SnapLineOrientation} - */ - orientation:yfiles.input.SnapLineOrientation; - static $class:yfiles.lang.Class; - } - /** - * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores a {@link yfiles.input.NodeBasedSnapLine#node} as additional information that can be used for the - * visualization. - * @class yfiles.input.NodeBasedSnapLine - * @extends {yfiles.input.OrthogonalSnapLine} - */ - export interface NodeBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} - export class NodeBasedSnapLine { - /** - * Initializes a new instance of the {@link yfiles.input.NodeBasedSnapLine} class. - * @param {yfiles.graph.INode} node The node to assign to {@link yfiles.input.NodeBasedSnapLine#node}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @param {number} from The smaller value of the coordinate that delimits this snap line. - * @param {number} to The greater value of the coordinate that delimits this snap line. - * @constructor - */ - constructor(node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); - /** - * Initializes a new instance of the {@link yfiles.input.NodeBasedSnapLine} class. - * @param {yfiles.graph.INode} node The node to assign to {@link yfiles.input.NodeBasedSnapLine#node}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); - /** - * Gets the node that is associated with this snap line. - *

    - * Usually this is the instance that induced this snap line. - *

    - * @type {yfiles.graph.INode} - */ - node:yfiles.graph.INode; - static $class:yfiles.lang.Class; - } - /** - * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores two {@link yfiles.graph.INode nodes} as additional information that can be used for the - * visualization. - * @see yfiles.input.NodePairBasedSnapLine#firstNode - * @see yfiles.input.NodePairBasedSnapLine#secondNode - * @class yfiles.input.NodePairBasedSnapLine - * @extends {yfiles.input.OrthogonalSnapLine} - */ - export interface NodePairBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} - export class NodePairBasedSnapLine { - /** - * Initializes a new instance of the {@link yfiles.input.NodePairBasedSnapLine} class. - * @param {yfiles.graph.INode} firstNode The first node to assign to {@link yfiles.input.NodePairBasedSnapLine#firstNode}. - * @param {yfiles.graph.INode} secondNode The second node to assign to {@link yfiles.input.NodePairBasedSnapLine#secondNode}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @param {number} from The smaller value of the coordinate that delimits this snap line. - * @param {number} to The greater value of the coordinate that delimits this snap line. - * @constructor - */ - constructor(firstNode:yfiles.graph.INode,secondNode:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); - /** - * Initializes a new instance of the {@link yfiles.input.NodePairBasedSnapLine} class. - * @param {yfiles.graph.INode} firstNode The first node to assign to {@link yfiles.input.NodePairBasedSnapLine#firstNode}. - * @param {yfiles.graph.INode} secondNode The second node to assign to {@link yfiles.input.NodePairBasedSnapLine#secondNode}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(firstNode:yfiles.graph.INode,secondNode:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); - /** - * Gets the first node that is associated with this snap line. - *

    - * Usually this is one of the instances that induced this snap line. - *

    - * @type {yfiles.graph.INode} - */ - firstNode:yfiles.graph.INode; - /** - * Gets the second node that is associated with this snap line. - *

    - * Usually this is one of the instances that induced this snap line. - *

    - * @type {yfiles.graph.INode} - */ - secondNode:yfiles.graph.INode; - static $class:yfiles.lang.Class; - } - /** - * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores a {@link yfiles.input.PointBasedSnapLine#point} instance as additional information that can be used for the - * visualization. - * @class yfiles.input.PointBasedSnapLine - * @extends {yfiles.input.OrthogonalSnapLine} - */ - export interface PointBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} - export class PointBasedSnapLine { - /** - * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. - * @param {yfiles.geometry.IPoint} point The point to assign to {@link yfiles.input.PointBasedSnapLine#point}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @param {number} from The smaller value of the coordinate that delimits this snap line. - * @param {number} to The greater value of the coordinate that delimits this snap line. - * @constructor - */ - constructor(point:yfiles.geometry.IPoint,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); - /** - * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. - * @param {yfiles.geometry.IPoint} point The point to assign to {@link yfiles.input.PointBasedSnapLine#point}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(point:yfiles.geometry.IPoint,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); - /** - * Gets the point that is associated with this snap line. - *

    - * Usually this is the instance that induced this snap line. - *

    - * @type {yfiles.geometry.IPoint} - */ - point:yfiles.geometry.IPoint; - static $class:yfiles.lang.Class; - } - /** - * A specialized {@link yfiles.input.SnapLine} that is parallel to an edge segment and stores that edge. - *

    - * In addition to the line itself, this class has three special nape locations the represent the source, center and end - * location of the related edge segment. All snap lines of this type have the {@link yfiles.input.SnapLine#snapType} {@link yfiles.input.SnapLineSnapTypes#CENTER} and - * the {@link yfiles.input.SnapLine#resourceKey} {@link yfiles.input.SnapLine#SNAP_LINE_EDGE_SEGMENT_KEY}. - *

    - * @class yfiles.input.EdgeSegmentSnapLine - * @extends {yfiles.input.SnapLine} - */ - export interface EdgeSegmentSnapLine extends yfiles.input.SnapLine{} - export class EdgeSegmentSnapLine { - /** - * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. - * @param {yfiles.graph.IEdge} edge The edge to assign to {@link yfiles.input.EdgeSegmentSnapLine#edge}. - * @param {yfiles.geometry.Point} from The first location that delimits this snap line. - * @param {yfiles.geometry.Point} to The second location that delimits this snap line. - * @param {yfiles.geometry.Point} segmentSource The location that represents the source of the related segment on this line. - * @param {yfiles.geometry.Point} segmentTarget The location that represents the target of the related segment on this line. - * @param {number} distance The distance of this snap line from its related edge segment. - * @param {number} segmentIndex The segment index of the related edge segment. - * @param {Object} tag A tag that is associated with this snap line. - * @param {number} weight The weight (importance) of this snap line. - * @constructor - */ - constructor(edge:yfiles.graph.IEdge,from:yfiles.geometry.Point,to:yfiles.geometry.Point,segmentSource:yfiles.geometry.Point,segmentTarget:yfiles.geometry.Point,distance:number,segmentIndex:number,tag:Object,weight:number); - /** - * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. - * @param {yfiles.graph.IEdge} edge The edge to assign to {@link yfiles.input.EdgeSegmentSnapLine#edge}. - * @param {yfiles.geometry.Point} segmentSource The location that represents the source of the related segment on this line. In addition, this location is used as {@link yfiles.input.SnapLine#from} - * location. - * @param {yfiles.geometry.Point} segmentTarget The location that represents the target of the related segment on this line. In addition, this location is used as {@link yfiles.input.SnapLine#to} - * location. - * @param {number} distance The distance of this snap line from its related edge segment. - * @param {number} segmentIndex The segment index of the related edge segment. - * @constructor - */ - constructor(edge:yfiles.graph.IEdge,segmentSource:yfiles.geometry.Point,segmentTarget:yfiles.geometry.Point,distance:number,segmentIndex:number); - /** - * Gets the edge that is associated with this snap line. - * @type {yfiles.graph.IEdge} - */ - edge:yfiles.graph.IEdge; - /** - * Gets the direction vector of this snap line. - * @type {yfiles.geometry.Point} - */ - direction:yfiles.geometry.Point; - /** - * Gets the distance of this snap line from its related edge segment. - * @type {number} - */ - distance:number; - /** - * Gets the segment index of the related edge segment. - * @type {number} - */ - segmentIndex:number; - /** - * Gets the location that represents the source of the related segment on this line. - * @type {yfiles.geometry.Point} - */ - segmentSource:yfiles.geometry.Point; - /** - * Gets the location that represents the target of the related segment on this line. - * @type {yfiles.geometry.Point} - */ - segmentTarget:yfiles.geometry.Point; - /** - * Gets and sets the location of the source marker of this snap line. - *

    - * If this is null, the location of the {@link yfiles.input.EdgeSegmentSnapLine#segmentSource} is marked instead. - *

    - * @type {yfiles.geometry.Point} - */ - sourceMarker:yfiles.geometry.Point; - /** - * Gets and sets the location of the target marker of this snap line. - *

    - * If this is null, the location of the {@link yfiles.input.EdgeSegmentSnapLine#segmentTarget} is marked instead. - *

    - * @type {yfiles.geometry.Point} - */ - targetMarker:yfiles.geometry.Point; - static $class:yfiles.lang.Class; - } - export enum SnapLineOrientation{ - /** - * Constant that describes a horizontal {@link yfiles.input.SnapLineOrientation orientation} of a snap line. - */ - HORIZONTAL, - /** - * Constant that describes a vertical {@link yfiles.input.SnapLineOrientation orientation} of a snap line. - */ - VERTICAL - } - export enum SnapLineSnapTypes{ - /** - * Describes snap lines to which nothing will snap. - */ - NONE, - /** - * Describes snap lines to which the top sides of rectangular elements will snap. - */ - TOP, - /** - * Describes snap lines to which the bottom sides of rectangular elements will snap. - */ - BOTTOM, - /** - * Describes snap lines to which the left sides of rectangular elements will snap. - */ - LEFT, - /** - * Describes snap lines to which the right sides of rectangular elements will snap. - */ - RIGHT, - /** - * Describes snap lines to which the center of elements will snap. - */ - CENTER, - /** - * Describes vertical snap lines - */ - VERTICAL, - /** - * Describes horizontal snap lines - */ - HORIZONTAL, - /** - * Describes snap lines to which all elements will snap at all sides - */ - ALL - } - /** - * A simple default implementation of an {@link yfiles.input.IPortCandidate}. - *

    - * Subclasses need to override {@link yfiles.input.DefaultPortCandidate#createInstance} if they don't {@link yfiles.input.DefaultPortCandidate#setInstance set} a port instance. - *

    - * @class yfiles.input.DefaultPortCandidate - * @implements {yfiles.input.IPortCandidate} - */ - export interface DefaultPortCandidate extends Object,yfiles.input.IPortCandidate{} - export class DefaultPortCandidate { - /** - * Creates a candidate for the given owner that uses the graph's defaults for the port's style and a default parameter for - * the given model. - *

    - * The {@link yfiles.input.DefaultPortCandidate#locationParameter} is set to the parameter that best matches the {@link yfiles.geometry.Point#ORIGIN origin} for the given model. - *

    - * @param {yfiles.graph.IPortOwner} owner The owner. - * @param {yfiles.graph.IPortLocationModel} model The model. - * @constructor - */ - constructor(owner:yfiles.graph.IPortOwner,model:yfiles.graph.IPortLocationModel); - /** - * Creates a candidate for the given owner that uses the graph's defaults for the port's style and the given - * locationParameter. - *

    - * If no locationParameter is given, the used candidate has a fixed location at {@link yfiles.geometry.Point#ORIGIN} that does not - * depend on the owner. - *

    - * @param {yfiles.graph.IPortOwner} owner The owner. - * @param {yfiles.graph.IPortLocationModelParameter} [locationParameter=null] The location. - * @param {yfiles.input.PortCandidateValidity} [validity=yfiles.input.PortCandidateValidity.VALID] The validity of the port candidate. - * @constructor - */ - constructor(owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,validity?:yfiles.input.PortCandidateValidity); - /** - * Creates a candidate for the given owner that uses the graph's defaults for the port's style and the given - * locationParameter. - *

    - * If no locationParameter is given, the used candidate has a fixed location at {@link yfiles.geometry.Point#ORIGIN} that does not - * depend on the owner. - *

    - * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPortOwner} options.owner The owner. - * @param {yfiles.graph.IPortLocationModelParameter} [options.locationParameter=null] The location. - * @param {yfiles.input.PortCandidateValidity} [options.validity=yfiles.input.PortCandidateValidity.VALID] The validity of the port candidate. - * @constructor - */ - constructor(options:{owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,validity?:yfiles.input.PortCandidateValidity}); - /** - * Creates a candidate using the given port as the template. - * @param {yfiles.graph.IPort} port The port to use. - * @constructor - */ - constructor(port:yfiles.graph.IPort); - /** - * Actually creates the {@link yfiles.graph.IPort} instance. - *

    - * This method is called in response to a call to {@link yfiles.input.DefaultPortCandidate#createPort} on this instance and the - * instances created by {@link yfiles.input.DefaultPortCandidate#getPortCandidateAt}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.graph.IGraph} graph The graph to add the port to. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The parameter to use. - * @param {yfiles.styles.IPortStyle} style The style to use. - * @param {Object} tag The tag to use. - * @returns {yfiles.graph.IPort} The newly created port. - * @protected - */ - createInstance(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,locationParameter:yfiles.graph.IPortLocationModelParameter,style:yfiles.styles.IPortStyle,tag:Object):yfiles.graph.IPort; - /** - * This implementation will throw a {@link Stubs.Exceptions.NotSupportedError} if the validity is - * {@link yfiles.input.PortCandidateValidity#DYNAMIC}. - *

    - * This implementation will delegate to the {@link yfiles.input.DefaultPortCandidate#createInstance} method. - *

    - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.graph.IPort} - */ - createPort(context:yfiles.input.IInputModeContext):yfiles.graph.IPort; - /** - * Returns a candidate that is derived from this instance that best fits the provided location. - *

    - * The returned implementation will finally call {@link yfiles.input.DefaultPortCandidate#createInstance} using the newly - * calculated {@link yfiles.input.DefaultPortCandidate#locationParameter}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context for which a concrete candidate is queried. - * @param {yfiles.geometry.Point} location The location for which a candidate should be returned. - * @returns {yfiles.input.IPortCandidate} A {@link yfiles.input.IPortCandidate} implementation whose {@link yfiles.input.DefaultPortCandidate#validity} is guaranteed to be non-{@link yfiles.input.PortCandidateValidity#DYNAMIC}. - * @see yfiles.input.DefaultPortCandidate#validity - */ - getPortCandidateAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; - /** - * Sets the instance that will be returned by {@link yfiles.input.DefaultPortCandidate#port} and {@link yfiles.input.DefaultPortCandidate#createPort}. - * @param {yfiles.graph.IPort} port A port that already exists in the graph or null. - */ - setInstance(port:yfiles.graph.IPort):void; - /** - * Determines whether this candidate is a valid one depending on the context it has been obtained from. - * @default 0 - * @type {yfiles.input.PortCandidateValidity} - */ - validity:yfiles.input.PortCandidateValidity; - /** - * Gets or set the tag for this candidate. - *

    - * The interpretation of this value is implementation dependent and may be used for visual feedback or interactive - * behavior. - *

    - * @default null - * @type {Object} - */ - candidateTag:Object; - /** - * Gets or sets the port tag to create the port with. - * @default null - * @type {Object} - */ - portTag:Object; - /** - * Gets or sets the model parameter that will be used for the {@link yfiles.graph.IPort#locationParameter} if this candidate is chosen. - *

    - * The parameter which may not be null. - *

    - * @type {yfiles.graph.IPortLocationModelParameter} - */ - locationParameter:yfiles.graph.IPortLocationModelParameter; - /** - * The model that will be used by this instance to determine the new {@link yfiles.input.DefaultPortCandidate#locationParameter} if the {@link yfiles.input.DefaultPortCandidate#getPortCandidateAt} - * is called and the {@link yfiles.input.DefaultPortCandidate#validity} is set to {@link yfiles.input.PortCandidateValidity#DYNAMIC}. - * @default null - * @type {yfiles.graph.IPortLocationModel} - */ - model:yfiles.graph.IPortLocationModel; - /** - * Gets or sets the style to use for the newly created port. - * @default null - * @type {yfiles.styles.IPortStyle} - */ - style:yfiles.styles.IPortStyle; - /** - * Gets or sets the owner of the port to be created. - * @type {yfiles.graph.IPortOwner} - */ - owner:yfiles.graph.IPortOwner; - /** - * Returns the instance provided to the constructor or to the {@link yfiles.input.DefaultPortCandidate#setInstance setter}. - * @see yfiles.input.DefaultPortCandidate#createPort - * @type {yfiles.graph.IPort} - */ - port:yfiles.graph.IPort; - static $class:yfiles.lang.Class; - } - /** - * Callback interface for instances that can create bends for a given edge and graph. - *

    - * Implementations of this interface may be found in the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IEdge} instances. This - * interface is used by {@link yfiles.input.GraphEditorInputMode} to create new bends for an edge as soon as the user performs the - * bend creation gesture. - *

    - * @see yfiles.input.GraphEditorInputMode#onCreateBendInputModeBendCreated - * @interface - */ - export interface IBendCreator extends Object{ - /** - * Creates a bend at the given graph for the given edge at the position supplied. - * @param {yfiles.input.IInputModeContext} context The context for which the bend should be created. - * @param {yfiles.graph.IGraph} graph The graph, the edge belongs to. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {yfiles.geometry.Point} location The preferred coordinates of the bend. - * @returns {number} The index of the bend in the edges' {@link yfiles.graph.IEdge#bends} or -1 if no bend has been created. - * @abstract - */ - createBend(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,location:yfiles.geometry.Point):number; - } - var IBendCreator:{ - /** - * A static instance that does not create any bends. - * @const - * @static - * @type {yfiles.input.IBendCreator} - */ - NO_BENDS?:yfiles.input.IBendCreator; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that can be used to find bends at specific locations in the canvas. - *

    - * This interface is usually provided through the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IEdge} implementations. - *

    - * @interface - */ - export interface IBendSelectionTester extends Object{ - /** - * Returns the bends within the given rectangle. - * @param {yfiles.input.IInputModeContext} context The input mode context to use for querying the position. - * @param {yfiles.geometry.Rect} rectangle A rectangle in world coordinates. - * @returns {yfiles.collections.IEnumerable.} The bends inside of rectangle. - * @abstract - */ - getBendsInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):yfiles.collections.IEnumerable; - /** - * Returns the bend at the given world coordinate position. - * @param {yfiles.input.IInputModeContext} context The input mode context to use for querying the position. - * @param {yfiles.geometry.Point} location A location in world coordinates. - * @returns {yfiles.graph.IBend} The bend at the position or null if there is no bend. - * @abstract - */ - getHitBend(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.graph.IBend; - } - var IBendSelectionTester:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An interface that checks for containment of an {@link yfiles.graph.IBend} in 2D coordinate space. - *

    - * This interface is used to determine which bends of edges that connect child nodes are moved when the parent node is - * moved. Therefore, special care has to be taken if you want to provide this interface in the node lookup for other purposes, as this - * can also affect implicit bend movement. - *

    - * @interface - */ - export interface IContainsBendTester extends Object{ - /** - * Determines whether the provided bend is deemed to lie within the shape this test is implemented for. - *

    - * This method is used to determine which bends of edges that connect child nodes are moved when the parent node is moved. - * If an implementation of {@link yfiles.input.IContainsBendTester} is present in the node's {@link yfiles.graph.ILookup#lookup}, this - * method is called with the bend and the bend will be moved together with the parent node iff true is returned. If no - * implemention is provided, only bends that lie inside the bounds of the parent node are moved. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context to use. - * @param {yfiles.graph.IBend} bend The bend to test - * @returns {boolean} true iff the bend is contained within the shape. - * @abstract - */ - contains(context:yfiles.input.IInputModeContext,bend:yfiles.graph.IBend):boolean; - } - var IContainsBendTester:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.INode nodes} to collect a number of - * {@link yfiles.input.SnapResult}s during the move/edit operation. - *

    - * This interface is queried from the {@link yfiles.graph.ILookup} of the - * {@link yfiles.graph.INode}s that are being moved during the edit. - *

    - * @see yfiles.input.GraphSnapContext - * @see yfiles.graph.NodeDecorator#nodeSnapResultProviderDecorator - * @interface - */ - export interface INodeSnapResultProvider extends Object{ - /** - * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for - * {@link yfiles.input.OrthogonalSnapLine}s to which this node can potentially snap. - * @param {yfiles.input.GraphSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the necessary information from and {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add results to}. - * @param {yfiles.geometry.Rect} suggestedLayout The {@link yfiles.graph.INode#layout layout} of the node if the node would not snap. - * @param {yfiles.graph.INode} node The node that is being moved. - * @abstract - */ - collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; - } - var INodeSnapResultProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface for classes that help during snapping of parts of edges. - *

    - * An implementation of this class is obtained from the lookup of the {@link yfiles.graph.IEdge}s which are being edited during an - * operation where {@link yfiles.input.GraphSnapContext graph snapping} is involved. - *

    - * @see yfiles.graph.EdgeDecorator#edgeSnapResultProviderDecorator - * @interface - */ - export interface IEdgeSnapResultProvider extends Object{ - /** - * Called to during the snapping operation whenever {@link yfiles.input.SnapContext#addCollectSnapResultsListener snap results are collected}. - *

    - * This method will be called for each collection of the results. - *

    - * @param {yfiles.input.GraphSnapContext} context The context that is using this instance. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the necessary information from and {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add results to}. - * @param {yfiles.collections.IListEnumerable.} movementInfos The movement infos that describe the edge. - * @param {yfiles.graph.IEdge} edge The edge for which the {@link yfiles.input.SnapResult}s should be {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult collected}. - * @abstract - */ - collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,movementInfos:yfiles.collections.IListEnumerable,edge:yfiles.graph.IEdge):void; - } - var IEdgeSnapResultProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.IBend bends} to collect a number of - * {@link yfiles.input.SnapResult}s during the move/edit operation. - *

    - * This interface is queried from the {@link yfiles.graph.ILookup} of the - * {@link yfiles.graph.IBend}s that are being moved during the edit. - *

    - * @see yfiles.input.GraphSnapContext - * @see yfiles.graph.BendDecorator#bendSnapResultProviderDecorator - * @interface - */ - export interface IBendSnapResultProvider extends Object{ - /** - * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for - * {@link yfiles.input.OrthogonalSnapLine}s to which this bend can potentially snap. - * @param {yfiles.input.GraphSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the necessary information from and {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add results to}. - * @param {yfiles.geometry.Point} suggestedLocation The {@link yfiles.graph.IBend#location location} of the bend if the bend would not snap. - * @param {yfiles.graph.IBend} bend The bend that is being moved. - * @abstract - */ - collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLocation:yfiles.geometry.Point,bend:yfiles.graph.IBend):void; - } - var IBendSnapResultProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.IPort port} to collect a number of - * {@link yfiles.input.SnapResult}s during the move/edit operation. - *

    - * This interface is queried from the {@link yfiles.graph.ILookup} of the - * {@link yfiles.graph.IPort}s that are being moved during the edit. - *

    - * @see yfiles.input.GraphSnapContext - * @see yfiles.graph.PortDecorator#portSnapResultProviderDecorator - * @interface - */ - export interface IPortSnapResultProvider extends Object{ - /** - * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for - * {@link yfiles.input.OrthogonalSnapLine}s to which this bend can potentially snap. - * @param {yfiles.input.GraphSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the necessary information from and {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add results to}. - * @param {yfiles.geometry.Point} suggestedLocation The {@link yfiles.graph.IBend#location location} of the bend if the bend would not snap. - * @param {yfiles.graph.IPort} port The port that is being moved - * @abstract - */ - collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLocation:yfiles.geometry.Point,port:yfiles.graph.IPort):void; - } - var IPortSnapResultProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface for an implementation which evaluates a list of given {@link yfiles.input.SnapLine}s for a node which is resized and - * adds a set of {@link yfiles.input.SnapResult}s for sizes to which this node can potentially snap. - * @interface - */ - export interface INodeReshapeSnapResultProvider extends Object{ - /** - * Called when a node's handle is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for - * {@link yfiles.input.OrthogonalSnapLine}s or sizes to which this node can potentially snap during resizing. - * @param {yfiles.input.GraphSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the context from and add the results to. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext Carries information about the reshape operation. - * @abstract - */ - collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext):void; - } - var INodeReshapeSnapResultProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Helper class that carries information about a reshape operation. - *

    - * This class is mainly intended for use by {@link yfiles.input.INodeReshapeSnapResultProvider#collectSnapResults}. - *

    - * @class yfiles.input.ReshapeRectangleContext - * @final - */ - export interface ReshapeRectangleContext extends Object{} - export class ReshapeRectangleContext { - /** - * Initializes a new instance of the {@link yfiles.input.ReshapeRectangleContext} class. - * @param {yfiles.geometry.Rect} initialBounds The initial bounds of the node. - * @param {yfiles.geometry.ISize} minimumSize The minimum size of the node. - * @param {yfiles.geometry.ISize} maximumSize The maximum size of the node. - * @param {yfiles.geometry.IRectangle} minimumEnclosedArea The minimum area the node's layout needs to encompass. - * @param {yfiles.input.HandlePositions} reshapePosition The position of the reshape handle. - * @param {yfiles.geometry.Point} topLeftChangeFactor The factor by which the top left corner of the node layout changes when the handle is dragged. - * @param {yfiles.geometry.Point} bottomRightChangeFactor The factor by which the bottom right corner of the node layout changes when the handle is dragged. - * @param {yfiles.geometry.Size} sizeChangeFactor The factor by which the size of the node layout changes when the handle is dragged. - * @constructor - */ - constructor(initialBounds:yfiles.geometry.Rect,minimumSize:yfiles.geometry.ISize,maximumSize:yfiles.geometry.ISize,minimumEnclosedArea:yfiles.geometry.IRectangle,reshapePosition:yfiles.input.HandlePositions,topLeftChangeFactor:yfiles.geometry.Point,bottomRightChangeFactor:yfiles.geometry.Point,sizeChangeFactor:yfiles.geometry.Size); - /** - * Gets the initial bounds of the node. - * @type {yfiles.geometry.Rect} - */ - initialBounds:yfiles.geometry.Rect; - /** - * Gets the minimum size of the node. - * @type {yfiles.geometry.ISize} - */ - minimumSize:yfiles.geometry.ISize; - /** - * Gets or sets the maximum size of the node. - * @type {yfiles.geometry.ISize} - */ - maximumSize:yfiles.geometry.ISize; - /** - * Gets minimum area the node's layout needs to encompass - * @type {yfiles.geometry.IRectangle} - */ - minimumEnclosedArea:yfiles.geometry.IRectangle; - /** - * Gets the position of the reshape handle. - * @type {yfiles.input.HandlePositions} - */ - reshapePosition:yfiles.input.HandlePositions; - /** - * Gets the factor by which the top left corner of the node layout changes when the handle is dragged. - * @type {yfiles.geometry.Point} - */ - topLeftChangeFactor:yfiles.geometry.Point; - /** - * Gets the factor by which the bottom right corner of the node layout changes when the handle is dragged. - * @type {yfiles.geometry.Point} - */ - bottomRightChangeFactor:yfiles.geometry.Point; - /** - * Gets the factor by which the size of the node layout changes when the handle is dragged. - * @type {yfiles.geometry.Size} - */ - sizeChangeFactor:yfiles.geometry.Size; - static $class:yfiles.lang.Class; - } - /** - * An interface for possible {@link yfiles.graph.IPort} candidates used by {@link yfiles.input.IPortCandidateProvider} and the like. - *

    - * Note that if an instance's {@link yfiles.input.IPortCandidate#validity} property is {@link yfiles.input.PortCandidateValidity#DYNAMIC} this instance {@link yfiles.input.IPortCandidate#getPortCandidateAt} - * method serves as a factory for the actual candidates. - *

    - * @see yfiles.input.IEdgeReconnectionPortCandidateProvider - * @see yfiles.input.IPortCandidateProvider - * @see yfiles.input.DefaultPortCandidate - * @interface - */ - export interface IPortCandidate extends Object{ - /** - * If the client decides to use this port candidate, this method will serve as a factory to create the instance. - *

    - * If this candidate wraps an existing port, it may return that {@link yfiles.input.IPortCandidate#port instance}. If this instance's {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC} - * this method may throw an {@link Stubs.Exceptions.NotSupportedError}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context for which the port will be created. Implementations can depend on it providing an {@link yfiles.graph.IGraph} - * instance in the lookup of the instance. - * @returns {yfiles.graph.IPort} The port instance to use if this candidate has been chosen. This method may not return null. - * @throws {Stubs.Exceptions.NotSupportedError} If the {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. - * @see yfiles.input.IInputModeContext#graph - * @see yfiles.input.IPortCandidate#port - * @see yfiles.input.IPortCandidate#getPortCandidateAt - * @abstract - */ - createPort(context:yfiles.input.IInputModeContext):yfiles.graph.IPort; - /** - * Returns a candidate that is derived from this instance that best fits the provided location. - *

    - * This method needs to be called by clients if the {@link yfiles.input.IPortCandidate#validity} of this instance is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. In - * that case calling this method must return an instance whose validity is not {@link yfiles.input.PortCandidateValidity#DYNAMIC}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context for which a concrete candidate is queried. - * @param {yfiles.geometry.Point} location The location for which a candidate should be returned. - * @returns {yfiles.input.IPortCandidate} A {@link yfiles.input.IPortCandidate} implementation whose {@link yfiles.input.IPortCandidate#validity} is guaranteed to be non-{@link yfiles.input.PortCandidateValidity#DYNAMIC}. - * @see yfiles.input.IPortCandidate#validity - * @abstract - */ - getPortCandidateAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; - /** - * Possibly yields a user defined tag for this candidate. - *

    - * The interpretation of this value is implementation dependent and may be used for visual feedback or interactive - * behavior. - *

    - * @abstract - * @type {Object} - */ - candidateTag:Object; - /** - * Determines whether this instance is a valid port candidate. - *

    - * Implementations of {@link yfiles.input.IPortCandidateProvider} may return sets of port candidates where some of them are marked - * as invalid e.g. in order to provide visual feedback. If the value is {@link yfiles.input.PortCandidateValidity#DYNAMIC}, method - * {@link yfiles.input.IPortCandidate#getPortCandidateAt} needs to be used to determine a concrete candidate instance. - *

    - * @see yfiles.input.IPortCandidate#getPortCandidateAt - * @abstract - * @type {yfiles.input.PortCandidateValidity} - */ - validity:yfiles.input.PortCandidateValidity; - /** - * Returns the model parameter that will be used for the {@link yfiles.graph.IPort#locationParameter} if this candidate is chosen. - *

    - * Note that the value of this property is undefined if this instance's {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. In - * this case, the parameter needs to be obtained via the {@link yfiles.input.IPortCandidate#getPortCandidateAt} instance. - *

    - * @abstract - * @type {yfiles.graph.IPortLocationModelParameter} - */ - locationParameter:yfiles.graph.IPortLocationModelParameter; - /** - * Returns the possible owner of the port to be created for this candidate. - * @abstract - * @type {yfiles.graph.IPortOwner} - */ - owner:yfiles.graph.IPortOwner; - /** - * Gets the port instance that is already live in the graph if this candidate wraps an existing port or null otherwise. - * @see yfiles.input.IPortCandidate#createPort - * @abstract - * @type {yfiles.graph.IPort} - */ - port:yfiles.graph.IPort; - } - var IPortCandidate:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - export enum PortCandidateValidity{ - /** - * The candidate is valid and can be used to connect an edge to. - */ - VALID, - /** - * The candidate should not be used to connect an edge to. - */ - INVALID, - /** - * The candidate cannot be used to create a port, instead {@link yfiles.input.IPortCandidate#getPortCandidateAt} needs to be called - * to obtain a {@link yfiles.input.IPortCandidate} that is either {@link yfiles.input.PortCandidateValidity#VALID} or - * {@link yfiles.input.PortCandidateValidity#INVALID}. - */ - DYNAMIC - } - /** - * This interface is used to provide {@link yfiles.input.IPortCandidate}s for a specific {@link yfiles.graph.IPortOwner}. - *

    - * It is used in the context of the items that will later become the owner ({@link yfiles.graph.IPortOwner}) of the ports obtained - * from the candidates. They are mainly used during edge creation where there is no real edge yet (only the dummy edge) and - * thus they need to use the opposite {@link yfiles.input.IPortCandidate} to understand the context. - *

    - *

    - * Implementations of this interface may be queried using the {@link yfiles.graph.ILookup#lookup} method of {@link yfiles.graph.IPortOwner} - * implementations like {@link yfiles.graph.INode}. - *

    - *

    - * Note that this interface is similar to the interface {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} in the sense - * that they will both provide {@link yfiles.input.IPortCandidate} instances in a certain query context. They are used in different - * query contexts, though. The two interfaces can come together in concrete implementations of - * {@link yfiles.input.IEdgeReconnectionPortCandidateProvider}: an edge could potentially be connected to ports at any given {@link yfiles.graph.IPortOwner} - * and thus the {@link yfiles.input.IPortCandidateProvider} interface can be queried from the respective {@link yfiles.graph.IPortOwner} - * that the edge will be reconnected to. - *

    - *

    Related demos:

    - *
      - *
    • Demo: PortCandidateProvider, demo.yfiles.input.portcandidateprovider
    • - *
    - * @see yfiles.graph.NodeDecorator#portCandidateProviderDecorator - * @interface - */ - export interface IPortCandidateProvider extends Object{ - /** - * Returns all port candidates that apply for the provided opposite port candidate. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IPortCandidate} target The opposite port candidate. - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all port candidates that are associated with the given opposite port. - * @abstract - */ - getSourcePortCandidates(context:yfiles.input.IInputModeContext,target:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; - /** - * Returns all source port candidates that belong to the context of this provider. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all source port candidates that are associated with the current context. - * @abstract - */ - getSourcePortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; - /** - * Returns all port candidates that apply for the provided opposite port candidate. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @param {yfiles.input.IPortCandidate} source The opposite port candidate. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all port candidates that are associated with the given opposite port. - * @abstract - */ - getTargetPortCandidates(context:yfiles.input.IInputModeContext,source:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; - /** - * Returns all target port candidates that belong to the context of this provider. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all target port candidates that are associated with the current context. - * @abstract - */ - getTargetPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; - } - var IPortCandidateProvider:{ - /** - * Creates a generic composite implementation for the {@link yfiles.input.IPortCandidateProvider} interface. - * @param {yfiles.collections.IEnumerable.} providers The providers to create the composite from. - * @returns {yfiles.input.IPortCandidateProvider} - * @static - */ - combine?(providers:yfiles.collections.IEnumerable):yfiles.input.IPortCandidateProvider; - /** - * Creates an implementation of an {@link yfiles.input.IPortCandidateProvider} that provides only the given port candidates. - * @param {...yfiles.input.IPortCandidate} candidates The port candidates the provider should provide. - * @returns {yfiles.input.PortCandidateProviderBase} A new {@link yfiles.input.IPortCandidateProvider}. - * @static - */ - fromCandidates?(...candidates:yfiles.input.IPortCandidate[]):yfiles.input.PortCandidateProviderBase; - /** - * Creates an implementation of an {@link yfiles.input.IPortCandidateProvider} that provides only the given port candidates. - * @param {yfiles.collections.IEnumerable.} candidates The port candidates the provider should provide. - * @returns {yfiles.input.PortCandidateProviderBase} A new {@link yfiles.input.IPortCandidateProvider}. - * @static - */ - fromCandidates?(candidates:yfiles.collections.IEnumerable):yfiles.input.PortCandidateProviderBase; - /** - * Creates an implementation of the {@link yfiles.input.IPortCandidateProvider} interface that returns the ports that exist in the - * given {@link yfiles.graph.IPortOwner#ports}'s {@link yfiles.graph.IPortOwner} collection. - * @param {yfiles.graph.IPortOwner} owner The owner of the port collection. - * @returns {yfiles.input.IPortCandidateProvider} - * @static - */ - fromExistingPorts?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; - /** - * Creates a trivial implementation of an {@link yfiles.input.IPortCandidateProvider} that always returns exactly one candidate - * that is centered at the node's {@link yfiles.graph.INode#layout}. - * @param {yfiles.graph.INode} node The node to get the layout's center from. - * @returns {yfiles.input.PortCandidateProviderBase} - * @static - */ - fromNodeCenter?(node:yfiles.graph.INode):yfiles.input.PortCandidateProviderBase; - /** - * Creates a simple implementation of an {@link yfiles.input.IPortCandidateProvider} that always returns a candidate that uses the - * default {@link yfiles.graph.IPortDefaults#locationParameter} for the corresponding {@link yfiles.graph.IPortDefaults}. - * @param {yfiles.graph.IPortOwner} owner - * @returns {yfiles.input.IPortCandidateProvider} - * @static - */ - fromPortDefaults?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; - /** - * Creates an implementation of {@link yfiles.input.IPortCandidateProvider} that works for {@link yfiles.graph.IPortOwner} implementations - * that have {@link yfiles.styles.IShapeGeometry} instances in their lookup. - * @param {yfiles.graph.IPortOwner} owner The owner to receive the shape geometry from - * @param {number} minimumSegmentLength the minimum length a segment needs to have in order to be used to add port candidates. - * @param {...number} ratios A number of double values that are interpreted as ratio values between 0.0 and 1.0. If none are given, the provider - * inserts a port candidate at the center of each straight line segment. - * @param {boolean} addExistingPortsEnabled determines whether {@link yfiles.input.PortCandidateProviderBase#addExistingPorts existing ports should be added to the list of ports}. - * @returns {yfiles.input.PortCandidateProviderBase} - * @static - */ - fromShapeGeometry?(owner:yfiles.graph.IPortOwner,addExistingPortsEnabled:boolean,minimumSegmentLength:number,...ratios:number[]):yfiles.input.PortCandidateProviderBase; - /** - * Creates an implementation of {@link yfiles.input.IPortCandidateProvider} that works for {@link yfiles.graph.IPortOwner} implementations - * that have {@link yfiles.styles.IShapeGeometry} instances in their lookup. - * @param {yfiles.graph.IPortOwner} owner The owner to receive the shape geometry from - * @param {...number} ratios A number of double values that are interpreted as ratio values between 0.0 and 1.0. If none are given, the provider - * inserts a port candidate at the center of each straight line segment. - * @returns {yfiles.input.PortCandidateProviderBase} - * @static - */ - fromShapeGeometry?(owner:yfiles.graph.IPortOwner,...ratios:number[]):yfiles.input.PortCandidateProviderBase; - /** - * Creates a simple implementation of an {@link yfiles.input.IPortCandidateProvider} that returns unoccupied ports at a given - * entity. - * @param {yfiles.graph.IPortOwner} owner The owner to query the ports from. - * @returns {yfiles.input.IPortCandidateProvider} - * @static - */ - fromUnoccupiedPorts?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; - /** - * A generic implementation of the {@link yfiles.input.IPortCandidateProvider} interface that provides no candidates. - * @const - * @static - * @type {yfiles.input.IPortCandidateProvider} - */ - NO_CANDIDATES?:yfiles.input.IPortCandidateProvider; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This interface can be used to query {@link yfiles.input.IPortCandidate}s for a specific existing {@link yfiles.graph.IEdge} - *

    - * As the name implies this is only used in the context of reconnecting existing edges. It is queried for existing edges to - * find out about possible alternative port candidates that given edge could connect to. It is used during gestures where - * an edge is reconnected to another port(candidate), i.e. when the source or target port handle of an edge is moved and - * the source or target port properties of the edge get set to the new {@link yfiles.input.IPortCandidate}s. - *

    - *

    - * Implementations of this interface can be queried using the {@link yfiles.graph.ILookup#lookup} method of an {@link yfiles.graph.IEdge} - * implementation. This interface provides alternative candidates for the {@link yfiles.graph.IEdge#sourcePort} or {@link yfiles.graph.IEdge#targetPort} of an edge. - *

    - *

    - * Note that this interface is similar to the interface {@link yfiles.input.IPortCandidateProvider} in the sense that they will - * both provide {@link yfiles.input.IPortCandidate} instances in a certain query context. They are used in different query - * contexts, though. The two interfaces can come together in concrete implementations of - * {@link yfiles.input.IEdgeReconnectionPortCandidateProvider}: an edge could potentially be connected to ports at any given {@link yfiles.graph.IPortOwner} - * and thus the {@link yfiles.input.IPortCandidateProvider} interface can be queried from the respective {@link yfiles.graph.IPortOwner} - * that the edge will be reconnected to. - *

    - *

    Related demos:

    - *
      - *
    • Demo: EdgePortCandidateProvider, demo.yfiles.input.edgeportcandidateprovider
    • - *
    - * @interface - */ - export interface IEdgeReconnectionPortCandidateProvider extends Object{ - /** - * Returns all source port candidates that may be used for the edge. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all source port candidates that are associated with the current context edge. - * @abstract - */ - getSourcePortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; - /** - * Returns all source port candidates that may be used for the edge. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all target port candidates that are associated with the current context edge. - * @abstract - */ - getTargetPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; - } - var IEdgeReconnectionPortCandidateProvider:{ - /** - * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns the - * candidates provided by the source and target port's owner's {@link yfiles.input.IPortCandidateProvider} implementations or the - * existing edge's port, if no such provider is registered. - *

    - * This instance uses the lookup mechanism of the nodes to query the providers. - *

    - * @param {yfiles.graph.IEdge} edge - * @returns {yfiles.input.IEdgeReconnectionPortCandidateProvider} - * @static - */ - fromSourceAndTarget?(edge:yfiles.graph.IEdge):yfiles.input.IEdgeReconnectionPortCandidateProvider; - /** - * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns a union of - * all {@link yfiles.input.IPortCandidateProvider#getSourcePortCandidates source port candidates} or {@link yfiles.input.IPortCandidateProvider#getTargetPortCandidates target port candidates}, respectively, of nodes in the graph. - *

    - * This implementation can be used to allow for {@link yfiles.input.PortRelocationHandle relocating an edge's port} to any available source or target port in the - * graph. + * Meta maps to the Windows key on Windows platforms and the Command key on Mac. *

    * @const * @static - * @type {yfiles.input.IEdgeReconnectionPortCandidateProvider} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - ALL_NODE_CANDIDATES?:yfiles.input.IEdgeReconnectionPortCandidateProvider; + static META_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns a union of - * all {@link yfiles.input.IPortCandidateProvider#getSourcePortCandidates source port candidates} or {@link yfiles.input.IPortCandidateProvider#getTargetPortCandidates target port candidates}, respectively, of nodse and edges in the graph. + * An event recognizer that recognizes when the shift modifier is being pressed. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static SHIFT_DOWN:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that recognizes when the shift modifier is being released. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static SHIFT_UP:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that recognizes when the ctrl modifier is being pressed. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static CTRL_DOWN:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that recognizes when the Ctrl modifier is being released. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static CTRL_UP:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static $class:yfiles.lang.Class; + } + /** + * A utility class that offers event recognizers that deal with {@link yfiles.view.MouseEventArgs}. + * @class + * @static + */ + export interface MouseEventRecognizers extends Object{} + export class MouseEventRecognizers { + /** + * An event recognizer that identifies mouse movements that are not drags. + * @see yfiles.input.MouseEventRecognizers#DRAGGED + * @see yfiles.input.MouseEventRecognizers#MOVED_OR_DRAGGED + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MOVED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouse movements. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MOVED_OR_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mousedown events. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouseup events. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouse input capture lost events. *

    - * This implementation can be used to allow for {@link yfiles.input.PortRelocationHandle relocating an edge's port} to any available source or target port in the - * graph. + * This event will occur often, especially after all mouse buttons have been released. More relevant for + * {@link yfiles.input.IInputMode}s is the {@link yfiles.input.MouseEventRecognizers#LOST_CAPTURE_DURING_DRAG} event recognizer. *

    * @const * @static - * @type {yfiles.input.IEdgeReconnectionPortCandidateProvider} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - ALL_NODE_AND_EDGE_CANDIDATES?:yfiles.input.IEdgeReconnectionPortCandidateProvider; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that can be used to find ports at specific locations in the canvas. - *

    - * This interface is mostly provided through the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IPortOwner} implementations - * such as {@link yfiles.graph.INode}. - *

    - * @interface - */ - export interface IPortSelectionTester extends Object{ + static LOST_CAPTURE:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Returns the port at the given world coordinate position or null if there is no such port. - * @param {yfiles.input.IInputModeContext} context The input mode context to use for querying the position. - * @param {yfiles.geometry.Point} location The coordinates of the position in the world coordinate system. - * @returns {yfiles.graph.IPort} The port at the position or null. - * @abstract + * An event recognizer that identifies mouse input capture lost events while at least one mouse button was pressed. + *

    + * Since the mouse capture has been lost, the necessary {@link yfiles.view.MouseEventTypes#UP} events will never be triggered. This + * recognizer is useful for identifying this situation. + *

    + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - getHitPort(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.graph.IPort; + static LOST_CAPTURE_DURING_DRAG:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Returns the ports for the given marquee rectangle. - * @param {yfiles.input.IInputModeContext} context The input mode context to use for querying the position. - * @param {yfiles.geometry.Rect} rectangle The marquee selection box in the world coordinate system. - * @returns {yfiles.collections.IEnumerable.} An enumerable over the ports inside the marquee selection box. - * @abstract + * An event recognizer that identifies left mouse button clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - getPortsInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + static LEFT_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies button clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies button multi-clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MULTI_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies right mouse button clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RIGHT_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies middle mouse button clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MIDDLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies left mouse button double clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LEFT_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies right mouse button double clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RIGHT_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies middle mouse button double clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MIDDLE_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mousedown events of left mouse button. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LEFT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouseup events of left mouse button. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LEFT_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mousedown events of right mouse button. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RIGHT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouseup events of right mouse button. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RIGHT_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouse drag events. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies left mouse button drags. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LEFT_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the has left the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static EXITED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the mouse has entered the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static ENTERED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies right mouse button drags. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RIGHT_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies middle mouse button drags. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MIDDLE_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static $class:yfiles.lang.Class; } - var IPortSelectionTester:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; /** - * Interface for implementations that yield insets for a given {@link yfiles.graph.INode}. - *

    - * Implementations of this interface will be queried from an {@link yfiles.graph.INode}'s {@link yfiles.graph.ILookup#lookup} method. The - * default implementation of a graph uses this instance by default to determine the insets of a group node. - *

    - * @interface + * A utility class that offers event recognizers that deal with {@link yfiles.view.TouchEventArgs}. + * @class + * @static */ - export interface INodeInsetsProvider extends Object{ + export interface TouchEventRecognizers extends Object{} + export class TouchEventRecognizers { /** - * Returns the insets for the given node. - * @param {yfiles.graph.INode} node The node to yield insets for. - * @returns {yfiles.geometry.Insets} The insets for the node. - * @abstract + * An event recognizer that identifies touch movements of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - getInsets(node:yfiles.graph.INode):yfiles.geometry.Insets; + static TOUCH_MOVED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies the loss of touch capture for the any device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LOST_CAPTURE:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies the loss of touch capture for the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LOST_CAPTURE_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies the loss of touch capture for the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LOST_CAPTURE_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch movements of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_DOWN_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch movements of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_UP_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch taps of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch double-taps of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_DOUBLE_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch multi-taps of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_MULTI_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the primary device has left the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_EXITED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the primary device has entered the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_ENTERED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies long presses of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_LONG_PRESSED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch movements of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_MOVED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch movements of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_DOWN_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch movements of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_UP_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch taps of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch double-taps of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_DOUBLE_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch multi-taps of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_MULTI_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the secondary device has left the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_EXITED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the secondary device has entered the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_ENTERED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies long presses of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_LONG_PRESSED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static $class:yfiles.lang.Class; } - var INodeInsetsProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; /** * An {@link yfiles.input.IInputMode} used for recognizing the gesture of creating {@link yfiles.graph.IBend}s in an {@link yfiles.graph.IGraph}. *

    @@ -35778,7 +35823,7 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.CreateBendInputMode#exclusive} by default. *

    - * @class yfiles.input.CreateBendInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface CreateBendInputMode extends Object,yfiles.input.IInputMode{} @@ -35786,7 +35831,6 @@ declare namespace system{ /** * Creates a new instance that will use the {@link yfiles.graph.IGraph} from the {@link yfiles.input.CreateBendInputMode#inputModeContext} to create bends in. * @see yfiles.input.CreateBendInputMode#graph - * @constructor */ constructor(); /** @@ -35812,9 +35856,9 @@ declare namespace system{ * The bend is created using the hit edge's {@link yfiles.input.IBendCreator} implementation, as obtained from the edge's * {@link yfiles.graph.ILookup#lookup}. *

    - * @param {yfiles.graph.IEdge} edge The hit edge. - * @param {yfiles.geometry.Point} location The coordinates of the hit. - * @returns {yfiles.graph.IBend} The created bend or null. + * @param edge The hit edge. + * @param location The coordinates of the hit. + * @returns The created bend or null. * @see yfiles.input.CreateBendInputMode#createInputModeContext * @protected */ @@ -35822,7 +35866,7 @@ declare namespace system{ /** * Creates an {@link yfiles.input.IInputModeContext} for use with the upcoming {@link yfiles.input.IBendCreator#createBend} call in * {@link yfiles.input.CreateBendInputMode#createBend}. - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext}. + * @returns An instance of {@link }. * @protected */ createInputModeContext():yfiles.input.IInputModeContext; @@ -35840,15 +35884,15 @@ declare namespace system{ * This method triggers the {@link yfiles.input.CreateBendInputMode#addBendCreatedListener BendCreated} event * if a bend is created. *

    - * @param {yfiles.graph.IEdge} edge The edge to create a bend for. - * @param {yfiles.geometry.Point} dragLocation The location at which the user initiated the gesture. + * @param edge The edge to create a bend for. + * @param dragLocation The location at which the user initiated the gesture. * @protected */ dragSegment(edge:yfiles.graph.IEdge,dragLocation:yfiles.geometry.Point):void; /** * Finds the edge at the given coordinate. - * @param {yfiles.geometry.Point} location The coordinates. - * @returns {yfiles.graph.IEdge} The edge that has been hit. + * @param location The coordinates. + * @returns The edge that has been hit. * @protected */ getEdge(location:yfiles.geometry.Point):yfiles.graph.IEdge; @@ -35864,24 +35908,24 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.CreateBendInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** * Determines whether the current location is valid to begin a bend creation gesture. - * @param {Object} source - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param source + * @param evt + * @returns * @protected */ isValidBegin(source:Object,evt:yfiles.lang.EventArgs):boolean; /** * Triggers the {@link yfiles.input.CreateBendInputMode#addBendCreatedListener BendCreated} event. - * @param {yfiles.graph.BendEventArgs} evt + * @param evt * @protected */ onBendCreated(evt:yfiles.graph.BendEventArgs):void; @@ -35920,7 +35964,7 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Triggers the {@link yfiles.input.CreateBendInputMode#addDragCanceledListener DragCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.InputModeEventArgs):void; @@ -35929,7 +35973,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.CreateBendInputMode#addDraggedListener Dragged} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.InputModeEventArgs):void; @@ -35938,7 +35982,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.CreateBendInputMode#addDraggingListener Dragging} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.InputModeEventArgs):void; @@ -35955,7 +35999,7 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -35967,7 +36011,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -36010,13 +36054,13 @@ declare namespace system{ controller:yfiles.input.ConcurrencyController; /** * Adds the given listener for the BendCreated event that occurs once a bend creation gesture has been recognized. - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateBendInputMode#removeBendCreatedListener */ addBendCreatedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; /** * Removes the given listener for the BendCreated event that occurs once a bend creation gesture has been recognized. - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateBendInputMode#addBendCreatedListener */ removeBendCreatedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; @@ -36093,37 +36137,37 @@ declare namespace system{ graph:yfiles.graph.IGraph; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateBendInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateBendInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateBendInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateBendInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateBendInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateBendInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -36163,7 +36207,7 @@ declare namespace system{ * after the behavior used by {@link yfiles.input.GraphEditorInputMode}'s {@link yfiles.input.GraphEditorInputMode#createLabel} and * {@link yfiles.input.GraphEditorInputMode#editLabel}. *

    - * @class yfiles.input.EditLabelHelper + * @class * @implements {yfiles.input.IEditLabelHelper} */ export interface EditLabelHelper extends Object,yfiles.input.IEditLabelHelper{} @@ -36173,9 +36217,9 @@ declare namespace system{ *

    * This method will obtain the default parameter instances from the {@link yfiles.input.EditLabelHelper#graph} considering the type of the current owner. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.graph.ILabelOwner} owner The label's owner. - * @returns {yfiles.graph.ILabelModelParameter} The layout parameter to use or null. + * @param context The input mode context. + * @param owner The label's owner. + * @returns The layout parameter to use or null. * @protected */ getLabelParameter(context:yfiles.input.IInputModeContext,owner:yfiles.graph.ILabelOwner):yfiles.graph.ILabelModelParameter; @@ -36184,9 +36228,9 @@ declare namespace system{ *

    * This method will obtain the default style instances from the {@link yfiles.input.EditLabelHelper#graph} considering the type of the current owner. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.graph.ILabelOwner} owner The label's owner. - * @returns {yfiles.styles.ILabelStyle} The style to use or null. + * @param context The input mode context. + * @param owner The label's owner. + * @returns The style to use or null. * @protected */ getLabelStyle(context:yfiles.input.IInputModeContext,owner:yfiles.graph.ILabelOwner):yfiles.styles.ILabelStyle; @@ -36196,9 +36240,9 @@ declare namespace system{ * This implementation yields null to indicate that the preferred size should be calculated after the text has been * entered. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.graph.ILabel} label The label to get the preferred size from. - * @returns {yfiles.geometry.Size} The size to use or null. + * @param context The input mode context. + * @param label The label to get the preferred size from. + * @returns The size to use or null. * @protected */ getPreferredSize(context:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):yfiles.geometry.Size; @@ -36209,7 +36253,7 @@ declare namespace system{ * {@link yfiles.input.EditLabelHelper#getPreferredSize} to set the appropriate properties on args and sets the {@link yfiles.input.LabelEditingEventArgs#handled} property to * true. Label creation thus is always possible. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The original event arguments. + * @param evt The original event arguments. */ onLabelAdding(evt:yfiles.input.LabelEditingEventArgs):void; /** @@ -36222,7 +36266,7 @@ declare namespace system{ *

    * The arguments are always set as {@link yfiles.input.LabelEditingEventArgs#handled}, so label editing is always possible. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The original event arguments. + * @param evt The original event arguments. */ onLabelEditing(evt:yfiles.input.LabelEditingEventArgs):void; /** @@ -36249,7 +36293,7 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.CreateEdgeInputMode#exclusive} by default. *

    - * @class yfiles.input.CreateEdgeInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface CreateEdgeInputMode extends Object,yfiles.input.IInputMode{} @@ -36260,7 +36304,6 @@ declare namespace system{ * Setting the {@link yfiles.input.CreateEdgeInputMode#graph} property can be used to optionally set a different graph to work on. *

    * @see yfiles.input.CreateEdgeInputMode#graph - * @constructor */ constructor(); /** @@ -36274,7 +36317,7 @@ declare namespace system{ cancel():void; /** * Creates the dummy edge that will be displayed by the input mode during the creation. - * @returns {yfiles.graph.IEdge} An {@link yfiles.graph.IEdge} implementation that can be used as a dummy. + * @returns An {@link } implementation that can be used as a dummy. * @protected */ createDummyEdge():yfiles.graph.IEdge; @@ -36284,7 +36327,7 @@ declare namespace system{ * Note that the instance returned by this instance must accept any port as valid source and target ports for it's {@link yfiles.graph.IGraph#setEdgePorts} * method. This will allow the preview edge to be connected to the actual {@link yfiles.input.CreateEdgeInputMode#graph}. *

    - * @returns {yfiles.graph.IGraph} A graph instance that will be rendered as a preview. + * @returns A graph instance that will be rendered as a preview. * @protected */ createDummyEdgeGraph():yfiles.graph.IGraph; @@ -36296,10 +36339,10 @@ declare namespace system{ * events are triggered. If the edge creation is canceled by the creator callback, newly created ports will be removed * again. *

    - * @param {yfiles.graph.IGraph} graph The graph to create the edge for. - * @param {yfiles.input.IPortCandidate} sourcePortCandidate The candidate to use for the source. - * @param {yfiles.input.IPortCandidate} targetPortCandidate The candidate to use for the target. - * @returns {yfiles.graph.IEdge} The edge created or null. + * @param graph The graph to create the edge for. + * @param sourcePortCandidate The candidate to use for the source. + * @param targetPortCandidate The candidate to use for the target. + * @returns The edge created or null. * @protected */ createEdge(graph:yfiles.graph.IGraph,sourcePortCandidate:yfiles.input.IPortCandidate,targetPortCandidate:yfiles.input.IPortCandidate):yfiles.graph.IEdge; @@ -36309,14 +36352,14 @@ declare namespace system{ * This method will actually create the edge using the {@link yfiles.input.CreateEdgeInputMode#createEdge} method. This method will * ultimately call {@link yfiles.input.CreateEdgeInputMode#onEdgeCreated}. *

    - * @returns {yfiles.graph.IEdge} The edge created or null. + * @returns The edge created or null. * @protected */ createEdge():yfiles.graph.IEdge; /** * Creates an {@link yfiles.input.IInputModeContext} for use with the port candidates queries for the upcoming edge creation * operation and the actual edge creation - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext} that is configured for this mode. + * @returns An instance of {@link } that is configured for this mode. * @protected */ createEdgeCreationInputModeContext():yfiles.input.IInputModeContext; @@ -36325,41 +36368,41 @@ declare namespace system{ * port. *

    * This instance needs to be {@link yfiles.input.IInputMode#install installed} and {@link yfiles.input.CreateEdgeInputMode#enabled} and it needs to be able to {@link yfiles.input.ConcurrencyController#canRequestMutex request the input mutex} in order to proceed. If any - * of these conditions are not satisfied, this method will throw an {@link Stubs.Exceptions.InvalidOperationError}. + * of these conditions are not satisfied, this method will throw an {@link yfiles.lang.Exception}. *

    - * @param {yfiles.input.IPortCandidate} sourcePortCandidate The source port candidate to use for the edge creation. + * @param sourcePortCandidate The source port candidate to use for the edge creation. */ doStartEdgeCreation(sourcePortCandidate:yfiles.input.IPortCandidate):void; /** * Finds the closest {@link yfiles.input.PortCandidateValidity#VALID} candidate given a number of * {@link yfiles.input.IPortCandidate}s and a location in world coordinates. - * @param {yfiles.collections.IEnumerable.} candidates The candidates to find the closest from. - * @param {yfiles.geometry.Point} location The location of the mouse in world coordinates. - * @returns {yfiles.input.IPortCandidate} The candidate to use or null if no candidate satisfies the needs + * @param candidates The candidates to find the closest from. + * @param location The location of the mouse in world coordinates. + * @returns The candidate to use or null if no candidate satisfies the needs * @protected */ getClosestCandidate(candidates:yfiles.collections.IEnumerable,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; /** * Finds the closest candidate given a number of {@link yfiles.input.IPortCandidate}s and a location in world coordinates. - * @param {yfiles.collections.IEnumerable.} candidates The candidates to find the closest from. - * @param {yfiles.geometry.Point} location The location of the pointer in world coordinates. - * @returns {yfiles.input.IPortCandidate} The candidate to use or null if no candidate satisfies the needs + * @param candidates The candidates to find the closest from. + * @param location The location of the pointer in world coordinates. + * @returns The candidate to use or null if no candidate satisfies the needs * @protected */ getClosestSourceCandidate(candidates:yfiles.collections.IEnumerable,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; /** * Finds the closest target candidate given a number of {@link yfiles.input.IPortCandidate}s and a location in world coordinates. - * @param {yfiles.collections.IEnumerable.} candidates The candidates to find the closest from. - * @param {yfiles.geometry.Point} location The location of the mouse in world coordinates. - * @returns {yfiles.input.IPortCandidate} The candidate to use or null if no candidate satisfies the needs or {@link yfiles.input.CreateEdgeInputMode#enforceBendCreationRecognizer} yields true. + * @param candidates The candidates to find the closest from. + * @param location The location of the mouse in world coordinates. + * @returns The candidate to use or null if no candidate satisfies the needs or {@link #enforceBendCreationRecognizer} yields true. * @protected */ getClosestTargetCandidate(candidates:yfiles.collections.IEnumerable,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; /** * Gets the snap lines lines that are induced by the current dummy edge. - * @param {yfiles.input.GraphSnapContext} context The graph snap context. - * @param {yfiles.input.ISnapLineProvider} provider The dummy edge segment snap line provider. - * @returns {yfiles.collections.IEnumerable.} The snap lines induced by the current dummy edge. + * @param context The graph snap context. + * @param provider The dummy edge segment snap line provider. + * @returns The snap lines induced by the current dummy edge. * @protected */ getDummyEdgeSnapLines(context:yfiles.input.GraphSnapContext,provider:yfiles.input.ISnapLineProvider):yfiles.collections.IEnumerable; @@ -36370,7 +36413,7 @@ declare namespace system{ * point the way the user dragged the mouse. An edge starting in the inner of the node will be directed the way dragged * unless another edge that is close to the new edge ({@link yfiles.input.CreateEdgeInputMode#preferredMinimalEdgeDistance}) already went that way. *

    - * @returns {yfiles.input.EdgeSegmentDirection} A {@link yfiles.input.EdgeSegmentDirection} defining the direction of the first edge segment. + * @returns A {@link } defining the direction of the first edge segment. * @protected */ getFirstSegmentDirection():yfiles.input.EdgeSegmentDirection; @@ -36381,10 +36424,10 @@ declare namespace system{ * *
    * Otherwise this implementation calls the {@link yfiles.styles.INodeStyleRenderer#getHitTestable} method of the nodes to find hit - * nodes and uses the {@link system.collections.Comparer} to determine the first hit node. + * nodes and uses an {@link yfiles.collections.IComparer.} to determine the first hit node. *

    - * @param {yfiles.geometry.Point} location The position in world coordinates. - * @returns {yfiles.graph.IPortOwner} The node or null if no suitable node was found. + * @param location The position in world coordinates. + * @returns The node or null if no suitable node was found. * @protected */ getPortOwner(location:yfiles.geometry.Point):yfiles.graph.IPortOwner; @@ -36394,7 +36437,7 @@ declare namespace system{ * This implementation only considers nodes in the graph unless {@link yfiles.input.CreateEdgeInputMode#allowEdgeToEdgeConnections} is set to * true, in which case edges are also added to the enumerable. *

    - * @returns {yfiles.collections.IEnumerable.} An enumerable over all {@link yfiles.graph.IPortOwner}s in this graph + * @returns An enumerable over all {@link }s in this graph * @protected */ getPortOwners():yfiles.collections.IEnumerable; @@ -36405,8 +36448,8 @@ declare namespace system{ *
    * This default implementation simply delegates to {@link yfiles.input.CreateEdgeInputMode#getPortOwner}. *

    - * @param {yfiles.geometry.Point} sourceLocation The location of the mouse at the beginning of the gesture. - * @returns {yfiles.graph.IPortOwner} The port owner to use for the source node or null. + * @param sourceLocation The location of the mouse at the beginning of the gesture. + * @returns The port owner to use for the source node or null. * @protected */ getSource(sourceLocation:yfiles.geometry.Point):yfiles.graph.IPortOwner; @@ -36416,11 +36459,11 @@ declare namespace system{ * The resolveCandidates parameter determines whether dynamic port candidates should be {@link yfiles.input.CreateEdgeInputMode#resolveCandidates resolved} with respect to location * or simply be discarded. *

    - * @param {yfiles.input.IPortCandidateProvider} provider The provider for the candidates. - * @param {yfiles.geometry.Point} location The location where the gesture was initiated. - * @param {boolean} resolveCandidates Determines whether {@link yfiles.input.PortCandidateValidity#DYNAMIC} ports should be resolved with respect to the location or + * @param provider The provider for the candidates. + * @param location The location where the gesture was initiated. + * @param resolveCandidates Determines whether {@link #DYNAMIC} ports should be resolved with respect to the location or * not. - * @returns {yfiles.input.IPortCandidate} The candidate to use or null. + * @returns The candidate to use or null. * @see yfiles.input.CreateEdgeInputMode#resolveSourcePortCandidates * @see yfiles.input.CreateEdgeInputMode#portCandidateResolutionRecognizer * @protected @@ -36432,8 +36475,8 @@ declare namespace system{ * This implementation will use the {@link yfiles.input.CreateEdgeInputMode#getSource port owner} to look up the {@link yfiles.input.IPortCandidateProvider port candidate provider} and finally delegate to * {@link yfiles.input.CreateEdgeInputMode#getSourcePortCandidate}. *

    - * @param {yfiles.geometry.Point} location The location where the gesture was initiated. - * @returns {yfiles.input.IPortCandidate} + * @param location The location where the gesture was initiated. + * @returns * @see yfiles.input.CreateEdgeInputMode#getSource * @see yfiles.input.CreateEdgeInputMode#getSourcePortCandidateProvider * @see yfiles.input.CreateEdgeInputMode#getSourcePortCandidate @@ -36446,8 +36489,8 @@ declare namespace system{ * This implementations uses the sourceOwner's {@link yfiles.graph.ILookup#lookup} to retrieve an {@link yfiles.input.IPortCandidateProvider} * implementation. *

    - * @param {yfiles.graph.IPortOwner} sourceOwner The {@link yfiles.graph.IPortOwner} to find the candidates for. - * @returns {yfiles.input.IPortCandidateProvider} A provider instance or null. + * @param sourceOwner The {@link } to find the candidates for. + * @returns A provider instance or null. * @protected */ getSourcePortCandidateProvider(sourceOwner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; @@ -36458,8 +36501,8 @@ declare namespace system{ *
    * This default implementation simply delegates to {@link yfiles.input.CreateEdgeInputMode#getPortOwner}. *

    - * @param {yfiles.geometry.Point} targetLocation The location of the pointer at the beginning of the gesture. - * @returns {yfiles.graph.IPortOwner} The port owner or null. + * @param targetLocation The location of the pointer at the beginning of the gesture. + * @returns The port owner or null. * @protected */ getTarget(targetLocation:yfiles.geometry.Point):yfiles.graph.IPortOwner; @@ -36469,10 +36512,10 @@ declare namespace system{ * This implementations uses the targetOwner's {@link yfiles.graph.ILookup#lookup} to retrieve an {@link yfiles.input.IPortCandidateProvider} * implementation. *

    - * @param {yfiles.input.IPortCandidate} sourcePortCandidate The current source port candidate. - * @param {yfiles.graph.IPortOwner} targetOwner The {@link yfiles.graph.IPortOwner} to find the candidates for. - * @param {yfiles.geometry.Point} location The location of the mouse. - * @returns {yfiles.input.IPortCandidateProvider} A provider instance or null. + * @param sourcePortCandidate The current source port candidate. + * @param targetOwner The {@link } to find the candidates for. + * @param location The location of the mouse. + * @returns A provider instance or null. * @protected */ getTargetPortCandidateProvider(sourcePortCandidate:yfiles.input.IPortCandidate,targetOwner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.input.IPortCandidateProvider; @@ -36483,9 +36526,9 @@ declare namespace system{ * This implementation queries all nodes in the graph for {@link yfiles.input.CreateEdgeInputMode#getTargetPortCandidateProvider their provider} and returns a composite unless {@link yfiles.input.CreateEdgeInputMode#useHitItemsCandidatesOnly} is set to true in * which case the {@link yfiles.input.CreateEdgeInputMode#getTargetPortCandidateProvider} is queried using the current {@link yfiles.input.CreateEdgeInputMode#getTarget target}. *

    - * @param {yfiles.input.IPortCandidate} sourcePortCandidate The source candidate that has been chosen for the edge creation. - * @param {yfiles.geometry.Point} location The location of the mouse. - * @returns {yfiles.input.IPortCandidateProvider} The provider to get the port candidates from. + * @param sourcePortCandidate The source candidate that has been chosen for the edge creation. + * @param location The location of the mouse. + * @returns The provider to get the port candidates from. * @protected */ getTargetPortCandidateProvider(sourcePortCandidate:yfiles.input.IPortCandidate,location:yfiles.geometry.Point):yfiles.input.IPortCandidateProvider; @@ -36496,10 +36539,10 @@ declare namespace system{ * or simply be discarded. This implementation delegates to {@link yfiles.input.CreateEdgeInputMode#getTargetPortCandidateProvider} * or returns an empty enumerable if no provider has been found. *

    - * @param {yfiles.geometry.Point} location The location of the mouse in world coordinates. - * @param {boolean} resolveCandidates Determines whether {@link yfiles.input.PortCandidateValidity#DYNAMIC} ports should be resolved with respect to the location or + * @param location The location of the mouse in world coordinates. + * @param resolveCandidates Determines whether {@link #DYNAMIC} ports should be resolved with respect to the location or * not. - * @returns {yfiles.collections.IEnumerable.} A possibly empty enumeration over all target port candidates. + * @returns A possibly empty enumeration over all target port candidates. * @see yfiles.input.CreateEdgeInputMode#sourcePortCandidate * @see yfiles.input.CreateEdgeInputMode#resolveTargetPortCandidates * @see yfiles.input.CreateEdgeInputMode#portCandidateResolutionRecognizer @@ -36518,10 +36561,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.CreateEdgeInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -36565,26 +36608,26 @@ declare namespace system{ * This method will trigger the {@link yfiles.input.CreateEdgeInputMode#addEdgeCreatedListener EdgeCreated} * event. *

    - * @param {yfiles.graph.EdgeEventArgs} evt The event argument holding the edge. + * @param evt The event argument holding the edge. * @protected */ onEdgeCreated(evt:yfiles.graph.EdgeEventArgs):void; /** * Raises the {@link yfiles.input.CreateEdgeInputMode#addEdgeCreationStartedListener EdgeCreationStarted} event when * the gesture for creating an edge has been initialized. - * @param {yfiles.graph.EdgeEventArgs} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the dummy edge that will be used during edge creation. + * @param evt The {@link } instance containing the dummy edge that will be used during edge creation. * @protected */ onEdgeCreationStarted(evt:yfiles.graph.EdgeEventArgs):void; /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureCanceledListener GestureCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureCanceled(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureCancelingListener GestureCanceling} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureCanceling(evt:yfiles.input.InputModeEventArgs):void; @@ -36594,7 +36637,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureFinishedListener GestureFinished} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureFinished(evt:yfiles.input.InputModeEventArgs):void; @@ -36604,19 +36647,19 @@ declare namespace system{ * This method triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureFinishingListener GestureFinishing} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureFinishing(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureStartedListener GestureStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureStarted(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureStartingListener GestureStarting} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureStarting(evt:yfiles.input.InputModeEventArgs):void; @@ -36625,7 +36668,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.CreateEdgeInputMode#addMovedListener Moved} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onMoved(evt:yfiles.input.InputModeEventArgs):void; @@ -36634,14 +36677,14 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.CreateEdgeInputMode#addMovingListener Moving} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onMoving(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.CreateEdgeInputMode#addPortAddedListener PortAdded} event if the mode has * {@link yfiles.graph.IGraph#addPort added a port} for the source or target node to complete the edge creation. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the port that has been added. + * @param evt The {@link } instance containing the port that has been added. * @see yfiles.input.CreateEdgeInputMode#addPortAddedListener * @protected */ @@ -36649,7 +36692,7 @@ declare namespace system{ /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addSourcePortCandidateChangedListener SourcePortCandidateChanged} * event. - * @param {yfiles.collections.ItemEventArgs.} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onSourcePortCandidateChanged(evt:yfiles.collections.ItemEventArgs):void; @@ -36667,7 +36710,7 @@ declare namespace system{ /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addTargetPortCandidateChangedListener TargetPortCandidateChanged} * event. - * @param {yfiles.collections.ItemEventArgs.} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onTargetPortCandidateChanged(evt:yfiles.collections.ItemEventArgs):void; @@ -36677,15 +36720,15 @@ declare namespace system{ * If the location has a value, method {@link yfiles.input.IPortCandidate#getPortCandidateAt} is used to resolve the dynamic * candidate to a real candidate, otherwise that candidate is discarded. *

    - * @param {yfiles.collections.IEnumerable.} candidates The candidates to possibly resolve. - * @param {yfiles.geometry.Point} location The location to resolve dynamic candidates against or null if they should be discarded instead. - * @returns {yfiles.collections.IEnumerable.} An enumerable of non-{@link yfiles.input.PortCandidateValidity#DYNAMIC} port candidates. + * @param candidates The candidates to possibly resolve. + * @param location The location to resolve dynamic candidates against or null if they should be discarded instead. + * @returns An enumerable of non-{@link #DYNAMIC} port candidates. * @protected */ resolveCandidates(candidates:yfiles.collections.IEnumerable,location:yfiles.geometry.Point):yfiles.collections.IEnumerable; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -36697,7 +36740,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -36706,7 +36749,7 @@ declare namespace system{ *

    * This implementation creates a self loop of the dummy edge if the sourcePortCandidate is the same as the owner of the {@link yfiles.input.CreateEdgeInputMode#targetPortCandidate}. *

    - * @param {yfiles.input.IPortCandidate} sourcePortCandidate The new owner target port candidate. + * @param sourcePortCandidate The new owner target port candidate. * @protected */ updateDummyEdgeSourcePort(sourcePortCandidate:yfiles.input.IPortCandidate):void; @@ -36715,7 +36758,7 @@ declare namespace system{ *

    * This implementation creates a self loop of the dummy edge if the targetPortCandidate is the same as the owner of the {@link yfiles.input.CreateEdgeInputMode#sourcePortCandidate}. *

    - * @param {yfiles.input.IPortCandidate} targetPortCandidate The new owner target port candidate. + * @param targetPortCandidate The new owner target port candidate. * @protected */ updateDummyEdgeTargetPort(targetPortCandidate:yfiles.input.IPortCandidate):void; @@ -36724,7 +36767,7 @@ declare namespace system{ *

    * This method is called when the current target location for the creation gesture is changed. *

    - * @param {yfiles.geometry.Point} location The new coordinates. + * @param location The new coordinates. * @protected */ updateTargetLocation(location:yfiles.geometry.Point):void; @@ -37008,7 +37051,7 @@ declare namespace system{ *

    * @see yfiles.input.GraphEditorInputMode#orthogonalEdgeEditingContext * @see yfiles.input.OrthogonalEdgeEditingContext#enabled - * @default 0 + * @default yfiles.input.OrthogonalEdgeEditingPolicy.AUTO * @type {yfiles.input.OrthogonalEdgeEditingPolicy} */ orthogonalEdgeCreation:yfiles.input.OrthogonalEdgeEditingPolicy; @@ -37158,27 +37201,27 @@ declare namespace system{ targetPortCandidate:yfiles.input.IPortCandidate; /** * Adds the given listener for the SourcePortCandidateChanged event that occurs when the value of the {@link yfiles.input.CreateEdgeInputMode#sourcePortCandidate} property changes. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeSourcePortCandidateChangedListener */ addSourcePortCandidateChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the SourcePortCandidateChanged event that occurs when the value of the {@link yfiles.input.CreateEdgeInputMode#sourcePortCandidate} property * changes. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addSourcePortCandidateChangedListener */ removeSourcePortCandidateChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Adds the given listener for the TargetPortCandidateChanged event that occurs when the value of the {@link yfiles.input.CreateEdgeInputMode#targetPortCandidate} property changes. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeTargetPortCandidateChangedListener */ addTargetPortCandidateChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the TargetPortCandidateChanged event that occurs when the value of the {@link yfiles.input.CreateEdgeInputMode#targetPortCandidate} property * changes. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addTargetPortCandidateChangedListener */ removeTargetPortCandidateChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -37196,14 +37239,14 @@ declare namespace system{ cancelEditImplicitly:boolean; /** * Adds the given listener for the EdgeCreated event that occurs after an edge has been created by this mode. - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#onEdgeCreated * @see yfiles.input.CreateEdgeInputMode#removeEdgeCreatedListener */ addEdgeCreatedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * Removes the given listener for the EdgeCreated event that occurs after an edge has been created by this mode. - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#onEdgeCreated * @see yfiles.input.CreateEdgeInputMode#addEdgeCreatedListener */ @@ -37211,14 +37254,14 @@ declare namespace system{ /** * Adds the given listener for the PortAdded event that occurs when this instance {@link yfiles.graph.IGraph#addPort adds a port} to the source or target node * during completion of the edge creation gesture. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removePortAddedListener */ addPortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the PortAdded event that occurs when this instance {@link yfiles.graph.IGraph#addPort adds a port} to the source or target * node during completion of the edge creation gesture. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addPortAddedListener */ removePortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -37243,6 +37286,9 @@ declare namespace system{ /** * Gets or sets a {@link yfiles.input.IHitTestable} that determines, whether it is valid to finish an edge creation gesture here. *

    + * If fact this hit testable is only queried at all if {@link yfiles.input.CreateEdgeInputMode#forceSnapToCandidate} is disabled and if there is currently no {@link yfiles.input.CreateEdgeInputMode#targetPortCandidate} available. + *

    + *

    * The default implementation returns true if there is a node at the given location. *

    * @type {yfiles.input.IHitTestable} @@ -37276,97 +37322,97 @@ declare namespace system{ isCreationInProgress:boolean; /** * Adds the given listener for the GestureFinishing event that occurs before the gesture will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureFinishingListener */ addGestureFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureFinishing event that occurs before the gesture will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureFinishingListener */ removeGestureFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the GestureFinished event that occurs once the gesture has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureFinishedListener */ addGestureFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureFinished event that occurs once the gesture has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureFinishedListener */ removeGestureFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the GestureStarting event that occurs once the gesture is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureStartingListener */ addGestureStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureStarting event that occurs once the gesture is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureStartingListener */ removeGestureStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the GestureStarted event that occurs once the gesture is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureStartedListener */ addGestureStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureStarted event that occurs once the gesture is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureStartedListener */ removeGestureStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Moving event that occurs at the start of every drag or move. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeMovingListener */ addMovingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Moving event that occurs at the start of every drag or move. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addMovingListener */ removeMovingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Moved event that occurs at the end of every drag or move. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeMovedListener */ addMovedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Moved event that occurs at the end of every drag or move. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addMovedListener */ removeMovedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the GestureCanceled event that occurs when the gesture has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureCanceledListener */ addGestureCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureCanceled event that occurs when the gesture has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureCanceledListener */ removeGestureCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the GestureCanceling event that occurs before the gesture will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureCancelingListener */ addGestureCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureCanceling event that occurs before the gesture will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureCancelingListener */ removeGestureCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -37375,7 +37421,7 @@ declare namespace system{ *

    * The edge that is stored in the {@link yfiles.collections.ItemEventArgs.#item} property is the {@link yfiles.input.CreateEdgeInputMode#dummyEdge} that is used during creation. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeEdgeCreationStartedListener */ addEdgeCreationStartedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; @@ -37384,15 +37430,14 @@ declare namespace system{ *

    * The edge that is stored in the {@link yfiles.collections.ItemEventArgs.#item} property is the {@link yfiles.input.CreateEdgeInputMode#dummyEdge} that is used during creation. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addEdgeCreationStartedListener */ removeEdgeCreationStartedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * Gets or sets the event recognizer that will be queried to decide if bend creation is enforced. *

    - * The default is a combination of {@link yfiles.input.KeyEventRecognizers#CONTROL_PRESSED} or - * {@link yfiles.input.KeyEventRecognizers#META_PRESSED}. + * The default is {@link yfiles.input.KeyEventRecognizers#CONTROL_PRESSED} or {@link yfiles.input.KeyEventRecognizers#META_PRESSED}. *

    * @type {function(Object, yfiles.lang.EventArgs): boolean} */ @@ -37477,7 +37522,7 @@ declare namespace system{ *
  • {@link yfiles.input.GraphEditorInputMode#allowCreateBend} – Determines whether the {@link yfiles.input.GraphEditorInputMode#createBendInputMode} should be {@link yfiles.input.CreateBendInputMode#enabled} to allow for creating new bends.
  • *
  • {@link yfiles.input.NavigationInputMode#allowEnterGroup} – Determines whether the mode allows for {@link yfiles.input.NavigationInputMode#enterGroup entering} group nodes in {@link yfiles.graph.IFoldingView}s.
  • *
  • {@link yfiles.input.NavigationInputMode#allowExitGroup} – Determines whether the mode allows for {@link yfiles.input.NavigationInputMode#exitGroup exiting} the current group node in {@link yfiles.graph.IFoldingView}s.
  • - *
  • {@link yfiles.input.NavigationInputMode#allowCollapseGroup} – Determines whether the mode allows for {@link yfiles.input.NavigationInputMode#collapseGroup collapsing} group nodes in {@link yfiles.graph.IFoldingView}s.
  • + *
  • {@link yfiles.input.NavigationInputMode#allowCollapseGroup} – Determines whether the mode allows for collapsing group nodes in {@link yfiles.graph.IFoldingView}s.
  • *
  • {@link yfiles.input.NavigationInputMode#allowExpandGroup} – Determines whether the mode allows for {@link yfiles.input.NavigationInputMode#expandGroup expanding} group nodes in {@link yfiles.graph.IFoldingView}s.
  • *
  • * {@link yfiles.input.ItemHoverInputMode#hoverItems} – Determines which items should be reported as being hovered through the {@link yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener corresponding event} in this instance's @@ -37571,14 +37616,18 @@ declare namespace system{ *

    Related demos:

    *
      *
    • Demo: SimpleEditorForm, Demo.yFiles.Graph.SimpleEditor
    • - *
    • Demo: SingleSelectionWindow, demo.yfiles.input.singleselection
    • + *
    • Demo: GraphEditorForm, Demo.yFiles.GraphEditor
    • + *
    • Demo: InputModeForm, Demo.yFiles.Graph.InputModes
    • + *
    • Demo: DataSetGraphForm, Demo.yFiles.Graph.DataSetGraph
    • + *
    • Demo: TreeLayoutForm, Demo.yFiles.Graph.Tree
    • + *
    • Demo: SingleSelectionWindow, Demo.yFiles.Graph.Input.SingleSelection
    • *
    • Tutorial: 01 Getting Started, step 06 Basic Interaction
    • *
    * @see yfiles.input.GraphEditorInputMode#createEdgeInputMode * @see yfiles.input.GraphEditorInputMode#createBendInputMode * @see yfiles.input.GraphEditorInputMode#moveLabelInputMode * @see yfiles.input.GraphEditorInputMode#nodeDropInputMode - * @class yfiles.input.GraphEditorInputMode + * @class * @extends {yfiles.input.GraphInputMode} */ export interface GraphEditorInputMode extends yfiles.input.GraphInputMode{} @@ -37589,7 +37638,6 @@ declare namespace system{ * The {@link yfiles.graph.IGraph} and {@link yfiles.view.IGraphSelection} instances are obtained later from the {@link yfiles.input.IInputModeContext} * once this mode gets {@link yfiles.input.GraphEditorInputMode#install installed} in a suitable canvas control. *

    - * @constructor */ constructor(); /** @@ -37608,9 +37656,9 @@ declare namespace system{ * {@link yfiles.input.IEditLabelHelper}, and via those instead of adding a label an existing one should be edited. This method * will edit that label instead of adding a new one. *

    - * @param {yfiles.graph.ILabelOwner} owner The item to add a label to. - * @returns {Promise.} A Promise that fulfills with the edited label instance. It will fulfill with null if {@link yfiles.input.TextEditorInputMode#addEditingCanceledListener editing was canceled} or the text - * did not {@link yfiles.input.GraphEditorInputMode#addValidateLabelTextListener validate}. + * @param owner The item to add a label to. + * @returns A Promise that fulfills with the edited label instance. It will fulfill with null if {@link #addEditingCanceledListener editing was canceled} or the text + * did not {@link #addValidateLabelTextListener validate}. */ addLabel(owner:yfiles.graph.ILabelOwner):Promise; /** @@ -37625,7 +37673,7 @@ declare namespace system{ *

    * This action is executed in response to the {@link yfiles.input.ICommand#ADJUST_GROUP_NODE_SIZE} if {@link yfiles.input.GraphEditorInputMode#allowAdjustGroupNodeSize} is set to true. *

    - * @param {yfiles.collections.IEnumerable.} nodes The nodes to adjust their sizes. + * @param nodes The nodes to adjust their sizes. * @protected */ adjustGroupNodeSize(nodes:yfiles.collections.IEnumerable):void; @@ -37645,7 +37693,7 @@ declare namespace system{ * to make sure they are still valid. The actual work of this method will be delegated to * {@link yfiles.input.GraphEditorInputMode#setNodeLayout}. *

    - * @param {yfiles.graph.INode} node The node to possibly adjust the size of. + * @param node The node to possibly adjust the size of. */ adjustToSizeConstraints(node:yfiles.graph.INode):void; /** @@ -37653,16 +37701,16 @@ declare namespace system{ *

    * This method is only called if no item has been and {@link yfiles.input.GraphInputMode#clickClearSelection} returned false. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} location The location of the click. - * @returns {boolean} true if a node was successfully created, otherwise false. + * @param context The input mode context. + * @param location The location of the click. + * @returns true if a node was successfully created, otherwise false. * @see yfiles.input.GraphEditorInputMode#shouldClickCreateNode * @protected */ clickCreateNode(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * Closes the label editor if it is currently open. - * @param {boolean} cancel Whether to cancel the editor and discard changes. + * @param cancel Whether to cancel the editor and discard changes. */ closeLabelEditor(cancel:boolean):void; /** @@ -37670,7 +37718,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#createBendInputMode} property. *

    - * @returns {yfiles.input.CreateBendInputMode} a new instance of CreateBendInputMode + * @returns a new instance of CreateBendInputMode * @protected */ createCreateBendInputMode():yfiles.input.CreateBendInputMode; @@ -37679,7 +37727,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#createEdgeInputMode} property. *

    - * @returns {yfiles.input.CreateEdgeInputMode} a new instance of CreateEdgeInputMode + * @returns a new instance of CreateEdgeInputMode * @protected */ createCreateEdgeInputMode():yfiles.input.CreateEdgeInputMode; @@ -37688,7 +37736,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#handleInputMode} property. *

    - * @returns {yfiles.input.HandleInputMode} a new instance of HandleInputMode + * @returns a new instance of HandleInputMode * @protected */ createHandleInputMode():yfiles.input.HandleInputMode; @@ -37708,9 +37756,9 @@ declare namespace system{ * {@link yfiles.input.IEditLabelHelper}, and via those instead of adding a label an existing one should be edited. This method * will do nothing instead of editing an existing label or adding a new one in that case. *

    - * @param {yfiles.graph.ILabelOwner} owner The item to create a new label for. - * @returns {Promise.} A Promise that fulfills with the edited label instance. It will fulfill with null if {@link yfiles.input.TextEditorInputMode#addEditingCanceledListener editing was canceled} or the text - * did not {@link yfiles.input.GraphEditorInputMode#addValidateLabelTextListener validate}. + * @param owner The item to create a new label for. + * @returns A Promise that fulfills with the edited label instance. It will fulfill with null if {@link #addEditingCanceledListener editing was canceled} or the text + * did not {@link #addValidateLabelTextListener validate}. */ createLabel(owner:yfiles.graph.ILabelOwner):Promise; /** @@ -37718,7 +37766,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.MoveInputMode} property. *

    - * @returns {yfiles.input.MoveInputMode} a new instance of MoveInputMode + * @returns a new instance of MoveInputMode * @protected */ createMoveInputMode():yfiles.input.MoveInputMode; @@ -37727,7 +37775,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#moveLabelInputMode} property. *

    - * @returns {yfiles.input.MoveLabelInputMode} a new instance of {@link yfiles.input.MoveLabelInputMode} + * @returns a new instance of {@link } * @protected */ createMoveLabelInputMode():yfiles.input.MoveLabelInputMode; @@ -37738,9 +37786,9 @@ declare namespace system{ * In order to use this mode, the created instance should be installed in a {@link yfiles.input.GraphEditorInputMode} like this but * using a smaller {@link yfiles.input.IInputMode#priority priority} value than the {@link yfiles.input.IInputMode#priority priority} of the mode that is {@link yfiles.input.GraphEditorInputMode#moveInputMode installed by default}. *

    - * @param {function(Object, yfiles.lang.EventArgs): boolean} recognizer Use this instance to make this mode work under certain conditions only. null for default behavior, one of the {@link yfiles.input.KeyEventRecognizers} + * @param recognizer Use this instance to make this mode work under certain conditions only. null for default behavior, one of the {@link } * constants, e.g. for alternate behavior. - * @returns {yfiles.input.MoveInputMode} A {@link yfiles.input.GraphEditorInputMode#moveInputMode} instance that uses the {@link yfiles.input.IPositionHandler} instances of the items that are hit at the position of the + * @returns A {@link #moveInputMode} instance that uses the {@link } instances of the items that are hit at the position of the * cursor, regardless of their selection state. */ createMoveUnselectedInputMode(recognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean):yfiles.input.MoveInputMode; @@ -37750,24 +37798,24 @@ declare namespace system{ * This implementation delegates to the current node creation callback or simply returns null if there is no such callback * or {@link yfiles.input.GraphEditorInputMode#allowCreateNode} yields false. Finally, it tries to {@link yfiles.input.GraphInputMode#setCurrentItem set the node as the current item}. *

    - * @param {yfiles.geometry.Point} location The point where the mouse had been clicked. - * @returns {yfiles.graph.INode} The newly created node or null. + * @param location The point where the mouse had been clicked. + * @returns The newly created node or null. * @see yfiles.input.GraphEditorInputMode#onNodeCreated * @see yfiles.input.GraphInputMode#setCurrentItem */ createNode(location:yfiles.geometry.Point):yfiles.graph.INode; /** * Factory method that creates the {@link yfiles.input.GraphEditorInputMode#nodeDropInputMode} lazily the first time the property is accessed. - * @returns {yfiles.input.NodeDropInputMode} A plain new instance of the {@link yfiles.input.NodeDropInputMode} type, which is initially {@link yfiles.input.DropInputMode#enabled disabled}. + * @returns A plain new instance of the {@link } type, which is initially {@link #enabled disabled}. * @protected */ createNodeDropInputMode():yfiles.input.NodeDropInputMode; /** - * Factory method for the ReparentNodeHandler property. + * Factory method for the {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler} property. *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler} property. *

    - * @returns {yfiles.input.IReparentNodeHandler} a new instance of {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler} + * @returns a new instance of {@link #reparentNodeHandler} * @protected */ createReparentNodeHandler():yfiles.input.IReparentNodeHandler; @@ -37776,7 +37824,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#textEditorInputMode} property. *

    - * @returns {yfiles.input.TextEditorInputMode} a new instance of TextEditorInputMode + * @returns a new instance of TextEditorInputMode * @protected */ createTextEditorInputMode():yfiles.input.TextEditorInputMode; @@ -37800,7 +37848,7 @@ declare namespace system{ deleteSelection():void; /** * Initiates the {@link yfiles.input.GraphEditorInputMode#handleInputMode} to drag the given bend. - * @param {yfiles.graph.IBend} bend The bend to drag. + * @param bend The bend to drag. * @see yfiles.input.GraphEditorInputMode#onCreateBendInputModeBendCreated */ dragBend(bend:yfiles.graph.IBend):void; @@ -37825,9 +37873,9 @@ declare namespace system{ * {@link yfiles.input.LabelEditingEventArgs#textEditorInputModeConfigurator} property on the {@link yfiles.input.LabelEditingEventArgs}. Thus editing a label via this method cannot be prevented by event * handlers or {@link yfiles.input.IEditLabelHelper}s. *

    - * @param {yfiles.graph.ILabel} label The label to edit. - * @returns {Promise.} A Promise that fulfills with the edited label instance. It will also fulfill with the instance if editing is {@link yfiles.input.TextEditorInputMode#addEditingCanceledListener editing was canceled} - * or the text did not {@link yfiles.input.GraphEditorInputMode#addValidateLabelTextListener validate} and the edit was reverted automatically. + * @param label The label to edit. + * @returns A Promise that fulfills with the edited label instance. It will also fulfill with the instance if editing is {@link #addEditingCanceledListener editing was canceled} + * or the text did not {@link #addValidateLabelTextListener validate} and the edit was reverted automatically. * @see yfiles.input.GraphEditorInputMode#onLabelTextEdited */ editLabel(label:yfiles.graph.ILabel):Promise; @@ -37836,8 +37884,8 @@ declare namespace system{ *

    * The method should return whether the request was satisfied. *

    - * @param {yfiles.graph.IModelItem} item The item whose label or the label itself that should be edited upon the double click gesture. - * @returns {boolean} true iff the request was handled. + * @param item The item whose label or the label itself that should be edited upon the double click gesture. + * @returns true iff the request was handled. * @see yfiles.input.GraphInputMode#doubleClick * @see yfiles.input.GraphEditorInputMode#allowEditLabelOnDoubleClick * @protected @@ -37851,7 +37899,7 @@ declare namespace system{ *

    * The default shortcut for this is Ctrl+G. *

    - * @returns {yfiles.graph.INode} The newly created group node or null. + * @returns The newly created group node or null. * @see yfiles.input.ICommand#GROUP_SELECTION * @see yfiles.input.GraphInputMode#clearSelection * @see yfiles.input.GraphInputMode#setSelected @@ -37862,7 +37910,7 @@ declare namespace system{ *

    * This method determines the label owner to add to and delegates to {@link yfiles.input.GraphEditorInputMode#createLabel}. *

    - * @returns {boolean} + * @returns * @protected */ onAddLabel():boolean; @@ -37874,40 +37922,40 @@ declare namespace system{ * {@link yfiles.input.GraphEditorInputMode#dragBend}. If the subsequent drag is canceled by the user, this call will remove the * bend again. *

    - * @param {Object} sender - * @param {yfiles.collections.ItemEventArgs.} evt + * @param sender + * @param evt * @protected */ onCreateBendInputModeBendCreated(sender:Object,evt:yfiles.collections.ItemEventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#createBendInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.CreateBendInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.CreateBendInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onCreateBendInputModeChanged(oldMode:yfiles.input.CreateBendInputMode,newMode:yfiles.input.CreateBendInputMode):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#createEdgeInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.CreateEdgeInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.CreateEdgeInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onCreateEdgeInputModeChanged(oldMode:yfiles.input.CreateEdgeInputMode,newMode:yfiles.input.CreateEdgeInputMode):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addDeletedItemListener DeletedItem} event. - * @param {yfiles.collections.ItemEventArgs.} evt The instance containing the event data. + * @param evt The instance containing the event data. * @protected */ onDeletedItem(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addDeletedSelectionListener DeletedSelection} event. - * @param {yfiles.input.SelectionEventArgs.} evt The {@link yfiles.input.SelectionEventArgs.} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onDeletedSelection(evt:yfiles.input.SelectionEventArgs):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addDeletingSelectionListener DeletingSelection} event. - * @param {yfiles.input.SelectionEventArgs.} evt The {@link yfiles.input.SelectionEventArgs.} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onDeletingSelection(evt:yfiles.input.SelectionEventArgs):void; @@ -37916,8 +37964,8 @@ declare namespace system{ *

    * Dispatches the {@link yfiles.input.GraphEditorInputMode#addEdgePortsChangedListener EdgePortsChanged} event. *

    - * @param {yfiles.graph.EdgeEventArgs} evt The {@link yfiles.graph.EdgeEventArgs} for the - * {@link yfiles.input.GraphEditorInputMode#addEdgePortsChangedListener EdgePortsChanged}. + * @param evt The {@link } for the + * {@link #addEdgePortsChangedListener EdgePortsChanged}. * @protected */ onEdgePortsChanged(evt:yfiles.graph.EdgeEventArgs):void; @@ -37927,14 +37975,14 @@ declare namespace system{ * This method determines the label to edit and delegates to either {@link yfiles.input.GraphEditorInputMode#editLabel} or {@link yfiles.input.GraphEditorInputMode#createLabel} * if no label could be found. *

    - * @returns {boolean} + * @returns * @protected */ onEditLabel():boolean; /** * Called when the {@link yfiles.input.GraphEditorInputMode#graphComponent} property changes. - * @param {yfiles.view.GraphComponent} oldGraphComponent The old control. - * @param {yfiles.view.GraphComponent} newGraphComponent The new control. + * @param oldGraphComponent The old control. + * @param newGraphComponent The new control. * @protected */ onGraphComponentChanged(oldGraphComponent:yfiles.view.GraphComponent,newGraphComponent:yfiles.view.GraphComponent):void; @@ -37943,21 +37991,21 @@ declare namespace system{ *

    * This will update the internal state of the modes. *

    - * @param {yfiles.view.IGraphSelection} oldSelection The old selection instance. - * @param {yfiles.view.IGraphSelection} newSelection The new selection instance. + * @param oldSelection The old selection instance. + * @param newSelection The new selection instance. * @protected */ onGraphSelectionChanged(oldSelection:yfiles.view.IGraphSelection,newSelection:yfiles.view.IGraphSelection):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#handleInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.HandleInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.HandleInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onHandleInputModeChanged(oldMode:yfiles.input.HandleInputMode,newMode:yfiles.input.HandleInputMode):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addLabelAddedListener LabelAdded} event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.collections.ItemEventArgs.} instance that contains the {@link yfiles.graph.ILabel} that has been added. + * @param evt The {@link } instance that contains the {@link } that has been added. * @protected */ onLabelAdded(evt:yfiles.graph.LabelEventArgs):void; @@ -37966,7 +38014,7 @@ declare namespace system{ *

    * Invoking the event handlers stops once one event marks the args as handled. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onLabelAdding(evt:yfiles.input.LabelEditingEventArgs):void; @@ -37975,20 +38023,20 @@ declare namespace system{ *

    * Invoking the event handlers stops once one event marks the args as handled. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onLabelEditing(evt:yfiles.input.LabelEditingEventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#labelSnapContext} property context changed. - * @param {yfiles.input.SnapContext} oldContext The old snap context. - * @param {yfiles.input.SnapContext} newContext The new snap context. + * @param oldContext The old snap context. + * @param newContext The new snap context. * @protected */ onLabelSnapContextChanged(oldContext:yfiles.input.SnapContext,newContext:yfiles.input.SnapContext):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addLabelTextChangedListener LabelTextChanged} event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.collections.ItemEventArgs.} instance that contains the {@link yfiles.graph.ILabel} that has changed the text. + * @param evt The {@link } instance that contains the {@link } that has changed the text. * @protected */ onLabelTextChanged(evt:yfiles.graph.LabelEventArgs):void; @@ -37997,50 +38045,50 @@ declare namespace system{ *

    * This method {@link yfiles.input.GraphEditorInputMode#addValidateLabelTextListener validates the label text} and if successful calls {@link yfiles.input.GraphEditorInputMode#setLabelText}. *

    - * @param {yfiles.graph.ILabel} label The label that was edited. - * @param {string} text The new text. + * @param label The label that was edited. + * @param text The new text. * @protected */ onLabelTextEdited(label:yfiles.graph.ILabel,text:string):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addLabelTextEditingCanceledListener LabelTextEditingCanceled} * event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.graph.LabelEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onLabelTextEditingCanceled(evt:yfiles.graph.LabelEventArgs):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addLabelTextEditingStartedListener LabelTextEditingStarted} * event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.graph.LabelEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onLabelTextEditingStarted(evt:yfiles.graph.LabelEventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#moveInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.MoveInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.MoveInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onMoveInputModeChanged(oldMode:yfiles.input.MoveInputMode,newMode:yfiles.input.MoveInputMode):void; /** * Called when {@link yfiles.input.MoveInputMode#addDragCanceledListener DragCanceled} is triggered. - * @param {Object} sender - * @param {yfiles.lang.EventArgs} evt + * @param sender + * @param evt * @protected */ onMoveInputModeDragCanceled(sender:Object,evt:yfiles.lang.EventArgs):void; /** * Called when {@link yfiles.input.MoveInputMode#addDragFinishedListener DragFinished} is triggered. - * @param {Object} sender - * @param {yfiles.lang.EventArgs} evt + * @param sender + * @param evt * @protected */ onMoveInputModeDragFinished(sender:Object,evt:yfiles.lang.EventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#moveLabelInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.MoveLabelInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.MoveLabelInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onMoveLabelInputModeChanged(oldMode:yfiles.input.MoveLabelInputMode,newMode:yfiles.input.MoveLabelInputMode):void; @@ -38049,14 +38097,14 @@ declare namespace system{ *

    * Note that if {@link yfiles.input.NodeDropInputMode#allowFolderNodeAsParent} is set to true, the reported node can actually be part of the {@link yfiles.graph.IFoldingView master graph}. *

    - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the created node. + * @param evt The {@link } instance containing the created node. * @protected */ onNodeCreated(evt:yfiles.collections.ItemEventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#nodeDropInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.NodeDropInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.NodeDropInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onNodeDropInputModeChanged(oldMode:yfiles.input.NodeDropInputMode,newMode:yfiles.input.NodeDropInputMode):void; @@ -38066,42 +38114,42 @@ declare namespace system{ * This implementation {@link yfiles.input.GraphEditorInputMode#adjustContentRect adjusts the content rect}, triggers the {@link yfiles.input.GraphEditorInputMode#addNodeCreatedListener NodeCreated} * event and tries to set the newly created node as the {@link yfiles.input.GraphInputMode#setCurrentItem current item}. *

    - * @param {Object} sender The sender. - * @param {yfiles.collections.ItemEventArgs.} evt The event argument instance containing the event data. + * @param sender The sender. + * @param evt The event argument instance containing the event data. * @protected */ onNodeDropInputModeNodeCreated(sender:Object,evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addNodeReparentedListener NodeReparented} event. - * @param {yfiles.graph.NodeEventArgs} evt The {@link yfiles.graph.NodeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.input.GraphEditorInputMode#reparentNodeHandler * @protected */ onNodeReparented(evt:yfiles.graph.NodeEventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler} property value changes and after initialization of the field. - * @param {yfiles.input.IReparentNodeHandler} oldMode the old value, which may be null the first time - * @param {yfiles.input.IReparentNodeHandler} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onReparentNodeHandlerChanged(oldMode:yfiles.input.IReparentNodeHandler,newMode:yfiles.input.IReparentNodeHandler):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#snapContext} property context changed. - * @param {yfiles.input.SnapContext} oldContext The old snap context. - * @param {yfiles.input.SnapContext} newContext The new snap context. + * @param oldContext The old snap context. + * @param newContext The new snap context. * @protected */ onSnapContextChanged(oldContext:yfiles.input.SnapContext,newContext:yfiles.input.SnapContext):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#textEditorInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.TextEditorInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.TextEditorInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onTextEditorInputModeChanged(oldMode:yfiles.input.TextEditorInputMode,newMode:yfiles.input.TextEditorInputMode):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addValidateLabelTextListener ValidateLabelText} event. - * @param {yfiles.input.LabelTextValidatingEventArgs} evt The {@link yfiles.input.LabelTextValidatingEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onValidateLabelText(evt:yfiles.input.LabelTextValidatingEventArgs):void; @@ -38116,7 +38164,7 @@ declare namespace system{ * The location is at the center of the bounds of the items that are pasted. This method reconfigures {@link yfiles.graph.GraphClipboard#pasteDelta} and calls * {@link yfiles.input.GraphEditorInputMode#paste}. *

    - * @param {yfiles.geometry.Point} location The location at which the center of the clipboard's contents should be positioned. + * @param location The location at which the center of the clipboard's contents should be positioned. */ pasteAtLocation(location:yfiles.geometry.Point):void; /** @@ -38138,7 +38186,7 @@ declare namespace system{ * for the edge. A {@link yfiles.input.GraphEditorInputMode#addEdgePortsChangedListener EdgePortsChanged} event * will be dispatched after the edge has been reversed. *

    - * @param {yfiles.graph.IEdge} edge + * @param edge */ reverseEdge(edge:yfiles.graph.IEdge):void; /** @@ -38151,7 +38199,7 @@ declare namespace system{ * For each edge a {@link yfiles.input.GraphEditorInputMode#addEdgePortsChangedListener EdgePortsChanged} event * will be dispatched. *

    - * @param {yfiles.collections.IEnumerable.} edges + * @param edges * @see yfiles.input.ICommand#REVERSE_EDGE */ reverseEdges(edges:yfiles.collections.IEnumerable):void; @@ -38174,7 +38222,7 @@ declare namespace system{ *

    * This method delegates to {@link yfiles.input.GraphInputMode#setSelected} for the node and all adjacent self loop bends. *

    - * @param {yfiles.graph.INode} node The node to select. + * @param node The node to select. */ selectNodeAndSelfloopBends(node:yfiles.graph.INode):void; /** @@ -38185,8 +38233,8 @@ declare namespace system{ * constraints are still kept if the {@link yfiles.graph.ILabel#preferredSize} changes due to the edit by calling * {@link yfiles.input.GraphEditorInputMode#adjustToSizeConstraints}. *

    - * @param {yfiles.graph.ILabel} label The label to set the text or remove. - * @param {string} text The new text. + * @param label The label to set the text or remove. + * @param text The new text. */ setLabelText(label:yfiles.graph.ILabel,text:string):void; /** @@ -38202,8 +38250,8 @@ declare namespace system{ *
  • *
  • {@link yfiles.input.GraphEditorInputMode#adjustContentRect} is called.
  • * - * @param {yfiles.graph.INode} node The node to reshape. - * @param {yfiles.geometry.Rect} layout The new node layout. + * @param node The node to reshape. + * @param layout The new node layout. */ setNodeLayout(node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; /** @@ -38212,8 +38260,8 @@ declare namespace system{ * This is overridden if the item has a {@link yfiles.input.IEditLabelHelper} that returns false for its {@link yfiles.input.IEditLabelHelper#onLabelAdding} * method. *

    - * @param {yfiles.graph.IModelItem} item The item to query - * @returns {boolean} true iff a label may be added + * @param item The item to query + * @returns true iff a label may be added * @protected */ shouldAddLabel(item:yfiles.graph.IModelItem):boolean; @@ -38223,9 +38271,9 @@ declare namespace system{ *

    * This implementation returns false when {@link yfiles.input.ContextMenuInputMode#swallowCloseClick} is true and the click has closed a context menu. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} clickPoint The location of the click. - * @returns {boolean} Whether {@link yfiles.input.GraphEditorInputMode#clickCreateNode} should be called to create a node. + * @param context The input mode context. + * @param clickPoint The location of the click. + * @returns Whether {@link #clickCreateNode} should be called to create a node. * @see yfiles.input.GraphEditorInputMode#clickCreateNode * @protected */ @@ -38236,16 +38284,16 @@ declare namespace system{ *

    * This implementation uses and honors the {@link yfiles.input.GraphEditorInputMode#deletableItems} and {@link yfiles.input.GraphEditorInputMode#deletablePredicate} properties. *

    - * @param {yfiles.graph.IModelItem} item The item. - * @returns {boolean} Whether to delete that item. + * @param item The item. + * @returns Whether to delete that item. * @protected */ shouldDelete(item:yfiles.graph.IModelItem):boolean; /** * Callback method that determines whether the label or the labels of the provided item should be edited in response to {@link yfiles.input.GraphEditorInputMode#onEditLabel} * or {@link yfiles.input.GraphEditorInputMode#onAddLabel}. - * @param {yfiles.graph.IModelItem} item The item. - * @returns {boolean} Whether to edit the label or the labels for that item. + * @param item The item. + * @returns Whether to edit the label or the labels for that item. * @protected */ shouldEditLabel(item:yfiles.graph.IModelItem):boolean; @@ -38258,8 +38306,8 @@ declare namespace system{ *

    * This implementation returns the result of the {@link yfiles.input.GraphEditorInputMode#movableItems} property for the given item. *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether or not moving the item is allowed. + * @param item The item to check. + * @returns Whether or not moving the item is allowed. * @see yfiles.input.GraphEditorInputMode#movableItems * @see yfiles.input.GraphEditorInputMode#moveInputMode * @see yfiles.input.GraphEditorInputMode#moveLabelInputMode @@ -38272,8 +38320,8 @@ declare namespace system{ *

    * This implementation returns the value of {@link yfiles.input.GraphEditorInputMode#allowReverseEdge}. *

    - * @param {yfiles.graph.IEdge} edge The edge which should be reversed. - * @returns {boolean} true if the edge should be reversed. + * @param edge The edge which should be reversed. + * @returns true if the edge should be reversed. * @protected */ shouldReverseEdge(edge:yfiles.graph.IEdge):boolean; @@ -38283,16 +38331,16 @@ declare namespace system{ *

    * This implementation returns true for the {@link yfiles.input.GraphEditorInputMode#pasteSelectableItems} items. *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether to select the item after {@link yfiles.input.GraphEditorInputMode#paste} or - * {@link yfiles.input.GraphEditorInputMode#duplicateSelection}. + * @param item The item to check. + * @returns Whether to select the item after {@link #paste} or + * {@link #duplicateSelection}. * @protected */ shouldSelectAfterPaste(item:yfiles.graph.IModelItem):boolean; /** * Determines whether to show the {@link yfiles.input.GraphEditorInputMode#handleInputMode handles} for the given item. - * @param {yfiles.graph.IModelItem} item The item to check - * @returns {boolean} Whether to show the item based on the setting of the corresponding {@link yfiles.input.GraphEditorInputMode#showHandleItems}, property. + * @param item The item to check + * @returns Whether to show the item based on the setting of the corresponding {@link #showHandleItems}, property. * @protected */ shouldShowHandles(item:yfiles.graph.IModelItem):boolean; @@ -38301,8 +38349,8 @@ declare namespace system{ *

    * This method is called by this instance whenever new nodes are created using the UI. *

    - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.INode} node + * @param context + * @param node * @see yfiles.input.MultiplexingInputMode#createChildInputModeContext */ snapToGrid(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):void; @@ -38337,7 +38385,7 @@ declare namespace system{ * By default this feature is enabled automatically if an {@link yfiles.input.GraphEditorInputMode#orthogonalEdgeEditingContext} is set. *

    * @see yfiles.input.GraphEditorInputMode#orthogonalEdgeEditingContext - * @default 0 + * @default yfiles.input.OrthogonalEdgeEditingPolicy.AUTO * @type {yfiles.input.OrthogonalEdgeEditingPolicy} */ orthogonalBendRemoval:yfiles.input.OrthogonalEdgeEditingPolicy; @@ -38378,7 +38426,7 @@ declare namespace system{ * @see yfiles.input.GraphEditorInputMode#shouldSelectAfterPaste * @see yfiles.input.GraphEditorInputMode#smartPasteSelection * @see yfiles.input.GraphInputMode#setSelected - * @default 63 + * @default yfiles.graph.GraphItemTypes.ALL * @type {yfiles.graph.GraphItemTypes} */ pasteSelectableItems:yfiles.graph.GraphItemTypes; @@ -38517,14 +38565,14 @@ declare namespace system{ /** * Adds the given listener for the LabelAdded event that occurs when this mode has triggered the addition of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.GraphEditorInputMode#createLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#removeLabelAddedListener */ addLabelAddedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * Removes the given listener for the LabelAdded event that occurs when this mode has triggered the addition of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.GraphEditorInputMode#createLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addLabelAddedListener */ removeLabelAddedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; @@ -38534,7 +38582,7 @@ declare namespace system{ *

    * This allows to customize the label editing process. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#addValidateLabelTextListener * @see yfiles.input.GraphEditorInputMode#removeLabelTextEditingStartedListener */ @@ -38545,7 +38593,7 @@ declare namespace system{ *

    * This allows to customize the label editing process. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addValidateLabelTextListener * @see yfiles.input.GraphEditorInputMode#addLabelTextEditingStartedListener */ @@ -38556,7 +38604,7 @@ declare namespace system{ *

    * This allows to unconfigure temporary customizations for the actual label editing process. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#addValidateLabelTextListener * @see yfiles.input.GraphEditorInputMode#removeLabelTextEditingCanceledListener */ @@ -38567,7 +38615,7 @@ declare namespace system{ *

    * This allows to unconfigure temporary customizations for the actual label editing process. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addValidateLabelTextListener * @see yfiles.input.GraphEditorInputMode#addLabelTextEditingCanceledListener */ @@ -38581,7 +38629,7 @@ declare namespace system{ * Note that in the case of {@link yfiles.input.GraphEditorInputMode#addLabel} the {@link yfiles.input.LabelTextValidatingEventArgs#label} is not part of the current graph but only a * dummy instance. *

    - * @param {function(Object, yfiles.input.LabelTextValidatingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#onValidateLabelText * @see yfiles.input.GraphEditorInputMode#removeValidateLabelTextListener */ @@ -38596,7 +38644,7 @@ declare namespace system{ * Note that in the case of {@link yfiles.input.GraphEditorInputMode#addLabel} the {@link yfiles.input.LabelTextValidatingEventArgs#label} is not part of the current graph but only a * dummy instance. *

    - * @param {function(Object, yfiles.input.LabelTextValidatingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#onValidateLabelText * @see yfiles.input.GraphEditorInputMode#addValidateLabelTextListener */ @@ -38604,14 +38652,14 @@ declare namespace system{ /** * Adds the given listener for the LabelTextChanged event that occurs when this mode has triggered the edit of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.GraphEditorInputMode#editLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#removeLabelTextChangedListener */ addLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * Removes the given listener for the LabelTextChanged event that occurs when this mode has triggered the edit of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.GraphEditorInputMode#editLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addLabelTextChangedListener */ removeLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; @@ -38620,7 +38668,7 @@ declare namespace system{ * method starts its work and will be followed by any number of {@link yfiles.input.GraphEditorInputMode#addDeletedItemListener DeletedItem} * events and finalized by a {@link yfiles.input.GraphEditorInputMode#addDeletedSelectionListener DeletedSelection} * event. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#deleteSelection * @see yfiles.input.GraphEditorInputMode#removeDeletingSelectionListener */ @@ -38630,7 +38678,7 @@ declare namespace system{ * method starts its work and will be followed by any number of {@link yfiles.input.GraphEditorInputMode#addDeletedItemListener DeletedItem} * events and finalized by a {@link yfiles.input.GraphEditorInputMode#addDeletedSelectionListener DeletedSelection} * event. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#deleteSelection * @see yfiles.input.GraphEditorInputMode#addDeletingSelectionListener */ @@ -38642,7 +38690,7 @@ declare namespace system{ * node, its labels, ports, and adjacent edges will not necessarily be reported separately. In order to be notified of any * removal events, the {@link yfiles.graph.IGraph} events should be used instead. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#removeDeletedItemListener */ addDeletedItemListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -38654,14 +38702,14 @@ declare namespace system{ * node, its labels, ports, and adjacent edges will not necessarily be reported separately. In order to be notified of any * removal events, the {@link yfiles.graph.IGraph} events should be used instead. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener */ removeDeletedItemListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Adds the given listener for the DeletedSelection event that occurs just before the {@link yfiles.input.GraphEditorInputMode#deleteSelection} * method has deleted the selection after all selected items have been removed. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#deleteSelection * @see yfiles.input.GraphEditorInputMode#removeDeletedSelectionListener */ @@ -38669,7 +38717,7 @@ declare namespace system{ /** * Removes the given listener for the DeletedSelection event that occurs just before the {@link yfiles.input.GraphEditorInputMode#deleteSelection} * method has deleted the selection after all selected items have been removed. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#deleteSelection * @see yfiles.input.GraphEditorInputMode#addDeletedSelectionListener */ @@ -38695,7 +38743,7 @@ declare namespace system{ * The {@link yfiles.input.GraphEditorInputMode#adjustContentRect} method is called whenever the content changes. The default is * {@link yfiles.input.AdjustContentRectPolicy#UNION}. *

    - * @default 1 + * @default yfiles.input.AdjustContentRectPolicy.UNION * @type {yfiles.input.AdjustContentRectPolicy} */ adjustContentRectPolicy:yfiles.input.AdjustContentRectPolicy; @@ -38853,6 +38901,9 @@ declare namespace system{ * Gets or sets a value indicating whether undo operations, that is, {@link yfiles.input.GraphEditorInputMode#undo} and {@link yfiles.input.GraphEditorInputMode#redo} * should be enabled. *

    + * Note that even if this feature is enabled, an {@link yfiles.graph.UndoEngine undo engine} needs to be available in the {@link yfiles.input.InputModeBase#inputModeContext}in order to work. + *

    + *

    * Setting this property to false effectively disables handling of the commands {@link yfiles.input.ICommand#UNDO} and * {@link yfiles.input.ICommand#REDO}. *

    @@ -38902,7 +38953,7 @@ declare namespace system{ * This is triggered whenever the {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler}'s {@link yfiles.input.IReparentNodeHandler#reparent} method has been called to reparent a node * interactively. *

    - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#reparentNodeHandler * @see yfiles.input.GraphEditorInputMode#removeNodeReparentedListener */ @@ -38913,7 +38964,7 @@ declare namespace system{ * This is triggered whenever the {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler}'s {@link yfiles.input.IReparentNodeHandler#reparent} method has been called to reparent a node * interactively. *

    - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#reparentNodeHandler * @see yfiles.input.GraphEditorInputMode#addNodeReparentedListener */ @@ -38926,7 +38977,7 @@ declare namespace system{ * or via a drag and drop operation that was completed by {@link yfiles.input.GraphEditorInputMode#nodeDropInputMode}. Note that if {@link yfiles.input.NodeDropInputMode#allowFolderNodeAsParent} is set to true, the reported node can actually be * part of the {@link yfiles.graph.IFoldingView master graph}. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#createNode * @see yfiles.input.GraphEditorInputMode#removeNodeCreatedListener */ @@ -38939,7 +38990,7 @@ declare namespace system{ * or via a drag and drop operation that was completed by {@link yfiles.input.GraphEditorInputMode#nodeDropInputMode}. Note that if {@link yfiles.input.NodeDropInputMode#allowFolderNodeAsParent} is set to true, the reported node can actually be * part of the {@link yfiles.graph.IFoldingView master graph}. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#createNode * @see yfiles.input.GraphEditorInputMode#addNodeCreatedListener */ @@ -38995,7 +39046,7 @@ declare namespace system{ /** * Adds the given listener for the EdgePortsChanged event that occurs after an edge's source and/or target ports have been * changed as the result of an input gesture. - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.EdgeEventArgs * @see yfiles.input.GraphEditorInputMode#reverseSelectedEdges * @see yfiles.input.GraphEditorInputMode#reverseEdges @@ -39006,7 +39057,7 @@ declare namespace system{ /** * Removes the given listener for the EdgePortsChanged event that occurs after an edge's source and/or target ports have * been changed as the result of an input gesture. - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.EdgeEventArgs * @see yfiles.input.GraphEditorInputMode#reverseSelectedEdges * @see yfiles.input.GraphEditorInputMode#reverseEdges @@ -39067,6 +39118,7 @@ declare namespace system{ *

    * The default value is true. *

    + * @see yfiles.input.GraphInputMode#clickSelectableItems * @default true * @type {boolean} */ @@ -39128,7 +39180,7 @@ declare namespace system{ * forbidden entirely, or the properties of the added label can be changed, by setting the appropriate properties on the * {@link yfiles.input.LabelEditingEventArgs}. It is even possible to forbid adding a label, but edit an existing one instead. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#removeLabelAddingListener */ addLabelAddingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -39139,7 +39191,7 @@ declare namespace system{ * forbidden entirely, or the properties of the added label can be changed, by setting the appropriate properties on the * {@link yfiles.input.LabelEditingEventArgs}. It is even possible to forbid adding a label, but edit an existing one instead. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addLabelAddingListener */ removeLabelAddingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -39150,7 +39202,7 @@ declare namespace system{ * entirely, or redirected to a different label, even on a different owner. In case editing existing labels is unwanted, * event handlers can also specify that instead of editing a label, a new one should be added. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#removeLabelEditingListener */ addLabelEditingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -39161,7 +39213,7 @@ declare namespace system{ * entirely, or redirected to a different label, even on a different owner. In case editing existing labels is unwanted, * event handlers can also specify that instead of editing a label, a new one should be added. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addLabelEditingListener */ removeLabelEditingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -39177,7 +39229,7 @@ declare namespace system{ * Highlighting is done via a {@link yfiles.view.HighlightIndicatorManager.}. *

    * Type parameter T. - * @class yfiles.input.ItemDropInputMode. + * @class * @extends {yfiles.input.DropInputMode} * @template T */ @@ -39188,9 +39240,8 @@ declare namespace system{ *

    * This instance fires events only if a drag operation carries data of the expected format. *

    - * @param {string} expectedFormat This is a format that is used in {@link yfiles.view.DragDropItem#getData}. + * @param expectedFormat This is a format that is used in {@link #getData}. * @protected - * @constructor */ constructor(expectedFormat:string); /** @@ -39221,8 +39272,8 @@ declare namespace system{ *

    * The default implementation doesn't collect any snap results. *

    - * @param {Object} source The {@link yfiles.input.SnapContext} this callback is registered at. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The arguments describing the movement {@link yfiles.input.SnapResult}s shall be collected for. + * @param source The {@link } this callback is registered at. + * @param evt The arguments describing the movement {@link }s shall be collected for. * @protected */ collectSnapResults(source:Object,evt:yfiles.input.CollectSnapResultsEventArgs):void; @@ -39231,8 +39282,8 @@ declare namespace system{ *

    * The drop target is highlighted, if {@link yfiles.input.ItemDropInputMode.#highlightDropTarget} is enabled. Per default, null is returned. *

    - * @param {yfiles.geometry.Point} dragLocation The location to return the drop target for. - * @returns {yfiles.graph.IModelItem} The drop target at the specified location or null if no drop target can be found. + * @param dragLocation The location to return the drop target for. + * @returns The drop target at the specified location or null if no drop target can be found. * @protected */ getDropTarget(dragLocation:yfiles.geometry.Point):yfiles.graph.IModelItem; @@ -39260,13 +39311,13 @@ declare namespace system{ initializeSnapContext():void; /** * Called whenever a new item is created - * @param {yfiles.collections.ItemEventArgs.} evt + * @param evt * @protected */ onItemCreated(evt:yfiles.collections.ItemEventArgs):void; /** * Subclasses shall fill the specified graph that is used to preview the dragged item. - * @param {yfiles.graph.IGraph} previewGraph The preview graph to fill. + * @param previewGraph The preview graph to fill. * @protected */ populatePreviewGraph(previewGraph:yfiles.graph.IGraph):void; @@ -39275,26 +39326,26 @@ declare namespace system{ *

    * If {@link yfiles.input.ItemDropInputMode.#highlightDropTarget} is enabled, the highlight is updated as well. *

    - * @param {yfiles.geometry.Point} dragLocation The location to update the drop target for. + * @param dragLocation The location to update the drop target for. * @protected */ updateDropTarget(dragLocation:yfiles.geometry.Point):void; /** * Subclasses shall update the {@link yfiles.input.ItemDropInputMode.#previewGraph preview graph} so the dragged item is displayed at the specified dragLocation. - * @param {yfiles.graph.IGraph} previewGraph The preview graph to update. - * @param {yfiles.geometry.Point} dragLocation The current drag location. + * @param previewGraph The preview graph to update. + * @param dragLocation The current drag location. * @protected */ updatePreview(previewGraph:yfiles.graph.IGraph,dragLocation:yfiles.geometry.Point):void; /** * Adds the given listener for the ItemCreated event that occurs when a new item gets created by this input mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ItemDropInputMode.#removeItemCreatedListener */ addItemCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the ItemCreated event that occurs when a new item gets created by this input mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ItemDropInputMode.#addItemCreatedListener */ removeItemCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -39371,75 +39422,74 @@ declare namespace system{ /** * An implementation of {@link yfiles.input.IPositionHandler} that shows the various label position candidates and lets the user * move a label to one of those candidate positions. - * @class yfiles.input.LabelPositionHandler + * @class * @implements {yfiles.input.IPositionHandler} */ export interface LabelPositionHandler extends Object,yfiles.input.IPositionHandler{} export class LabelPositionHandler { /** * Initializes a new instance of the {@link yfiles.input.LabelPositionHandler} class. - * @param {yfiles.graph.ILabel} label The label that shall be moved. - * @constructor + * @param label The label that shall be moved. */ constructor(label:yfiles.graph.ILabel); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Creates an {@link yfiles.view.ICanvasObjectDescriptor} to display the given candidate position. - * @param {yfiles.input.IInputModeContext} context The context for which the descriptor is created. - * @param {boolean} highlight Whether to highlight the paintable. This will be true for the current position and false for the others. - * @returns {yfiles.view.ICanvasObjectDescriptor} An implementation that will render the given candidate. + * @param context The context for which the descriptor is created. + * @param highlight Whether to highlight the paintable. This will be true for the current position and false for the others. + * @returns An implementation that will render the given candidate. * @protected */ createCandidateDescriptor(context:yfiles.input.IInputModeContext,highlight:boolean):yfiles.view.ICanvasObjectDescriptor; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Calculates a distance value between a candidate rectangle and the mouse location. - * @param {yfiles.geometry.IOrientedRectangle} rectangle The rectangle candidate. - * @param {yfiles.geometry.Point} location The mouse location. - * @returns {number} A value indicating the closeness of the mouse to the rectangle. + * @param rectangle The rectangle candidate. + * @param location The mouse location. + * @returns A value indicating the closeness of the mouse to the rectangle. * @protected */ getDistance(rectangle:yfiles.geometry.IOrientedRectangle,location:yfiles.geometry.Point):number; /** * Callback method that gets the candidates for the given label. - * @param {yfiles.graph.ILabel} label The label. - * @returns {yfiles.collections.IEnumerable.} A possibly empty enumerator over possible label parameter candidates. + * @param label The label. + * @returns A possibly empty enumerator over possible label parameter candidates. * @protected */ getParameterCandidates(label:yfiles.graph.ILabel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** * Actually applies the given parameter at the end of the gesture. - * @param {yfiles.graph.ILabel} label The label to set the parameter for. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The new parameter. + * @param label The label to set the parameter for. + * @param layoutParameter The new parameter. * @protected */ setLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; /** * - * @param {yfiles.geometry.Point} location + * @param location */ setPosition(location:yfiles.geometry.Point):void; /** @@ -39447,8 +39497,8 @@ declare namespace system{ *

    * This implementation returns true if the {@link yfiles.input.LabelPositionHandler#useFinder} property is true and the control key is pressed. *

    - * @param {yfiles.input.IInputModeContext} context The context that is currently being used - may be null if the method is called without context. - * @returns {boolean} + * @param context The context that is currently being used - may be null if the method is called without context. + * @returns * @protected */ useParameterFinder(context:yfiles.input.IInputModeContext):boolean; @@ -39511,7 +39561,7 @@ declare namespace system{ * during dragging of labels. * @see yfiles.input.LabelSnapContext * @see yfiles.graph.LabelDecorator#labelSnapContextHelperDecorator - * @class yfiles.input.LabelSnapContextHelper + * @class * @implements {yfiles.input.ILabelSnapContextHelper} */ export interface LabelSnapContextHelper extends Object,yfiles.input.ILabelSnapContextHelper{} @@ -39522,11 +39572,11 @@ declare namespace system{ * This method is not used by this class to create its snap lines. Instead, it can be called by custom sub-classes to * create this kind of snap lines. *

    - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The edge label that is dragged. - * @param {number} distance The distance of the added snap lines from the edge path. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The edge label that is dragged. + * @param distance The distance of the added snap lines from the edge path. * @protected */ addEdgePathSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel,distance:number):void; @@ -39535,10 +39585,10 @@ declare namespace system{ *

    * The corresponding settings of the snapContext specify which snap lines are actually created. *

    - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The edge label that is dragged. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The edge label that is dragged. * @protected */ addEdgePathSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; @@ -39549,10 +39599,10 @@ declare namespace system{ * This method is called by {@link yfiles.input.LabelSnapContextHelper#addSnapLines} to add the snap lines for the initial position * label location. *

    - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The label that is dragged. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The label that is dragged. * @protected */ addInitialLocationSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; @@ -39561,28 +39611,28 @@ declare namespace system{ *

    * The corresponding settings of the snapContext specify which snap lines are actually created. *

    - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The node label that is dragged. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The node label that is dragged. * @protected */ addNodeShapeSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; /** * Called during {@link yfiles.input.IDragHandler#initializeDrag initialization} of a label dragging to add {@link yfiles.input.SnapLine snap lines} to which the label can potentially snap to the * snapContext. - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The label that is dragged. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The label that is dragged. */ addSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; /** * - * @param {yfiles.input.LabelSnapContext} context - * @param {yfiles.input.CollectSnapResultsEventArgs} evt - * @param {yfiles.geometry.IOrientedRectangle} suggestedLayout - * @param {yfiles.graph.ILabel} label + * @param context + * @param evt + * @param suggestedLayout + * @param label */ collectSnapResults(context:yfiles.input.LabelSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.IOrientedRectangle,label:yfiles.graph.ILabel):void; /** @@ -39605,7 +39655,7 @@ declare namespace system{ * Event handlers can set the {@link yfiles.input.LabelTextValidatingEventArgs#cancel} property to true to cancel label editing if validation failed, or set the {@link yfiles.input.LabelTextValidatingEventArgs#newText} property to a * changed, validated value. *

    - * @class yfiles.input.LabelTextValidatingEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} * @final */ @@ -39613,10 +39663,9 @@ declare namespace system{ export class LabelTextValidatingEventArgs { /** * Initializes a new instance of the {@link yfiles.input.LabelTextValidatingEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context. - * @param {yfiles.graph.ILabel} label The label. - * @param {string} newText The initial new text as entered by the user. - * @constructor + * @param context The context. + * @param label The label. + * @param newText The initial new text as entered by the user. */ constructor(context:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel,newText:string); /** @@ -39646,7 +39695,7 @@ declare namespace system{ * This implementation shows the possible candidate positions for a given label and allows the user to drag the label to * one of these positions. *

    - * @class yfiles.input.MoveLabelInputMode + * @class * @extends {yfiles.input.MoveInputMode} */ export interface MoveLabelInputMode extends yfiles.input.MoveInputMode{} @@ -39654,7 +39703,6 @@ declare namespace system{ /** * Creates a new instance that will move labels in the graph retrieved from the {@link yfiles.input.MoveInputMode#inputModeContext}. * @see yfiles.input.MoveLabelInputMode#graph - * @constructor */ constructor(); /** @@ -39662,7 +39710,7 @@ declare namespace system{ *

    * This implementation returns an instance that delegates to {@link yfiles.input.MoveLabelInputMode#isValidLabelHit}. *

    - * @returns {yfiles.input.IHitTestable} A hit testable. + * @returns A hit testable. * @protected */ createLabelHitTestable():yfiles.input.IHitTestable; @@ -39672,8 +39720,8 @@ declare namespace system{ * First, this implementation checks for a position handler in the label's * {@link yfiles.graph.ILookup lookup}. If this fails, it creates a new label position handler for the given label. *

    - * @param {yfiles.graph.ILabel} label The label to create a position handler for. - * @returns {yfiles.input.IPositionHandler} A position handler for the given label. + * @param label The label to create a position handler for. + * @returns A position handler for the given label. * @protected */ createLabelPositionHandler(label:yfiles.graph.ILabel):yfiles.input.IPositionHandler; @@ -39683,9 +39731,9 @@ declare namespace system{ * This implementation checks the {@link yfiles.input.MoveLabelInputMode#graphSelection} to see if there is exactly one selected label. This label is returned if it is hit by * the mouse and {@link yfiles.input.MoveLabelInputMode#shouldMove} returns true. Otherwise, null is returned. *

    - * @param {yfiles.input.IInputModeContext} context The context for the hit test. - * @param {yfiles.geometry.Point} location The coordinates for the hit test. - * @returns {yfiles.graph.ILabel} The label hit at the given location or null. + * @param context The context for the hit test. + * @param location The coordinates for the hit test. + * @returns The label hit at the given location or null. * @see yfiles.input.MoveLabelInputMode#isValidLabelHit * @see yfiles.input.MoveLabelInputMode#shouldMove * @protected @@ -39698,9 +39746,9 @@ declare namespace system{ * label is hit, the {@link yfiles.input.IPositionHandler} is created by * {@link yfiles.input.MoveLabelInputMode#createLabelPositionHandler}. *

    - * @param {yfiles.input.IInputModeContext} context The context for the hit test. - * @param {yfiles.geometry.Point} location The coordinates for the hit test. - * @returns {boolean} true if a valid label is hit and the label moving should be started here. Otherwise, false. + * @param context The context for the hit test. + * @param location The coordinates for the hit test. + * @returns true if a valid label is hit and the label moving should be started here. Otherwise, false. * @protected */ isValidLabelHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; @@ -39710,9 +39758,9 @@ declare namespace system{ * This implementation returns false if the parent input mode {@link yfiles.input.GraphEditorInputMode#shouldMove forbids} moving the label. Overriding implementations should * query this implementation as base if this feature is desired. *

    - * @param {yfiles.input.IInputModeContext} context The context. - * @param {yfiles.graph.ILabel} label The label to be checked. - * @returns {boolean} true if the label is allowed to move. + * @param context The context. + * @param label The label to be checked. + * @returns true if the label is allowed to move. * @see yfiles.input.MoveLabelInputMode#getHitLabel * @protected */ @@ -39761,16 +39809,15 @@ declare namespace system{ * hierarchy. In this case the {@link yfiles.input.NodeDropInputMode#isValidParentPredicate} will be queried if the dropped upon node is actually a valid parent. *

    * @see yfiles.input.NodeDropInputMode#startDrag - * @class yfiles.input.NodeDropInputMode + * @class * @extends {yfiles.input.ItemDropInputMode.} */ export interface NodeDropInputMode extends yfiles.input.ItemDropInputMode{} export class NodeDropInputMode { /** * Initializes a new instance of the {@link yfiles.input.NodeDropInputMode} class for the expected data format. - * @param {string} expectedFormat This is a format that is used in {@link yfiles.input.NodeDropInputMode#startDrag}. + * @param expectedFormat This is a format that is used in {@link #startDrag}. * @protected - * @constructor */ constructor(expectedFormat:string); /** @@ -39779,7 +39826,6 @@ declare namespace system{ * This instance fires events only if the format of the data of the drag operation is the full name of the {@link yfiles.graph.INode} * type. Such a drag operation can be started for example with {@link yfiles.input.NodeDropInputMode#startDrag}. *

    - * @constructor */ constructor(); /** @@ -39787,12 +39833,12 @@ declare namespace system{ *

    * This method is called by the {@link yfiles.input.ItemDropInputMode.#itemCreator} that is set as default on this class. *

    - * @param {yfiles.input.IInputModeContext} context The context for which the node should be created. - * @param {yfiles.graph.IGraph} graph The {@link yfiles.graph.IGraph Graph} in which to create the item. - * @param {yfiles.graph.INode} node The node that was dragged and should therefore be created. - * @param {yfiles.graph.IModelItem} dropTarget The {@link yfiles.graph.IModelItem} on which the node is dropped. - * @param {yfiles.geometry.Rect} layout The bounds of the new node. - * @returns {yfiles.graph.INode} a newly created node. + * @param context The context for which the node should be created. + * @param graph The {@link Graph} in which to create the item. + * @param node The node that was dragged and should therefore be created. + * @param dropTarget The {@link } on which the node is dropped. + * @param layout The bounds of the new node. + * @returns a newly created node. * @protected */ createNode(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,node:yfiles.graph.INode,dropTarget:yfiles.graph.IModelItem,layout:yfiles.geometry.Rect):yfiles.graph.INode; @@ -39802,9 +39848,9 @@ declare namespace system{ * In this implementation the mouse location is used as center of the node. Can be overridden in child class to implement a * different layout. *

    - * @param {yfiles.geometry.Point} mouseLocation Current mouse position - * @param {yfiles.geometry.Size} size Size of the node - * @returns {yfiles.geometry.Rect} a {@link yfiles.geometry.Rect} with the given size and the mouse location as center. + * @param mouseLocation Current mouse position + * @param size Size of the node + * @returns a {@link } with the given size and the mouse location as center. * @protected */ getNodeLayout(mouseLocation:yfiles.geometry.Point,size:yfiles.geometry.Size):yfiles.geometry.Rect; @@ -39824,10 +39870,10 @@ declare namespace system{ *
  • yfiles-cursor-dragdrop-all
  • *
  • yfiles-cursor-dragdrop-no-drop
  • * - * @param {HTMLElement} dragSource The source of the drag operation. - * @param {yfiles.graph.INode} node The node to drag. - * @param {yfiles.view.DragDropEffects} [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. - * @param {boolean} [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. + * @param dragSource The source of the drag operation. + * @param node The node to drag. + * @param [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. + * @param [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. * @see yfiles.view.DragSource#startDrag * @see yfiles.view.DragDropItem * @static @@ -39850,10 +39896,10 @@ declare namespace system{ *
  • yfiles-cursor-dragdrop-no-drop
  • * * @param {Object} options The parameters to pass. - * @param {HTMLElement} options.dragSource The source of the drag operation. - * @param {yfiles.graph.INode} options.node The node to drag. - * @param {yfiles.view.DragDropEffects} [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. - * @param {boolean} [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. + * @param options.dragSource The source of the drag operation. + * @param options.node The node to drag. + * @param [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. + * @param [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. * @see yfiles.view.DragSource#startDrag * @see yfiles.view.DragDropItem * @static @@ -39933,13 +39979,12 @@ declare namespace system{ * @see yfiles.input.IOrthogonalEdgeHelper * @see yfiles.input.OrthogonalEdgeEditingContext#enabled * @see yfiles.input.OrthogonalEdgeEditingContext#movePorts - * @class yfiles.input.OrthogonalEdgeEditingContext + * @class */ export interface OrthogonalEdgeEditingContext extends Object{} export class OrthogonalEdgeEditingContext { /** * Initializes a new instance of the {@link yfiles.input.OrthogonalEdgeEditingContext} class that is initially {@link yfiles.input.OrthogonalEdgeEditingContext#enabled}. - * @constructor */ constructor(); /** @@ -39948,7 +39993,7 @@ declare namespace system{ * {@link yfiles.input.IDragHandler} implementations that are being used to explicitly move a bend during the edit should use this * method to register their edit while they are being {@link yfiles.input.IDragHandler#initializeDrag initialized}. *

    - * @param {yfiles.input.MovementInfo} movementInfo The movement info that describes the movement of the bend. + * @param movementInfo The movement info that describes the movement of the bend. */ addExplicitlyMovedBend(movementInfo:yfiles.input.MovementInfo):void; /** @@ -39957,8 +40002,8 @@ declare namespace system{ * The instance will be returned by {@link yfiles.input.OrthogonalEdgeEditingContext#createImplicitlyMovedBendInfo} and the {@link yfiles.input.MovementInfo#moveType} will * be combined with the requested move type. *

    - * @param {yfiles.input.MovementInfo} movementInfo The movement info for the bend. - * @returns {yfiles.input.MovementInfo} The info that has been registered with this instance. + * @param movementInfo The movement info for the bend. + * @returns The info that has been registered with this instance. */ addImplicitlyMovedBend(movementInfo:yfiles.input.MovementInfo):yfiles.input.MovementInfo; /** @@ -39967,8 +40012,8 @@ declare namespace system{ * {@link yfiles.input.IDragHandler} implementations that are being used to explicitly move the end of an edge during the edit * should use this method to register their edit while they are being {@link yfiles.input.IDragHandler#initializeDrag initialized}. *

    - * @param {yfiles.input.MovementInfo} movementInfo The movement info that describes the movement of the end of the edge. The {@link yfiles.input.MovementInfo#movedItem} must be an {@link yfiles.graph.IEdge}. - * @param {boolean} sourceEnd true if the movementInfo represents the source end of the edge. + * @param movementInfo The movement info that describes the movement of the end of the edge. The {@link #movedItem} must be an {@link }. + * @param sourceEnd true if the movementInfo represents the source end of the edge. * @see yfiles.input.IEdgePortHandleProvider */ addMovedEdgeEnd(movementInfo:yfiles.input.MovementInfo,sourceEnd:boolean):void; @@ -39978,7 +40023,7 @@ declare namespace system{ * {@link yfiles.input.IDragHandler} implementations that are being used to explicitly move a bend during the edit should use this * method to register their edit while they are being {@link yfiles.input.IDragHandler#initializeDrag initialized}. *

    - * @param {yfiles.input.MovementInfo} movementInfo The movement info that describes the movement of the port. + * @param movementInfo The movement info that describes the movement of the port. */ addMovedPort(movementInfo:yfiles.input.MovementInfo):void; /** @@ -39988,7 +40033,7 @@ declare namespace system{ * Normally this will be nodes that are being resized or moved in a non-linear way, or edges, whose bends or ports are * being changed. *

    - * @param {yfiles.graph.IPortOwner} owner The item that will be transformed. + * @param owner The item that will be transformed. */ addTransformedPortOwner(owner:yfiles.graph.IPortOwner):void; /** @@ -40014,15 +40059,15 @@ declare namespace system{ * This implementations delegates to the {@link yfiles.input.IOrthogonalEdgeHelper}'s {@link yfiles.input.IOrthogonalEdgeHelper#cleanUpEdge} * method. *

    - * @param {yfiles.graph.IGraph} graph The graph in which the edge resides. - * @param {yfiles.graph.IEdge} edge The modified edge. + * @param graph The graph in which the edge resides. + * @param edge The modified edge. * @see yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper * @protected */ cleanUpEdgePath(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge):void; /** * Called after a successfully {@link yfiles.input.OrthogonalEdgeEditingContext#dragFinished finished drag} to clean up artifacts of modified edges. - * @param {yfiles.graph.IGraph} graph The graph. + * @param graph The graph. * @see yfiles.input.OrthogonalEdgeEditingContext#cleanUpEdgePath * @protected */ @@ -40034,10 +40079,10 @@ declare namespace system{ * edit that need to move adjacent bends implicitly. Implementations should pass as the parameters the movement information * that controls the vertical or horizontal movement of the bend implicitly. *

    - * @param {yfiles.graph.IBend} bend The implicitly moved bend. - * @param {yfiles.input.MovementInfo} verticalAdjacentInfo The movement info that implicitly constrains the vertical movement of the bend or null. - * @param {yfiles.input.MovementInfo} horizontalAdjacentInfo The movement info that implicitly constrains the horizontal movement of the bend or null. - * @returns {yfiles.input.MovementInfo} The info to be used by clients that requested it. + * @param bend The implicitly moved bend. + * @param verticalAdjacentInfo The movement info that implicitly constrains the vertical movement of the bend or null. + * @param horizontalAdjacentInfo The movement info that implicitly constrains the horizontal movement of the bend or null. + * @returns The info to be used by clients that requested it. */ createImplicitlyMovedBendInfo(bend:yfiles.graph.IBend,horizontalAdjacentInfo:yfiles.input.MovementInfo,verticalAdjacentInfo:yfiles.input.MovementInfo):yfiles.input.MovementInfo; /** @@ -40059,8 +40104,8 @@ declare namespace system{ dragInitialized():void; /** * Gets the {@link yfiles.input.MovementInfo movement infos} that describe the orthogonal path of the edge. - * @param {yfiles.graph.IEdge} edge The edge to obtain the infos for. - * @returns {yfiles.collections.IListEnumerable.} An array that contains for the first entry the source end of the edge, then all bends and then as the final entry the + * @param edge The edge to obtain the infos for. + * @returns An array that contains for the first entry the source end of the edge, then all bends and then as the final entry the * target end of the edge. For the bends, this can be be null values if nothing is known about the bend, yet. * @protected */ @@ -40070,8 +40115,8 @@ declare namespace system{ *

    * This implementation obtains the helper instance from the {@link yfiles.graph.ILookup#lookup} of the edge. *

    - * @param {yfiles.graph.IEdge} edge The edge to obtain the helper instance for. - * @returns {yfiles.input.IOrthogonalEdgeHelper} The helper instance to use or null, in which case the default behavior will be used. + * @param edge The edge to obtain the helper instance for. + * @returns The helper instance to use or null, in which case the default behavior will be used. * @see yfiles.input.OrthogonalEdgeHelper * @protected */ @@ -40081,9 +40126,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper GetOrthogonalEdgeHelper()}.{@link yfiles.input.IOrthogonalEdgeHelper#getSegmentOrientation GetSegmentOrientation} method to yield the orientation. *

    - * @param {yfiles.graph.IEdge} edge The edge to determine the orientation of the segment. - * @param {number} segmentIndex Index of the segment. - * @returns {yfiles.input.SegmentOrientation} The orientation of the segment. + * @param edge The edge to determine the orientation of the segment. + * @param segmentIndex Index of the segment. + * @returns The orientation of the segment. */ getSegmentOrientation(edge:yfiles.graph.IEdge,segmentIndex:number):yfiles.input.SegmentOrientation; /** @@ -40094,7 +40139,7 @@ declare namespace system{ * that perform the actual edit need to be initialized and as soon as this has been done, {@link yfiles.input.OrthogonalEdgeEditingContext#dragInitialized} * should be called. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the edit is going to be performed. + * @param context The context in which the edit is going to be performed. * @throws {Stubs.Exceptions.InvalidOperationError} If this context is already {@link yfiles.input.OrthogonalEdgeEditingContext#addInitializedListener Initialized} * or currently * {@link yfiles.input.OrthogonalEdgeEditingContext#addInitializingListener Initializing}. @@ -40109,9 +40154,9 @@ declare namespace system{ * This implementation will always yield false if it is {@link yfiles.input.OrthogonalEdgeEditingContext#enabled disabled}. Otherwise {@link yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper} * will be used to delegate the query to {@link yfiles.input.IOrthogonalEdgeHelper#shouldEditOrthogonally}. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context which is editing the edge. - * @param {yfiles.graph.IEdge} edge The edge that will be edited. - * @returns {boolean} true if this edge should be orthogonally edited for the specified input mode context; false otherwise. + * @param context The input mode context which is editing the edge. + * @param edge The edge that will be edited. + * @returns true if this edge should be orthogonally edited for the specified input mode context; false otherwise. * @see yfiles.input.OrthogonalEdgeEditingContext#enabled * @see yfiles.input.IOrthogonalEdgeHelper#shouldEditOrthogonally */ @@ -40122,21 +40167,21 @@ declare namespace system{ *

    * This state will be reset after the current edit. *

    - * @param {yfiles.graph.IEdge} edge The edge to lock the ports of. + * @param edge The edge to lock the ports of. * @see yfiles.input.OrthogonalEdgeEditingContext#lockedPortEdges */ lockPortMovement(edge:yfiles.graph.IEdge):void; /** * Raises the {@link yfiles.input.OrthogonalEdgeEditingContext#addCleanedUpListener CleanedUp} * event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onCleanedUp(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.OrthogonalEdgeEditingContext#addInitializedListener Initialized} * event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.input.OrthogonalEdgeEditingContext#addInitializedListener * @see yfiles.input.OrthogonalEdgeEditingContext#dragInitialized * @protected @@ -40145,7 +40190,7 @@ declare namespace system{ /** * Raises the {@link yfiles.input.OrthogonalEdgeEditingContext#addInitializingListener Initializing} * event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.input.OrthogonalEdgeEditingContext#addInitializingListener * @see yfiles.input.OrthogonalEdgeEditingContext#initializeDrag * @protected @@ -40154,7 +40199,8 @@ declare namespace system{ /** * Called during {@link yfiles.input.OrthogonalEdgeEditingContext#dragInitialized} to prepare the edge paths for orthogonal * editing. - * @param {yfiles.graph.IGraph} graph The graph that contains the edges to be edited. + * @param graph The graph that contains the edges to be edited. + * @see yfiles.input.OrthogonalEdgeEditingContext#prepareOrthogonalEdge * @protected */ prepareEdgePaths(graph:yfiles.graph.IGraph):void; @@ -40164,30 +40210,30 @@ declare namespace system{ * This method inspects an edge and possibly inserts new bends into an edge to assure that during editing the orthogonality * won't be lost. *

    - * @param {yfiles.graph.IGraph} graph The graph to use for modifying the bends. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @param {yfiles.collections.IListEnumerable.} orientations The orientations of the segments - the array is of length (edge.Bends.Count + 1). - * @param {yfiles.collections.IListEnumerable.} infos The {@link yfiles.input.MovementInfo} instances for the source end, the bends, and the target end. This array contains {@link yfiles.input.MovementInfo} - * instances representing either edge ends or ports at the first and last position and {@link yfiles.input.MovementInfo}s or null + * @param graph The graph to use for modifying the bends. + * @param edge The edge to inspect. + * @param orientations The orientations of the segments - the array is of length (edge.Bends.Count + 1). + * @param infos The {@link } instances for the source end, the bends, and the target end. This array contains {@link } + * instances representing either edge ends or ports at the first and last position and {@link }s or null * entries for the bends. The length thus is (edge.Bends.Count + 2) and null entries indicate that there is no information * about the movement (in case the bend will only be moved implicitly later, if at all). * @protected */ prepareOrthogonalEdge(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,orientations:yfiles.collections.IListEnumerable,infos:yfiles.collections.IListEnumerable):void; /** - * Can be used by subclasses during PrepareOrthogonalEdge(IGraph,IEdge,SegmentOrientation[],MovementInfo[]) to register - * added bends that can later be {@link yfiles.input.OrthogonalEdgeEditingContext#removeAddedBends removed} in case the operation is canceled. + * Can be used by subclasses during {@link yfiles.input.OrthogonalEdgeEditingContext#prepareOrthogonalEdge} to register added bends + * that can later be {@link yfiles.input.OrthogonalEdgeEditingContext#removeAddedBends removed} in case the operation is canceled. *

    * This method will only record the addition of bends if this instance is {@link yfiles.input.OrthogonalEdgeEditingContext#isInitialized initialized} or {@link yfiles.input.OrthogonalEdgeEditingContext#addInitializingListener still initializing}. *

    - * @param {yfiles.graph.IBend} bend The bend that has been added to guarantee orthogonality. + * @param bend The bend that has been added to guarantee orthogonality. * @protected */ registerAddedBend(bend:yfiles.graph.IBend):void; /** * Removes previously {@link yfiles.input.OrthogonalEdgeEditingContext#registerAddedBend registered} added bends. - * @param {yfiles.graph.IGraph} graph The graph to use for removing the bends. - * @param {yfiles.collections.IEnumerable.} addedBends The added bends. + * @param graph The graph to use for removing the bends. + * @param addedBends The added bends. * @see yfiles.input.OrthogonalEdgeEditingContext#addedBends * @see yfiles.input.OrthogonalEdgeEditingContext#registerAddedBend * @protected @@ -40205,9 +40251,9 @@ declare namespace system{ * unless the side of the edge is connected to an {@link yfiles.graph.IPortOwner} instance that is marked as {@link yfiles.input.OrthogonalEdgeEditingContext#addTransformedPortOwner transformed} during the * edit. *

    - * @param {yfiles.graph.IEdge} edge The edge for which it should be determined whether the edge end can be moved. - * @param {boolean} sourceSide if set to true the source side of the end is queried, else the target side. - * @returns {boolean} true if the specified side of the edge can be moved; false otherwise, in which case the segment should be split to + * @param edge The edge for which it should be determined whether the edge end can be moved. + * @param sourceSide if set to true the source side of the end is queried, else the target side. + * @returns true if the specified side of the edge can be moved; false otherwise, in which case the segment should be split to * maintain orthogonality. * @see yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper * @see yfiles.input.IOrthogonalEdgeHelper#shouldMoveEndImplicitly @@ -40216,7 +40262,7 @@ declare namespace system{ shouldMoveEndImplicitly(edge:yfiles.graph.IEdge,sourceSide:boolean):boolean; /** * Adds the given listener for the CleanedUp event that occurs when the recent edit operation has been cleaned up. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.OrthogonalEdgeEditingContext#cleanUp * @see yfiles.input.OrthogonalEdgeEditingContext#onCleanedUp * @see yfiles.input.OrthogonalEdgeEditingContext#removeCleanedUpListener @@ -40224,7 +40270,7 @@ declare namespace system{ addCleanedUpListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the CleanedUp event that occurs when the recent edit operation has been cleaned up. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.OrthogonalEdgeEditingContext#cleanUp * @see yfiles.input.OrthogonalEdgeEditingContext#onCleanedUp * @see yfiles.input.OrthogonalEdgeEditingContext#addCleanedUpListener @@ -40232,7 +40278,7 @@ declare namespace system{ removeCleanedUpListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Initializing event that occurs when the edit is about to be initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.OrthogonalEdgeEditingContext#initializeDrag * @see yfiles.input.OrthogonalEdgeEditingContext#onInitializing * @see yfiles.input.OrthogonalEdgeEditingContext#removeInitializingListener @@ -40240,7 +40286,7 @@ declare namespace system{ addInitializingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Initializing event that occurs when the edit is about to be initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.OrthogonalEdgeEditingContext#initializeDrag * @see yfiles.input.OrthogonalEdgeEditingContext#onInitializing * @see yfiles.input.OrthogonalEdgeEditingContext#addInitializingListener @@ -40248,7 +40294,7 @@ declare namespace system{ removeInitializingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Initialized event that occurs when the edit has been initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.OrthogonalEdgeEditingContext#dragInitialized * @see yfiles.input.OrthogonalEdgeEditingContext#onInitialized * @see yfiles.input.OrthogonalEdgeEditingContext#removeInitializedListener @@ -40256,7 +40302,7 @@ declare namespace system{ addInitializedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Initialized event that occurs when the edit has been initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.OrthogonalEdgeEditingContext#dragInitialized * @see yfiles.input.OrthogonalEdgeEditingContext#onInitialized * @see yfiles.input.OrthogonalEdgeEditingContext#addInitializedListener @@ -40339,7 +40385,7 @@ declare namespace system{ * This class inspects the edges in question and infers the * {@link yfiles.input.SegmentOrientation}s of the segments from the current geometry of the edge path. *

    - * @class yfiles.input.OrthogonalEdgeHelper + * @class * @implements {yfiles.input.IOrthogonalEdgeHelper} */ export interface OrthogonalEdgeHelper extends Object,yfiles.input.IOrthogonalEdgeHelper{} @@ -40349,9 +40395,9 @@ declare namespace system{ *

    * This implementation always returns true. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.graph.IBend} bend The bend that is designated for removal. - * @returns {boolean} + * @param context The input mode context. + * @param bend The bend that is designated for removal. + * @returns * @protected */ canRemoveBend(context:yfiles.input.IInputModeContext,bend:yfiles.graph.IBend):boolean; @@ -40360,9 +40406,9 @@ declare namespace system{ *

    * The default implementation in this class removes duplicate and collinear bends, as well as segments of zero length. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context which edited the edge. - * @param {yfiles.graph.IGraph} graph The graph to use for modifying the edge instance. - * @param {yfiles.graph.IEdge} edge The edge to clean up the path. + * @param context The input mode context which edited the edge. + * @param graph The graph to use for modifying the edge instance. + * @param edge The edge to clean up the path. */ cleanUpEdge(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge):void; /** @@ -40371,10 +40417,10 @@ declare namespace system{ * If the segment has a zero length, the adjacent segments will be inspected to infer the orientation such that the * orientation toggles between {@link yfiles.input.SegmentOrientation#VERTICAL} and {@link yfiles.input.SegmentOrientation#HORIZONTAL}. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the orientation is needed. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @param {number} segmentIndex The index of the segment. - * @returns {yfiles.input.SegmentOrientation} The declared orientation of the segment. + * @param context The input mode context in which the orientation is needed. + * @param edge The edge to inspect. + * @param segmentIndex The index of the segment. + * @returns The declared orientation of the segment. */ getSegmentOrientation(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,segmentIndex:number):yfiles.input.SegmentOrientation; /** @@ -40385,9 +40431,9 @@ declare namespace system{ *

    * The default implementation in this class always returns true. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the edge is about to be edited. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @returns {boolean} true if the edge should be orthogonally edited in the specified input mode context; false otherwise. + * @param context The input mode context in which the edge is about to be edited. + * @param edge The edge to inspect. + * @returns true if the edge should be orthogonally edited in the specified input mode context; false otherwise. */ shouldEditOrthogonally(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge):boolean; /** @@ -40399,10 +40445,10 @@ declare namespace system{ *

    * The default implementation in this class always returns false. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the segment is edited. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @param {boolean} sourceEnd if set to true the source end of the edge is queried, otherwise the target end. - * @returns {boolean} true if the end of the edge can be moved for the specified input mode context; false otherwise, in which case the + * @param context The input mode context in which the segment is edited. + * @param edge The edge to inspect. + * @param sourceEnd if set to true the source end of the edge is queried, otherwise the target end. + * @returns true if the end of the edge can be moved for the specified input mode context; false otherwise, in which case the * corresponding segment needs to be split to keep the segment orientation orthogonal. */ shouldMoveEndImplicitly(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourceEnd:boolean):boolean; @@ -40415,7 +40461,7 @@ declare namespace system{ * This class also provides snapping facilities and can be used in conjunction with both * {@link yfiles.input.OrthogonalEdgeEditingContext}, as well as {@link yfiles.input.GraphSnapContext}. *

    - * @class yfiles.input.PortLocationModelParameterHandle + * @class * @implements {yfiles.input.IHandle} */ export interface PortLocationModelParameterHandle extends Object,yfiles.input.IHandle{} @@ -40423,14 +40469,13 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.input.PortLocationModelParameterHandle} class to change the {@link yfiles.graph.IPortLocationModelParameter} * of the given port - * @param {yfiles.graph.IPort} port The port to adjust the location parameter of. - * @constructor + * @param port The port to adjust the location parameter of. */ constructor(port:yfiles.graph.IPort); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** @@ -40439,22 +40484,22 @@ declare namespace system{ * This implementation will delegate to the {@link yfiles.input.IPortSnapResultProvider} that has been received from the port this * instance is bound to. *

    - * @param {Object} source The source of the event. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. + * @param source The source of the event. + * @param evt The {@link } instance containing the event data. * @protected */ collectSnapResults(source:Object,evt:yfiles.input.CollectSnapResultsEventArgs):void; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Gets the graph to use for {@link yfiles.graph.IGraph#setPortLocationParameter setting the parameter} from the context. - * @param {yfiles.input.IInputModeContext} context The input mode context to use. - * @returns {yfiles.graph.IGraph} The graph or null if the graph could not be obtained. + * @param context The input mode context to use. + * @returns The graph or null if the graph could not be obtained. * @see yfiles.input.IInputModeContext#graph * @protected */ @@ -40465,38 +40510,38 @@ declare namespace system{ * This is used for the {@link yfiles.input.MovementInfo} that is passed to the {@link yfiles.input.OrthogonalEdgeEditingContext#addMovedPort} * method. *

    - * @param {yfiles.graph.IPort} port The port to determine the move type for. - * @returns {yfiles.input.MoveTypes} This implementation returns {@link yfiles.input.MoveTypes#LINEAR_MOVE} for models of type {@link yfiles.graph.FreeNodePortLocationModel} - * and {@link yfiles.input.MoveTypes#ARBITRARY_MOVE} for all others. + * @param port The port to determine the move type for. + * @returns This implementation returns {@link #LINEAR_MOVE} for models of type {@link } + * and {@link #ARBITRARY_MOVE} for all others. * @protected */ getMoveType(port:yfiles.graph.IPort):yfiles.input.MoveTypes; /** * Callback method that obtains the new parameter for the given location and port. - * @param {yfiles.graph.IPort} port The port to obtain a parameter for. - * @param {yfiles.graph.IPortLocationModel} model The model to use. - * @param {yfiles.geometry.Point} location The new location. - * @returns {yfiles.graph.IPortLocationModelParameter} The new parameter to use. + * @param port The port to obtain a parameter for. + * @param model The model to use. + * @param location The new location. + * @returns The new parameter to use. * @protected */ getNewParameter(port:yfiles.graph.IPort,model:yfiles.graph.IPortLocationModel,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** * Callback method that applies the parameter. - * @param {yfiles.graph.IGraph} graph The graph to use for applying. - * @param {yfiles.graph.IPort} port The port to apply the parameter to. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The new parameter to apply. + * @param graph The graph to use for applying. + * @param port The port to apply the parameter to. + * @param locationParameter The new parameter to apply. * @protected */ setParameter(graph:yfiles.graph.IGraph,port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):void; @@ -40526,7 +40571,7 @@ declare namespace system{ /** * Simple default implementation of {@link yfiles.input.IReparentNodeHandler} that treats shift key presses as reparent gestures * and allows for reparenting all nodes. - * @class yfiles.input.ReparentNodeHandler + * @class * @implements {yfiles.input.IReparentNodeHandler} */ export interface ReparentNodeHandler extends Object,yfiles.input.IReparentNodeHandler{} @@ -40534,31 +40579,31 @@ declare namespace system{ constructor(); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.INode} node - * @returns {boolean} + * @param context + * @param node + * @returns */ isReparentGesture(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.INode} node - * @param {yfiles.graph.INode} newParent - * @returns {boolean} + * @param context + * @param node + * @param newParent + * @returns */ isValidParent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.INode} node - * @param {yfiles.graph.INode} newParent + * @param context + * @param node + * @param newParent */ reparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):void; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.INode} node - * @returns {boolean} + * @param context + * @param node + * @returns */ shouldReparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; /** @@ -40579,7 +40624,7 @@ declare namespace system{ * This implementation uses the {@link yfiles.input.GraphSnapContext} to create snap lines around the geometric border of the * node. *

    - * @class yfiles.input.NodeSnapLineProvider + * @class * @implements {yfiles.input.ISnapLineProvider} */ export interface NodeSnapLineProvider extends Object,yfiles.input.ISnapLineProvider{} @@ -40591,11 +40636,11 @@ declare namespace system{ * This method is called by {@link yfiles.input.NodeSnapLineProvider#addSnapLines} and by default used the {@link yfiles.input.NodeSnapLineProvider#createCenterSnapLine} * to add them to the {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedNodeSnapLine fixed node} and {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedSegmentSnapLine fixed segment} collections *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.geometry.Rect} layout The layout of the node to use for adding the snap lines. + * @param evt The argument to use for adding snap lines. + * @param node The node to add snap lines for. + * @param layout The layout of the node to use for adding the snap lines. * @protected */ addCenterSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; @@ -40604,11 +40649,11 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeSnapLineProvider#addSnapLines} *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.geometry.Rect} layout The layout of the node to use for adding the snap lines. + * @param evt The argument to use for adding snap lines. + * @param node The node to add snap lines for. + * @param layout The layout of the node to use for adding the snap lines. * @protected */ addFixedNodeBorderSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; @@ -40618,11 +40663,11 @@ declare namespace system{ * This method is called by {@link yfiles.input.NodeSnapLineProvider#addSnapLines} and uses the {@link yfiles.input.GraphSnapContext#nodeToNodeDistance} to determine the location of the * segments to add around the layout. *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.geometry.Rect} layout The layout of the node to use for adding the snap lines. + * @param evt The argument to use for adding snap lines. + * @param node The node to add snap lines for. + * @param layout The layout of the node to use for adding the snap lines. * @protected */ addNodeToNodeSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; @@ -40632,11 +40677,11 @@ declare namespace system{ * This method is called by {@link yfiles.input.NodeSnapLineProvider#addSnapLines} and uses the {@link yfiles.input.GraphSnapContext#nodeToEdgeDistance} to determine the location of the * segments to add around the layout. *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.geometry.Rect} layout The layout of the node to use for adding the snap lines. + * @param evt The argument to use for adding snap lines. + * @param node The node to add snap lines for. + * @param layout The layout of the node to use for adding the snap lines. * @protected */ addNodeToSegmentSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; @@ -40646,11 +40691,11 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeSnapLineProvider#addSnapLines} *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.geometry.Rect} layout The layout of the node to use for adding the snap lines. + * @param evt The argument to use for adding snap lines. + * @param node The node to add snap lines for. + * @param layout The layout of the node to use for adding the snap lines. * @protected */ addPortSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; @@ -40662,20 +40707,20 @@ declare namespace system{ * {@link yfiles.input.NodeSnapLineProvider#addFixedNodeBorderSnapLines}, {@link yfiles.input.NodeSnapLineProvider#addPortSnapLines}, * {@link yfiles.input.NodeSnapLineProvider#addNodeToNodeSnapLines}, and {@link yfiles.input.NodeSnapLineProvider#addCenterSnapLines}. *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.IModelItem} item The item to add snap lines for. + * @param evt The argument to use for adding snap lines. + * @param item The item to add snap lines for. */ addSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,item:yfiles.graph.IModelItem):void; /** * Convenience method that creates a snap line for the center of nodes. - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.input.SnapLineOrientation} orientation The snap line orientation. - * @param {yfiles.geometry.Point} location The location of the snap line. - * @returns {yfiles.input.OrthogonalSnapLine} A snap line that other centers can snap to. + * @param node The node to add snap lines for. + * @param orientation The snap line orientation. + * @param location The location of the snap line. + * @returns A snap line that other centers can snap to. * @protected */ createCenterSnapLine(context:yfiles.input.GraphSnapContext,node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,location:yfiles.geometry.Point):yfiles.input.OrthogonalSnapLine; @@ -40688,19 +40733,19 @@ declare namespace system{ * This implementation can be put into the {@link yfiles.graph.ILookup#lookup} of an {@link yfiles.graph.IEdge}. *

    * @see yfiles.graph.EdgeDecorator#snapLineProviderDecorator - * @class yfiles.input.EdgeSnapLineProvider + * @class * @implements {yfiles.input.ISnapLineProvider} */ export interface EdgeSnapLineProvider extends Object,yfiles.input.ISnapLineProvider{} export class EdgeSnapLineProvider { /** * Adds horizontal snap lines for a horizontally oriented fixed segment snap lines. - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.graph.IEdge} edge The edge to add snap lines for. - * @param {yfiles.geometry.Point} segmentStart The start of the segment. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.geometry.Point} segmentEnd The end of the segment. + * @param edge The edge to add snap lines for. + * @param segmentStart The start of the segment. + * @param evt The argument to use for adding snap lines. + * @param segmentEnd The end of the segment. * @see yfiles.input.EdgeSnapLineProvider#addVerticalSegmentSnapLines * @protected */ @@ -40712,20 +40757,20 @@ declare namespace system{ * For each fixed segment, it will call {@link yfiles.input.EdgeSnapLineProvider#addVerticalSegmentSnapLines} or {@link yfiles.input.EdgeSnapLineProvider#addHorizontalSegmentSnapLines} * respectively. *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.graph.IModelItem} item The item to add snap lines for. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. + * @param item The item to add snap lines for. + * @param evt The argument to use for adding snap lines. */ addSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,item:yfiles.graph.IModelItem):void; /** * Adds vertical snap lines for a vertically oriented fixed segment snap lines. - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.graph.IEdge} edge The edge to add snap lines for. - * @param {yfiles.geometry.Point} segmentStart The start of the segment. - * @param {yfiles.geometry.Point} segmentEnd The end of the segment. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. + * @param edge The edge to add snap lines for. + * @param segmentStart The start of the segment. + * @param segmentEnd The end of the segment. + * @param evt The argument to use for adding snap lines. * @see yfiles.input.EdgeSnapLineProvider#addHorizontalSegmentSnapLines * @protected */ @@ -40734,7 +40779,7 @@ declare namespace system{ } /** * The default implementation of the {@link yfiles.input.INodeSnapResultProvider} interface. - * @class yfiles.input.NodeSnapResultProvider + * @class * @implements {yfiles.input.INodeSnapResultProvider} */ export interface NodeSnapResultProvider extends Object,yfiles.input.INodeSnapResultProvider{} @@ -40746,10 +40791,10 @@ declare namespace system{ * as the additional arguments. This method snaps the location to the next grid point or grid lines that are determined by * {@link yfiles.input.GraphSnapContext#nodeGridConstraintProvider} or obtained from the {@link yfiles.input.InputModeEventArgs#context}. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The arguments to add the results to. - * @param {yfiles.geometry.Point} location A location in the layout of the suggested layout of the node that will be snapped to a grid point location. - * @param {yfiles.graph.INode} node The node that is currently being processed. + * @param context The context in which the snapping is performed. + * @param evt The arguments to add the results to. + * @param location A location in the layout of the suggested layout of the node that will be snapped to a grid point location. + * @param node The node that is currently being processed. * @protected */ addGridSnapResult(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,location:yfiles.geometry.Point,node:yfiles.graph.INode):void; @@ -40758,13 +40803,13 @@ declare namespace system{ *

    * This method snaps the location to the next grid point or grid lines that are determined by {@link yfiles.input.GraphSnapContext#nodeGridConstraintProvider} or obtained from the {@link yfiles.input.InputModeEventArgs#context}. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The arguments to add the results to. - * @param {yfiles.geometry.Point} location A location in the layout of the suggested layout of the node that will be snapped to a grid point location. - * @param {yfiles.graph.INode} node The node that is currently being processed. - * @param {yfiles.input.GridSnapTypes} gridSnapType The type of snapping that should be performed. - * @param {yfiles.input.SnapPolicy} xSnapPolicy How to snap the x coordinate. - * @param {yfiles.input.SnapPolicy} ySnapPolicy How to snap the y coordinate. + * @param context The context in which the snapping is performed. + * @param evt The arguments to add the results to. + * @param location A location in the layout of the suggested layout of the node that will be snapped to a grid point location. + * @param node The node that is currently being processed. + * @param gridSnapType The type of snapping that should be performed. + * @param xSnapPolicy How to snap the x coordinate. + * @param ySnapPolicy How to snap the y coordinate. * @protected */ addGridSnapResultCore(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,location:yfiles.geometry.Point,node:yfiles.graph.INode,gridSnapType:yfiles.input.GridSnapTypes,xSnapPolicy:yfiles.input.SnapPolicy,ySnapPolicy:yfiles.input.SnapPolicy):void; @@ -40774,10 +40819,10 @@ declare namespace system{ * This implementation simply delegates to {@link yfiles.input.NodeSnapResultProvider#addGridSnapResult} using the center of the * suggestedLayout. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The arguments to add the results to. - * @param {yfiles.geometry.Rect} suggestedLayout The layout of the node if it would move without snapping. - * @param {yfiles.graph.INode} node The node that is currently being processed. + * @param context The context in which the snapping is performed. + * @param evt The arguments to add the results to. + * @param suggestedLayout The layout of the node if it would move without snapping. + * @param node The node that is currently being processed. * @protected */ collectGridSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; @@ -40787,19 +40832,19 @@ declare namespace system{ * For each snap line that could be snapped to, this method calls * {@link yfiles.input.NodeSnapResultProvider#collectSnapResultsForSnapLine}. *

    - * @param {yfiles.input.GraphSnapContext} context The context for which the results are being queried. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance to which the results should be {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult added}. - * @param {yfiles.geometry.Rect} suggestedLayout The suggested layout of the node. - * @param {yfiles.graph.INode} node The node that is being dragged. + * @param context The context for which the results are being queried. + * @param evt The {@link } instance to which the results should be {@link #addSnapResult added}. + * @param suggestedLayout The suggested layout of the node. + * @param node The node that is being dragged. * @protected */ collectSnapLineSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; /** * - * @param {yfiles.input.GraphSnapContext} context - * @param {yfiles.input.CollectSnapResultsEventArgs} evt - * @param {yfiles.geometry.Rect} suggestedLayout - * @param {yfiles.graph.INode} node + * @param context + * @param evt + * @param suggestedLayout + * @param node */ collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; /** @@ -40808,10 +40853,10 @@ declare namespace system{ * If the node will snap, a {@link yfiles.input.SnapResult} for a {@link yfiles.input.SnapLine} will be created and added to the event * argument. *

    - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The arguments to add the results to. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to test snapping for. - * @param {yfiles.geometry.Rect} suggestedLayout The layout of the node if it would move without snapping. - * @param {yfiles.graph.INode} node The node that is currently being processed. + * @param evt The arguments to add the results to. + * @param snapLine The snap line to test snapping for. + * @param suggestedLayout The layout of the node if it would move without snapping. + * @param node The node that is currently being processed. * @protected */ collectSnapResultsForSnapLine(evt:yfiles.input.CollectSnapResultsEventArgs,snapLine:yfiles.input.OrthogonalSnapLine,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; @@ -40826,7 +40871,7 @@ declare namespace system{ } /** * The default implementation of the {@link yfiles.input.INodeReshapeSnapResultProvider} interface. - * @class yfiles.input.NodeReshapeSnapResultProvider + * @class * @implements {yfiles.input.INodeReshapeSnapResultProvider} */ export interface NodeReshapeSnapResultProvider extends Object,yfiles.input.INodeReshapeSnapResultProvider{} @@ -40836,16 +40881,16 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeReshapeSnapResultProvider#collectGridSnapResults} for each grid line snap. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {number} delta The amount the mouse needs to be moved in order to get to the snapping location. - * @param {yfiles.geometry.Point} snappedLocation The location of the mouse that is associated with the grid point. - * @param {yfiles.input.SnapLineSnapTypes} snapLineType The type of snap line. - * @param {yfiles.geometry.IPoint} snapLineLocation The point at which the snap line is anchored. - * @param {number} from Where the snap line starts. - * @param {number} to Where the snap line ends. - * @param {yfiles.geometry.Point} snapLinePoint A point of interest on the snap line that can be highlighted. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param delta The amount the mouse needs to be moved in order to get to the snapping location. + * @param snappedLocation The location of the mouse that is associated with the grid point. + * @param snapLineType The type of snap line. + * @param snapLineLocation The point at which the snap line is anchored. + * @param from Where the snap line starts. + * @param to Where the snap line ends. + * @param snapLinePoint A point of interest on the snap line that can be highlighted. * @protected */ addGridLineSnapResult(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,snapLineType:yfiles.input.SnapLineSnapTypes,snapLineLocation:yfiles.geometry.IPoint,delta:number,snappedLocation:yfiles.geometry.Point,from:number,to:number,snapLinePoint:yfiles.geometry.Point):void; @@ -40854,12 +40899,12 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeReshapeSnapResultProvider#collectGridSnapResults} for each grid snap. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.IGridConstraintProvider.} provider The provider that is associated with the grid snapping. - * @param {yfiles.geometry.Point} gridSnappedPoint The point on the grid that should be highlighted. - * @param {yfiles.geometry.Point} snappedLocation The location of the mouse that is associated with the grid point. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param provider The provider that is associated with the grid snapping. + * @param gridSnappedPoint The point on the grid that should be highlighted. + * @param snappedLocation The location of the mouse that is associated with the grid point. * @protected */ addGridSnapResult(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,provider:yfiles.input.IGridConstraintProvider,gridSnappedPoint:yfiles.geometry.Point,snappedLocation:yfiles.geometry.Point):void; @@ -40868,15 +40913,15 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeReshapeSnapResultProvider#collectSameSizeSnapResults} for each result found. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. This will be used to {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add} the result + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. This will be used to {@link #addSnapResult add} the result * to. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the result - indicates whether width or height have been snapped. - * @param {yfiles.collections.IEnumerable.} rectangles The rectangles that have the same width or height as the node will - this does not yet includes the rectangle of the + * @param node The node that is being reshaped. + * @param orientation The orientation of the result - indicates whether width or height have been snapped. + * @param rectangles The rectangles that have the same width or height as the node will - this does not yet includes the rectangle of the * node being reshaped. - * @param {number} finalSize The target size to which the node will snap. - * @param {number} snapDelta The snap delta that the mouse needs to be moved in order to snap. + * @param finalSize The target size to which the node will snap. + * @param snapDelta The snap delta that the mouse needs to be moved in order to snap. * @protected */ addSameSizeSnapResult(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,rectangles:yfiles.collections.IEnumerable,finalSize:number,snapDelta:number):void; @@ -40885,22 +40930,22 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeReshapeSnapResultProvider#collectSnapLineResults} for each snap line snap. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to which the node can be snapped - * @param {number} delta The amount the mouse needs to be moved in order to get to the snapping location. - * @param {yfiles.geometry.Point} snapPoint The point of interest that can be highlighted on the snap line. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param snapLine The snap line to which the node can be snapped + * @param delta The amount the mouse needs to be moved in order to get to the snapping location. + * @param snapPoint The point of interest that can be highlighted on the snap line. * @protected */ addSnaplineSnapResult(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,snapLine:yfiles.input.OrthogonalSnapLine,delta:number,snapPoint:yfiles.geometry.Point):void; /** * Collects the snap results for the grid. - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext The reshape context that describes how the node's layout is reshaped. - * @param {yfiles.geometry.Rect} suggestedLayout The suggested layout of the node. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param reshapeContext The reshape context that describes how the node's layout is reshaped. + * @param suggestedLayout The suggested layout of the node. * @protected */ collectGridSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext,suggestedLayout:yfiles.geometry.Rect):void; @@ -40910,11 +40955,11 @@ declare namespace system{ * This method ultimately delegates to {@link yfiles.input.NodeReshapeSnapResultProvider#addSameSizeSnapResult} to add the results * to the event argument. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext The reshape context that contains information about the nature of the resize. - * @param {yfiles.geometry.Rect} suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param reshapeContext The reshape context that contains information about the nature of the resize. + * @param suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. * @protected */ collectSameSizeSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext,suggestedLayout:yfiles.geometry.Rect):void; @@ -40925,11 +40970,11 @@ declare namespace system{ * to the event argument. Method {@link yfiles.input.NodeReshapeSnapResultProvider#getSnapLines} is used to query the snap lines * that will be checked by this method. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext The reshape context that contains information about the nature of the resize. - * @param {yfiles.geometry.Rect} suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param reshapeContext The reshape context that contains information about the nature of the resize. + * @param suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. * @protected */ collectSnapLineResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext,suggestedLayout:yfiles.geometry.Rect):void; @@ -40944,10 +40989,10 @@ declare namespace system{ *
  • {@link yfiles.input.NodeReshapeSnapResultProvider#collectSameSizeSnapResults}
  • *
  • {@link yfiles.input.NodeReshapeSnapResultProvider#collectSnapLineResults}
  • * - * @param {yfiles.input.GraphSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the context from and add the results to. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext Carries information about the reshape process. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the context from and add the results to. + * @param node The node that is being reshaped. + * @param reshapeContext Carries information about the reshape process. */ collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext):void; /** @@ -40956,11 +41001,11 @@ declare namespace system{ *

    * This method aggregates the {@link yfiles.input.GraphSnapContext#getFixedNodeSnapLines fixed nodes' snaplines} and the {@link yfiles.input.GraphSnapContext#getAdditionalSnapLines additional snap lines} that are relevant to the node. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext The reshape context that contains information about the nature of the resize. - * @param {yfiles.geometry.Rect} suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. - * @returns {yfiles.collections.IEnumerable.} + * @param context The context in which the snapping is performed. + * @param node The node that is being reshaped. + * @param reshapeContext The reshape context that contains information about the nature of the resize. + * @param suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. + * @returns * @protected */ getSnapLines(context:yfiles.input.GraphSnapContext,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext,suggestedLayout:yfiles.geometry.Rect):yfiles.collections.IEnumerable; @@ -40978,69 +41023,69 @@ declare namespace system{ *

    * An instance of this class can be found in the {@link yfiles.graph.ILookup#lookup} of an edge, e.g. *

    - * @class yfiles.input.DefaultBendCreator + * @class * @implements {yfiles.input.IBendCreator} */ export interface DefaultBendCreator extends Object,yfiles.input.IBendCreator{} export class DefaultBendCreator { /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.IGraph} graph - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.geometry.Point} location - * @returns {number} + * @param context + * @param graph + * @param edge + * @param location + * @returns */ createBend(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,location:yfiles.geometry.Point):number; static $class:yfiles.lang.Class; } /** * An abstract convenience implementation of the {@link yfiles.input.IPortCandidateProvider} interface. - * @class yfiles.input.PortCandidateProviderBase + * @class * @implements {yfiles.input.IPortCandidateProvider} */ export interface PortCandidateProviderBase extends Object,yfiles.input.IPortCandidateProvider{} export class PortCandidateProviderBase { /** * Convenience method for subclasses that adds all existing {@link yfiles.graph.IPortOwner#ports} of the owner to the provided list. - * @param {yfiles.graph.IPortOwner} owner The port owner whose ports should be added. - * @param {yfiles.collections.IList.} list The list to add candidates for existing ports to. + * @param owner The port owner whose ports should be added. + * @param list The list to add candidates for existing ports to. * @protected */ addExistingPorts(owner:yfiles.graph.IPortOwner,list:yfiles.collections.IList):void; /** * Factory method that creates a simple candidate that will use the {@link yfiles.input.PortCandidateProviderBase#createInstance} * method of this instance to delegate {@link yfiles.input.IPortCandidate#createPort} queries to. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The location of the candidate. This instance is assigned by reference to the candidate. - * @param {yfiles.graph.IPortOwner} owner The owner to use for the candidate. - * @param {boolean} [valid=true] Whether the port should be {@link yfiles.input.PortCandidateValidity#VALID}. - * @returns {yfiles.input.DefaultPortCandidate} A candidate whose {@link yfiles.input.IPortCandidate#createPort} method delegates to this instance's - * {@link yfiles.input.PortCandidateProviderBase#createInstance}. + * @param locationParameter The location of the candidate. This instance is assigned by reference to the candidate. + * @param owner The owner to use for the candidate. + * @param [valid=true] Whether the port should be {@link #VALID}. + * @returns A candidate whose {@link #createPort} method delegates to this instance's + * {@link #createInstance}. * @protected */ createCandidate(owner:yfiles.graph.IPortOwner,locationParameter:yfiles.graph.IPortLocationModelParameter,valid?:boolean):yfiles.input.DefaultPortCandidate; /** * Callback method used by the ports created using the factory methods - * CreateCandidate(IPortOwner,IPortLocationModelParameter). + * {@link yfiles.input.PortCandidateProviderBase#createCandidate}. *

    * This method can be overridden by subclasses to perform more sophisticated port creation logic. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the instance is created. - * @param {yfiles.input.DefaultPortCandidate} candidate The candidate to create a port for. - * @returns {yfiles.graph.IPort} The new port. + * @param context The context in which the instance is created. + * @param candidate The candidate to create a port for. + * @returns The new port. * @protected */ createInstance(context:yfiles.input.IInputModeContext,candidate:yfiles.input.DefaultPortCandidate):yfiles.graph.IPort; /** * Callback method used by the ports created using the factory methods - * CreateCandidate(IPortOwner,IPortLocationModelParameter). + * {@link yfiles.input.PortCandidateProviderBase#createCandidate}. *

    * This method can be overridden by subclasses to perform more sophisticated candidate creation logic. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the instance is created. - * @param {yfiles.input.DefaultPortCandidate} candidate The candidate to create a port for. - * @param {yfiles.geometry.Point} suggestedLocation The location to get a candidate for. - * @returns {yfiles.input.IPortCandidate} The new candidate whose {@link yfiles.input.IPortCandidate#validity} may not be {@link yfiles.input.PortCandidateValidity#DYNAMIC}. + * @param context The context in which the instance is created. + * @param candidate The candidate to create a port for. + * @param suggestedLocation The location to get a candidate for. + * @returns The new candidate whose {@link #validity} may not be {@link #DYNAMIC}. * @protected */ getPortCandidateAt(context:yfiles.input.IInputModeContext,candidate:yfiles.input.DefaultPortCandidate,suggestedLocation:yfiles.geometry.Point):yfiles.input.IPortCandidate; @@ -41050,36 +41095,36 @@ declare namespace system{ * This method is used as a callback by most of the getter methods in this class. Subclasses should override this method to * provide the same candidates for all use-cases. *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable collection of port candidates. + * @param context The context for which the candidates should be provided. + * @returns An enumerable collection of port candidates. * @protected * @abstract */ getPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; /** * Convenience implementation that simply delegates to {@link yfiles.input.PortCandidateProviderBase#getPortCandidates}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.input.IPortCandidate} target - * @returns {yfiles.collections.IEnumerable.} + * @param context + * @param target + * @returns */ getSourcePortCandidates(context:yfiles.input.IInputModeContext,target:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; /** * Convenience implementation that simply delegates to {@link yfiles.input.PortCandidateProviderBase#getPortCandidates}. - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.collections.IEnumerable.} + * @param context + * @returns */ getSourcePortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; /** * Convenience implementation that simply delegates to {@link yfiles.input.PortCandidateProviderBase#getPortCandidates}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.input.IPortCandidate} source - * @returns {yfiles.collections.IEnumerable.} + * @param context + * @param source + * @returns */ getTargetPortCandidates(context:yfiles.input.IInputModeContext,source:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; /** * Convenience implementation that simply delegates to {@link yfiles.input.PortCandidateProviderBase#getPortCandidates}. - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.collections.IEnumerable.} + * @param context + * @returns */ getTargetPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; /** @@ -41108,53 +41153,52 @@ declare namespace system{ *

    * @see yfiles.input.PortRelocationHandle#getPortCandidates * @see yfiles.graph.EdgeDecorator#edgeReconnectionPortCandidateProviderDecorator - * @class yfiles.input.PortRelocationHandle + * @class * @implements {yfiles.input.IHandle} */ export interface PortRelocationHandle extends Object,yfiles.input.IHandle{} export class PortRelocationHandle { /** * Creates a new instance of the {@link yfiles.input.PortRelocationHandle} class. - * @param {yfiles.graph.IGraph} graph The graph or null. If the graph instance is not specified, the handle will try to receive the graph from the {@link yfiles.input.IInputModeContext} - * it is passed in during {@link yfiles.input.PortRelocationHandle#initializeDrag}. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {boolean} sourceEnd if set to true the source end will be subject to relocation, otherwise it will be the target port. - * @constructor + * @param graph The graph or null. If the graph instance is not specified, the handle will try to receive the graph from the {@link } + * it is passed in during {@link #initializeDrag}. + * @param edge The edge. + * @param sourceEnd if set to true the source end will be subject to relocation, otherwise it will be the target port. */ constructor(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,sourceEnd:boolean); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Factory method that creates the {@link yfiles.view.ICanvasObjectDescriptor} that will be used to paint the "current" * {@link yfiles.input.IPortCandidate}. - * @returns {yfiles.view.ICanvasObjectDescriptor} The descriptor to use for the rendering in the {@link yfiles.view.CanvasComponent}. + * @returns The descriptor to use for the rendering in the {@link }. * @protected */ createCurrentPortCandidateDescriptor():yfiles.view.ICanvasObjectDescriptor; /** * Factory method that creates the dummy edge that will be shown during the drag operation. - * @param {yfiles.graph.IEdge} edge The edge to be represented by the dummy edge. - * @returns {yfiles.graph.SimpleEdge} The dummy edge instance to use. + * @param edge The edge to be represented by the dummy edge. + * @returns The dummy edge instance to use. * @see yfiles.input.PortRelocationHandle#showDummyEdge * @protected */ createDummyEdge(edge:yfiles.graph.IEdge):yfiles.graph.SimpleEdge; /** * Factory method that creates a dummy paintable for the dummy edge during the drag operation. - * @param {yfiles.graph.SimpleEdge} dummy The dummy to create a paintable for. - * @returns {yfiles.view.IVisualCreator} A paintable that shows the dummy. + * @param dummy The dummy to create a paintable for. + * @returns A paintable that shows the dummy. * @see yfiles.input.PortRelocationHandle#showDummyEdge * @protected */ createDummyEdgeVisualCreator(dummy:yfiles.graph.SimpleEdge):yfiles.view.IVisualCreator; /** * Factory method that creates the candidate for the existing port. - * @param {yfiles.graph.IPort} port The port to create a candidate for. - * @returns {yfiles.input.IPortCandidate} The candidate or null. + * @param port The port to create a candidate for. + * @returns The candidate or null. * @see yfiles.input.PortRelocationHandle#getPortCandidates * @see yfiles.input.PortRelocationHandle#addExistingPort * @protected @@ -41163,30 +41207,30 @@ declare namespace system{ /** * Factory method that creates the {@link yfiles.view.ICanvasObjectDescriptor} that will be used to paint the * {@link yfiles.input.IPortCandidate}s. - * @returns {yfiles.view.ICanvasObjectDescriptor} The descriptor to use for the rendering in the {@link yfiles.view.CanvasComponent}. + * @returns The descriptor to use for the rendering in the {@link }. * @protected */ createPortCandidateDescriptor():yfiles.view.ICanvasObjectDescriptor; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Finds the closest candidate from the given set of candidates. - * @param {yfiles.input.IInputModeContext} context The context in for which the closest handle candidate is sought. - * @param {yfiles.geometry.Point} location The location for which to find a candidate. - * @param {yfiles.collections.IEnumerable.} candidates The list of possible candidates. - * @returns {yfiles.input.IPortCandidate} The closes candidate or null. + * @param context The context in for which the closest handle candidate is sought. + * @param location The location for which to find a candidate. + * @param candidates The list of possible candidates. + * @returns The closes candidate or null. * @protected */ getClosestCandidate(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,candidates:yfiles.collections.IEnumerable):yfiles.input.IPortCandidate; /** * Gets the graph to use from the context. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @returns {yfiles.graph.IGraph} A graph instance or null. + * @param context The input mode context. + * @returns A graph instance or null. * @protected */ getGraph(context:yfiles.input.IInputModeContext):yfiles.graph.IGraph; @@ -41197,10 +41241,10 @@ declare namespace system{ * This implementation returns the result of {@link yfiles.input.IPortCandidate#createPort} or calls {@link yfiles.graph.IGraph#addPort} if * the result was null. *

    - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.input.IPortCandidate} portCandidate The candidate to get a port instance from. - * @param {yfiles.geometry.Point} suggestedLocation The suggested location for the port. - * @returns {yfiles.graph.IPort} A non-null port instance. + * @param context + * @param portCandidate The candidate to get a port instance from. + * @param suggestedLocation The suggested location for the port. + * @returns A non-null port instance. * @see yfiles.input.PortRelocationHandle#setPorts * @protected */ @@ -41211,24 +41255,24 @@ declare namespace system{ * This implementation uses the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} from the edge's {@link yfiles.graph.ILookup#lookup} * to retrieve the candidate sets. If {@link yfiles.input.PortRelocationHandle#addExistingPort} is enabled, the existing port will be part of the candidates. *

    - * @param {yfiles.input.IInputModeContext} context The context that is used to retrieve the candidates for. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {boolean} sourcePort Whether to look for source port candidates. - * @returns {yfiles.collections.IEnumerable.} A non-null enumerable over the candidates. + * @param context The context that is used to retrieve the candidates for. + * @param edge The edge. + * @param sourcePort Whether to look for source port candidates. + * @returns A non-null enumerable over the candidates. * @protected */ getPortCandidates(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourcePort:boolean):yfiles.collections.IEnumerable; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Hides the original edge that during the drag operation. - * @param {yfiles.graph.IEdge} edge The edge to hide. - * @param {yfiles.input.IInputModeContext} context The context to get the canvas the edge should be hidden from. + * @param edge The edge to hide. + * @param context The context to get the canvas the edge should be hidden from. * @see yfiles.input.PortRelocationHandle#unhideOriginalEdge * @see yfiles.input.PortRelocationHandle#showDummyEdge * @protected @@ -41236,7 +41280,7 @@ declare namespace system{ hideOriginalEdge(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge):void; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** @@ -41245,63 +41289,63 @@ declare namespace system{ * This implementation checks whether the the parent input mode is an instance of {@link yfiles.input.HandleInputMode}, the {@link yfiles.input.PortRelocationHandle#portCandidateResolutionRecognizer} * recognizes its {@link yfiles.view.MouseEventArgs}, and the {@link yfiles.input.HandleInputMode#currentHandle}'s location is equal to this {@link yfiles.input.PortRelocationHandle#location}. *

    - * @param {yfiles.input.IInputModeContext} context The context to inspect. - * @returns {boolean} true if port candidates may be resolved; false otherwise. + * @param context The context to inspect. + * @returns true if port candidates may be resolved; false otherwise. * @protected */ isPortCandidateResolutionEnabled(context:yfiles.input.IInputModeContext):boolean; /** * Tries to {@link yfiles.input.IPortCandidate#getPortCandidateAt resolve} a dynamic port candidate for the given location. - * @param {yfiles.input.IInputModeContext} context The context in which the candidate is resolved. - * @param {yfiles.input.IPortCandidate} portCandidate The candidate. - * @param {yfiles.geometry.Point} location The current location. - * @returns {yfiles.input.IPortCandidate} A candidate. + * @param context The context in which the candidate is resolved. + * @param portCandidate The candidate. + * @param location The current location. + * @returns A candidate. * @protected */ resolveCandidate(context:yfiles.input.IInputModeContext,portCandidate:yfiles.input.IPortCandidate,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; /** * Updates the closest candidate for visual feedback. - * @param {yfiles.input.IPortCandidate} portCandidate + * @param portCandidate * @protected */ setClosestCandidate(portCandidate:yfiles.input.IPortCandidate):void; /** * Callback that is triggered by {@link yfiles.input.PortRelocationHandle#dragFinished} to actually change the port. - * @param {yfiles.input.IInputModeContext} context The context. - * @param {yfiles.graph.IEdge} edge The edge to change ports. - * @param {boolean} setSourcePort Whether to set the source port. false for target ports. - * @param {yfiles.input.IPortCandidate} portCandidate The candidate that has been chosen. - * @param {yfiles.geometry.Point} suggestedLocation The suggested location for the port. + * @param context The context. + * @param edge The edge to change ports. + * @param setSourcePort Whether to set the source port. false for target ports. + * @param portCandidate The candidate that has been chosen. + * @param suggestedLocation The suggested location for the port. * @protected */ setPort(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,setSourcePort:boolean,portCandidate:yfiles.input.IPortCandidate,suggestedLocation:yfiles.geometry.Point):void; /** * Finally sets the ports for the edge to the new values. - * @param {yfiles.input.IInputModeContext} context The context in which the ports are set. - * @param {yfiles.graph.IEdge} edge The edge to set the ports for. - * @param {yfiles.graph.IPort} sourcePort The (possibly) new source port. - * @param {yfiles.graph.IPort} targetPort The (possibly) new target port. + * @param context The context in which the ports are set. + * @param edge The edge to set the ports for. + * @param sourcePort The (possibly) new source port. + * @param targetPort The (possibly) new target port. * @protected */ setPorts(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):void; /** * Updates the position of the handle. - * @param {yfiles.geometry.Point} location The new location of the handle. + * @param location The new location of the handle. * @protected */ setPosition(location:yfiles.geometry.Point):void; /** * Updates the dummy edge's visual appearance to reflect the new port candidate. - * @param {yfiles.graph.SimpleEdge} dummy The dummy edge. - * @param {boolean} source Whether to update the source or target port. - * @param {yfiles.input.IPortCandidate} portCandidate The new candidate to indicate. + * @param dummy The dummy edge. + * @param source Whether to update the source or target port. + * @param portCandidate The new candidate to indicate. * @protected */ setToPortCandidate(dummy:yfiles.graph.SimpleEdge,source:boolean,portCandidate:yfiles.input.IPortCandidate):void; /** * Unhides the original edge that was hidden during the drag operation. - * @param {yfiles.graph.IEdge} edge The edge to unhide. - * @param {yfiles.view.CanvasComponent} canvas The canvas the edge was hidden from. + * @param edge The edge to unhide. + * @param canvas The canvas the edge was hidden from. * @see yfiles.input.PortRelocationHandle#hideOriginalEdge * @see yfiles.input.PortRelocationHandle#showDummyEdge * @protected @@ -41440,7 +41484,7 @@ declare namespace system{ * {@link yfiles.graph.IEdge}s (see {@link yfiles.graph.DefaultGraph#DEFAULT_EDGE_LOOKUP}) will use the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface to collect the * source and target port handles. *

    - * @class yfiles.input.PortRelocationHandleProvider + * @class * @implements {yfiles.input.IHandleProvider} * @implements {yfiles.input.IEdgePortHandleProvider} */ @@ -41448,25 +41492,24 @@ declare namespace system{ export class PortRelocationHandleProvider { /** * Initializes a new instance of the {@link yfiles.input.PortRelocationHandleProvider} class using the given graph and edge. - * @param {yfiles.graph.IGraph} graph The graph or null. If the graph is null, the handles will try to receive the graph from the {@link yfiles.input.IInputModeContext} + * @param graph The graph or null. If the graph is null, the handles will try to receive the graph from the {@link } * it is used in. - * @param {yfiles.graph.IEdge} edge The edge. - * @constructor + * @param edge The edge. */ constructor(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge); /** * Factory method that creates the handle for this provider. - * @param {yfiles.graph.IGraph} graph The graph that contains the edge. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {boolean} sourcePort if set to true the handle for the source port is sought. - * @returns {yfiles.input.IHandle} A handle or null. + * @param graph The graph that contains the edge. + * @param edge The edge. + * @param sourcePort if set to true the handle for the source port is sought. + * @returns A handle or null. * @protected */ createPortRelocationHandle(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,sourcePort:boolean):yfiles.input.IHandle; /** * - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.collections.IEnumerable.} + * @param context + * @returns */ getHandles(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; /** @@ -41495,29 +41538,28 @@ declare namespace system{ * {@link yfiles.graph.IGraph#remove}. In that case, you need to query the handles again before interacting with the graph, for * example by temporarily unselecting and reselecting the port-owning nodes. *

    - * @class yfiles.input.PortsHandleProvider + * @class * @implements {yfiles.input.IHandleProvider} */ export interface PortsHandleProvider extends Object,yfiles.input.IHandleProvider{} export class PortsHandleProvider { /** * Creates an instance using the given owner as the provider for the ports. - * @param {yfiles.graph.IPortOwner} owner - * @constructor + * @param owner */ constructor(owner:yfiles.graph.IPortOwner); /** * Retrieves the handle implementation from the port's lookup. - * @param {yfiles.graph.IPort} port - * @returns {yfiles.input.IHandle} + * @param port + * @returns * @protected */ getHandle(port:yfiles.graph.IPort):yfiles.input.IHandle; /** * Returns a collection of zero or more {@link yfiles.input.IHandle} implementations that are associated with the ports of this * context. - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.collections.IEnumerable.} A collection of handles. + * @param context + * @returns A collection of handles. */ getHandles(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; /** @@ -41539,14 +41581,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.ResizeStripeInputMode#exclusive} by default. *

    - * @class yfiles.input.ResizeStripeInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface ResizeStripeInputMode extends Object,yfiles.input.IInputMode{} export class ResizeStripeInputMode { /** * Creates a new instance of this input mode. - * @constructor */ constructor(); /** @@ -41570,10 +41611,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ResizeStripeInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -41582,9 +41623,9 @@ declare namespace system{ *

    * This implementation checks whether a stripe border has been hit at the latest {@link yfiles.view.MouseEventArgs} *

    - * @param {Object} source - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} true iff a stripe border has been hit at the latest {@link yfiles.view.MouseEventArgs} + * @param source + * @param evt + * @returns true iff a stripe border has been hit at the latest {@link } * @protected */ isValidBegin(source:Object,evt:yfiles.lang.EventArgs):boolean; @@ -41623,13 +41664,13 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Triggers the {@link yfiles.input.ResizeStripeInputMode#addDragCanceledListener DragCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.ResizeStripeInputMode#addDragCancelingListener DragCanceling} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceling(evt:yfiles.input.InputModeEventArgs):void; @@ -41639,7 +41680,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.ResizeStripeInputMode#addDragFinishedListener DragFinished} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinished(evt:yfiles.input.InputModeEventArgs):void; @@ -41649,7 +41690,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.ResizeStripeInputMode#addDragFinishingListener DragFinishing} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinishing(evt:yfiles.input.InputModeEventArgs):void; @@ -41659,7 +41700,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.ResizeStripeInputMode#addDraggedListener Dragged} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.InputModeEventArgs):void; @@ -41669,19 +41710,19 @@ declare namespace system{ * This method triggers the {@link yfiles.input.ResizeStripeInputMode#addDraggingListener Dragging} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.ResizeStripeInputMode#addDragStartedListener DragStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarted(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.ResizeStripeInputMode#addDragStartingListener DragStarting} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarting(evt:yfiles.input.InputModeEventArgs):void; @@ -41698,7 +41739,7 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -41710,7 +41751,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -41827,97 +41868,97 @@ declare namespace system{ ignoreContentRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Adds the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragFinishingListener */ addDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragFinishingListener */ removeDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragFinishedListener */ addDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragFinishedListener */ removeDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragStartingListener */ addDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragStartingListener */ removeDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragStartedListener */ addDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragStartedListener */ removeDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragCancelingListener */ addDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragCancelingListener */ removeDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -41936,34 +41977,35 @@ declare namespace system{ * This method is called to determine whether a {@link yfiles.input.IReparentStripeHandler#reparent} operation should actually be * executed. *

    - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that will be reparented. - * @param {yfiles.graph.IStripe} newParent The potential new parent. - * @param {number} index The index where the stripe would be {@link yfiles.input.IReparentStripeHandler#reparent reparented} - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe as a result of the gesture that would be used for the {@link yfiles.input.IReparentStripeHandler#reparent } + * @param context The context that provides information about the user input. + * @param stripe The stripe that will be reparented. + * @param newParent The potential new parent. + * @param index The index where the stripe would be {@link #reparent reparented} + * @param reparentPosition Where to place the stripe as a result of the gesture that would be used for the {@link #reparent } * operation. - * @returns {boolean} Whether newParent is a valid new parent for stripe for the given index and gesture. + * @returns Whether newParent is a valid new parent for stripe for the given index and gesture. * @abstract */ isValidParent(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe,newParent:yfiles.graph.IStripe,index:number,reparentPosition:yfiles.input.StripeReparentPolicy):boolean; /** * Performs the actual reparenting after the reparent gesture has been finalized. *

    - * Implementations should use SetParent or SetParent to set the parent of movedStripe to newParent. + * Implementations should use {@link yfiles.graph.ITable#setParent} or {@link yfiles.graph.ITable#setParent} to set the parent of movedStripe + * to newParent. *

    - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} movedStripe The stripe that will be reparented. - * @param {yfiles.graph.IStripe} newParent The potential new parent. - * @param {number} index The index where the stripe should be inserted. - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. + * @param context The context that provides information about the user input. + * @param movedStripe The stripe that will be reparented. + * @param newParent The potential new parent. + * @param index The index where the stripe should be inserted. + * @param reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. * @abstract */ reparent(context:yfiles.input.IInputModeContext,movedStripe:yfiles.graph.IStripe,newParent:yfiles.graph.IStripe,index:number,reparentPosition:yfiles.input.StripeReparentPolicy):void; /** * Determines whether the user may detach the given stripe from its current parent in order to reparent it. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that is about to be detached from its current parent. - * @returns {boolean} Whether the stripe may be detached and reparented. + * @param context The context that provides information about the user input. + * @param stripe The stripe that is about to be detached from its current parent. + * @returns Whether the stripe may be detached and reparented. * @abstract */ shouldReparent(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe):boolean; @@ -41977,7 +42019,7 @@ declare namespace system{ *

    * This implementation allows to specify a maximal nesting depth for reparent operations. *

    - * @class yfiles.input.ReparentStripeHandler + * @class * @implements {yfiles.input.IReparentStripeHandler} */ export interface ReparentStripeHandler extends Object,yfiles.input.IReparentStripeHandler{} @@ -41989,25 +42031,25 @@ declare namespace system{ * This implementation adjusts the size of stripe to Math.Max(originalStripeSize, originalParentSize) if reparentPosition * is an {@link yfiles.input.StripeReparentPolicy#ADD_CHILD} operation *

    - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that will be reparented. - * @param {yfiles.graph.IStripe} newParent The potential new parent. - * @param {number} index The index where the stripe should be inserted. - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. - * @param {number} originalStripeSize The original size of stripe - * @param {number} originalParentSize The original size of newParent + * @param context The context that provides information about the user input. + * @param stripe The stripe that will be reparented. + * @param newParent The potential new parent. + * @param index The index where the stripe should be inserted. + * @param reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. + * @param originalStripeSize The original size of stripe + * @param originalParentSize The original size of newParent * @protected */ adjustSize(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe,newParent:yfiles.graph.IStripe,reparentPosition:yfiles.input.StripeReparentPolicy,index:number,originalStripeSize:number,originalParentSize:number):void; /** * Checks the constraints imposed by {@link yfiles.input.ReparentStripeHandler#maxRowLevel} or {@link yfiles.input.ReparentStripeHandler#maxColumnLevel} for a valid gesture. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that will be reparented. - * @param {yfiles.graph.IStripe} newParent The potential new parent. - * @param {number} index The index where the stripe would be {@link yfiles.input.ReparentStripeHandler#reparent reparented} - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe as a result of the gesture that would be used for the {@link yfiles.input.ReparentStripeHandler#reparent } + * @param context The context that provides information about the user input. + * @param stripe The stripe that will be reparented. + * @param newParent The potential new parent. + * @param index The index where the stripe would be {@link #reparent reparented} + * @param reparentPosition Where to place the stripe as a result of the gesture that would be used for the {@link #reparent } * operation. - * @returns {boolean} true iff the resulting nesting depth is smaller than {@link yfiles.input.ReparentStripeHandler#maxRowLevel} or {@link yfiles.input.ReparentStripeHandler#maxColumnLevel}, or if the nesting depth would not increase by the operation. + * @returns true iff the resulting nesting depth is smaller than {@link #maxRowLevel} or {@link #maxColumnLevel}, or if the nesting depth would not increase by the operation. */ isValidParent(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe,newParent:yfiles.graph.IStripe,index:number,reparentPosition:yfiles.input.StripeReparentPolicy):boolean; /** @@ -42016,18 +42058,18 @@ declare namespace system{ * This implementation adjusts the size of the moved and/or the target stripe by calling {@link yfiles.input.ReparentStripeHandler#adjustSize} * . *

    - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that will be reparented. - * @param {yfiles.graph.IStripe} newParent The potential new parent. - * @param {number} index The index where the stripe should be inserted. - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. + * @param context The context that provides information about the user input. + * @param stripe The stripe that will be reparented. + * @param newParent The potential new parent. + * @param index The index where the stripe should be inserted. + * @param reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. */ reparent(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe,newParent:yfiles.graph.IStripe,index:number,reparentPosition:yfiles.input.StripeReparentPolicy):void; /** * Determines whether the user may detach the given stripe from its current parent in order to reparent it. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that is about to be detached from its current parent. - * @returns {boolean} This implementation returns always true. + * @param context The context that provides information about the user input. + * @param stripe The stripe that is about to be detached from its current parent. + * @returns This implementation returns always true. */ shouldReparent(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe):boolean; /** @@ -42057,7 +42099,7 @@ declare namespace system{ *

    * This implementation delegates most work to an instance of {@link yfiles.input.ReparentStripePositionHandler} *

    - * @class yfiles.input.ReparentStripeInputMode + * @class * @extends {yfiles.input.MoveInputMode} */ export interface ReparentStripeInputMode extends yfiles.input.MoveInputMode{} @@ -42071,7 +42113,7 @@ declare namespace system{ * A dragged {@link yfiles.graph.IStripe} is optionally visualized during the drag operation. *

    * @see yfiles.input.StripeDropInputMode#startDrag - * @class yfiles.input.StripeDropInputMode + * @class * @extends {yfiles.input.ItemDropInputMode.} */ export interface StripeDropInputMode extends yfiles.input.ItemDropInputMode{} @@ -42081,9 +42123,8 @@ declare namespace system{ *

    * You might want to adjust the {@link yfiles.input.StripeDropInputMode#draggedItem} getter, too. *

    - * @param {string} expectedFormat This is a format that is used in {@link yfiles.input.StripeDropInputMode#startDrag}. + * @param expectedFormat This is a format that is used in {@link #startDrag}. * @protected - * @constructor */ constructor(expectedFormat:string); /** @@ -42092,12 +42133,11 @@ declare namespace system{ * This instance fires events only if the format of the data of the drag operation is the full name of the {@link yfiles.graph.IStripe} * type. Such a drag operation can be started for example with {@link yfiles.input.StripeDropInputMode#startDrag}. *

    - * @constructor */ constructor(); /** * Create a preview version of the table that is temporarily used to show the dragged stripe. - * @returns {yfiles.graph.ITable} + * @returns * @protected */ createPreviewTable():yfiles.graph.ITable; @@ -42106,9 +42146,9 @@ declare namespace system{ *

    * This method is called by the {@link yfiles.input.ItemDropInputMode.#itemCreator} that is set as default on this class. *

    - * @param {yfiles.graph.IStripe} newParent The parent for which to create the stripe. - * @param {yfiles.input.IInputModeContext} context The context for which the stripe should be created. - * @returns {yfiles.graph.IStripe} a newly created stripe. + * @param newParent The parent for which to create the stripe. + * @param context The context for which the stripe should be created. + * @returns a newly created stripe. * @protected */ createStripe(context:yfiles.input.IInputModeContext,newParent:yfiles.graph.IStripe):yfiles.graph.IStripe; @@ -42118,15 +42158,15 @@ declare namespace system{ * In this implementation the mouse location is used as center of the table. Can be overridden in child class to implement * a different layout. *

    - * @param {yfiles.geometry.Point} location Current mouse position - * @param {yfiles.geometry.Size} size Size of the table - * @returns {yfiles.geometry.Rect} a {@link yfiles.geometry.Rect} with the given size and the mouse location as center. + * @param location Current mouse position + * @param size Size of the table + * @returns a {@link } with the given size and the mouse location as center. * @protected */ getPreviewTableLayout(location:yfiles.geometry.Point,size:yfiles.geometry.Size):yfiles.geometry.Rect; /** * Called whenever a new stripe is created - * @param {yfiles.collections.ItemEventArgs.} evt + * @param evt * @protected */ onStripeCreated(evt:yfiles.collections.ItemEventArgs):void; @@ -42146,10 +42186,10 @@ declare namespace system{ *
  • yfiles-cursor-dragdrop-all
  • *
  • yfiles-cursor-dragdrop-no-drop
  • * - * @param {HTMLElement} dragSource The source of the drag operation. - * @param {yfiles.graph.IStripe} stripe The stripe to drag. - * @param {yfiles.view.DragDropEffects} [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. - * @param {boolean} [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. + * @param dragSource The source of the drag operation. + * @param stripe The stripe to drag. + * @param [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. + * @param [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. * @see yfiles.view.DragSource#startDrag * @see yfiles.view.DragDropItem * @static @@ -42172,10 +42212,10 @@ declare namespace system{ *
  • yfiles-cursor-dragdrop-no-drop
  • * * @param {Object} options The parameters to pass. - * @param {HTMLElement} options.dragSource The source of the drag operation. - * @param {yfiles.graph.IStripe} options.stripe The stripe to drag. - * @param {yfiles.view.DragDropEffects} [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. - * @param {boolean} [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. + * @param options.dragSource The source of the drag operation. + * @param options.stripe The stripe to drag. + * @param [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. + * @param [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. * @see yfiles.view.DragSource#startDrag * @see yfiles.view.DragDropItem * @static @@ -42192,13 +42232,13 @@ declare namespace system{ draggedItem:yfiles.graph.IStripe; /** * Adds the given listener for the StripeCreated event that occurs when a new stripe gets created by this input mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.StripeDropInputMode#removeStripeCreatedListener */ addStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the StripeCreated event that occurs when a new stripe gets created by this input mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.StripeDropInputMode#addStripeCreatedListener */ removeStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -42211,21 +42251,20 @@ declare namespace system{ * This class is used by default by both {@link yfiles.input.ReparentStripeInputMode} and {@link yfiles.input.StripeDropInputMode} to * perform the actual reparenting and insertion. *

    - * @class yfiles.input.ReparentStripePositionHandler + * @class * @implements {yfiles.input.IPositionHandler} */ export interface ReparentStripePositionHandler extends Object,yfiles.input.IPositionHandler{} export class ReparentStripePositionHandler { /** * Creates a new instance of this position handler which moves movedStripe - * @param {yfiles.graph.IStripe} movedStripe - * @constructor + * @param movedStripe */ constructor(movedStripe:yfiles.graph.IStripe); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** @@ -42234,8 +42273,8 @@ declare namespace system{ * The default implementation uses the return value of {@link yfiles.input.IStripeInputVisualizationHelper#getVisualCreator} with * type {@link yfiles.input.StripeVisualizationType#DRAG_SOURCE}. *

    - * @param {yfiles.input.IInputModeContext} context The current input mode context - * @returns {yfiles.view.ICanvasObject} A canvas object that is used to visualize the target region. + * @param context The current input mode context + * @returns A canvas object that is used to visualize the target region. * @see yfiles.input.ReparentStripePositionHandler#updateSourceVisualization * @protected */ @@ -42246,9 +42285,9 @@ declare namespace system{ * The default implementation uses the return value of {@link yfiles.input.IStripeInputVisualizationHelper#getVisualCreator} with * type {@link yfiles.input.StripeVisualizationType#DROP_TARGET}. *

    - * @param {yfiles.input.IInputModeContext} context The current input mode context - * @param {yfiles.graph.IStripe} stripe The stripe for which the visualization should be created. - * @returns {yfiles.view.ICanvasObject} A canvas object that is used to visualize the target region. + * @param context The current input mode context + * @param stripe The stripe for which the visualization should be created. + * @returns A canvas object that is used to visualize the target region. * @see yfiles.input.ReparentStripePositionHandler#updateTargetVisualization * @protected */ @@ -42258,50 +42297,50 @@ declare namespace system{ *

    * The target region has already been determined by {@link yfiles.input.ReparentStripePositionHandler#getTargetSubregion} *

    - * @param {yfiles.input.IInputModeContext} context The current input mode context - * @param {yfiles.geometry.IPoint} location The current drag location - * @param {yfiles.graph.IStripe} sourceStripe The stripe that is moved - * @param {yfiles.input.StripeSubregion} targetSubregion The stripe subregion for the target. - * @param {yfiles.geometry.Rect} targetBounds The target bounds - * @returns {yfiles.input.StripeReparentPolicy} A {@link yfiles.input.StripeReparentPolicy} that specifies the operation to perform. + * @param context The current input mode context + * @param location The current drag location + * @param sourceStripe The stripe that is moved + * @param targetSubregion The stripe subregion for the target. + * @param targetBounds The target bounds + * @returns A {@link } that specifies the operation to perform. * @protected */ determineGesture(context:yfiles.input.IInputModeContext,location:yfiles.geometry.IPoint,sourceStripe:yfiles.graph.IStripe,targetSubregion:yfiles.input.StripeSubregion,targetBounds:yfiles.geometry.Rect):yfiles.input.StripeReparentPolicy; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Finds the target stripe subregion at location and its associated owner node. - * @param {yfiles.geometry.Point} location The hit location. - * @returns {yfiles.input.StripeSubregion} A {@link yfiles.input.StripeSubregion} that lies at location, or null if no such region could be found. + * @param location The hit location. + * @returns A {@link } that lies at location, or null if no such region could be found. * @protected */ getTargetSubregion(location:yfiles.geometry.Point):yfiles.input.StripeSubregion; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** * Called whenever a change in the oldTable hierarchy occurs through this position handler - * @param {yfiles.graph.StripeEventArgs} evt + * @param evt * @protected */ onStripeChanged(evt:yfiles.graph.StripeEventArgs):void; /** * - * @param {yfiles.geometry.Point} location + * @param location */ setPosition(location:yfiles.geometry.Point):void; /** @@ -42309,11 +42348,11 @@ declare namespace system{ *

    * The default does not change targetVisualization. *

    - * @param {yfiles.input.IInputModeContext} context The current input mode context. - * @param {yfiles.view.ICanvasObject} targetVisualization The canvas object for the target visualization - * @param {yfiles.graph.IStripe} targetStripe The target for the reparent gesture - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe after reparenting. - * @returns {yfiles.view.ICanvasObject} + * @param context The current input mode context. + * @param targetVisualization The canvas object for the target visualization + * @param targetStripe The target for the reparent gesture + * @param reparentPosition Where to place the stripe after reparenting. + * @returns * @protected */ updateSourceVisualization(context:yfiles.input.IInputModeContext,targetVisualization:yfiles.view.ICanvasObject,targetStripe:yfiles.graph.IStripe,reparentPosition:yfiles.input.StripeReparentPolicy):yfiles.view.ICanvasObject; @@ -42323,22 +42362,22 @@ declare namespace system{ * The default implementation only hides targetVisualization iff reparentPosition is * {@link yfiles.input.StripeReparentPolicy#INVALID}. *

    - * @param {yfiles.input.IInputModeContext} context The current input mode context. - * @param {yfiles.view.ICanvasObject} targetVisualization The canvas object for the target visualization. - * @param {yfiles.graph.IStripe} targetStripe The target for the reparent gesture. - * @param {yfiles.input.StripeReparentPolicy} reparentPosition The mode the describes the results of the reparent gesture. - * @param {yfiles.geometry.Rect} targetBounds The current visualization bounds that have been computed with - * {@link yfiles.input.ReparentStripePositionHandler#updateTargetVisualizationBounds} - * @returns {yfiles.view.ICanvasObject} + * @param context The current input mode context. + * @param targetVisualization The canvas object for the target visualization. + * @param targetStripe The target for the reparent gesture. + * @param reparentPosition The mode the describes the results of the reparent gesture. + * @param targetBounds The current visualization bounds that have been computed with + * {@link #updateTargetVisualizationBounds} + * @returns * @protected */ updateTargetVisualization(context:yfiles.input.IInputModeContext,targetVisualization:yfiles.view.ICanvasObject,targetStripe:yfiles.graph.IStripe,reparentPosition:yfiles.input.StripeReparentPolicy,targetBounds:yfiles.geometry.Rect):yfiles.view.ICanvasObject; /** * Updates the visualization bounds for the target visualization depending on the provided values. - * @param {yfiles.geometry.Rect} originalTargetBounds The target bounds prior to this method call. - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe after the reparenting operations according to the reparent gesture. - * @param {yfiles.graph.IStripe} targetStripe The target stripe which has been determined by the input mode. - * @returns {yfiles.geometry.Rect} Updated bounds for the target visualization. + * @param originalTargetBounds The target bounds prior to this method call. + * @param reparentPosition Where to place the stripe after the reparenting operations according to the reparent gesture. + * @param targetStripe The target stripe which has been determined by the input mode. + * @returns Updated bounds for the target visualization. * @protected */ updateTargetVisualizationBounds(originalTargetBounds:yfiles.geometry.Rect,reparentPosition:yfiles.input.StripeReparentPolicy,targetStripe:yfiles.graph.IStripe):yfiles.geometry.Rect; @@ -42360,13 +42399,13 @@ declare namespace system{ inputModeContext:yfiles.input.IInputModeContext; /** * Adds the given listener for the StripeChanged event that occurs when a stripe state is changed by this input mode. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ReparentStripePositionHandler#removeStripeChangedListener */ addStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; /** * Removes the given listener for the StripeChanged event that occurs when a stripe state is changed by this input mode. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ReparentStripePositionHandler#addStripeChangedListener */ removeStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; @@ -42386,14 +42425,13 @@ declare namespace system{ *

    * In addition, the {@link yfiles.input.TableEditorInputMode#stripeSelection stripe selection} is optionally synchronized with the {@link yfiles.input.GraphInputMode#graphSelection}. *

    - * @class yfiles.input.TableEditorInputMode + * @class * @extends {yfiles.input.MultiplexingInputMode} */ export interface TableEditorInputMode extends yfiles.input.MultiplexingInputMode{} export class TableEditorInputMode { /** * Default constructor. - * @constructor */ constructor(); /** @@ -42410,8 +42448,8 @@ declare namespace system{ * event is handled or the owner has an {@link yfiles.input.IEditLabelHelper} requests editing an existing label instead of * creating a new one. In this case, this method will edit that label instead of adding a new one. *

    - * @param {yfiles.graph.ILabelOwner} owner The item. - * @returns {Promise.} A future of the label that will be notified of the newly created label or a null if the creation was canceled. + * @param owner The item. + * @returns A future of the label that will be notified of the newly created label or a null if the creation was canceled. */ addLabel(owner:yfiles.graph.ILabelOwner):Promise; /** @@ -42421,13 +42459,13 @@ declare namespace system{ clearSelection():void; /** * Factory method that creates the {@link yfiles.input.TableEditorInputMode#keyboardInputMode} instance. - * @returns {yfiles.input.ClickInputMode} + * @returns * @protected */ createClickInputMode():yfiles.input.ClickInputMode; /** * Factory method that creates the {@link yfiles.input.TableEditorInputMode#keyboardInputMode} instance. - * @returns {yfiles.input.KeyboardInputMode} + * @returns * @protected */ createKeyboardInputMode():yfiles.input.KeyboardInputMode; @@ -42445,8 +42483,8 @@ declare namespace system{ * event is handled or the stripe has an {@link yfiles.input.IEditLabelHelper} requests editing an existing label instead of * creating a new one. In both cases, this method will do nothing and neither adds a new label nor edits an existing one. *

    - * @param {yfiles.graph.IStripe} stripe The item to create a new label for. - * @returns {Promise.} A future of the label that will be notified of the newly created label or a null if the creation was canceled. + * @param stripe The item to create a new label for. + * @returns A future of the label that will be notified of the newly created label or a null if the creation was canceled. */ createLabel(stripe:yfiles.graph.IStripe):Promise; /** @@ -42454,25 +42492,25 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.TableEditorInputMode#reparentStripeHandler} property. *

    - * @returns {yfiles.input.IReparentStripeHandler} a new instance of {@link yfiles.input.IReparentStripeHandler} + * @returns a new instance of {@link } * @protected */ createReparentStripeHandler():yfiles.input.IReparentStripeHandler; /** * Factory method that creates the {@link yfiles.input.TableEditorInputMode#reparentStripeInputMode} lazily the first time the property is accessed. - * @returns {yfiles.input.ReparentStripeInputMode} A plain new instance of the {@link yfiles.input.ReparentStripeInputMode} type, which is initially {@link yfiles.input.MoveInputMode#enabled enabled}. + * @returns A plain new instance of the {@link } type, which is initially {@link #enabled enabled}. * @protected */ createReparentStripeInputMode():yfiles.input.ReparentStripeInputMode; /** * Factory method that creates the {@link yfiles.input.TableEditorInputMode#resizeStripeInputMode} lazily the first time the property is accessed. - * @returns {yfiles.input.ResizeStripeInputMode} A plain new instance of the {@link yfiles.input.ResizeStripeInputMode} type, which is initially {@link yfiles.input.ResizeStripeInputMode#enabled enabled}. + * @returns A plain new instance of the {@link } type, which is initially {@link #enabled enabled}. * @protected */ createResizeStripeInputMode():yfiles.input.ResizeStripeInputMode; /** * Factory method that creates the {@link yfiles.input.TableEditorInputMode#stripeDropInputMode} lazily the first time the property is accessed. - * @returns {yfiles.input.StripeDropInputMode} A plain new instance of the {@link yfiles.input.StripeDropInputMode} type, which is initially {@link yfiles.input.DropInputMode#enabled disabled}. + * @returns A plain new instance of the {@link } type, which is initially {@link #enabled disabled}. * @protected */ createStripeDropInputMode():yfiles.input.StripeDropInputMode; @@ -42481,7 +42519,7 @@ declare namespace system{ *

    * By default, the {@link yfiles.view.IStripeSelection#allowMixedSelection} property is false. *

    - * @returns {yfiles.view.IStripeSelection} A new {@link yfiles.view.IStripeSelection} instance. + * @returns A new {@link } instance. * @protected */ createStripeSelection():yfiles.view.IStripeSelection; @@ -42490,7 +42528,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.TableEditorInputMode#textEditorInputMode} property. *

    - * @returns {yfiles.input.TextEditorInputMode} a new instance of {@link yfiles.input.TextEditorInputMode} + * @returns a new instance of {@link } * @protected */ createTextEditorInputMode():yfiles.input.TextEditorInputMode; @@ -42508,7 +42546,7 @@ declare namespace system{ deleteSelection():void; /** * Deletes a single stripe - * @param {yfiles.graph.IStripe} stripe The stripe to delete. + * @param stripe The stripe to delete. */ deleteStripe(stripe:yfiles.graph.IStripe):void; /** @@ -42526,27 +42564,27 @@ declare namespace system{ * {@link yfiles.input.LabelEditingEventArgs#textEditorInputModeConfigurator} property on the {@link yfiles.input.LabelEditingEventArgs}. Thus editing a label via this method cannot be prevented by event * handlers or {@link yfiles.input.IEditLabelHelper}s. *

    - * @param {yfiles.graph.ILabel} label The label to edit. - * @returns {Promise.} + * @param label The label to edit. + * @returns * @see yfiles.input.TableEditorInputMode#onLabelTextEdited */ editLabel(label:yfiles.graph.ILabel):Promise; /** * Used as a callback to find the items underneath a certain point. - * @param {yfiles.geometry.Point} location The location to test. - * @param {yfiles.graph.StripeTypes} stripeTypes An enumeration value of {@link yfiles.graph.StripeTypes} to specify the stripe type. - * @param {yfiles.input.StripeSubregionTypes} subregionTypes An enumeration value of {@link yfiles.input.StripeSubregionTypes} to further restrict the stripe region. - * @param {function(yfiles.input.StripeSubregion): boolean} [filter=null] Additional predicate to further restrict the hit test results. - * @returns {yfiles.input.StripeSubregion} The stripe subregions that have been found for the location or null. + * @param location The location to test. + * @param stripeTypes An enumeration value of {@link } to specify the stripe type. + * @param subregionTypes An enumeration value of {@link } to further restrict the stripe region. + * @param [filter=null] Additional predicate to further restrict the hit test results. + * @returns The stripe subregions that have been found for the location or null. */ findStripe(location:yfiles.geometry.Point,stripeTypes:yfiles.graph.StripeTypes,subregionTypes:yfiles.input.StripeSubregionTypes,filter?:(obj:yfiles.input.StripeSubregion)=>boolean):yfiles.input.StripeSubregion; /** * Used as a callback to find the items underneath a certain point. - * @param {yfiles.geometry.Point} location The location to test. - * @param {yfiles.graph.StripeTypes} stripeTypes An enumeration value of {@link yfiles.graph.StripeTypes} to specify the stripe type. - * @param {yfiles.input.StripeSubregionTypes} subregionTypes An enumeration value of {@link yfiles.input.StripeSubregionTypes} to further restrict the stripe region. - * @param {function(yfiles.input.StripeSubregion): boolean} [filter=null] Additional predicate to further restrict the hit test results. - * @returns {yfiles.collections.IEnumerable.} The stripe subregions that have been found for the location. + * @param location The location to test. + * @param stripeTypes An enumeration value of {@link } to specify the stripe type. + * @param subregionTypes An enumeration value of {@link } to further restrict the stripe region. + * @param [filter=null] Additional predicate to further restrict the hit test results. + * @returns The stripe subregions that have been found for the location. */ findStripes(location:yfiles.geometry.Point,stripeTypes:yfiles.graph.StripeTypes,subregionTypes:yfiles.input.StripeSubregionTypes,filter?:(obj:yfiles.input.StripeSubregion)=>boolean):yfiles.collections.IEnumerable; /** @@ -42556,10 +42594,10 @@ declare namespace system{ * created with an initial size and otherwise the default settings of the table where owner belongs to. If size is entered * as 0, the owners default size is used. *

    - * @param {yfiles.graph.IStripe} owner The parent of the new stripe. - * @param {number} index The index where to insert the new stripe. - * @param {number} [size=null] The initial size of the stripe - * @returns {yfiles.graph.IStripe} A new stripe at the given index. + * @param owner The parent of the new stripe. + * @param index The index where to insert the new stripe. + * @param [size=null] The initial size of the stripe + * @returns A new stripe at the given index. */ insertChild(owner:yfiles.graph.IStripe,index:number,size?:number):yfiles.graph.IStripe; /** @@ -42567,48 +42605,48 @@ declare namespace system{ *

    * This method determines the label owner to add to and delegates to {@link yfiles.input.TableEditorInputMode#createLabel}. *

    - * @returns {boolean} + * @returns * @protected */ onAddLabel():boolean; /** * Called when the {@link yfiles.input.TableEditorInputMode#clickInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ClickInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.ClickInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onClickInputModeChanged(oldMode:yfiles.input.ClickInputMode,newMode:yfiles.input.ClickInputMode):void; /** * Callback that gets triggered once {@link yfiles.input.TableEditorInputMode#clickInputMode} triggers the {@link yfiles.input.ClickInputMode#addClickedListener Clicked} * event. - * @param {Object} sender - * @param {yfiles.input.ClickEventArgs} evt + * @param sender + * @param evt * @protected */ onClickInputModeClicked(sender:Object,evt:yfiles.input.ClickEventArgs):void; /** * Callback that gets triggered once {@link yfiles.input.TableEditorInputMode#clickInputMode} triggers the {@link yfiles.input.ClickInputMode#addDoubleClickedListener DoubleClicked} * event. - * @param {Object} sender - * @param {yfiles.input.ClickEventArgs} evt + * @param sender + * @param evt * @protected */ onClickInputModeDoubleClicked(sender:Object,evt:yfiles.input.ClickEventArgs):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addDeletedItemListener DeletedItem} event. - * @param {yfiles.collections.ItemEventArgs.} evt The instance containing the event data. + * @param evt The instance containing the event data. * @protected */ onDeletedItem(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addDeletedSelectionListener DeletedSelection} event. - * @param {yfiles.input.SelectionEventArgs.} evt The {@link yfiles.input.SelectionEventArgs.} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onDeletedSelection(evt:yfiles.input.SelectionEventArgs):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addDeletingSelectionListener DeletingSelection} event. - * @param {yfiles.input.SelectionEventArgs.} evt The {@link yfiles.input.SelectionEventArgs.} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onDeletingSelection(evt:yfiles.input.SelectionEventArgs):void; @@ -42618,20 +42656,20 @@ declare namespace system{ * This method determines the label to edit and delegates to either {@link yfiles.input.TableEditorInputMode#editLabel} or {@link yfiles.input.TableEditorInputMode#createLabel} * if no label could be found. *

    - * @returns {boolean} + * @returns * @protected */ onEditLabel():boolean; /** * Called when the {@link yfiles.input.TableEditorInputMode#keyboardInputMode} changed. - * @param {yfiles.input.KeyboardInputMode} oldMode The old {@link yfiles.input.TableEditorInputMode#keyboardInputMode}. - * @param {yfiles.input.KeyboardInputMode} newMode The new {@link yfiles.input.TableEditorInputMode#keyboardInputMode}. + * @param oldMode The old {@link #keyboardInputMode}. + * @param newMode The new {@link #keyboardInputMode}. * @protected */ onKeyboardInputModeChanged(oldMode:yfiles.input.KeyboardInputMode,newMode:yfiles.input.KeyboardInputMode):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addLabelAddedListener LabelAdded} event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.collections.ItemEventArgs.} instance that contains the {@link yfiles.graph.ILabel} that has been added. + * @param evt The {@link } instance that contains the {@link } that has been added. * @protected */ onLabelAdded(evt:yfiles.graph.LabelEventArgs):void; @@ -42640,7 +42678,7 @@ declare namespace system{ *

    * Invoking the event handlers stops once one event marks the args as handled. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onLabelAdding(evt:yfiles.input.LabelEditingEventArgs):void; @@ -42649,13 +42687,13 @@ declare namespace system{ *

    * Invoking the event handlers stops once one event marks the args as handled. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onLabelEditing(evt:yfiles.input.LabelEditingEventArgs):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addLabelTextChangedListener LabelTextChanged} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance that contains the {@link yfiles.graph.ILabel} that has changed the text. + * @param evt The {@link } instance that contains the {@link } that has changed the text. * @protected */ onLabelTextChanged(evt:yfiles.collections.ItemEventArgs):void; @@ -42664,63 +42702,63 @@ declare namespace system{ *

    * This method {@link yfiles.input.TableEditorInputMode#addValidateLabelTextListener validates the label text} and if successful sets the label text. *

    - * @param {yfiles.graph.ILabel} label The label that was edited. - * @param {string} text The new text. + * @param label The label that was edited. + * @param text The new text. * @protected */ onLabelTextEdited(label:yfiles.graph.ILabel,text:string):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addLabelTextEditingCanceledListener LabelTextEditingCanceled} * event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.graph.LabelEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onLabelTextEditingCanceled(evt:yfiles.graph.LabelEventArgs):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addLabelTextEditingStartedListener LabelTextEditingStarted} * event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.graph.LabelEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onLabelTextEditingStarted(evt:yfiles.graph.LabelEventArgs):void; /** * Called when the {@link yfiles.input.TableEditorInputMode#reparentStripeHandler} property value changes and after initialization of the field. - * @param {yfiles.input.IReparentStripeHandler} oldHandler the old value, which may be null the first time - * @param {yfiles.input.IReparentStripeHandler} newHandler the new value + * @param oldHandler the old value, which may be null the first time + * @param newHandler the new value * @protected */ onReparentStripeHandlerChanged(oldHandler:yfiles.input.IReparentStripeHandler,newHandler:yfiles.input.IReparentStripeHandler):void; /** * Called when the {@link yfiles.input.TableEditorInputMode#reparentStripeInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ReparentStripeInputMode} oldHandler the old value, which may be null the first time - * @param {yfiles.input.ReparentStripeInputMode} newHandler the new value + * @param oldHandler the old value, which may be null the first time + * @param newHandler the new value * @protected */ onReparentStripeInputModeChanged(oldHandler:yfiles.input.ReparentStripeInputMode,newHandler:yfiles.input.ReparentStripeInputMode):void; /** * Called when the {@link yfiles.input.TableEditorInputMode#resizeStripeInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ResizeStripeInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.ResizeStripeInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onResizeStripeInputModeChanged(oldMode:yfiles.input.ResizeStripeInputMode,newMode:yfiles.input.ResizeStripeInputMode):void; /** * Called when the {@link yfiles.input.TableEditorInputMode#stripeDropInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.StripeDropInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.StripeDropInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onStripeDropInputModeChanged(oldMode:yfiles.input.StripeDropInputMode,newMode:yfiles.input.StripeDropInputMode):void; /** * Called when the {@link yfiles.input.TableEditorInputMode#textEditorInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.TextEditorInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.TextEditorInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onTextEditorInputModeChanged(oldMode:yfiles.input.TextEditorInputMode,newMode:yfiles.input.TextEditorInputMode):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addValidateLabelTextListener ValidateLabelText} event. - * @param {yfiles.input.LabelTextValidatingEventArgs} evt The {@link yfiles.input.LabelTextValidatingEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onValidateLabelText(evt:yfiles.input.LabelTextValidatingEventArgs):void; @@ -42739,8 +42777,8 @@ declare namespace system{ * This is overridden if the item has a {@link yfiles.input.IEditLabelHelper} that returns false for its {@link yfiles.input.IEditLabelHelper#onLabelAdding} * method. *

    - * @param {yfiles.graph.IModelItem} item The item to query - * @returns {boolean} true iff a label may be added + * @param item The item to query + * @returns true iff a label may be added * @protected */ shouldAddLabel(item:yfiles.graph.IModelItem):boolean; @@ -42751,8 +42789,8 @@ declare namespace system{ * This implementation deletes an item if it is of one of the {@link yfiles.input.TableEditorInputMode#deletableItems} type and if it is not the last stripe of a given type in the * table (e.g. the only row or the only column). *

    - * @param {yfiles.graph.IStripe} stripe The item. - * @returns {boolean} Whether to delete that item. + * @param stripe The item. + * @returns Whether to delete that item. * @protected */ shouldDelete(stripe:yfiles.graph.IStripe):boolean; @@ -42760,8 +42798,8 @@ declare namespace system{ * Callback method that determines whether the label or the labels of the provided item should be edited in response to a * command or explicit method call to {@link yfiles.input.TableEditorInputMode#editLabel} or * {@link yfiles.input.TableEditorInputMode#createLabel}. - * @param {yfiles.graph.IModelItem} item The item. - * @returns {boolean} Whether to edit the label or the labels for that item. + * @param item The item. + * @returns Whether to edit the label or the labels for that item. * @protected */ shouldEditLabel(item:yfiles.graph.IModelItem):boolean; @@ -42771,8 +42809,8 @@ declare namespace system{ *

    * This implementation unconditionally returns true, subclasses may override this method to adjust the behavior. *

    - * @param {yfiles.input.ICommand} command The command to install. - * @returns {boolean} Whether to install this command. + * @param command The command to install. + * @returns Whether to install this command. * @protected */ shouldInstallCommand(command:yfiles.input.ICommand):boolean; @@ -42880,7 +42918,7 @@ declare namespace system{ * forbidden entirely, or the properties of the added label can be changed, by setting the appropriate properties on the * {@link yfiles.input.LabelEditingEventArgs}. It is even possible to forbid adding a label, but edit an existing one instead. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#removeLabelAddingListener */ addLabelAddingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -42891,7 +42929,7 @@ declare namespace system{ * forbidden entirely, or the properties of the added label can be changed, by setting the appropriate properties on the * {@link yfiles.input.LabelEditingEventArgs}. It is even possible to forbid adding a label, but edit an existing one instead. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#addLabelAddingListener */ removeLabelAddingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -42902,7 +42940,7 @@ declare namespace system{ * entirely, or redirected to a different label, even on a different owner. In case editing existing labels is unwanted, * event handlers can also specify that instead of editing a label, a new one should be added. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#removeLabelEditingListener */ addLabelEditingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -42913,35 +42951,35 @@ declare namespace system{ * entirely, or redirected to a different label, even on a different owner. In case editing existing labels is unwanted, * event handlers can also specify that instead of editing a label, a new one should be added. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#addLabelEditingListener */ removeLabelEditingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; /** * Adds the given listener for the LabelAdded event that occurs when this mode has triggered the addition of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.TableEditorInputMode#createLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#removeLabelAddedListener */ addLabelAddedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * Removes the given listener for the LabelAdded event that occurs when this mode has triggered the addition of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.TableEditorInputMode#createLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#addLabelAddedListener */ removeLabelAddedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * Adds the given listener for the LabelTextChanged event that occurs when this mode has triggered the edit of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.TableEditorInputMode#editLabel}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#removeLabelTextChangedListener */ addLabelTextChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the LabelTextChanged event that occurs when this mode has triggered the edit of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.TableEditorInputMode#editLabel}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#addLabelTextChangedListener */ removeLabelTextChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -42951,7 +42989,7 @@ declare namespace system{ *

    * This allows to customize the actual label editing process further. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#removeLabelTextEditingStartedListener */ @@ -42962,7 +43000,7 @@ declare namespace system{ *

    * This allows to customize the actual label editing process further. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#addLabelTextEditingStartedListener */ @@ -42973,7 +43011,7 @@ declare namespace system{ *

    * This allows to unconfigure temporary customizations for the actual label editing process. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#removeLabelTextEditingCanceledListener */ @@ -42984,7 +43022,7 @@ declare namespace system{ *

    * This allows to unconfigure temporary customizations for the actual label editing process. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#addLabelTextEditingCanceledListener */ @@ -42995,7 +43033,7 @@ declare namespace system{ *

    * Note that the {@link yfiles.input.LabelTextValidatingEventArgs#label} may only a dummy instance, i.e. not bound to a live stripe instance. *

    - * @param {function(Object, yfiles.input.LabelTextValidatingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#removeValidateLabelTextListener */ @@ -43006,7 +43044,7 @@ declare namespace system{ *

    * Note that the {@link yfiles.input.LabelTextValidatingEventArgs#label} may only a dummy instance, i.e. not bound to a live stripe instance. *

    - * @param {function(Object, yfiles.input.LabelTextValidatingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#addValidateLabelTextListener */ @@ -43045,7 +43083,7 @@ declare namespace system{ * method starts its work and will be followed by any number of {@link yfiles.input.TableEditorInputMode#addDeletedItemListener DeletedItem} * events and finalized by a {@link yfiles.input.TableEditorInputMode#addDeletedSelectionListener DeletedSelection} * event. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#deleteSelection * @see yfiles.input.TableEditorInputMode#removeDeletingSelectionListener */ @@ -43055,28 +43093,28 @@ declare namespace system{ * method starts its work and will be followed by any number of {@link yfiles.input.TableEditorInputMode#addDeletedItemListener DeletedItem} * events and finalized by a {@link yfiles.input.TableEditorInputMode#addDeletedSelectionListener DeletedSelection} * event. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#deleteSelection * @see yfiles.input.TableEditorInputMode#addDeletingSelectionListener */ removeDeletingSelectionListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; /** * Adds the given listener for the DeletedItem event that occurs when an item has been deleted interactively by this mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#removeDeletedItemListener */ addDeletedItemListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the DeletedItem event that occurs when an item has been deleted interactively by this * mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#addDeletedItemListener */ removeDeletedItemListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Adds the given listener for the DeletedSelection event that occurs just before the {@link yfiles.input.TableEditorInputMode#deleteSelection} * method has deleted the selection after all selected items have been removed. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#deleteSelection * @see yfiles.input.TableEditorInputMode#removeDeletedSelectionListener */ @@ -43084,7 +43122,7 @@ declare namespace system{ /** * Removes the given listener for the DeletedSelection event that occurs just before the {@link yfiles.input.TableEditorInputMode#deleteSelection} * method has deleted the selection after all selected items have been removed. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#deleteSelection * @see yfiles.input.TableEditorInputMode#addDeletedSelectionListener */ @@ -43156,7 +43194,7 @@ declare namespace system{ *

    * This is independent to {@link yfiles.input.TableEditorInputMode#clickSelectableItems}. By default, only clicks on a stripe {@link yfiles.input.StripeSubregionTypes#HEADER} are handled. *

    - * @default 6 + * @default yfiles.input.StripeSubregionTypes.HEADER * @type {yfiles.input.StripeSubregionTypes} */ clickSelectableRegions:yfiles.input.StripeSubregionTypes; @@ -43196,7 +43234,7 @@ declare namespace system{ * The constraints are applied in addition to any constraints imposed by the {@link yfiles.input.IReshapeHandler} which is wrapped * by this implementation. *

    - * @class yfiles.input.TableReshapeHandler + * @class * @implements {yfiles.input.IReshapeHandler} */ export interface TableReshapeHandler extends Object,yfiles.input.IReshapeHandler{} @@ -43210,35 +43248,34 @@ declare namespace system{ *

    * table should be associated to tableNode *

    - * @param {yfiles.input.IReshapeHandler} coreHandler The handler that is wrapped by this instance. - * @param {yfiles.graph.INode} tableNode The node for which this handler is used - * @param {yfiles.graph.ITable} table The table that is used for additional constraints. - * @constructor + * @param coreHandler The handler that is wrapped by this instance. + * @param tableNode The node for which this handler is used + * @param table The table that is used for additional constraints. */ constructor(coreHandler:yfiles.input.IReshapeHandler,tableNode:yfiles.graph.INode,table:yfiles.graph.ITable); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} originalBounds + * @param context + * @param originalBounds */ cancelReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect):void; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} originalBounds - * @param {yfiles.geometry.Rect} newBounds + * @param context + * @param originalBounds + * @param newBounds */ handleReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeReshape(context:yfiles.input.IInputModeContext):void; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} originalBounds - * @param {yfiles.geometry.Rect} newBounds + * @param context + * @param originalBounds + * @param newBounds */ reshapeFinished(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** @@ -43298,7 +43335,7 @@ declare namespace system{ * stripe to the bottom or the right. This is typically the bottom border for an {@link yfiles.graph.IRow} instance and the right * border for an {@link yfiles.graph.IColumn}. *

    - * @returns {yfiles.input.IHitTestable} a {@link yfiles.input.IHitTestable} that should report hits on the far border region of the stripe. + * @returns a {@link } that should report hits on the far border region of the stripe. * @see yfiles.input.StripeSubregion * @see yfiles.input.StripeSubregionTypes#FAR_BORDER * @abstract @@ -43311,7 +43348,7 @@ declare namespace system{ * Typically, this is the area occupied by the left insets for an {@link yfiles.graph.IRow} instance and by the top insets for an {@link yfiles.graph.IColumn} * instance. *

    - * @returns {yfiles.input.IHitTestable} a {@link yfiles.input.IHitTestable} that should report hits on the header region of the stripe. + * @returns a {@link } that should report hits on the header region of the stripe. * @see yfiles.input.StripeSubregion * @see yfiles.input.StripeSubregionTypes#HEADER * @abstract @@ -43324,7 +43361,7 @@ declare namespace system{ * stripe to the top or the left. This is typically the upper border for an {@link yfiles.graph.IRow} instance and the left border * for an {@link yfiles.graph.IColumn}. *

    - * @returns {yfiles.input.IHitTestable} a {@link yfiles.input.IHitTestable} that should report hits on the near border region of the stripe. + * @returns a {@link } that should report hits on the near border region of the stripe. * @see yfiles.input.StripeSubregion * @see yfiles.input.StripeSubregionTypes#NEAR_BORDER * @abstract @@ -43332,7 +43369,7 @@ declare namespace system{ getNearBorderHitTestable():yfiles.input.IHitTestable; /** * Return a {@link yfiles.input.IHitTestable} that should report hits on the whole stripe. - * @returns {yfiles.input.IHitTestable} a {@link yfiles.input.IHitTestable} that should report hits on the whole stripe. + * @returns a {@link } that should report hits on the whole stripe. * @see yfiles.input.StripeSubregion * @see yfiles.input.StripeSubregionTypes#STRIPE * @abstract @@ -43345,7 +43382,7 @@ declare namespace system{ * Typically, this is the area occupied by the right insets for an {@link yfiles.graph.IRow} instance and by the bottom insets for * an {@link yfiles.graph.IColumn} instance. *

    - * @returns {yfiles.input.IHitTestable} a {@link yfiles.input.IHitTestable} that should report hits on the header region of the stripe. + * @returns a {@link } that should report hits on the header region of the stripe. * @see yfiles.input.StripeSubregion * @see yfiles.input.StripeSubregionTypes#HEADER * @abstract @@ -43425,16 +43462,15 @@ declare namespace system{ *

    * Instances of this class are returned by the default {@link yfiles.input.StripeHitTester} implementation. *

    - * @class yfiles.input.StripeSubregion + * @class * @final */ export interface StripeSubregion extends Object{} export class StripeSubregion { /** * Create a new instance that describes the specific subregion. - * @param {yfiles.input.StripeSubregionTypes} subregionType The specific subregion - * @param {yfiles.graph.IStripe} stripe The stripe - * @constructor + * @param subregionType The specific subregion + * @param stripe The stripe */ constructor(subregionType:yfiles.input.StripeSubregionTypes,stripe:yfiles.graph.IStripe); /** @@ -43462,22 +43498,21 @@ declare namespace system{ * predefined template keys in the application resources. If you want to override the visualization for a specific stripe * only, assign a different {@link yfiles.view.IVisualTemplate} to the instance that is already present in the stripe's lookup. *

    - * @class yfiles.input.DefaultStripeInputVisualizationHelper + * @class * @implements {yfiles.input.IStripeInputVisualizationHelper} */ export interface DefaultStripeInputVisualizationHelper extends Object,yfiles.input.IStripeInputVisualizationHelper{} export class DefaultStripeInputVisualizationHelper { /** * Default constructor - * @param {yfiles.graph.IStripe} stripe The stripe for which the visualizations are intended - * @constructor + * @param stripe The stripe for which the visualizations are intended */ constructor(stripe:yfiles.graph.IStripe); /** * Provide a {@link yfiles.view.IVisualTemplate} that is used to visualize type. - * @param {yfiles.input.IInputModeContext} context The input mode context. Allows you to access the {@link yfiles.view.CanvasComponent} to retrieve the resources. - * @param {yfiles.input.StripeVisualizationType} type The visualization type - * @returns {yfiles.view.IVisualTemplate} A {@link yfiles.view.IVisualTemplate} that is used to visualize type. + * @param context The input mode context. Allows you to access the {@link } to retrieve the resources. + * @param type The visualization type + * @returns A {@link } that is used to visualize type. * @protected */ findTemplate(context:yfiles.input.IInputModeContext,type:yfiles.input.StripeVisualizationType):yfiles.view.IVisualTemplate; @@ -43486,10 +43521,10 @@ declare namespace system{ *

    * This implementation uses {@link yfiles.view.IVisualTemplate}s for the actual visualization. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context which provides further information. - * @param {yfiles.graph.INode} tableNode The node where the stripe's owner is currently bound to. - * @param {yfiles.input.StripeVisualizationType} type The actual visualization type - * @returns {yfiles.view.IVisualCreator} A {@link yfiles.view.IVisualCreator} instance that renders a representation for the current operation. + * @param context The input mode context which provides further information. + * @param tableNode The node where the stripe's owner is currently bound to. + * @param type The actual visualization type + * @returns A {@link } instance that renders a representation for the current operation. * @see yfiles.input.DefaultStripeInputVisualizationHelper#resizeStripeTemplate */ getVisualCreator(context:yfiles.input.IInputModeContext,tableNode:yfiles.graph.INode,type:yfiles.input.StripeVisualizationType):yfiles.view.IVisualCreator; @@ -43506,7 +43541,7 @@ declare namespace system{ */ static RESIZE_STRIPE_TEMPLATE_KEY:string; /** - * Data template that is used to visualize the current stripe resize operation. + * {@link yfiles.view.IVisualTemplate} that is used to visualize the current stripe resize operation. *

    * This template is used for {@link yfiles.input.StripeVisualizationType#RESIZE} *

    @@ -43527,7 +43562,7 @@ declare namespace system{ */ static SELECTED_STRIPE_TEMPLATE_KEY:string; /** - * Data template that is used to visualize the current stripe resize operation. + * {@link yfiles.view.IVisualTemplate} that is used to visualize the current stripe resize operation. *

    * This template is used for {@link yfiles.input.StripeVisualizationType#SELECTION} *

    @@ -43548,7 +43583,7 @@ declare namespace system{ */ static DRAG_SOURCE_STRIPE_TEMPLATE_KEY:string; /** - * Data template that is used to visualize the current source of a stripe reparent operation. + * {@link yfiles.view.IVisualTemplate} that is used to visualize the current source of a stripe reparent operation. *

    * This template is used for {@link yfiles.input.StripeVisualizationType#DRAG_SOURCE} *

    @@ -43569,7 +43604,7 @@ declare namespace system{ */ static DROP_TARGET_STRIPE_TEMPLATE_KEY:string; /** - * Data template that is used to visualize the current target of a stripe reparent operation. + * {@link yfiles.view.IVisualTemplate} that is used to visualize the current target of a stripe reparent operation. *

    * This template is used for {@link yfiles.input.StripeVisualizationType#DROP_TARGET} *

    @@ -43611,10 +43646,10 @@ declare namespace system{ export interface IStripeInputVisualizationHelper extends Object{ /** * Return an {@link yfiles.view.IVisualCreator} that is used to visualize the input operation specified by type. - * @param {yfiles.input.IInputModeContext} context The input mode context which provides further information. - * @param {yfiles.graph.INode} tableNode The node where the stripe's owner is currently bound to. - * @param {yfiles.input.StripeVisualizationType} type The actual visualization type - * @returns {yfiles.view.IVisualCreator} A {@link yfiles.view.IVisualCreator} instance that renders a representation for the current operation. + * @param context The input mode context which provides further information. + * @param tableNode The node where the stripe's owner is currently bound to. + * @param type The actual visualization type + * @returns A {@link } instance that renders a representation for the current operation. * @abstract */ getVisualCreator(context:yfiles.input.IInputModeContext,tableNode:yfiles.graph.INode,type:yfiles.input.StripeVisualizationType):yfiles.view.IVisualCreator; @@ -43625,17 +43660,16 @@ declare namespace system{ }; /** * Support class that allows to iterate over hits on table elements or subregions of table elements. - * @class yfiles.input.StripeHitTester + * @class */ export interface StripeHitTester extends Object{} export class StripeHitTester { /** * Create a new instance for a specific table instance that use the order specified by tableRenderingOrder to determine the * order of the hit test results. - * @param {yfiles.graph.ITable} table The table to use - * @param {yfiles.styles.TableRenderingOrder} tableRenderingOrder The hit test order. This determines the order in which stripes are returned by - * {@link yfiles.input.StripeHitTester#enumerateHits} - * @constructor + * @param table The table to use + * @param tableRenderingOrder The hit test order. This determines the order in which stripes are returned by + * {@link #enumerateHits} */ constructor(table:yfiles.graph.ITable,tableRenderingOrder:yfiles.styles.TableRenderingOrder); /** @@ -43653,10 +43687,10 @@ declare namespace system{ * returned before a hit on the whole stripe. * * - * @param {yfiles.input.IInputModeContext} context The input mode context to use. - * @param {yfiles.geometry.Point} location The location in absolute coordinates. - * @param {yfiles.graph.INode} node The node where the table instance is currently bound to. - * @returns {yfiles.collections.IEnumerable.} A collection of {@link yfiles.input.StripeSubregion}s at location + * @param context The input mode context to use. + * @param location The location in absolute coordinates. + * @param node The node where the table instance is currently bound to. + * @returns A collection of {@link }s at location */ enumerateHits(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,node:yfiles.graph.INode):yfiles.collections.IEnumerable; /** @@ -43690,1101 +43724,10 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; - /** - * A group of {@link yfiles.graph.IUndoUnit}s that are undone/redone as a single unit. - *

    - * Clients can use this class to build an {@link yfiles.graph.IUndoUnit} that groups together multiple {@link yfiles.graph.IUndoUnit}s. The - * {@link yfiles.graph.IUndoUnit}s added to this unit are undone/redone in the order in which they were added. This implementation - * will try to {@link yfiles.graph.IUndoUnit#tryMergeUnit merge} or {@link yfiles.graph.IUndoUnit#tryReplaceUnit replace} units that are {@link yfiles.graph.CompositeUndoUnit#add added}. - *

    - * @class yfiles.graph.CompositeUndoUnit - * @implements {yfiles.graph.IUndoUnit} - */ - export interface CompositeUndoUnit extends Object,yfiles.graph.IUndoUnit{} - export class CompositeUndoUnit { - /** - * Creates a new instance using the provided names. - * @param {string} [undoName=null] - * @param {string} [redoName=null] - * @constructor - */ - constructor(undoName?:string,redoName?:string); - /** - * Creates a new instance using the provided names. - * @param {Object} options The parameters to pass. - * @param {string} [options.undoName=null] - * @param {string} [options.redoName=null] - * @constructor - */ - constructor(options:{undoName?:string,redoName?:string}); - /** - * Adds a new {@link yfiles.graph.IUndoUnit} to the queue. - * @param {yfiles.graph.IUndoUnit} unit The unit of work to add. - */ - add(unit:yfiles.graph.IUndoUnit):void; - /** - * Determines whether a call to {@link yfiles.graph.CompositeUndoUnit#redo} can be made. - * @returns {boolean} - */ - canRedo():boolean; - /** - * Determines whether a call to {@link yfiles.graph.CompositeUndoUnit#undo} can be made. - * @returns {boolean} - */ - canUndo():boolean; - /** - * Clears the internal collection of units. - */ - clear():void; - /** - * Disposes this unit and all of its contents. - *

    - * This unit cannot be used anymore after this has been invoked. - *

    - */ - dispose():void; - /** - * Redoes the next {@link yfiles.graph.IUndoUnit}. - * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. - * @throws {yfiles.lang.Exception} If {@link yfiles.graph.CompositeUndoUnit#canRedo} would yield false. - */ - redo():void; - /** - * Tries to remove a given unit from this compound unit. - *

    - * This method will throw an exception if this unit has been undone or an undo or redo is in progress or this unit has - * already been disposed. This method will not automatically {@link yfiles.graph.IUndoUnit#dispose Dispose} removed units. - *

    - * @param {yfiles.graph.IUndoUnit} unit The unit to remove. - * @returns {boolean} true iff the unit has been removed from this instance. - */ - removeUnit(unit:yfiles.graph.IUndoUnit):boolean; - /** - * Undoes the next {@link yfiles.graph.IUndoUnit}. - * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. - * @throws {yfiles.lang.Exception} If {@link yfiles.graph.CompositeUndoUnit#canUndo} would yield false. - */ - undo():void; - /** - * Yields the number of units that are contained in this compound unit. - * @type {number} - */ - count:number; - /** - * Returns the current redo name. - * @type {string} - */ - redoName:string; - /** - * Returns the current redo name. - * @type {string} - */ - undoName:string; - /** - * Determines whether this instance has been {@link yfiles.graph.CompositeUndoUnit#dispose disposed.} - *

    - * An instance that has been disposed cannot be {@link yfiles.graph.CompositeUndoUnit#undo undone} or {@link yfiles.graph.CompositeUndoUnit#redo redone}. - *

    - * @type {boolean} - */ - disposed:boolean; - static $class:yfiles.lang.Class; - } - /** - * This interface is a means to bracket several - * {@link yfiles.graph.IUndoUnit}s, that is a collection of units that are treated as one (e.g. they are always undone or redone as - * a single unit). - *

    - * {@link yfiles.graph.ICompoundEdit}s have two states: active and settled. Whenever an {@link yfiles.graph.ICompoundEdit} is retrieved from the {@link yfiles.graph.UndoEngine} - * or the graph instance, it automatically is active. While an edit is in the active state, it gathers {@link yfiles.graph.IUndoUnit}s until - * the {@link yfiles.graph.ICompoundEdit#commit} or {@link yfiles.graph.ICompoundEdit#cancel} methods are called. Calling the {@link yfiles.graph.ICompoundEdit#commit} - * method commits all gathered {@link yfiles.graph.IUndoUnit}s to the {@link yfiles.graph.UndoEngine}, while canceling will {@link yfiles.graph.IUndoUnit#dispose dispose} them. - * Calling either method will put the edit in the settled state. In this state, the edit does not gather units anymore and is not - * reusable. - *

    - *

    - * {@link yfiles.graph.ICompoundEdit}s can also be nested, in this case the changes of the inner edit are not committed directly to - * the {@link yfiles.graph.UndoEngine} but to the outer edit. Only when the outer edit is committed, the units are committed to the - * {@link yfiles.graph.UndoEngine}. - *

    - * @see yfiles.graph.UndoEngine - * @see yfiles.graph.IUndoUnit - * @interface - */ - export interface ICompoundEdit extends Object{ - /** - * This method cancels the compound editing process. - *

    - * The recorded {@link yfiles.graph.IUndoUnit}s are {@link yfiles.graph.IUndoUnit#dispose disposed} and the edit is not usable anymore. - *

    - * @abstract - */ - cancel():void; - /** - * This method commits the compound editing process. - *

    - * The {@link yfiles.graph.IUndoUnit}s are enqueued into the corresponding {@link yfiles.graph.UndoEngine} instance and the edit is not - * usable anymore. - *

    - * @abstract - */ - commit():void; - } - var ICompoundEdit:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * The basic lookup interface that allows for retrieving implementations for different aspects of the current instance. - *

    - * The lookup idiom allows for dynamically providing, adding, changing, and removing implementation aspects of an instance - * that would not be possible to achieve using ordinary object oriented methods. - *

    - * @interface - */ - export interface ILookup extends Object{ - /** - * Returns an instance that implements the given type or null. - *

    - * Typically, this method will be called in order to obtain a different view or aspect of the current instance. This is - * quite similar to casting or using a super type or interface of this instance, but is not limited to inheritance or - * compile time constraints. An instance implementing this method is not required to return non-null implementations for - * the types, nor does it have to return the same instance any time. Also it depends on the type and context whether the - * instance returned stays up to date or needs to be reobtained for subsequent use. - *

    - * @param {yfiles.lang.Class} type the type for which an instance shall be returned - * @returns {Object} an instance that is assignable to type or null - * @abstract - */ - lookup(type:yfiles.lang.Class):Object; - } - var ILookup:{ - /** - * Creates a lookup implementation that wraps an existing ILookup instance using an additional lookup implementations. - *

    - * For each lookup call that the additionalLookup would yield null, the basicLookup will be queried instead. - *

    - * @param {yfiles.graph.ILookup} basicLookup the fallback lookup implementation - * @param {yfiles.graph.ILookup} additionalLookup the lookup that has precedence over the fallback - * @returns {yfiles.graph.ILookup} an implementation that decorates the first with the latter - * @static - */ - createCascadingLookup?(basicLookup:yfiles.graph.ILookup,additionalLookup:yfiles.graph.ILookup):yfiles.graph.ILookup; - /** - * Creates a dynamic lookup implementation that for each type that the given subject can be assigned to yields that - * subject. - * @param {Object} subject the subject to yield if it is assignable to the type in the lookup query - * @returns {yfiles.graph.ILookup} an instance that will either yield subject or null - * @static - */ - createDynamicLookup?(subject:Object):yfiles.graph.ILookup; - /** - * Creates a simple mutable {@link yfiles.graph.ILookup} implementation that is backed by an {@link yfiles.collections.IMap.}. - *

    - * The {@link yfiles.graph.ILookup#lookup lookup} method uses the specified type as key when delegating to the backingDictionary. - *

    - * @param {yfiles.collections.Map.} backingDictionary The backing {@link yfiles.collections.Map.} that is used in the {@link yfiles.graph.ILookup#lookup lookup} calls. - * @returns {yfiles.graph.ILookup} A simple mutable {@link yfiles.graph.ILookup} implementation that is backed by a dictionary. - * @static - */ - createMapLookup?(backingDictionary:yfiles.collections.Map):yfiles.graph.ILookup; - /** - * Creates a simple lookup implementation that yields subject if type is queried. - * @param {Object} subject the subject to yield - * @param {yfiles.lang.Class} type the type that should yield the subject - * @returns {yfiles.graph.ILookup} an ILookup implementation - * @static - */ - createSingleLookup?(subject:Object,type:yfiles.lang.Class):yfiles.graph.ILookup; - /** - * An ILookup instance that always returns null. - * @const - * @static - * @type {yfiles.graph.ILookup} - */ - EMPTY?:yfiles.graph.ILookup; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An interface for instances that can provide a {@link yfiles.graph.ILookup} capabilities for a given object. - *

    - * This is useful in the case where lookup functionality is not intrinsic to an item or where an existing object cannot - * implement the interface or when an item needs to be decorated externally with new lookup functionality. - *

    - * @see yfiles.graph.ILookup - * @interface - */ - export interface IContextLookup extends Object{ - /** - * Tries to create or retrieve an implementation of the given type for a given item. - * @param {Object} item the item to lookup a type for - * @param {yfiles.lang.Class} type the type to look up - * @returns {Object} an implementation or null - * @see yfiles.graph.ILookup#lookup - * @abstract - */ - contextLookup(item:Object,type:yfiles.lang.Class):Object; - } - var IContextLookup:{ - /** - * An ILookupContext instance that always returns null. - * @const - * @static - * @type {yfiles.graph.IContextLookup} - */ - EMPTY_CONTEXT_LOOKUP?:yfiles.graph.IContextLookup; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An interface for instances that can be used to chain lookup operations. - *

    - * Implementations will perform the lookup in the {@link yfiles.graph.IContextLookup#contextLookup} method and delegate to the next - * implementation in the chain if they cannot satisfy the request. - *

    - * @interface - * @implements {yfiles.graph.IContextLookup} - */ - export interface IContextLookupChainLink extends Object,yfiles.graph.IContextLookup{ - /** - * This method is called by the framework to register the fallback lookup implementation that should be used during a call - * to {@link yfiles.graph.IContextLookup#contextLookup}. - *

    - * If the implementation cannot satisfy the query, it will use the provided context as a fallback. Note that - * implementations can also use the results returned by the next lookup and decorate it appropriately. - *

    - * @param {yfiles.graph.IContextLookup} next The context to use as a fallback. - * @abstract - */ - setNext(next:yfiles.graph.IContextLookup):void; - } - var IContextLookupChainLink:{ - /** - * Factory method for a lookup chain element that simply adds an entry to a lookup chain. - * @param {yfiles.lang.Class} type The type to add to the lookup. - * @param {Object} instance The instance to return if the type is being looked up. - * @returns {yfiles.graph.IContextLookupChainLink} An instance that can be used in a lookup chain. - * @static - */ - addingLookupChainLink?(type:yfiles.lang.Class,instance:Object):yfiles.graph.IContextLookupChainLink; - /** - * Factory method for a lookup chain element that adds an {@link yfiles.graph.ILookup} layer to a lookup chain. - *

    - * If the lookup returns null, the call will be propagated to the chain. - *

    - * @param {yfiles.graph.ILookup} lookup The lookup to use. - * @returns {yfiles.graph.IContextLookupChainLink} An instance that can be used in a lookup chain. - * @static - */ - addingLookupChainLink?(lookup:yfiles.graph.ILookup):yfiles.graph.IContextLookupChainLink; - /** - * Factory method for a lookup chain element that adds an dynamic instance to a lookup chain. - *

    - * The instance returned will check whether instance is of the queried type and will then return the instance. - *

    - * @param {Object} instance The instance to query the type from dynamically. - * @returns {yfiles.graph.IContextLookupChainLink} An instance that can be used in a lookup chain. - * @static - */ - addingLookupChainLink?(instance:Object):yfiles.graph.IContextLookupChainLink; - /** - * Creates a lookup chain link that is backed by the given callback. - *

    - * If the callback returns null the request is passed to the chain. - *

    - * @param {function(Object, yfiles.lang.Class): Object} callback The callback to invoke. - * @returns {yfiles.graph.IContextLookupChainLink} The implementation of the link that uses the callback. - * @static - */ - createContextLookupChainLink?(callback:(subject:Object,type:yfiles.lang.Class)=>Object):yfiles.graph.IContextLookupChainLink; - /** - * Factory method for a lookup chain element that uses a function of type function(TContext) to yield a TResult for a specific TContext. - *

    - * If the resulting link is {@link yfiles.graph.IContextLookup#contextLookup queried} for TResult and the context is of type TContext, the factory method will be queried and the result - * will be returned. Otherwise the {@link yfiles.graph.IContextLookupChainLink#setNext next} chain link will be delegated the request to. - *

    - * Type parameter TContext. - * Type parameter TResult. - * @param {function(TContext): TResult} factory The factory delegate to use that yields the result for a given context. - * @returns {yfiles.graph.IContextLookupChainLink} An instance that can be used in a lookup chain. - * @template TContext,TResult - * @static - */ - factoryLookupChainLink?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult):yfiles.graph.IContextLookupChainLink; - /** - * Factory method for a lookup chain element that removes the entry from the lookup chain for a given type. - * @param {yfiles.lang.Class} type The type to hide from the lookup. - * @returns {yfiles.graph.IContextLookupChainLink} An instance that can be used in a lookup chain. - * @static - */ - hidingLookupChainLink?(type:yfiles.lang.Class):yfiles.graph.IContextLookupChainLink; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that can be used to decorate the lookup result for a set of types. - * @see yfiles.graph.ILookup - * @see yfiles.graph.IContextLookupChainLink - * @interface - */ - export interface ILookupDecorator extends Object{ - /** - * Adds a lookup implementation for a given type using a function of type function(TContext, TResult). - *

    - * This method is closely related to the {@link yfiles.graph.ILookupDecorator#add} method, however it passes the result of the - * remaining chain to the delegate for convenient wrapping of the result. Note that if the implementation does not depend - * on the previous result in order to wrap it, it is better to use that variant, in order to avoid the possibly costly - * evaluation of the remainder of the lookup chain. - *

    - * Type parameter TContext: The type of the context subject. - * Type parameter TResult: The type of the query, which is a base type or the type of the result. - * @param {function(TContext, TResult): TResult} wrapperFactory The factory delegate that will be used to satisfy queries of type TResult - * @param {boolean} [decorateNull=true] Whether to actually decorate null results of remainder of the chain. If this is set to false, the wrapperFactory will - * never be called with null as the second argument but the result of the query for this chain link will be the null - * value. - * @returns {yfiles.graph.IContextLookupChainLink} The {@link yfiles.graph.IContextLookupChainLink} instance as returned by the {@link yfiles.graph.ILookupDecorator#addLookup} call or - * null, if either decorator was null, or it {@link yfiles.graph.ILookupDecorator#canDecorate could not decorate} the TContext type. - * @template TContext,TResult - */ - add?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,wrapperFactory:(arg1:TContext,arg2:TResult)=>TResult,decorateNull?:boolean):yfiles.graph.IContextLookupChainLink; - /** - * Adds a lookup implementation for a given type using a func. - * Type parameter TContext: The type of the context subject. - * Type parameter TResult: The type of the query, which is a base type or the type of the result. - * @param {function(TContext): TResult} factory The factory delegate that will be used to satisfy queries of type TResult. - * @param {boolean} [nullIsFallback=true] Whether to treat null-results of the factory as hints to use the remainder of the chain link or to actually yield the - * value as the final result. - * @returns {yfiles.graph.IContextLookupChainLink} The {@link yfiles.graph.IContextLookupChainLink} instance as returned by the {@link yfiles.graph.ILookupDecorator#addLookup} call or - * null, if either decorator was null, or it {@link yfiles.graph.ILookupDecorator#canDecorate could not decorate} the TContext type. - * @template TContext,TResult - */ - add?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult,nullIsFallback?:boolean):yfiles.graph.IContextLookupChainLink; - /** - * Add a lookup implementation for a given type that always yields a constant result. - * Type parameter TContext: The type of the context subject. - * Type parameter TResult: The type of the query, which is a base type or the type of the result. - * @param {TResult} result The constant value to yield if the chain is queried for an implementation of type TResult. - * @returns {yfiles.graph.IContextLookupChainLink} The {@link yfiles.graph.IContextLookupChainLink} instance as returned by the {@link yfiles.graph.ILookupDecorator#addLookup} call or - * null, if either decorator was null, or it {@link yfiles.graph.ILookupDecorator#canDecorate could not decorate} the TContext type. - * @template TContext,TResult - */ - addConstant?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,result:TResult):yfiles.graph.IContextLookupChainLink; - /** - * Adds a lookup chain element to the chain of lookups for a given type. - *

    - * The lookup chain is context specific. This method will not generally decorate the lookup of all instances of type t, but - * only those that stand in context of this instance. This method will only succeed if {@link yfiles.graph.ILookupDecorator#canDecorate} - * yields true for t. - *

    - * @param {yfiles.lang.Class} t The type to decorate the lookup. - * @param {yfiles.graph.IContextLookupChainLink} lookup The chain element to add to the lookup of the given type. - * @see yfiles.graph.ILookupDecorator#removeLookup - * @see yfiles.graph.ILookupDecorator#add - * @see yfiles.graph.ILookupDecorator#add - * @see yfiles.graph.ILookupDecorator#addConstant - * @abstract - */ - addLookup(t:yfiles.lang.Class,lookup:yfiles.graph.IContextLookupChainLink):void; - /** - * Determines whether this instance can be used to decorate the lookup for a certain type. - * @param {yfiles.lang.Class} t The type to decorate the lookup for. - * @returns {boolean} - * @abstract - */ - canDecorate(t:yfiles.lang.Class):boolean; - /** - * Removes a previously registered lookup chain element from the chain of lookups for a given type. - * @param {yfiles.lang.Class} t The type to remove the decorator from. - * @param {yfiles.graph.IContextLookupChainLink} lookup The chain element to remove from the lookup of the given type. - * @see yfiles.graph.ILookupDecorator#addLookup - * @abstract - */ - removeLookup(t:yfiles.lang.Class,lookup:yfiles.graph.IContextLookupChainLink):void; - } - var ILookupDecorator:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface implemented by items that can be tagged with arbitrary objects. - *

    - * The object held by implementations of this interface is usually a user defined object. Implementations don't depend on - * this tag. They just serve as a storage for the tag that will be used by other parts of the implementation. - *

    - * @interface - */ - export interface ITagOwner extends Object{ - /** - * Gets or sets the tag associated with this instance. - *

    - * The implementation itself does not normally depend on the tag associated with it. It serves as storage for the object - * only. - *

    - * @abstract - * @type {Object} - */ - tag:Object; - } - var ITagOwner:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An implementation of a chain of {@link yfiles.graph.IContextLookupChainLink}s. - * @class yfiles.graph.LookupChain - * @implements {yfiles.graph.IContextLookup} - * @implements {yfiles.lang.IPropertyObservable} - */ - export interface LookupChain extends Object,yfiles.graph.IContextLookup,yfiles.lang.IPropertyObservable{} - export class LookupChain { - constructor(); - /** - * A convenience method that adds a {@link yfiles.graph.IContextLookupChainLink} to the given chain that is based on a function of - * type function(TContext, TResult). - *

    - * Depending on decorateNull, null results of the underlying chain will be passed to the - * wrapperFactory, or simply yielded as the final result. - *

    - * Type parameter TContext: The type of the context. - * Type parameter TResult: The type of the result. - * @param {function(TContext, TResult): TResult} wrapperFactory The wrapper factory that will be called for queries to TResult to wrap the result of the query to the remainder of the chain. - * @param {boolean} [decorateNull=false] if set to true null return values of the remainder of the chain will be passed to the wrapper factory so that it can - * decorate the null, otherwise null will be yielded as the final result. - * @returns {yfiles.graph.IContextLookupChainLink} The link that has been registered with the chain. - * @template TContext,TResult - */ - add(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,wrapperFactory:(arg1:TContext,arg2:TResult)=>TResult,decorateNull?:boolean):yfiles.graph.IContextLookupChainLink; - /** - * A convenience method that adds a {@link yfiles.graph.IContextLookupChainLink} to the given chain that is based on a function of - * type function(TContext). - *

    - * Depending on nullIsFallback, null return values of the factory will be interpreted as the final result or indicate to - * the implementation that the chain should be queried for the result. - *

    - * Type parameter TContext: The type of the context. - * Type parameter TResult: The type of the result. - * @param {function(TContext): TResult} factory The factory that will be called for queries to TResult. - * @param {boolean} [nullIsFallback=true] If set to true, null return values of the factory method will be interpreted as the final result, otherwise the request - * will propagate down the chain. - * @returns {yfiles.graph.IContextLookupChainLink} The link that has been registered with the chain. - * @template TContext,TResult - */ - add(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult,nullIsFallback?:boolean):yfiles.graph.IContextLookupChainLink; - /** - * Adds the given link to the end of the chain. - * @param {yfiles.graph.IContextLookupChainLink} lookup The link to add. - * @see yfiles.graph.LookupChain#remove - */ - add(lookup:yfiles.graph.IContextLookupChainLink):void; - /** - * Convenience method that can be used instead of the {@link yfiles.graph.LookupChain#add} method to easily add a lookup - * implementation for a given type that always yields a constant result. - * Type parameter TResult: The type of the query, which is a base type or the type of the result. - * @param {TResult} result The constant value to yield if the chain is queried for an implementation of type TResult. - * @returns {yfiles.graph.IContextLookupChainLink} The {@link yfiles.graph.IContextLookupChainLink} instance that has been added to the chain. - * @template TResult - */ - addConstant(resultType:yfiles.lang.Class,result:TResult):yfiles.graph.IContextLookupChainLink; - /** - * Performs the actual lookup operation. - *

    - * This call will traverse the chain to satisfy the query. - *

    - * @param {Object} item The item to use as the context. - * @param {yfiles.lang.Class} type The type of the query. - * @returns {Object} The result of the query. - */ - contextLookup(item:Object,type:yfiles.lang.Class):Object; - /** - * Can be called by client code to trigger the {@link yfiles.graph.LookupChain#addPropertyChangedListener PropertyChanged} - * event manually. - */ - notifyChange():void; - /** - * Notifies client code that the lookup of this instance might have changed. - * @param {yfiles.lang.PropertyChangedEventArgs} evt The arguments - * @protected - */ - onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; - /** - * Removes the link that has previously been added to this instance from this chain. - * @param {yfiles.graph.IContextLookupChainLink} link The link to remove. - */ - remove(link:yfiles.graph.IContextLookupChainLink):void; - /** - * Adds the given listener for the PropertyChanged event that occurs when the lookup of this instance has changed for some - * or all of the types or items. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. - * @see yfiles.graph.LookupChain#removePropertyChangedListener - */ - addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Removes the given listener for the PropertyChanged event that occurs when the lookup of this instance has changed for - * some or all of the types or items. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. - * @see yfiles.graph.LookupChain#addPropertyChangedListener - */ - removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - /** - * The main class to provide undo and redo functionality. - *

    - * The {@link yfiles.graph.UndoEngine} is in charge of {@link yfiles.graph.UndoEngine#beginCompoundEdit recording}, {@link yfiles.graph.UndoEngine#addUnit managing} and {@link yfiles.graph.UndoEngine#undo executing} single units of work that can be undone - * and redone, represented by the interface {@link yfiles.graph.IUndoUnit}. - *

    - *

    - * These units are managed in a queue-like structure and can be added manually to the queue by calling the {@link yfiles.graph.UndoEngine#addUnit} - * method. - *

    - *

    - * Executing the units is done by client code or commands by calling {@link yfiles.graph.UndoEngine#undo} or - * {@link yfiles.graph.UndoEngine#redo}. The engine automatically manages the queue so that calling these two methdos will - * consistently move the units in the queue. - *

    - *

    - * The {@link yfiles.graph.UndoEngine#beginCompoundEdit} method allows to record units by bracketing serveral changes in an - * {@link yfiles.graph.ICompoundEdit}. Implementations of the {@link yfiles.graph.ICompoundEdit} interface record all subsequent changes - * until it is {@link yfiles.graph.ICompoundEdit#commit committed} and therefore all recorded units are added to the engine. For more information and examples see - * {@link yfiles.graph.ICompoundEdit}. - *

    - *

    - * Depending on the properties {@link yfiles.graph.UndoEngine#mergeUnits} and {@link yfiles.graph.UndoEngine#autoMergeTime}, the engine tries to collapse added {@link yfiles.graph.IUndoUnit}s if possible. This enhances - * the performance and reduces the required memory for undo changes. For example, when a node is moved interactively, - * instead of saving every position that the node had when being dragged the engine will only hold one {@link yfiles.graph.IUndoUnit} - * at the end to undo the entire movement. - *

    - *

    - *
    Customizing Undo/Redo - *

      - *
    • - * In general, to be able to undo or redo certain work client code can implement {@link yfiles.graph.IUndoUnit} or subclass - * {@link yfiles.graph.UndoUnitBase UndoUnitBase}. The client application needs to encapsulate - * changes in this implementation and provide the logic to completely undo and redo these changes. - * Instances of your custom {@link yfiles.graph.IUndoUnit} implementations need to be added to the {@link yfiles.graph.UndoEngine} - * manually via {@link yfiles.graph.UndoEngine#addUnit}. - *
    • - *
    • - * In certain cases it is difficult or not efficient to track and save the changes between certain states, - * and better to save the states themselves and to restore these. For example when there are potentially - * many intermediate steps between two states of interest and it would be complicated - * to produce {@link yfiles.graph.IUndoUnit}s for each intermediate step and merge them in the end. - * In such cases client code should implement {@link yfiles.graph.IMementoSupport} instead. - * See the documentation of {@link yfiles.graph.IMementoSupport} for examples and guidelines on how to implement - * this memento design pattern concept. - *
    • - *
    • - * It is generally not necessary to subclass {@link yfiles.graph.UndoEngine} unless you want to customize the internal - * handling of the units, which is both complicated and prone to errors. In most use cases it is sufficient - * to provide custom {@link yfiles.graph.IUndoUnit}s or {@link yfiles.graph.IMementoSupport}. - *
    • - *
    - *

    - * @see yfiles.graph.IUndoUnit - * @see yfiles.graph.UndoUnitBase - * @see yfiles.graph.IMementoSupport - * @see yfiles.graph.ICompoundEdit - * @class yfiles.graph.UndoEngine - * @implements {yfiles.lang.IPropertyObservable} - */ - export interface UndoEngine extends Object,yfiles.lang.IPropertyObservable{} - export class UndoEngine { - /** - * Initializes a new instance of the {@link yfiles.graph.UndoEngine} class. - * @param {Object} [options=null] The parameters to pass. - * @param {boolean} options.mergeUnits A value that indicates whether or not this instance should try to merge newly added units. - *

    - * This option sets the {@link yfiles.graph.UndoEngine#mergeUnits} property on the created object. - *

    - * @param {yfiles.lang.TimeSpan} options.autoMergeTime The duration during which the engine will try to merge newly added units. - *

    - * This option sets the {@link yfiles.graph.UndoEngine#autoMergeTime} property on the created object. - *

    - * @param {number} options.size The maximum size of the undo queue this instance is managing. - *

    - * This option sets the {@link yfiles.graph.UndoEngine#size} property on the created object. - *

    - * @constructor - */ - constructor(options?:{mergeUnits?:boolean,autoMergeTime?:yfiles.lang.TimeSpan,size?:number}); - /** - * Adds a new {@link yfiles.graph.IUndoUnit} to the queue. - *

    - * This implementation will automatically group multiple units into a single unit if the time since the last add is less - * than {@link yfiles.graph.UndoEngine#autoMergeTime}. - *

    - * @param {yfiles.graph.IUndoUnit} unit The unit of work to add. - */ - addUnit(unit:yfiles.graph.IUndoUnit):void; - /** - * Begins a compound edit that will use the provided name. - *

    - * This will create a new edit that can independently be {@link yfiles.graph.ICompoundEdit#cancel canceled} or {@link yfiles.graph.ICompoundEdit#commit committed}. Note that only if the outer-most instances - * is committed, the corresponding {@link yfiles.graph.IUndoUnit} units will be enqueued into this instance. - *

    - * @param {string} undoName The undo name to use for the edit. - * @param {string} redoName The redo name to use for the edit. - * @returns {yfiles.graph.ICompoundEdit} A compound edit implementation that needs to be {@link yfiles.graph.ICompoundEdit#cancel canceled} or {@link yfiles.graph.ICompoundEdit#commit committed} later. - */ - beginCompoundEdit(undoName:string,redoName:string):yfiles.graph.ICompoundEdit; - /** - * Determines whether a call to {@link yfiles.graph.UndoEngine#redo} can be made. - * @returns {boolean} - */ - canRedo():boolean; - /** - * Determines whether a call to {@link yfiles.graph.UndoEngine#undo} can be made. - * @returns {boolean} - */ - canUndo():boolean; - /** - * Clears the internal queue and {@link yfiles.graph.IUndoUnit#dispose disposes} all units in it. - */ - clear():void; - /** - * Returns a token that can be used to store and compare the state of the undo queue. - *

    - * E.g. an application can retrieve the token once the user has saved his document. Comparing the token returned by this - * instance with another one retrieved at a later point in time enables the application to determine whether the document - * is in the same state. - *

    - * @returns {Object} An object that can be checked against other tokens via the {@link Object#equals} method. - */ - getToken():Object; - /** - * This will trigger the corresponding {@link yfiles.graph.UndoEngine#addPropertyChangedListener PropertyChanged} event. - * @param {string} name The name of the property that changed. - * @protected - */ - onPropertyChanged(name:string):void; - /** - * Redoes the next {@link yfiles.graph.IUndoUnit}. - * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. - * @throws {yfiles.lang.Exception} If {@link yfiles.graph.UndoEngine#canRedo} would yield false. - */ - redo():void; - /** - * Undoes the next {@link yfiles.graph.IUndoUnit}. - * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. - * @throws {yfiles.lang.Exception} If {@link yfiles.graph.UndoEngine#canUndo} would yield false. - */ - undo():void; - /** - * Gets or sets a value that indicates whether or not this instance should try to merge newly added units. - *

    - * If true this instance will try to {@link yfiles.graph.IUndoUnit#tryMergeUnit merge} or {@link yfiles.graph.IUndoUnit#tryReplaceUnit replace} units in the queue. Note that when the {@link yfiles.graph.UndoEngine#autoMergeTime} property is set to {@link yfiles.lang.TimeSpan#ZERO} - * and this property is set to true, the engine will always try to merge incoming units. Otherwise the {@link yfiles.graph.UndoEngine#autoMergeTime} dictates whether - * the engine will try to merge a unit or not. - *

    - * @see yfiles.graph.UndoEngine#autoMergeTime - * @type {boolean} - */ - mergeUnits:boolean; - /** - * Gets or sets the duration during which the engine will try to merge newly added units. - *

    - * If this is set to {@link yfiles.lang.TimeSpan#ZERO}, the engine will try to merge incoming units depending on the {@link yfiles.graph.UndoEngine#mergeUnits} property. - * Otherwise, if the time span between the last added unit and the new unit exceeds the set value, the engine does not try - * to merge the units regardless what the {@link yfiles.graph.UndoEngine#mergeUnits} property is set to. Likewise, if the time span is smaller than the set value, - * the engine will always try to merge units. - *

    - * @type {yfiles.lang.TimeSpan} - */ - autoMergeTime:yfiles.lang.TimeSpan; - /** - * Gets or sets the maximum size of the undo queue this instance is managing. - *

    - * A size of 0 effectively disables this implementation. - *

    - * @type {number} - */ - size:number; - /** - * Returns the {@link yfiles.graph.IUndoUnit#undoName} of the next {@link yfiles.graph.UndoEngine#undo} operation. - * @type {string} - */ - undoName:string; - /** - * Returns the {@link yfiles.graph.IUndoUnit#redoName} of the next {@link yfiles.graph.UndoEngine#redo} operation. - * @type {string} - */ - redoName:string; - /** - * Indicates whether this instance is currently performing an undo operation. - * @type {boolean} - */ - performingUndo:boolean; - /** - * Indicates whether this instance is currently performing a redo operation. - * @type {boolean} - */ - performingRedo:boolean; - /** - * Adds the given listener for the PropertyChanged event that occurs when {@link yfiles.graph.UndoEngine#canUndo}, - * {@link yfiles.graph.UndoEngine#canRedo}, {@link yfiles.graph.UndoEngine#undoName}, or {@link yfiles.graph.UndoEngine#redoName} changed its value. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. - * @see yfiles.graph.UndoEngine#removePropertyChangedListener - */ - addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Removes the given listener for the PropertyChanged event that occurs when {@link yfiles.graph.UndoEngine#canUndo}, - * {@link yfiles.graph.UndoEngine#canRedo}, {@link yfiles.graph.UndoEngine#undoName}, or {@link yfiles.graph.UndoEngine#redoName} changed its value. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. - * @see yfiles.graph.UndoEngine#addPropertyChangedListener - */ - removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Adds the given listener for the UnitUndone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#undo} - * operation of an {@link yfiles.graph.IUndoUnit}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. - * @see yfiles.graph.UndoEngine#removeUnitUndoneListener - */ - addUnitUndoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; - /** - * Removes the given listener for the UnitUndone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#undo} - * operation of an {@link yfiles.graph.IUndoUnit}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. - * @see yfiles.graph.UndoEngine#addUnitUndoneListener - */ - removeUnitUndoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; - /** - * Adds the given listener for the UnitRedone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#redo} - * operation of an {@link yfiles.graph.IUndoUnit}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. - * @see yfiles.graph.UndoEngine#removeUnitRedoneListener - */ - addUnitRedoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; - /** - * Removes the given listener for the UnitRedone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#redo} - * operation of an {@link yfiles.graph.IUndoUnit}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. - * @see yfiles.graph.UndoEngine#addUnitRedoneListener - */ - removeUnitRedoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - /** - * Represents a unit of work that can be undone and redone. - *

    - * Clients should use this interface when certain actions, changes or events should be monitored and have undoability - * provided for them. If you simply want to track the state of certain items between two states of interest, you should - * consider using {@link yfiles.graph.IMementoSupport mementos} instead. - *

    - *

    - * The central methods of this interface are {@link yfiles.graph.IUndoUnit#undo} and {@link yfiles.graph.IUndoUnit#redo} which contain the - * logic to undo or redo a unit of work. Keep in mind that undo/redo are sensible operations and should maintain a - * consistent state before and after each operation since they may be executed potentially often one after another. - *

    - *

    - * The requirement for an {@link yfiles.graph.IUndoUnit} is that when a program is in a certain state and a call to {@link yfiles.graph.IUndoUnit#undo} - * is followed by a call to {@link yfiles.graph.IUndoUnit#redo} then the program is in the exact same state as before (the same - * holds true for the other way around). - *

    - *

    - * A default implementation of this interface is the abstract class {@link yfiles.graph.UndoUnitBase} which forces only the - * implementation of the undo/redo logic and defaults the other methods. Clients should primarily extend this class instead - * of implementing the whole interface. - *

    - *

    - * IUndoUnits are managed by the {@link yfiles.graph.UndoEngine}. Custom units can always be added to the engine using the method - * {@link yfiles.graph.UndoEngine#addUnit}. Also consider to use one of the convenience implementations: {@link yfiles.graph.DelegateUndoUnit.} takes delegates for the - * undo/redo operations and {@link yfiles.graph.CompositeUndoUnit} creates a bracketing unit comprising several other units. - *

    - *

    - * Also note that in order to keep a consistent state, methods of objects of this type should not be called by clientcode - * directly but use the {@link yfiles.graph.UndoEngine} instead. - *

    - * @interface - */ - export interface IUndoUnit extends Object{ - /** - * Called by the {@link yfiles.graph.UndoEngine} and client code to let the unit dispose of references aren't needed anymore. - *

    - * When this method is called, the other methods of this interface will not be called anymore by the undo engine. The undo - * engine calls this method on instances that it will not use anymore to enable the instances to release instances and - * memory actively. - *

    - * @abstract - */ - dispose():void; - /** - * Redoes the work that is represented by this unit. - *

    - * Undo/redo are sensible operations and should maintain a consistent state before and after each operation since they may - * be executed potentially often one after another. - *

    - * @see yfiles.graph.IUndoUnit#redoName - * @abstract - */ - redo():void; - /** - * Tries to merge the given unit with this one. - *

    - * This method is called when this unit is the head of an {@link yfiles.graph.UndoEngine}'s or {@link yfiles.graph.CompositeUndoUnit}'s - * queue and a new unit is added. It is meant to try to incorporate the change of the given unit into this and if - * successful return true. This should be the case when the end state of this unit is equal to the start state of the given - * unit. - *

    - *

    - * For example, if this unit is the head of the queue and represents the work from state A to state B and the given unit - * the work from state B to state C, then this method should try to make this unit shift from state A to state C. If this - * is successful, the method is expected to return true. The other unit is then {@link yfiles.graph.IUndoUnit#dispose disposed} by the {@link yfiles.graph.UndoEngine} - * afterwards. - *

    - *

    - * Clients don't necessarily have to implement this method if the unit doesn't happen very often. In fact, the default - * implementation of {@link yfiles.graph.UndoUnitBase#tryMergeUnit} simply returns false. Implementing this method faithfully will - * cause multiple units of work to inseparably appear as one and undoing/redoing it will undo/redo the work of all - * collapsed units. Depending on the situation this may be reasonable, for example when there are potentially a lot of - * changes where not every intermediate step is required to be recorded. In this case implementing this method faithfully - * will greatly improve the performance and reduce the required amount of memory of the undo process. If you want to group - * together multiple units as a single block but still want to be able to separate each step, consider to use a {@link yfiles.graph.CompositeUndoUnit} - * instead. - *

    - * @param {yfiles.graph.IUndoUnit} unit The unit to incorporate that happened after this unit. - * @returns {boolean} Whether the state change of unit has been incorporated into this unit and unit can be disposed of. - * @abstract - */ - tryMergeUnit(unit:yfiles.graph.IUndoUnit):boolean; - /** - * Tries to replace the given unit with this one. - *

    - * This method is called if a newly added unit couldn't be {@link yfiles.graph.IUndoUnit#tryMergeUnit merged} with the head unit of the queue (i.e. returned false). - * Instead of trying to merge a newly added unit, this method tries to replace the given unit (which is the head of the - * queue) with this by incorporating the change of the given unit into this and if successful return true. This should be - * the case when the start state of this unit is equal to the end state of the given unit. - *

    - *

    - * For example, if the given unit represents the work from state A to state B and this unit the work from state B to state - * C, then this method should try to make this unit shift from state A to state C. If this is successful, the method is - * expected to return true. The given unit is then {@link yfiles.graph.IUndoUnit#dispose disposed} by the {@link yfiles.graph.UndoEngine} afterwards and replaced with this - * unit in the queue. - *

    - *

    - * Clients don't necessarily have to implement this method if the unit doesn't happen very often. In fact, the default - * implementation of {@link yfiles.graph.UndoUnitBase#tryReplaceUnit} simply returns false. Implementing this method faithfully - * will cause multiple units of work to inseparably appear as one and undoing/redoing it will undo/redo the work of all - * collapsed units. Depending on the situation this may be reasonable, for example when there are potentially a lot of - * changes where not every intermediate step is required to be recorded. In this case implementing this method faithfully - * will greatly improve the performance and reduce the required amount of memory of the undo process. If you want to group - * together multiple units as a single block but still want to be able to separate each step, consider to use a {@link yfiles.graph.CompositeUndoUnit} - * instead. - *

    - * @param {yfiles.graph.IUndoUnit} unit The unit to incorporate that happened before this unit. - * @returns {boolean} Whether the state change of this unit has been incorporated into the given unit and this can be disposed of. - * @abstract - */ - tryReplaceUnit(unit:yfiles.graph.IUndoUnit):boolean; - /** - * Undoes the work that is represented by this unit. - *

    - * Undo/redo are sensible operations and should maintain a consistent state before and after each operation since they may - * be executed potentially often one after another. - *

    - * @see yfiles.graph.IUndoUnit#undoName - * @abstract - */ - undo():void; - /** - * Returns the name of the undo unit. - *

    - * Depending on the implementation and context this might be a human readable representation of the undo action or a - * symbolic name that needs localization. - *

    - * @abstract - * @type {string} - */ - undoName:string; - /** - * Returns the name of the redo unit. - *

    - * Depending on the implementation and context this might be a human readable representation of the redo action or a - * symbolic name that needs localization. - *

    - * @abstract - * @type {string} - */ - redoName:string; - } - var IUndoUnit:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This interface provides access to the memento design pattern to provide undoability for arbitrary models. - *

    - * By implementing this interface as well as {@link yfiles.graph.ILookup}, clients can add undoability for changes to their model - * classes. The yFiles undo mechanism uses the return value of {@link yfiles.graph.IMementoSupport#getState} to retrieve a state of - * an item at the beginning of the compound editing process. When the process ends, another state will be retrieved of the - * same item and compared to the original state. If they differ, an {@link yfiles.graph.IUndoUnit} is created that uses the {@link yfiles.graph.IMementoSupport#applyState} - * method to apply either state to the item in case of {@link yfiles.graph.IUndoUnit#undo undo} or {@link yfiles.graph.IUndoUnit#redo redo}. This represents an abstraction to the undo mechanism - * where it is only needed to define "states" of items and hides the more complicated mechanism of creating and inserting - * {@link yfiles.graph.IUndoUnit}s. - *

    - *

    - * The following is an example implementation of an item that is being managed using {@link yfiles.graph.IMementoSupport}: - *

    - *

    - * A collection of items from this type can then be watched using the following code snippet: - *

    - *

    - * Implementing the {@link yfiles.graph.IMementoSupport} interface is quite unrestrained, the type of the state returned by {@link yfiles.graph.IMementoSupport#getState} - * method can by anything as long as the {@link yfiles.graph.IMementoSupport#applyState} and {@link yfiles.graph.IMementoSupport#stateEquals} - * methods can deal with it: - *

    - *

    - * In summary, use this concept when you want to track the state of items during certain operations for undo/redo. This is - * efficient if it's easier to handle an item's state than the changes to the item themselves. If you want to focus on the - * changes or on certain events, you should use custom {@link yfiles.graph.IUndoUnit} implementations instead. - *

    - * @see yfiles.graph.ILookup - * @see yfiles.graph.ICompoundEdit - * @see yfiles.graph.UndoEngine - * @interface - */ - export interface IMementoSupport extends Object{ - /** - * Reapplies a previously queried state object to a given subject. - *

    - * The state object has been created using the {@link yfiles.graph.IMementoSupport#getState} method. - *

    - * @param {Object} subject The subject to modify the state. - * @param {Object} state The state object as returned by {@link yfiles.graph.IMementoSupport#getState} - * @abstract - */ - applyState(subject:Object,state:Object):void; - /** - * Retrieves an object representing the state at the moment this method is called. - *

    - * The returned state may be reapplied later to the subject in the {@link yfiles.graph.IMementoSupport#applyState} method. - *

    - * @param {Object} subject The subject to read the state from - * @returns {Object} An object that describes the current state of subject. - * @abstract - */ - getState(subject:Object):Object; - /** - * Determines whether two state objects are equal. - *

    - * The undo mechanism in yFiles calls this method to determine if the subject has changed and whether an {@link yfiles.graph.IUndoUnit} - * should be created for these changes. If this method returns false, an {@link yfiles.graph.IUndoUnit} is created for the two - * states that can reapply either state (for either undo or redo). If this method returns true the state is considered not - * to have changed and no undo unit will be created. Conservative implementations my simply return false. - *

    - * @param {Object} state1 The first state as obtained from {@link yfiles.graph.IMementoSupport#getState} - * @param {Object} state2 The second state as obtained from {@link yfiles.graph.IMementoSupport#getState} - * @returns {boolean} true if the states are equal; false otherwise. - * @abstract - */ - stateEquals(state1:Object,state2:Object):boolean; - } - var IMementoSupport:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A convenience implementation of the {@link yfiles.graph.IUndoUnit} interface that uses simple delegates for the actual undo and - * redo operations. - * Type parameter T: The type of the single parameter that is passed to the delegate. - * @class yfiles.graph.DelegateUndoUnit. - * @extends {yfiles.graph.UndoUnitBase} - * @template T - * @final - */ - export interface DelegateUndoUnit extends yfiles.graph.UndoUnitBase{} - export class DelegateUndoUnit { - /** - * Creates a new instance using the provided name and a undo and redo handler as well as the parameters to pass to the - * delegates. - * @param {string} undoName The name of the undo. - * @param {function(T): void} undo The undo handler delegate. - * @param {function(T): void} redo The redo handler delegate. - * @param {T} undoParam The undo parameter to pass to the delegate. - * @param {T} redoParam The redo parameter to pass to the delegate. - * @constructor - */ - constructor(undoName:string,undo:(param:T)=>void,redo:(param:T)=>void,undoParam:T,redoParam:T); - /** - * Creates a new instance using the provided name and a undo/redo handler as well as the parameters to pass to the - * delegates. - * @param {string} undoName The name of the undo. - * @param {function(T): void} undoRedo The undo and redo handler delegate. - * @param {T} undoParam The undo parameter to pass to the delegate. - * @param {T} redoParam The redo parameter to pass to the delegate. - * @constructor - */ - constructor(undoName:string,undoRedo:(param:T)=>void,undoParam:T,redoParam:T); - static $class:yfiles.lang.Class; - } - /** - * An abstract convenience implementation of {@link yfiles.graph.IUndoUnit}. - *

    - * This class defaults most methods required by the {@link yfiles.graph.IUndoUnit} interface. Subclasses only have to implement the - * undo/redo logic. Most notably, {@link yfiles.graph.IUndoUnit#tryMergeUnit} and {@link yfiles.graph.IUndoUnit#tryReplaceUnit} are - * implemented to return - * false. Subclasses are of course allowed to override more methods if clients want to enable additional functionality. - *

    - *

    - * Use this class for simple custom implementations of {@link yfiles.graph.IUndoUnit}. - *

    - * @see yfiles.graph.IUndoUnit - * @see yfiles.graph.UndoEngine - * @class yfiles.graph.UndoUnitBase - * @implements {yfiles.graph.IUndoUnit} - */ - export interface UndoUnitBase extends Object,yfiles.graph.IUndoUnit{} - export class UndoUnitBase { - /** - * Creates a new instance using the given name as undo and redo name. - * @param {string} undoName The undo name. - * @param {string} [redoName=null] The redo name. - * @protected - * @constructor - */ - constructor(undoName:string,redoName?:string); - /** - * - */ - dispose():void; - /** - * - * @abstract - */ - redo():void; - /** - * - * @param {yfiles.graph.IUndoUnit} unit - * @returns {boolean} - */ - tryMergeUnit(unit:yfiles.graph.IUndoUnit):boolean; - /** - * - * @param {yfiles.graph.IUndoUnit} unit - * @returns {boolean} - */ - tryReplaceUnit(unit:yfiles.graph.IUndoUnit):boolean; - /** - * - * @abstract - */ - undo():void; - /** - * - * @type {string} - */ - undoName:string; - /** - * - * @type {string} - */ - redoName:string; - static $class:yfiles.lang.Class; - } /** * An implementation of the {@link yfiles.graph.IPortLocationModel} that can create {@link yfiles.graph.IPortLocationModelParameter}s that * describe the location of ports that are attached to the bends of {@link yfiles.graph.IEdge}s. - * @class yfiles.graph.BendAnchoredPortLocationModel + * @class * @implements {yfiles.graph.IPortLocationModel} * @final */ @@ -44792,41 +43735,41 @@ declare namespace system{ export class BendAnchoredPortLocationModel { /** * Creates a parameter that indicates the location of the bend with index bendIndex starting from the source side. - * @param {number} bendIndex The index of the bend counting from the source side. - * @returns {yfiles.graph.IPortLocationModelParameter} A parameter that anchors the port at a bend. + * @param bendIndex The index of the bend counting from the source side. + * @returns A parameter that anchors the port at a bend. */ createFromSource(bendIndex:number):yfiles.graph.IPortLocationModelParameter; /** * Creates a parameter that indicates the location of the bend with index bendIndex starting from the target side. - * @param {number} bendIndex The index of the bend counting from the target side. - * @returns {yfiles.graph.IPortLocationModelParameter} A parameter that anchors the port at a bend. + * @param bendIndex The index of the bend counting from the target side. + * @returns A parameter that anchors the port at a bend. */ createFromTarget(bendIndex:number):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.geometry.Point} location - * @returns {yfiles.graph.IPortLocationModelParameter} + * @param owner + * @param location + * @returns */ createParameter(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.graph.ILookup} + * @param port + * @param locationParameter + * @returns */ getContext(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.geometry.Point} + * @param port + * @param locationParameter + * @returns */ getLocation(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.geometry.Point; /** * This implementation has nothing in its lookup and will always yield null - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -44861,7 +43804,7 @@ declare namespace system{ * This class holds a number of models and can provide all of their parameters in * {@link yfiles.graph.CompositeLabelModel#getParameters}. A custom model can easily be created that way: *

    - * @class yfiles.graph.CompositeLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} * @implements {yfiles.graph.ILabelModelParameterFinder} @@ -44870,7 +43813,6 @@ declare namespace system{ export class CompositeLabelModel { /** * Creates a new instance of this label model with an empty {@link yfiles.graph.CompositeLabelModel#labelModels} collection. - * @constructor */ constructor(); /** @@ -44879,7 +43821,7 @@ declare namespace system{ * If {@link yfiles.graph.CompositeLabelModel#labelModels} is not empty, the default parameter for the first model in that list is returned. Otherwise, the default parameter * for {@link yfiles.graph.FreeLabelModel#createDefaultParameter} is returned. *

    - * @returns {yfiles.graph.ILabelModelParameter} a parameter for this model instance + * @returns a parameter for this model instance */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** @@ -44887,24 +43829,24 @@ declare namespace system{ *

    * This implementation tests all parameters from all models in {@link yfiles.graph.CompositeLabelModel#labelModels}. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.graph.ILabelModel} model The model instance to use. This should be the instance this instance has been obtained from. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @returns {yfiles.graph.ILabelModelParameter} A non-null parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param model The model instance to use. This should be the instance this instance has been obtained from. + * @param layout The anticipated layout for the label. + * @returns A non-null parameter that can be used for the label to approximate the provided layout. */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** @@ -44913,15 +43855,15 @@ declare namespace system{ *

    * This implementation returns all parameters from all models in {@link yfiles.graph.CompositeLabelModel#labelModels} *

    - * @param {yfiles.graph.ILabel} label The label instance to use. - * @param {yfiles.graph.ILabelModel} model The model to provide parameters for. - * @returns {yfiles.collections.IEnumerable.} A possibly empty enumerator over a set of label model parameters. + * @param label The label instance to use. + * @param model The model to provide parameters for. + * @returns A possibly empty enumerator over a set of label model parameters. */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -44941,26 +43883,28 @@ declare namespace system{ * {@link yfiles.graph.SimpleEdge} to connect the two nodes and add instances of this class to the edge's {@link yfiles.graph.SimpleEdge#bends} model. Then render the * edge. *

    - * @class yfiles.graph.SimpleBend + * @class * @implements {yfiles.graph.IBend} */ export interface SimpleBend extends Object,yfiles.graph.IBend{} export class SimpleBend { /** * Initializes a new instance of the {@link yfiles.graph.SimpleBend} class using the given owner and location. - * @param {yfiles.graph.IEdge} owner The owner of the bend. - * @param {yfiles.geometry.IPoint} location The bend's location. - * @constructor + * @param owner The owner of the bend. + * @param location The bend's location. */ constructor(owner:yfiles.graph.IEdge,location:yfiles.geometry.IPoint); /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** - * + * Gets or sets the edge this bend instance belongs to. + *

    + * This implies that Owner.Bends contains this instance. + *

    * @type {yfiles.graph.IEdge} */ owner:yfiles.graph.IEdge; @@ -45009,7 +43953,7 @@ declare namespace system{ * {@link yfiles.graph.SimpleEdge}, associate a style with it and use the style's renderer instance to obtain a rendering for the * edge. *

    - * @class yfiles.graph.SimpleEdge + * @class * @implements {yfiles.graph.IEdge} */ export interface SimpleEdge extends Object,yfiles.graph.IEdge{} @@ -45020,44 +43964,56 @@ declare namespace system{ * While technically the source and target port can be null here, this will cause all kinds of issues, e.g. with {@link yfiles.styles.IEdgeStyle styles} or * {@link yfiles.graph.ILabelModel label models} that require the ports to be non-null to work properly. *

    - * @param {yfiles.graph.IPort} sourcePort The source port for the edge. - * @param {yfiles.graph.IPort} targetPort The target port for the edge. - * @constructor + * @param sourcePort The source port for the edge. + * @param targetPort The target port for the edge. */ constructor(sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort); /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** - * + * Gets or sets the style that is responsible for the visual representation of this edge in a {@link yfiles.view.CanvasComponent}. + *

    + * Note that the style instance associated with an edge instance may be shared between multiple edge instances and that the + * modification of this style will result in a change of the appearance of all edges that are associated with the same + * style instance. + *

    * @type {yfiles.styles.IEdgeStyle} */ style:yfiles.styles.IEdgeStyle; /** - * + * Gets or sets the collection of {@link yfiles.graph.IBend bends} that describe the geometry of this edge. * @type {yfiles.collections.IListEnumerable.} */ bends:yfiles.collections.IListEnumerable; /** - * + * Gets or sets the source port instance this edge is connected to. + *

    + * Although the notion of source and target port is used for directed edges, it is still up to the client to decide whether + * the edge should be treated as such. + *

    * @type {yfiles.graph.IPort} */ sourcePort:yfiles.graph.IPort; /** - * + * Gets or sets the target port instance this edge is connected to. + *

    + * Although the notion of source and target port is used for directed edges, it is still up to the client to decide whether + * the edge should be treated as such. + *

    * @type {yfiles.graph.IPort} */ targetPort:yfiles.graph.IPort; /** - * + * Gets or sets the collection of {@link yfiles.graph.IPort ports} that are owned by this instance. * @type {yfiles.collections.IListEnumerable.} */ ports:yfiles.collections.IListEnumerable; /** - * Gets or sets the collection for the labels. + * Gets or sets the collection of {@link yfiles.graph.ILabel labels} that are owned by this instance. * @type {yfiles.collections.IListEnumerable.} */ labels:yfiles.collections.IListEnumerable; @@ -45100,7 +44056,7 @@ declare namespace system{ * @see yfiles.graph.DefaultGraph#lookup * @see yfiles.graph.DefaultGraph * @see yfiles.graph.FoldingManager - * @class yfiles.graph.DefaultGraph + * @class * @implements {yfiles.graph.IGraph} */ export interface DefaultGraph extends Object,yfiles.graph.IGraph{} @@ -45108,7 +44064,7 @@ declare namespace system{ /** * Creates a new instance of a graph that provides an {@link yfiles.graph.ILookupDecorator} for all of its entities. * @param {Object} [options=null] The parameters to pass. - * @param options.nodes An array of nodes to create in this graph. Each item will be passed to the {@link yfiles.graph.DefaultGraph#createNode} method. + * @param options.nodes An array of nodes to create in this graph. Each item will be passed to the {@link #createNode} method. * @param {yfiles.graph.IEdgeDefaults} [options.edgeDefaults=null] Sets the edgeDefaults property. * @param {yfiles.graph.INodeDefaults} [options.groupNodeDefaults=null] Sets the groupNodeDefaults property. * @param {yfiles.graph.IMapperRegistry} options.mapperRegistry The mapper registry that is associated with this graph instance. @@ -45116,96 +44072,96 @@ declare namespace system{ * This option sets the {@link yfiles.graph.DefaultGraph#mapperRegistry} property on the created object. *

    * @param {yfiles.graph.INodeDefaults} [options.nodeDefaults=null] Sets the nodeDefaults property. - * @param {Object} [options.tag=null] Sets the tag property. * @param {boolean} options.undoEngineEnabled Whether or not the {@link yfiles.graph.UndoEngine} used for this instance should be enabled. *

    * This option sets the {@link yfiles.graph.DefaultGraph#undoEngineEnabled} property on the created object. *

    - * @constructor */ - constructor(options?:{edgeDefaults?:yfiles.graph.IEdgeDefaults,groupNodeDefaults?:yfiles.graph.INodeDefaults,mapperRegistry?:yfiles.graph.IMapperRegistry,nodeDefaults?:yfiles.graph.INodeDefaults,tag?:Object,undoEngineEnabled?:boolean,nodes?:Array}); + constructor(options?:{edgeDefaults?:yfiles.graph.IEdgeDefaults,groupNodeDefaults?:yfiles.graph.INodeDefaults,mapperRegistry?:yfiles.graph.IMapperRegistry,nodeDefaults?:yfiles.graph.INodeDefaults,undoEngineEnabled?:boolean,nodes?:Array}); /** * - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.geometry.Point} location - * @param {number} [index=-1] - * @returns {yfiles.graph.IBend} + * @param edge + * @param location + * @param [index=-1] + * @returns */ addBend(edge:yfiles.graph.IEdge,location:yfiles.geometry.Point,index?:number):yfiles.graph.IBend; /** * - * @param {yfiles.graph.ILabelOwner} owner - * @param {string} text - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [style=null] - * @param {yfiles.geometry.Size} [preferredSize=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.ILabel} + * @param owner + * @param text + * @param [layoutParameter=null] + * @param [style=null] + * @param [preferredSize=null] + * @param [tag=null] + * @returns */ addLabel(owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object):yfiles.graph.ILabel; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ILabelOwner} options.owner - * @param {string} options.text - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [options.style=null] - * @param {yfiles.geometry.Size} [options.preferredSize=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.ILabel} + * @param options.owner + * @param options.text + * @param [options.layoutParameter=null] + * @param [options.style=null] + * @param [options.preferredSize=null] + * @param [options.tag=null] + * @returns */ addLabel(options:{owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object}):yfiles.graph.ILabel; /** * Adds the chain element to the lookup for this instance. - * @param {yfiles.graph.IContextLookupChainLink} lookup The lookup to decorate the current instance with. + * @param lookup The lookup to decorate the current instance with. */ addLookup(lookup:yfiles.graph.IContextLookupChainLink):void; /** * Add a port to the given port owner using the coordinates as the new initial position of the port anchor. - * @param {yfiles.graph.IPortOwner} owner the owner to add the port instance to. - * @param {yfiles.graph.IPortLocationModelParameter} [locationParameter=null] the parameter to use for the port to determine its location. - * @param {yfiles.styles.IPortStyle} [style=null] the style to assign initially to the port, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [tag=null] The tag to associate with the port, may be null. - * @returns {yfiles.graph.IPort} the newly created port + * @param owner the owner to add the port instance to. + * @param [locationParameter=null] the parameter to use for the port to determine its location. + * @param [style=null] the style to assign initially to the port, e.g. {@link #INSTANCE}. + * @param [tag=null] The tag to associate with the port, may be null. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} If owner is not in this graph. * @see yfiles.graph.DefaultGraph#addPortAddedListener */ addPort(owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,style?:yfiles.styles.IPortStyle,tag?:Object):yfiles.graph.IPort; /** * Add a port to the given port owner using the coordinates as the new initial position of the port anchor. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPortOwner} options.owner the owner to add the port instance to. - * @param {yfiles.graph.IPortLocationModelParameter} [options.locationParameter=null] the parameter to use for the port to determine its location. - * @param {yfiles.styles.IPortStyle} [options.style=null] the style to assign initially to the port, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [options.tag=null] The tag to associate with the port, may be null. - * @returns {yfiles.graph.IPort} the newly created port + * @param options.owner the owner to add the port instance to. + * @param [options.locationParameter=null] the parameter to use for the port to determine its location. + * @param [options.style=null] the style to assign initially to the port, e.g. {@link #INSTANCE}. + * @param [options.tag=null] The tag to associate with the port, may be null. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} If owner is not in this graph. * @see yfiles.graph.DefaultGraph#addPortAddedListener */ addPort(options:{owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,style?:yfiles.styles.IPortStyle,tag?:Object}):yfiles.graph.IPort; /** * Determines whether this graph contains the specified item. - * @param {yfiles.graph.IModelItem} item The item. - * @returns {boolean} true if this graph contains the specified item; otherwise, false. + * @param item The item. + * @returns true if this graph contains the specified item; otherwise, false. */ contains(item:yfiles.graph.IModelItem):boolean; /** * - * @param {yfiles.graph.IPort} sourcePort - * @param {yfiles.graph.IPort} targetPort - * @param {yfiles.styles.IEdgeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.IEdge} + * @param sourcePort + * @param targetPort + * @param [style=null] + * @param [tag=null] + * @returns */ createEdge(sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort,style?:yfiles.styles.IEdgeStyle,tag?:Object):yfiles.graph.IEdge; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPort} options.sourcePort - * @param {yfiles.graph.IPort} options.targetPort - * @param {yfiles.styles.IEdgeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.IEdge} + * @param options.sourcePort + * @param options.targetPort + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createEdge(options:{sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort,style?:yfiles.styles.IEdgeStyle,tag?:Object}):yfiles.graph.IEdge; /** @@ -45216,13 +44172,14 @@ declare namespace system{ * instances to which the edge will be connected. The edge will be a part of this graph after the method returns. This will * trigger the corresponding events. *

    - * @param {yfiles.graph.INode} source The source node the created edge will connect to. This implementation queries the {@link yfiles.graph.DefaultGraph#getNewSourcePort} + * @param source The source node the created edge will connect to. This implementation queries the {@link #getNewSourcePort} * method to determine which port to use. - * @param {yfiles.graph.INode} target The target node the created edge will connect to. This implementation queries the {@link yfiles.graph.DefaultGraph#getNewSourcePort} + * @param target The target node the created edge will connect to. This implementation queries the {@link #getNewSourcePort} * method to determine which port to use. - * @param {yfiles.styles.IEdgeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] the initial {@link #tag} to assign. + * @returns the newly created edge instance + * @throws {Stubs.Exceptions.ArgumentError} If source or target is not in this graph. * @see yfiles.graph.DefaultGraph#addEdgeCreatedListener * @see yfiles.graph.DefaultGraph#getNewSourcePort * @see yfiles.graph.DefaultGraph#getNewTargetPort @@ -45238,13 +44195,14 @@ declare namespace system{ * trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} options.source The source node the created edge will connect to. This implementation queries the {@link yfiles.graph.DefaultGraph#getNewSourcePort} + * @param options.source The source node the created edge will connect to. This implementation queries the {@link #getNewSourcePort} * method to determine which port to use. - * @param {yfiles.graph.INode} options.target The target node the created edge will connect to. This implementation queries the {@link yfiles.graph.DefaultGraph#getNewSourcePort} + * @param options.target The target node the created edge will connect to. This implementation queries the {@link #getNewSourcePort} * method to determine which port to use. - * @param {yfiles.styles.IEdgeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] the initial {@link #tag} to assign. + * @returns the newly created edge instance + * @throws {Stubs.Exceptions.ArgumentError} If source or target is not in this graph. * @see yfiles.graph.DefaultGraph#addEdgeCreatedListener * @see yfiles.graph.DefaultGraph#getNewSourcePort * @see yfiles.graph.DefaultGraph#getNewTargetPort @@ -45253,188 +44211,188 @@ declare namespace system{ createEdge(options:{source:yfiles.graph.INode,target:yfiles.graph.INode,style?:yfiles.styles.IEdgeStyle,tag?:Object}):yfiles.graph.IEdge; /** * - * @param {yfiles.graph.INode} [parent=null] - * @param {yfiles.geometry.Rect} [layout=null] - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param [parent=null] + * @param [layout=null] + * @param [style=null] + * @param [tag=null] + * @returns */ createGroupNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] - * @param {yfiles.geometry.Rect} [options.layout=null] - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param [options.parent=null] + * @param [options.layout=null] + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createGroupNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** * - * @param {yfiles.geometry.Rect} layout - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param layout + * @param [style=null] + * @param [tag=null] + * @returns */ createNode(layout:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Rect} options.layout - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param options.layout + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createNode(options:{layout:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** * - * @param {yfiles.graph.INode} [parent=null] - * @param {yfiles.geometry.Rect} [layout=null] - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param [parent=null] + * @param [layout=null] + * @param [style=null] + * @param [tag=null] + * @returns */ createNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] - * @param {yfiles.geometry.Rect} [options.layout=null] - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param [options.parent=null] + * @param [options.layout=null] + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** * Creates an {@link yfiles.graph.UndoEngine} instance that automatically triggers {@link yfiles.graph.DefaultGraph#invalidateDisplays} * upon each invocation of {@link yfiles.graph.UndoEngine#undo} and {@link yfiles.graph.UndoEngine#redo} - * @returns {yfiles.graph.UndoEngine} An {@link yfiles.graph.UndoEngine} instance. + * @returns An {@link } instance. * @protected */ createUndoEngine():yfiles.graph.UndoEngine; /** * Creates the bend addition {@link yfiles.graph.IUndoUnit undo unit} for the given bend. - * @param {yfiles.graph.IBend} bend The bend that has been added. - * @param {number} index The index at which the bend has been added. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the creation. + * @param bend The bend that has been added. + * @param index The index at which the bend has been added. + * @returns The unit that can be used to undo and redo the creation. * @protected */ createUndoUnitForBendAddition(bend:yfiles.graph.IBend,index:number):yfiles.graph.IUndoUnit; /** * Creates the bend removal {@link yfiles.graph.IUndoUnit undo unit} for the given bend. - * @param {yfiles.graph.IBend} bend The bend that will be removed. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the removal. + * @param bend The bend that will be removed. + * @returns The unit that can be used to undo and redo the removal. * @protected */ createUndoUnitForBendRemoval(bend:yfiles.graph.IBend):yfiles.graph.IUndoUnit; /** * Creates the edge creation {@link yfiles.graph.IUndoUnit undo unit} for the given edge. - * @param {yfiles.graph.IEdge} edge The edge that has been created. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the creation. + * @param edge The edge that has been created. + * @returns The unit that can be used to undo and redo the creation. * @protected */ createUndoUnitForEdgeCreation(edge:yfiles.graph.IEdge):yfiles.graph.IUndoUnit; /** * Creates the edge reconnection {@link yfiles.graph.IUndoUnit undo unit} for the given edge. - * @param {yfiles.graph.IEdge} edge The edge that has been reconnected to other ports. - * @param {yfiles.graph.IPort} oldSource The old source port the edge connected to before the change. - * @param {yfiles.graph.IPort} oldTarget The old target port the edge connected to before the change. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the port change operation. + * @param edge The edge that has been reconnected to other ports. + * @param oldSource The old source port the edge connected to before the change. + * @param oldTarget The old target port the edge connected to before the change. + * @returns The unit that can be used to undo and redo the port change operation. * @protected */ createUndoUnitForEdgeReconnection(edge:yfiles.graph.IEdge,oldSource:yfiles.graph.IPort,oldTarget:yfiles.graph.IPort):yfiles.graph.IUndoUnit; /** * Creates the edge removal {@link yfiles.graph.IUndoUnit undo unit} for the given edge. - * @param {yfiles.graph.IEdge} edge The edge that will be removed. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the removal. + * @param edge The edge that will be removed. + * @returns The unit that can be used to undo and redo the removal. * @protected */ createUndoUnitForEdgeRemoval(edge:yfiles.graph.IEdge):yfiles.graph.IUndoUnit; /** * Creates the {@link yfiles.graph.IUndoUnit undo unit} for changing whether the given node is a group node. - * @param {yfiles.graph.INode} node The node whose group node status has been changed. - * @param {boolean} isGroupNode The new group node status. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the group node status change. + * @param node The node whose group node status has been changed. + * @param isGroupNode The new group node status. + * @returns The unit that can be used to undo and redo the group node status change. * @protected */ createUndoUnitForIsGroupNodeChange(node:yfiles.graph.INode,isGroupNode:boolean):yfiles.graph.IUndoUnit; /** * Creates the label addition {@link yfiles.graph.IUndoUnit undo unit} for the given label. - * @param {yfiles.graph.ILabel} label The label that has been added. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the creation. + * @param label The label that has been added. + * @returns The unit that can be used to undo and redo the creation. * @protected */ createUndoUnitForLabelAddition(label:yfiles.graph.ILabel):yfiles.graph.IUndoUnit; /** * Creates the label removal {@link yfiles.graph.IUndoUnit undo unit} for the given label. - * @param {yfiles.graph.ILabel} label The label that will be removed. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the removal. + * @param label The label that will be removed. + * @returns The unit that can be used to undo and redo the removal. * @protected */ createUndoUnitForLabelRemoval(label:yfiles.graph.ILabel):yfiles.graph.IUndoUnit; /** * Creates the node creation {@link yfiles.graph.IUndoUnit undo unit} for the given node. - * @param {yfiles.graph.INode} node The node that has been created. - * @param {yfiles.graph.INode} parent - * @param {boolean} isGroupNode - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the creation. + * @param node The node that has been created. + * @param parent + * @param isGroupNode + * @returns The unit that can be used to undo and redo the creation. * @protected */ createUndoUnitForNodeCreation(node:yfiles.graph.INode,parent:yfiles.graph.INode,isGroupNode:boolean):yfiles.graph.IUndoUnit; /** * Creates the node removal {@link yfiles.graph.IUndoUnit undo unit} for the given node. - * @param {yfiles.graph.INode} node The node that will be removed. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the removal. + * @param node The node that will be removed. + * @returns The unit that can be used to undo and redo the removal. * @protected */ createUndoUnitForNodeRemoval(node:yfiles.graph.INode):yfiles.graph.IUndoUnit; /** * Creates the parent change {@link yfiles.graph.IUndoUnit undo unit} for the given node. - * @param {yfiles.graph.INode} node The node whose parent has been changed. - * @param {yfiles.graph.INode} oldParent - * @param {yfiles.graph.INode} newParent The node which is the new parent. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the parent change. + * @param node The node whose parent has been changed. + * @param oldParent + * @param newParent The node which is the new parent. + * @returns The unit that can be used to undo and redo the parent change. * @protected */ createUndoUnitForParentChange(node:yfiles.graph.INode,oldParent:yfiles.graph.INode,newParent:yfiles.graph.INode):yfiles.graph.IUndoUnit; /** * Creates the port addition {@link yfiles.graph.IUndoUnit undo unit} for the given port. - * @param {yfiles.graph.IPort} port The port that has been added. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the creation. + * @param port The port that has been added. + * @returns The unit that can be used to undo and redo the creation. * @protected */ createUndoUnitForPortAddition(port:yfiles.graph.IPort):yfiles.graph.IUndoUnit; /** * Creates the port removal {@link yfiles.graph.IUndoUnit undo unit} for the given port. - * @param {yfiles.graph.IPort} port The port that will be removed. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the removal. + * @param port The port that will be removed. + * @returns The unit that can be used to undo and redo the removal. * @protected */ createUndoUnitForPortRemoval(port:yfiles.graph.IPort):yfiles.graph.IUndoUnit; /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.graph.AdjacencyTypes} [type=3] - * @returns {yfiles.collections.IListEnumerable.} + * @param owner + * @param [type=yfiles.graph.AdjacencyTypes.ALL] + * @returns */ edgesAt(owner:yfiles.graph.IPortOwner,type?:yfiles.graph.AdjacencyTypes):yfiles.collections.IListEnumerable; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.AdjacencyTypes} [type=3] - * @returns {yfiles.collections.IListEnumerable.} + * @param port + * @param [type=yfiles.graph.AdjacencyTypes.ALL] + * @returns */ edgesAt(port:yfiles.graph.IPort,type?:yfiles.graph.AdjacencyTypes):yfiles.collections.IListEnumerable; /** * - * @param {yfiles.graph.INode} node - * @returns {yfiles.collections.IListEnumerable.} + * @param node + * @returns */ getChildren(node:yfiles.graph.INode):yfiles.collections.IListEnumerable; /** * Returns the lookup implementation that is used for {@link yfiles.graph.DefaultGraph#lookup} calls. - * @returns {yfiles.graph.ILookup} The replacing lookup instance or null if the internal lookup mechanism is used. + * @returns The replacing lookup instance or null if the internal lookup mechanism is used. * @see yfiles.graph.DefaultGraph#setLookupImplementation */ getLookup():yfiles.graph.ILookup; @@ -45444,8 +44402,8 @@ declare namespace system{ *

    * This implementation will {@link yfiles.graph.DefaultGraph#addPort add a new center anchored port} to the node. *

    - * @param {yfiles.graph.IPortOwner} source The source node to find a port for. - * @returns {yfiles.graph.IPort} The port to use for a newly created edge. + * @param source The source node to find a port for. + * @returns The port to use for a newly created edge. * @see yfiles.graph.DefaultGraph#createEdge * @protected */ @@ -45456,22 +44414,22 @@ declare namespace system{ *

    * This implementation will {@link yfiles.graph.DefaultGraph#addPort add a new center anchored port} to the node. *

    - * @param {yfiles.graph.IPortOwner} targetOwner The target node to find a port for. - * @returns {yfiles.graph.IPort} The port to use for a newly created edge. + * @param targetOwner The target node to find a port for. + * @returns The port to use for a newly created edge. * @see yfiles.graph.DefaultGraph#createEdge * @protected */ getNewTargetPort(targetOwner:yfiles.graph.IPortOwner):yfiles.graph.IPort; /** * - * @param {yfiles.graph.INode} node - * @returns {yfiles.graph.INode} + * @param node + * @returns */ getParent(node:yfiles.graph.INode):yfiles.graph.INode; /** * The last element in the lookup chain is implemented by this method. - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns * @protected */ innerLookup(type:yfiles.lang.Class):Object; @@ -45485,8 +44443,8 @@ declare namespace system{ invalidateDisplays():void; /** * - * @param {yfiles.graph.INode} node - * @returns {boolean} + * @param node + * @returns */ isGroupNode(node:yfiles.graph.INode):boolean; /** @@ -45500,36 +44458,36 @@ declare namespace system{ * been set or an internal {@link yfiles.graph.LookupChain lookup chain}, that can be customized using the {@link yfiles.graph.DefaultGraph#addLookup} and {@link yfiles.graph.DefaultGraph#removeLookup} * methods. *

    - * @param {yfiles.lang.Class} type the type for which an instance shall be returned - * @returns {Object} An instance that is assignable to type or null + * @param type the type for which an instance shall be returned + * @returns An instance that is assignable to type or null */ lookup(type:yfiles.lang.Class):Object; /** * Callback that is invoked before a bend is added to this graph's structure. - * @param {yfiles.graph.IEdge} edge The edge the bend will be added to. - * @param {yfiles.graph.IBend} bend The bend that will be added to the edge. - * @param {number} index The index where the bend will be added to the edge. + * @param edge The edge the bend will be added to. + * @param bend The bend that will be added to the edge. + * @param index The index where the bend will be added to the edge. * @protected */ onAddingBend(edge:yfiles.graph.IEdge,bend:yfiles.graph.IBend,index:number):void; /** * Callback method that will be called just before an edge label is added to an edge. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.graph.ILabel} label + * @param edge + * @param label * @protected */ onAddingEdgeLabel(edge:yfiles.graph.IEdge,label:yfiles.graph.ILabel):void; /** * Callback method that will be called just before a node label is added to a node. - * @param {yfiles.graph.INode} node - * @param {yfiles.graph.ILabel} label + * @param node + * @param label * @protected */ onAddingNodeLabel(node:yfiles.graph.INode,label:yfiles.graph.ILabel):void; /** * Called when a port is going to be added to a node. - * @param {yfiles.graph.IPortOwner} owner The node. - * @param {yfiles.graph.IPort} port The port to be added. + * @param owner The node. + * @param port The port to be added. * @protected */ onAddingPort(owner:yfiles.graph.IPortOwner,port:yfiles.graph.IPort):void; @@ -45538,7 +44496,7 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.IBend} bend The bend that has been added to the edge. + * @param bend The bend that has been added to the edge. * @protected */ onBendAdded(bend:yfiles.graph.IBend):void; @@ -45547,8 +44505,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addBendLocationChangedListener BendLocationChanged} event. *

    - * @param {yfiles.graph.IBend} bend The bend whose location has changed. - * @param {yfiles.geometry.Point} oldLocation The bend location before the change + * @param bend The bend whose location has changed. + * @param oldLocation The bend location before the change * @protected */ onBendLocationChanged(bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point):void; @@ -45557,9 +44515,9 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.IEdge} owner The old edge. - * @param {yfiles.graph.IBend} bend The bend. - * @param {number} index The former index of the bend in the {@link yfiles.graph.IEdge#bends} list. + * @param owner The old edge. + * @param bend The bend. + * @param index The former index of the bend in the {@link #bends} list. * @protected */ onBendRemoved(owner:yfiles.graph.IEdge,bend:yfiles.graph.IBend,index:number):void; @@ -45568,98 +44526,98 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addBendTagChangedListener BendTagChanged} event. *

    - * @param {yfiles.graph.IBend} bend The bend whose tag has changed. - * @param {Object} oldTag The bend tag before the change + * @param bend The bend whose tag has changed. + * @param oldTag The bend tag before the change * @protected */ onBendTagChanged(bend:yfiles.graph.IBend,oldTag:Object):void; /** * Callback that is invoked before the ports of an edge are being changed. - * @param {yfiles.graph.IEdge} edge An edge whose the ports are to be changed. - * @param {yfiles.graph.IPort} newSource The new source port - * @param {yfiles.graph.IPort} newTarget The new target port + * @param edge An edge whose the ports are to be changed. + * @param newSource The new source port + * @param newTarget The new target port * @protected */ onChangingEdgePorts(edge:yfiles.graph.IEdge,newSource:yfiles.graph.IPort,newTarget:yfiles.graph.IPort):void; /** * Callback that is invoked before an edge style is being changed. - * @param {yfiles.graph.IEdge} edge An edge whose the style is going to be changed. - * @param {yfiles.styles.IEdgeStyle} newStyle The new edge style. + * @param edge An edge whose the style is going to be changed. + * @param newStyle The new edge style. * @protected */ onChangingEdgeStyle(edge:yfiles.graph.IEdge,newStyle:yfiles.styles.IEdgeStyle):void; /** * Callback that is invoked before the graph's tag is being changed. - * @param {Object} newTag The new port tag + * @param newTag The new port tag * @protected */ onChangingGraphTag(newTag:Object):void; /** * Callback that is invoked before the {@link yfiles.graph.ILabel#layoutParameter} of a label is being changed. - * @param {yfiles.graph.ILabel} label A label whose {@link yfiles.graph.ILabel#layoutParameter} is to be changed. - * @param {yfiles.graph.ILabelModelParameter} newLayoutParameter The new label model parameter + * @param label A label whose {@link #layoutParameter} is to be changed. + * @param newLayoutParameter The new label model parameter * @protected */ onChangingLabelLayoutParameter(label:yfiles.graph.ILabel,newLayoutParameter:yfiles.graph.ILabelModelParameter):void; /** * Callback that is invoked before the preferred size of a label is being changed. - * @param {yfiles.graph.ILabel} label A label whose preferred size is going to be changed. - * @param {yfiles.geometry.Size} newSize The new preferred size + * @param label A label whose preferred size is going to be changed. + * @param newSize The new preferred size * @protected */ onChangingLabelPreferredSize(label:yfiles.graph.ILabel,newSize:yfiles.geometry.Size):void; /** * Callback that is invoked before a label style is being changed. - * @param {yfiles.graph.ILabel} label A label whose the style is going to be changed. - * @param {yfiles.styles.ILabelStyle} newStyle The new label style. + * @param label A label whose the style is going to be changed. + * @param newStyle The new label style. * @protected */ onChangingLabelStyle(label:yfiles.graph.ILabel,newStyle:yfiles.styles.ILabelStyle):void; /** * Callback that is invoked before the text of a label is being changed. - * @param {yfiles.graph.ILabel} label A label whose text is going to be changed. - * @param {string} newText The new label text + * @param label A label whose text is going to be changed. + * @param newText The new label text * @protected */ onChangingLabelText(label:yfiles.graph.ILabel,newText:string):void; /** * Callback that is invoked before a node style is being changed. - * @param {yfiles.graph.INode} node A node whose the style is going to be changed. - * @param {yfiles.styles.INodeStyle} newStyle The new node style. + * @param node A node whose the style is going to be changed. + * @param newStyle The new node style. * @protected */ onChangingNodeStyle(node:yfiles.graph.INode,newStyle:yfiles.styles.INodeStyle):void; /** * Callback that is invoked before the {@link yfiles.graph.IPort#locationParameter} of a port is being changed. - * @param {yfiles.graph.IPort} port A port whose {@link yfiles.graph.IPort#locationParameter} is to be changed. - * @param {yfiles.graph.IPortLocationModelParameter} newLocationParameter The new location model parameter + * @param port A port whose {@link #locationParameter} is to be changed. + * @param newLocationParameter The new location model parameter * @protected */ onChangingPortLocationModelParameter(port:yfiles.graph.IPort,newLocationParameter:yfiles.graph.IPortLocationModelParameter):void; /** * Callback that is invoked before a port style is being changed. - * @param {yfiles.graph.IPort} port A port whose the style is going to be changed. - * @param {yfiles.styles.IPortStyle} newStyle The new port style. + * @param port A port whose the style is going to be changed. + * @param newStyle The new port style. * @protected */ onChangingPortStyle(port:yfiles.graph.IPort,newStyle:yfiles.styles.IPortStyle):void; /** * Callback that is invoked before the edge is added to this graph's structure. - * @param {yfiles.graph.IEdge} edge An edge that is not yet contained in this graph. - * @param {yfiles.graph.IPort} sourcePort The source port this edge will connect to. - * @param {yfiles.graph.IPort} targetPort The target port this edge will connect to. + * @param edge An edge that is not yet contained in this graph. + * @param sourcePort The source port this edge will connect to. + * @param targetPort The target port this edge will connect to. * @protected */ onCreatingEdge(edge:yfiles.graph.IEdge,sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):void; /** * Callback that is invoked before the node is added to this graph's structure. - * @param {yfiles.graph.INode} node A node that is not yet contained in this graph. + * @param node A node that is not yet contained in this graph. * @protected */ onCreatingNode(node:yfiles.graph.INode):void; /** * Callback that triggers the {@link yfiles.graph.DefaultGraph#addEdgeCreatedListener EdgeCreated} event. - * @param {yfiles.graph.IEdge} edge The edge that has been created. + * @param edge The edge that has been created. * @protected */ onEdgeCreated(edge:yfiles.graph.IEdge):void; @@ -45671,7 +44629,7 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.ILabel} label The label that has just been added. + * @param label The label that has just been added. * @protected */ onEdgeLabelAdded(label:yfiles.graph.ILabel):void; @@ -45680,8 +44638,8 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.ILabel} label The label that has just been removed. - * @param {yfiles.graph.ILabelOwner} owner The previous owner of the label. + * @param label The label that has just been removed. + * @param owner The previous owner of the label. * @protected */ onEdgeLabelRemoved(owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel):void; @@ -45690,17 +44648,17 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addEdgePortsChangedListener EdgePortsChanged} event. *

    - * @param {yfiles.graph.IEdge} edge The edge whose ports have changed. - * @param {yfiles.graph.IPort} oldSource The source port that the edge had been connected to before the change. - * @param {yfiles.graph.IPort} oldTarget The target port that the edge had been connected to before the change. + * @param edge The edge whose ports have changed. + * @param oldSource The source port that the edge had been connected to before the change. + * @param oldTarget The target port that the edge had been connected to before the change. * @protected */ onEdgePortsChanged(edge:yfiles.graph.IEdge,oldSource:yfiles.graph.IPort,oldTarget:yfiles.graph.IPort):void; /** * Callback that triggers the {@link yfiles.graph.DefaultGraph#addEdgeRemovedListener EdgeRemoved} event. - * @param {yfiles.graph.IEdge} edge The edge that got removed - * @param {yfiles.graph.IPort} oldSource The source port that the edge had been connected to. - * @param {yfiles.graph.IPort} oldTarget The target port that the edge had been connected to. + * @param edge The edge that got removed + * @param oldSource The source port that the edge had been connected to. + * @param oldTarget The target port that the edge had been connected to. * @protected */ onEdgeRemoved(edge:yfiles.graph.IEdge,oldSource:yfiles.graph.IPort,oldTarget:yfiles.graph.IPort):void; @@ -45709,8 +44667,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addEdgeStyleChangedListener EdgeStyleChanged} event. *

    - * @param {yfiles.graph.IEdge} edge The edge whose style that has changed. - * @param {yfiles.styles.IEdgeStyle} oldStyle The edge style before the change + * @param edge The edge whose style that has changed. + * @param oldStyle The edge style before the change * @protected */ onEdgeStyleChanged(edge:yfiles.graph.IEdge,oldStyle:yfiles.styles.IEdgeStyle):void; @@ -45719,20 +44677,20 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addEdgeTagChangedListener EdgeTagChanged} event. *

    - * @param {yfiles.graph.IEdge} edge The edge whose tag has changed. - * @param {Object} oldTag The edge tag before the change. + * @param edge The edge whose tag has changed. + * @param oldTag The edge tag before the change. * @protected */ onEdgeTagChanged(edge:yfiles.graph.IEdge,oldTag:Object):void; /** * Callback that triggers the {@link yfiles.graph.DefaultGraph#addGraphTagChangedListener GraphTagChanged} event. - * @param {Object} oldTag The graph tag before the change. + * @param oldTag The graph tag before the change. * @protected */ onGraphTagChanged(oldTag:Object):void; /** * Triggers the {@link yfiles.graph.DefaultGraph#addDisplaysInvalidatedListener DisplaysInvalidated} event. - * @param {yfiles.lang.EventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onInvalidateDisplays(evt:yfiles.lang.EventArgs):void; @@ -45741,8 +44699,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addLabelLayoutParameterChangedListener LabelLayoutParameterChanged} event. *

    - * @param {yfiles.graph.ILabel} label The label whose model parameter has changed. - * @param {yfiles.graph.ILabelModelParameter} oldLayoutParamater The label model parameter before the change + * @param label The label whose model parameter has changed. + * @param oldLayoutParamater The label model parameter before the change * @protected */ onLabelLayoutParameterChanged(label:yfiles.graph.ILabel,oldLayoutParamater:yfiles.graph.ILabelModelParameter):void; @@ -45751,8 +44709,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addLabelPreferredSizeChangedListener LabelPreferredSizeChanged} event. *

    - * @param {yfiles.graph.ILabel} label The label whose preferred size has changed. - * @param {yfiles.geometry.Size} oldSize The preferred size of the label before the change + * @param label The label whose preferred size has changed. + * @param oldSize The preferred size of the label before the change */ onLabelPreferredSizeChanged(label:yfiles.graph.ILabel,oldSize:yfiles.geometry.Size):void; /** @@ -45760,8 +44718,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addLabelStyleChangedListener LabelStyleChanged} event. *

    - * @param {yfiles.graph.ILabel} label The label whose style has changed. - * @param {yfiles.styles.ILabelStyle} oldStyle The label style before the change. + * @param label The label whose style has changed. + * @param oldStyle The label style before the change. * @protected */ onLabelStyleChanged(label:yfiles.graph.ILabel,oldStyle:yfiles.styles.ILabelStyle):void; @@ -45770,8 +44728,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addLabelTagChangedListener LabelTagChanged} event. *

    - * @param {yfiles.graph.ILabel} label The label whose tag has changed. - * @param {Object} oldTag The label tag before the change + * @param label The label whose tag has changed. + * @param oldTag The label tag before the change */ onLabelTagChanged(label:yfiles.graph.ILabel,oldTag:Object):void; /** @@ -45779,13 +44737,13 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addLabelTextChangedListener LabelTextChanged} event. *

    - * @param {yfiles.graph.ILabel} label The label whose text has changed. - * @param {string} oldText The label text before the change. + * @param label The label whose text has changed. + * @param oldText The label text before the change. */ onLabelTextChanged(label:yfiles.graph.ILabel,oldText:string):void; /** * Callback that triggers the {@link yfiles.graph.DefaultGraph#addNodeCreatedListener NodeCreated} event. - * @param {yfiles.graph.INode} node The node that has been created. + * @param node The node that has been created. * @protected */ onNodeCreated(node:yfiles.graph.INode):void; @@ -45797,7 +44755,7 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.ILabel} label The label that has just been added. + * @param label The label that has just been added. * @protected */ onNodeLabelAdded(label:yfiles.graph.ILabel):void; @@ -45806,8 +44764,8 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.ILabel} label The label that has just been removed. - * @param {yfiles.graph.ILabelOwner} owner The old owner of the label. + * @param label The label that has just been removed. + * @param owner The old owner of the label. * @protected */ onNodeLabelRemoved(owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel):void; @@ -45816,16 +44774,16 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addNodeLayoutChangedListener NodeLayoutChanged} event. *

    - * @param {yfiles.graph.INode} node The node whose layout has changed. - * @param {yfiles.geometry.Rect} oldLayout The node layout before the change + * @param node The node whose layout has changed. + * @param oldLayout The node layout before the change * @protected */ onNodeLayoutChanged(node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect):void; /** * Callback that triggers the {@link yfiles.graph.DefaultGraph#addNodeRemovedListener NodeRemoved} event. - * @param {yfiles.graph.INode} node The node that got removed - * @param {yfiles.graph.INode} oldParent - * @param {boolean} oldIsGroupNode + * @param node The node that got removed + * @param oldParent + * @param oldIsGroupNode * @protected */ onNodeRemoved(node:yfiles.graph.INode,oldParent:yfiles.graph.INode,oldIsGroupNode:boolean):void; @@ -45834,8 +44792,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addNodeStyleChangedListener NodeStyleChanged} event. *

    - * @param {yfiles.graph.INode} node The node whose style has changed. - * @param {yfiles.styles.INodeStyle} oldStyle The node style before the change + * @param node The node whose style has changed. + * @param oldStyle The node style before the change * @protected */ onNodeStyleChanged(node:yfiles.graph.INode,oldStyle:yfiles.styles.INodeStyle):void; @@ -45844,8 +44802,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addNodeTagChangedListener NodeTagChanged} event. *

    - * @param {yfiles.graph.INode} node The node whose tag has changed. - * @param {Object} oldTag The node tag before the change + * @param node The node whose tag has changed. + * @param oldTag The node tag before the change * @protected */ onNodeTagChanged(node:yfiles.graph.INode,oldTag:Object):void; @@ -45854,7 +44812,7 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.IPort} port The port that has just been added to its owner. + * @param port The port that has just been added to its owner. * @protected */ onPortAdded(port:yfiles.graph.IPort):void; @@ -45864,8 +44822,8 @@ declare namespace system{ * This will trigger the {@link yfiles.graph.DefaultGraph#addPortLocationParameterChangedListener PortLocationParameterChanged} * event. *

    - * @param {yfiles.graph.IPort} port The port whose location model parameter has changed. - * @param {yfiles.graph.IPortLocationModelParameter} oldLocationParameter The port location model parameter before the change + * @param port The port whose location model parameter has changed. + * @param oldLocationParameter The port location model parameter before the change */ onPortLocationParameterChanged(port:yfiles.graph.IPort,oldLocationParameter:yfiles.graph.IPortLocationModelParameter):void; /** @@ -45873,8 +44831,8 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.IPort} port The port that has been removed. - * @param {yfiles.graph.IPortOwner} oldOwner The previous owner of the port. + * @param port The port that has been removed. + * @param oldOwner The previous owner of the port. * @protected */ onPortRemoved(oldOwner:yfiles.graph.IPortOwner,port:yfiles.graph.IPort):void; @@ -45883,8 +44841,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addPortStyleChangedListener PortStyleChanged} event. *

    - * @param {yfiles.graph.IPort} port The port whose style has changed. - * @param {yfiles.styles.IPortStyle} oldStyle The port style before the change + * @param port The port whose style has changed. + * @param oldStyle The port style before the change * @protected */ onPortStyleChanged(port:yfiles.graph.IPort,oldStyle:yfiles.styles.IPortStyle):void; @@ -45893,55 +44851,55 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addPortTagChangedListener PortTagChanged} event. *

    - * @param {yfiles.graph.IPort} port The port whose tag has changed. - * @param {Object} oldTag The port tag before the change + * @param port The port whose tag has changed. + * @param oldTag The port tag before the change * @protected */ onPortTagChanged(port:yfiles.graph.IPort,oldTag:Object):void; /** * Callback method that is invoked just before a bend is removed. - * @param {yfiles.graph.IBend} bend The bend that will be removed. + * @param bend The bend that will be removed. * @protected */ onRemovingBend(bend:yfiles.graph.IBend):void; /** * Callback that will be invoked before the node will be removed. - * @param {yfiles.graph.IEdge} edge That edge that is going to be removed. + * @param edge That edge that is going to be removed. * @protected */ onRemovingEdge(edge:yfiles.graph.IEdge):void; /** * Callback method that will be called just before an edge label is removed from its edge. - * @param {yfiles.graph.ILabel} label + * @param label * @protected */ onRemovingEdgeLabel(label:yfiles.graph.ILabel):void; /** * Callback that will be invoked before the node will be removed. - * @param {yfiles.graph.INode} node That node that is going to be removed. + * @param node That node that is going to be removed. * @protected */ onRemovingNode(node:yfiles.graph.INode):void; /** * Callback method that will be called just before a node label is removed from its node. - * @param {yfiles.graph.ILabel} label + * @param label * @protected */ onRemovingNodeLabel(label:yfiles.graph.ILabel):void; /** * Callback method that is called just before a port will be removed. - * @param {yfiles.graph.IPort} port The port that is about to be removed. + * @param port The port that is about to be removed. * @protected */ onRemovingPort(port:yfiles.graph.IPort):void; /** * - * @param {yfiles.graph.IModelItem} item + * @param item */ remove(item:yfiles.graph.IModelItem):void; /** * Removes a previously added lookup chain element from the lookup of this. - * @param {yfiles.graph.IContextLookupChainLink} lookup The element to remove. + * @param lookup The element to remove. */ removeLookup(lookup:yfiles.graph.IContextLookupChainLink):void; /** @@ -45949,8 +44907,9 @@ declare namespace system{ *

    * This implementation will also trigger an {@link yfiles.graph.DefaultGraph#invalidateDisplays} call. *

    - * @param {yfiles.graph.IBend} bend the bend whose location is to be modified - * @param {yfiles.geometry.Point} location the new coordinates of the bend + * @param bend the bend whose location is to be modified + * @param location the new coordinates of the bend + * @throws {Stubs.Exceptions.ArgumentError} If bend is not in this graph. * @see yfiles.graph.DefaultGraph#addBend */ setBendLocation(bend:yfiles.graph.IBend,location:yfiles.geometry.Point):void; @@ -45961,27 +44920,27 @@ declare namespace system{ * target ports differ from the current ones. Both ports and the edge must belong to the current graph instance. If {@link yfiles.graph.IPortDefaults#autoCleanup} is * enabled, this method will remove unoccupied ports after they have been changed. *

    - * @param {yfiles.graph.IEdge} edge The edge to change the ports. - * @param {yfiles.graph.IPort} sourcePort The new source port instance. - * @param {yfiles.graph.IPort} targetPort The new target port instance. + * @param edge The edge to change the ports. + * @param sourcePort The new source port instance. + * @param targetPort The new target port instance. */ setEdgePorts(edge:yfiles.graph.IEdge,sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):void; /** * - * @param {yfiles.graph.INode} node - * @param {boolean} isGroupNode + * @param node + * @param isGroupNode */ setIsGroupNode(node:yfiles.graph.INode,isGroupNode:boolean):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter + * @param label + * @param layoutParameter */ setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.geometry.Size} size + * @param label + * @param size */ setLabelPreferredSize(label:yfiles.graph.ILabel,size:yfiles.geometry.Size):void; /** @@ -45989,8 +44948,10 @@ declare namespace system{ *

    * This implementation will {@link yfiles.graph.IGraph#adjustLabelPreferredSize adjust the preferred size} for the label if {@link yfiles.graph.ILabelDefaults#autoAdjustPreferredSize} is enabled. *

    - * @param {yfiles.graph.ILabel} label the label to modify - * @param {string} text the new text of the label + * @param label the label to modify + * @param text the new text of the label + * @throws {Stubs.Exceptions.ArgumentError} If label is not in this graph. + * @throws {Stubs.Exceptions.ArgumentError} If text is null. * @see yfiles.graph.ILabel#text */ setLabelText(label:yfiles.graph.ILabel,text:string):void; @@ -45999,7 +44960,7 @@ declare namespace system{ *

    * A value of null will revert to the default behavior. *

    - * @param {yfiles.graph.ILookup} lookup The lookup instance to delegate lookup calls to. + * @param lookup The lookup instance to delegate lookup calls to. * @see yfiles.graph.DefaultGraph#addLookup * @see yfiles.graph.DefaultGraph#getLookup * @protected @@ -46010,39 +44971,50 @@ declare namespace system{ *

    * This will trigger a call to {@link yfiles.graph.DefaultGraph#invalidateDisplays}. *

    - * @param {yfiles.graph.INode} node a live node that belongs to this graph - * @param {yfiles.geometry.Rect} layout the new absolute layout in world coordinates of the node + * @param node a live node that belongs to this graph + * @param layout the new absolute layout in world coordinates of the node * @see yfiles.graph.INode#layout */ setNodeLayout(node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; /** * - * @param {yfiles.graph.INode} node - * @param {yfiles.graph.INode} parent + * @param node + * @param parent */ setParent(node:yfiles.graph.INode,parent:yfiles.graph.INode):void; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter + * @param port + * @param locationParameter */ setPortLocationParameter(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):void; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style + * @param port + * @param style */ setStyle(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):void; /** * - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style + * @param edge + * @param style */ setStyle(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):void; /** - * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style + * Assigns the given style instance by reference to the label. + *

    + * Style instances can be shared. + *

    + *

    + * This implementation will {@link yfiles.graph.IGraph#adjustLabelPreferredSize adjust the preferred size} for the label if {@link yfiles.graph.ILabelDefaults#autoAdjustPreferredSize} is enabled. + *

    + * @param label The label that will be assigned the new style + * @param style The style instance that will be assigned to the label. + * @throws {Stubs.Exceptions.ArgumentError} If label is not in this graph. + * @throws {Stubs.Exceptions.ArgumentError} If style is null. + * @see yfiles.graph.ILabel#style + * @see yfiles.graph.DefaultGraph#onChangingLabelStyle + * @see yfiles.graph.DefaultGraph#addLabelStyleChangedListener */ setStyle(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):void; /** @@ -46050,8 +45022,10 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.INode} node The node that will be assigned the new style - * @param {yfiles.styles.INodeStyle} style The style instance that will be assigned to the node. + * @param node The node that will be assigned the new style + * @param style The style instance that will be assigned to the node. + * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph. + * @throws {Stubs.Exceptions.ArgumentError} If style is null. * @see yfiles.graph.INode#style * @see yfiles.graph.DefaultGraph#onChangingNodeStyle * @see yfiles.graph.DefaultGraph#addNodeStyleChangedListener @@ -46162,282 +45136,282 @@ declare namespace system{ edges:yfiles.collections.IListEnumerable; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addGraphTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeGraphTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addNodeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeNodeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addNodeRemovedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeNodeRemovedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addNodeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeNodeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener + * @param listener */ addNodeLayoutChangedListener(listener:(source:Object,node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect)=>void):void; /** * - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener + * @param listener */ removeNodeLayoutChangedListener(listener:(source:Object,node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addNodeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeNodeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addEdgeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeEdgeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ addEdgeRemovedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ removeEdgeRemovedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addEdgeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeEdgeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ addEdgePortsChangedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ removeEdgePortsChangedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addEdgeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeEdgeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addBendAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeBendAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener + * @param listener */ addBendRemovedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener + * @param listener */ removeBendRemovedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener + * @param listener */ addBendLocationChangedListener(listener:(source:Object,bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point)=>void):void; /** * - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener + * @param listener */ removeBendLocationChangedListener(listener:(source:Object,bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addBendTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeBendTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener + * @param listener */ addLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener + * @param listener */ removeLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelPreferredSizeChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelPreferredSizeChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelLayoutParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelLayoutParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addPortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removePortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener + * @param listener */ addPortRemovedListener(listener:(sender:Object,evt:yfiles.graph.PortEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener + * @param listener */ removePortRemovedListener(listener:(sender:Object,evt:yfiles.graph.PortEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortLocationParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortLocationParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.lang.EventArgs): void} listener + * @param listener */ addDisplaysInvalidatedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * - * @param {function(Object, yfiles.lang.EventArgs): void} listener + * @param listener */ removeDisplaysInvalidatedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** @@ -46447,22 +45421,22 @@ declare namespace system{ groupNodeDefaults:yfiles.graph.INodeDefaults; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addParentChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeParentChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addIsGroupNodeChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeIsGroupNodeChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** @@ -46482,7 +45456,7 @@ declare namespace system{ * {@link yfiles.graph.SimpleLabel}, associate a style with it and use the style's renderer instance to obtain a rendering for the * label. *

    - * @class yfiles.graph.SimpleLabel + * @class * @implements {yfiles.graph.ILabel} */ export interface SimpleLabel extends Object,yfiles.graph.ILabel{} @@ -46490,10 +45464,9 @@ declare namespace system{ /** * Creates an instance of the {@link yfiles.graph.SimpleLabel} class with default {@link yfiles.graph.DefaultGraph#DEFAULT_LABEL_LOOKUP lookup}, an instance of {@link yfiles.styles.VoidLabelStyle} * and the given {@link yfiles.graph.ILabelModelParameter parameter}, text, and owner. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter that describes the label's layout. - * @param {string} text The label's text. - * @param {yfiles.graph.ILabelOwner} owner The label's owner. - * @constructor + * @param layoutParameter The parameter that describes the label's layout. + * @param text The label's text. + * @param owner The label's owner. */ constructor(owner:yfiles.graph.ILabelOwner,text:string,layoutParameter:yfiles.graph.ILabelModelParameter); /** @@ -46502,32 +45475,54 @@ declare namespace system{ adoptPreferredSizeFromStyle():void; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** - * + * Gets or sets the label model's parameter that determines the positioning of this label. + *

    + * Note that the label model parameter instance associated with a label instance may be shared between multiple label + * instances and that the modification of this instance or its {@link yfiles.graph.ILabelModelParameter#model} will result in a change of the positioning of all labels + * that are associated with the same parameter or model instance. + *

    * @type {yfiles.graph.ILabelModelParameter} */ layoutParameter:yfiles.graph.ILabelModelParameter; /** - * + * Gets or sets the text string associated with this label. + *

    + * It is up to the visualization engine to interpret this property for the visualization of the label. Normally, it will + * render the text into the {@link yfiles.graph.ILabel#layout layout} of this instance. + *

    * @type {string} */ text:string; /** - * + * Gets or sets the style that is responsible for the visual representation of this node in a {@link yfiles.view.CanvasComponent}. + *

    + * Note that the style instance associated with a label instance may be shared between multiple label instances and that + * the modification of this style will result in a change of the appearance of all labels that are associated with the same + * style instance. + *

    * @type {yfiles.styles.ILabelStyle} */ style:yfiles.styles.ILabelStyle; /** - * + * Gets or sets the owner of this label. + *

    + * Typically this will yield an instance of {@link yfiles.graph.INode} or {@link yfiles.graph.IEdge}. + *

    * @type {yfiles.graph.ILabelOwner} */ owner:yfiles.graph.ILabelOwner; /** - * + * Gets or sets the preferred size of the label with respect to its current contents and the implementation of the + * visualization. + *

    + * Often times the {@link yfiles.graph.ILabel#layout layout's} size will be the same as the preferred size, but it's up to the implementation of the {@link yfiles.graph.ILabelModel} + * to interpret it differently. + *

    * @type {yfiles.geometry.Size} */ preferredSize:yfiles.geometry.Size; @@ -46556,7 +45551,7 @@ declare namespace system{ * {@link yfiles.graph.SimpleNode}, associate a style with it and use the style's renderer instance to obtain a rendering for the * node. *

    - * @class yfiles.graph.SimpleNode + * @class * @implements {yfiles.graph.INode} */ export interface SimpleNode extends Object,yfiles.graph.INode{} @@ -46567,32 +45562,40 @@ declare namespace system{ * The instances assigned to {@link yfiles.graph.SimpleNode#layout}, {@link yfiles.graph.SimpleNode#ports} and {@link yfiles.graph.SimpleNode#labels} are immutable by default. To modify the values of those properties, first assign an * instance of a mutable class. *

    - * @constructor */ constructor(); /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** - * + * Gets or sets the layout of the node. + *

    + * The layout of a node is a rectangle in the world coordinate system that describes the bounding box of the representation + * of a node. + *

    * @type {yfiles.geometry.IRectangle} */ layout:yfiles.geometry.IRectangle; /** - * + * Gets or sets the style that is responsible for the visual representation of this node in a {@link yfiles.view.CanvasComponent}. + *

    + * Note that the style instance associated with a node instance may be shared between multiple node instances and that the + * modification of this style will result in a change of the appearance of all nodes that are associated with the same + * style instance. + *

    * @type {yfiles.styles.INodeStyle} */ style:yfiles.styles.INodeStyle; /** - * + * Gets or sets the collection of {@link yfiles.graph.IPort ports} that are owned by this instance. * @type {yfiles.collections.IListEnumerable.} */ ports:yfiles.collections.IListEnumerable; /** - * Gets or sets the collection for the labels. + * Gets or sets the collection of {@link yfiles.graph.ILabel labels} that are owned by this instance. * @type {yfiles.collections.IListEnumerable.} */ labels:yfiles.collections.IListEnumerable; @@ -46618,7 +45621,7 @@ declare namespace system{ * {@link yfiles.graph.SimplePort}, associate a style with it and use the style's renderer instance to obtain a rendering for the * port. *

    - * @class yfiles.graph.SimplePort + * @class * @implements {yfiles.graph.IPort} */ export interface SimplePort extends Object,yfiles.graph.IPort{} @@ -46629,34 +45632,48 @@ declare namespace system{ * While technically the owner can be null here, this can cause issues, e.g. with {@link yfiles.graph.IPortLocationModel port location models} that position the * port relative to its owner. *

    - * @param {yfiles.graph.IPortOwner} owner The port's owner. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The port's location model parameter. - * @constructor + * @param owner The port's owner. + * @param locationParameter The port's location model parameter. */ constructor(owner:yfiles.graph.IPortOwner,locationParameter:yfiles.graph.IPortLocationModelParameter); /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * Sets the location of this port. - * @param {yfiles.geometry.Point} location + * @param location */ setLocation(location:yfiles.geometry.Point):void; /** - * + * Gets or sets the style that is responsible for the visual representation of this port in a {@link yfiles.view.CanvasComponent}. + *

    + * Note that the style instance associated with a port instance may be shared between multiple port instances and that the + * modification of this style will result in a change of the appearance of all ports that are associated with the same + * style instance. + *

    * @type {yfiles.styles.IPortStyle} */ style:yfiles.styles.IPortStyle; /** - * + * Gets or sets the {@link yfiles.graph.IPortLocationModelParameter} that is used to determine the location of this port. + *

    + * The port location can be calculated using the {@link yfiles.graph.IPortLocationModelParameter#model}'s {@link yfiles.graph.IPortLocationModel#getLocation} method or the convenience + * methods {@link yfiles.graph.IPort#location} and {@link yfiles.graph.IPort#dynamicLocation}. + *

    + *

    + * Note that parameters may be shared across port instances. + *

    + * @see yfiles.graph.IGraph#setPortLocationParameter + * @see yfiles.graph.IPort#location + * @see yfiles.graph.IPort#dynamicLocation * @type {yfiles.graph.IPortLocationModelParameter} */ locationParameter:yfiles.graph.IPortLocationModelParameter; /** - * + * Gets or sets the owner of this port. * @type {yfiles.graph.IPortOwner} */ owner:yfiles.graph.IPortOwner; @@ -46674,7 +45691,7 @@ declare namespace system{ } /** * A label model that wraps an existing label model and decorates it with a {@link yfiles.graph.ILabelCandidateDescriptor descriptor}. - * @class yfiles.graph.DescriptorWrapperLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelCandidateDescriptorProvider} * @implements {yfiles.graph.ILabelModelParameterProvider} @@ -46683,19 +45700,17 @@ declare namespace system{ export class DescriptorWrapperLabelModel { /** * Initializes a new instance of the {@link yfiles.graph.DescriptorWrapperLabelModel} class. - * @param {yfiles.graph.ILabelModel} innerModel The wrapped label model. - * @constructor + * @param innerModel The wrapped label model. */ constructor(innerModel:yfiles.graph.ILabelModel); /** * Initializes a new instance of the {@link yfiles.graph.DescriptorWrapperLabelModel} class. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ILabelModel} options.innerModel The wrapped label model. + * @param options.innerModel The wrapped label model. * @param {yfiles.graph.ILabelCandidateDescriptor} options.descriptor The descriptor. *

    * This option sets the {@link yfiles.graph.DescriptorWrapperLabelModel#descriptor} property on the created object. *

    - * @constructor */ constructor(options:{innerModel:yfiles.graph.ILabelModel,descriptor?:yfiles.graph.ILabelCandidateDescriptor}); /** @@ -46709,46 +45724,45 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.DescriptorWrapperLabelModel#innerModel} property on the created object. *

    - * @constructor */ constructor(options?:{descriptor?:yfiles.graph.ILabelCandidateDescriptor,innerModel?:yfiles.graph.ILabelModel}); /** * Creates a default parameter that can be used for this model. - * @returns {yfiles.graph.ILabelModelParameter} The default parameter from {@link yfiles.graph.DescriptorWrapperLabelModel#innerModel} + * @returns The default parameter from {@link #innerModel} */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILabelCandidateDescriptor} + * @param label + * @param layoutParameter + * @returns */ getDescriptor(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILabelCandidateDescriptor; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -46779,7 +45793,7 @@ declare namespace system{ * @see yfiles.graph.FoldingManager#hasFoldingEdgeState * @see yfiles.graph.FoldingManager#getFoldingEdgeState * @see yfiles.graph.IFoldingView#isInFoldingState - * @class yfiles.graph.FoldingEdgeStateId + * @class */ export interface FoldingEdgeStateId extends Object{} export class FoldingEdgeStateId { @@ -46788,21 +45802,19 @@ declare namespace system{ *

    * All of the arguments need to be entities of the {@link yfiles.graph.FoldingManager#masterGraph master graph}. *

    - * @param {yfiles.graph.IEdge} masterEdge An edge in the {@link yfiles.graph.FoldingManager#masterGraph} that is represented by the folding edge. - * @param {yfiles.graph.INode} currentMasterSource The source node of the edge or one of its ancestors to which the folding edge connects in the view, if the actual parent - * is currently {@link yfiles.graph.IFoldingView#collapse collapsed in an ancestor node}. - * @param {boolean} sourceCollapsed true if the currentMasterSource is the true source of the masterEdge, but is in its {@link yfiles.graph.IFoldingView#collapse collapsed/dummy} state. - * @param {boolean} targetCollapsed true if the currentMasterTarget is the true target of the masterEdge, but is in its {@link yfiles.graph.IFoldingView#collapse collapsed/dummy} state. - * @param {yfiles.graph.INode} currentMasterTarget The target node of the edge or one of its ancestors to which the folding edge connects in the view, if the actual parent - * is currently {@link yfiles.graph.IFoldingView#collapse collapsed in an ancestor node}. - * @constructor + * @param masterEdge An edge in the {@link #masterGraph} that is represented by the folding edge. + * @param currentMasterSource The source node of the edge or one of its ancestors to which the folding edge connects in the view, if the actual parent + * is currently {@link #collapse collapsed in an ancestor node}. + * @param sourceCollapsed true if the currentMasterSource is the true source of the masterEdge, but is in its {@link #collapse collapsed/dummy} state. + * @param targetCollapsed true if the currentMasterTarget is the true target of the masterEdge, but is in its {@link #collapse collapsed/dummy} state. + * @param currentMasterTarget The target node of the edge or one of its ancestors to which the folding edge connects in the view, if the actual parent + * is currently {@link #collapse collapsed in an ancestor node}. */ constructor(masterEdge:yfiles.graph.IEdge,currentMasterSource:yfiles.graph.INode,sourceCollapsed:boolean,currentMasterTarget:yfiles.graph.INode,targetCollapsed:boolean); /** * Initializes an id for a folding edge that is currently part of the given view. - * @param {yfiles.graph.IFoldingView} foldingView The view the folding edge is part of. - * @param {yfiles.graph.IEdge} foldingEdge The instance that is part of the {@link yfiles.graph.IFoldingView#graph folding view graph}. - * @constructor + * @param foldingView The view the folding edge is part of. + * @param foldingEdge The instance that is part of the {@link #graph folding view graph}. */ constructor(foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge); /** @@ -46867,7 +45879,7 @@ declare namespace system{ * The label placements use a {@link yfiles.graph.EdgePathLabelModel#createRatioParameter ratio} value as fraction of the full edge path length. This is the main difference to the {@link yfiles.graph.EdgePathLabelModel} * which uses a specified segment index from the {@link yfiles.graph.EdgeSegmentLabelModel#createParameterFromSource source} or {@link yfiles.graph.EdgeSegmentLabelModel#createParameterFromTarget target} side and a ratio on this segment. *

    - * @class yfiles.graph.EdgePathLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} * @implements {yfiles.graph.ILabelModelParameterFinder} @@ -46876,12 +45888,11 @@ declare namespace system{ export class EdgePathLabelModel { /** * Initializes a new instance of the {@link yfiles.graph.EdgePathLabelModel} class. - * @param {number} distance the distance to the edge. - * @param {number} offset the offset to the default placement. - * @param {number} angle the angle of the label's rotation in radians. - * @param {boolean} autoRotationEnabled if set to true auto rotation is enabled. - * @param {yfiles.graph.EdgeSides} sideOfEdge the side of the edge labels. - * @constructor + * @param distance the distance to the edge. + * @param offset the offset to the default placement. + * @param angle the angle of the label's rotation in radians. + * @param autoRotationEnabled if set to true auto rotation is enabled. + * @param sideOfEdge the side of the edge labels. */ constructor(distance:number,offset:number,angle:number,autoRotationEnabled:boolean,sideOfEdge:yfiles.graph.EdgeSides); /** @@ -46907,7 +45918,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.EdgePathLabelModel#sideOfEdge} property on the created object. *

    - * @constructor */ constructor(options?:{angle?:number,autoRotationEnabled?:boolean,distance?:number,offset?:number,sideOfEdge?:yfiles.graph.EdgeSides}); /** @@ -46915,28 +45925,28 @@ declare namespace system{ *

    * Returns a model parameter that encodes the default position of this model's allowed edge label positions. *

    - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter at the provided edge path ratio. - * @param {number} edgePathRatio The ratio at which to place the label at the edge path. A ratio of 0.0 will place the label at the source side of the + * @param edgePathRatio The ratio at which to place the label at the edge path. A ratio of 0.0 will place the label at the source side of the * edge path, a ratio of 1.0 at the target side. - * @param {yfiles.graph.EdgeSides} sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter at the provided edge path ratio for this model instance. + * @param sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. + * @returns A label parameter at the provided edge path ratio for this model instance. */ createRatioParameter(edgePathRatio:number,sideOfEdge:yfiles.graph.EdgeSides):yfiles.graph.ILabelModelParameter; /** * Returns an empty context. - * @param {yfiles.graph.ILabel} label The label to use in the context. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use for the label in the context. - * @returns {yfiles.graph.ILookup} An empty context. + * @param label The label to use in the context. + * @param layoutParameter The parameter to use for the label in the context. + * @returns An empty context. */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -47014,7 +46024,7 @@ declare namespace system{ * The label placements use a specified segment index from the {@link yfiles.graph.EdgeSegmentLabelModel#createParameterFromSource source} or {@link yfiles.graph.EdgeSegmentLabelModel#createParameterFromTarget target} side and a ratio on this segment. This is * the main difference to the {@link yfiles.graph.EdgePathLabelModel} which only uses a ratio value of the full edge path. *

    - * @class yfiles.graph.EdgeSegmentLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} * @implements {yfiles.graph.ILabelModelParameterFinder} @@ -47023,12 +46033,11 @@ declare namespace system{ export class EdgeSegmentLabelModel { /** * Initializes a new instance of the {@link yfiles.graph.EdgeSegmentLabelModel} class. - * @param {number} distance the distance to the edge. - * @param {number} offset the offset to the default placement. - * @param {number} angle the angle of the label's rotation in radians. - * @param {boolean} autoRotationEnabled if set to true auto rotation is enabled. - * @param {yfiles.graph.EdgeSides} sideOfEdge the side of the edge labels. - * @constructor + * @param distance the distance to the edge. + * @param offset the offset to the default placement. + * @param angle the angle of the label's rotation in radians. + * @param autoRotationEnabled if set to true auto rotation is enabled. + * @param sideOfEdge the side of the edge labels. */ constructor(distance:number,offset:number,angle:number,autoRotationEnabled:boolean,sideOfEdge:yfiles.graph.EdgeSides); /** @@ -47054,7 +46063,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.EdgeSegmentLabelModel#sideOfEdge} property on the created object. *

    - * @constructor */ constructor(options?:{angle?:number,autoRotationEnabled?:boolean,distance?:number,offset?:number,sideOfEdge?:yfiles.graph.EdgeSides}); /** @@ -47062,49 +46070,49 @@ declare namespace system{ *

    * Returns a model parameter that encodes the default position of this model's allowed edge label positions. *

    - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter where the label is attached to the edge segment that contains the edge's midpoint. - * @param {number} segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the + * @param segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the * segment, a ratio of 1.0 at the target side. Ratios < 0.0 or > 1.0 will be interpreted as absolute values in world * coordinates. - * @param {yfiles.graph.EdgeSides} sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter that describes the provided parameters for this model instance. + * @param sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. + * @returns A label parameter that describes the provided parameters for this model instance. */ createParameterFromCenter(segmentRatio:number,sideOfEdge:yfiles.graph.EdgeSides):yfiles.graph.ILabelModelParameter; /** * Creates a parameter that measures the provided segment index from the source side of the edge path. - * @param {number} segmentIndex The zero-based index of the segment beginning from the source side. - * @param {number} segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the + * @param segmentIndex The zero-based index of the segment beginning from the source side. + * @param segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the * segment, a ratio of 1.0 at the target side. Ratios < 0.0 or > 1.0 will be interpreted as absolute values in world * coordinates. - * @param {yfiles.graph.EdgeSides} sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter that describes the provided parameters for this model instance. + * @param sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. + * @returns A label parameter that describes the provided parameters for this model instance. */ createParameterFromSource(segmentIndex:number,segmentRatio:number,sideOfEdge:yfiles.graph.EdgeSides):yfiles.graph.ILabelModelParameter; /** * Creates a parameter that measures the provided segment index from the target side of the edge path. - * @param {number} segmentIndex The zero-based index of the segment beginning from the target side. - * @param {number} segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the target side of the + * @param segmentIndex The zero-based index of the segment beginning from the target side. + * @param segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the target side of the * segment, a ratio of 1.0 at the source side. Ratios < 0.0 or > 1.0 will be interpreted as absolute values in world * coordinates. - * @param {yfiles.graph.EdgeSides} sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter that describes the provided parameters for this model instance. + * @param sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. + * @returns A label parameter that describes the provided parameters for this model instance. */ createParameterFromTarget(segmentIndex:number,segmentRatio:number,sideOfEdge:yfiles.graph.EdgeSides):yfiles.graph.ILabelModelParameter; /** * Returns an empty context. - * @param {yfiles.graph.ILabel} label The label to use in the context. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use for the label in the context. - * @returns {yfiles.graph.ILookup} An empty context. + * @param label The label to use in the context. + * @param layoutParameter The parameter to use for the label in the context. + * @returns An empty context. */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -47242,7 +46250,7 @@ declare namespace system{ *

    * This label model supports eight positions outside of the layout's bounds. *

    - * @class yfiles.graph.ExteriorLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} */ @@ -47255,51 +46263,50 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.ExteriorLabelModel#insets} property on the created object. *

    - * @constructor */ constructor(options?:{insets?:yfiles.geometry.Insets}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a new parameter that is associated with this instance for the provided position. - * @param {yfiles.graph.ExteriorLabelModelPosition} position The position constant that describes the position of the label. - * @returns {yfiles.graph.ILabelModelParameter} A new parameter instance. + * @param position The position constant that describes the position of the label. + * @returns A new parameter instance. */ createParameter(position:yfiles.graph.ExteriorLabelModelPosition):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47309,7 +46316,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47319,7 +46326,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47329,7 +46336,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47339,7 +46346,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47349,7 +46356,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47359,7 +46366,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47369,7 +46376,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47409,7 +46416,7 @@ declare namespace system{ *
  • Demo: OrgChart, Demo.yFiles.Graph.OrgChart
  • *
  • Demo: Collapsible Tree, Demo.yFiles.Graph.Collapse
  • * - * @class yfiles.graph.FilteredGraphWrapper + * @class * @extends {yfiles.graph.GraphWrapperBase} * @final */ @@ -47422,15 +46429,14 @@ declare namespace system{ * Note that this instance will register listeners with the graph, so {@link yfiles.graph.FilteredGraphWrapper#dispose} should be * called if this instance is not used any more. *

    - * @param {yfiles.graph.IGraph} graph The graph to wrap - * @param {function(yfiles.graph.INode): boolean} nodePredicate The predicate that determines which nodes to keep. - * @param {function(yfiles.graph.IEdge): boolean} edgePredicate The predicate that determines which edges to keep. - * @constructor + * @param graph The graph to wrap + * @param nodePredicate The predicate that determines which nodes to keep. + * @param edgePredicate The predicate that determines which edges to keep. */ constructor(graph:yfiles.graph.IGraph,nodePredicate:(obj:yfiles.graph.INode)=>boolean,edgePredicate:(obj:yfiles.graph.IEdge)=>boolean); /** * Should be called by the client if the {@link yfiles.graph.FilteredGraphWrapper#edgePredicate} changed for the given edge in the graph. - * @param {yfiles.graph.IEdge} edge + * @param edge */ edgePredicateChanged(edge:yfiles.graph.IEdge):void; /** @@ -47439,7 +46445,7 @@ declare namespace system{ edgePredicateChanged():void; /** * Should be called by clients if the {@link yfiles.graph.FilteredGraphWrapper#nodePredicate} changed for the given node. - * @param {yfiles.graph.INode} node The node. + * @param node The node. */ nodePredicateChanged(node:yfiles.graph.INode):void; /** @@ -47483,7 +46489,7 @@ declare namespace system{ *

    * The position of the label is stored relative to the positions of the ports of the edge the label belongs to. *

    - * @class yfiles.graph.FreeEdgeLabelModel + * @class * @implements {yfiles.graph.ILabelModelParameterFinder} * @implements {yfiles.graph.ILabelModel} */ @@ -47491,16 +46497,16 @@ declare namespace system{ export class FreeEdgeLabelModel { /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter for the given location. - * @param {number} ratio The ratio at which the label will be anchored between the location of the source port and the location of the target + * @param ratio The ratio at which the label will be anchored between the location of the source port and the location of the target * port. - * @param {number} distance The distance orthogonally to the connection between the source and target point. - * @param {number} angle The angle by which the label should be rotated. - * @returns {yfiles.graph.ILabelModelParameter} A parameter that describes the position. + * @param distance The distance orthogonally to the connection between the source and target point. + * @param angle The angle by which the label should be rotated. + * @returns A parameter that describes the position. * @see yfiles.graph.FreeEdgeLabelModel#edgeRelativeAngle */ createEdgeAnchored(ratio:number,distance:number,angle:number):yfiles.graph.ILabelModelParameter; @@ -47509,30 +46515,30 @@ declare namespace system{ *

    * This implementation will match the provided layout perfectly. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.graph.ILabelModel} model The model instance to use. This should be this instance. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @returns {yfiles.graph.ILabelModelParameter} A non-null parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param model The model instance to use. This should be this instance. + * @param layout The anticipated layout for the label. + * @returns A non-null parameter that can be used for the label to approximate the provided layout. */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -47560,7 +46566,7 @@ declare namespace system{ * The position of the label is stored absolutely and is not influenced by the layout or position of the owner of the * label. In fact the owner is not even queried during a call to {@link yfiles.graph.FreeLabelModel#getGeometry}. *

    - * @class yfiles.graph.FreeLabelModel + * @class * @implements {yfiles.graph.ILabelModelParameterFinder} * @implements {yfiles.graph.ILabelModel} */ @@ -47568,47 +46574,47 @@ declare namespace system{ export class FreeLabelModel { /** * Creates a new label model parameter that places the label at the given absolute position using the provided angle. - * @param {yfiles.geometry.Point} anchorLocation The location for the parameter. - * @param {number} angle The angle of rotation. - * @returns {yfiles.graph.ILabelModelParameter} A new parameter that is associated with this instance. + * @param anchorLocation The location for the parameter. + * @param angle The angle of rotation. + * @returns A new parameter that is associated with this instance. */ createAbsolute(anchorLocation:yfiles.geometry.Point,angle:number):yfiles.graph.ILabelModelParameter; /** * Creates a new label at the given dynamic location using the provided angle. - * @param {yfiles.geometry.IPoint} location The location to place the parameter at. That instance is stored by reference. - * @param {number} angle The angle of rotation. - * @returns {yfiles.graph.ILabelModelParameter} A new parameter that is associated with this instance. + * @param location The location to place the parameter at. That instance is stored by reference. + * @param angle The angle of rotation. + * @returns A new parameter that is associated with this instance. */ createAnchored(location:yfiles.geometry.IPoint,angle:number):yfiles.graph.ILabelModelParameter; /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a new label model parameter that dynamically reads the label layout from the provided instance. - * @param {yfiles.geometry.IOrientedRectangle} layout The oriented rectangle to dynamically retrieve the values from. - * @returns {yfiles.graph.ILabelModelParameter} A new parameter that is associated with this instance. + * @param layout The oriented rectangle to dynamically retrieve the values from. + * @returns A new parameter that is associated with this instance. */ createDynamic(layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -47625,7 +46631,7 @@ declare namespace system{ *

    * The position of the label is stored relative to the layout of the node the label belongs to. *

    - * @class yfiles.graph.FreeNodeLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterFinder} */ @@ -47645,15 +46651,15 @@ declare namespace system{ * the start or end coordinate of the label matches the start, center or end coordinate of the node, that coordinate is the * reference. Otherwise, the center of the label specifies the reference. *

    - * @param {yfiles.geometry.Rect} nodeLayout The node layout. - * @param {yfiles.geometry.IOrientedRectangle} labelLayout The label layout. - * @param {yfiles.geometry.Point} [referenceLocation=null] The reference location. - * @returns {yfiles.graph.ILabelModelParameter} The canonical parameter for the specified node and label layout. + * @param nodeLayout The node layout. + * @param labelLayout The label layout. + * @param [referenceLocation=null] The reference location. + * @returns The canonical parameter for the specified node and label layout. */ createCanonicalParameter(nodeLayout:yfiles.geometry.Rect,labelLayout:yfiles.geometry.IOrientedRectangle,referenceLocation?:yfiles.geometry.Point):yfiles.graph.ILabelModelParameter; /** * Creates a parameter that is anchored at the node center and has no rotation. - * @returns {yfiles.graph.ILabelModelParameter} A parameter that is anchored at the node center and has no rotation. + * @returns A parameter that is anchored at the node center and has no rotation. */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** @@ -47662,13 +46668,13 @@ declare namespace system{ * The parameter will use the ratio and offset values to determine a point on both the label and the node. It will place * the label in such a way that both points coincide. *

    - * @param {yfiles.geometry.Point} layoutRatio The ratio that describes the point on the node's layout relative to its size. - * @param {yfiles.geometry.Point} layoutOffset The offset to apply to the point on the node after the ratio has been determined. - * @param {yfiles.geometry.Point} labelRatio The ratio that describes the point on the label's layout relative to its size. - * @param {yfiles.geometry.Point} labelOffset The offset to apply to the point on the label after the ratio has been determined. - * @param {number} angle The angle by which the label should be rotated around the point described using the ratio and offset, measured in + * @param layoutRatio The ratio that describes the point on the node's layout relative to its size. + * @param layoutOffset The offset to apply to the point on the node after the ratio has been determined. + * @param labelRatio The ratio that describes the point on the label's layout relative to its size. + * @param labelOffset The offset to apply to the point on the label after the ratio has been determined. + * @param angle The angle by which the label should be rotated around the point described using the ratio and offset, measured in * radians. - * @returns {yfiles.graph.ILabelModelParameter} A parameter that exactly fits the described location. + * @returns A parameter that exactly fits the described location. */ createParameter(layoutRatio:yfiles.geometry.Point,layoutOffset:yfiles.geometry.Point,labelRatio:yfiles.geometry.Point,labelOffset:yfiles.geometry.Point,angle:number):yfiles.graph.ILabelModelParameter; /** @@ -47676,30 +46682,30 @@ declare namespace system{ *

    * This implementation will match the provided layout perfectly. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.graph.ILabelModel} model The model instance to use. This should be this instance. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @returns {yfiles.graph.ILabelModelParameter} A non-null parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param model The model instance to use. This should be this instance. + * @param layout The anticipated layout for the label. + * @returns A non-null parameter that can be used for the label to approximate the provided layout. */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * Returns an empty context. - * @param {yfiles.graph.ILabel} label The label to use in the context. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use for the label in the context. - * @returns {yfiles.graph.ILookup} An empty context. + * @param label The label to use in the context. + * @param layoutParameter The parameter to use for the label in the context. + * @returns An empty context. */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * Returns this instance if an instance of {@link yfiles.graph.ILabelModelParameterFinder} is requested and null otherwise. - * @param {yfiles.lang.Class} type The type for which an instance is requested. - * @returns {Object} An instance that is assignable to the given type or null. + * @param type The type for which an instance is requested. + * @returns An instance that is assignable to the given type or null. */ lookup(type:yfiles.lang.Class):Object; /** @@ -47718,7 +46724,7 @@ declare namespace system{ * Internally the location is stored as the ratios by which the {@link yfiles.geometry.ISize#width} and {@link yfiles.geometry.ISize#height} of the {@link yfiles.graph.INode#layout} need to be scaled and additional offsets to * obtain the offset to the top-left corner of the node layout. *

    - * @class yfiles.graph.FreeNodePortLocationModel + * @class * @implements {yfiles.graph.IPortLocationModel} * @final */ @@ -47726,9 +46732,9 @@ declare namespace system{ export class FreeNodePortLocationModel { /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.geometry.Point} location - * @returns {yfiles.graph.IPortLocationModelParameter} + * @param owner + * @param location + * @returns */ createParameter(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** @@ -47737,29 +46743,29 @@ declare namespace system{ * The ratios will be scaled by the node layout's size and added to the node's top left corner and the offset to determine * the port location. *

    - * @param {yfiles.geometry.Point} ratios The ratios of the node layout's size. - * @param {yfiles.geometry.Point} [offset=null] The offset that is added after the ratios are applied. - * @returns {yfiles.graph.IPortLocationModelParameter} A new parameter that matches the specification. + * @param ratios The ratios of the node layout's size. + * @param [offset=null] The offset that is added after the ratios are applied. + * @returns A new parameter that matches the specification. */ createParameterForRatios(ratios:yfiles.geometry.Point,offset?:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.graph.ILookup} + * @param port + * @param locationParameter + * @returns */ getContext(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.geometry.Point} + * @param port + * @param locationParameter + * @returns */ getLocation(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.geometry.Point; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -47772,7 +46778,7 @@ declare namespace system{ /** * A read only immutable singleton instance of a parameter that locates the port at the center of the node layout. *

    - * This is the same as creating a parameter using (0.5,0.5) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0.5,0.5) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47783,7 +46789,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the center of the left border of the * node layout. *

    - * This is the same as creating a parameter using (0,0.5) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0,0.5) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47794,7 +46800,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the center of the right border of the * node layout. *

    - * This is the same as creating a parameter using (1,0.5) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (1,0.5) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47805,7 +46811,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the center of the top border of the * node layout. *

    - * This is the same as creating a parameter using (0.5,0) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0.5,0) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47816,7 +46822,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the center of the bottom border of the * node layout. *

    - * This is the same as creating a parameter using (0.5,1) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0.5,1) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47827,7 +46833,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the top left corner of the node * layout. *

    - * This is the same as creating a parameter using (0,0) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0,0) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47838,7 +46844,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the top right corner of the node * layout. *

    - * This is the same as creating a parameter using (1,0) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (1,0) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47849,7 +46855,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the bottom right corner of the node * layout. *

    - * This is the same as creating a parameter using (1,1) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (1,1) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47860,7 +46866,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the bottom left corner of the node * layout. *

    - * This is the same as creating a parameter using (0,1) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0,1) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47876,7 +46882,7 @@ declare namespace system{ * This class holds a number of parameters and serves as a container for these parameters. Custom models can easily be * created that way: *

    - * @class yfiles.graph.GenericLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} * @implements {yfiles.graph.ILabelCandidateDescriptorProvider} @@ -47889,11 +46895,10 @@ declare namespace system{ *

    * The parameter is stored by reference. *

    - * @param {yfiles.graph.ILabelModelParameter} defaultLayoutParameter The parameter to use as the default. - * @param {yfiles.graph.ILabelCandidateDescriptor} [descriptor=null] The descriptor to associate with the parameter. + * @param defaultLayoutParameter The parameter to use as the default. + * @param [descriptor=null] The descriptor to associate with the parameter. * @throws {Stubs.Exceptions.ArgumentError} defaultParameter is null. * @see yfiles.graph.GenericLabelModel#getDescriptor - * @constructor */ constructor(defaultLayoutParameter:yfiles.graph.ILabelModelParameter,descriptor?:yfiles.graph.ILabelCandidateDescriptor); /** @@ -47904,35 +46909,35 @@ declare namespace system{ * associated model will be reflected by this instance. Also the methods allows for associating a {@link yfiles.graph.ILabelCandidateDescriptor} * with each parameter that can later be retrieved via the {@link yfiles.graph.GenericLabelModel#getDescriptor} method. *

    - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to add to this instance. - * @param {yfiles.graph.ILabelCandidateDescriptor} [descriptor=null] The descriptor to associate with the parameter. - * @returns {yfiles.graph.ILabelModelParameter} A new parameter that wraps the provided parameter and uses this instance as its model. + * @param layoutParameter The parameter to add to this instance. + * @param [descriptor=null] The descriptor to associate with the parameter. + * @returns A new parameter that wraps the provided parameter and uses this instance as its model. */ addParameter(layoutParameter:yfiles.graph.ILabelModelParameter,descriptor?:yfiles.graph.ILabelCandidateDescriptor):yfiles.graph.ILabelModelParameter; /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * Yields the {@link yfiles.graph.ILabelCandidateDescriptor} that has been associated with the instance during * {@link yfiles.graph.GenericLabelModel#addParameter}. - * @param {yfiles.graph.ILabel} label The label instance to use. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to get the descriptor for. - * @returns {yfiles.graph.ILabelCandidateDescriptor} The descriptor instance that had been added to this instance during {@link yfiles.graph.GenericLabelModel#addParameter}. + * @param label The label instance to use. + * @param layoutParameter The parameter to get the descriptor for. + * @returns The descriptor instance that had been added to this instance during {@link #addParameter}. */ getDescriptor(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILabelCandidateDescriptor; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; static $class:yfiles.lang.Class; @@ -47950,7 +46955,7 @@ declare namespace system{ * Note that in order to work, this model needs to have at least one {@link yfiles.graph.GenericPortLocationModel#addParameter parameter added}. *

    * @see yfiles.graph.GenericPortLocationModel#addParameter - * @class yfiles.graph.GenericPortLocationModel + * @class * @implements {yfiles.graph.IPortLocationModel} * @implements {yfiles.collections.IEnumerable.} * @implements {yfiles.graphml.IMarkupExtensionConverter} @@ -47960,7 +46965,6 @@ declare namespace system{ export class GenericPortLocationModel { /** * Initializes a new instance of the {@link yfiles.graph.GenericPortLocationModel} class. - * @constructor */ constructor(); /** @@ -47971,7 +46975,7 @@ declare namespace system{ *

    * This method is used by the compiler if the collection initializer syntax is used. *

    - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The parameter to add to this instance. + * @param locationParameter The parameter to add to this instance. * @see yfiles.graph.GenericPortLocationModel#addParameter */ add(locationParameter:yfiles.graph.IPortLocationModelParameter):void; @@ -47981,8 +46985,8 @@ declare namespace system{ * Note that this will create a new parameter instance that is then actually bound to this instance and returned. The * instance is stored by reference so if this is a mutable instance this instance will be modified, implicitly, too. *

    - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The parameter to add to this instance. - * @returns {yfiles.graph.IPortLocationModelParameter} The parameter to use with this model that wraps the given parameter. + * @param locationParameter The parameter to add to this instance. + * @returns The parameter to use with this model that wraps the given parameter. * @see yfiles.graph.GenericPortLocationModel#add */ addParameter(locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.IPortLocationModelParameter; @@ -47992,29 +46996,29 @@ declare namespace system{ *

    * This implementation iterates over all {@link yfiles.graph.GenericPortLocationModel#locationParameters} to return the one that matches the given location the best. *

    - * @param {yfiles.graph.IPortOwner} owner The port owner that will own the port for which the parameter shall be created. - * @param {yfiles.geometry.Point} location The location in the world coordinate system that should be matched as best as possible. - * @returns {yfiles.graph.IPortLocationModelParameter} A new instance that can be used to describe the location of an {@link yfiles.graph.IPort} at the given owner. + * @param owner The port owner that will own the port for which the parameter shall be created. + * @param location The location in the world coordinate system that should be matched as best as possible. + * @returns A new instance that can be used to describe the location of an {@link } at the given owner. */ createParameter(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.graph.ILookup} + * @param port + * @param locationParameter + * @returns */ getContext(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.geometry.Point} + * @param port + * @param locationParameter + * @returns */ getLocation(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.geometry.Point; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -48051,9 +47055,9 @@ declare namespace system{ *

    * If the source graph is a managed folding view, the item is always a master item. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item to copy to the clipboard. - * @returns {Object} A custom user object that will later be provided to {@link yfiles.graph.IClipboardHelper#paste}. + * @param context The context in which this interface is used, can be null + * @param item The item to copy to the clipboard. + * @returns A custom user object that will later be provided to {@link #paste}. * @abstract */ copy(context:yfiles.graph.IGraphClipboardContext,item:yfiles.graph.IModelItem):Object; @@ -48063,9 +47067,9 @@ declare namespace system{ *

    * If the source graph is a managed folding view, the item is always a master item. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item to cut to the clipboard. - * @returns {Object} A custom user object that will later be provided to {@link yfiles.graph.IClipboardHelper#paste}. + * @param context The context in which this interface is used, can be null + * @param item The item to cut to the clipboard. + * @returns A custom user object that will later be provided to {@link #paste}. * @abstract */ cut(context:yfiles.graph.IGraphClipboardContext,item:yfiles.graph.IModelItem):Object; @@ -48074,9 +47078,9 @@ declare namespace system{ *

    * The item is always a master item since the clipboard graph is not a managed folding view. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item that has been created during the paste operation. - * @param {Object} userData The data that had been queried during {@link yfiles.graph.IClipboardHelper#cut} or {@link yfiles.graph.IClipboardHelper#copy} + * @param context The context in which this interface is used, can be null + * @param item The item that has been created during the paste operation. + * @param userData The data that had been queried during {@link #cut} or {@link #copy} * respectively. * @abstract */ @@ -48088,9 +47092,9 @@ declare namespace system{ * copied, this method will be queried with the collapsed group node as item for each "hidden" node that is currently not * visible. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item in question. - * @returns {boolean} Whether this item should be copied. + * @param context The context in which this interface is used, can be null + * @param item The item in question. + * @returns Whether this item should be copied. * @abstract */ shouldCopy(context:yfiles.graph.IGraphClipboardContext,item:yfiles.graph.IModelItem):boolean; @@ -48101,9 +47105,9 @@ declare namespace system{ * cut, this method will be queried with the collapsed group node as item for each "hidden" node that is currently not * visible. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item in question. - * @returns {boolean} Whether this item should be cut. + * @param context The context in which this interface is used, can be null + * @param item The item in question. + * @returns Whether this item should be cut. * @abstract */ shouldCut(context:yfiles.graph.IGraphClipboardContext,item:yfiles.graph.IModelItem):boolean; @@ -48112,10 +47116,10 @@ declare namespace system{ *

    * The item is always a master item since the clipboard graph is not a managed folding view. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item in the clipboard graph. - * @param {Object} userData The state memento that had been created during {@link yfiles.graph.IClipboardHelper#cut} or {@link yfiles.graph.IClipboardHelper#copy}. - * @returns {boolean} Whether this item should be pasted. + * @param context The context in which this interface is used, can be null + * @param item The item in the clipboard graph. + * @param userData The state memento that had been created during {@link #cut} or {@link #copy}. + * @returns Whether this item should be pasted. * @abstract */ shouldPaste(context:yfiles.graph.IGraphClipboardContext,item:yfiles.graph.IModelItem,userData:Object):boolean; @@ -48169,17 +47173,17 @@ declare namespace system{ export interface IClipboardIdProvider extends Object{ /** * Gets the ID for the given originalItem. - * @param {yfiles.graph.IGraphClipboardContext} context The clipboard context - * @param {yfiles.graph.IModelItem} originalItem The original item which is copied. The item is part of the original graph from which the item is copied. - * @returns {Object} An ID for the given item. The object should be suitable for use in a {@link yfiles.collections.Map.}. + * @param context The clipboard context + * @param originalItem The original item which is copied. The item is part of the original graph from which the item is copied. + * @returns An ID for the given item. The object should be suitable for use in a {@link }. * @abstract */ getId(context:yfiles.graph.IGraphClipboardContext,originalItem:yfiles.graph.IModelItem):Object; /** * Gets the item which is represented by the given id. - * @param {yfiles.graph.IGraphClipboardContext} context The clipboard context. - * @param {Object} id The ID to get the item for. - * @returns {yfiles.graph.IModelItem} The item which is represented by the given ID or null if the item cannot be located or is invalid. The item needs to be + * @param context The clipboard context. + * @param id The ID to get the item for. + * @returns The item which is represented by the given ID or null if the item cannot be located or is invalid. The item needs to be * part of the target graph for paste operations. * @abstract */ @@ -48273,9 +47277,10 @@ declare namespace system{ * * @see yfiles.graph.IClipboardHelper * @see yfiles.graph.GraphClipboard#cut - * @see yfiles.graph.GraphClipboard#copy + * @see yfiles.graph.GraphClipboard#onCopy + * @see yfiles.graph.GraphClipboard#paste * @see yfiles.graph.GraphClipboard#clipboardGraph - * @class yfiles.graph.GraphClipboard + * @class */ export interface GraphClipboard extends Object{} export class GraphClipboard { @@ -48322,68 +47327,54 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.GraphClipboard#copyItems} property on the created object. *

    - * @constructor */ constructor(options?:{pasteDelta?:yfiles.geometry.Point,toClipboardCopier?:yfiles.graph.GraphCopier,fromClipboardCopier?:yfiles.graph.GraphCopier,duplicateCopier?:yfiles.graph.GraphCopier,idProvider?:yfiles.graph.IClipboardIdProvider,clipboardGraph?:yfiles.graph.IGraph,parentNodeDetection?:yfiles.graph.ParentNodeDetectionModes,dependentCopyItems?:yfiles.graph.GraphItemTypes,independentCopyItems?:yfiles.graph.GraphItemTypes,copyItems?:yfiles.graph.GraphItemTypes}); /** * Clears the clipboard's contents. */ clear():void; - /** - * Calls {@link yfiles.graph.GraphCopier#copy} on the current {@link yfiles.graph.GraphClipboard#toClipboardCopier} instance or {@link yfiles.graph.GraphClipboard#fromClipboardCopier} instance, depending on whether the targetGraph is the {@link yfiles.graph.GraphClipboard#clipboardGraph} - * instance. - * @param {yfiles.graph.IGraph} sourceGraph The source graph to pass to {@link yfiles.graph.GraphCopier#copy} - * @param {function(yfiles.graph.IModelItem): boolean} filter The predicate to pass on. - * @param {yfiles.graph.IGraph} targetGraph The target graph to pass on. - * @param {yfiles.graph.INode} targetRootNode The node to use as the root node in the grouped targetGraph. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementCopiedCallback The delegate to pass on. For each element that is copied during the operation to the clipboard, this callback will be - * passed the original and the copy of the item. In case the sourceGraph is a {@link yfiles.graph.FoldingManager#views folding view graph} both elements are passed - * as {@link yfiles.graph.FoldingManager#masterGraph master} elements or {@link yfiles.graph.FoldingManager#getFolderNodeState folding state elements} if a master element does not exist. - * @protected - */ - copy(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,targetRootNode:yfiles.graph.INode,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; /** * Copies the elements indicated by the filter to the clipboard graph. *

    * For each element copied to the clipboard graph the {@link yfiles.graph.GraphClipboard#onElementCopied} delegate will be called. * The actual work of this method is delegated to the {@link yfiles.graph.GraphClipboard#toClipboardCopier}'s {@link yfiles.graph.GraphCopier#copy} method. *

    - * @param {yfiles.graph.IGraph} sourceGraph The graph to copy the contents from. - * @param {function(yfiles.graph.IModelItem): boolean} filter The filter to apply to the source graph's elements. + * @param sourceGraph The graph to copy the contents from. + * @param filter The filter to apply to the source graph's elements. */ copy(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean):void; /** * Creates the graph used for the clipboard. - * @returns {yfiles.graph.IGraph} A new readily configured {@link yfiles.graph.DefaultGraph} instance. + * @returns A new readily configured {@link } instance. * @protected */ createClipboardGraph():yfiles.graph.IGraph; /** * Convenience method that creates a predicate that is based upon the outcome of the {@link yfiles.graph.IClipboardHelper#shouldCopy} * method that can be found in the {@link yfiles.graph.ILookup#lookup} of the provided {@link yfiles.graph.IModelItem}. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that uses {@link yfiles.graph.IClipboardHelper#shouldCopy}. - * @see yfiles.graph.GraphClipboard#copy + * @returns A predicate that uses {@link #shouldCopy}. + * @see yfiles.graph.GraphClipboard#onCopy */ createClipBoardHelperCopyFilter():(obj:yfiles.graph.IModelItem)=>boolean; /** * Convenience method that creates a predicate that is based upon the outcome of the {@link yfiles.graph.IClipboardHelper#shouldCut} * method that can be found in the {@link yfiles.graph.ILookup#lookup} of the provided {@link yfiles.graph.IModelItem}. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that uses {@link yfiles.graph.IClipboardHelper#shouldCut}. + * @returns A predicate that uses {@link #shouldCut}. * @see yfiles.graph.GraphClipboard#cut */ createClipBoardHelperCutFilter():(obj:yfiles.graph.IModelItem)=>boolean; /** * Convenience method that creates a predicate that is based upon the outcome of the {@link yfiles.graph.IClipboardHelper#shouldPaste} * method that can be found in the {@link yfiles.graph.ILookup#lookup} of the provided {@link yfiles.graph.IModelItem}. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that uses {@link yfiles.graph.IClipboardHelper#shouldPaste}. + * @returns A predicate that uses {@link #shouldPaste}. * @see yfiles.graph.GraphClipboard#cut */ createClipBoardHelperPasteFilter():(obj:yfiles.graph.IModelItem)=>boolean; /** * Factory method that creates the context for the upcoming calls to the {@link yfiles.graph.IClipboardHelper} methods. - * @param {yfiles.graph.IGraph} sourceGraph The source graph of the operation. - * @param {yfiles.graph.IGraph} targetGraph The target graph of the operation. - * @returns {yfiles.graph.IGraphClipboardContext} A context that has the properties configured according to the parameters. + * @param sourceGraph The source graph of the operation. + * @param targetGraph The target graph of the operation. + * @returns A context that has the properties configured according to the parameters. * @protected */ createContext(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph):yfiles.graph.IGraphClipboardContext; @@ -48395,12 +47386,12 @@ declare namespace system{ *

    * Custom ID can be used to map between elements in different graphs. *

    - * @returns {yfiles.graph.IClipboardIdProvider} + * @returns * @protected */ createDefaultClipboardIdProvider():yfiles.graph.IClipboardIdProvider; /** - * Creates a predicate for use in the {@link yfiles.graph.GraphClipboard#copy} method. + * Creates a predicate for use in the {@link yfiles.graph.GraphClipboard#onCopy} method. *

    * This filter uses two predicates to decide whether a graph item can be copied. The base set of items specified by this * filter is induced by the {@link yfiles.graph.GraphClipboard#createSelectionFilter}. Optionally, this set can be restricted @@ -48408,9 +47399,9 @@ declare namespace system{ * or any item this item depends on, then the item will not be copied. Items without such a predicate are handled solely * according to their selection state. *

    - * @param {yfiles.view.IGraphSelection} selection The selection model to base the filter on. - * @param {yfiles.graph.IGraph} graph The graph to use for determining adjacency. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link yfiles.graph.IClipboardHelper#shouldCopy} + * @param selection The selection model to base the filter on. + * @param graph The graph to use for determining adjacency. + * @returns A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link #shouldCopy} * predicate. */ createDefaultCopyFilter(selection:yfiles.view.IGraphSelection,graph:yfiles.graph.IGraph):(obj:yfiles.graph.IModelItem)=>boolean; @@ -48423,9 +47414,9 @@ declare namespace system{ * or any item this item depends on, then the item will not be cut. Items without such a predicate are handled solely * according to their selection state. *

    - * @param {yfiles.view.IGraphSelection} selection The selection model to base the filter on. - * @param {yfiles.graph.IGraph} graph The graph to use for determining adjacency. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link yfiles.graph.IClipboardHelper#shouldCut} + * @param selection The selection model to base the filter on. + * @param graph The graph to use for determining adjacency. + * @returns A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link #shouldCut} * predicate. */ createDefaultCutFilter(selection:yfiles.view.IGraphSelection,graph:yfiles.graph.IGraph):(obj:yfiles.graph.IModelItem)=>boolean; @@ -48439,44 +47430,44 @@ declare namespace system{ * or any item this item depends on, then the item will not be copied. Items without such a predicate are handled solely * according to their selection state. *

    - * @param {yfiles.view.IGraphSelection} selection The selection model to base the filter on. - * @param {yfiles.graph.IGraph} graph The graph to use for determining adjacency. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link yfiles.graph.IClipboardHelper#shouldCopy} + * @param selection The selection model to base the filter on. + * @param graph The graph to use for determining adjacency. + * @returns A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link #shouldCopy} * predicate. */ createDefaultDuplicateFilter(selection:yfiles.view.IGraphSelection,graph:yfiles.graph.IGraph):(obj:yfiles.graph.IModelItem)=>boolean; /** * Factory method that creates the {@link yfiles.graph.GraphClipboard#duplicateCopier}. - * @returns {yfiles.graph.GraphCopier} A new {@link yfiles.graph.GraphCopier} instance. + * @returns A new {@link } instance. * @protected */ createDuplicateCopier():yfiles.graph.GraphCopier; /** * Factory method that creates the {@link yfiles.graph.GraphClipboard#fromClipboardCopier}. - * @returns {yfiles.graph.GraphCopier} A new {@link yfiles.graph.GraphCopier} instance. + * @returns A new {@link } instance. * @protected */ createFromClipboardCopier():yfiles.graph.GraphCopier; /** - * Creates a predicate for use in the {@link yfiles.graph.GraphClipboard#cut} and {@link yfiles.graph.GraphClipboard#copy} methods. + * Creates a predicate for use in the {@link yfiles.graph.GraphClipboard#cut} and {@link yfiles.graph.GraphClipboard#onCopy} methods. *

    * This predicate is based on the element induced by the set of selected nodes, e.g. each edge that has both of its * adjacent port owners selected will be included as well as each label and port whose owner is included. Also ports where * no adjacent edge is included (but edges exist), will not be included, unless the {@link yfiles.graph.IPortDefaults#autoCleanup} is set to false. *

    - * @param {yfiles.view.IGraphSelection} selection The selection model to base the filter on. - * @param {yfiles.graph.IGraph} graph The graph to use for determining adjacency. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that filters subgraph induced by the selection of nodes. + * @param selection The selection model to base the filter on. + * @param graph The graph to use for determining adjacency. + * @returns A predicate that filters subgraph induced by the selection of nodes. */ createSelectionFilter(selection:yfiles.view.IGraphSelection,graph:yfiles.graph.IGraph):(obj:yfiles.graph.IModelItem)=>boolean; /** * Factory method that creates the {@link yfiles.graph.GraphClipboard#toClipboardCopier}. - * @returns {yfiles.graph.GraphCopier} A new {@link yfiles.graph.GraphCopier} instance. + * @returns A new {@link } instance. * @protected */ createToClipboardCopier():yfiles.graph.GraphCopier; /** - * Creates an induced predicate from coreFilter for use in the {@link yfiles.graph.GraphClipboard#cut} and {@link yfiles.graph.GraphClipboard#copy} + * Creates an induced predicate from coreFilter for use in the {@link yfiles.graph.GraphClipboard#cut} and {@link yfiles.graph.GraphClipboard#onCopy} * methods that takes dependent items into account. *

    * This method can create a predicate for only a core set of items which is then extended or restricted depending on the @@ -48495,21 +47486,21 @@ declare namespace system{ * (e.g. label/port owner, source/target port etc.) is forbidden by coreFilter. * * - * @param {function(yfiles.graph.IModelItem): boolean} coreFilter The core predicate for the base set of elements. - * @param {yfiles.graph.IGraph} graph The graph to use for determining adjacency. - * @param {boolean} restrictive Whether to create a restriction or extension for the coreFilter predicate - * @returns {function(yfiles.graph.IModelItem): boolean} + * @param coreFilter The core predicate for the base set of elements. + * @param graph The graph to use for determining adjacency. + * @param restrictive Whether to create a restriction or extension for the coreFilter predicate + * @returns * @static */ static createWrappedFilter(coreFilter:(obj:yfiles.graph.IModelItem)=>boolean,graph:yfiles.graph.IGraph,restrictive:boolean):(obj:yfiles.graph.IModelItem)=>boolean; /** * Cuts the items indicated by filter to the clipboard and removes them from the graph. *

    - * This method delegates the core work to {@link yfiles.graph.GraphClipboard#copy} which will use the {@link yfiles.graph.GraphClipboard#toClipboardCopier} to copy the cut elements to - * the clipboard. + * This method delegates the core work to {@link yfiles.graph.GraphClipboard#onCopy} which will use the {@link yfiles.graph.GraphClipboard#toClipboardCopier} to copy the cut elements + * to the clipboard. *

    - * @param {yfiles.graph.IGraph} sourceGraph The graph to cut the items from. - * @param {function(yfiles.graph.IModelItem): boolean} filter The filter to use. + * @param sourceGraph The graph to cut the items from. + * @param filter The filter to use. * @see yfiles.graph.GraphClipboard#createSelectionFilter */ cut(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean):void; @@ -48518,10 +47509,10 @@ declare namespace system{ *

    * The {@link yfiles.graph.GraphClipboard#clipboardGraph} is not altered by this operation. *

    - * @param {yfiles.input.IInputModeContext} context The current {@link yfiles.input.IInputModeContext}. - * @param {yfiles.graph.IGraph} sourceGraph The graph whose elements should be duplicated. - * @param {function(yfiles.graph.IModelItem): boolean} filter A predicate which returns true for elements which should be duplicated. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementDuplicated An element copied callback which gets invoked for each element which has been duplicated. The two parameters passed into + * @param context The current {@link }. + * @param sourceGraph The graph whose elements should be duplicated. + * @param filter A predicate which returns true for elements which should be duplicated. + * @param elementDuplicated An element copied callback which gets invoked for each element which has been duplicated. The two parameters passed into * the callback are guaranteed to be part of the sourceGraph. */ duplicate(context:yfiles.input.IInputModeContext,sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,elementDuplicated:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; @@ -48530,8 +47521,8 @@ declare namespace system{ *

    * This implementation uses the item's {@link yfiles.graph.ILookup#lookup} method to retrieve the helper instance. *

    - * @param {yfiles.graph.IModelItem} item The item to find the clipboard helper for. - * @returns {yfiles.graph.IClipboardHelper} An instance or null. + * @param item The item to find the clipboard helper for. + * @returns An instance or null. * @protected */ getClipboardHelper(item:yfiles.graph.IModelItem):yfiles.graph.IClipboardHelper; @@ -48541,10 +47532,10 @@ declare namespace system{ * This method might be overridden to map folding states for edges whose source or target node's hierarchy might have * changed during a paste operation. *

    - * @param {yfiles.graph.IEdge} edge The edge to get the folding state for. - * @param {yfiles.graph.FoldingEdgeStateId} id The original {@link yfiles.graph.FoldingEdgeStateId} to get the folding state for. Passing null will return the folding state + * @param edge The edge to get the folding state for. + * @param id The original {@link } to get the folding state for. Passing null will return the folding state * which was visible when the edge was copied into the clipboard. - * @returns {yfiles.graph.IEdge} The folding state which is mapped to the given id. May be null. + * @returns The folding state which is mapped to the given id. May be null. * @protected */ getFoldingEdgeState(edge:yfiles.graph.IEdge,id:yfiles.graph.FoldingEdgeStateId):yfiles.graph.IEdge; @@ -48554,20 +47545,20 @@ declare namespace system{ * Implementations might delegate to {@link yfiles.graph.GraphCopier#copyLabelLayoutParameter} to copy the existing parameter or * use the {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} to create a new one. Note that the type of the owner might have changed during the copy operation. *

    - * @param {yfiles.graph.GraphCopier} copier The {@link yfiles.graph.GraphCopier} whose {@link yfiles.graph.GraphCopier#copyLabelLayoutParameter} method can be used to copy the + * @param copier The {@link } whose {@link #copyLabelLayoutParameter} method can be used to copy the * existing parameter. - * @param {yfiles.graph.IGraph} graph The {@link yfiles.graph.IGraph} whose {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} can be used to create a new parameter. - * @param {yfiles.graph.ILabel} label The label to be copied. - * @param {yfiles.graph.ILabelOwner} newOwner The new owner for the label. - * @returns {yfiles.graph.ILabelModelParameter} An {@link yfiles.graph.ILabelModelParameter} for the copied label. + * @param graph The {@link } whose {@link #nodeDefaults} or {@link #edgeDefaults} can be used to create a new parameter. + * @param label The label to be copied. + * @param newOwner The new owner for the label. + * @returns An {@link } for the copied label. * @protected */ getLabelLayoutParameter(copier:yfiles.graph.GraphCopier,graph:yfiles.graph.IGraph,label:yfiles.graph.ILabel,newOwner:yfiles.graph.ILabelOwner):yfiles.graph.ILabelModelParameter; /** * Retrieves the memento associated with an item in the clipboard graph that has been stored with the item during {@link yfiles.graph.GraphClipboard#onElementCopied} * and {@link yfiles.graph.GraphClipboard#onElementCut}. - * @param {yfiles.graph.IModelItem} clipboardItem The item in the clipboard graph. - * @returns {Object} The object returned by the {@link yfiles.graph.IClipboardHelper} methods or null. + * @param clipboardItem The item in the clipboard graph. + * @returns The object returned by the {@link } methods or null. */ getMemento(clipboardItem:yfiles.graph.IModelItem):Object; /** @@ -48576,12 +47567,12 @@ declare namespace system{ * Implementations might delegate to {@link yfiles.graph.GraphCopier#copyPortLocationParameter} to copy the existing parameter or * use the {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} to create a new one. Note that the type of the owner might have changed during the copy operation. *

    - * @param {yfiles.graph.GraphCopier} copier The {@link yfiles.graph.GraphCopier} whose {@link yfiles.graph.GraphCopier#copyPortLocationParameter} method can be used to copy the + * @param copier The {@link } whose {@link #copyPortLocationParameter} method can be used to copy the * existing parameter. - * @param {yfiles.graph.IGraph} graph The {@link yfiles.graph.IGraph} whose {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} can be used to create a new parameter. - * @param {yfiles.graph.IPort} originalPort The port to be copied. - * @param {yfiles.graph.IPortOwner} newOwner The new owner for the port. - * @returns {yfiles.graph.IPortLocationModelParameter} An {@link yfiles.graph.IPortLocationModelParameter} for the copied port. + * @param graph The {@link } whose {@link #nodeDefaults} or {@link #edgeDefaults} can be used to create a new parameter. + * @param originalPort The port to be copied. + * @param newOwner The new owner for the port. + * @returns An {@link } for the copied port. * @protected */ getPortLocationParameter(copier:yfiles.graph.GraphCopier,graph:yfiles.graph.IGraph,originalPort:yfiles.graph.IPort,newOwner:yfiles.graph.IPortOwner):yfiles.graph.IPortLocationModelParameter; @@ -48591,8 +47582,8 @@ declare namespace system{ * Called for {@link yfiles.graph.IBend}s whose edge is not copied to provide a new owner. Might return null if no target for the * given originalBend is found. In this case the bend will not be copied. *

    - * @param {yfiles.graph.IBend} originalBend The bend to be copied. - * @returns {yfiles.graph.IEdge} An {@link yfiles.graph.IEdge} for the bend to be added to or null if the bend should not be copied. + * @param originalBend The bend to be copied. + * @returns An {@link } for the bend to be added to or null if the bend should not be copied. * @protected */ getTargetEdge(originalBend:yfiles.graph.IBend):yfiles.graph.IEdge; @@ -48602,8 +47593,8 @@ declare namespace system{ * Called for {@link yfiles.graph.ILabel}s whose owners are not copied to provide a new owner. Might return null if no target for * the given originalLabel is found. In this case the label will not be copied. *

    - * @param {yfiles.graph.ILabel} originalLabel The label to be copied. - * @returns {yfiles.graph.ILabelOwner} An {@link yfiles.graph.ILabelOwner} for the label to be added to or null if the label should not be copied. + * @param originalLabel The label to be copied. + * @returns An {@link } for the label to be added to or null if the label should not be copied. * @protected */ getTargetLabeledItem(originalLabel:yfiles.graph.ILabel):yfiles.graph.ILabelOwner; @@ -48613,8 +47604,8 @@ declare namespace system{ * Called for {@link yfiles.graph.INode}s to place them inside a group node. Might return null if the given node should be placed * at the root or if the graph is not grouped. *

    - * @param {yfiles.graph.INode} originalNode The node to be copied. - * @returns {yfiles.graph.INode} The new parent group of the node or null if the node should be placed at the root of the hierarchy or if the graph is + * @param originalNode The node to be copied. + * @returns The new parent group of the node or null if the node should be placed at the root of the hierarchy or if the graph is * not grouped. * @see yfiles.graph.GraphClipboard#parentNodeDetection * @protected @@ -48626,9 +47617,9 @@ declare namespace system{ * Called for {@link yfiles.graph.IEdge}s whose source or target ports are not copied to provide a new port. Might return null if * no target for the given originalEdge is found. In this case the edge will not be copied. *

    - * @param {yfiles.graph.IEdge} originalEdge The edge to be copied. - * @param {boolean} atSource Whether to look for a source port. - * @returns {yfiles.graph.IPort} An {@link yfiles.graph.IPort} for the edge to be added to or null if the edge should not be copied. + * @param originalEdge The edge to be copied. + * @param atSource Whether to look for a source port. + * @returns An {@link } for the edge to be added to or null if the edge should not be copied. * @protected */ getTargetPort(originalEdge:yfiles.graph.IEdge,atSource:boolean):yfiles.graph.IPort; @@ -48638,8 +47629,8 @@ declare namespace system{ * Called for {@link yfiles.graph.IPort}s whose owners are not copied to provide a new owner. Might return null if no target for * the given originalPort is found. In this case the port will not be copied. *

    - * @param {yfiles.graph.IPort} originalPort The port to be copied. - * @returns {yfiles.graph.IPortOwner} An {@link yfiles.graph.IPortOwner} for the port to be added to or null if the port should not be copied. + * @param originalPort The port to be copied. + * @returns An {@link } for the port to be added to or null if the port should not be copied. * @protected */ getTargetPortOwner(originalPort:yfiles.graph.IPort):yfiles.graph.IPortOwner; @@ -48649,30 +47640,43 @@ declare namespace system{ * A dummy item is used to keep {@link yfiles.graph.IModelItem}s which cannot exist without an owner in the {@link yfiles.graph.GraphClipboard#clipboardGraph} (e.g. * {@link yfiles.graph.ILabel}s). *

    - * @param {yfiles.graph.IModelItem} item The item to test. - * @returns {boolean} true if the item is a "dummy" item. + * @param item The item to test. + * @returns true if the item is a "dummy" item. */ isDummy(item:yfiles.graph.IModelItem):boolean; /** * Whether the given item exists in a folding state of its owner. - * @param {yfiles.graph.IModelItem} owner The owner of the given item. - * @param {yfiles.graph.IModelItem} item An {@link yfiles.graph.ILabel}, {@link yfiles.graph.IPort}, or {@link yfiles.graph.IBend}. - * @returns {boolean} true if the given item exists in a folding state. + * @param owner The owner of the given item. + * @param item An {@link }, {@link }, or {@link }. + * @returns true if the given item exists in a folding state. * @protected * @static */ static isFoldingStateElement(owner:yfiles.graph.IModelItem,item:yfiles.graph.IModelItem):boolean; /** - * A callback that will be invoked for each item that has been copied into the clipboard graph in response to a {@link yfiles.graph.GraphClipboard#copy} + * Calls {@link yfiles.graph.GraphCopier#copy} on the current {@link yfiles.graph.GraphClipboard#toClipboardCopier} instance or {@link yfiles.graph.GraphClipboard#fromClipboardCopier} instance, depending on whether the targetGraph is the {@link yfiles.graph.GraphClipboard#clipboardGraph} + * instance. + * @param sourceGraph The source graph to pass to {@link #copy} + * @param filter The predicate to pass on. + * @param targetGraph The target graph to pass on. + * @param targetRootNode The node to use as the root node in the grouped targetGraph. + * @param elementCopiedCallback The delegate to pass on. For each element that is copied during the operation to the clipboard, this callback will be + * passed the original and the copy of the item. In case the sourceGraph is a {@link #views folding view graph} both elements are passed + * as {@link #masterGraph master} elements or {@link #getFolderNodeState folding state elements} if a master element does not exist. + * @protected + */ + onCopy(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,targetRootNode:yfiles.graph.INode,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; + /** + * A callback that will be invoked for each item that has been copied into the clipboard graph in response to a {@link yfiles.graph.GraphClipboard#onCopy} * operation. *

    * This implementation will {@link yfiles.graph.ILookup#lookup} a {@link yfiles.graph.IClipboardHelper} for each item in the original graph * and remember the memento retrieved by the {@link yfiles.graph.IClipboardHelper#copy} method for later use during the {@link yfiles.graph.GraphClipboard#onElementPasted} * operation. *

    - * @param {yfiles.graph.IModelItem} original The original element from the source graph instance. If the source graph is a managed folding view, this is always a + * @param original The original element from the source graph instance. If the source graph is a managed folding view, this is always a * master item. - * @param {yfiles.graph.IModelItem} copy The copy from the clipboard graph. + * @param copy The copy from the clipboard graph. * @protected */ onElementCopied(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem):void; @@ -48684,9 +47688,9 @@ declare namespace system{ * and remember the memento retrieved by the {@link yfiles.graph.IClipboardHelper#cut} method for later use during the {@link yfiles.graph.GraphClipboard#onElementPasted} * operation. *

    - * @param {yfiles.graph.IModelItem} original The original element from the source graph instance. If the source graph is a managed folding view, this is always a + * @param original The original element from the source graph instance. If the source graph is a managed folding view, this is always a * master item. - * @param {yfiles.graph.IModelItem} copy The copy from the clipboard graph. + * @param copy The copy from the clipboard graph. * @protected */ onElementCut(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem):void; @@ -48696,34 +47700,34 @@ declare namespace system{ *

    * This method will use a previously stored {@link yfiles.graph.IClipboardHelper} to let it {@link yfiles.graph.IClipboardHelper#paste finish} its work. *

    - * @param {yfiles.graph.IModelItem} original The original element from the clipboard graph instance. If the target graph is a managed folding view, this is always a + * @param original The original element from the clipboard graph instance. If the target graph is a managed folding view, this is always a * master item. - * @param {yfiles.graph.IModelItem} copy The copy from the target graph. + * @param copy The copy from the target graph. * @protected */ onElementPasted(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem):void; /** * Calls {@link yfiles.graph.GraphCopier#copy} on the current {@link yfiles.graph.GraphClipboard#fromClipboardCopier} instance, depending on whether the targetGraph is the {@link yfiles.graph.GraphClipboard#clipboardGraph} instance. - * @param {yfiles.graph.IGraph} sourceGraph The source graph to pass to {@link yfiles.graph.GraphCopier#copy} - * @param {function(yfiles.graph.IModelItem): boolean} filter The predicate to pass on. - * @param {yfiles.graph.IGraph} targetGraph The target graph to pass on. - * @param {yfiles.graph.INode} targetRootNode The node to use as the root node in the grouped targetGraph. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementCopiedCallback The delegate to pass on. For each element that is copied during the operation to the clipboard, this callback will be - * passed the original and the copy of the item. In case the targetGraph is a {@link yfiles.graph.FoldingManager#views folding view graph} the original element is - * passed as {@link yfiles.graph.FoldingManager#masterGraph master} elements or {@link yfiles.graph.FoldingManager#getFolderNodeState folding state elements} if a master element does not exist. The copied element is always + * @param sourceGraph The source graph to pass to {@link #copy} + * @param filter The predicate to pass on. + * @param targetGraph The target graph to pass on. + * @param targetRootNode The node to use as the root node in the grouped targetGraph. + * @param elementCopiedCallback The delegate to pass on. For each element that is copied during the operation to the clipboard, this callback will be + * passed the original and the copy of the item. In case the targetGraph is a {@link #views folding view graph} the original element is + * passed as {@link #masterGraph master} elements or {@link #getFolderNodeState folding state elements} if a master element does not exist. The copied element is always * part of the targetGraph. - * @param {function(yfiles.graph.IModelItem): boolean} targetFilter This predicate is used to determine which {@link yfiles.graph.INode}s and {@link yfiles.graph.IEdge}s can be used as targets for paste + * @param targetFilter This predicate is used to determine which {@link }s and {@link }s can be used as targets for paste * operations, e.g. if a labels or ports are copied without their owners. If null all model items can be used as targets. * @protected */ - paste(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,targetRootNode:yfiles.graph.INode,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void,targetFilter:(obj:yfiles.graph.IModelItem)=>boolean):void; + onPaste(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,targetRootNode:yfiles.graph.INode,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void,targetFilter:(obj:yfiles.graph.IModelItem)=>boolean):void; /** * Pastes the {@link yfiles.graph.GraphClipboard#clipboardGraph}'s contents into the targetGraph, selecting all pasted elements. *

    * The actual work of this method is delegated to the {@link yfiles.graph.GraphClipboard#fromClipboardCopier}'s {@link yfiles.graph.GraphCopier#copy} method. *

    - * @param {yfiles.graph.IGraph} targetGraph The graph to paste into. - * @param {yfiles.view.IGraphSelection} selection The selection model to set the selection on. + * @param targetGraph The graph to paste into. + * @param selection The selection model to set the selection on. */ paste(targetGraph:yfiles.graph.IGraph,selection:yfiles.view.IGraphSelection):void; /** @@ -48735,16 +47739,16 @@ declare namespace system{ * Providing a valid targetFilter allows for pasting {@link yfiles.graph.ILabel}s, {@link yfiles.graph.IPort}s, and * {@link yfiles.graph.IEdge}s without valid owners. *

    - * @param {yfiles.input.IInputModeContext} context A valid input mode context. Passing a valid input mode context is required for keeping orthogonal edges at group nodes + * @param context A valid input mode context. Passing a valid input mode context is required for keeping orthogonal edges at group nodes * whose size might be adjusted after the paste operation. - * @param {yfiles.graph.IGraph} targetGraph The graph to paste the contents in. - * @param {function(yfiles.graph.IModelItem): boolean} filter The filter to apply to the clipboard graph. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementPasted The callback to use for each element that has been pasted. For each element that is copied during the operation to the - * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link yfiles.graph.FoldingManager#views folding view graph} - * the original element is passed as {@link yfiles.graph.FoldingManager#masterGraph master} elements or {@link yfiles.graph.FoldingManager#getFolderNodeState folding state elements} if a master element does not exist. The + * @param targetGraph The graph to paste the contents in. + * @param filter The filter to apply to the clipboard graph. + * @param elementPasted The callback to use for each element that has been pasted. For each element that is copied during the operation to the + * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link #views folding view graph} + * the original element is passed as {@link #masterGraph master} elements or {@link #getFolderNodeState folding state elements} if a master element does not exist. The * copied element is always part of the targetGraph. - * @param {function(yfiles.graph.IModelItem): boolean} targetFilter A filter which returns true for model items which can be used as target for clipboard items which need an owner (e.g. - * {@link yfiles.graph.ILabel}s which were copied without their owner). If null all model items can be used as targets. + * @param targetFilter A filter which returns true for model items which can be used as target for clipboard items which need an owner (e.g. + * {@link }s which were copied without their owner). If null all model items can be used as targets. */ paste(context:yfiles.input.IInputModeContext,targetGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,elementPasted:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void,targetFilter:(obj:yfiles.graph.IModelItem)=>boolean):void; /** @@ -48753,11 +47757,11 @@ declare namespace system{ * For each element pasted into the graph the elementPasted delegate will be invoked and the {@link yfiles.graph.GraphClipboard#onElementPasted} * method will be called. The actual work of this method is delegated to the {@link yfiles.graph.GraphClipboard#fromClipboardCopier}'s {@link yfiles.graph.GraphCopier#copy} method. *

    - * @param {yfiles.graph.IGraph} targetGraph The graph to paste the contents in. - * @param {function(yfiles.graph.IModelItem): boolean} [filter=null] The filter to apply to the clipboard graph. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} [elementPasted=null] The callback to use for each element that has been pasted. For each element that is copied during the operation to the - * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link yfiles.graph.FoldingManager#views folding view graph} - * the original element is passed as {@link yfiles.graph.FoldingManager#masterGraph master} elements or {@link yfiles.graph.FoldingManager#getFolderNodeState folding state elements} if a master element does not exist. The + * @param targetGraph The graph to paste the contents in. + * @param [filter=null] The filter to apply to the clipboard graph. + * @param [elementPasted=null] The callback to use for each element that has been pasted. For each element that is copied during the operation to the + * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link #views folding view graph} + * the original element is passed as {@link #masterGraph master} elements or {@link #getFolderNodeState folding state elements} if a master element does not exist. The * copied element is always part of the targetGraph. */ paste(targetGraph:yfiles.graph.IGraph,filter?:(obj:yfiles.graph.IModelItem)=>boolean,elementPasted?:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; @@ -48768,18 +47772,18 @@ declare namespace system{ * method will be called. The actual work of this method is delegated to the {@link yfiles.graph.GraphClipboard#fromClipboardCopier}'s {@link yfiles.graph.GraphCopier#copy} method. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IGraph} options.targetGraph The graph to paste the contents in. - * @param {function(yfiles.graph.IModelItem): boolean} [options.filter=null] The filter to apply to the clipboard graph. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} [options.elementPasted=null] The callback to use for each element that has been pasted. For each element that is copied during the operation to the - * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link yfiles.graph.FoldingManager#views folding view graph} - * the original element is passed as {@link yfiles.graph.FoldingManager#masterGraph master} elements or {@link yfiles.graph.FoldingManager#getFolderNodeState folding state elements} if a master element does not exist. The + * @param options.targetGraph The graph to paste the contents in. + * @param [options.filter=null] The filter to apply to the clipboard graph. + * @param [options.elementPasted=null] The callback to use for each element that has been pasted. For each element that is copied during the operation to the + * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link #views folding view graph} + * the original element is passed as {@link #masterGraph master} elements or {@link #getFolderNodeState folding state elements} if a master element does not exist. The * copied element is always part of the targetGraph. */ paste(options:{targetGraph:yfiles.graph.IGraph,filter?:(obj:yfiles.graph.IModelItem)=>boolean,elementPasted?:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void}):void; /** * Removes elements from the graph based on a predicate. - * @param {yfiles.graph.IGraph} sourceGraph The graph to remove elements from. - * @param {function(yfiles.graph.IModelItem): boolean} predicate The predicate that decides which elements to remove. + * @param sourceGraph The graph to remove elements from. + * @param predicate The predicate that decides which elements to remove. * @see yfiles.graph.GraphClipboard#cut * @protected */ @@ -48894,7 +47898,7 @@ declare namespace system{ * Technically owning elements are still part of the clipboard as * {@link yfiles.graph.GraphClipboard#isDummy dummy elements}, but these elements will not be pasted to the target during paste or duplicate operations. *

    - * @default 63 + * @default yfiles.graph.GraphItemTypes.ALL * @type {yfiles.graph.GraphItemTypes} */ independentCopyItems:yfiles.graph.GraphItemTypes; @@ -48911,7 +47915,7 @@ declare namespace system{ *

    * The default is {@link yfiles.graph.GraphItemTypes#ALL}. *

    - * @default 63 + * @default yfiles.graph.GraphItemTypes.ALL * @type {yfiles.graph.GraphItemTypes} */ copyItems:yfiles.graph.GraphItemTypes; @@ -48927,42 +47931,42 @@ declare namespace system{ /** * Adds the given listener for the ElementsCut event that occurs when the {@link yfiles.graph.GraphClipboard#cut} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphClipboard#removeElementsCutListener */ addElementsCutListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the ElementsCut event that occurs when the {@link yfiles.graph.GraphClipboard#cut} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphClipboard#addElementsCutListener */ removeElementsCutListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Adds the given listener for the ElementsCopied event that occurs when the {@link yfiles.graph.GraphClipboard#copy} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphClipboard#removeElementsCopiedListener */ addElementsCopiedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the ElementsCopied event that occurs when the {@link yfiles.graph.GraphClipboard#copy} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphClipboard#addElementsCopiedListener */ removeElementsCopiedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Adds the given listener for the ElementsPasted event that occurs when the {@link yfiles.graph.GraphClipboard#paste} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphClipboard#removeElementsPastedListener */ addElementsPastedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the ElementsPasted event that occurs when the {@link yfiles.graph.GraphClipboard#paste} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphClipboard#addElementsPastedListener */ removeElementsPastedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -49007,20 +48011,20 @@ declare namespace system{ *

    * Instances of this class can be used in {@link yfiles.graph.GraphClipboard}, e.g. *

    - * @class yfiles.graph.GraphCopier + * @class */ export interface GraphCopier extends Object{} export class GraphCopier { constructor(); /** * Callback method that adds a bend to the targetEdge in the targetGraph as a copy of the source bend. - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.IEdge} targetEdge The target edge to add the bend to. - * @param {yfiles.graph.IBend} sourceBend The source bend to copy the values from. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied bend. - * @param {number} index The index to add the bend at. - * @returns {yfiles.graph.IBend} The newly created bend. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param targetEdge The target edge to add the bend to. + * @param sourceBend The source bend to copy the values from. + * @param offset The offset to apply to the copied bend. + * @param index The index to add the bend at. + * @returns The newly created bend. * @protected */ addBend(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,targetEdge:yfiles.graph.IEdge,sourceBend:yfiles.graph.IBend,offset:yfiles.geometry.Point,index:number):yfiles.graph.IBend; @@ -49030,11 +48034,11 @@ declare namespace system{ * This implementation uses {@link yfiles.graph.GraphCopier#copyLabelLayoutParameter}, {@link yfiles.graph.GraphCopier#copyLabelStyle}, and * {@link yfiles.graph.GraphCopier#copyLabelTag} as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.ILabelOwner} targetOwner The item owner in the target graph to add the label to. - * @param {yfiles.graph.ILabel} sourceLabel The source label in the source graph. - * @returns {yfiles.graph.ILabel} The newly created label. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param targetOwner The item owner in the target graph to add the label to. + * @param sourceLabel The source label in the source graph. + * @returns The newly created label. * @protected */ addLabel(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,targetOwner:yfiles.graph.ILabelOwner,sourceLabel:yfiles.graph.ILabel):yfiles.graph.ILabel; @@ -49045,11 +48049,11 @@ declare namespace system{ * {@link yfiles.graph.GraphCopier#copyPortLocationParameter}, {@link yfiles.graph.GraphCopier#copyPortStyle}, and {@link yfiles.graph.GraphCopier#copyPortTag} * as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.IPortOwner} targetOwner The port owner in the target graph to add the port to. - * @param {yfiles.graph.IPort} sourcePort The source port in the source graph. - * @returns {yfiles.graph.IPort} The newly created port. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param targetOwner The port owner in the target graph to add the port to. + * @param sourcePort The source port in the source graph. + * @returns The newly created port. */ addPort(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,targetOwner:yfiles.graph.IPortOwner,sourcePort:yfiles.graph.IPort):yfiles.graph.IPort; /** @@ -49059,8 +48063,8 @@ declare namespace system{ * is called. *

    * Type parameter T: The type of the item to cache. - * @param {T} original The original item. - * @param {T} copy The copy of the item. + * @param original The original item. + * @param copy The copy of the item. * @see yfiles.graph.GraphCopier#getOrCreateCopy * @protected * @template T @@ -49079,13 +48083,13 @@ declare namespace system{ *

    * For each element that has been copied, the elementCopiedCallback will be invoked. *

    - * @param {yfiles.graph.IGraph} sourceGraph The graph to copy the elements from. - * @param {function(yfiles.graph.IModelItem): boolean} filter The filter that decides which elements to copy. - * @param {yfiles.graph.IGraph} targetGraph The graph to copy the elements to. - * @param {yfiles.graph.INode} targetRootNode The group node that should act as the root node for the pasted elements. May be null if there is no such node. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied items. Only nodes and bends will be offset explicitly, while other items will move + * @param sourceGraph The graph to copy the elements from. + * @param filter The filter that decides which elements to copy. + * @param targetGraph The graph to copy the elements to. + * @param targetRootNode The group node that should act as the root node for the pasted elements. May be null if there is no such node. + * @param offset The offset to apply to the copied items. Only nodes and bends will be offset explicitly, while other items will move * implicitly. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementCopiedCallback A delegate to invoke for each element being copied. + * @param elementCopiedCallback A delegate to invoke for each element being copied. * @throws {Stubs.Exceptions.ArgumentError} if targetRootNode is not in targetGraph */ copy(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,targetRootNode:yfiles.graph.INode,offset:yfiles.geometry.Point,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; @@ -49095,12 +48099,12 @@ declare namespace system{ * For each element that has been copied, the elementCopiedCallback will be invoked. This method actually delegates to {@link yfiles.graph.GraphCopier#copy} * and provides the root as the "targetGraph" parameter if there is a hierarchy associated with targetGraph. *

    - * @param {yfiles.graph.IGraph} sourceGraph The graph to copy the elements from. - * @param {function(yfiles.graph.IModelItem): boolean} filter The filter that decides which elements to copy. - * @param {yfiles.graph.IGraph} targetGraph The graph to copy the elements to. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied items. Only nodes and bends will be offset explicitly, while other items will move + * @param sourceGraph The graph to copy the elements from. + * @param filter The filter that decides which elements to copy. + * @param targetGraph The graph to copy the elements to. + * @param offset The offset to apply to the copied items. Only nodes and bends will be offset explicitly, while other items will move * implicitly. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementCopiedCallback A delegate to invoke for each element being copied. + * @param elementCopiedCallback A delegate to invoke for each element being copied. */ copy(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,offset:yfiles.geometry.Point,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; /** @@ -49109,8 +48113,8 @@ declare namespace system{ * This method actually delegates to {@link yfiles.graph.GraphCopier#copy} and provides the root as the "targetGraph" parameter if * there is a hierarchy associated with targetGraph. *

    - * @param {yfiles.graph.IGraph} sourceGraph The graph to copy. - * @param {yfiles.graph.IGraph} targetGraph The graph to copy to. + * @param sourceGraph The graph to copy. + * @param targetGraph The graph to copy to. */ copy(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph):void; /** @@ -49120,12 +48124,12 @@ declare namespace system{ * {@link yfiles.graph.IPort}s or {@link yfiles.graph.ILabel}s. This implementation uses {@link yfiles.graph.GraphCopier#copyEdgeStyle} and {@link yfiles.graph.GraphCopier#copyEdgeTag} * as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.IEdge} sourceEdge The edge in the source graph. - * @param {yfiles.graph.IPort} targetSourcePort The new source port in the target graph. - * @param {yfiles.graph.IPort} targetTargetPort The new target port in the target graph. - * @returns {yfiles.graph.IEdge} The newly created edge. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param sourceEdge The edge in the source graph. + * @param targetSourcePort The new source port in the target graph. + * @param targetTargetPort The new target port in the target graph. + * @returns The newly created edge. * @protected */ copyEdge(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,sourceEdge:yfiles.graph.IEdge,targetSourcePort:yfiles.graph.IPort,targetTargetPort:yfiles.graph.IPort):yfiles.graph.IEdge; @@ -49134,9 +48138,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the edge. - * @param {yfiles.graph.IEdge} edge The edge to copy the style from. - * @returns {yfiles.styles.IEdgeStyle} The style to apply for the copy. + * @param graph The graph that contains the edge. + * @param edge The edge to copy the style from. + * @returns The style to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyEdgeStyle(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge):yfiles.styles.IEdgeStyle; @@ -49145,9 +48149,9 @@ declare namespace system{ *

    * This implementation simply delegates to {@link yfiles.graph.GraphCopier#copyTag} *

    - * @param {yfiles.graph.IEdge} edge The old edge. - * @param {Object} tag The tag to copy. - * @returns {Object} The copy of the tag. + * @param edge The old edge. + * @param tag The tag to copy. + * @returns The copy of the tag. * @protected */ copyEdgeTag(edge:yfiles.graph.IEdge,tag:Object):Object; @@ -49157,12 +48161,12 @@ declare namespace system{ * This implementation does not need to copy {@link yfiles.graph.IPort}s or {@link yfiles.graph.ILabel}s. This implementation uses {@link yfiles.graph.GraphCopier#copyNodeStyle} * and {@link yfiles.graph.GraphCopier#copyNodeTag} as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.INode} sourceGroupNode The source node to create a copy of in the targetGraph. - * @param {yfiles.graph.INode} targetParent The parent of the group node in the target graph. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied node. - * @returns {yfiles.graph.INode} The newly created node. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param sourceGroupNode The source node to create a copy of in the targetGraph. + * @param targetParent The parent of the group node in the target graph. + * @param offset The offset to apply to the copied node. + * @returns The newly created node. * @protected */ copyGroupNode(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,sourceGroupNode:yfiles.graph.INode,targetParent:yfiles.graph.INode,offset:yfiles.geometry.Point):yfiles.graph.INode; @@ -49171,9 +48175,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the label. - * @param {yfiles.graph.ILabel} label The label to copy the label model parameter from. - * @returns {yfiles.graph.ILabelModelParameter} The copy of the parameter to apply for the copy. + * @param graph The graph that contains the label. + * @param label The label to copy the label model parameter from. + * @returns The copy of the parameter to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyLabelLayoutParameter(graph:yfiles.graph.IGraph,label:yfiles.graph.ILabel):yfiles.graph.ILabelModelParameter; @@ -49182,9 +48186,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the label. - * @param {yfiles.graph.ILabel} label The label to copy the style from. - * @returns {yfiles.styles.ILabelStyle} The style to apply for the copy. + * @param graph The graph that contains the label. + * @param label The label to copy the style from. + * @returns The style to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyLabelStyle(graph:yfiles.graph.IGraph,label:yfiles.graph.ILabel):yfiles.styles.ILabelStyle; @@ -49193,9 +48197,9 @@ declare namespace system{ *

    * This implementation simply delegates to {@link yfiles.graph.GraphCopier#copyTag} *

    - * @param {yfiles.graph.ILabel} label The old label. - * @param {Object} tag The tag to copy. - * @returns {Object} The copy of the tag. + * @param label The old label. + * @param tag The tag to copy. + * @returns The copy of the tag. */ copyLabelTag(label:yfiles.graph.ILabel,tag:Object):Object; /** @@ -49204,12 +48208,12 @@ declare namespace system{ * This implementation does not need to copy {@link yfiles.graph.IPort}s or {@link yfiles.graph.ILabel}s. This implementation uses {@link yfiles.graph.GraphCopier#copyNodeStyle} * and {@link yfiles.graph.GraphCopier#copyNodeTag} as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.INode} targetParent The parent of the group node in the target graph. - * @param {yfiles.graph.INode} node The source node to create a copy of in the targetGraph. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied node. - * @returns {yfiles.graph.INode} The newly created node. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param targetParent The parent of the group node in the target graph. + * @param node The source node to create a copy of in the targetGraph. + * @param offset The offset to apply to the copied node. + * @returns The newly created node. * @protected */ copyNode(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,node:yfiles.graph.INode,targetParent:yfiles.graph.INode,offset:yfiles.geometry.Point):yfiles.graph.INode; @@ -49219,11 +48223,11 @@ declare namespace system{ * This implementation does not need to copy {@link yfiles.graph.IPort}s or {@link yfiles.graph.ILabel}s. This implementation uses {@link yfiles.graph.GraphCopier#copyNodeStyle} * and {@link yfiles.graph.GraphCopier#copyNodeTag} as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.INode} node The source node to create a copy of in the targetGraph. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied node. - * @returns {yfiles.graph.INode} The newly created node. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param node The source node to create a copy of in the targetGraph. + * @param offset The offset to apply to the copied node. + * @returns The newly created node. * @protected */ copyNode(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,node:yfiles.graph.INode,offset:yfiles.geometry.Point):yfiles.graph.INode; @@ -49232,9 +48236,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the node. - * @param {yfiles.graph.INode} node The node to copy the style from. - * @returns {yfiles.styles.INodeStyle} The style to apply for the copy. + * @param graph The graph that contains the node. + * @param node The node to copy the style from. + * @returns The style to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyNodeStyle(graph:yfiles.graph.IGraph,node:yfiles.graph.INode):yfiles.styles.INodeStyle; @@ -49243,9 +48247,9 @@ declare namespace system{ *

    * This implementation simply delegates to {@link yfiles.graph.GraphCopier#copyTag} *

    - * @param {yfiles.graph.INode} node The old node. - * @param {Object} tag The tag to copy. - * @returns {Object} The copy of the tag. + * @param node The old node. + * @param tag The tag to copy. + * @returns The copy of the tag. * @protected */ copyNodeTag(node:yfiles.graph.INode,tag:Object):Object; @@ -49254,9 +48258,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the port. - * @param {yfiles.graph.IPort} port The port to copy the model parameter from. - * @returns {yfiles.graph.IPortLocationModelParameter} The copy of the parameter to apply for the copy. + * @param graph The graph that contains the port. + * @param port The port to copy the model parameter from. + * @returns The copy of the parameter to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyPortLocationParameter(graph:yfiles.graph.IGraph,port:yfiles.graph.IPort):yfiles.graph.IPortLocationModelParameter; @@ -49265,9 +48269,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the port. - * @param {yfiles.graph.IPort} port The port to copy the style from. - * @returns {yfiles.styles.IPortStyle} The style to apply for the copy. + * @param graph The graph that contains the port. + * @param port The port to copy the style from. + * @returns The style to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyPortStyle(graph:yfiles.graph.IGraph,port:yfiles.graph.IPort):yfiles.styles.IPortStyle; @@ -49276,9 +48280,9 @@ declare namespace system{ *

    * This implementation simply delegates to {@link yfiles.graph.GraphCopier#copyTag} *

    - * @param {yfiles.graph.IPort} port The old port. - * @param {Object} tag The tag to copy. - * @returns {Object} The copy of the tag. + * @param port The old port. + * @param tag The tag to copy. + * @returns The copy of the tag. * @protected */ copyPortTag(port:yfiles.graph.IPort,tag:Object):Object; @@ -49288,9 +48292,9 @@ declare namespace system{ * This implementation will try to {@link yfiles.lang.ICloneable#clone} the tag if the {@link yfiles.graph.GraphCopier#clone} property has the {@link yfiles.graph.CloneTypes#TAGS} * flag set. If this is not the case or the tag is not {@link yfiles.lang.ICloneable}, the instance will be returned. *

    - * @param {yfiles.graph.IModelItem} owner The old owner of the tag. - * @param {Object} tag The tag to copy. - * @returns {Object} A copy of the tag. + * @param owner The old owner of the tag. + * @param tag The tag to copy. + * @returns A copy of the tag. */ copyTag(owner:yfiles.graph.IModelItem,tag:Object):Object; /** @@ -49301,9 +48305,9 @@ declare namespace system{ * return value that is the copied value of the original. *

    * Type parameter T: The type of the item to copy. - * @param {yfiles.lang.Class} itemType The type of the item to copy. - * @param {T} original The original item. - * @returns {T} The copy of original or {@link yfiles.graph.GraphCopier#NO_COPY} if no copy has been found. + * @param itemType The type of the item to copy. + * @param original The original item. + * @returns The copy of original or {@link #NO_COPY} if no copy has been found. * @see yfiles.graph.GraphCopier#cacheCopy * @see yfiles.graph.GraphCopier#getOrCreateCopy * @protected @@ -49317,10 +48321,10 @@ declare namespace system{ * If there is a cache miss, the delegate will be used to create the copy and the copy will be placed into the {@link yfiles.graph.GraphCopier#cacheCopy cache}. *

    * Type parameter T: The type of the item to copy. - * @param {yfiles.lang.Class} tType The type of the item to copy. - * @param {T} original The original item. - * @param {function(T): T} copyDelegate The copy delegate to create the copy. - * @returns {T} A copy of the original, either cached, or newly created and then cached. + * @param tType The type of the item to copy. + * @param original The original item. + * @param copyDelegate The copy delegate to create the copy. + * @returns A copy of the original, either cached, or newly created and then cached. * @template T */ getOrCreateCopy(tType:yfiles.lang.Class,original:T,copyDelegate:(arg:T)=>T):T; @@ -49329,8 +48333,8 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addBendCopiedListener BendCopied} event. *

    - * @param {yfiles.graph.IBend} original The original of the copied bend. - * @param {yfiles.graph.IBend} copy The copied bend. + * @param original The original of the copied bend. + * @param copy The copied bend. */ onBendCopied(original:yfiles.graph.IBend,copy:yfiles.graph.IBend):void; /** @@ -49338,8 +48342,8 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addEdgeCopiedListener EdgeCopied} event. *

    - * @param {yfiles.graph.IEdge} original The original of the copied edge. - * @param {yfiles.graph.IEdge} copy The copied edge. + * @param original The original of the copied edge. + * @param copy The copied edge. * @protected */ onEdgeCopied(original:yfiles.graph.IEdge,copy:yfiles.graph.IEdge):void; @@ -49348,8 +48352,8 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addGraphCopiedListener GraphCopied} event. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph from which the elements have been copied. - * @param {yfiles.graph.IGraph} targetGraph The graph to which the elements have been copied. + * @param sourceGraph The source graph from which the elements have been copied. + * @param targetGraph The graph to which the elements have been copied. * @protected */ onGraphCopied(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph):void; @@ -49358,8 +48362,8 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addLabelCopiedListener LabelCopied} event. *

    - * @param {yfiles.graph.ILabel} original The original of the copied label. - * @param {yfiles.graph.ILabel} copy The copied label. + * @param original The original of the copied label. + * @param copy The copied label. */ onLabelCopied(original:yfiles.graph.ILabel,copy:yfiles.graph.ILabel):void; /** @@ -49367,14 +48371,14 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addNodeCopiedListener NodeCopied} event. *

    - * @param {yfiles.graph.INode} original The original of the copied node. - * @param {yfiles.graph.INode} copy The copied node. + * @param original The original of the copied node. + * @param copy The copied node. * @protected */ onNodeCopied(original:yfiles.graph.INode,copy:yfiles.graph.INode):void; /** * Emits the {@link yfiles.graph.GraphCopier#addObjectCopiedListener ObjectCopied} event. - * @param {yfiles.graph.ItemCopiedEventArgs.} evt The argument to use. + * @param evt The argument to use. * @protected */ onObjectCopied(evt:yfiles.graph.ItemCopiedEventArgs):void; @@ -49383,8 +48387,8 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addPortCopiedListener PortCopied} event. *

    - * @param {yfiles.graph.IPort} original The original of the copied port. - * @param {yfiles.graph.IPort} copy The copied port. + * @param original The original of the copied port. + * @param copy The copied port. */ onPortCopied(original:yfiles.graph.IPort,copy:yfiles.graph.IPort):void; /** @@ -49451,7 +48455,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeNodeCopiedListener */ addNodeCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49468,7 +48472,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addNodeCopiedListener */ removeNodeCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49489,7 +48493,7 @@ declare namespace system{ * For {@link yfiles.graph.FoldingManager#getFoldingEdgeState folding edge} bends, their view state representation is passed. These elements are neither part of the {@link yfiles.graph.FoldingManager#masterGraph} nor the * {@link yfiles.graph.FoldingManager#views view graph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeBendCopiedListener */ addBendCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49510,7 +48514,7 @@ declare namespace system{ * For {@link yfiles.graph.FoldingManager#getFoldingEdgeState folding edge} bends, their view state representation is passed. These elements are neither part of the {@link yfiles.graph.FoldingManager#masterGraph} nor the * {@link yfiles.graph.FoldingManager#views view graph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addBendCopiedListener */ removeBendCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49524,7 +48528,7 @@ declare namespace system{ * This event will not be triggered for the graph items themselves and will not be triggered if the object reference is * reused, i.e. it will only be triggered if the old and new references actually differ. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeObjectCopiedListener */ addObjectCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49538,7 +48542,7 @@ declare namespace system{ * This event will not be triggered for the graph items themselves and will not be triggered if the object reference is * reused, i.e. it will only be triggered if the old and new references actually differ. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addObjectCopiedListener */ removeObjectCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49555,7 +48559,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeEdgeCopiedListener */ addEdgeCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49572,7 +48576,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addEdgeCopiedListener */ removeEdgeCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49589,7 +48593,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removePortCopiedListener */ addPortCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49606,7 +48610,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addPortCopiedListener */ removePortCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49627,7 +48631,7 @@ declare namespace system{ * For {@link yfiles.graph.FoldingManager#getFoldingEdgeState folding edge} or dummy node labels, their view state representation is passed. These elements are neither part of the * {@link yfiles.graph.FoldingManager#masterGraph} nor the {@link yfiles.graph.FoldingManager#views view graph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeLabelCopiedListener */ addLabelCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49648,7 +48652,7 @@ declare namespace system{ * For {@link yfiles.graph.FoldingManager#getFoldingEdgeState folding edge} or dummy node labels, their view state representation is passed. These elements are neither part of the * {@link yfiles.graph.FoldingManager#masterGraph} nor the {@link yfiles.graph.FoldingManager#views view graph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addLabelCopiedListener */ removeLabelCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49665,7 +48669,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy target graph} is the {@link yfiles.graph.FoldingManager#masterGraph master graph} of the folding view. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeGraphCopiedListener */ addGraphCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49682,7 +48686,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy target graph} is the {@link yfiles.graph.FoldingManager#masterGraph master graph} of the folding view. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addGraphCopiedListener */ removeGraphCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49699,7 +48703,7 @@ declare namespace system{ * events. This event holds references to the {@link yfiles.graph.ItemCopiedEventArgs.#original original} of the copied item and the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied item} itself. *

    * Type parameter T: The logical base type of the copied item. - * @class yfiles.graph.ItemCopiedEventArgs. + * @class * @extends {yfiles.lang.EventArgs} * @template T */ @@ -49707,9 +48711,8 @@ declare namespace system{ export class ItemCopiedEventArgs { /** * Creates a new argument for the given item and its original. - * @param {T} original The {@link yfiles.graph.ItemCopiedEventArgs.#original original} of the copied item. - * @param {T} copy The {@link yfiles.graph.ItemCopiedEventArgs.#copy copied item}. - * @constructor + * @param original The {@link #original original} of the copied item. + * @param copy The {@link #copy copied item}. */ constructor(original:T,copy:T); /** @@ -49741,15 +48744,14 @@ declare namespace system{ * @see yfiles.graph.PortDecorator * @see yfiles.graph.GraphDecorator#bendDecorator * @see yfiles.graph.BendDecorator - * @class yfiles.graph.GraphDecorator + * @class * @final */ export interface GraphDecorator extends Object{} export class GraphDecorator { /** * Initializes a new instance of the {@link yfiles.graph.GraphDecorator} class. - * @param {yfiles.graph.IGraph} graph The graph. - * @constructor + * @param graph The graph. */ constructor(graph:yfiles.graph.IGraph); /** @@ -49815,24 +48817,23 @@ declare namespace system{ *

    * @see yfiles.graph.GraphDecorator * @see yfiles.graph.LookupDecorator. - * @class yfiles.graph.LabelDecorator + * @class * @final */ export interface LabelDecorator extends Object{} export class LabelDecorator { /** * Initializes a new instance of the {@link yfiles.graph.LabelDecorator} class. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator to use, which can be null. - * @constructor + * @param decorator The decorator to use, which can be null. */ constructor(decorator:yfiles.graph.ILookupDecorator); /** * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.ILabel}s that can be used to decorate TInterface types of the labels. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {yfiles.lang.Class} type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean):yfiles.graph.LookupDecorator; @@ -49840,10 +48841,10 @@ declare namespace system{ * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.ILabel}s that can be used to decorate TInterface types of the labels. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. * @param {Object} options The parameters to pass. - * @param {yfiles.lang.Class} options.type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param options.type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(options:{type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean}):yfiles.graph.LookupDecorator; @@ -50013,24 +49014,23 @@ declare namespace system{ *

    * @see yfiles.graph.GraphDecorator * @see yfiles.graph.LookupDecorator. - * @class yfiles.graph.EdgeDecorator + * @class * @final */ export interface EdgeDecorator extends Object{} export class EdgeDecorator { /** * Initializes a new instance of the {@link yfiles.graph.EdgeDecorator} class. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator to use, which can be null. - * @constructor + * @param decorator The decorator to use, which can be null. */ constructor(decorator:yfiles.graph.ILookupDecorator); /** * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IEdge}s that can be used to decorate TInterface types of the edges. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {yfiles.lang.Class} type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean):yfiles.graph.LookupDecorator; @@ -50038,10 +49038,10 @@ declare namespace system{ * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IEdge}s that can be used to decorate TInterface types of the edges. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. * @param {Object} options The parameters to pass. - * @param {yfiles.lang.Class} options.type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param options.type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(options:{type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean}):yfiles.graph.LookupDecorator; @@ -50278,24 +49278,23 @@ declare namespace system{ *

    * @see yfiles.graph.GraphDecorator * @see yfiles.graph.LookupDecorator. - * @class yfiles.graph.BendDecorator + * @class * @final */ export interface BendDecorator extends Object{} export class BendDecorator { /** * Initializes a new instance of the {@link yfiles.graph.BendDecorator} class. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator to use, which can be null. - * @constructor + * @param decorator The decorator to use, which can be null. */ constructor(decorator:yfiles.graph.ILookupDecorator); /** * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IBend}s that can be used to decorate TInterface types of the bends. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {yfiles.lang.Class} type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean):yfiles.graph.LookupDecorator; @@ -50303,10 +49302,10 @@ declare namespace system{ * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IBend}s that can be used to decorate TInterface types of the bends. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. * @param {Object} options The parameters to pass. - * @param {yfiles.lang.Class} options.type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param options.type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(options:{type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean}):yfiles.graph.LookupDecorator; @@ -50451,24 +49450,23 @@ declare namespace system{ *

    * @see yfiles.graph.GraphDecorator * @see yfiles.graph.LookupDecorator. - * @class yfiles.graph.PortDecorator + * @class * @final */ export interface PortDecorator extends Object{} export class PortDecorator { /** * Initializes a new instance of the {@link yfiles.graph.PortDecorator} class. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator to use, which can be null. - * @constructor + * @param decorator The decorator to use, which can be null. */ constructor(decorator:yfiles.graph.ILookupDecorator); /** * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IPort}s that can be used to decorate TInterface types of the ports. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {yfiles.lang.Class} type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean):yfiles.graph.LookupDecorator; @@ -50476,10 +49474,10 @@ declare namespace system{ * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IPort}s that can be used to decorate TInterface types of the ports. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. * @param {Object} options The parameters to pass. - * @param {yfiles.lang.Class} options.type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param options.type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(options:{type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean}):yfiles.graph.LookupDecorator; @@ -50652,24 +49650,23 @@ declare namespace system{ *

    * @see yfiles.graph.GraphDecorator * @see yfiles.graph.LookupDecorator. - * @class yfiles.graph.NodeDecorator + * @class * @final */ export interface NodeDecorator extends Object{} export class NodeDecorator { /** * Initializes a new instance of the {@link yfiles.graph.NodeDecorator} class. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator to use, which can be null. - * @constructor + * @param decorator The decorator to use, which can be null. */ constructor(decorator:yfiles.graph.ILookupDecorator); /** * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.INode}s that can be used to decorate TInterface types of the nodes. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {yfiles.lang.Class} type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean):yfiles.graph.LookupDecorator; @@ -50677,10 +49674,10 @@ declare namespace system{ * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.INode}s that can be used to decorate TInterface types of the nodes. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. * @param {Object} options The parameters to pass. - * @param {yfiles.lang.Class} options.type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param options.type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(options:{type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean}):yfiles.graph.LookupDecorator; @@ -50936,7 +49933,7 @@ declare namespace system{ * interface and not the implementation of the interface since client code will use the interface for the query. * @see yfiles.graph.ILookup * @see yfiles.graph.GraphDecorator - * @class yfiles.graph.LookupDecorator. + * @class * @template TDecoratedType,TInterface * @final */ @@ -50944,19 +49941,18 @@ declare namespace system{ export class LookupDecorator { /** * Initializes a new instance of the {@link yfiles.graph.LookupDecorator.} class. - * @param {yfiles.lang.Class} decoratedType The type of the instances whose {@link yfiles.graph.ILookup#lookup} behavior should be modified. - * @param {yfiles.lang.Class} interfaceType The interface or type that clients will use during the {@link yfiles.graph.ILookup#lookup} call. Note that this is normally an + * @param decoratedType The type of the instances whose {@link #lookup} behavior should be modified. + * @param interfaceType The interface or type that clients will use during the {@link #lookup} call. Note that this is normally an * interface and not the implementation of the interface since client code will use the interface for the query. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator instance that will be used to {@link yfiles.graph.ILookupDecorator#addLookup extend the Lookup mechanism}. - * @param {boolean} decorateNulls The initial value of the {@link yfiles.graph.LookupDecorator.#decorateNulls} property. - * @param {boolean} nullIsFallback The initial value of the {@link yfiles.graph.LookupDecorator.#nullIsFallback} property. - * @constructor + * @param decorator The decorator instance that will be used to {@link #addLookup extend the Lookup mechanism}. + * @param decorateNulls The initial value of the {@link #decorateNulls} property. + * @param nullIsFallback The initial value of the {@link #nullIsFallback} property. */ constructor(decoratedType:yfiles.lang.Class,interfaceType:yfiles.lang.Class,decorator:yfiles.graph.ILookupDecorator,decorateNulls:boolean,nullIsFallback:boolean); /** * Simple helper method that tries to add the provided chain link to the {@link yfiles.graph.LookupDecorator.#decorator}. - * @param {yfiles.graph.IContextLookupChainLink} lookup The link to add. - * @returns {yfiles.graph.IContextLookupChainLink} The lookup that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if the decoration was unsuccessful. + * @param lookup The link to add. + * @returns The lookup that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if the decoration was unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ addChainLink(lookup:yfiles.graph.IContextLookupChainLink):yfiles.graph.IContextLookupChainLink; @@ -50971,8 +49967,8 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType): boolean} [predicate=null] The predicate that determines for which items the implementation shall be hidden. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param [predicate=null] The predicate that determines for which items the implementation shall be hidden. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -50996,9 +49992,9 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType): boolean} predicate The predicate that determines for which items the factory shall be called. - * @param {function(TDecoratedType): TInterface} factory The factory that is queried to create the result. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param predicate The predicate that determines for which items the factory shall be called. + * @param factory The factory that is queried to create the result. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup * @see yfiles.graph.LookupDecorator.#nullIsFallback @@ -51023,8 +50019,8 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType): TInterface} factory The factory that is queried to create the result. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param factory The factory that is queried to create the result. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup * @see yfiles.graph.LookupDecorator.#nullIsFallback @@ -51044,9 +50040,9 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType): boolean} predicate A predicate that determines which items are affected. - * @param {TInterface} implementation The implementation to return if the predicate matches and TInterface is queried. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param predicate A predicate that determines which items are affected. + * @param implementation The implementation to return if the predicate matches and TInterface is queried. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -51065,9 +50061,9 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {TDecoratedType} item The item for which the implementation shall be returned. - * @param {TInterface} implementation The implementation to return if item is queried for TInterface. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param item The item for which the implementation shall be returned. + * @param implementation The implementation to return if item is queried for TInterface. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -51086,8 +50082,8 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {TInterface} implementation The implementation to return unconditionally. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param implementation The implementation to return unconditionally. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -51110,9 +50106,9 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType): boolean} predicate The predicate that determines for which items the wrapping shall be performed. - * @param {function(TDecoratedType, TInterface): TInterface} factory The factory that will be passed the underlying implementation and that is queried to create the result. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param predicate The predicate that determines for which items the wrapping shall be performed. + * @param factory The factory that will be passed the underlying implementation and that is queried to create the result. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -51135,8 +50131,8 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType, TInterface): TInterface} factory The factory that will be passed the underlying implementation and that is queried to create the result. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param factory The factory that will be passed the underlying implementation and that is queried to create the result. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -51173,6 +50169,122 @@ declare namespace system{ nullIsFallback:boolean; static $class:yfiles.lang.Class; } + /** + * Provides less frequently used methods for analyzing and managing grouped graphs. + *

    + * An instance of this class which is configured for a given {@link yfiles.graph.IGraph} instance can be obtained via {@link yfiles.graph.IGraph#groupingSupport}. + *

    + * @class + */ + export interface GroupingSupport extends Object{} + export class GroupingSupport { + /** + * Creates a new instance which operates on the given graph. + * @param graph The graph to use for operations on this instance. + */ + constructor(graph:yfiles.graph.IGraph); + /** + * Calculates the minimum area to enclose by the given group node with respect to its {@link yfiles.graph.IGroupBoundsCalculator}. + * @param groupNode The group node to calculate the minimum enclosed area of. + * @returns The area to enclose for the given group node. This is {@link #EMPTY} if the node is not a group node, or if + * it hasn't any children. + */ + calculateMinimumEnclosedArea(groupNode:yfiles.graph.INode):yfiles.geometry.Rect; + /** + * Enlarges all group nodes in the graph in an interactive scenario, so that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed area} is respected. + *

    + * This method should be used in an interactive editing scenario. It records an {@link yfiles.graph.ICompoundEdit} to support + * undoability and uses the {@link yfiles.input.IReshapeHandler} for the resizing of the nodes. That way, e.g. orthogonally edited + * edges will be properly reshaped. + *

    + * @param context The context to use for the {@link }s. + * @see yfiles.graph.GroupingSupport#enlargeGroupNode + */ + enlargeAllGroupNodes(context:yfiles.input.IInputModeContext):void; + /** + * Enlarges all group nodes in the graph so that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed area} is respected. + * @see yfiles.graph.GroupingSupport#enlargeGroupNode + */ + enlargeAllGroupNodes():void; + /** + * Enlarges the group nodes in an interactive scenario, using {@link yfiles.input.IReshapeHandler} implementations of the group + * nodes to perform the actual resizing. + *

    + * This method should be used in an interactive editing scenario. It records an {@link yfiles.graph.ICompoundEdit} to support + * undoability and uses the {@link yfiles.input.IReshapeHandler} for the resizing of the nodes. That way, e.g. orthogonally edited + * edges will be properly reshaped. + *

    + * @param context The context to use for the {@link }s. + * @param node The node to enlarge appropriately. + * @param ancestors if set to true ancestors the ancestor group nodes will be adjusted, too, if necessary. + * @see yfiles.input.IReshapeHandler + */ + enlargeGroupNode(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,ancestors:boolean):void; + /** + * Enlarges the given group node to ensure that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed} area is inside of its bounds. + *

    + * This method can be used to resize a group node and all of its parent group nodes to fully contain its children, e.g. + * after a child node has changed its bounds. Note that this method will only enlarge the bounds of the group nodes, it + * will never reduce the size of a group node. + *

    + * @param groupNode The group node to resize. + * @param ancestors if set to true all ancestor group nodes will be resized, too, if necessary + * @see yfiles.graph.GroupingSupport#enlargeGroupNode + */ + enlargeGroupNode(groupNode:yfiles.graph.INode,ancestors:boolean):void; + /** + * Returns all descendants of the provided node that are part of the grouped graph. + *

    + * The enumeration will be top down, i.e. all of a node's ancestors will be enumerated before the respective node. + *

    + * @param node The root node to get the descendants from. + * @returns An enumeration of the children of the node at the time of this invocation in reverse DFS prefix order. + */ + getDescendants(node:yfiles.graph.INode):yfiles.collections.IEnumerable; + /** + * Returns all descendants of the provided node that are part of the grouped graph. + *

    + * The enumeration will be bottom up, i.e. all of a node's children will be enumerated before the respective node. + *

    + * @param node The root node to get the descendants from. + * @returns An enumeration of the children of the node at the time of this invocation in DFS postfix order. + */ + getDescendantsBottomUp(node:yfiles.graph.INode):yfiles.collections.IEnumerable; + /** + * Determines the nearest common ancestor of the provided nodes in the graph. + * @param nodes The nodes to find the nearest common ancestor of. + * @returns + */ + getNearestCommonAncestor(...nodes:yfiles.graph.INode[]):yfiles.graph.INode; + /** + * Determines the nearest common ancestor of the provided nodes in the graph. + * @param nodes The nodes to find the nearest common ancestor of. + * @returns + */ + getNearestCommonAncestor(nodes:yfiles.collections.IEnumerable):yfiles.graph.INode; + /** + * Gets the path to root traversing all {@link yfiles.graph.IGraph#getParent parents} of the given item. + * @param node The node to start. + * @returns A list that includes the node but not the root, unless they are identical and all parents in between them. + */ + getPathToRoot(node:yfiles.graph.INode):yfiles.collections.IList; + /** + * Determines whether there are group nodes in the graph. + *

    + * This methods considers all {@link yfiles.graph.IGraph#isGroupNode group} nodes, that is, nodes that could have children. + *

    + * @returns true if there are {@link #isGroupNode group}. + */ + hasGroupNodes():boolean; + /** + * Determines whether ancestor is an ancestor of node in the grouped graph. + * @param node The node to check. + * @param ancestor The ancestor to check. + * @returns Whether ancestor is an ancestor of node. + */ + isDescendant(node:yfiles.graph.INode,ancestor:yfiles.graph.INode):boolean; + static $class:yfiles.lang.Class; + } /** * An abstract {@link yfiles.graph.IGraph} implementation that delegates all of its work to an existing implementation. *

    @@ -51180,7 +50292,7 @@ declare namespace system{ * register listeners with the wrapped graph instance, so {@link yfiles.graph.GraphWrapperBase#dispose} should be called if this * instance is not used any more. *

    - * @class yfiles.graph.GraphWrapperBase + * @class * @implements {yfiles.graph.IGraph} */ export interface GraphWrapperBase extends Object,yfiles.graph.IGraph{} @@ -51191,164 +50303,163 @@ declare namespace system{ * Note that this instance will {@link yfiles.graph.GraphWrapperBase#addEventHandlers register listeners} with the graph, so {@link yfiles.graph.GraphWrapperBase#dispose} should be * called if this instance is not used any more. *

    - * @param {yfiles.graph.IGraph} graph The graph to wrap. + * @param graph The graph to wrap. * @protected - * @constructor */ constructor(graph:yfiles.graph.IGraph); /** * - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.geometry.Point} location - * @param {number} [index=-1] - * @returns {yfiles.graph.IBend} + * @param edge + * @param location + * @param [index=-1] + * @returns */ addBend(edge:yfiles.graph.IEdge,location:yfiles.geometry.Point,index?:number):yfiles.graph.IBend; /** * Adds event handlers that propagate graph events from graph to listeners on this instance. - * @param {yfiles.graph.IGraph} graph The graph for which event propagators should be created + * @param graph The graph for which event propagators should be created * @protected */ addEventHandlers(graph:yfiles.graph.IGraph):void; /** * - * @param {yfiles.graph.ILabelOwner} owner - * @param {string} text - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [style=null] - * @param {yfiles.geometry.Size} [preferredSize=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.ILabel} + * @param owner + * @param text + * @param [layoutParameter=null] + * @param [style=null] + * @param [preferredSize=null] + * @param [tag=null] + * @returns */ addLabel(owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object):yfiles.graph.ILabel; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ILabelOwner} options.owner - * @param {string} options.text - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [options.style=null] - * @param {yfiles.geometry.Size} [options.preferredSize=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.ILabel} + * @param options.owner + * @param options.text + * @param [options.layoutParameter=null] + * @param [options.style=null] + * @param [options.preferredSize=null] + * @param [options.tag=null] + * @returns */ addLabel(options:{owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object}):yfiles.graph.ILabel; /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.graph.IPortLocationModelParameter} [locationParameter=null] - * @param {yfiles.styles.IPortStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.IPort} + * @param owner + * @param [locationParameter=null] + * @param [style=null] + * @param [tag=null] + * @returns */ addPort(owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,style?:yfiles.styles.IPortStyle,tag?:Object):yfiles.graph.IPort; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPortOwner} options.owner - * @param {yfiles.graph.IPortLocationModelParameter} [options.locationParameter=null] - * @param {yfiles.styles.IPortStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.IPort} + * @param options.owner + * @param [options.locationParameter=null] + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ addPort(options:{owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,style?:yfiles.styles.IPortStyle,tag?:Object}):yfiles.graph.IPort; /** * - * @param {yfiles.graph.IModelItem} item - * @returns {boolean} + * @param item + * @returns */ contains(item:yfiles.graph.IModelItem):boolean; /** * - * @param {yfiles.graph.INode} source - * @param {yfiles.graph.INode} target - * @param {yfiles.styles.IEdgeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.IEdge} + * @param source + * @param target + * @param [style=null] + * @param [tag=null] + * @returns */ createEdge(source:yfiles.graph.INode,target:yfiles.graph.INode,style?:yfiles.styles.IEdgeStyle,tag?:Object):yfiles.graph.IEdge; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} options.source - * @param {yfiles.graph.INode} options.target - * @param {yfiles.styles.IEdgeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.IEdge} + * @param options.source + * @param options.target + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createEdge(options:{source:yfiles.graph.INode,target:yfiles.graph.INode,style?:yfiles.styles.IEdgeStyle,tag?:Object}):yfiles.graph.IEdge; /** * - * @param {yfiles.graph.IPort} sourcePort - * @param {yfiles.graph.IPort} targetPort - * @param {yfiles.styles.IEdgeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.IEdge} + * @param sourcePort + * @param targetPort + * @param [style=null] + * @param [tag=null] + * @returns */ createEdge(sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort,style?:yfiles.styles.IEdgeStyle,tag?:Object):yfiles.graph.IEdge; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPort} options.sourcePort - * @param {yfiles.graph.IPort} options.targetPort - * @param {yfiles.styles.IEdgeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.IEdge} + * @param options.sourcePort + * @param options.targetPort + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createEdge(options:{sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort,style?:yfiles.styles.IEdgeStyle,tag?:Object}):yfiles.graph.IEdge; /** * - * @param {yfiles.graph.INode} [parent=null] - * @param {yfiles.geometry.Rect} [layout=null] - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param [parent=null] + * @param [layout=null] + * @param [style=null] + * @param [tag=null] + * @returns */ createGroupNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] - * @param {yfiles.geometry.Rect} [options.layout=null] - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param [options.parent=null] + * @param [options.layout=null] + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createGroupNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** * - * @param {yfiles.geometry.Rect} layout - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param layout + * @param [style=null] + * @param [tag=null] + * @returns */ createNode(layout:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Rect} options.layout - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param options.layout + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createNode(options:{layout:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** * - * @param {yfiles.graph.INode} [parent=null] - * @param {yfiles.geometry.Rect} [layout=null] - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param [parent=null] + * @param [layout=null] + * @param [style=null] + * @param [tag=null] + * @returns */ createNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] - * @param {yfiles.geometry.Rect} [options.layout=null] - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param [options.parent=null] + * @param [options.layout=null] + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** @@ -51361,33 +50472,33 @@ declare namespace system{ dispose():void; /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.graph.AdjacencyTypes} [type=3] - * @returns {yfiles.collections.IListEnumerable.} + * @param owner + * @param [type=yfiles.graph.AdjacencyTypes.ALL] + * @returns */ edgesAt(owner:yfiles.graph.IPortOwner,type?:yfiles.graph.AdjacencyTypes):yfiles.collections.IListEnumerable; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.AdjacencyTypes} [type=3] - * @returns {yfiles.collections.IListEnumerable.} + * @param port + * @param [type=yfiles.graph.AdjacencyTypes.ALL] + * @returns */ edgesAt(port:yfiles.graph.IPort,type?:yfiles.graph.AdjacencyTypes):yfiles.collections.IListEnumerable; /** * - * @param {yfiles.graph.INode} node - * @returns {yfiles.collections.IListEnumerable.} + * @param node + * @returns */ getChildren(node:yfiles.graph.INode):yfiles.collections.IListEnumerable; /** * Gets the lookup instance to use in {@link yfiles.graph.GraphWrapperBase#lookup} - * @returns {yfiles.graph.ILookup} + * @returns */ getLookup():yfiles.graph.ILookup; /** * - * @param {yfiles.graph.INode} node - * @returns {yfiles.graph.INode} + * @param node + * @returns */ getParent(node:yfiles.graph.INode):yfiles.graph.INode; /** @@ -51396,68 +50507,68 @@ declare namespace system{ invalidateDisplays():void; /** * - * @param {yfiles.graph.INode} node - * @returns {boolean} + * @param node + * @returns */ isGroupNode(node:yfiles.graph.INode):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addBendAddedListener BendAdded} event - * @param {yfiles.collections.ItemEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onBendAdded(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addBendLocationChangedListener BendLocationChanged} event - * @param {yfiles.graph.IBend} bend The bend whose location changed - * @param {yfiles.geometry.Point} oldLocation The bend location before the change + * @param bend The bend whose location changed + * @param oldLocation The bend location before the change * @protected */ onBendLocationChanged(bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addBendRemovedListener BendRemoved} event - * @param {yfiles.graph.BendEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onBendRemoved(evt:yfiles.graph.BendEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addBendTagChangedListener BendTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onBendTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addEdgeCreatedListener EdgeCreated} event - * @param {yfiles.collections.ItemEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onEdgeCreated(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addEdgePortsChangedListener EdgePortsChanged} event - * @param {yfiles.graph.EdgeEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onEdgePortsChanged(evt:yfiles.graph.EdgeEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addEdgeRemovedListener EdgeRemoved} event - * @param {yfiles.graph.EdgeEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onEdgeRemoved(evt:yfiles.graph.EdgeEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addEdgeStyleChangedListener EdgeStyleChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onEdgeStyleChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addEdgeTagChangedListener EdgeTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onEdgeTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; @@ -51467,231 +50578,231 @@ declare namespace system{ * Delegates to {@link yfiles.graph.GraphWrapperBase#addEventHandlers} for newGraph and to {@link yfiles.graph.GraphWrapperBase#removeEventHandlers} * for oldGraph. *

    - * @param {yfiles.graph.IGraph} oldGraph the old value, which may be null the first time - * @param {yfiles.graph.IGraph} newGraph the new value + * @param oldGraph the old value, which may be null the first time + * @param newGraph the new value * @protected */ onGraphChanged(oldGraph:yfiles.graph.IGraph,newGraph:yfiles.graph.IGraph):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addGraphTagChangedListener GraphTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onGraphTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addDisplaysInvalidatedListener DisplaysInvalidated} event - * @param {yfiles.lang.EventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onInvalidateDisplays(evt:yfiles.lang.EventArgs):void; /** * Dispatches the {@link yfiles.graph.GraphWrapperBase#addIsGroupNodeChangedListener IsGroupNodeChanged} event. - * @param {yfiles.graph.NodeEventArgs} evt The event args to dispatch. + * @param evt The event args to dispatch. * @protected */ onIsGroupNodeChanged(evt:yfiles.graph.NodeEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelAddedListener LabelAdded} event - * @param {yfiles.collections.ItemEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelAdded(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelLayoutParameterChangedListener LabelLayoutParameterChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelLayoutParameterChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelPreferredSizeChangedListener LabelPreferredSizeChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelPreferredSizeChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelRemovedListener LabelRemoved} event - * @param {yfiles.graph.LabelEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelRemoved(evt:yfiles.graph.LabelEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelStyleChangedListener LabelStyleChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelStyleChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelTagChangedListener LabelTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelTextChangedListener LabelTextChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelTextChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addNodeCreatedListener NodeCreated} event - * @param {yfiles.collections.ItemEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onNodeCreated(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addNodeLayoutChangedListener NodeLayoutChanged} event - * @param {yfiles.graph.INode} node The node whose layout changed - * @param {yfiles.geometry.Rect} oldLayout The node layout before the change + * @param node The node whose layout changed + * @param oldLayout The node layout before the change * @protected */ onNodeLayoutChanged(node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addNodeRemovedListener NodeRemoved} event - * @param {yfiles.graph.NodeEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onNodeRemoved(evt:yfiles.graph.NodeEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addNodeStyleChangedListener NodeStyleChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onNodeStyleChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addNodeTagChangedListener NodeTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onNodeTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Dispatches the {@link yfiles.graph.GraphWrapperBase#addParentChangedListener ParentChanged} event. - * @param {yfiles.graph.NodeEventArgs} evt The event args to dispatch. + * @param evt The event args to dispatch. * @protected */ onParentChanged(evt:yfiles.graph.NodeEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addPortAddedListener PortAdded} event - * @param {yfiles.collections.ItemEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onPortAdded(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addPortLocationParameterChangedListener PortLocationParameterChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onPortLocationParameterChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addPortRemovedListener PortRemoved} event - * @param {yfiles.graph.PortEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onPortRemoved(evt:yfiles.graph.PortEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addPortStyleChangedListener PortStyleChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onPortStyleChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addPortTagChangedListener PortTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onPortTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * - * @param {yfiles.graph.IModelItem} item + * @param item */ remove(item:yfiles.graph.IModelItem):void; /** * Removes event handlers for graph that have been added with {@link yfiles.graph.GraphWrapperBase#addEventHandlers}. - * @param {yfiles.graph.IGraph} graph The graph for which event propagators should be removed + * @param graph The graph for which event propagators should be removed * @protected */ removeEventHandlers(graph:yfiles.graph.IGraph):void; /** * - * @param {yfiles.graph.IBend} bend - * @param {yfiles.geometry.Point} location + * @param bend + * @param location */ setBendLocation(bend:yfiles.graph.IBend,location:yfiles.geometry.Point):void; /** * - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.graph.IPort} sourcePort - * @param {yfiles.graph.IPort} targetPort + * @param edge + * @param sourcePort + * @param targetPort */ setEdgePorts(edge:yfiles.graph.IEdge,sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):void; /** * - * @param {yfiles.graph.INode} node - * @param {boolean} isGroupNode + * @param node + * @param isGroupNode */ setIsGroupNode(node:yfiles.graph.INode,isGroupNode:boolean):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter + * @param label + * @param layoutParameter */ setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.geometry.Size} preferredSize + * @param label + * @param preferredSize */ setLabelPreferredSize(label:yfiles.graph.ILabel,preferredSize:yfiles.geometry.Size):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {string} text + * @param label + * @param text */ setLabelText(label:yfiles.graph.ILabel,text:string):void; /** * Sets the lookup instance to use in {@link yfiles.graph.GraphWrapperBase#lookup} - * @param {yfiles.graph.ILookup} lookup + * @param lookup */ setLookup(lookup:yfiles.graph.ILookup):void; /** * - * @param {yfiles.graph.INode} node - * @param {yfiles.geometry.Rect} layout + * @param node + * @param layout */ setNodeLayout(node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; /** * - * @param {yfiles.graph.INode} node - * @param {yfiles.graph.INode} parent + * @param node + * @param parent */ setParent(node:yfiles.graph.INode,parent:yfiles.graph.INode):void; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter + * @param port + * @param locationParameter */ setPortLocationParameter(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):void; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style + * @param port + * @param style */ setStyle(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):void; /** * - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style + * @param edge + * @param style */ setStyle(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style + * @param label + * @param style */ setStyle(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):void; /** * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style + * @param node + * @param style */ setStyle(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):void; /** @@ -51731,282 +50842,282 @@ declare namespace system{ nodeDefaults:yfiles.graph.INodeDefaults; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addGraphTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeGraphTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addNodeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeNodeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addNodeRemovedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeNodeRemovedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addNodeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeNodeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener + * @param listener */ addNodeLayoutChangedListener(listener:(source:Object,node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect)=>void):void; /** * - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener + * @param listener */ removeNodeLayoutChangedListener(listener:(source:Object,node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addNodeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeNodeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addEdgeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeEdgeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ addEdgeRemovedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ removeEdgeRemovedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addEdgeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeEdgeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ addEdgePortsChangedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ removeEdgePortsChangedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addEdgeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeEdgeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addBendAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeBendAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener + * @param listener */ addBendRemovedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener + * @param listener */ removeBendRemovedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener + * @param listener */ addBendLocationChangedListener(listener:(source:Object,bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point)=>void):void; /** * - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener + * @param listener */ removeBendLocationChangedListener(listener:(source:Object,bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addBendTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeBendTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener + * @param listener */ addLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener + * @param listener */ removeLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelPreferredSizeChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelPreferredSizeChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelLayoutParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelLayoutParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addPortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removePortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener + * @param listener */ addPortRemovedListener(listener:(sender:Object,evt:yfiles.graph.PortEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener + * @param listener */ removePortRemovedListener(listener:(sender:Object,evt:yfiles.graph.PortEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortLocationParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortLocationParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.lang.EventArgs): void} listener + * @param listener */ addDisplaysInvalidatedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * - * @param {function(Object, yfiles.lang.EventArgs): void} listener + * @param listener */ removeDisplaysInvalidatedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** @@ -52021,22 +51132,22 @@ declare namespace system{ groupNodeDefaults:yfiles.graph.INodeDefaults; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addParentChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeParentChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addIsGroupNodeChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeIsGroupNodeChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** @@ -52087,7 +51198,6 @@ declare namespace system{ location:yfiles.geometry.IPoint; /** * Gets the index of the bend at its {@link yfiles.graph.IBend#owner}. - * @returns The zero based index of the bend in the {@link yfiles.graph.IEdge#bends} list; -1 if the bend is not part of an edge. * @type {number} */ index?:number; @@ -52120,15 +51230,15 @@ declare namespace system{ export interface IEdge extends Object,yfiles.graph.IPortOwner,yfiles.graph.ILabelOwner,yfiles.graph.IModelItem{ /** * Gets the opposite port of an {@link yfiles.graph.IEdge}. - * @param {yfiles.graph.IPort} port The port that the {@link yfiles.graph.IEdge} is connected to. - * @returns {yfiles.graph.IPort} The opposite port. + * @param port The port that the {@link } is connected to. + * @returns The opposite port. * @throws {Stubs.Exceptions.ArgumentError} If port is neither the source or target of the edge. */ opposite?(port:yfiles.graph.IPort):yfiles.graph.IPort; /** * Gets the opposite port owner of an {@link yfiles.graph.IEdge}. - * @param {yfiles.graph.IPortOwner} owner The owner of the port that the {@link yfiles.graph.IEdge} is connected to. - * @returns {yfiles.graph.IPortOwner} The owner of the opposite port. + * @param owner The owner of the port that the {@link } is connected to. + * @returns The owner of the opposite port. * @throws {Stubs.Exceptions.ArgumentError} If owner is neither the source or target of the edge. */ opposite?(owner:yfiles.graph.IPortOwner):yfiles.graph.IPortOwner; @@ -52176,19 +51286,16 @@ declare namespace system{ style:yfiles.styles.IEdgeStyle; /** * Gets the source node for the given edge or null. - * @returns The source node or null. * @type {yfiles.graph.INode} */ sourceNode?:yfiles.graph.INode; /** * Gets the target node for the given edge or null. - * @returns The target node or null. * @type {yfiles.graph.INode} */ targetNode?:yfiles.graph.INode; /** - * Returns whether an {@link yfiles.graph.IEdge edge} is a self loop. - * @returns true, if the edge is a self loop + * Determines whether an {@link yfiles.graph.IEdge edge} is a self-loop, that is, it starts and ends at the same port owner. * @type {boolean} */ isSelfloop?:boolean; @@ -52213,7 +51320,7 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IEdgeDefaults#style} property, if {@link yfiles.graph.IEdgeDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @returns {yfiles.styles.IEdgeStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IEdgeDefaults#style} property, if {@link yfiles.graph.IEdgeDefaults#shareStyleInstance} is enabled. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. * @abstract */ getStyleInstance():yfiles.styles.IEdgeStyle; @@ -52259,19 +51366,19 @@ declare namespace system{ isInstance(o:Object):boolean; }; /** - * Interface that is used for manipulating a managed view of an {@link yfiles.graph.IGraph} that supports folding operations like {@link yfiles.graph.IFoldingView#expand expanding} + * Interface that is used for manipulating a {@link yfiles.graph.FoldingManager#createFoldingView managed view} of an {@link yfiles.graph.IGraph} that supports folding operations like {@link yfiles.graph.IFoldingView#expand expanding} * and {@link yfiles.graph.IFoldingView#collapse collapsing} of nodes. *

    * The {@link yfiles.graph.FoldingManager} creates views of a {@link yfiles.graph.FoldingManager#masterGraph} which is created using copies of the original "master" entities. The * views are being synchronized via the {@link yfiles.graph.FoldingManager#masterGraph}, but may contain additional {@link yfiles.graph.FoldingManager#getFolderNodeState view state}. Typically nodes and edges are being copied * from the {@link yfiles.graph.FoldingManager#masterGraph} and they share many of their properties by reference (e.g. {@link yfiles.graph.INode#style}). However if group nodes are being represented by * {@link yfiles.graph.IFoldingView#collapse collapsed} group nodes in this view, they maintain a separate set of {@link yfiles.graph.ILabel labels}, {@link yfiles.graph.IPort ports}, {@link yfiles.graph.IBend bends}, and {@link yfiles.graph.INode#layout geometry}. This view-local - * state is shared between all views that have been created by the same Manager and can be obtained and modified via the + * state is shared between all views that have been {@link yfiles.graph.FoldingManager#createFoldingView created} by the same Manager and can be obtained and modified via the * {@link yfiles.graph.FoldingManager}'s GetFoldingEdgeState methods for {@link yfiles.graph.FoldingManager#getFoldingEdgeState folding edges} and {@link yfiles.graph.FoldingManager#getFolderNodeState folder nodes} in the absence of a * corresponding {@link yfiles.graph.IFoldingView} view instance. Developers typically don't need to implement this interface - * themselves, rather an implementation is provided by the framework and can be obtained from the {@link yfiles.graph.FoldingManager} - * implementation. Use CreateFoldingView to obtain an {@link yfiles.graph.IGraph} implementation that contains an implementation of - * this class in its {@link yfiles.graph.ILookup#lookup} method: + * themselves, rather an implementation is provided by the framework and can be obtained from the + * {@link yfiles.graph.FoldingManager}. Use {@link yfiles.graph.FoldingManager#createFoldingView} to obtain an {@link yfiles.graph.IGraph} + * implementation that contains an implementation of this class in its {@link yfiles.graph.ILookup#lookup} method: *

    *

    * This interface extends the {@link yfiles.lang.IPropertyObservable} interface. This can be used to easily monitor the {@link yfiles.graph.IFoldingView#invalid validity} of @@ -52303,7 +51410,7 @@ declare namespace system{ * In addition to that this method can also be used for {@link yfiles.graph.FoldingManager#masterGraph master} nodes which are currently not represented in this view. In * this case these nodes will be displayed as collapsed the next time they will be included in this view. *

    - * @param {yfiles.graph.INode} groupNode A group node that is part of the {@link yfiles.graph.IFoldingView#graph} or the {@link yfiles.graph.FoldingManager#masterGraph master graph}. + * @param groupNode A group node that is part of the {@link #graph} or the {@link #masterGraph master graph}. * @see yfiles.graph.IFoldingView#isExpanded * @abstract */ @@ -52315,11 +51422,11 @@ declare namespace system{ * part of the {@link yfiles.graph.IFoldingView#graph Folded Graph View} or null to create a folder at the root of the current hierarchy. It will be converted into * a group node if necessary. The returned {@link yfiles.graph.INode} is also part of the {@link yfiles.graph.IFoldingView#graph Folded Graph View}. *

    - * @param {yfiles.graph.INode} [parent=null] The parent node in the {@link yfiles.graph.IFoldingView#graph}, or null - * @param {yfiles.geometry.Rect} [layout=null] The layout for the collapsed node. - * @param {yfiles.styles.INodeStyle} [style=null] The style for the collapsed node - * @param {Object} [tag=null] The tag of the node. - * @returns {yfiles.graph.INode} A collapsed (folder) node that lives in {@link yfiles.graph.IFoldingView#graph} + * @param [parent=null] The parent node in the {@link #graph}, or null + * @param [layout=null] The layout for the collapsed node. + * @param [style=null] The style for the collapsed node + * @param [tag=null] The tag of the node. + * @returns A collapsed (folder) node that lives in {@link #graph} * @abstract */ createFolderNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; @@ -52331,11 +51438,11 @@ declare namespace system{ * a group node if necessary. The returned {@link yfiles.graph.INode} is also part of the {@link yfiles.graph.IFoldingView#graph Folded Graph View}. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] The parent node in the {@link yfiles.graph.IFoldingView#graph}, or null - * @param {yfiles.geometry.Rect} [options.layout=null] The layout for the collapsed node. - * @param {yfiles.styles.INodeStyle} [options.style=null] The style for the collapsed node - * @param {Object} [options.tag=null] The tag of the node. - * @returns {yfiles.graph.INode} A collapsed (folder) node that lives in {@link yfiles.graph.IFoldingView#graph} + * @param [options.parent=null] The parent node in the {@link #graph}, or null + * @param [options.layout=null] The layout for the collapsed node. + * @param [options.style=null] The style for the collapsed node + * @param [options.tag=null] The tag of the node. + * @returns A collapsed (folder) node that lives in {@link #graph} * @abstract */ createFolderNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; @@ -52368,7 +51475,7 @@ declare namespace system{ * In addition to that this method can also be used for {@link yfiles.graph.FoldingManager#masterGraph master} nodes which are currently not represented in this view. In * this case these nodes will be displayed as expanded the next time they will be included in this view. *

    - * @param {yfiles.graph.INode} groupNode A group node that is part of the {@link yfiles.graph.IFoldingView#graph} or the {@link yfiles.graph.FoldingManager#masterGraph master graph}. + * @param groupNode A group node that is part of the {@link #graph} or the {@link #masterGraph master graph}. * @see yfiles.graph.IFoldingView#isExpanded * @see yfiles.graph.IFoldingView#collapse * @abstract @@ -52382,8 +51489,8 @@ declare namespace system{ * that the provided folding edge represents. If the folding edge corresponds to a single master edge, the result will * enumerate that edge, only. *

    - * @param {yfiles.graph.IEdge} foldingEdge The folding edge for which the master edges should be returned. - * @returns {yfiles.collections.IEnumerable.} An enumerable that can enumerate all of the edges in the {@link yfiles.graph.FoldingManager#masterGraph} that are being represented by the folding edge in this {@link yfiles.graph.IFoldingView#graph view}. + * @param foldingEdge The folding edge for which the master edges should be returned. + * @returns An enumerable that can enumerate all of the edges in the {@link #masterGraph} that are being represented by the folding edge in this {@link #graph view}. * @see yfiles.graph.IFoldingEdgeFactory#addToExistingFoldingEdge * @see yfiles.graph.IFoldingView#getViewItem * @abstract @@ -52404,8 +51511,8 @@ declare namespace system{ *

    * Type parameter T: The type of the argument, which is typically {@link yfiles.graph.INode}, {@link yfiles.graph.IEdge}, {@link yfiles.graph.ILabel}, * {@link yfiles.graph.IBend}, or {@link yfiles.graph.IPort}. - * @param {T} item The item that is part of this {@link yfiles.graph.IFoldingView#graph} for which the original "master" item in the {@link yfiles.graph.FoldingManager#masterGraph} will be returned. - * @returns {T} An item in the {@link yfiles.graph.FoldingManager#masterGraph} that corresponds to the item or null, if there is no such item. + * @param item The item that is part of this {@link #graph} for which the original "master" item in the {@link #masterGraph} will be returned. + * @returns An item in the {@link #masterGraph} that corresponds to the item or null, if there is no such item. * @see yfiles.graph.IFoldingView#getViewItem * @template T * @abstract @@ -52427,8 +51534,8 @@ declare namespace system{ *

    * Type parameter T: The type of the argument, which is typically {@link yfiles.graph.INode}, {@link yfiles.graph.IEdge}, {@link yfiles.graph.ILabel}, * {@link yfiles.graph.IBend}, or {@link yfiles.graph.IPort}. - * @param {T} item An item that is part of the {@link yfiles.graph.FoldingManager#masterGraph} that is associated with the Manager of this instance. - * @returns {T} An item in the {@link yfiles.graph.IFoldingView#graph local graph view} that corresponds to the item or + * @param item An item that is part of the {@link #masterGraph} that is associated with the Manager of this instance. + * @returns An item in the {@link #graph local graph view} that corresponds to the item or * null, if the item is not currently being represented in this view. * @see yfiles.graph.IFoldingView#getMasterItem * @see yfiles.graph.IFoldingView#getMasterEdges @@ -52447,8 +51554,8 @@ declare namespace system{ * currently not represented in this view, this method will return the * {@link yfiles.graph.IFoldingView#expand}ed state it will have the next time it will be included in this view. *

    - * @param {yfiles.graph.INode} groupNode The group node for which the {@link yfiles.graph.IFoldingView#expand expanded} state will be returned. - * @returns {boolean} true, if the group node can be {@link yfiles.graph.IFoldingView#collapse collapsed}. + * @param groupNode The group node for which the {@link #expand expanded} state will be returned. + * @returns true, if the group node can be {@link #collapse collapsed}. * @abstract */ isExpanded(groupNode:yfiles.graph.INode):boolean; @@ -52461,15 +51568,15 @@ declare namespace system{ * folding edges always have at least one * {@link yfiles.graph.IFoldingView#getMasterEdges master edge}, while all other folding items don't have a corresponding master item in the master graph. *

    - * @param {yfiles.graph.IModelItem} item One of the items that are {@link yfiles.graph.IGraph#contains contained} in the {@link yfiles.graph.IFoldingView#graph}. - * @returns {boolean} Whether the item is in folding state and is not an exact copy of an item in the {@link yfiles.graph.FoldingManager#masterGraph}. + * @param item One of the items that are {@link #contains contained} in the {@link #graph}. + * @returns Whether the item is in folding state and is not an exact copy of an item in the {@link #masterGraph}. * @abstract */ isInFoldingState(item:yfiles.graph.IModelItem):boolean; /** * Adds the given listener for the GroupCollapsed event that occurs whenever a group has been * {@link yfiles.graph.IFoldingView#collapse}d. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IFoldingView#removeGroupCollapsedListener * @abstract */ @@ -52477,7 +51584,7 @@ declare namespace system{ /** * Removes the given listener for the GroupCollapsed event that occurs whenever a group has been * {@link yfiles.graph.IFoldingView#collapse}d. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IFoldingView#addGroupCollapsedListener * @abstract */ @@ -52485,7 +51592,7 @@ declare namespace system{ /** * Adds the given listener for the GroupExpanded event that occurs whenever a group has been * {@link yfiles.graph.IFoldingView#expand}ed. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IFoldingView#removeGroupExpandedListener * @abstract */ @@ -52493,7 +51600,7 @@ declare namespace system{ /** * Removes the given listener for the GroupExpanded event that occurs whenever a group has been * {@link yfiles.graph.IFoldingView#expand}ed. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IFoldingView#addGroupExpandedListener * @abstract */ @@ -52502,9 +51609,9 @@ declare namespace system{ * Provides a reference to the {@link yfiles.graph.IGraph} implementation that provides the actual view data. *

    * The instance has an implementation of this interface in its {@link yfiles.graph.ILookup} that has been obtained from the - * {@link yfiles.graph.FoldingManager}'s CreateFoldingView set of methods. The instance holds the elements in the view only, which - * in general is a subset of the {@link yfiles.graph.FoldingManager#masterGraph}. Also note that the elements are not the same references as their - * {@link yfiles.graph.IFoldingView#getMasterItem masters}, they are copies that may share the same attributes. + * {@link yfiles.graph.FoldingManager}'s {@link yfiles.graph.FoldingManager#createFoldingView} set of methods. The instance holds the + * elements in the view only, which in general is a subset of the {@link yfiles.graph.FoldingManager#masterGraph}. Also note that the elements are not the same references + * as their {@link yfiles.graph.IFoldingView#getMasterItem masters}, they are copies that may share the same attributes. *

    * @abstract * @type {yfiles.graph.IGraph} @@ -52714,11 +51821,12 @@ declare namespace system{ *

    * The added instance will be returned. *

    - * @param {yfiles.graph.IEdge} edge The edge to which the bend will be added. - * @param {yfiles.geometry.Point} location the coordinates to use for the newly created bend - * @param {number} [index=-1] The index for the newly added bend; a negative value (which is the default) indicates that the bend should be appended + * @param edge The edge to which the bend will be added. + * @param location the coordinates to use for the newly created bend + * @param [index=-1] The index for the newly added bend; a negative value (which is the default) indicates that the bend should be appended * to the end of the list of bends. - * @returns {yfiles.graph.IBend} a newly created live bend + * @returns a newly created live bend + * @throws {Stubs.Exceptions.ArgumentError} edge is not in this graph. * @see yfiles.graph.IGraph#remove * @see yfiles.graph.IGraph#setBendLocation * @abstract @@ -52726,19 +51834,22 @@ declare namespace system{ addBend(edge:yfiles.graph.IEdge,location:yfiles.geometry.Point,index?:number):yfiles.graph.IBend; /** * Adds bends with the given locations to the end of the bend list of the given edge. - * @param {yfiles.graph.IEdge} edge The edge to add the bends to. - * @param {yfiles.collections.IEnumerable.} locations The locations of the bends. + * @param edge The edge to add the bends to. + * @param locations The locations of the bends. + * @throws {Stubs.Exceptions.ArgumentError} edge is not in this graph. */ addBends?(edge:yfiles.graph.IEdge,locations:yfiles.collections.IEnumerable):void; /** - * Add a label to the given item using the text as the initial label text and label model parameter, style and tag. - * @param {yfiles.graph.ILabelOwner} owner the item to add the label to. - * @param {string} text the initial text of the label - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] The label model parameter instance to use. - * @param {yfiles.styles.ILabelStyle} [style=null] The style to use for the label - * @param {yfiles.geometry.Size} [preferredSize=null] The initial values to use for the {@link yfiles.graph.ILabel#preferredSize}. - * @param {Object} [tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.ILabel} the newly created label + * Add a label to the given node or edge using the text as the initial label text and label model parameter, style and + * tag. + * @param owner The node or edge to add the label to. + * @param text The initial text of the label + * @param [layoutParameter=null] The label model parameter instance to use. + * @param [style=null] The style to use for the label + * @param [preferredSize=null] The initial values to use for the {@link #preferredSize}. + * @param [tag=null] The initial {@link #tag} to assign. + * @returns the newly created label + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. * @see yfiles.graph.IGraph#addLabelAddedListener * @see yfiles.graph.IGraph#setLabelText * @see yfiles.graph.IGraph#setLabelLayoutParameter @@ -52748,15 +51859,17 @@ declare namespace system{ */ addLabel(owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object):yfiles.graph.ILabel; /** - * Add a label to the given item using the text as the initial label text and label model parameter, style and tag. + * Add a label to the given node or edge using the text as the initial label text and label model parameter, style and + * tag. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ILabelOwner} options.owner the item to add the label to. - * @param {string} options.text the initial text of the label - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] The label model parameter instance to use. - * @param {yfiles.styles.ILabelStyle} [options.style=null] The style to use for the label - * @param {yfiles.geometry.Size} [options.preferredSize=null] The initial values to use for the {@link yfiles.graph.ILabel#preferredSize}. - * @param {Object} [options.tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.ILabel} the newly created label + * @param options.owner The node or edge to add the label to. + * @param options.text The initial text of the label + * @param [options.layoutParameter=null] The label model parameter instance to use. + * @param [options.style=null] The style to use for the label + * @param [options.preferredSize=null] The initial values to use for the {@link #preferredSize}. + * @param [options.tag=null] The initial {@link #tag} to assign. + * @returns the newly created label + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. * @see yfiles.graph.IGraph#addLabelAddedListener * @see yfiles.graph.IGraph#setLabelText * @see yfiles.graph.IGraph#setLabelLayoutParameter @@ -52771,15 +51884,16 @@ declare namespace system{ * The locationParameter determines the location of the port. *

    *

    - * Depending on the implementation this method may throw an {@link Stubs.Exceptions.NotSupportedError} if the type of the owner - * instance does not support adding of ports. + * Depending on the implementation this method may throw an {@link yfiles.lang.Exception} if the type of the owner instance does + * not support adding of ports. *

    - * @param {yfiles.graph.IPortOwner} owner the owner to add the port instance to. - * @param {yfiles.graph.IPortLocationModelParameter} [locationParameter=null] the parameter to use for the port to determine its location. - * @param {yfiles.styles.IPortStyle} [style=null] the style to initially assign to the {@link yfiles.graph.IPort#style} property, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IPort} the newly created port + * @param owner the owner to add the port instance to. + * @param [locationParameter=null] the parameter to use for the port to determine its location. + * @param [style=null] the style to initially assign to the {@link #style} property, e.g. {@link #INSTANCE}. + * @param [tag=null] the initial {@link #tag} to assign. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. * @see yfiles.graph.IGraph#addPortAddedListener * @see yfiles.styles.VoidPortStyle#INSTANCE * @abstract @@ -52791,16 +51905,17 @@ declare namespace system{ * The locationParameter determines the location of the port. *

    *

    - * Depending on the implementation this method may throw an {@link Stubs.Exceptions.NotSupportedError} if the type of the owner - * instance does not support adding of ports. + * Depending on the implementation this method may throw an {@link yfiles.lang.Exception} if the type of the owner instance does + * not support adding of ports. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPortOwner} options.owner the owner to add the port instance to. - * @param {yfiles.graph.IPortLocationModelParameter} [options.locationParameter=null] the parameter to use for the port to determine its location. - * @param {yfiles.styles.IPortStyle} [options.style=null] the style to initially assign to the {@link yfiles.graph.IPort#style} property, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [options.tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IPort} the newly created port + * @param options.owner the owner to add the port instance to. + * @param [options.locationParameter=null] the parameter to use for the port to determine its location. + * @param [options.style=null] the style to initially assign to the {@link #style} property, e.g. {@link #INSTANCE}. + * @param [options.tag=null] the initial {@link #tag} to assign. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. * @see yfiles.graph.IGraph#addPortAddedListener * @see yfiles.styles.VoidPortStyle#INSTANCE * @abstract @@ -52808,25 +51923,27 @@ declare namespace system{ addPort(options:{owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,style?:yfiles.styles.IPortStyle,tag?:Object}):yfiles.graph.IPort; /** * Add a port to the given port owner using the absolute coordinates as the new initial position of the port anchor. - * @param {yfiles.graph.IPortOwner} owner the owner to add the port instance to. - * @param {yfiles.geometry.Point} location the location to use for the port to determine its location. This is passed to the {@link yfiles.graph.IGraph#createDefaultPortLocationParameter} - * method to determine the initial {@link yfiles.graph.IPortLocationModelParameter} to use. - * @param {yfiles.styles.IPortStyle} [style=null] the style to initially assign to the {@link yfiles.graph.IPort#style} property, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IPort} the newly created port + * @param owner the owner to add the port instance to. + * @param location the location to use for the port to determine its location. This is passed to the {@link #createDefaultPortLocationParameter} + * method to determine the initial {@link } to use. + * @param [style=null] the style to initially assign to the {@link #style} property, e.g. {@link #INSTANCE}. + * @param [tag=null] the initial {@link #tag} to assign. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ addPortAt?(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point,style?:yfiles.styles.IPortStyle,tag?:Object):yfiles.graph.IPort; /** * Add a port to the given port owner using the absolute coordinates as the new initial position of the port anchor. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPortOwner} options.owner the owner to add the port instance to. - * @param {yfiles.geometry.Point} options.location the location to use for the port to determine its location. This is passed to the {@link yfiles.graph.IGraph#createDefaultPortLocationParameter} - * method to determine the initial {@link yfiles.graph.IPortLocationModelParameter} to use. - * @param {yfiles.styles.IPortStyle} [options.style=null] the style to initially assign to the {@link yfiles.graph.IPort#style} property, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [options.tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IPort} the newly created port + * @param options.owner the owner to add the port instance to. + * @param options.location the location to use for the port to determine its location. This is passed to the {@link #createDefaultPortLocationParameter} + * method to determine the initial {@link } to use. + * @param [options.style=null] the style to initially assign to the {@link #style} property, e.g. {@link #INSTANCE}. + * @param [options.tag=null] the initial {@link #tag} to assign. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ addPortAt?(options:{owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point,style?:yfiles.styles.IPortStyle,tag?:Object}):yfiles.graph.IPort; /** @@ -52835,18 +51952,19 @@ declare namespace system{ * The port style for the newly-created port is taken from the graph's defaults. The location parameter is determined by * delegating to {@link yfiles.graph.IGraph#addPortAt}. *

    - * @param {yfiles.graph.INode} node The owner of the port. - * @param {yfiles.geometry.Point} relativeLocation The offset of the port relative to the center of the {@link yfiles.graph.INode#layout}. - * @returns {yfiles.graph.IPort} The newly added port instance. + * @param node The owner of the port. + * @param relativeLocation The offset of the port relative to the center of the {@link #layout}. + * @returns The newly added port instance. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. */ addRelativePort?(node:yfiles.graph.INode,relativeLocation:yfiles.geometry.Point):yfiles.graph.IPort; /** * Convenience method that uses the {@link yfiles.graph.UndoEngine} from the {@link yfiles.graph.IGraph}'s {@link yfiles.graph.ILookup} to * {@link yfiles.graph.UndoEngine#addUnit add a unit}. - * @param {string} undoName The name of the undo operation. - * @param {string} redoName The name of the redo operation. - * @param {function(): void} undo The undo action. - * @param {function(): void} redo The redo action. + * @param undoName The name of the undo operation. + * @param redoName The name of the redo operation. + * @param undo The undo action. + * @param redo The redo action. */ addUndoUnit?(undoName:string,redoName:string,undo:()=>void,redo:()=>void):void; /** @@ -52856,7 +51974,8 @@ declare namespace system{ * any {@link yfiles.graph.IGraph#getChildren children}, its bounds will be left unchanged. This will also respect any {@link yfiles.input.INodeSizeConstraintProvider}s * for {@link yfiles.graph.INode}s, that are available in the lookup of the groupNode. *

    - * @param {yfiles.graph.INode} groupNode The group node to adjust the size of. + * @param groupNode The group node to adjust the size of. + * @throws {Stubs.Exceptions.ArgumentError} groupNode is not in this graph. * @see yfiles.graph.IGroupBoundsCalculator * @see yfiles.input.INodeSizeConstraintProvider * @see yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea @@ -52870,14 +51989,14 @@ declare namespace system{ * This implementation uses the {@link yfiles.graph.ILabel#style style's} renderer for the label to determine the preferred rendering size. This is useful * after the label's content or style have been changed. *

    - * @param {yfiles.graph.ILabel} label The label to adjust the size for. + * @param label The label to adjust the size for. * @see yfiles.graph.ILabelDefaults#autoAdjustPreferredSize */ adjustLabelPreferredSize?(label:yfiles.graph.ILabel):void; /** * Convenience method that runs a layout on a graph using {@link yfiles.layout.LayoutGraphAdapter#applyLayout}. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout. - * @param {yfiles.layout.LayoutData} [layoutData=null] The layout data. + * @param layout The layout. + * @param [layoutData=null] The layout data. * @see yfiles.view.GraphComponent#morphLayout */ applyLayout?(layout:yfiles.layout.ILayoutAlgorithm,layoutData?:yfiles.layout.LayoutData):void; @@ -52922,14 +52041,14 @@ declare namespace system{ * changes or on certain events, you should use custom {@link yfiles.graph.IUndoUnit} *

    * Type parameter T: The type of the items that will be modified subsequently. - * @param {string} undoName The {@link yfiles.graph.IUndoUnit#undoName} of the {@link yfiles.graph.IUndoUnit} that will be placed into the undo queue after {@link yfiles.graph.ICompoundEdit#commit} has + * @param undoName The {@link #undoName} of the {@link } that will be placed into the undo queue after {@link #commit} has * been called. - * @param {string} redoName The {@link yfiles.graph.IUndoUnit#redoName} of the {@link yfiles.graph.IUndoUnit} that will be placed into the undo queue after {@link yfiles.graph.ICompoundEdit#commit} has + * @param redoName The {@link #redoName} of the {@link } that will be placed into the undo queue after {@link #commit} has * been called. - * @param {yfiles.collections.IEnumerable.} items The items that will be changed after this call and before the call to {@link yfiles.graph.ICompoundEdit#commit}. - * @param {function(T): yfiles.graph.IMementoSupport} [provider=null] The provider for the {@link yfiles.graph.IMementoSupport} of the items. if the provider returns null for a given item, changes + * @param items The items that will be changed after this call and before the call to {@link #commit}. + * @param [provider=null] The provider for the {@link } of the items. if the provider returns null for a given item, changes * to this item are not being recorded. - * @returns {yfiles.graph.ICompoundEdit} An implementation of the {@link yfiles.graph.ICompoundEdit} interface whose {@link yfiles.graph.ICompoundEdit#commit} or {@link yfiles.graph.ICompoundEdit#cancel} + * @returns An implementation of the {@link } interface whose {@link #commit} or {@link #cancel} * methods need to be called after the items have been modified. * @see yfiles.graph.IMementoSupport * @template T @@ -52945,36 +52064,35 @@ declare namespace system{ * Client code needs to make sure that either the {@link yfiles.graph.ICompoundEdit#cancel} or {@link yfiles.graph.ICompoundEdit#commit} * method is called on the returned instance. *

    - * @param {string} undoName The undo name for the compound edit. - * @param {string} redoName The redo name for the compound edit. - * @returns {yfiles.graph.ICompoundEdit} The handle to stop the recording by calling {@link yfiles.graph.ICompoundEdit#cancel} or {@link yfiles.graph.ICompoundEdit#commit} on + * @param undoName The undo name for the compound edit. + * @param redoName The redo name for the compound edit. + * @returns The handle to stop the recording by calling {@link #cancel} or {@link #commit} on * it. */ beginEdit?(undoName:string,redoName:string):yfiles.graph.ICompoundEdit; /** * Calculates the preferred size of a label with the given properties. - * @param {yfiles.graph.ILabelOwner} owner The item that will own the label. - * @param {string} text The text. - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] The label model parameter. - * @param {yfiles.styles.ILabelStyle} [style=null] The label style. - * @param {Object} [tag=null] The tag for the label. - * @returns {yfiles.geometry.Size} The size as calculated by the {@link yfiles.styles.ILabelStyleRenderer}. + * @param owner The item that will own the label. + * @param text The text. + * @param [layoutParameter=null] The label model parameter. + * @param [style=null] The label style. + * @param [tag=null] The tag for the label. + * @returns The size as calculated by the {@link }. */ calculateLabelPreferredSize?(owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,tag?:Object):yfiles.geometry.Size; /** * Calculates the preferred size of a label with the given properties. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ILabelOwner} options.owner The item that will own the label. - * @param {string} options.text The text. - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] The label model parameter. - * @param {yfiles.styles.ILabelStyle} [options.style=null] The label style. - * @param {Object} [options.tag=null] The tag for the label. - * @returns {yfiles.geometry.Size} The size as calculated by the {@link yfiles.styles.ILabelStyleRenderer}. + * @param options.owner The item that will own the label. + * @param options.text The text. + * @param [options.layoutParameter=null] The label model parameter. + * @param [options.style=null] The label style. + * @param [options.tag=null] The tag for the label. + * @returns The size as calculated by the {@link }. */ calculateLabelPreferredSize?(options:{owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,tag?:Object}):yfiles.geometry.Size; /** - * Clears the graph instance, removing all entities in proper order. - * @see yfiles.graph.IGraph#remove + * Clears the graph, removing all items in proper order. * @see yfiles.graph.IGraph#remove */ clear?():void; @@ -52983,15 +52101,16 @@ declare namespace system{ *

    * The edge must be part of this graph at the time of the invocation. This will trigger the corresponding events. *

    - * @param {yfiles.graph.IEdge} edge the edge whose bends will be removed + * @param edge the edge whose bends will be removed + * @throws {Stubs.Exceptions.ArgumentError} edge is not in this graph. * @see yfiles.graph.IGraph#remove * @see yfiles.graph.IGraph#addBendRemovedListener */ clearBends?(edge:yfiles.graph.IEdge):void; /** * Determines whether this graph contains the specified item. - * @param {yfiles.graph.IModelItem} item The item. - * @returns {boolean} true if this graph contains the specified item; otherwise, false. + * @param item The item. + * @returns true if this graph contains the specified item; otherwise, false. * @abstract */ contains(item:yfiles.graph.IModelItem):boolean; @@ -53000,8 +52119,8 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.graph.IGraph#getLabelDefaults label defaults} for the graph to {@link yfiles.graph.ILabelDefaults#getLayoutParameterInstance obtain the parameter instance}. *

    - * @param {yfiles.graph.ILabelOwner} owner The item that is the {@link yfiles.graph.ILabel#owner} of the label in question. - * @returns {yfiles.graph.ILabelModelParameter} The default label layout parameter to use for newly created labels at the item. + * @param owner The item that is the {@link #owner} of the label in question. + * @returns The default label layout parameter to use for newly created labels at the item. * @see yfiles.graph.ILabelDefaults#getLayoutParameterInstance * @see yfiles.graph.IGraph#getLabelDefaults */ @@ -53011,10 +52130,10 @@ declare namespace system{ *

    * If location is null, this method uses the {@link yfiles.graph.IGraph#getPortDefaults port defaults} for the owner to obtain the {@link yfiles.graph.IPortDefaults#getLocationParameterInstance location parameter}. *

    - * @param {yfiles.graph.IPortOwner} owner The owner of the port. - * @param {yfiles.geometry.Point} [location=null] The location in the world coordinate system where the port should be added. - * @returns {yfiles.graph.IPortLocationModelParameter} Either a location model parameter that matches the location, or the default parameter to use for the {@link yfiles.graph.IPortOwner} - * as returned by {@link yfiles.graph.IPortDefaults#getLocationParameterInstance}. + * @param owner The owner of the port. + * @param [location=null] The location in the world coordinate system where the port should be added. + * @returns Either a location model parameter that matches the location, or the default parameter to use for the {@link } + * as returned by {@link #getLocationParameterInstance}. * @see yfiles.graph.IPortLocationModel#createParameter * @see yfiles.graph.IGraph#getPortDefaults */ @@ -53027,13 +52146,13 @@ declare namespace system{ * instances to which the edge will be connected. The edge will be a part of this graph after the method returns. This will * trigger the corresponding events. *

    - * @param {yfiles.graph.INode} source The source node the created edge will connect to. It is up to the implementation to decide which port to use at the + * @param source The source node the created edge will connect to. It is up to the implementation to decide which port to use at the * given node. The implementation may create a new port of the edge. - * @param {yfiles.graph.INode} target The target node the created edge will connect to. It is up to the implementation to decide which port to use at the + * @param target The target node the created edge will connect to. It is up to the implementation to decide which port to use at the * given node. The implementation may create a new port of the edge. - * @param {yfiles.styles.IEdgeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new edge. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] The initial value of the {@link #tag} that will be assigned to the new edge. + * @returns the newly created edge instance * @see yfiles.graph.IGraph#addEdgeCreatedListener * @see yfiles.styles.VoidEdgeStyle#INSTANCE * @abstract @@ -53048,17 +52167,17 @@ declare namespace system{ * trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} options.source The source node the created edge will connect to. It is up to the implementation to decide which port to use at the + * @param options.source The source node the created edge will connect to. It is up to the implementation to decide which port to use at the * given node. The implementation may create a new port of the edge. - * @param {yfiles.graph.INode} options.target The target node the created edge will connect to. It is up to the implementation to decide which port to use at the + * @param options.target The target node the created edge will connect to. It is up to the implementation to decide which port to use at the * given node. The implementation may create a new port of the edge. - * @param {yfiles.styles.IEdgeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new edge. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] The initial value of the {@link #tag} that will be assigned to the new edge. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @param options.bends An array of bends to add to the newly created edge. Each item will be passed to the {@link yfiles.graph.IGraph#addBend} method. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @param options.bends An array of bends to add to the newly created edge. Each item will be passed to the {@link #addBend} method. + * @returns the newly created edge instance * @see yfiles.graph.IGraph#addEdgeCreatedListener * @see yfiles.styles.VoidEdgeStyle#INSTANCE * @abstract @@ -53070,11 +52189,11 @@ declare namespace system{ * The ports must be part of this graph at the time of the invocation. The edge will be a part of this graph after the * method returns. This will trigger the corresponding events. *

    - * @param {yfiles.graph.IPort} sourcePort The source port the created edge will connect to. - * @param {yfiles.graph.IPort} targetPort The target port the created edge will connect to. - * @param {yfiles.styles.IEdgeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new edge. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param sourcePort The source port the created edge will connect to. + * @param targetPort The target port the created edge will connect to. + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] The initial value of the {@link #tag} that will be assigned to the new edge. + * @returns the newly created edge instance * @see yfiles.graph.IGraph#addEdgeCreatedListener * @see yfiles.styles.VoidEdgeStyle#INSTANCE * @abstract @@ -53087,15 +52206,15 @@ declare namespace system{ * method returns. This will trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPort} options.sourcePort The source port the created edge will connect to. - * @param {yfiles.graph.IPort} options.targetPort The target port the created edge will connect to. - * @param {yfiles.styles.IEdgeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new edge. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param options.sourcePort The source port the created edge will connect to. + * @param options.targetPort The target port the created edge will connect to. + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] The initial value of the {@link #tag} that will be assigned to the new edge. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @param options.bends An array of bends to add to the newly created edge. Each item will be passed to the {@link yfiles.graph.IGraph#addBend} method. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @param options.bends An array of bends to add to the newly created edge. Each item will be passed to the {@link #addBend} method. + * @returns the newly created edge instance * @see yfiles.graph.IGraph#addEdgeCreatedListener * @see yfiles.styles.VoidEdgeStyle#INSTANCE * @abstract @@ -53110,11 +52229,11 @@ declare namespace system{ * To create group nodes interactively use the {@link yfiles.input.GraphEditorInputMode} as input mode and enable the * {@link yfiles.input.GraphEditorInputMode#allowGroupingOperations grouping operations}. *

    - * @param {yfiles.graph.INode} [parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. - * @param {yfiles.geometry.Rect} [layout=null] The initial layout to use for the new node. - * @param {yfiles.styles.INodeStyle} [style=null] The style to use for the new node. - * @param {Object} [tag=null] The {@link yfiles.graph.ITagOwner#tag} to assign to the {@link yfiles.graph.INode}. - * @returns {yfiles.graph.INode} The newly created group node. + * @param [parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. + * @param [layout=null] The initial layout to use for the new node. + * @param [style=null] The style to use for the new node. + * @param [tag=null] The {@link #tag} to assign to the {@link }. + * @returns The newly created group node. * @abstract */ createGroupNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; @@ -53128,16 +52247,16 @@ declare namespace system{ * {@link yfiles.input.GraphEditorInputMode#allowGroupingOperations grouping operations}. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. - * @param {yfiles.geometry.Rect} [options.layout=null] The initial layout to use for the new node. - * @param {yfiles.styles.INodeStyle} [options.style=null] The style to use for the new node. - * @param {Object} [options.tag=null] The {@link yfiles.graph.ITagOwner#tag} to assign to the {@link yfiles.graph.INode}. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param [options.parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. + * @param [options.layout=null] The initial layout to use for the new node. + * @param [options.style=null] The style to use for the new node. + * @param [options.tag=null] The {@link #tag} to assign to the {@link }. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @param options.children An array of nodes to create as child nodes of this group node. Each item will be passed to the {@link yfiles.graph.IGraph#createNode} + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @param options.children An array of nodes to create as child nodes of this group node. Each item will be passed to the {@link #createNode} * method. - * @returns {yfiles.graph.INode} The newly created group node. + * @returns The newly created group node. * @abstract */ createGroupNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object,labels?:Array,ports?:Array,children?:Array}):yfiles.graph.INode; @@ -53146,10 +52265,10 @@ declare namespace system{ *

    * The node will be a part of this graph after the method returns. This will trigger the corresponding events. *

    - * @param {yfiles.geometry.Rect} layout The layout to use initially. The values will be copied to the node's {@link yfiles.graph.INode#layout Layout} field - * @param {yfiles.styles.INodeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new node. - * @returns {yfiles.graph.INode} A newly created node instance + * @param layout The layout to use initially. The values will be copied to the node's {@link #layout Layout} field + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] The initial value of the {@link #tag} that will be assigned to the new node. + * @returns A newly created node instance * @see yfiles.graph.IGraph#addNodeCreatedListener * @see yfiles.styles.VoidNodeStyle#INSTANCE * @abstract @@ -53161,13 +52280,13 @@ declare namespace system{ * The node will be a part of this graph after the method returns. This will trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Rect} options.layout The layout to use initially. The values will be copied to the node's {@link yfiles.graph.INode#layout Layout} field - * @param {yfiles.styles.INodeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new node. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param options.layout The layout to use initially. The values will be copied to the node's {@link #layout Layout} field + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] The initial value of the {@link #tag} that will be assigned to the new node. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @returns {yfiles.graph.INode} A newly created node instance + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @returns A newly created node instance * @see yfiles.graph.IGraph#addNodeCreatedListener * @see yfiles.styles.VoidNodeStyle#INSTANCE * @abstract @@ -53175,11 +52294,12 @@ declare namespace system{ createNode(options:{layout:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object,labels?:Array,ports?:Array}):yfiles.graph.INode; /** * Creates a new ordinary node as a direct descendant of parent using the given layout and style. - * @param {yfiles.graph.INode} [parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. - * @param {yfiles.geometry.Rect} [layout=null] The layout to use initially. The values will be copied to the node's {@link yfiles.graph.INode#layout Layout} field. - * @param {yfiles.styles.INodeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] The {@link yfiles.graph.ITagOwner#tag} to assign to the {@link yfiles.graph.INode}. - * @returns {yfiles.graph.INode} The newly created node. + * @param [parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. + * @param [layout=null] The layout to use initially. The values will be copied to the node's {@link #layout Layout} field. + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] The {@link #tag} to assign to the {@link }. + * @returns The newly created node. + * @throws {Stubs.Exceptions.ArgumentError} parent is not in this graph. * @see yfiles.graph.IGraph#setParent * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createGroupNode @@ -53189,14 +52309,15 @@ declare namespace system{ /** * Creates a new ordinary node as a direct descendant of parent using the given layout and style. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. - * @param {yfiles.geometry.Rect} [options.layout=null] The layout to use initially. The values will be copied to the node's {@link yfiles.graph.INode#layout Layout} field. - * @param {yfiles.styles.INodeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] The {@link yfiles.graph.ITagOwner#tag} to assign to the {@link yfiles.graph.INode}. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param [options.parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. + * @param [options.layout=null] The layout to use initially. The values will be copied to the node's {@link #layout Layout} field. + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] The {@link #tag} to assign to the {@link }. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @returns {yfiles.graph.INode} The newly created node. + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @returns The newly created node. + * @throws {Stubs.Exceptions.ArgumentError} parent is not in this graph. * @see yfiles.graph.IGraph#setParent * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createGroupNode @@ -53208,10 +52329,10 @@ declare namespace system{ *

    * The node will be a part of this graph after the method returns. This will trigger the corresponding events. *

    - * @param {yfiles.geometry.Point} location the initial coordinates of the center of the node's {@link yfiles.graph.INode#layout Layout} property - * @param {yfiles.styles.INodeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new node. - * @returns {yfiles.graph.INode} A newly created node instance + * @param location the initial coordinates of the center of the node's {@link #layout Layout} property + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] The initial value of the {@link #tag} that will be assigned to the new node. + * @returns A newly created node instance * @see yfiles.graph.IGraph#addNodeCreatedListener */ createNodeAt?(location:yfiles.geometry.Point,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; @@ -53221,13 +52342,13 @@ declare namespace system{ * The node will be a part of this graph after the method returns. This will trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Point} options.location the initial coordinates of the center of the node's {@link yfiles.graph.INode#layout Layout} property - * @param {yfiles.styles.INodeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new node. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param options.location the initial coordinates of the center of the node's {@link #layout Layout} property + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] The initial value of the {@link #tag} that will be assigned to the new node. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @returns {yfiles.graph.INode} A newly created node instance + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @returns A newly created node instance * @see yfiles.graph.IGraph#addNodeCreatedListener */ createNodeAt?(options:{location:yfiles.geometry.Point,style?:yfiles.styles.INodeStyle,tag?:Object,labels?:Array,ports?:Array}):yfiles.graph.INode; @@ -53236,8 +52357,9 @@ declare namespace system{ *

    * Note that an edge that is both incoming and outgoing will be counted twice. *

    - * @param {yfiles.graph.IPort} port The port owner to count the degree of. - * @returns {number} The number of edges that are incident to the port. + * @param port The port owner to count the degree of. + * @returns The number of edges that are incident to the port. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. */ degree?(port:yfiles.graph.IPort):number; /** @@ -53245,8 +52367,9 @@ declare namespace system{ *

    * Note that an edge that is both incoming and outgoing will be counted twice. *

    - * @param {yfiles.graph.IPortOwner} owner The port owner to count the degree of. - * @returns {number} The number of edges that are incident to the port owner. + * @param owner The port owner to count the degree of. + * @returns The number of edges that are incident to the port owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ degree?(owner:yfiles.graph.IPortOwner):number; /** @@ -53258,10 +52381,10 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the adjacent * edges via a foreach loop. *

    - * @param {yfiles.graph.AdjacencyTypes} [type=yfiles.graph.AdjacencyTypes.ALL] The type of adjacency to consider. - * @param {yfiles.graph.IPortOwner} owner the port owner to check - * @returns {yfiles.collections.IListEnumerable.} An enumeration of all adjacent edges of the given type. - * @throws {Stubs.Exceptions.ArgumentError} If owner is not in this graph + * @param [type=yfiles.graph.AdjacencyTypes.ALL] The type of adjacency to consider. + * @param owner the port owner to check + * @returns An enumeration of all adjacent edges of the given type. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. * @see yfiles.graph.IGraph#inEdgesAt * @see yfiles.graph.IGraph#outEdgesAt * @see yfiles.graph.AdjacencyTypes @@ -53276,10 +52399,10 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the adjacent * edges via a foreach loop. *

    - * @param {yfiles.graph.IPort} port the port to check - * @param {yfiles.graph.AdjacencyTypes} [type=yfiles.graph.AdjacencyTypes.ALL] The type of adjacency to consider. - * @returns {yfiles.collections.IListEnumerable.} An enumeration of all adjacent edges of the given type. - * @throws {Stubs.Exceptions.ArgumentError} If port is not in this graph + * @param port the port to check + * @param [type=yfiles.graph.AdjacencyTypes.ALL] The type of adjacency to consider. + * @returns An enumeration of all adjacent edges of the given type. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. * @see yfiles.graph.IGraph#inEdgesAt * @see yfiles.graph.IGraph#outEdgesAt * @see yfiles.graph.AdjacencyTypes @@ -53288,56 +52411,59 @@ declare namespace system{ edgesAt(port:yfiles.graph.IPort,type?:yfiles.graph.AdjacencyTypes):yfiles.collections.IListEnumerable; /** * Returns an enumerable over the children of the provided node. - * @param {yfiles.graph.INode} node The node for which to return the children or null if the top-level nodes should be returned. - * @returns {yfiles.collections.IListEnumerable.} All nodes that have node as their {@link yfiles.graph.IGraph#getParent parent}. - * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph + * @param node The node for which to return the children or null if the top-level nodes should be returned. + * @returns All nodes that have node as their {@link #getParent parent}. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. * @abstract */ getChildren(node:yfiles.graph.INode):yfiles.collections.IListEnumerable; /** * Finds an edge that connects sourcePort and targetPort in the given graph. - * @param {yfiles.graph.IPort} sourcePort The {@link yfiles.graph.IEdge#sourcePort} of the edge to find. - * @param {yfiles.graph.IPort} targetPort The {@link yfiles.graph.IEdge#targetPort} of the edge to find. - * @returns {yfiles.graph.IEdge} An edge that satisfies the constraints or null, if none was found. + * @param sourcePort The {@link #sourcePort} of the edge to find. + * @param targetPort The {@link #targetPort} of the edge to find. + * @returns An edge that satisfies the constraints or null, if none was found. + * @throws {Stubs.Exceptions.ArgumentError} sourcePort or targetPort are not in this graph. */ getEdge?(sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):yfiles.graph.IEdge; /** * Finds an edge that connects from and to in the given graph. - * @param {yfiles.graph.IPortOwner} from The {@link yfiles.graph.IEdge#sourcePort} owner of the edge to find. - * @param {yfiles.graph.IPortOwner} to The {@link yfiles.graph.IEdge#targetPort} owner of the edge to find. - * @returns {yfiles.graph.IEdge} An edge that satisfies the constraints or null, if none was found. + * @param from The {@link #sourcePort} owner of the edge to find. + * @param to The {@link #targetPort} owner of the edge to find. + * @returns An edge that satisfies the constraints or null, if none was found. + * @throws {Stubs.Exceptions.ArgumentError} from or to are not in this graph. */ getEdge?(from:yfiles.graph.IPortOwner,to:yfiles.graph.IPortOwner):yfiles.graph.IEdge; /** * Gets the {@link yfiles.graph.ILabelDefaults label defaults} for a given {@link yfiles.graph.ILabelOwner} in the context of the graph. - * @param {yfiles.graph.ILabelOwner} owner The item that the label defaults are returned for. If this is a group node, the {@link yfiles.graph.IGraph#groupNodeDefaults}'s {@link yfiles.graph.INodeDefaults#labels label defaults} will be returned, - * otherwise the {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} {@link yfiles.graph.INodeDefaults#labels labels} will be returned. - * @returns {yfiles.graph.ILabelDefaults} Appropriate {@link yfiles.graph.ILabelDefaults} for the provided owner. + * @param owner The item that the label defaults are returned for. If this is a group node, the {@link #groupNodeDefaults}'s {@link #labels label defaults} will be returned, + * otherwise the {@link #nodeDefaults} or {@link #edgeDefaults} {@link #labels labels} will be returned. + * @returns Appropriate {@link } for the provided owner. */ getLabelDefaults?(owner:yfiles.graph.ILabelOwner):yfiles.graph.ILabelDefaults; /** * Returns the parent node of the node or null if node is a top-level node. - * @param {yfiles.graph.INode} node The node to retrieve the parent node for. - * @returns {yfiles.graph.INode} The parent node in this hierarchy or null if node is a top-level node. - * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph or is null. + * @param node The node to retrieve the parent node for. + * @returns The parent node in this hierarchy or null if node is a top-level node. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. * @abstract */ getParent(node:yfiles.graph.INode):yfiles.graph.INode; /** * Gets the {@link yfiles.graph.IPortDefaults port defaults} for a given {@link yfiles.graph.IPortOwner} in the context of the graph. - * @param {yfiles.graph.IPortOwner} owner The item that the label defaults are returned for. If this is a group node, the {@link yfiles.graph.IGraph#groupNodeDefaults}'s {@link yfiles.graph.INodeDefaults#ports port defaults} will be returned, - * otherwise the {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} {@link yfiles.graph.INodeDefaults#ports ports} will be returned. - * @returns {yfiles.graph.IPortDefaults} Appropriate {@link yfiles.graph.IPortDefaults} for the provided owner. + * @param owner The item that the label defaults are returned for. If this is a group node, the {@link #groupNodeDefaults}'s {@link #ports port defaults} will be returned, + * otherwise the {@link #nodeDefaults} or {@link #edgeDefaults} {@link #ports ports} will be returned. + * @returns Appropriate {@link } for the provided owner. */ getPortDefaults?(owner:yfiles.graph.IPortOwner):yfiles.graph.IPortDefaults; /** * Groups the nodes in children into the provided group node. *

    * The parent needs to be a group node at the time of the invocation. This operation is basically the same as calling {@link yfiles.graph.IGraph#setParent} - * for each node in the children enumerable whose parent is not part of the set. + * for each node in children whose parent is not part of the set. *

    - * @param {yfiles.graph.INode} parent The node to use as the parent in the grouping hierarchy. - * @param {yfiles.collections.IEnumerable.} children The children to group into the group node. + * @param parent The node to use as the parent in the grouping hierarchy. + * @param children The children to group into the group node. + * @throws {Stubs.Exceptions.ArgumentError} parent or one of children is not in this graph. * @see yfiles.graph.IGraph#groupNodes * @see yfiles.graph.IGraph#setParent * @see yfiles.graph.IGraph#createGroupNode @@ -53348,8 +52474,9 @@ declare namespace system{ *

    * The group node will be created at the common ancestor level of all nodes in children. *

    - * @param {yfiles.collections.IEnumerable.} children The children to group into the new group node. - * @returns {yfiles.graph.INode} The newly created group node. + * @param children The children to group into the new group node. + * @returns The newly created group node. + * @throws {Stubs.Exceptions.ArgumentError} One of children is not in this graph. * @see yfiles.graph.GroupingSupport#getNearestCommonAncestor * @see yfiles.graph.IGraph#groupNodes */ @@ -53360,25 +52487,28 @@ declare namespace system{ * The group node will be created at the common ancestor level of all nodes in children. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.collections.IEnumerable.} options.children The children to group into the new group node. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param options.children The children to group into the new group node. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @returns {yfiles.graph.INode} The newly created group node. + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @returns The newly created group node. + * @throws {Stubs.Exceptions.ArgumentError} One of children is not in this graph. * @see yfiles.graph.GroupingSupport#getNearestCommonAncestor * @see yfiles.graph.IGraph#groupNodes */ groupNodes?(options:{children:yfiles.collections.IEnumerable,labels?:Array,ports?:Array}):yfiles.graph.INode; /** * Calculates the number of incoming edges at the given {@link yfiles.graph.IPort} for this graph. - * @param {yfiles.graph.IPort} port The port to count the incoming edges of. - * @returns {number} The number of edges that have the port as their target port. + * @param port The port to count the incoming edges of. + * @returns The number of edges that have the port as their target port. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. */ inDegree?(port:yfiles.graph.IPort):number; /** * Calculates the number of incoming edges at the given {@link yfiles.graph.IPortOwner} for this graph. - * @param {yfiles.graph.IPortOwner} owner The port owner to count the incoming edges of. - * @returns {number} The number of edges that have the port owner as their target port's owner. + * @param owner The port owner to count the incoming edges of. + * @returns The number of edges that have the port owner as their target port's owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ inDegree?(owner:yfiles.graph.IPortOwner):number; /** @@ -53392,8 +52522,9 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the incoming * edges via a foreach loop. *

    - * @param {yfiles.graph.IPort} port The port of the edges. - * @returns {yfiles.collections.IListEnumerable.} An enumerable for the edges. + * @param port The port of the edges. + * @returns An enumerable for the edges. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. */ inEdgesAt?(port:yfiles.graph.IPort):yfiles.collections.IListEnumerable; /** @@ -53407,8 +52538,9 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the incoming * edges via a foreach loop. *

    - * @param {yfiles.graph.IPortOwner} owner The owner of the edges. - * @returns {yfiles.collections.IListEnumerable.} An enumerable for the edges. + * @param owner The owner of the edges. + * @returns An enumerable for the edges. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ inEdgesAt?(owner:yfiles.graph.IPortOwner):yfiles.collections.IListEnumerable; /** @@ -53424,11 +52556,11 @@ declare namespace system{ /** * Returns whether the given node is considered a group node. *

    - * Group nodes may have children but do not necessarily need to have {@link yfiles.graph.IGraph#getChildren children}. + * Group nodes may have {@link yfiles.graph.IGraph#getChildren children} but do not necessarily have to. *

    - * @param {yfiles.graph.INode} node The node to check. - * @returns {boolean} Whether the node is considered a group node. - * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph. + * @param node The node to check. + * @returns Whether the node is considered a group node. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. * @see yfiles.graph.IGraph#getChildren * @see yfiles.graph.IGraph#setIsGroupNode * @abstract @@ -53440,20 +52572,23 @@ declare namespace system{ * Neighbors are calculated by going through all {@link yfiles.graph.IPortOwner#ports} and inspecting the {@link yfiles.graph.IGraph#edgesAt edges at these ports}, collecting the * {@link yfiles.graph.IEdge#opposite}s. *

    - * @param {yfiles.graph.INode} node The node. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all neighbor nodes. + * @param node The node. + * @returns An enumerable over all neighbors. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. */ neighbors?(node:yfiles.graph.INode):yfiles.collections.IEnumerable; /** * Calculates the number of outgoing edges at the given {@link yfiles.graph.IPort} for this graph. - * @param {yfiles.graph.IPort} port The port to count the outgoing edges of. - * @returns {number} The number of edges that have the port as their source port. + * @param port The port to count the outgoing edges of. + * @returns The number of edges that have the port as their source port. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. */ outDegree?(port:yfiles.graph.IPort):number; /** * Calculates the number of outgoing edges at the given {@link yfiles.graph.IPortOwner} for this graph. - * @param {yfiles.graph.IPortOwner} owner The port owner to count the outgoing edges of. - * @returns {number} The number of edges that have the port owner as their source port's owner. + * @param owner The port owner to count the outgoing edges of. + * @returns The number of edges that have the port owner as their source port's owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ outDegree?(owner:yfiles.graph.IPortOwner):number; /** @@ -53467,8 +52602,9 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the outgoing * edges via a foreach loop. *

    - * @param {yfiles.graph.IPort} port The owner of the edges. - * @returns {yfiles.collections.IListEnumerable.} An enumerable for the edges. + * @param port The owner of the edges. + * @returns An enumerable for the edges. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. */ outEdgesAt?(port:yfiles.graph.IPort):yfiles.collections.IListEnumerable; /** @@ -53482,8 +52618,9 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the outgoing * edges via a foreach loop. *

    - * @param {yfiles.graph.IPortOwner} owner The owner of the edges. - * @returns {yfiles.collections.IListEnumerable.} An enumerable for the edges. + * @param owner The owner of the edges. + * @returns An enumerable for the edges. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ outEdgesAt?(owner:yfiles.graph.IPortOwner):yfiles.collections.IListEnumerable; /** @@ -53491,8 +52628,9 @@ declare namespace system{ *

    * Predecessors are calculated by going through all {@link yfiles.graph.IPortOwner#ports} and inspecting the {@link yfiles.graph.IGraph#inEdgesAt incoming edges at these ports}, collecting the {@link yfiles.graph.IEdge#sourcePort} {@link yfiles.graph.IPort#owner}s. *

    - * @param {yfiles.graph.INode} node The node. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all predecessors. + * @param node The node. + * @returns An enumerable over all predecessors. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. */ predecessors?(node:yfiles.graph.INode):yfiles.collections.IEnumerable; /** @@ -53520,24 +52658,25 @@ declare namespace system{ *

    * If the item is a {@link yfiles.graph.ILabel label} the {@link yfiles.graph.IGraph#addLabelRemovedListener LabelRemoved} event will be triggered. *

    - * @param {yfiles.graph.IModelItem} item the live item to be removed from this graph instance - * @throws {Stubs.Exceptions.ArgumentError} item is not part of the graph. + * @param item the live item to be removed from this graph instance + * @throws {Stubs.Exceptions.ArgumentError} item is not in this graph. * @abstract */ remove(item:yfiles.graph.IModelItem):void; /** * Reverses an edge by {@link yfiles.graph.IGraph#setEdgePorts setting source and target port} to {@link yfiles.graph.IEdge#targetPort} and {@link yfiles.graph.IEdge#sourcePort}. *

    - * Also, this method will reverse the bends by clearing them and reinserting them in reverse order if there is more than - * one bend. + * This also reverses the bends by clearing them and reinserting them in reverse order if there is more than one bend. *

    - * @param {yfiles.graph.IEdge} edge The edge to reverse. + * @param edge The edge to reverse. + * @throws {Stubs.Exceptions.ArgumentError} edge is not in this graph. */ reverse?(edge:yfiles.graph.IEdge):void; /** * Modifies the location of the given bend. - * @param {yfiles.graph.IBend} bend the bend whose location is to be modified - * @param {yfiles.geometry.Point} location the new location of the bend + * @param bend the bend whose location is to be modified + * @param location the new location of the bend + * @throws {Stubs.Exceptions.ArgumentError} bend is not in this graph. * @see yfiles.graph.IGraph#addBend * @abstract */ @@ -53548,9 +52687,10 @@ declare namespace system{ * This will trigger an {@link yfiles.graph.IGraph#addEdgePortsChangedListener EdgePortsChanged} event if source or target ports * differ from the current ones. Both ports and the edge must belong to the current graph instance. *

    - * @param {yfiles.graph.IEdge} edge The edge to change the ports. - * @param {yfiles.graph.IPort} sourcePort The new source port instance. - * @param {yfiles.graph.IPort} targetPort The new target port instance. + * @param edge The edge to change the ports. + * @param sourcePort The new source port instance. + * @param targetPort The new target port instance. + * @throws {Stubs.Exceptions.ArgumentError} Either edge, sourcePort, or targetPort are not in this graph. * @abstract */ setEdgePorts(edge:yfiles.graph.IEdge,sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):void; @@ -53558,12 +52698,12 @@ declare namespace system{ * Determines whether the given node should be considered a group node. *

    * Group nodes may have {@link yfiles.graph.IGraph#getChildren children} but do not necessarily need to have one. Attempting to set a node to the - * non-group-node-status while it has children at the same time will result in an {@link Stubs.Exceptions.InvalidOperationError}. + * non-group-node-status while it has children at the same time will result in an {@link yfiles.lang.Exception}. *

    - * @param {yfiles.graph.INode} node The node to set the group node status for. - * @param {boolean} isGroupNode Whether to make the node a group node. - * @throws {Stubs.Exceptions.InvalidOperationError} If node is the root or currently has children and isGroupNode is false. - * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph. + * @param node The node to set the group node status for. + * @param isGroupNode Whether to make the node a group node. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. + * @throws {Stubs.Exceptions.InvalidOperationError} node is null or currently has children and isGroupNode is false. * @see yfiles.graph.IGraph#getChildren * @see yfiles.graph.IGraph#isGroupNode * @abstract @@ -53571,25 +52711,26 @@ declare namespace system{ setIsGroupNode(node:yfiles.graph.INode,isGroupNode:boolean):void; /** * Sets the label model parameter for the given label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The new parameter. - * @throws {Stubs.Exceptions.ArgumentError} If the layoutParameter cannot be used for this label. - * @throws {Stubs.Exceptions.ArgumentError} If the label does not belong to this graph. + * @param label The label. + * @param layoutParameter The new parameter. + * @throws {Stubs.Exceptions.ArgumentError} label is not in this graph, or layoutParameter cannot be used for label. * @abstract */ setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; /** * Sets the preferred size of the label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.geometry.Size} preferredSize The new preferred size. + * @param label The label. + * @param preferredSize The new preferred size. + * @throws {Stubs.Exceptions.ArgumentError} label is not in this graph. * @see yfiles.graph.ILabel#preferredSize * @abstract */ setLabelPreferredSize(label:yfiles.graph.ILabel,preferredSize:yfiles.geometry.Size):void; /** * Sets the label text of the given label. - * @param {yfiles.graph.ILabel} label the label to modify - * @param {string} text the new text of the label + * @param label the label to modify + * @param text the new text of the label + * @throws {Stubs.Exceptions.ArgumentError} label is not in this graph. * @see yfiles.graph.ILabel#text * @abstract */ @@ -53599,14 +52740,15 @@ declare namespace system{ *

    * This implementation delegates to {@link yfiles.graph.IGraph#setNodeLayout} *

    - * @param {yfiles.graph.INode} node The node to recenter. - * @param {yfiles.geometry.Point} center The new center coordinates of the node in the world coordinate system. + * @param node The node to recenter. + * @param center The new center coordinates of the node in the world coordinate system. */ setNodeCenter?(node:yfiles.graph.INode,center:yfiles.geometry.Point):void; /** * Sets the layout of the given node to the new value. - * @param {yfiles.graph.INode} node a live node that belongs to this graph - * @param {yfiles.geometry.Rect} layout The new layout of the node to assign to its {@link yfiles.graph.INode#layout}. + * @param node a live node that belongs to this graph + * @param layout The new layout of the node to assign to its {@link #layout}. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. * @see yfiles.graph.INode#layout * @abstract */ @@ -53616,10 +52758,9 @@ declare namespace system{ *

    * Use null as parent to make node a top-level node for this graph. *

    - * @param {yfiles.graph.INode} node The node to assign a new parent. - * @param {yfiles.graph.INode} parent The parent group node to assign to node or null to make node a top-level node. - * @throws {Stubs.Exceptions.ArgumentError} If node is null. - * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph + * @param node The node to assign a new parent. + * @param parent The parent group node to assign to node or null to make node a top-level node. + * @throws {Stubs.Exceptions.ArgumentError} Either node or parent are not in this graph. * @see yfiles.graph.IGraph#getParent * @abstract */ @@ -53632,27 +52773,29 @@ declare namespace system{ * method. This might result in the port using a different location, because the model might not support parameters that * result in the given location. This will also trigger an {@link yfiles.graph.IGraph#invalidateDisplays} call. *

    - * @param {yfiles.graph.IPort} port The port to modify - * @param {yfiles.geometry.Point} location the new absolute coordinates of the port + * @param port The port to modify + * @param location the new absolute coordinates of the port + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. * @see yfiles.graph.IGraph#addPort */ setPortLocation?(port:yfiles.graph.IPort,location:yfiles.geometry.Point):void; /** * Sets a new {@link yfiles.graph.IPortLocationModelParameter} for the given port. - * @param {yfiles.graph.IPort} port The port to modify - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter the new parameter that determines the coordinates of the port + * @param port The port to modify + * @param locationParameter the new parameter that determines the coordinates of the port + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph, or locationParameter cannot be used for port. * @abstract */ setPortLocationParameter(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):void; /** * Tries to set the location of the port relative to its {@link yfiles.graph.IPort#owner owner} if the owner is a {@link yfiles.graph.INode node}. *

    - * If the port is not owned by a node that is part of this graph, this method will throw an {@link Stubs.Exceptions.ArgumentError}. - * This method will delegate to {@link yfiles.graph.IGraph#setPortLocation}. + * If the port is not owned by a node that is part of this graph, this method will throw an {@link yfiles.lang.Exception}. This + * method will delegate to {@link yfiles.graph.IGraph#setPortLocation}. *

    - * @param {yfiles.graph.IPort} port the port - * @param {yfiles.geometry.Point} relativeLocation the new coordinate offsets relative to the center of the node's {@link yfiles.graph.INode#layout}'s center. - * @throws {Stubs.Exceptions.ArgumentError} If the port is not owned by a node + * @param port the port + * @param relativeLocation the new coordinate offsets relative to the center of the node's {@link #layout}'s center. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph or has no owner. * @see yfiles.graph.INode#layout */ setRelativePortLocation?(port:yfiles.graph.IPort,relativeLocation:yfiles.geometry.Point):void; @@ -53661,8 +52804,9 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.IPort} port The port that will be assigned the new style - * @param {yfiles.styles.IPortStyle} style The style instance that will be assigned to the port. + * @param port The port that will be assigned the new style + * @param style The style instance that will be assigned to the port. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. * @see yfiles.graph.IPort#style * @see yfiles.graph.IGraph#addPortStyleChangedListener * @see yfiles.styles.VoidPortStyle#INSTANCE @@ -53674,8 +52818,9 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.IEdge} edge The edge that will be assigned the new style - * @param {yfiles.styles.IEdgeStyle} style The style instance that will be assigned to the edge. + * @param edge The edge that will be assigned the new style + * @param style The style instance that will be assigned to the edge. + * @throws {Stubs.Exceptions.ArgumentError} edge is not in this graph. * @see yfiles.graph.IEdge#style * @see yfiles.graph.IGraph#addEdgeStyleChangedListener * @see yfiles.styles.VoidEdgeStyle#INSTANCE @@ -53687,8 +52832,9 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.ILabel} label The label that will be assigned the new style - * @param {yfiles.styles.ILabelStyle} style The style instance that will be assigned to the label. + * @param label The label that will be assigned the new style + * @param style The style instance that will be assigned to the label. + * @throws {Stubs.Exceptions.ArgumentError} label is not in this graph. * @see yfiles.graph.ILabel#style * @see yfiles.graph.IGraph#addLabelStyleChangedListener * @see yfiles.styles.VoidLabelStyle#INSTANCE @@ -53700,8 +52846,9 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.INode} node The node that will be assigned the new style - * @param {yfiles.styles.INodeStyle} style The style instance that will be assigned to the node. + * @param node The node that will be assigned the new style + * @param style The style instance that will be assigned to the node. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. * @see yfiles.graph.INode#style * @see yfiles.graph.IGraph#addNodeStyleChangedListener * @see yfiles.styles.VoidNodeStyle#INSTANCE @@ -53713,8 +52860,9 @@ declare namespace system{ *

    * Successors are calculated by going through all {@link yfiles.graph.IPortOwner#ports} and inspecting the {@link yfiles.graph.IGraph#outEdgesAt outgoing edges at these ports}, collecting the {@link yfiles.graph.IEdge#targetPort} {@link yfiles.graph.IPort#owner}s. *

    - * @param {yfiles.graph.INode} node The node. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all successors. + * @param node The node. + * @returns An enumerable over all successors. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. */ successors?(node:yfiles.graph.INode):yfiles.collections.IEnumerable; /** @@ -53819,7 +52967,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removeGraphTagChangedListener * @abstract @@ -53831,7 +52979,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addGraphTagChangedListener * @abstract @@ -53845,7 +52993,8 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the node creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. + * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createGroupNode * @see yfiles.input.GraphEditorInputMode#addNodeCreatedListener @@ -53861,7 +53010,8 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the node creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. + * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createGroupNode * @see yfiles.input.GraphEditorInputMode#addNodeCreatedListener @@ -53875,7 +53025,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#removeDisplaysInvalidatedListener * @abstract */ @@ -53886,7 +53036,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addDisplaysInvalidatedListener * @abstract */ @@ -53899,7 +53049,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the node removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#removeNodeRemovedListener @@ -53914,7 +53064,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the node removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#addNodeRemovedListener @@ -53927,7 +53077,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#removeNodeStyleChangedListener * @abstract @@ -53939,7 +53089,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#addNodeStyleChangedListener * @abstract @@ -53951,7 +53101,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setNodeLayout * @see yfiles.graph.IGraph#removeNodeLayoutChangedListener * @abstract @@ -53963,7 +53113,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setNodeLayout * @see yfiles.graph.IGraph#addNodeLayoutChangedListener * @abstract @@ -53975,7 +53125,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removeNodeTagChangedListener * @abstract @@ -53987,7 +53137,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addNodeTagChangedListener * @abstract @@ -54001,7 +53151,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the edge creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#createEdge * @see yfiles.input.CreateEdgeInputMode#addEdgeCreatedListener * @see yfiles.graph.IGraph#removeEdgeCreatedListener @@ -54016,7 +53166,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the edge creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#createEdge * @see yfiles.input.CreateEdgeInputMode#addEdgeCreatedListener * @see yfiles.graph.IGraph#addEdgeCreatedListener @@ -54034,7 +53184,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the edge removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#removeEdgeRemovedListener @@ -54052,7 +53202,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the edge removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#addEdgeRemovedListener @@ -54065,7 +53215,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#removeEdgeStyleChangedListener * @abstract @@ -54077,7 +53227,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#addEdgeStyleChangedListener * @abstract @@ -54089,7 +53239,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setEdgePorts * @see yfiles.graph.IGraph#removeEdgePortsChangedListener * @abstract @@ -54101,7 +53251,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setEdgePorts * @see yfiles.graph.IGraph#addEdgePortsChangedListener * @abstract @@ -54113,7 +53263,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removeEdgeTagChangedListener * @abstract @@ -54125,7 +53275,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addEdgeTagChangedListener * @abstract @@ -54139,7 +53289,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the bend creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#addBend * @see yfiles.input.CreateBendInputMode#addBendCreatedListener * @see yfiles.graph.IGraph#removeBendAddedListener @@ -54154,7 +53304,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the bend creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addBend * @see yfiles.input.CreateBendInputMode#addBendCreatedListener * @see yfiles.graph.IGraph#addBendAddedListener @@ -54173,7 +53323,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the bend removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#removeBendRemovedListener @@ -54193,7 +53343,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the bend removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#addBendRemovedListener @@ -54206,7 +53356,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setBendLocation * @see yfiles.graph.IGraph#removeBendLocationChangedListener * @abstract @@ -54218,7 +53368,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setBendLocation * @see yfiles.graph.IGraph#addBendLocationChangedListener * @abstract @@ -54230,7 +53380,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removeBendTagChangedListener * @abstract @@ -54242,7 +53392,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addBendTagChangedListener * @abstract @@ -54256,7 +53406,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the label creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#addLabel * @see yfiles.input.GraphEditorInputMode#addLabelAddedListener * @see yfiles.graph.IGraph#removeLabelAddedListener @@ -54271,7 +53421,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the label creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addLabel * @see yfiles.input.GraphEditorInputMode#addLabelAddedListener * @see yfiles.graph.IGraph#addLabelAddedListener @@ -54289,7 +53439,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the label removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.input.GraphEditorInputMode#addLabelTextChangedListener @@ -54309,7 +53459,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the label removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.input.GraphEditorInputMode#addLabelTextChangedListener @@ -54323,7 +53473,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#removeLabelStyleChangedListener * @abstract @@ -54335,7 +53485,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#addLabelStyleChangedListener * @abstract @@ -54348,7 +53498,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setLabelPreferredSize * @see yfiles.graph.IGraph#removeLabelPreferredSizeChangedListener * @abstract @@ -54361,7 +53511,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setLabelPreferredSize * @see yfiles.graph.IGraph#addLabelPreferredSizeChangedListener * @abstract @@ -54373,7 +53523,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setLabelText * @see yfiles.graph.IGraph#removeLabelTextChangedListener * @abstract @@ -54385,7 +53535,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setLabelText * @see yfiles.graph.IGraph#addLabelTextChangedListener * @abstract @@ -54398,7 +53548,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setLabelLayoutParameter * @see yfiles.graph.IGraph#removeLabelLayoutParameterChangedListener * @abstract @@ -54411,7 +53561,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setLabelLayoutParameter * @see yfiles.graph.IGraph#addLabelLayoutParameterChangedListener * @abstract @@ -54423,7 +53573,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removeLabelTagChangedListener * @abstract @@ -54435,7 +53585,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addLabelTagChangedListener * @abstract @@ -54448,7 +53598,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the port creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#addPort * @see yfiles.graph.IGraph#createEdge * @see yfiles.graph.IGraph#removePortAddedListener @@ -54462,7 +53612,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the port creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addPort * @see yfiles.graph.IGraph#createEdge * @see yfiles.graph.IGraph#addPortAddedListener @@ -54480,7 +53630,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the port removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#removePortRemovedListener @@ -54498,7 +53648,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the port removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#addPortRemovedListener @@ -54511,7 +53661,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#removePortStyleChangedListener * @abstract @@ -54523,7 +53673,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#addPortStyleChangedListener * @abstract @@ -54536,7 +53686,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setPortLocationParameter * @see yfiles.graph.IGraph#removePortLocationParameterChangedListener * @abstract @@ -54549,7 +53699,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setPortLocationParameter * @see yfiles.graph.IGraph#addPortLocationParameterChangedListener * @abstract @@ -54561,7 +53711,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removePortTagChangedListener * @abstract @@ -54573,7 +53723,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addPortTagChangedListener * @abstract @@ -54590,7 +53740,7 @@ declare namespace system{ * event. *
    * Event that will be triggered if an node has been reparented in the model. - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#removeParentChangedListener * @abstract */ @@ -54600,7 +53750,7 @@ declare namespace system{ * event. *
    * Event that will be triggered if an node has been reparented in the model. - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addParentChangedListener * @abstract */ @@ -54610,7 +53760,7 @@ declare namespace system{ * event. *
    * Event that will be triggered if the group node status of a node has changed. - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#removeIsGroupNodeChangedListener * @abstract */ @@ -54620,14 +53770,13 @@ declare namespace system{ * event. *
    * Event that will be triggered if the group node status of a node has changed. - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addIsGroupNodeChangedListener * @abstract */ removeIsGroupNodeChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * Gets a {@link yfiles.graph.GraphDecorator} instance for use with the given graph. - * @returns A new {@link yfiles.graph.GraphDecorator} * @type {yfiles.graph.GraphDecorator} */ decorator?:yfiles.graph.GraphDecorator; @@ -54637,7 +53786,6 @@ declare namespace system{ * {@link yfiles.graph.GroupingSupport} provides less frequently used methods for grouped graphs, such as methods for analyzing and * walking the grouping hierarchy. *

    - * @returns * @type {yfiles.graph.GroupingSupport} */ groupingSupport?:yfiles.graph.GroupingSupport; @@ -54647,9 +53795,8 @@ declare namespace system{ * This convenience method uses the {@link yfiles.graph.ILookup#lookup} of the {@link yfiles.graph.IGraph} to obtain the * {@link yfiles.graph.IFoldingView}. *

    - * @returns The implementation of the {@link yfiles.graph.IFoldingView} or null if the graph has not been created by a - * {@link yfiles.graph.FoldingManager}. * @see yfiles.graph.FoldingManager + * @see yfiles.graph.FoldingManager#createFoldingView * @type {yfiles.graph.IFoldingView} */ foldingView?:yfiles.graph.IFoldingView; @@ -54660,7 +53807,6 @@ declare namespace system{ * This convenience method uses the {@link yfiles.graph.ILookup#lookup} of the {@link yfiles.graph.IGraph} to obtain the * {@link yfiles.graph.UndoEngine}. *

    - * @returns The implementation of the {@link yfiles.graph.UndoEngine} or null if {@link yfiles.graph.DefaultGraph#undoEngineEnabled undo is not supported}. * @type {yfiles.graph.UndoEngine} */ undoEngine?:yfiles.graph.UndoEngine; @@ -54699,7 +53845,7 @@ declare namespace system{ * {@link yfiles.graph.IGraph#addParentChangedListener ParentChanged}) it is unclear which {@link yfiles.graph.NodeEventArgs#parent} or {@link yfiles.graph.NodeEventArgs#isGroupNode} the node had before the event * this event can be used to carry exactly that information. *

    - * @class yfiles.graph.NodeEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -54707,10 +53853,9 @@ declare namespace system{ export class NodeEventArgs { /** * Creates a new instance. - * @param {yfiles.graph.INode} item The node that has changed. - * @param {yfiles.graph.INode} oldParent The parent the node had before this event. - * @param {boolean} oldIsGroupNode Whether the node was a group node before this event. - * @constructor + * @param item The node that has changed. + * @param oldParent The parent the node had before this event. + * @param oldIsGroupNode Whether the node was a group node before this event. */ constructor(item:yfiles.graph.INode,oldParent:yfiles.graph.INode,oldIsGroupNode:boolean); /** @@ -54733,7 +53878,7 @@ declare namespace system{ * {@link yfiles.graph.IGraph#addEdgeRemovedListener EdgeRemoved}) it is unclear what {@link yfiles.graph.IEdge#sourcePort} and {@link yfiles.graph.IEdge#targetPort} the edge had been connected to * before the event, this event can be used to carry exactly that information. *

    - * @class yfiles.graph.EdgeEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -54741,23 +53886,21 @@ declare namespace system{ export class EdgeEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.EdgeEventArgs} class. - * @param {yfiles.graph.IEdge} edge The edge to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.IPort} [sourcePort=null] The source port the edge was connected to before the event happened. - * @param {yfiles.graph.IPort} [targetPort=null] The target port the edge was connected to before the event happened. - * @param {yfiles.graph.IPortOwner} [sourcePortOwner=null] The owner of the source port the edge was connected to before the event happened. - * @param {yfiles.graph.IPortOwner} [targetPortOwner=null] The owner of the target port the edge was connected to before the event happened. - * @constructor + * @param edge The edge to assign to the {@link #item} property. + * @param [sourcePort=null] The source port the edge was connected to before the event happened. + * @param [targetPort=null] The target port the edge was connected to before the event happened. + * @param [sourcePortOwner=null] The owner of the source port the edge was connected to before the event happened. + * @param [targetPortOwner=null] The owner of the target port the edge was connected to before the event happened. */ constructor(edge:yfiles.graph.IEdge,sourcePort?:yfiles.graph.IPort,targetPort?:yfiles.graph.IPort,sourcePortOwner?:yfiles.graph.IPortOwner,targetPortOwner?:yfiles.graph.IPortOwner); /** * Initializes a new instance of the {@link yfiles.graph.EdgeEventArgs} class. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IEdge} options.edge The edge to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.IPort} [options.sourcePort=null] The source port the edge was connected to before the event happened. - * @param {yfiles.graph.IPort} [options.targetPort=null] The target port the edge was connected to before the event happened. - * @param {yfiles.graph.IPortOwner} [options.sourcePortOwner=null] The owner of the source port the edge was connected to before the event happened. - * @param {yfiles.graph.IPortOwner} [options.targetPortOwner=null] The owner of the target port the edge was connected to before the event happened. - * @constructor + * @param options.edge The edge to assign to the {@link #item} property. + * @param [options.sourcePort=null] The source port the edge was connected to before the event happened. + * @param [options.targetPort=null] The target port the edge was connected to before the event happened. + * @param [options.sourcePortOwner=null] The owner of the source port the edge was connected to before the event happened. + * @param [options.targetPortOwner=null] The owner of the target port the edge was connected to before the event happened. */ constructor(options:{edge:yfiles.graph.IEdge,sourcePort?:yfiles.graph.IPort,targetPort?:yfiles.graph.IPort,sourcePortOwner?:yfiles.graph.IPortOwner,targetPortOwner?:yfiles.graph.IPortOwner}); /** @@ -54789,7 +53932,7 @@ declare namespace system{ * Since for some events ({@link yfiles.graph.IGraph#addPortRemovedListener PortRemoved}) it is unclear what {@link yfiles.graph.IPort#owner} the port had * been attached to before the event, this event can be used to carry exactly that information. *

    - * @class yfiles.graph.PortEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -54797,9 +53940,8 @@ declare namespace system{ export class PortEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.PortEventArgs} class. - * @param {yfiles.graph.IPort} port The port to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.IPortOwner} owner The owner of the port the port was attached to. - * @constructor + * @param port The port to assign to the {@link #item} property. + * @param owner The owner of the port the port was attached to. */ constructor(port:yfiles.graph.IPort,owner:yfiles.graph.IPortOwner); /** @@ -54816,7 +53958,7 @@ declare namespace system{ * Since for some events ({@link yfiles.graph.IGraph#addLabelRemovedListener LabelRemoved}) it is unclear what {@link yfiles.graph.ILabel#owner} the label * was owned by before the event, this event can be used to carry exactly that information. *

    - * @class yfiles.graph.LabelEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -54824,9 +53966,8 @@ declare namespace system{ export class LabelEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.LabelEventArgs} class. - * @param {yfiles.graph.ILabel} label The label to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.ILabelOwner} owner The previous owner of the label. - * @constructor + * @param label The label to assign to the {@link #item} property. + * @param owner The previous owner of the label. */ constructor(label:yfiles.graph.ILabel,owner:yfiles.graph.ILabelOwner); /** @@ -54843,7 +53984,7 @@ declare namespace system{ * Since for some events ({@link yfiles.graph.IGraph#addBendRemovedListener BendRemoved}) it is unclear what {@link yfiles.graph.IBend#owner} the bend was * owned by before the event, this event can be used to carry exactly that information. *

    - * @class yfiles.graph.BendEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -54851,10 +53992,9 @@ declare namespace system{ export class BendEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.BendEventArgs} class. - * @param {yfiles.graph.IBend} bend The bend to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.IEdge} owner The previous owner of the bend. - * @param {number} index The previous index of the bend in the {@link yfiles.graph.IEdge#bends} list. - * @constructor + * @param bend The bend to assign to the {@link #item} property. + * @param owner The previous owner of the bend. + * @param index The previous index of the bend in the {@link #bends} list. */ constructor(bend:yfiles.graph.IBend,owner:yfiles.graph.IEdge,index:number); /** @@ -54873,7 +54013,7 @@ declare namespace system{ * Event argument class used by {@link yfiles.graph.IGraph} if a model item's property has been changed. * Type parameter TItem: The type of the item contained in the event. * Type parameter TValue: The type of the item's property that has been changed. - * @class yfiles.graph.ItemChangedEventArgs. + * @class * @extends {yfiles.collections.ItemEventArgs.} * @template TItem,TValue */ @@ -54881,9 +54021,8 @@ declare namespace system{ export class ItemChangedEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.ItemChangedEventArgs.} class. - * @param {TItem} item The item whose property has been changed. - * @param {TValue} oldValue The value of the property before the change. - * @constructor + * @param item The item whose property has been changed. + * @param oldValue The value of the property before the change. */ constructor(item:TItem,oldValue:TValue); /** @@ -54967,7 +54106,6 @@ declare namespace system{ layoutParameter:yfiles.graph.ILabelModelParameter; /** * Gets the index of the label at its {@link yfiles.graph.ILabel#owner}. - * @returns The zero based index of the label in the {@link yfiles.graph.ILabelOwner#labels} list; -1 if the label is not part of a label owner. * @type {number} */ index?:number; @@ -54980,7 +54118,6 @@ declare namespace system{ * determined using a pair of {@link yfiles.graph.ILabelModel} and {@link yfiles.graph.ILabelModelParameter}. In order to modify the layout * of a label instance, set another {@link yfiles.graph.ILabel#layoutParameter} for this label or modify its associated instance. *

    - * @returns The current label layout. * @type {yfiles.geometry.IOrientedRectangle} */ layout?:yfiles.geometry.IOrientedRectangle; @@ -55009,8 +54146,8 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.ILabelDefaults#layoutParameter} property, if {@link yfiles.graph.ILabelDefaults#shareLayoutParameterInstance} is enabled, but they might use more complicated * logic, too. *

    - * @param {yfiles.graph.ILabelOwner} owner The owner of the label that will be created. - * @returns {yfiles.graph.ILabelModelParameter} The parameter to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.ILabelDefaults#layoutParameter} property, if {@link yfiles.graph.ILabelDefaults#shareLayoutParameterInstance} is enabled. + * @param owner The owner of the label that will be created. + * @returns The parameter to use, which for most implementations is either a {@link #clone clone} of or the {@link #layoutParameter} property, if {@link #shareLayoutParameterInstance} is enabled. * @abstract */ getLayoutParameterInstance(owner:yfiles.graph.ILabelOwner):yfiles.graph.ILabelModelParameter; @@ -55020,8 +54157,8 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.ILabelDefaults#style} property, if {@link yfiles.graph.ILabelDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @param {yfiles.graph.ILabelOwner} owner The owner of the label that will be created. - * @returns {yfiles.styles.ILabelStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.ILabelDefaults#style} property, if {@link yfiles.graph.ILabelDefaults#shareStyleInstance} is enabled. + * @param owner The owner of the label that will be created. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. * @abstract */ getStyleInstance(owner:yfiles.graph.ILabelOwner):yfiles.styles.ILabelStyle; @@ -55111,15 +54248,15 @@ declare namespace system{ export interface ILabelModel extends Object,yfiles.graph.ILookup{ /** * Creates a default parameter that can be used for this model. - * @returns {yfiles.graph.ILabelModelParameter} a parameter for this model instance + * @returns a parameter for this model instance * @abstract */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Provides a {@link yfiles.graph.ILookup lookup context} for the given combination of label and parameter. - * @param {yfiles.graph.ILabel} label The label to use in the context. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use for the label in the context. - * @returns {yfiles.graph.ILookup} An implementation of the {@link yfiles.graph.ILookup} interface that can be used to query additional aspects of the + * @param label The label to use in the context. + * @param layoutParameter The parameter to use for the label in the context. + * @returns An implementation of the {@link } interface that can be used to query additional aspects of the * label/parameter combination. * @see yfiles.graph.ILookup#EMPTY * @abstract @@ -55127,10 +54264,10 @@ declare namespace system{ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * Calculates the {@link yfiles.geometry.IOrientedRectangle geometry} of the given label using the given model parameter. - * @param {yfiles.graph.ILabel} label The label to calculate the geometry for. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter A parameter that is compatible with this model. Typically, this is a parameter that has been created by this model, and - * its property {@link yfiles.graph.ILabelModelParameter#model} returns this instance. - * @returns {yfiles.geometry.IOrientedRectangle} An {@link yfiles.geometry.IOrientedRectangle} that describes the geometry of the label. This is typically designed as a + * @param label The label to calculate the geometry for. + * @param layoutParameter A parameter that is compatible with this model. Typically, this is a parameter that has been created by this model, and + * its property {@link #model} returns this instance. + * @returns An {@link } that describes the geometry of the label. This is typically designed as a * flyweight, therefore clients should not cache the instance but store the values if they need a snapshot for later use. * @abstract */ @@ -55212,9 +54349,9 @@ declare namespace system{ export interface ILabelCandidateDescriptorProvider extends Object{ /** * Gets the descriptor for a given pair of a label and a {@link yfiles.graph.ILabelModelParameter}. - * @param {yfiles.graph.ILabel} label The label to possibly assign the layoutParameter. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to provide a descriptor for if applied to the given label. - * @returns {yfiles.graph.ILabelCandidateDescriptor} A descriptor or null. + * @param label The label to possibly assign the layoutParameter. + * @param layoutParameter The parameter to provide a descriptor for if applied to the given label. + * @returns A descriptor or null. * @abstract */ getDescriptor(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILabelCandidateDescriptor; @@ -55226,7 +54363,7 @@ declare namespace system{ /** * An implementation of the {@link yfiles.graph.ILabelCandidateDescriptorProvider} interface that always yields a constant * {@link yfiles.graph.ILabelCandidateDescriptor}. - * @class yfiles.graph.ConstantLabelCandidateDescriptorProvider + * @class * @implements {yfiles.graph.ILabelCandidateDescriptorProvider} * @final */ @@ -55235,15 +54372,14 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.graph.ConstantLabelCandidateDescriptorProvider} class that always yields descriptor * in {@link yfiles.graph.ConstantLabelCandidateDescriptorProvider#getDescriptor}. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor The descriptor to yield in {@link yfiles.graph.ConstantLabelCandidateDescriptorProvider#getDescriptor}. - * @constructor + * @param descriptor The descriptor to yield in {@link #getDescriptor}. */ constructor(descriptor:yfiles.graph.ILabelCandidateDescriptor); /** * Always yields the parameter that has been passed to the constructor. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILabelCandidateDescriptor} + * @param label + * @param layoutParameter + * @returns */ getDescriptor(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILabelCandidateDescriptor; /** @@ -55269,7 +54405,7 @@ declare namespace system{ *

    * All properties are read/write in this implementation. *

    - * @class yfiles.graph.LabelCandidateDescriptor + * @class * @implements {yfiles.graph.ILabelCandidateDescriptor} */ export interface LabelCandidateDescriptor extends Object,yfiles.graph.ILabelCandidateDescriptor{} @@ -55336,8 +54472,8 @@ declare namespace system{ * A parameter must not necessarily support all types of labels. This method returns whether it supports the given label. * For example, a parameter might only support labels that are owned by an {@link yfiles.graph.INode}. *

    - * @param {yfiles.graph.ILabel} label The label to test. - * @returns {boolean} true if this instance can be used for the given label, false otherwise. + * @param label The label to test. + * @returns true if this instance can be used for the given label, false otherwise. * @abstract */ supports(label:yfiles.graph.ILabel):boolean; @@ -55369,10 +54505,10 @@ declare namespace system{ * This method may not necessarily find a parameter that matches the provided layout exactly. Implementations may choose to * simply return the model's {@link yfiles.graph.ILabelModel#createDefaultParameter default parameter} but may never return null. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.graph.ILabelModel} model The model instance to use. This should be the instance this instance has been obtained from. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @returns {yfiles.graph.ILabelModelParameter} A non-null parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param model The model instance to use. This should be the instance this instance has been obtained from. + * @param layout The anticipated layout for the label. + * @returns A non-null parameter that can be used for the label to approximate the provided layout. * @abstract */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; @@ -55388,7 +54524,7 @@ declare namespace system{ * This implementation uses a metric to find the closest of the provided parameter candidates to the layout provided in * {@link yfiles.graph.DefaultLabelModelParameterFinder#selectBestParameter}. *

    - * @class yfiles.graph.DefaultLabelModelParameterFinder + * @class * @implements {yfiles.graph.ILabelModelParameterFinder} */ export interface DefaultLabelModelParameterFinder extends Object,yfiles.graph.ILabelModelParameterFinder{} @@ -55399,10 +54535,10 @@ declare namespace system{ * This implementation gets the geometry from the parameter's model's {@link yfiles.graph.ILabelModel#getGeometry} method and * returns the result of a call to {@link yfiles.graph.DefaultLabelModelParameterFinder#distance}. *

    - * @param {yfiles.graph.ILabel} label The label to apply the parameter to. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter candidate. - * @param {yfiles.geometry.IOrientedRectangle} layout The targeted layout rectangle. - * @returns {number} A metric that indicates the distance between the candidate's layout and the target layout. + * @param label The label to apply the parameter to. + * @param layoutParameter The parameter candidate. + * @param layout The targeted layout rectangle. + * @returns A metric that indicates the distance between the candidate's layout and the target layout. * @protected */ calculateMetric(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter,layout:yfiles.geometry.IOrientedRectangle):number; @@ -55412,9 +54548,9 @@ declare namespace system{ * The distance is calculated using the Euclidean distance between the two centers and the angular deviation between the * two up vectors. *

    - * @param {yfiles.geometry.IOrientedRectangle} rectangle1 The first geometry. - * @param {yfiles.geometry.IOrientedRectangle} rectangle2 The geometry to compare the first one with. - * @returns {number} A value indicating the distance between the two instances. + * @param rectangle1 The first geometry. + * @param rectangle2 The geometry to compare the first one with. + * @returns A value indicating the distance between the two instances. * @protected */ distance(rectangle1:yfiles.geometry.IOrientedRectangle,rectangle2:yfiles.geometry.IOrientedRectangle):number; @@ -55426,17 +54562,17 @@ declare namespace system{ * {@link yfiles.graph.DefaultLabelModelParameterFinder#calculateMetric}. If no parameter can be found this method returns the {@link yfiles.graph.ILabelModel#createDefaultParameter default parameter} * for the model. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.graph.ILabelModel} model The model instance to use. This should be the instance this instance has been obtained from. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @returns {yfiles.graph.ILabelModelParameter} A non-null parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param model The model instance to use. This should be the instance this instance has been obtained from. + * @param layout The anticipated layout for the label. + * @returns A non-null parameter that can be used for the label to approximate the provided layout. */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * Retrieves an enumerator over all candidates for a given label and model. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.graph.ILabelModel} model The model of the label. - * @returns {yfiles.collections.IEnumerable.} An enumerator over the candidates. The enumerator may be empty. + * @param label The label. + * @param model The model of the label. + * @returns An enumerator over the candidates. The enumerator may be empty. * @protected */ getCandidateParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; @@ -55446,10 +54582,10 @@ declare namespace system{ *

    * Null may be returned if an empty enumerable is passed. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @param {yfiles.collections.IEnumerable.} layoutParameters A set of parameters to choose from. - * @returns {yfiles.graph.ILabelModelParameter} A parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param layout The anticipated layout for the label. + * @param layoutParameters A set of parameters to choose from. + * @returns A parameter that can be used for the label to approximate the provided layout. */ selectBestParameter(label:yfiles.graph.ILabel,layout:yfiles.geometry.IOrientedRectangle,layoutParameters:yfiles.collections.IEnumerable):yfiles.graph.ILabelModelParameter; /** @@ -55474,9 +54610,9 @@ declare namespace system{ /** * Returns an enumerator over a set of possible {@link yfiles.graph.ILabelModelParameter} instances that can be used for the given * label and model. - * @param {yfiles.graph.ILabel} label The label instance to use. - * @param {yfiles.graph.ILabelModel} model The model to provide parameters for. - * @returns {yfiles.collections.IEnumerable.} A possibly empty enumerator over a set of label model parameters. + * @param label The label instance to use. + * @param model The model to provide parameters for. + * @returns A possibly empty enumerator over a set of label model parameters. * @abstract */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; @@ -55533,10 +54669,10 @@ declare namespace system{ *

    * Type parameter K: The key type for the mapper. * Type parameter V: The value type for the mapper. - * @param {yfiles.lang.Class} valueType The value type for the mapper. - * @param {yfiles.lang.Class} keyType The key type for the mapper. - * @param {Object} tag The tag to use. - * @param {yfiles.collections.IMapper.} mapper The mapper to register. + * @param valueType The value type for the mapper. + * @param keyType The key type for the mapper. + * @param tag The tag to use. + * @param mapper The mapper to register. * @template K,V * @abstract */ @@ -55549,9 +54685,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.ILabelLayoutDpKey.} tag The tag. - * @param {V} constant The value to yield during {@link yfiles.collections.IMapper.} reads. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param constant The value to yield during {@link } reads. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55564,9 +54700,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.EdgeDpKey.} tag The tag. - * @param {V} constant The value to yield during {@link yfiles.collections.IMapper.} reads. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param constant The value to yield during {@link } reads. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55579,9 +54715,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.NodeDpKey.} tag The tag. - * @param {V} constant The value to yield during {@link yfiles.collections.IMapper.} reads. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param constant The value to yield during {@link } reads. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55593,9 +54729,9 @@ declare namespace system{ *

    * Type parameter K: The type of the keys of the mapper. * Type parameter V: The type of the values of the mapper. - * @param {Object} tag The tag. - * @param {V} constant The value to yield during {@link yfiles.collections.IMapper.} reads. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param constant The value to yield during {@link } reads. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromConstant * @template K,V */ @@ -55608,9 +54744,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.ILabelLayoutDpKey.} tag The tag. - * @param {function(yfiles.graph.ILabel): V} getter The getter delegate to which {@link yfiles.collections.IMapper.} reads will be delegated. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param getter The getter delegate to which {@link } reads will be delegated. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55623,9 +54759,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.EdgeDpKey.} tag The tag. - * @param {function(yfiles.graph.IEdge): V} getter The getter delegate to which {@link yfiles.collections.IMapper.} reads will be delegated. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param getter The getter delegate to which {@link } reads will be delegated. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55638,9 +54774,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.NodeDpKey.} tag The tag. - * @param {function(yfiles.graph.INode): V} getter The getter delegate to which {@link yfiles.collections.IMapper.} reads will be delegated. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param getter The getter delegate to which {@link } reads will be delegated. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55652,9 +54788,9 @@ declare namespace system{ *

    * Type parameter K: The type of the keys of the mapper. * Type parameter V: The type of the values of the mapper. - * @param {Object} tag The tag. - * @param {function(K): V} getter The getter delegate to which {@link yfiles.collections.IMapper.} reads will be delegated. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param getter The getter delegate to which {@link } reads will be delegated. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template K,V */ @@ -55666,8 +54802,8 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.EdgeDpKey.} tag The tag. - * @returns {yfiles.collections.Mapper.} The newly created mapper instance. + * @param tag The tag. + * @returns The newly created mapper instance. * @see yfiles.collections.Mapper. * @template V */ @@ -55679,8 +54815,8 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.ILabelLayoutDpKey.} tag The tag. - * @returns {yfiles.collections.Mapper.} The newly created mapper instance. + * @param tag The tag. + * @returns The newly created mapper instance. * @see yfiles.collections.Mapper. * @template V */ @@ -55692,8 +54828,8 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.NodeDpKey.} tag The tag. - * @returns {yfiles.collections.Mapper.} The newly created mapper instance. + * @param tag The tag. + * @returns The newly created mapper instance. * @see yfiles.collections.Mapper. * @template V */ @@ -55705,8 +54841,8 @@ declare namespace system{ *

    * Type parameter K: The type of the keys of the mapper. * Type parameter V: The type of the values of the mapper. - * @param {Object} tag The tag. - * @returns {yfiles.collections.Mapper.} The newly created mapper instance. + * @param tag The tag. + * @returns The newly created mapper instance. * @see yfiles.collections.Mapper. * @template K,V */ @@ -55715,29 +54851,29 @@ declare namespace system{ * Returns a mapper that has previously been registered with this instance for the given tag. * Type parameter K: The key type for the mapper. * Type parameter V: The value type for the mapper. - * @param {Object} tag The tag to use to look up the mapper. - * @returns {yfiles.collections.IMapper.} The previously registered instance or null. + * @param tag The tag to use to look up the mapper. + * @returns The previously registered instance or null. * @template K,V * @abstract */ getMapper(tag:Object):yfiles.collections.IMapper; /** * Gets the mapper {@link yfiles.graph.MapperMetadata meta data} for the mapper that is registered using the tag. - * @param {Object} tag The tag. - * @returns {yfiles.graph.MapperMetadata} The meta data or null if there is no such mapper registered for the given tag. + * @param tag The tag. + * @returns The meta data or null if there is no such mapper registered for the given tag. * @abstract */ getMapperMetadata(tag:Object):yfiles.graph.MapperMetadata; /** * Removes a previously registered mapper for the given tag. - * @param {Object} tag The tag that has been used for registering the mapper. + * @param tag The tag that has been used for registering the mapper. * @abstract */ removeMapper(tag:Object):void; /** * Sets the mapper meta data for the mapper that has been {@link yfiles.graph.IMapperRegistry#addMapper registered} using the provided tag. - * @param {Object} tag The tag. - * @param {yfiles.graph.MapperMetadata} metadata The meta data to store with the mapper. + * @param tag The tag. + * @param metadata The meta data to store with the mapper. * @throws {Stubs.Exceptions.ArgumentError} If the {@link yfiles.graph.MapperMetadata#keyType} or {@link yfiles.graph.MapperMetadata#valueType} mismatch the mapper instance in the registry. * @abstract */ @@ -55824,7 +54960,7 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.INodeDefaults#style} property, if {@link yfiles.graph.INodeDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @returns {yfiles.styles.INodeStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.INodeDefaults#style} property, if {@link yfiles.graph.INodeDefaults#shareStyleInstance} is enabled. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. * @abstract */ getStyleInstance():yfiles.styles.INodeStyle; @@ -55863,7 +54999,8 @@ declare namespace system{ /** * Gets or sets the default node size. *

    - * The values of this size will be used by the CreateNode and CreateNode methods. + * The values of this size will be used by the {@link yfiles.graph.IGraph#createNodeAt} and {@link yfiles.graph.IGraph#createNodeAt} + * methods. *

    * @abstract * @type {yfiles.geometry.Size} @@ -55938,7 +55075,6 @@ declare namespace system{ *

    * Unlike {@link yfiles.graph.IPort#dynamicLocation} this does not return a dynamic point that always refers to the current location. *

    - * @returns The current port location. * @type {yfiles.geometry.Point} */ location?:yfiles.geometry.Point; @@ -56008,8 +55144,8 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IPortDefaults#locationParameter} property, if {@link yfiles.graph.IPortDefaults#shareLocationParameterInstance} is enabled, but they might use more complicated * logic, too. *

    - * @param {yfiles.graph.IPortOwner} owner The owner of the port that will be created. - * @returns {yfiles.graph.IPortLocationModelParameter} The parameter to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IPortDefaults#locationParameter} property, if {@link yfiles.graph.IPortDefaults#shareLocationParameterInstance} is enabled. + * @param owner The owner of the port that will be created. + * @returns The parameter to use, which for most implementations is either a {@link #clone clone} of or the {@link #locationParameter} property, if {@link #shareLocationParameterInstance} is enabled. * @abstract */ getLocationParameterInstance(owner:yfiles.graph.IPortOwner):yfiles.graph.IPortLocationModelParameter; @@ -56019,8 +55155,8 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IPortDefaults#style} property, if {@link yfiles.graph.IPortDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @param {yfiles.graph.IPortOwner} owner The owner of the port that will be created. - * @returns {yfiles.styles.IPortStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IPortDefaults#style} property, if {@link yfiles.graph.IPortDefaults#shareStyleInstance} is enabled. + * @param owner The owner of the port that will be created. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. * @abstract */ getStyleInstance(owner:yfiles.graph.IPortOwner):yfiles.styles.IPortStyle; @@ -56108,27 +55244,27 @@ declare namespace system{ /** * Factory method that creates a parameter for the given port that tries to match the provided location in absolute world * coordinates. - * @param {yfiles.graph.IPortOwner} owner The port owner that will own the port for which the parameter shall be created. - * @param {yfiles.geometry.Point} location The location in the world coordinate system that should be matched as best as possible. - * @returns {yfiles.graph.IPortLocationModelParameter} A new instance that can be used to describe the location of an {@link yfiles.graph.IPort} at the given owner. + * @param owner The port owner that will own the port for which the parameter shall be created. + * @param location The location in the world coordinate system that should be matched as best as possible. + * @returns A new instance that can be used to describe the location of an {@link } at the given owner. * @abstract */ createParameter(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * Provides a {@link yfiles.graph.ILookup lookup context} for the given combination of port and parameter. - * @param {yfiles.graph.IPort} port The port to use in the context. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The parameter to use for the port in the context. - * @returns {yfiles.graph.ILookup} An implementation of the {@link yfiles.graph.ILookup} interface that can be used to query additional aspects of the + * @param port The port to use in the context. + * @param locationParameter The parameter to use for the port in the context. + * @returns An implementation of the {@link } interface that can be used to query additional aspects of the * port/parameter combination. * @abstract */ getContext(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.ILookup; /** * Determines the location of the port for the given parameter. - * @param {yfiles.graph.IPort} port The port to determine the location for. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The parameter to use. The parameter can be expected to be created by this instance having the {@link yfiles.graph.IPortLocationModelParameter#model} property set to this + * @param port The port to determine the location for. + * @param locationParameter The parameter to use. The parameter can be expected to be created by this instance having the {@link #model} property set to this * instance.. - * @returns {yfiles.geometry.Point} The calculated location of the port. + * @returns The calculated location of the port. * @abstract */ getLocation(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.geometry.Point; @@ -56158,8 +55294,8 @@ declare namespace system{ * A parameter must not necessarily support all types of ports. This method returns whether it supports ports at the given * owner. *

    - * @param {yfiles.graph.IPortOwner} owner The port owner to test. - * @returns {boolean} true if this instance can be used for ports of the given port owner, false otherwise. + * @param owner The port owner to test. + * @returns true if this instance can be used for ports of the given port owner, false otherwise. * @abstract */ supports(owner:yfiles.graph.IPortOwner):boolean; @@ -56201,7 +55337,7 @@ declare namespace system{ *

    * This label model supports 5 positions inside of the layout's bounds. *

    - * @class yfiles.graph.InteriorStretchLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} */ @@ -56214,67 +55350,66 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.InteriorStretchLabelModel#insets} property on the created object. *

    - * @constructor */ constructor(options?:{insets?:yfiles.geometry.Insets}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates the parameter for the given position. - * @param {yfiles.graph.InteriorStretchLabelModelPosition} position The position. - * @returns {yfiles.graph.ILabelModelParameter} + * @param position The position. + * @returns */ createParameter(position:yfiles.graph.InteriorStretchLabelModelPosition):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * Returns the minimum size this model would require for the node owner of the label if the the given label was used with * the provided parameter. - * @param {yfiles.graph.ILabel} label The label to use. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use. - * @returns {yfiles.geometry.Size} The minimum size requirements for this label. + * @param label The label to use. + * @param layoutParameter The parameter to use. + * @returns The minimum size requirements for this label. */ getMinimumNodeSize(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.Size; /** * Returns the insets this model would require for the node owner of the label if the the given label was used with the * provided parameter. - * @param {yfiles.graph.ILabel} label The label to use. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use. - * @returns {yfiles.geometry.Insets} The insets rectangle. + * @param label The label to use. + * @param layoutParameter The parameter to use. + * @returns The insets rectangle. */ getNodeInsets(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.Insets; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56284,7 +55419,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56294,7 +55429,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56304,7 +55439,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56314,7 +55449,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56372,7 +55507,7 @@ declare namespace system{ *

    * This label model supports nine positions inside of the layout's bounds. *

    - * @class yfiles.graph.InteriorLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} */ @@ -56385,67 +55520,66 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.InteriorLabelModel#insets} property on the created object. *

    - * @constructor */ constructor(options?:{insets?:yfiles.geometry.Insets}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates the parameter for the given position. - * @param {yfiles.graph.InteriorLabelModelPosition} position The position. - * @returns {yfiles.graph.ILabelModelParameter} + * @param position The position. + * @returns */ createParameter(position:yfiles.graph.InteriorLabelModelPosition):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * Returns the minimum size this model would require for the node owner of the label if the the given label was used with * the provided parameter. - * @param {yfiles.graph.ILabel} label The label to use. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use. - * @returns {yfiles.geometry.Size} The minimum size requirements for this label. + * @param label The label to use. + * @param layoutParameter The parameter to use. + * @returns The minimum size requirements for this label. */ getMinimumNodeSize(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.Size; /** * Returns the insets this model would require for the node owner of the label if the the given label was used with the * provided parameter. - * @param {yfiles.graph.ILabel} label The label to use. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use. - * @returns {yfiles.geometry.Insets} The insets rectangle. + * @param label The label to use. + * @param layoutParameter The parameter to use. + * @returns The insets rectangle. */ getNodeInsets(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.Insets; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56455,7 +55589,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56465,7 +55599,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56475,7 +55609,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56485,7 +55619,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56495,7 +55629,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56505,7 +55639,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56515,7 +55649,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56525,7 +55659,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56544,32 +55678,30 @@ declare namespace system{ * The meta data that is associated with {@link yfiles.collections.IMapper.}s in a {@link yfiles.graph.IMapperRegistry}. * @see yfiles.graph.IMapperRegistry#getMapperMetadata * @see yfiles.graph.IMapperRegistry#setMapperMetadata - * @class yfiles.graph.MapperMetadata + * @class */ export interface MapperMetadata extends Object{} export class MapperMetadata { /** * Initializes a new instance of the {@link yfiles.graph.MapperMetadata} class. - * @param {yfiles.lang.Class} keyType Type of the keys. - * @param {yfiles.lang.Class} valueType Type of the values. - * @constructor + * @param keyType Type of the keys. + * @param valueType Type of the values. */ constructor(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class); /** * Initializes a new instance of the {@link yfiles.graph.MapperMetadata} from the given instance class. - * @param {yfiles.graph.MapperMetadata} metadata The metadata to copy key and value type from. + * @param metadata The metadata to copy key and value type from. * @protected - * @constructor */ constructor(metadata:yfiles.graph.MapperMetadata); /** * Creates an instance for the specified mapper. * Type parameter TKey: The type of the keys. * Type parameter TValue: The type of the values. - * @param {yfiles.lang.Class} valueType The type of the values. - * @param {yfiles.lang.Class} keyType The type of the keys. - * @param {yfiles.collections.IMapper.} mapper The mapper instance to create the metadata for. - * @returns {yfiles.graph.MapperMetadata} An instance that uses the {@link yfiles.graph.MapperMetadata#keyType} and {@link yfiles.graph.MapperMetadata#valueType} of the mapper. + * @param valueType The type of the values. + * @param keyType The type of the keys. + * @param mapper The mapper instance to create the metadata for. + * @returns An instance that uses the {@link #keyType} and {@link #valueType} of the mapper. * @template TKey,TValue * @static */ @@ -56588,7 +55720,7 @@ declare namespace system{ } /** * A simple {@link yfiles.collections.Map.}-based implementation of the {@link yfiles.graph.IMapperRegistry} interface. - * @class yfiles.graph.MapperRegistry + * @class * @implements {yfiles.graph.IMapperRegistry} * @final */ @@ -56599,10 +55731,10 @@ declare namespace system{ * * Type parameter K. * Type parameter V. - * @param {yfiles.lang.Class} valueType - * @param {yfiles.lang.Class} keyType - * @param {Object} tag - * @param {yfiles.collections.IMapper.} mapper + * @param valueType + * @param keyType + * @param tag + * @param mapper * @template K,V */ addMapper(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,tag:Object,mapper:yfiles.collections.IMapper):void; @@ -56610,26 +55742,26 @@ declare namespace system{ * * Type parameter K. * Type parameter V. - * @param {Object} tag - * @returns {yfiles.collections.IMapper.} + * @param tag + * @returns * @template K,V */ getMapper(tag:Object):yfiles.collections.IMapper; /** * - * @param {Object} tag - * @returns {yfiles.graph.MapperMetadata} + * @param tag + * @returns */ getMapperMetadata(tag:Object):yfiles.graph.MapperMetadata; /** * - * @param {Object} tag + * @param tag */ removeMapper(tag:Object):void; /** * - * @param {Object} tag - * @param {yfiles.graph.MapperMetadata} metadata + * @param tag + * @param metadata */ setMapperMetadata(tag:Object,metadata:yfiles.graph.MapperMetadata):void; /** @@ -56683,7 +55815,7 @@ declare namespace system{ * The possible positions are near the source port, at the center of the edge, or near the target port, each above, below, * or centered on the edge. The distance to the edge and the absolute angular orientation of the label can be specified. *

    - * @class yfiles.graph.NinePositionsEdgeLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} */ @@ -56691,9 +55823,8 @@ declare namespace system{ export class NinePositionsEdgeLabelModel { /** * Initializes a new instance of the {@link yfiles.graph.NinePositionsEdgeLabelModel} class. - * @param {number} distance The distance. - * @param {number} angle The angle. - * @constructor + * @param distance The distance. + * @param angle The angle. */ constructor(distance:number,angle:number); /** @@ -56707,51 +55838,50 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} property on the created object. *

    - * @constructor */ constructor(options?:{angle?:number,distance?:number}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Create a model parameter for the specified position - * @param {yfiles.graph.NinePositionsEdgeLabelModelPosition} position The position for this parameter - * @returns {yfiles.graph.ILabelModelParameter} a model parameter for the specified position + * @param position The position for this parameter + * @returns a model parameter for the specified position */ createParameter(position:yfiles.graph.NinePositionsEdgeLabelModelPosition):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56761,7 +55891,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56771,7 +55901,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56781,7 +55911,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56791,7 +55921,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56801,7 +55931,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56811,7 +55941,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56821,7 +55951,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56831,7 +55961,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56860,7 +55990,7 @@ declare namespace system{ *

    * The label will be placed centered on top or below the node's {@link yfiles.graph.INode#layout} using a specifiable {@link yfiles.graph.SandwichLabelModel#yOffset}. *

    - * @class yfiles.graph.SandwichLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} */ @@ -56873,55 +56003,54 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.SandwichLabelModel#yOffset} property on the created object. *

    - * @constructor */ constructor(options?:{yOffset?:number}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter for the north side of the node. - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createNorthParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter for the south side of the node. - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createSouthParameter():yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.SandwichLabelModel#yOffset} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.SandwichLabelModel#yOffset} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56931,7 +56060,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.SandwichLabelModel#yOffset} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.SandwichLabelModel#yOffset} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56948,7 +56077,7 @@ declare namespace system{ } /** * A port location model that places the port on a certain edge segment at a specified ratio. - * @class yfiles.graph.SegmentRatioPortLocationModel + * @class * @implements {yfiles.graph.IPortLocationModel} * @final */ @@ -56956,44 +56085,44 @@ declare namespace system{ export class SegmentRatioPortLocationModel { /** * Creates the a new parameter for the specified segment index and ratio. - * @param {number} ratio The ratio for the segment, with 0 being at the start of the segment and 1 at the end. - * @param {number} segmentIndex The index of the segment. - * @returns {yfiles.graph.IPortLocationModelParameter} A parameter for the given ratio and segment. + * @param ratio The ratio for the segment, with 0 being at the start of the segment and 1 at the end. + * @param segmentIndex The index of the segment. + * @returns A parameter for the given ratio and segment. */ createFromSource(ratio:number,segmentIndex:number):yfiles.graph.IPortLocationModelParameter; /** * Creates the a new parameter for the specified segment index counted from the target end of the edge and the provided * ratio. - * @param {number} ratio The ratio for the segment, with 0 being at the start of the segment and 1 at the end. - * @param {number} segmentIndex The index of the segment counted from the target end. - * @returns {yfiles.graph.IPortLocationModelParameter} A parameter for the given ratio and segment. + * @param ratio The ratio for the segment, with 0 being at the start of the segment and 1 at the end. + * @param segmentIndex The index of the segment counted from the target end. + * @returns A parameter for the given ratio and segment. */ createFromTarget(ratio:number,segmentIndex:number):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.geometry.Point} location - * @returns {yfiles.graph.IPortLocationModelParameter} + * @param owner + * @param location + * @returns */ createParameter(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.graph.ILookup} + * @param port + * @param locationParameter + * @returns */ getContext(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.geometry.Point} + * @param port + * @param locationParameter + * @returns */ getLocation(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.geometry.Point; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -57026,7 +56155,7 @@ declare namespace system{ * During movements, labels with this model snap to noteable positions if the {@link yfiles.input.MoveLabelInputMode} provides a {@link yfiles.input.LabelSnapContext} * that is enabled and has a suitable configuration. *

    - * @class yfiles.graph.SmartEdgeLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterFinder} */ @@ -57043,66 +56172,65 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.SmartEdgeLabelModel#autoRotation} property on the created object. *

    - * @constructor */ constructor(options?:{angle?:number,autoRotation?:boolean}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter that measures the provided segment index from the source side of the edge path. - * @param {number} segmentIndex The zero-based index of the segment beginning from the source side. - * @param {number} distance The distance between the label's box and the edge's path. - * @param {number} segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the + * @param segmentIndex The zero-based index of the segment beginning from the source side. + * @param distance The distance between the label's box and the edge's path. + * @param segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the * segment, a ratio of 1.0 at the target side. Ratios lesser than 0.0 or greater than 1.0 will be interpreted as absolute * values in world coordinates. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter that describes the provided parameters for this model instance. + * @returns A label parameter that describes the provided parameters for this model instance. */ createParameterFromSource(segmentIndex:number,distance:number,segmentRatio:number):yfiles.graph.ILabelModelParameter; /** * Creates a parameter that measures the provided segment index from the target side of the edge path. - * @param {number} segmentIndex The zero-based index of the segment beginning from the target side. - * @param {number} distance The distance between the label's box and the edge's path. - * @param {number} segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the target side of the + * @param segmentIndex The zero-based index of the segment beginning from the target side. + * @param distance The distance between the label's box and the edge's path. + * @param segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the target side of the * segment, a ratio of 1.0 at the source side. Ratios lesser than 0.0 or greater than 1.0 will be interpreted as absolute * values in world coordinates. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter that describes the provided parameters for this model instance. + * @returns A label parameter that describes the provided parameters for this model instance. */ createParameterFromTarget(segmentIndex:number,distance:number,segmentRatio:number):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @param {yfiles.geometry.IOrientedRectangle} layout - * @returns {yfiles.graph.ILabelModelParameter} + * @param label + * @param model + * @param layout + * @returns */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * Gets the distance from the edge path described by the specified parameter. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to get the edge path distance for. - * @returns {number} The distance from the edge path + * @param layoutParameter The parameter to get the edge path distance for. + * @returns The distance from the edge path */ getDistance(layoutParameter:yfiles.graph.ILabelModelParameter):number; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -57151,7 +56279,7 @@ declare namespace system{ } /** * A canonic implementation of the {@link yfiles.graph.IPortDefaults} interface. - * @class yfiles.graph.PortDefaults + * @class * @implements {yfiles.graph.IPortDefaults} */ export interface PortDefaults extends Object,yfiles.graph.IPortDefaults{} @@ -57164,7 +56292,6 @@ declare namespace system{ * @param {boolean} [options.shareLocationParameterInstance=null] Sets the shareLocationParameterInstance property. * @param {yfiles.styles.IPortStyle} [options.style=null] Sets the style property. * @param {boolean} [options.shareStyleInstance=null] Sets the shareStyleInstance property. - * @constructor */ constructor(options?:{autoCleanup?:boolean,locationParameter?:yfiles.graph.IPortLocationModelParameter,shareLocationParameterInstance?:boolean,style?:yfiles.styles.IPortStyle,shareStyleInstance?:boolean}); /** @@ -57173,19 +56300,19 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.PortDefaults#style} property, if {@link yfiles.graph.PortDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @returns {yfiles.styles.IPortStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.PortDefaults#style} property, if {@link yfiles.graph.PortDefaults#shareStyleInstance} is enabled. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. */ GetDefaultStyleInstance():yfiles.styles.IPortStyle; /** * - * @param {yfiles.graph.IPortOwner} owner - * @returns {yfiles.graph.IPortLocationModelParameter} + * @param owner + * @returns */ getLocationParameterInstance(owner:yfiles.graph.IPortOwner):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPortOwner} owner - * @returns {yfiles.styles.IPortStyle} + * @param owner + * @returns */ getStyleInstance(owner:yfiles.graph.IPortOwner):yfiles.styles.IPortStyle; /** @@ -57220,7 +56347,7 @@ declare namespace system{ } /** * A canonic implementation of the {@link yfiles.graph.INodeDefaults} interface. - * @class yfiles.graph.NodeDefaults + * @class * @implements {yfiles.graph.INodeDefaults} */ export interface NodeDefaults extends Object,yfiles.graph.INodeDefaults{} @@ -57233,12 +56360,11 @@ declare namespace system{ * @param {yfiles.graph.IPortDefaults} [options.ports=null] Sets the ports property. * @param {yfiles.styles.INodeStyle} [options.style=null] Sets the style property. * @param {boolean} [options.shareStyleInstance=null] Sets the shareStyleInstance property. - * @constructor */ constructor(options?:{size?:yfiles.geometry.Size,labels?:yfiles.graph.ILabelDefaults,ports?:yfiles.graph.IPortDefaults,style?:yfiles.styles.INodeStyle,shareStyleInstance?:boolean}); /** * - * @returns {yfiles.styles.INodeStyle} + * @returns */ getStyleInstance():yfiles.styles.INodeStyle; /** @@ -57271,7 +56397,7 @@ declare namespace system{ } /** * A canonic implementation of the {@link yfiles.graph.IEdgeDefaults} interface - * @class yfiles.graph.EdgeDefaults + * @class * @implements {yfiles.graph.IEdgeDefaults} */ export interface EdgeDefaults extends Object,yfiles.graph.IEdgeDefaults{} @@ -57283,12 +56409,11 @@ declare namespace system{ * @param {yfiles.graph.IPortDefaults} [options.ports=null] Sets the ports property. * @param {yfiles.styles.IEdgeStyle} [options.style=null] Sets the style property. * @param {boolean} [options.shareStyleInstance=null] Sets the shareStyleInstance property. - * @constructor */ constructor(options?:{labels?:yfiles.graph.ILabelDefaults,ports?:yfiles.graph.IPortDefaults,style?:yfiles.styles.IEdgeStyle,shareStyleInstance?:boolean}); /** * - * @returns {yfiles.styles.IEdgeStyle} + * @returns */ getStyleInstance():yfiles.styles.IEdgeStyle; /** @@ -57316,7 +56441,7 @@ declare namespace system{ } /** * A canonic implementation of the {@link yfiles.graph.ILabelDefaults} interface - * @class yfiles.graph.LabelDefaults + * @class * @implements {yfiles.graph.ILabelDefaults} */ export interface LabelDefaults extends Object,yfiles.graph.ILabelDefaults{} @@ -57329,19 +56454,18 @@ declare namespace system{ * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] Sets the layoutParameter property. * @param {boolean} [options.shareStyleInstance=null] Sets the shareStyleInstance property. * @param {yfiles.styles.ILabelStyle} [options.style=null] Sets the style property. - * @constructor */ constructor(options?:{autoAdjustPreferredSize?:boolean,shareLayoutParameterInstance?:boolean,layoutParameter?:yfiles.graph.ILabelModelParameter,shareStyleInstance?:boolean,style?:yfiles.styles.ILabelStyle}); /** * - * @param {yfiles.graph.ILabelOwner} owner - * @returns {yfiles.graph.ILabelModelParameter} + * @param owner + * @returns */ getLayoutParameterInstance(owner:yfiles.graph.ILabelOwner):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabelOwner} owner - * @returns {yfiles.styles.ILabelStyle} + * @param owner + * @returns */ getStyleInstance(owner:yfiles.graph.ILabelOwner):yfiles.styles.ILabelStyle; /** @@ -57381,9 +56505,9 @@ declare namespace system{ export interface IGroupBoundsCalculator extends Object{ /** * Calculates the bounds of the {@link yfiles.graph.INode#layout} for the given groupNode that is a group node in the graph. - * @param {yfiles.graph.IGraph} graph The graph which holds the groupNode. - * @param {yfiles.graph.INode} groupNode The node to calculate the bounds for. - * @returns {yfiles.geometry.Rect} The minimum bounds to use for the given group node. + * @param graph The graph which holds the groupNode. + * @param groupNode The node to calculate the bounds for. + * @returns The minimum bounds to use for the given group node. * @abstract */ calculateBounds(graph:yfiles.graph.IGraph,groupNode:yfiles.graph.INode):yfiles.geometry.Rect; @@ -57393,120 +56517,1093 @@ declare namespace system{ isInstance(o:Object):boolean; }; /** - * Contains less frequently used methods for analyzing and managing grouped graphs. + * A group of {@link yfiles.graph.IUndoUnit}s that are undone/redone as a single unit. *

    - * An instance of this class which is configured for a given {@link yfiles.graph.IGraph} instance can be obtained via {@link yfiles.graph.IGraph#groupingSupport}. + * Clients can use this class to build an {@link yfiles.graph.IUndoUnit} that groups together multiple {@link yfiles.graph.IUndoUnit}s. The + * {@link yfiles.graph.IUndoUnit}s added to this unit are undone/redone in the order in which they were added. This implementation + * will try to {@link yfiles.graph.IUndoUnit#tryMergeUnit merge} or {@link yfiles.graph.IUndoUnit#tryReplaceUnit replace} units that are {@link yfiles.graph.CompositeUndoUnit#add added}. *

    - * @class yfiles.graph.GroupingSupport + * @class + * @implements {yfiles.graph.IUndoUnit} */ - export interface GroupingSupport extends Object{} - export class GroupingSupport { + export interface CompositeUndoUnit extends Object,yfiles.graph.IUndoUnit{} + export class CompositeUndoUnit { /** - * Creates a new instance which operates on the given graph. - * @param {yfiles.graph.IGraph} graph The graph to operate on. - * @constructor + * Creates a new instance using the provided names. + * @param [undoName=null] + * @param [redoName=null] */ - constructor(graph:yfiles.graph.IGraph); + constructor(undoName?:string,redoName?:string); /** - * Calculates the minimum area to enclose by the given group node with respect to its {@link yfiles.graph.IGroupBoundsCalculator}. - * @param {yfiles.graph.INode} groupNode The group node to calculate the minimum enclosed area of. - * @returns {yfiles.geometry.Rect} The area to enclose for the given group node. This is {@link yfiles.geometry.Rect#EMPTY} if the node is not a group node, or if - * it hasn't any children. + * Creates a new instance using the provided names. + * @param {Object} options The parameters to pass. + * @param [options.undoName=null] + * @param [options.redoName=null] */ - calculateMinimumEnclosedArea(groupNode:yfiles.graph.INode):yfiles.geometry.Rect; + constructor(options:{undoName?:string,redoName?:string}); /** - * Enlarges all group nodes in the graph in an interactive scenario, so that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed area} is respected. + * Adds a new {@link yfiles.graph.IUndoUnit} to the queue. + * @param unit The unit of work to add. + */ + add(unit:yfiles.graph.IUndoUnit):void; + /** + * Determines whether a call to {@link yfiles.graph.CompositeUndoUnit#redo} can be made. + * @returns + */ + canRedo():boolean; + /** + * Determines whether a call to {@link yfiles.graph.CompositeUndoUnit#undo} can be made. + * @returns + */ + canUndo():boolean; + /** + * Clears the internal collection of units. + */ + clear():void; + /** + * Disposes this unit and all of its contents. *

    - * This method should be used in an interactive editing scenario. It records an {@link yfiles.graph.ICompoundEdit} to support - * undoability and uses the {@link yfiles.input.IReshapeHandler} for the resizing of the nodes. That way, e.g. orthogonally edited - * edges will be properly reshaped. + * This unit cannot be used anymore after this has been invoked. *

    - * @param {yfiles.input.IInputModeContext} context The context to use for the {@link yfiles.input.IReshapeHandler}s. - * @see yfiles.graph.GroupingSupport#enlargeGroupNode */ - enlargeAllGroupNodes(context:yfiles.input.IInputModeContext):void; + dispose():void; /** - * Enlarges all group nodes in the graph so that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed area} is respected. - * @see yfiles.graph.GroupingSupport#enlargeGroupNode + * Redoes the next {@link yfiles.graph.IUndoUnit}. + * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. + * @throws {yfiles.lang.Exception} If {@link yfiles.graph.CompositeUndoUnit#canRedo} would yield false. */ - enlargeAllGroupNodes():void; + redo():void; /** - * Enlarges the group nodes in an interactive scenario, using {@link yfiles.input.IReshapeHandler} implementations of the group - * nodes to perform the actual resizing. + * Tries to remove a given unit from this compound unit. *

    - * This method should be used in an interactive editing scenario. It records an {@link yfiles.graph.ICompoundEdit} to support - * undoability and uses the {@link yfiles.input.IReshapeHandler} for the resizing of the nodes. That way, e.g. orthogonally edited - * edges will be properly reshaped. + * This method will throw an exception if this unit has been undone or an undo or redo is in progress or this unit has + * already been disposed. This method will not automatically {@link yfiles.graph.IUndoUnit#dispose Dispose} removed units. *

    - * @param {yfiles.input.IInputModeContext} context The context to use for the {@link yfiles.input.IReshapeHandler}s. - * @param {yfiles.graph.INode} node The node to enlarge appropriately. - * @param {boolean} ancestors if set to true ancestors the ancestor group nodes will be adjusted, too, if necessary. - * @see yfiles.input.IReshapeHandler + * @param unit The unit to remove. + * @returns true iff the unit has been removed from this instance. */ - enlargeGroupNode(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,ancestors:boolean):void; + removeUnit(unit:yfiles.graph.IUndoUnit):boolean; /** - * Enlarges the given group node to ensure that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed} area is inside of its bounds. + * Undoes the next {@link yfiles.graph.IUndoUnit}. + * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. + * @throws {yfiles.lang.Exception} If {@link yfiles.graph.CompositeUndoUnit#canUndo} would yield false. + */ + undo():void; + /** + * Yields the number of units that are contained in this compound unit. + * @type {number} + */ + count:number; + /** + * Returns the current redo name. + * @type {string} + */ + redoName:string; + /** + * Returns the current redo name. + * @type {string} + */ + undoName:string; + /** + * Determines whether this instance has been {@link yfiles.graph.CompositeUndoUnit#dispose disposed.} *

    - * This method can be used to resize a group node and all of its parent group nodes to fully contain its children, e.g. - * after a child node has changed its bounds. Note that this method will only enlarge the bounds of the group nodes, it - * will never reduce the size of a group node. + * An instance that has been disposed cannot be {@link yfiles.graph.CompositeUndoUnit#undo undone} or {@link yfiles.graph.CompositeUndoUnit#redo redone}. *

    - * @param {yfiles.graph.INode} groupNode The group node to resize. - * @param {boolean} ancestors if set to true all ancestor group nodes will be resized, too, if necessary - * @see yfiles.graph.GroupingSupport#enlargeGroupNode + * @type {boolean} */ - enlargeGroupNode(groupNode:yfiles.graph.INode,ancestors:boolean):void; + disposed:boolean; + static $class:yfiles.lang.Class; + } + /** + * This interface is a means to bracket several + * {@link yfiles.graph.IUndoUnit}s, that is a collection of units that are treated as one (for example they are always undone or + * redone as a single unit). + *

    + * {@link yfiles.graph.ICompoundEdit}s have two states: active and settled. Whenever an {@link yfiles.graph.ICompoundEdit} is retrieved from the {@link yfiles.graph.UndoEngine} + * or the graph instance, it automatically is active. While an edit is in the active state, it gathers {@link yfiles.graph.IUndoUnit}s until + * the {@link yfiles.graph.ICompoundEdit#commit} or {@link yfiles.graph.ICompoundEdit#cancel} methods are called. Calling the {@link yfiles.graph.ICompoundEdit#commit} + * method commits all gathered {@link yfiles.graph.IUndoUnit}s to the {@link yfiles.graph.UndoEngine}, while canceling will {@link yfiles.graph.IUndoUnit#dispose dispose} them. + * Calling either method will put the edit in the settled state. In this state, the edit does not gather units anymore and is not + * reusable. + *

    + *

    + * {@link yfiles.graph.ICompoundEdit}s can also be nested, in this case the changes of the inner edit are not committed directly to + * the {@link yfiles.graph.UndoEngine} but to the outer edit. Only when the outer edit is committed, the units are committed to the + * {@link yfiles.graph.UndoEngine}. + *

    + * @see yfiles.graph.UndoEngine + * @see yfiles.graph.IUndoUnit + * @interface + */ + export interface ICompoundEdit extends Object{ /** - * Returns all descendants of the provided node that are part of the grouped graph. + * This method cancels the compound editing process. *

    - * The enumeration will be top down, i.e. all of a node's ancestors will be enumerated before the respective node. + * The recorded {@link yfiles.graph.IUndoUnit}s are {@link yfiles.graph.IUndoUnit#dispose disposed} and the edit is not usable anymore. *

    - * @param {yfiles.graph.INode} node The root node to get the descendants from. - * @returns {yfiles.collections.IEnumerable.} An enumeration of the children of the node at the time of this invocation in reverse DFS prefix order. + * @abstract */ - getDescendants(node:yfiles.graph.INode):yfiles.collections.IEnumerable; + cancel():void; /** - * Returns all descendants of the provided node that are part of the grouped graph. + * This method commits the compound editing process. *

    - * The enumeration will be bottom up, i.e. all of a node's children will be enumerated before the respective node. + * The {@link yfiles.graph.IUndoUnit}s are enqueued into the corresponding {@link yfiles.graph.UndoEngine} instance and the edit is not + * usable anymore. *

    - * @param {yfiles.graph.INode} node The root node to get the descendants from. - * @returns {yfiles.collections.IEnumerable.} An enumeration of the children of the node at the time of this invocation in DFS postfix order. + * @abstract */ - getDescendantsBottomUp(node:yfiles.graph.INode):yfiles.collections.IEnumerable; + commit():void; + } + var ICompoundEdit:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * The basic lookup interface that allows for retrieving implementations for different aspects of the current instance. + *

    + * The lookup idiom allows for dynamically providing, adding, changing, and removing implementation aspects of an instance + * that would not be possible to achieve using ordinary object oriented methods. + *

    + * @interface + */ + export interface ILookup extends Object{ /** - * Determines the nearest common ancestor of the provided nodes in the graph. - * @param {...yfiles.graph.INode} nodes The nodes to find the nearest common ancestor of. - * @returns {yfiles.graph.INode} - */ - getNearestCommonAncestor(...nodes:yfiles.graph.INode[]):yfiles.graph.INode; - /** - * Determines the nearest common ancestor of the provided nodes in the graph. - * @param {yfiles.collections.IEnumerable.} nodes The nodes to find the nearest common ancestor of. - * @returns {yfiles.graph.INode} - */ - getNearestCommonAncestor(nodes:yfiles.collections.IEnumerable):yfiles.graph.INode; - /** - * Gets the path to root traversing all {@link yfiles.graph.IGraph#getParent parents} of the given item. - * @param {yfiles.graph.INode} node The node to start. - * @returns {yfiles.collections.IList.} A list that includes the node but not the root, unless they are identical and all parents in between them. - */ - getPathToRoot(node:yfiles.graph.INode):yfiles.collections.IList; - /** - * Whether there are group nodes in the graph. + * Returns an instance that implements the given type or null. *

    - * This methods considers all {@link yfiles.graph.IGraph#isGroupNode group} nodes with {@link yfiles.graph.IGraph#getChildren children} as group nodes. + * Typically, this method will be called in order to obtain a different view or aspect of the current instance. This is + * quite similar to casting or using a super type or interface of this instance, but is not limited to inheritance or + * compile time constraints. An instance implementing this method is not required to return non-null implementations for + * the types, nor does it have to return the same instance any time. Also it depends on the type and context whether the + * instance returned stays up to date or needs to be reobtained for subsequent use. *

    - * @returns {boolean} true if there are {@link yfiles.graph.IGraph#isGroupNode group} nodes with {@link yfiles.graph.IGraph#getChildren children}. + * @param type the type for which an instance shall be returned + * @returns an instance that is assignable to type or null + * @abstract */ - hasGroupNodes():boolean; + lookup(type:yfiles.lang.Class):Object; + } + var ILookup:{ /** - * Determines whether ancestor is an ancestor of node in the grouped graph. - * @param {yfiles.graph.INode} node The node to check. - * @param {yfiles.graph.INode} ancestor The ancestor to check. - * @returns {boolean} Whether ancestor is an ancestor of node. + * Creates a lookup implementation that wraps an existing ILookup instance using an additional lookup implementations. + *

    + * For each lookup call that the additionalLookup would yield null, the basicLookup will be queried instead. + *

    + * @param basicLookup the fallback lookup implementation + * @param additionalLookup the lookup that has precedence over the fallback + * @returns an implementation that decorates the first with the latter + * @static */ - isDescendant(node:yfiles.graph.INode,ancestor:yfiles.graph.INode):boolean; + createCascadingLookup?(basicLookup:yfiles.graph.ILookup,additionalLookup:yfiles.graph.ILookup):yfiles.graph.ILookup; + /** + * Creates a dynamic lookup implementation that for each type that the given subject can be assigned to yields that + * subject. + * @param subject the subject to yield if it is assignable to the type in the lookup query + * @returns an instance that will either yield subject or null + * @static + */ + createDynamicLookup?(subject:Object):yfiles.graph.ILookup; + /** + * Creates a simple mutable {@link yfiles.graph.ILookup} implementation that is backed by an {@link yfiles.collections.IMap.}. + *

    + * The {@link yfiles.graph.ILookup#lookup lookup} method uses the specified type as key when delegating to the backingDictionary. + *

    + * @param backingDictionary The backing {@link } that is used in the {@link #lookup lookup} calls. + * @returns A simple mutable {@link } implementation that is backed by a dictionary. + * @static + */ + createMapLookup?(backingDictionary:yfiles.collections.Map):yfiles.graph.ILookup; + /** + * Creates a simple lookup implementation that yields subject if type is queried. + * @param subject the subject to yield + * @param type the type that should yield the subject + * @returns an ILookup implementation + * @static + */ + createSingleLookup?(subject:Object,type:yfiles.lang.Class):yfiles.graph.ILookup; + /** + * An ILookup instance that always returns null. + * @const + * @static + * @type {yfiles.graph.ILookup} + */ + EMPTY?:yfiles.graph.ILookup; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An interface for instances that can provide a {@link yfiles.graph.ILookup} capabilities for a given object. + *

    + * This is useful in the case where lookup functionality is not intrinsic to an item or where an existing object cannot + * implement the interface or when an item needs to be decorated externally with new lookup functionality. + *

    + * @see yfiles.graph.ILookup + * @interface + */ + export interface IContextLookup extends Object{ + /** + * Tries to create or retrieve an implementation of the given type for a given item. + * @param item the item to lookup a type for + * @param type the type to look up + * @returns an implementation or null + * @see yfiles.graph.ILookup#lookup + * @abstract + */ + contextLookup(item:Object,type:yfiles.lang.Class):Object; + } + var IContextLookup:{ + /** + * An ILookupContext instance that always returns null. + * @const + * @static + * @type {yfiles.graph.IContextLookup} + */ + EMPTY_CONTEXT_LOOKUP?:yfiles.graph.IContextLookup; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An interface for instances that can be used to chain lookup operations. + *

    + * Implementations will perform the lookup in the {@link yfiles.graph.IContextLookup#contextLookup} method and delegate to the next + * implementation in the chain if they cannot satisfy the request. + *

    + * @interface + * @implements {yfiles.graph.IContextLookup} + */ + export interface IContextLookupChainLink extends Object,yfiles.graph.IContextLookup{ + /** + * This method is called by the framework to register the fallback lookup implementation that should be used during a call + * to {@link yfiles.graph.IContextLookup#contextLookup}. + *

    + * If the implementation cannot satisfy the query, it will use the provided context as a fallback. Note that + * implementations can also use the results returned by the next lookup and decorate it appropriately. + *

    + * @param next The context to use as a fallback. + * @abstract + */ + setNext(next:yfiles.graph.IContextLookup):void; + } + var IContextLookupChainLink:{ + /** + * Factory method for a lookup chain element that simply adds an entry to a lookup chain. + * @param type The type to add to the lookup. + * @param instance The instance to return if the type is being looked up. + * @returns An instance that can be used in a lookup chain. + * @static + */ + addingLookupChainLink?(type:yfiles.lang.Class,instance:Object):yfiles.graph.IContextLookupChainLink; + /** + * Factory method for a lookup chain element that adds an {@link yfiles.graph.ILookup} layer to a lookup chain. + *

    + * If the lookup returns null, the call will be propagated to the chain. + *

    + * @param lookup The lookup to use. + * @returns An instance that can be used in a lookup chain. + * @static + */ + addingLookupChainLink?(lookup:yfiles.graph.ILookup):yfiles.graph.IContextLookupChainLink; + /** + * Factory method for a lookup chain element that adds an dynamic instance to a lookup chain. + *

    + * The instance returned will check whether instance is of the queried type and will then return the instance. + *

    + * @param instance The instance to query the type from dynamically. + * @returns An instance that can be used in a lookup chain. + * @static + */ + addingLookupChainLink?(instance:Object):yfiles.graph.IContextLookupChainLink; + /** + * Creates a lookup chain link that is backed by the given callback. + *

    + * If the callback returns null the request is passed to the chain. + *

    + * @param callback The callback to invoke. + * @returns The implementation of the link that uses the callback. + * @static + */ + createContextLookupChainLink?(callback:(subject:Object,type:yfiles.lang.Class)=>Object):yfiles.graph.IContextLookupChainLink; + /** + * Factory method for a lookup chain element that uses a function of type function(TContext) to yield a TResult for a specific TContext. + *

    + * If the resulting link is {@link yfiles.graph.IContextLookup#contextLookup queried} for TResult and the context is of type TContext, the factory method will be queried and the result + * will be returned. Otherwise the {@link yfiles.graph.IContextLookupChainLink#setNext next} chain link will be delegated the request to. + *

    + * Type parameter TContext. + * Type parameter TResult. + * @param factory The factory delegate to use that yields the result for a given context. + * @returns An instance that can be used in a lookup chain. + * @template TContext,TResult + * @static + */ + factoryLookupChainLink?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult):yfiles.graph.IContextLookupChainLink; + /** + * Factory method for a lookup chain element that removes the entry from the lookup chain for a given type. + * @param type The type to hide from the lookup. + * @returns An instance that can be used in a lookup chain. + * @static + */ + hidingLookupChainLink?(type:yfiles.lang.Class):yfiles.graph.IContextLookupChainLink; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that can be used to decorate the lookup result for a set of types. + * @see yfiles.graph.ILookup + * @see yfiles.graph.IContextLookupChainLink + * @interface + */ + export interface ILookupDecorator extends Object{ + /** + * Adds a lookup implementation for a given type using a function of type function(TContext, TResult). + *

    + * This method is closely related to the {@link yfiles.graph.ILookupDecorator#add} method, however it passes the result of the + * remaining chain to the delegate for convenient wrapping of the result. Note that if the implementation does not depend + * on the previous result in order to wrap it, it is better to use that variant, in order to avoid the possibly costly + * evaluation of the remainder of the lookup chain. + *

    + * Type parameter TContext: The type of the context subject. + * Type parameter TResult: The type of the query, which is a base type or the type of the result. + * @param wrapperFactory The factory delegate that will be used to satisfy queries of type TResult + * @param [decorateNull=true] Whether to actually decorate null results of remainder of the chain. If this is set to false, the wrapperFactory will + * never be called with null as the second argument but the result of the query for this chain link will be the null + * value. + * @returns The {@link } instance as returned by the {@link #addLookup} call or + * null, if either decorator was null, or it {@link #canDecorate could not decorate} the TContext type. + * @template TContext,TResult + */ + add?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,wrapperFactory:(arg1:TContext,arg2:TResult)=>TResult,decorateNull?:boolean):yfiles.graph.IContextLookupChainLink; + /** + * Adds a lookup implementation for a given type using a func. + * Type parameter TContext: The type of the context subject. + * Type parameter TResult: The type of the query, which is a base type or the type of the result. + * @param factory The factory delegate that will be used to satisfy queries of type TResult. + * @param [nullIsFallback=true] Whether to treat null-results of the factory as hints to use the remainder of the chain link or to actually yield the + * value as the final result. + * @returns The {@link } instance as returned by the {@link #addLookup} call or + * null, if either decorator was null, or it {@link #canDecorate could not decorate} the TContext type. + * @template TContext,TResult + */ + add?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult,nullIsFallback?:boolean):yfiles.graph.IContextLookupChainLink; + /** + * Add a lookup implementation for a given type that always yields a constant result. + * Type parameter TContext: The type of the context subject. + * Type parameter TResult: The type of the query, which is a base type or the type of the result. + * @param result The constant value to yield if the chain is queried for an implementation of type TResult. + * @returns The {@link } instance as returned by the {@link #addLookup} call or + * null, if either decorator was null, or it {@link #canDecorate could not decorate} the TContext type. + * @template TContext,TResult + */ + addConstant?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,result:TResult):yfiles.graph.IContextLookupChainLink; + /** + * Adds a lookup chain element to the chain of lookups for a given type. + *

    + * The lookup chain is context specific. This method will not generally decorate the lookup of all instances of type t, but + * only those that stand in context of this instance. This method will only succeed if {@link yfiles.graph.ILookupDecorator#canDecorate} + * yields true for t. + *

    + * @param t The type to decorate the lookup. + * @param lookup The chain element to add to the lookup of the given type. + * @see yfiles.graph.ILookupDecorator#removeLookup + * @see yfiles.graph.ILookupDecorator#add + * @see yfiles.graph.ILookupDecorator#add + * @see yfiles.graph.ILookupDecorator#addConstant + * @abstract + */ + addLookup(t:yfiles.lang.Class,lookup:yfiles.graph.IContextLookupChainLink):void; + /** + * Determines whether this instance can be used to decorate the lookup for a certain type. + * @param t The type to decorate the lookup for. + * @returns + * @abstract + */ + canDecorate(t:yfiles.lang.Class):boolean; + /** + * Removes a previously registered lookup chain element from the chain of lookups for a given type. + * @param t The type to remove the decorator from. + * @param lookup The chain element to remove from the lookup of the given type. + * @see yfiles.graph.ILookupDecorator#addLookup + * @abstract + */ + removeLookup(t:yfiles.lang.Class,lookup:yfiles.graph.IContextLookupChainLink):void; + } + var ILookupDecorator:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface implemented by items that can be tagged with arbitrary objects. + *

    + * The object held by implementations of this interface is usually a user defined object. Implementations don't depend on + * this tag. They just serve as a storage for the tag that will be used by other parts of the implementation. + *

    + * @interface + */ + export interface ITagOwner extends Object{ + /** + * Gets or sets the tag associated with this instance. + *

    + * The implementation itself does not normally depend on the tag associated with it. It serves as storage for the object + * only. + *

    + * @abstract + * @type {Object} + */ + tag:Object; + } + var ITagOwner:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An implementation of a chain of {@link yfiles.graph.IContextLookupChainLink}s. + * @class + * @implements {yfiles.graph.IContextLookup} + * @implements {yfiles.lang.IPropertyObservable} + */ + export interface LookupChain extends Object,yfiles.graph.IContextLookup,yfiles.lang.IPropertyObservable{} + export class LookupChain { + constructor(); + /** + * A convenience method that adds a {@link yfiles.graph.IContextLookupChainLink} to the given chain that is based on a function of + * type function(TContext, TResult). + *

    + * Depending on decorateNull, null results of the underlying chain will be passed to the + * wrapperFactory, or simply yielded as the final result. + *

    + * Type parameter TContext: The type of the context. + * Type parameter TResult: The type of the result. + * @param resultType The type of the result. + * @param contextType The type of the context. + * @param wrapperFactory The wrapper factory that will be called for queries to TResult to wrap the result of the query to the remainder of the chain. + * @param [decorateNull=false] if set to true null return values of the remainder of the chain will be passed to the wrapper factory so that it can + * decorate the null, otherwise null will be yielded as the final result. + * @returns The link that has been registered with the chain. + * @template TContext,TResult + */ + add(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,wrapperFactory:(arg1:TContext,arg2:TResult)=>TResult,decorateNull?:boolean):yfiles.graph.IContextLookupChainLink; + /** + * A convenience method that adds a {@link yfiles.graph.IContextLookupChainLink} to the given chain that is based on a function of + * type function(TContext). + *

    + * Depending on nullIsFallback, null return values of the factory will be interpreted as the final result or indicate to + * the implementation that the chain should be queried for the result. + *

    + * Type parameter TContext: The type of the context. + * Type parameter TResult: The type of the result. + * @param resultType The type of the result. + * @param contextType The type of the context. + * @param factory The factory that will be called for queries to TResult. + * @param [nullIsFallback=true] If set to true, null return values of the factory method will be interpreted as the final result, otherwise the request + * will propagate down the chain. + * @returns The link that has been registered with the chain. + * @template TContext,TResult + */ + add(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult,nullIsFallback?:boolean):yfiles.graph.IContextLookupChainLink; + /** + * Adds the given link to the end of the chain. + * @param lookup The link to add. + * @see yfiles.graph.LookupChain#remove + */ + add(lookup:yfiles.graph.IContextLookupChainLink):void; + /** + * Convenience method that can be used instead of the {@link yfiles.graph.LookupChain#add} method to easily add a lookup + * implementation for a given type that always yields a constant result. + * Type parameter TResult: The type of the query, which is a base type or the type of the result. + * @param result The constant value to yield if the chain is queried for an implementation of type TResult. + * @returns The {@link } instance that has been added to the chain. + * @template TResult + */ + addConstant(resultType:yfiles.lang.Class,result:TResult):yfiles.graph.IContextLookupChainLink; + /** + * Performs the actual lookup operation. + *

    + * This call will traverse the chain to satisfy the query. + *

    + * @param item The item to use as the context. + * @param type The type of the query. + * @returns The result of the query. + */ + contextLookup(item:Object,type:yfiles.lang.Class):Object; + /** + * Can be called by client code to trigger the {@link yfiles.graph.LookupChain#addPropertyChangedListener PropertyChanged} + * event manually. + */ + notifyChange():void; + /** + * Notifies client code that the lookup of this instance might have changed. + * @param evt The arguments + * @protected + */ + onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; + /** + * Removes the link that has previously been added to this instance from this chain. + * @param link The link to remove. + */ + remove(link:yfiles.graph.IContextLookupChainLink):void; + /** + * Adds the given listener for the PropertyChanged event that occurs when the lookup of this instance has changed for some + * or all of the types or items. + * @param listener The listener to add. + * @see yfiles.graph.LookupChain#removePropertyChangedListener + */ + addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Removes the given listener for the PropertyChanged event that occurs when the lookup of this instance has changed for + * some or all of the types or items. + * @param listener The listener to remove. + * @see yfiles.graph.LookupChain#addPropertyChangedListener + */ + removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + /** + * The main class to provide undo and redo functionality. + *

    + * The {@link yfiles.graph.UndoEngine} is in charge of {@link yfiles.graph.UndoEngine#beginCompoundEdit recording}, {@link yfiles.graph.UndoEngine#addUnit managing} and {@link yfiles.graph.UndoEngine#undo executing} single units of work that can be undone + * and redone, represented by the interface {@link yfiles.graph.IUndoUnit}. + *

    + *

    + * These units are managed in a queue-like structure and can be added manually to the queue by calling the {@link yfiles.graph.UndoEngine#addUnit} + * method. + *

    + *

    + * Executing the units is done by client code or commands by calling {@link yfiles.graph.UndoEngine#undo} or + * {@link yfiles.graph.UndoEngine#redo}. The engine automatically manages the queue so that calling these two methdos will + * consistently move the units in the queue. + *

    + *

    + * The {@link yfiles.graph.UndoEngine#beginCompoundEdit} method allows to record units by bracketing serveral changes in an + * {@link yfiles.graph.ICompoundEdit}. Implementations of the {@link yfiles.graph.ICompoundEdit} interface record all subsequent changes + * until it is {@link yfiles.graph.ICompoundEdit#commit committed} and therefore all recorded units are added to the engine. For more information and examples see + * {@link yfiles.graph.ICompoundEdit}. + *

    + *

    + * Depending on the properties {@link yfiles.graph.UndoEngine#mergeUnits} and {@link yfiles.graph.UndoEngine#autoMergeTime}, the engine tries to collapse added {@link yfiles.graph.IUndoUnit}s if possible. This enhances + * the performance and reduces the required memory for undo changes. For example, when a node is moved interactively, + * instead of saving every position that the node had when being dragged the engine will only hold one {@link yfiles.graph.IUndoUnit} + * at the end to undo the entire movement. + *

    + *

    + *
    Customizing Undo/Redo + *

      + *
    • + * In general, to be able to undo or redo certain work client code can implement {@link yfiles.graph.IUndoUnit} or subclass + * {@link yfiles.graph.UndoUnitBase UndoUnitBase}. The client application needs to encapsulate + * changes in this implementation and provide the logic to completely undo and redo these changes. + * Instances of your custom {@link yfiles.graph.IUndoUnit} implementations need to be added to the {@link yfiles.graph.UndoEngine} + * manually via {@link yfiles.graph.UndoEngine#addUnit}. + *
    • + *
    • + * In certain cases it is difficult or not efficient to track and save the changes between certain states, + * and better to save the states themselves and to restore these. For example when there are potentially + * many intermediate steps between two states of interest and it would be complicated + * to produce {@link yfiles.graph.IUndoUnit}s for each intermediate step and merge them in the end. + * In such cases client code should implement {@link yfiles.graph.IMementoSupport} instead. + * See the documentation of {@link yfiles.graph.IMementoSupport} for examples and guidelines on how to implement + * this memento design pattern concept. + *
    • + *
    • + * It is generally not necessary to subclass {@link yfiles.graph.UndoEngine} unless you want to customize the internal + * handling of the units, which is both complicated and prone to errors. In most use cases it is sufficient + * to provide custom {@link yfiles.graph.IUndoUnit}s or {@link yfiles.graph.IMementoSupport}. + *
    • + *
    + *

    + * @see yfiles.graph.IUndoUnit + * @see yfiles.graph.UndoUnitBase + * @see yfiles.graph.IMementoSupport + * @see yfiles.graph.ICompoundEdit + * @class + * @implements {yfiles.lang.IPropertyObservable} + */ + export interface UndoEngine extends Object,yfiles.lang.IPropertyObservable{} + export class UndoEngine { + /** + * Initializes a new instance of the {@link yfiles.graph.UndoEngine} class. + * @param {Object} [options=null] The parameters to pass. + * @param {boolean} options.mergeUnits A value that indicates whether or not this instance should try to merge newly added units. + *

    + * This option sets the {@link yfiles.graph.UndoEngine#mergeUnits} property on the created object. + *

    + * @param {yfiles.lang.TimeSpan} options.autoMergeTime The duration during which the engine will try to merge newly added units. + *

    + * This option sets the {@link yfiles.graph.UndoEngine#autoMergeTime} property on the created object. + *

    + * @param {number} options.size The maximum size of the undo queue this instance is managing. + *

    + * This option sets the {@link yfiles.graph.UndoEngine#size} property on the created object. + *

    + */ + constructor(options?:{mergeUnits?:boolean,autoMergeTime?:yfiles.lang.TimeSpan,size?:number}); + /** + * Adds a new {@link yfiles.graph.IUndoUnit} to the queue. + *

    + * This implementation will automatically group multiple units into a single unit if the time since the last add is less + * than {@link yfiles.graph.UndoEngine#autoMergeTime}. + *

    + * @param unit The unit of work to add. + */ + addUnit(unit:yfiles.graph.IUndoUnit):void; + /** + * Begins a compound edit that will use the provided name. + *

    + * This will create a new edit that can independently be {@link yfiles.graph.ICompoundEdit#cancel canceled} or {@link yfiles.graph.ICompoundEdit#commit committed}. Note that only if the outer-most instances + * is committed, the corresponding {@link yfiles.graph.IUndoUnit} units will be enqueued into this instance. + *

    + * @param undoName The undo name to use for the edit. + * @param redoName The redo name to use for the edit. + * @returns A compound edit implementation that needs to be {@link #cancel canceled} or {@link #commit committed} later. + */ + beginCompoundEdit(undoName:string,redoName:string):yfiles.graph.ICompoundEdit; + /** + * Determines whether a call to {@link yfiles.graph.UndoEngine#redo} can be made. + * @returns + */ + canRedo():boolean; + /** + * Determines whether a call to {@link yfiles.graph.UndoEngine#undo} can be made. + * @returns + */ + canUndo():boolean; + /** + * Clears the internal queue and {@link yfiles.graph.IUndoUnit#dispose disposes} all units in it. + */ + clear():void; + /** + * Returns a token that can be used to store and compare the state of the undo queue. + *

    + * E.g. an application can retrieve the token once the user has saved his document. Comparing the token returned by this + * instance with another one retrieved at a later point in time enables the application to determine whether the document + * is in the same state. + *

    + * @returns An object that can be checked against other tokens via the {@link #equals} method. + */ + getToken():Object; + /** + * This will trigger the corresponding {@link yfiles.graph.UndoEngine#addPropertyChangedListener PropertyChanged} event. + * @param name The name of the property that changed. + * @protected + */ + onPropertyChanged(name:string):void; + /** + * Redoes the next {@link yfiles.graph.IUndoUnit}. + * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. + * @throws {yfiles.lang.Exception} If {@link yfiles.graph.UndoEngine#canRedo} would yield false. + */ + redo():void; + /** + * Undoes the next {@link yfiles.graph.IUndoUnit}. + * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. + * @throws {yfiles.lang.Exception} If {@link yfiles.graph.UndoEngine#canUndo} would yield false. + */ + undo():void; + /** + * Gets or sets a value that indicates whether or not this instance should try to merge newly added units. + *

    + * If true this instance will try to {@link yfiles.graph.IUndoUnit#tryMergeUnit merge} or {@link yfiles.graph.IUndoUnit#tryReplaceUnit replace} units in the queue. Note that when the {@link yfiles.graph.UndoEngine#autoMergeTime} property is set to {@link yfiles.lang.TimeSpan#ZERO} + * and this property is set to true, the engine will always try to merge incoming units. Otherwise the {@link yfiles.graph.UndoEngine#autoMergeTime} dictates whether + * the engine will try to merge a unit or not. + *

    + * @see yfiles.graph.UndoEngine#autoMergeTime + * @type {boolean} + */ + mergeUnits:boolean; + /** + * Gets or sets the duration during which the engine will try to merge newly added units. + *

    + * If this is set to {@link yfiles.lang.TimeSpan#ZERO}, the engine will try to merge incoming units depending on the {@link yfiles.graph.UndoEngine#mergeUnits} property. + * Otherwise, if the time span between the last added unit and the new unit exceeds the set value, the engine does not try + * to merge the units regardless what the {@link yfiles.graph.UndoEngine#mergeUnits} property is set to. Likewise, if the time span is smaller than the set value, + * the engine will always try to merge units. + *

    + * @see yfiles.graph.UndoEngine#mergeUnits + * @type {yfiles.lang.TimeSpan} + */ + autoMergeTime:yfiles.lang.TimeSpan; + /** + * Gets or sets the maximum size of the undo queue this instance is managing. + *

    + * A size of 0 effectively disables this implementation. + *

    + * @type {number} + */ + size:number; + /** + * Returns the {@link yfiles.graph.IUndoUnit#undoName} of the next {@link yfiles.graph.UndoEngine#undo} operation. + * @type {string} + */ + undoName:string; + /** + * Returns the {@link yfiles.graph.IUndoUnit#redoName} of the next {@link yfiles.graph.UndoEngine#redo} operation. + * @type {string} + */ + redoName:string; + /** + * Indicates whether this instance is currently performing an undo operation. + * @type {boolean} + */ + performingUndo:boolean; + /** + * Indicates whether this instance is currently performing a redo operation. + * @type {boolean} + */ + performingRedo:boolean; + /** + * Adds the given listener for the PropertyChanged event that occurs when {@link yfiles.graph.UndoEngine#canUndo}, + * {@link yfiles.graph.UndoEngine#canRedo}, {@link yfiles.graph.UndoEngine#undoName}, or {@link yfiles.graph.UndoEngine#redoName} changed its value. + * @param listener The listener to add. + * @see yfiles.graph.UndoEngine#removePropertyChangedListener + */ + addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Removes the given listener for the PropertyChanged event that occurs when {@link yfiles.graph.UndoEngine#canUndo}, + * {@link yfiles.graph.UndoEngine#canRedo}, {@link yfiles.graph.UndoEngine#undoName}, or {@link yfiles.graph.UndoEngine#redoName} changed its value. + * @param listener The listener to remove. + * @see yfiles.graph.UndoEngine#addPropertyChangedListener + */ + removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Adds the given listener for the UnitUndone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#undo} + * operation of an {@link yfiles.graph.IUndoUnit}. + * @param listener The listener to add. + * @see yfiles.graph.UndoEngine#removeUnitUndoneListener + */ + addUnitUndoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; + /** + * Removes the given listener for the UnitUndone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#undo} + * operation of an {@link yfiles.graph.IUndoUnit}. + * @param listener The listener to remove. + * @see yfiles.graph.UndoEngine#addUnitUndoneListener + */ + removeUnitUndoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; + /** + * Adds the given listener for the UnitRedone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#redo} + * operation of an {@link yfiles.graph.IUndoUnit}. + * @param listener The listener to add. + * @see yfiles.graph.UndoEngine#removeUnitRedoneListener + */ + addUnitRedoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; + /** + * Removes the given listener for the UnitRedone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#redo} + * operation of an {@link yfiles.graph.IUndoUnit}. + * @param listener The listener to remove. + * @see yfiles.graph.UndoEngine#addUnitRedoneListener + */ + removeUnitRedoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + /** + * Represents a unit of work that can be undone and redone. + *

    + * Clients should use this interface when certain actions, changes or events should be monitored and have undoability + * provided for them. If you simply want to track the state of certain items between two states of interest, you should + * consider using {@link yfiles.graph.IMementoSupport mementos} instead. + *

    + *

    + * The central methods of this interface are {@link yfiles.graph.IUndoUnit#undo} and {@link yfiles.graph.IUndoUnit#redo} which contain the + * logic to undo or redo a unit of work. Keep in mind that undo/redo are sensible operations and should maintain a + * consistent state before and after each operation since they may be executed potentially often one after another. + *

    + *

    + * The requirement for an {@link yfiles.graph.IUndoUnit} is that when a program is in a certain state and a call to {@link yfiles.graph.IUndoUnit#undo} + * is followed by a call to {@link yfiles.graph.IUndoUnit#redo} then the program is in the exact same state as before (the same + * holds true for the other way around). + *

    + *

    + * A default implementation of this interface is the abstract class {@link yfiles.graph.UndoUnitBase} which forces only the + * implementation of the undo/redo logic and defaults the other methods. Clients should primarily extend this class instead + * of implementing the whole interface. + *

    + *

    + * IUndoUnits are managed by the {@link yfiles.graph.UndoEngine}. Custom units can always be added to the engine using the method + * {@link yfiles.graph.UndoEngine#addUnit}. Also consider to use one of the convenience implementations: {@link yfiles.graph.DelegateUndoUnit.} takes delegates for the + * undo/redo operations and {@link yfiles.graph.CompositeUndoUnit} creates a bracketing unit comprising several other units. + *

    + *

    + * Also note that in order to keep a consistent state, methods of objects of this type should not be called by clientcode + * directly but use the {@link yfiles.graph.UndoEngine} instead. + *

    + * @interface + */ + export interface IUndoUnit extends Object{ + /** + * Called by the {@link yfiles.graph.UndoEngine} and client code to let the unit dispose of references aren't needed anymore. + *

    + * When this method is called, the other methods of this interface will not be called anymore by the undo engine. The undo + * engine calls this method on instances that it will not use anymore to enable the instances to release instances and + * memory actively. + *

    + * @abstract + */ + dispose():void; + /** + * Redoes the work that is represented by this unit. + *

    + * Undo/redo are sensible operations and should maintain a consistent state before and after each operation since they may + * be executed potentially often one after another. + *

    + * @see yfiles.graph.IUndoUnit#redoName + * @abstract + */ + redo():void; + /** + * Tries to merge the given unit with this one. + *

    + * This method is called when this unit is the head of an {@link yfiles.graph.UndoEngine}'s or {@link yfiles.graph.CompositeUndoUnit}'s + * queue and a new unit is added. It is meant to try to incorporate the change of the given unit into this and if + * successful return true. This should be the case when the end state of this unit is equal to the start state of the given + * unit. + *

    + *

    + * For example, if this unit is the head of the queue and represents the work from state A to state B and the given unit + * the work from state B to state C, then this method should try to make this unit shift from state A to state C. If this + * is successful, the method is expected to return true. The other unit is then {@link yfiles.graph.IUndoUnit#dispose disposed} by the {@link yfiles.graph.UndoEngine} + * afterwards. + *

    + *

    + * Clients don't necessarily have to implement this method if the unit doesn't happen very often. In fact, the default + * implementation of {@link yfiles.graph.UndoUnitBase#tryMergeUnit} simply returns false. Implementing this method faithfully will + * cause multiple units of work to inseparably appear as one and undoing/redoing it will undo/redo the work of all + * collapsed units. Depending on the situation this may be reasonable, for example when there are potentially a lot of + * changes where not every intermediate step is required to be recorded. In this case implementing this method faithfully + * will greatly improve the performance and reduce the required amount of memory of the undo process. If you want to group + * together multiple units as a single block but still want to be able to separate each step, consider to use a {@link yfiles.graph.CompositeUndoUnit} + * instead. + *

    + * @param unit The unit to incorporate that happened after this unit. + * @returns Whether the state change of unit has been incorporated into this unit and unit can be disposed of. + * @abstract + */ + tryMergeUnit(unit:yfiles.graph.IUndoUnit):boolean; + /** + * Tries to replace the given unit with this one. + *

    + * This method is called if a newly added unit couldn't be {@link yfiles.graph.IUndoUnit#tryMergeUnit merged} with the head unit of the queue (i.e. returned false). + * Instead of trying to merge a newly added unit, this method tries to replace the given unit (which is the head of the + * queue) with this by incorporating the change of the given unit into this and if successful return true. This should be + * the case when the start state of this unit is equal to the end state of the given unit. + *

    + *

    + * For example, if the given unit represents the work from state A to state B and this unit the work from state B to state + * C, then this method should try to make this unit shift from state A to state C. If this is successful, the method is + * expected to return true. The given unit is then {@link yfiles.graph.IUndoUnit#dispose disposed} by the {@link yfiles.graph.UndoEngine} afterwards and replaced with this + * unit in the queue. + *

    + *

    + * Clients don't necessarily have to implement this method if the unit doesn't happen very often. In fact, the default + * implementation of {@link yfiles.graph.UndoUnitBase#tryReplaceUnit} simply returns false. Implementing this method faithfully + * will cause multiple units of work to inseparably appear as one and undoing/redoing it will undo/redo the work of all + * collapsed units. Depending on the situation this may be reasonable, for example when there are potentially a lot of + * changes where not every intermediate step is required to be recorded. In this case implementing this method faithfully + * will greatly improve the performance and reduce the required amount of memory of the undo process. If you want to group + * together multiple units as a single block but still want to be able to separate each step, consider to use a {@link yfiles.graph.CompositeUndoUnit} + * instead. + *

    + * @param unit The unit to incorporate that happened before this unit. + * @returns Whether the state change of this unit has been incorporated into the given unit and this can be disposed of. + * @abstract + */ + tryReplaceUnit(unit:yfiles.graph.IUndoUnit):boolean; + /** + * Undoes the work that is represented by this unit. + *

    + * Undo/redo are sensible operations and should maintain a consistent state before and after each operation since they may + * be executed potentially often one after another. + *

    + * @see yfiles.graph.IUndoUnit#undoName + * @abstract + */ + undo():void; + /** + * Returns the name of the undo unit. + *

    + * Depending on the implementation and context this might be a human readable representation of the undo action or a + * symbolic name that needs localization. + *

    + * @abstract + * @type {string} + */ + undoName:string; + /** + * Returns the name of the redo unit. + *

    + * Depending on the implementation and context this might be a human readable representation of the redo action or a + * symbolic name that needs localization. + *

    + * @abstract + * @type {string} + */ + redoName:string; + } + var IUndoUnit:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This interface provides access to the memento design pattern to provide undoability for arbitrary models. + *

    + * By implementing this interface as well as {@link yfiles.graph.ILookup}, clients can add undoability for changes to their model + * classes. The yFiles undo mechanism uses the return value of {@link yfiles.graph.IMementoSupport#getState} to retrieve a state of + * an item at the beginning of the compound editing process. When the process ends, another state will be retrieved of the + * same item and compared to the original state. If they differ, an {@link yfiles.graph.IUndoUnit} is created that uses the {@link yfiles.graph.IMementoSupport#applyState} + * method to apply either state to the item in case of {@link yfiles.graph.IUndoUnit#undo undo} or {@link yfiles.graph.IUndoUnit#redo redo}. This represents an abstraction to the undo mechanism + * where it is only needed to define "states" of items and hides the more complicated mechanism of creating and inserting + * {@link yfiles.graph.IUndoUnit}s. + *

    + *

    + * The following is an example implementation of an item that is being managed using {@link yfiles.graph.IMementoSupport}: + *

    + *

    + * A collection of items from this type can then be watched using the following code snippet: + *

    + *

    + * Implementing the {@link yfiles.graph.IMementoSupport} interface is quite unrestrained, the type of the state returned by {@link yfiles.graph.IMementoSupport#getState} + * method can by anything as long as the {@link yfiles.graph.IMementoSupport#applyState} and {@link yfiles.graph.IMementoSupport#stateEquals} + * methods can deal with it: + *

    + *

    + * In summary, use this concept when you want to track the state of items during certain operations for undo/redo. This is + * efficient if it's easier to handle an item's state than the changes to the item themselves. If you want to focus on the + * changes or on certain events, you should use custom {@link yfiles.graph.IUndoUnit} implementations instead. + *

    + * @see yfiles.graph.ILookup + * @see yfiles.graph.ICompoundEdit + * @see yfiles.graph.UndoEngine + * @interface + */ + export interface IMementoSupport extends Object{ + /** + * Reapplies a previously queried state object to a given subject. + *

    + * The state object has been created using the {@link yfiles.graph.IMementoSupport#getState} method. + *

    + * @param subject The subject to modify the state. + * @param state The state object as returned by {@link #getState} + * @abstract + */ + applyState(subject:Object,state:Object):void; + /** + * Retrieves an object representing the state at the moment this method is called. + *

    + * The returned state may be reapplied later to the subject in the {@link yfiles.graph.IMementoSupport#applyState} method. + *

    + * @param subject The subject to read the state from + * @returns An object that describes the current state of subject. + * @abstract + */ + getState(subject:Object):Object; + /** + * Determines whether two state objects are equal. + *

    + * The undo mechanism in yFiles calls this method to determine if the subject has changed and whether an {@link yfiles.graph.IUndoUnit} + * should be created for these changes. If this method returns false, an {@link yfiles.graph.IUndoUnit} is created for the two + * states that can reapply either state (for either undo or redo). If this method returns true the state is considered not + * to have changed and no undo unit will be created. Conservative implementations my simply return false. + *

    + * @param state1 The first state as obtained from {@link #getState} + * @param state2 The second state as obtained from {@link #getState} + * @returns true if the states are equal; false otherwise. + * @abstract + */ + stateEquals(state1:Object,state2:Object):boolean; + } + var IMementoSupport:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A convenience implementation of the {@link yfiles.graph.IUndoUnit} interface that uses simple delegates for the actual undo and + * redo operations. + * Type parameter T: The type of the single parameter that is passed to the delegate. + * @class + * @extends {yfiles.graph.UndoUnitBase} + * @template T + * @final + */ + export interface DelegateUndoUnit extends yfiles.graph.UndoUnitBase{} + export class DelegateUndoUnit { + /** + * Creates a new instance using the provided name and a undo and redo handler as well as the parameters to pass to the + * delegates. + * @param undoName The name of the undo. + * @param undo The undo handler delegate. + * @param redo The redo handler delegate. + * @param undoParam The undo parameter to pass to the delegate. + * @param redoParam The redo parameter to pass to the delegate. + */ + constructor(undoName:string,undo:(param:T)=>void,redo:(param:T)=>void,undoParam:T,redoParam:T); + /** + * Creates a new instance using the provided name and a undo/redo handler as well as the parameters to pass to the + * delegates. + * @param undoName The name of the undo. + * @param undoRedo The undo and redo handler delegate. + * @param undoParam The undo parameter to pass to the delegate. + * @param redoParam The redo parameter to pass to the delegate. + */ + constructor(undoName:string,undoRedo:(param:T)=>void,undoParam:T,redoParam:T); + static $class:yfiles.lang.Class; + } + /** + * An abstract convenience implementation of {@link yfiles.graph.IUndoUnit}. + *

    + * This class defaults most methods required by the {@link yfiles.graph.IUndoUnit} interface. Subclasses only have to implement the + * undo/redo logic. Most notably, {@link yfiles.graph.IUndoUnit#tryMergeUnit} and {@link yfiles.graph.IUndoUnit#tryReplaceUnit} are + * implemented to return + * false. Subclasses are of course allowed to override more methods if clients want to enable additional functionality. + *

    + *

    + * Use this class for simple custom implementations of {@link yfiles.graph.IUndoUnit}. + *

    + * @see yfiles.graph.IUndoUnit + * @see yfiles.graph.UndoEngine + * @class + * @implements {yfiles.graph.IUndoUnit} + */ + export interface UndoUnitBase extends Object,yfiles.graph.IUndoUnit{} + export class UndoUnitBase { + /** + * Creates a new instance using the given name as undo and redo name. + * @param undoName The undo name. + * @param [redoName=null] The redo name. + * @protected + */ + constructor(undoName:string,redoName?:string); + /** + * + */ + dispose():void; + /** + * + * @abstract + */ + redo():void; + /** + * + * @param unit + * @returns + */ + tryMergeUnit(unit:yfiles.graph.IUndoUnit):boolean; + /** + * + * @param unit + * @returns + */ + tryReplaceUnit(unit:yfiles.graph.IUndoUnit):boolean; + /** + * + * @abstract + */ + undo():void; + /** + * + * @type {string} + */ + undoName:string; + /** + * + * @type {string} + */ + redoName:string; static $class:yfiles.lang.Class; } /** @@ -57519,31 +57616,31 @@ declare namespace system{ *

    * @see yfiles.graph.DefaultFoldingEdgeConverter * @see yfiles.graph.FoldingManager - * @class yfiles.graph.FoldingEdgeConverterBase + * @class * @implements {yfiles.graph.IFoldingEdgeConverter} */ export interface FoldingEdgeConverterBase extends Object,yfiles.graph.IFoldingEdgeConverter{} export class FoldingEdgeConverterBase { /** * - * @param {yfiles.graph.IFoldingEdgeFactory} factory - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} masterEdge - * @param {yfiles.graph.INode} source - * @param {boolean} sourceIsCollapsed - * @param {yfiles.graph.INode} target - * @param {boolean} targetIsCollapsed - * @returns {yfiles.graph.IEdge} + * @param factory + * @param foldingView + * @param masterEdge + * @param source + * @param sourceIsCollapsed + * @param target + * @param targetIsCollapsed + * @returns * @abstract */ addFoldingEdge(factory:yfiles.graph.IFoldingEdgeFactory,foldingView:yfiles.graph.IFoldingView,masterEdge:yfiles.graph.IEdge,source:yfiles.graph.INode,sourceIsCollapsed:boolean,target:yfiles.graph.INode,targetIsCollapsed:boolean):yfiles.graph.IEdge; /** * Callback factory method that creates the {@link yfiles.styles.IEdgeStyle} for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeStyle}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge in the view whose {@link yfiles.graph.IEdge#style} should be initialized. - * @param {yfiles.collections.IList.} masterEdges The edges that are being represented by the folding edge. - * @returns {yfiles.styles.IEdgeStyle} The {@link yfiles.graph.FoldingEdgeConverterBase#foldingEdgeStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneEdgeStyle} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param foldingEdge The folding edge in the view whose {@link #style} should be initialized. + * @param masterEdges The edges that are being represented by the folding edge. + * @returns The {@link #foldingEdgeStyle} or a {@link #clone} of it depending on the {@link #cloneEdgeStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -57551,11 +57648,11 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.graph.ILabelModelParameter} for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeLabels}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.ILabel} localLabel The local label in the view whose {@link yfiles.graph.ILabel#layoutParameter} should be initialized. May be null if the label layout parameter is requested for the + * @param foldingView The folding view instance. + * @param localLabel The local label in the view whose {@link #layoutParameter} should be initialized. May be null if the label layout parameter is requested for the * label creation. - * @param {yfiles.graph.ILabel} masterLabel The label that is being represented by the folding label. - * @returns {yfiles.graph.ILabelModelParameter} The {@link yfiles.graph.FoldingEdgeConverterBase#labelLayoutParameter} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneLabelLayoutParameter} property. This method may return null to indicate that + * @param masterLabel The label that is being represented by the folding label. + * @returns The {@link #labelLayoutParameter} or a {@link #clone} of it depending on the {@link #cloneLabelLayoutParameter} property. This method may return null to indicate that * the default label layout parameter should not be changed. * @protected */ @@ -57563,11 +57660,11 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.ILabelStyle} for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeLabels}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.ILabel} localLabel The local label in the view whose {@link yfiles.graph.ILabel#style} should be initialized. May be null if the label style is requested for the label + * @param foldingView The folding view instance. + * @param localLabel The local label in the view whose {@link #style} should be initialized. May be null if the label style is requested for the label * creation. - * @param {yfiles.graph.ILabel} masterLabel The label that is being represented by the folding label. - * @returns {yfiles.styles.ILabelStyle} The {@link yfiles.graph.FoldingEdgeConverterBase#labelStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneLabelStyle} property. This method may return null to indicate that + * @param masterLabel The label that is being represented by the folding label. + * @returns The {@link #labelStyle} or a {@link #clone} of it depending on the {@link #cloneLabelStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -57575,10 +57672,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.graph.IPortLocationModelParameter} of the source port for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IEdge} localEdge The local edge in the view whose source port's {@link yfiles.graph.IPort#locationParameter} should be initialized. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. - * @returns {yfiles.graph.IPortLocationModelParameter} The {@link yfiles.graph.FoldingEdgeConverterBase#sourcePortLocationParameter} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneSourcePortLocationParameter} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localEdge The local edge in the view whose source port's {@link #locationParameter} should be initialized. + * @param masterEdges The master edges that the folding edge represents. + * @returns The {@link #sourcePortLocationParameter} or a {@link #clone} of it depending on the {@link #cloneSourcePortLocationParameter} property. This method may return null to indicate that * the default port location parameter should not be changed. * @protected */ @@ -57586,10 +57683,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.IPortStyle} of the source port for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IEdge} localEdge The local edge in the view whose source port's {@link yfiles.graph.IPort#style} should be initialized. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. - * @returns {yfiles.styles.IPortStyle} The {@link yfiles.graph.FoldingEdgeConverterBase#sourcePortStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneSourcePortStyle} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localEdge The local edge in the view whose source port's {@link #style} should be initialized. + * @param masterEdges The master edges that the folding edge represents. + * @returns The {@link #sourcePortStyle} or a {@link #clone} of it depending on the {@link #cloneSourcePortStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -57597,10 +57694,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.graph.IPortLocationModelParameter} of the target port for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IEdge} localEdge The local edge in the view whose target port's {@link yfiles.graph.IPort#locationParameter} should be initialized. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. - * @returns {yfiles.graph.IPortLocationModelParameter} The {@link yfiles.graph.FoldingEdgeConverterBase#targetPortLocationParameter} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneTargetPortLocationParameter} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localEdge The local edge in the view whose target port's {@link #locationParameter} should be initialized. + * @param masterEdges The master edges that the folding edge represents. + * @returns The {@link #targetPortLocationParameter} or a {@link #clone} of it depending on the {@link #cloneTargetPortLocationParameter} property. This method may return null to indicate that * the default port location parameter should not be changed. * @protected */ @@ -57608,10 +57705,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.IPortStyle} of the target port for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IEdge} localEdge The local edge in the view whose target port's {@link yfiles.graph.IPort#style} should be initialized. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. - * @returns {yfiles.styles.IPortStyle} The {@link yfiles.graph.FoldingEdgeConverterBase#targetPortStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneTargetPortStyle} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localEdge The local edge in the view whose target port's {@link #style} should be initialized. + * @param masterEdges The master edges that the folding edge represents. + * @returns The {@link #targetPortStyle} or a {@link #clone} of it depending on the {@link #cloneTargetPortStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -57621,10 +57718,10 @@ declare namespace system{ *

    * This will call the {@link yfiles.graph.FoldingEdgeState#clearBends} callback if {@link yfiles.graph.FoldingEdgeConverterBase#resetBends} is enabled. *

    - * @param {yfiles.graph.FoldingEdgeState} state The viewstate to change. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeState} call. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge in the view that may be changed using the state. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. + * @param state The viewstate to change. + * @param foldingView The folding view instance that has triggered the {@link #initializeFoldingEdgeState} call. + * @param foldingEdge The folding edge in the view that may be changed using the state. + * @param masterEdges The master edges that the folding edge represents. * @protected */ initializeFoldingEdgeBends(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; @@ -57635,10 +57732,10 @@ declare namespace system{ * will call {@link yfiles.graph.FoldingEdgeConverterBase#createLabelStyle} and {@link yfiles.graph.FoldingEdgeConverterBase#createLabelLayoutParameter} * and use the returned style and layout parameter if they are non-null when {@link yfiles.graph.FoldingEdgeState#addLabel adding the label} on the folding edge. *

    - * @param {yfiles.graph.FoldingEdgeState} state The viewstate to change. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeState} call. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge in the view that may be changed using the state. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. + * @param state The viewstate to change. + * @param foldingView The folding view instance that has triggered the {@link #initializeFoldingEdgeState} call. + * @param foldingEdge The folding edge in the view that may be changed using the state. + * @param masterEdges The master edges that the folding edge represents. * @see yfiles.graph.FoldingEdgeConverterBase#labelStyle * @see yfiles.graph.FoldingEdgeConverterBase#labelLayoutParameter * @protected @@ -57652,10 +57749,10 @@ declare namespace system{ * to the folding source port if non-null values have been returned. The same holds true for the target port where the {@link yfiles.graph.FoldingEdgeConverterBase#createTargetPortStyle} * and {@link yfiles.graph.FoldingEdgeConverterBase#createTargetPortLocationParameter} callbacks are used. *

    - * @param {yfiles.graph.FoldingEdgeState} state The viewState to change. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeState} call. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge in the view that may be changed using the state. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. + * @param state The viewState to change. + * @param foldingView The folding view instance that has triggered the {@link #initializeFoldingEdgeState} call. + * @param foldingEdge The folding edge in the view that may be changed using the state. + * @param masterEdges The master edges that the folding edge represents. * @see yfiles.graph.FoldingEdgeConverterBase#sourcePortStyle * @see yfiles.graph.FoldingEdgeConverterBase#targetPortStyle * @see yfiles.graph.FoldingEdgeConverterBase#sourcePortLocationParameter @@ -57676,10 +57773,10 @@ declare namespace system{ * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeBends}, * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeLabels}. *

    - * @param {yfiles.graph.FoldingEdgeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} foldingEdge - * @param {yfiles.collections.IList.} masterEdges + * @param state + * @param foldingView + * @param foldingEdge + * @param masterEdges */ initializeFoldingEdgeState(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; /** @@ -57688,10 +57785,10 @@ declare namespace system{ * This implementation calls {@link yfiles.graph.FoldingEdgeConverterBase#createEdgeStyle} and {@link yfiles.graph.FoldingEdgeState#style assigns} the style to the folding * edge if a non-null value has been returned. *

    - * @param {yfiles.graph.FoldingEdgeState} state The viewstate to change. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeState} call. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge in the view that may be changed using the state. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. + * @param state The viewstate to change. + * @param foldingView The folding view instance that has triggered the {@link #initializeFoldingEdgeState} call. + * @param foldingEdge The folding edge in the view that may be changed using the state. + * @param masterEdges The master edges that the folding edge represents. * @protected */ initializeFoldingEdgeStyle(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; @@ -57701,10 +57798,10 @@ declare namespace system{ * This will adjust the label's text, preferred size and tag properties or remove the label if there is no master label or * there is more than one master edge. *

    - * @param {yfiles.graph.FoldingEdgeState} state The viewstate of the edge to change. - * @param {yfiles.graph.IFoldingView} foldingView The folding view. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge. - * @param {yfiles.collections.IList.} masterEdges The master edges. + * @param state The viewstate of the edge to change. + * @param foldingView The folding view. + * @param foldingEdge The folding edge. + * @param masterEdges The master edges. * @protected */ synchronizeLabels(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; @@ -57714,10 +57811,10 @@ declare namespace system{ *

    * This method calls {@link yfiles.graph.FoldingEdgeConverterBase#synchronizeLabels}, only. *

    - * @param {yfiles.graph.FoldingEdgeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} foldingEdge - * @param {yfiles.collections.IList.} masterEdges + * @param state + * @param foldingView + * @param foldingEdge + * @param masterEdges */ updateFoldingEdgeState(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; /** @@ -57734,7 +57831,7 @@ declare namespace system{ */ sourcePortStyle:yfiles.styles.IPortStyle; /** - * Gets or sets a value indicating whether the {@link yfiles.graph.FoldingEdgeConverterBase#sourcePortStyle} instance should be assigned as a {@link yfiles.lang.ICloneable#clone}clone or not. + * Gets or sets a value indicating whether the {@link yfiles.graph.FoldingEdgeConverterBase#sourcePortStyle} instance should be assigned as a {@link yfiles.lang.ICloneable#clone clone} or not. * @type {boolean} */ cloneSourcePortStyle:boolean; @@ -57852,7 +57949,7 @@ declare namespace system{ * initially and can be customized to suit the application's needs. * @see yfiles.graph.FoldingEdgeConverterBase * @see yfiles.graph.DefaultFoldingEdgeConverter#reuseMasterPorts - * @class yfiles.graph.DefaultFoldingEdgeConverter + * @class * @extends {yfiles.graph.FoldingEdgeConverterBase} */ export interface DefaultFoldingEdgeConverter extends yfiles.graph.FoldingEdgeConverterBase{} @@ -57903,21 +58000,20 @@ declare namespace system{ * @see yfiles.graph.FoldingManager * @see yfiles.graph.IFolderNodeConverter * @see yfiles.graph.DefaultFoldingEdgeConverter - * @class yfiles.graph.DefaultFolderNodeConverter + * @class * @implements {yfiles.graph.IFolderNodeConverter} */ export interface DefaultFolderNodeConverter extends Object,yfiles.graph.IFolderNodeConverter{} export class DefaultFolderNodeConverter { /** * Initializes a new instance of this class using the values provided by the folderNodeDefaults parameter. - * @param {yfiles.graph.INodeDefaults} folderNodeDefaults - * @constructor + * @param folderNodeDefaults */ constructor(folderNodeDefaults:yfiles.graph.INodeDefaults); /** * Initializes a new instance of this class using the values provided by the folderNodeDefaults parameter. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INodeDefaults} options.folderNodeDefaults + * @param options.folderNodeDefaults * @param {boolean} options.cloneLabelLayoutParameter A value indicating whether the {@link yfiles.graph.DefaultFolderNodeConverter#labelLayoutParameter} instance should be assigned as a {@link yfiles.lang.ICloneable#clone}clone or not. *

    * This option sets the {@link yfiles.graph.DefaultFolderNodeConverter#cloneLabelLayoutParameter} property on the created object. @@ -57962,7 +58058,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.DefaultFolderNodeConverter#portStyle} property on the created object. *

    - * @constructor */ constructor(options:{folderNodeDefaults:yfiles.graph.INodeDefaults,cloneLabelLayoutParameter?:boolean,cloneLabelStyle?:boolean,cloneNodeStyle?:boolean,clonePortStyle?:boolean,copyFirstLabel?:boolean,folderNodeSize?:yfiles.geometry.Size,folderNodeStyle?:yfiles.styles.INodeStyle,labelLayoutParameter?:yfiles.graph.ILabelModelParameter,labelStyle?:yfiles.styles.ILabelStyle,portLocationParameter?:yfiles.graph.IPortLocationModelParameter,portStyle?:yfiles.styles.IPortStyle}); /** @@ -58012,17 +58107,16 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.DefaultFolderNodeConverter#portStyle} property on the created object. *

    - * @constructor */ constructor(options?:{cloneLabelLayoutParameter?:boolean,cloneLabelStyle?:boolean,cloneNodeStyle?:boolean,clonePortStyle?:boolean,copyFirstLabel?:boolean,folderNodeSize?:yfiles.geometry.Size,folderNodeStyle?:yfiles.styles.INodeStyle,labelLayoutParameter?:yfiles.graph.ILabelModelParameter,labelStyle?:yfiles.styles.ILabelStyle,portLocationParameter?:yfiles.graph.IPortLocationModelParameter,portStyle?:yfiles.styles.IPortStyle}); /** * Callback factory method that creates the {@link yfiles.graph.ILabelModelParameter} for use in * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeLabels}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.ILabel} localLabel The local label in the view whose {@link yfiles.graph.ILabel#layoutParameter} should be initialized. May be null if the label layout parameter is requested for the + * @param foldingView The folding view instance. + * @param localLabel The local label in the view whose {@link #layoutParameter} should be initialized. May be null if the label layout parameter is requested for the * label creation. - * @param {yfiles.graph.ILabel} masterLabel The label that is being represented by the folding label. - * @returns {yfiles.graph.ILabelModelParameter} The {@link yfiles.graph.DefaultFolderNodeConverter#labelLayoutParameter} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.DefaultFolderNodeConverter#cloneLabelLayoutParameter} property. This method may return null to indicate that + * @param masterLabel The label that is being represented by the folding label. + * @returns The {@link #labelLayoutParameter} or a {@link #clone} of it depending on the {@link #cloneLabelLayoutParameter} property. This method may return null to indicate that * the default label layout parameter should not be changed. * @protected */ @@ -58030,11 +58124,11 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.ILabelStyle} for use in * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeLabels}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.ILabel} localLabel The local label in the view whose {@link yfiles.graph.ILabel#style} should be initialized. May be null if the label style is requested for the label + * @param foldingView The folding view instance. + * @param localLabel The local label in the view whose {@link #style} should be initialized. May be null if the label style is requested for the label * creation. - * @param {yfiles.graph.ILabel} masterLabel The label that is being represented by the folding label. - * @returns {yfiles.styles.ILabelStyle} The {@link yfiles.graph.DefaultFolderNodeConverter#labelStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.DefaultFolderNodeConverter#cloneLabelStyle} property. This method may return null to indicate that + * @param masterLabel The label that is being represented by the folding label. + * @returns The {@link #labelStyle} or a {@link #clone} of it depending on the {@link #cloneLabelStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -58042,10 +58136,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.INodeStyle} for use in * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeStyle}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.INode} viewNode The local folder node in the view whose {@link yfiles.graph.INode#style} should be initialized. - * @param {yfiles.graph.INode} masterNode The node that is being represented by the folder node. - * @returns {yfiles.styles.INodeStyle} The {@link yfiles.graph.DefaultFolderNodeConverter#folderNodeStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.DefaultFolderNodeConverter#cloneNodeStyle} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param viewNode The local folder node in the view whose {@link #style} should be initialized. + * @param masterNode The node that is being represented by the folder node. + * @returns The {@link #folderNodeStyle} or a {@link #clone} of it depending on the {@link #cloneNodeStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -58053,10 +58147,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.graph.IPortLocationModelParameter} for use in * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IPort} localPort The local port in the view whose {@link yfiles.graph.IPort#locationParameter} should be initialized. - * @param {yfiles.graph.IPort} masterPort The port that is being represented by the folding port. - * @returns {yfiles.graph.IPortLocationModelParameter} The {@link yfiles.graph.DefaultFolderNodeConverter#portLocationParameter} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.DefaultFolderNodeConverter#clonePortLocationParameter} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localPort The local port in the view whose {@link #locationParameter} should be initialized. + * @param masterPort The port that is being represented by the folding port. + * @returns The {@link #portLocationParameter} or a {@link #clone} of it depending on the {@link #clonePortLocationParameter} property. This method may return null to indicate that * the default port location parameter should not be changed. * @protected */ @@ -58064,10 +58158,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.IPortStyle} for use in * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IPort} localPort The local port in the view whose {@link yfiles.graph.IPort#style} should be initialized. - * @param {yfiles.graph.IPort} masterPort The port that is being represented by the folding port. - * @returns {yfiles.styles.IPortStyle} The {@link yfiles.graph.DefaultFolderNodeConverter#portStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.DefaultFolderNodeConverter#clonePortStyle} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localPort The local port in the view whose {@link #style} should be initialized. + * @param masterPort The port that is being represented by the folding port. + * @returns The {@link #portStyle} or a {@link #clone} of it depending on the {@link #clonePortStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -58079,11 +58173,11 @@ declare namespace system{ * and {@link yfiles.graph.DefaultFolderNodeConverter#createLabelLayoutParameter} and use the returned style and layout parameter * if they are non-null when {@link yfiles.graph.FolderNodeState#addLabel adding the label} on the folder node. *

    - * @param {yfiles.graph.FolderNodeState} state The node view state whose labels should be synchronized. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeState} + * @param state The node view state whose labels should be synchronized. + * @param foldingView The folding view instance that has triggered the {@link #initializeFolderNodeState} * call. - * @param {yfiles.graph.INode} viewNode The collapsed group node in the view that may be changed using the {@link yfiles.graph.FolderNodeState}. - * @param {yfiles.graph.INode} masterNode The master node that the folder node represents. + * @param viewNode The collapsed group node in the view that may be changed using the {@link }. + * @param masterNode The master node that the folder node represents. * @see yfiles.graph.DefaultFolderNodeConverter#labelStyle * @see yfiles.graph.DefaultFolderNodeConverter#labelLayoutParameter * @see yfiles.graph.FoldingManager#getFolderNodeState @@ -58097,10 +58191,10 @@ declare namespace system{ * non-null) but not smaller than the {@link yfiles.input.INodeSizeConstraintProvider#getMinimumSize minimum} size that is reported by a potential {@link yfiles.input.INodeSizeConstraintProvider} * for {@link yfiles.graph.INode}s that has been found in the {@link yfiles.graph.ILookup} of the viewNode. *

    - * @param {yfiles.graph.FolderNodeState} state The node view state whose layout should be synchronized. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.INode} viewNode The local collapsed group node to change. - * @param {yfiles.graph.INode} masterNode The master node that is represented by the local group node. + * @param state The node view state whose layout should be synchronized. + * @param foldingView The folding view instance. + * @param viewNode The local collapsed group node to change. + * @param masterNode The master node that is represented by the local group node. * @protected */ initializeFolderNodeLayout(state:yfiles.graph.FolderNodeState,foldingView:yfiles.graph.IFoldingView,viewNode:yfiles.graph.INode,masterNode:yfiles.graph.INode):void; @@ -58111,10 +58205,10 @@ declare namespace system{ * This method will call {@link yfiles.graph.DefaultFolderNodeConverter#createPortStyle} and {@link yfiles.graph.DefaultFolderNodeConverter#createPortLocationParameter} * for each port at the group node and assign the returned style and location parameter if they are non-null. *

    - * @param {yfiles.graph.FolderNodeState} state The node view state whose ports should be synchronized. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.INode} viewNode The local group node. - * @param {yfiles.graph.INode} masterNode The master group node. + * @param state The node view state whose ports should be synchronized. + * @param foldingView The folding view instance. + * @param viewNode The local group node. + * @param masterNode The master group node. * @protected */ initializeFolderNodePorts(state:yfiles.graph.FolderNodeState,foldingView:yfiles.graph.IFoldingView,viewNode:yfiles.graph.INode,masterNode:yfiles.graph.INode):void; @@ -58127,10 +58221,10 @@ declare namespace system{ * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeLayout}, and * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodePorts}. *

    - * @param {yfiles.graph.FolderNodeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.INode} viewNode - * @param {yfiles.graph.INode} masterNode + * @param state + * @param foldingView + * @param viewNode + * @param masterNode */ initializeFolderNodeState(state:yfiles.graph.FolderNodeState,foldingView:yfiles.graph.IFoldingView,viewNode:yfiles.graph.INode,masterNode:yfiles.graph.INode):void; /** @@ -58139,11 +58233,11 @@ declare namespace system{ * This implementation calls {@link yfiles.graph.DefaultFolderNodeConverter#createNodeStyle} and {@link yfiles.graph.FolderNodeState#style assigns} the style to the group * node if a non-null value has been returned. *

    - * @param {yfiles.graph.FolderNodeState} state The node view state whose style should be synchronized. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeState} + * @param state The node view state whose style should be synchronized. + * @param foldingView The folding view instance that has triggered the {@link #initializeFolderNodeState} * call. - * @param {yfiles.graph.INode} viewNode The local node in the view that may be changed using the {@link yfiles.graph.FolderNodeState}. - * @param {yfiles.graph.INode} masterNode The master node that the local folder node represents. + * @param viewNode The local node in the view that may be changed using the {@link }. + * @param masterNode The master node that the local folder node represents. * @see yfiles.graph.FoldingManager#getFolderNodeState * @protected */ @@ -58153,10 +58247,10 @@ declare namespace system{ *

    * This will adjust the label text property or remove the label if there is no master label. *

    - * @param {yfiles.graph.FolderNodeState} state The node view state whose labels should be synchronized. - * @param {yfiles.graph.IFoldingView} foldingView The folding view. - * @param {yfiles.graph.INode} viewNode The local node instance. - * @param {yfiles.graph.INode} masterNode The master node. + * @param state The node view state whose labels should be synchronized. + * @param foldingView The folding view. + * @param viewNode The local node instance. + * @param masterNode The master node. * @protected */ synchronizeLabels(state:yfiles.graph.FolderNodeState,foldingView:yfiles.graph.IFoldingView,viewNode:yfiles.graph.INode,masterNode:yfiles.graph.INode):void; @@ -58165,10 +58259,10 @@ declare namespace system{ *

    * This method calls {@link yfiles.graph.DefaultFolderNodeConverter#synchronizeLabels}, only. *

    - * @param {yfiles.graph.FolderNodeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.INode} viewNode - * @param {yfiles.graph.INode} masterNode + * @param state + * @param foldingView + * @param viewNode + * @param masterNode */ updateFolderNodeState(state:yfiles.graph.FolderNodeState,foldingView:yfiles.graph.IFoldingView,viewNode:yfiles.graph.INode,masterNode:yfiles.graph.INode):void; /** @@ -58270,7 +58364,7 @@ declare namespace system{ */ clonePortStyle:boolean; /** - * Gets or sets a value indicating whether the {@link yfiles.graph.DefaultFolderNodeConverter#portLocationParameter} instance should be assigned as a {@link yfiles.lang.ICloneable#clone}clone or not. + * Gets or sets a value indicating whether the {@link yfiles.graph.DefaultFolderNodeConverter#portLocationParameter} instance should be assigned as a {@link yfiles.lang.ICloneable#clone clone} or not. * @type {boolean} */ clonePortLocationParameter:boolean; @@ -58289,37 +58383,37 @@ declare namespace system{ /** * A simple implementation of the {@link yfiles.graph.IFoldingEdgeConverter} interface for use in the {@link yfiles.graph.FoldingManager#foldingEdgeConverter} property, that will prevent * folding edges from appearing in the {@link yfiles.graph.IFoldingView view}. - * @class yfiles.graph.ExcludingFoldingEdgeConverter + * @class * @implements {yfiles.graph.IFoldingEdgeConverter} */ export interface ExcludingFoldingEdgeConverter extends Object,yfiles.graph.IFoldingEdgeConverter{} export class ExcludingFoldingEdgeConverter { /** * Always calls {@link yfiles.graph.IFoldingEdgeFactory#excludeFoldingEdge} - * @param {yfiles.graph.IFoldingEdgeFactory} factory - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} masterEdge - * @param {yfiles.graph.INode} source - * @param {boolean} sourceIsCollapsed - * @param {yfiles.graph.INode} target - * @param {boolean} targetIsCollapsed - * @returns {yfiles.graph.IEdge} + * @param factory + * @param foldingView + * @param masterEdge + * @param source + * @param sourceIsCollapsed + * @param target + * @param targetIsCollapsed + * @returns */ addFoldingEdge(factory:yfiles.graph.IFoldingEdgeFactory,foldingView:yfiles.graph.IFoldingView,masterEdge:yfiles.graph.IEdge,source:yfiles.graph.INode,sourceIsCollapsed:boolean,target:yfiles.graph.INode,targetIsCollapsed:boolean):yfiles.graph.IEdge; /** * Does nothing and should not normally be called by the view since all folding edges are excluded from it. - * @param {yfiles.graph.FoldingEdgeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} foldingEdge - * @param {yfiles.collections.IList.} masterEdges + * @param state + * @param foldingView + * @param foldingEdge + * @param masterEdges */ initializeFoldingEdgeState(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; /** * Does nothing and should not normally be called by the view since all folding edges are excluded from it. - * @param {yfiles.graph.FoldingEdgeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} foldingEdge - * @param {yfiles.collections.IList.} masterEdges + * @param state + * @param foldingView + * @param foldingEdge + * @param masterEdges */ updateFoldingEdgeState(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; static $class:yfiles.lang.Class; @@ -58331,27 +58425,26 @@ declare namespace system{ * This implementation by default, will have the {@link yfiles.graph.FoldingEdgeConverterBase#sourcePortLocationParameter} and the {@link yfiles.graph.FoldingEdgeConverterBase#targetPortLocationParameter} properties set to {@link yfiles.graph.FreeNodePortLocationModel#NODE_CENTER_ANCHORED} * and the {@link yfiles.graph.FoldingEdgeConverterBase#resetBends} property set to true. *

    - * @class yfiles.graph.MergingFoldingEdgeConverter + * @class * @extends {yfiles.graph.FoldingEdgeConverterBase} */ export interface MergingFoldingEdgeConverter extends yfiles.graph.FoldingEdgeConverterBase{} export class MergingFoldingEdgeConverter { /** * Initializes a new instance of the {@link yfiles.graph.MergingFoldingEdgeConverter} class. - * @constructor */ constructor(); /** * Adds the first separate edge to the source and target node pair using the {@link yfiles.graph.IFoldingEdgeFactory#addAsSeparateEdge} * method. - * @param {yfiles.graph.IFoldingEdgeFactory} factory - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} masterEdge - * @param {yfiles.graph.INode} viewSourceNode - * @param {boolean} sourceIsCollapsed - * @param {yfiles.graph.INode} targetSourceNode - * @param {boolean} targetIsCollapsed - * @returns {yfiles.graph.IEdge} + * @param factory + * @param foldingView + * @param masterEdge + * @param viewSourceNode + * @param sourceIsCollapsed + * @param targetSourceNode + * @param targetIsCollapsed + * @returns * @protected */ addFirstSeparateEdge(factory:yfiles.graph.IFoldingEdgeFactory,foldingView:yfiles.graph.IFoldingView,masterEdge:yfiles.graph.IEdge,viewSourceNode:yfiles.graph.INode,sourceIsCollapsed:boolean,targetSourceNode:yfiles.graph.INode,targetIsCollapsed:boolean):yfiles.graph.IEdge; @@ -58387,21 +58480,20 @@ declare namespace system{ * * @see yfiles.graph.IFoldingView * @see yfiles.graph.FoldingManager#createFoldingView - * @class yfiles.graph.FoldingManager + * @class */ export interface FoldingManager extends Object{} export class FoldingManager { /** * Creates a manager instance for the given {@link yfiles.graph.FoldingManager#masterGraph} to create views on top of it that support folding operations. - * @param {yfiles.graph.IGraph} masterGraph The graph to use as the {@link yfiles.graph.FoldingManager#masterGraph}. + * @param masterGraph The graph to use as the {@link #masterGraph}. * @throws {Stubs.Exceptions.ArgumentError} masterGraph is null. - * @constructor */ constructor(masterGraph:yfiles.graph.IGraph); /** * Creates a manager instance for the given {@link yfiles.graph.FoldingManager#masterGraph} to create views on top of it that support folding operations. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IGraph} options.masterGraph The graph to use as the {@link yfiles.graph.FoldingManager#masterGraph}. + * @param options.masterGraph The graph to use as the {@link #masterGraph}. * @param {yfiles.graph.IFoldingEdgeConverter} options.foldingEdgeConverter The {@link yfiles.graph.IFoldingEdgeConverter} implementation that is used to create/convert and modify the {@link yfiles.graph.FoldingEdgeStateId folding edges} inside the view instances. *

    * This option sets the {@link yfiles.graph.FoldingManager#foldingEdgeConverter} property on the created object. @@ -58411,7 +58503,6 @@ declare namespace system{ * This option sets the {@link yfiles.graph.FoldingManager#folderNodeConverter} property on the created object. *

    * @throws {Stubs.Exceptions.ArgumentError} masterGraph is null. - * @constructor */ constructor(options:{masterGraph:yfiles.graph.IGraph,foldingEdgeConverter?:yfiles.graph.IFoldingEdgeConverter,folderNodeConverter?:yfiles.graph.IFolderNodeConverter}); /** @@ -58431,7 +58522,6 @@ declare namespace system{ *

    * @see yfiles.graph.FoldingManager#createFoldingView * @see yfiles.graph.FoldingManager#masterGraph - * @constructor */ constructor(options?:{foldingEdgeConverter?:yfiles.graph.IFoldingEdgeConverter,folderNodeConverter?:yfiles.graph.IFolderNodeConverter}); /** @@ -58451,10 +58541,10 @@ declare namespace system{ * method for edges and the {@link yfiles.graph.FoldingManager#getFolderNodeState} method for nodes provide access to that state * while it is not being displayed in a view. *

    - * @param {yfiles.graph.INode} [root=null] A group node or the root of the {@link yfiles.graph.FoldingManager#masterGraph} whose contents will be displayed in the view. - * @param {function(yfiles.graph.INode): boolean} [isExpanded=null] A predicate that can be provided to the view that will be used as a callback to determine the initial {@link yfiles.graph.IFoldingView#isExpanded expansion state} of + * @param [root=null] A group node or the root of the {@link #masterGraph} whose contents will be displayed in the view. + * @param [isExpanded=null] A predicate that can be provided to the view that will be used as a callback to determine the initial {@link #isExpanded expansion state} of * group nodes in the view. - * @returns {yfiles.graph.IFoldingView} A new graph instance that represents a synchronized view on the {@link yfiles.graph.FoldingManager#masterGraph}. + * @returns A new graph instance that represents a synchronized view on the {@link #masterGraph}. * @see yfiles.graph.FoldingManager#prepareFoldingView */ createFoldingView(root?:yfiles.graph.INode,isExpanded?:(obj:yfiles.graph.INode)=>boolean):yfiles.graph.IFoldingView; @@ -58476,10 +58566,10 @@ declare namespace system{ * while it is not being displayed in a view. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.root=null] A group node or the root of the {@link yfiles.graph.FoldingManager#masterGraph} whose contents will be displayed in the view. - * @param {function(yfiles.graph.INode): boolean} [options.isExpanded=null] A predicate that can be provided to the view that will be used as a callback to determine the initial {@link yfiles.graph.IFoldingView#isExpanded expansion state} of + * @param [options.root=null] A group node or the root of the {@link #masterGraph} whose contents will be displayed in the view. + * @param [options.isExpanded=null] A predicate that can be provided to the view that will be used as a callback to determine the initial {@link #isExpanded expansion state} of * group nodes in the view. - * @returns {yfiles.graph.IFoldingView} A new graph instance that represents a synchronized view on the {@link yfiles.graph.FoldingManager#masterGraph}. + * @returns A new graph instance that represents a synchronized view on the {@link #masterGraph}. * @see yfiles.graph.FoldingManager#prepareFoldingView */ createFoldingView(options:{root?:yfiles.graph.INode,isExpanded?:(obj:yfiles.graph.INode)=>boolean}):yfiles.graph.IFoldingView; @@ -58496,8 +58586,8 @@ declare namespace system{ * This method can be used to query the collapsed state of a node, even if the node is currently not present in any managed * view or the node is in fact expanded in all views. *

    - * @param {yfiles.graph.INode} masterNode The node in the {@link yfiles.graph.FoldingManager#masterGraph} for which the state should be returned. - * @returns {yfiles.graph.FolderNodeState} A state holder implementation of a node, which is not part of any graph. + * @param masterNode The node in the {@link #masterGraph} for which the state should be returned. + * @returns A state holder implementation of a node, which is not part of any graph. * @throws {Stubs.Exceptions.ArgumentError} The master node does not belong to the managed graph. */ getFolderNodeState(masterNode:yfiles.graph.INode):yfiles.graph.FolderNodeState; @@ -58508,8 +58598,8 @@ declare namespace system{ * This method can be used to query the state of an edge that is either not currently visible in any {@link yfiles.graph.FoldingManager#views view} or connects to * different source and target nodes because of the {@link yfiles.graph.IFoldingView#collapse collapsed} states of the nodes and their parents in the view. *

    - * @param {yfiles.graph.FoldingEdgeStateId} id The ID of the folding edge for which the folding state should be returned. - * @returns {yfiles.graph.FoldingEdgeState} A {@link yfiles.graph.FoldingEdgeState} that can be used to query and change the properties of the edge. + * @param id The ID of the folding edge for which the folding state should be returned. + * @returns A {@link } that can be used to query and change the properties of the edge. * @see yfiles.graph.FoldingManager#getFolderNodeState * @see yfiles.graph.FoldingEdgeStateId */ @@ -58521,8 +58611,8 @@ declare namespace system{ * by a {@link yfiles.graph.IFoldingView view} because it has never been visualized. This method indicates whether there is state information available for * the given master node. *

    - * @param {yfiles.graph.INode} masterNode The master node for which the state is requested. - * @returns {boolean} Whether {@link yfiles.graph.FoldingManager#getFolderNodeState} would return existing state information. + * @param masterNode The master node for which the state is requested. + * @returns Whether {@link #getFolderNodeState} would return existing state information. * @see yfiles.graph.FoldingManager#getFolderNodeState */ hasFolderNodeState(masterNode:yfiles.graph.INode):boolean; @@ -58533,8 +58623,8 @@ declare namespace system{ * never been requested by a {@link yfiles.graph.IFoldingView} because it has never been visualized. This method indicates whether * there is state information available for the given id. *

    - * @param {yfiles.graph.FoldingEdgeStateId} id The id for which state is requested. - * @returns {boolean} Whether {@link yfiles.graph.FoldingManager#getFoldingEdgeState} would return existing state information. + * @param id The id for which state is requested. + * @returns Whether {@link #getFoldingEdgeState} would return existing state information. * @see yfiles.graph.FoldingManager#getFoldingEdgeState */ hasFoldingEdgeState(id:yfiles.graph.FoldingEdgeStateId):boolean; @@ -58547,7 +58637,7 @@ declare namespace system{ * essential for the initial creation of the elements in the view instance. Overriding methods should always consider to * call the base class implementation, first. *

    - * @param {yfiles.graph.IFoldingView} foldingView The graph view that has just been created but is still empty. + * @param foldingView The graph view that has just been created but is still empty. * @protected */ prepareFoldingView(foldingView:yfiles.graph.IFoldingView):void; @@ -58566,7 +58656,7 @@ declare namespace system{ * to the converter. Using this method, the state of the collapsed nodes in the views can be synchronized according to the * logic in the {@link yfiles.graph.IFolderNodeConverter} implementation. *

    - * @param {yfiles.graph.INode} masterNode The master node that belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. + * @param masterNode The master node that belongs to the {@link #masterGraph}. * @throws {Stubs.Exceptions.ArgumentError} If the provided master node does not belong to the master graph. * @see yfiles.graph.FoldingManager#updateFoldingEdgeStates */ @@ -58583,7 +58673,7 @@ declare namespace system{ * to the converter. Using this method, the state of the representing edges in the views can be synchronized according to * the logic in the {@link yfiles.graph.IFoldingEdgeConverter} implementation. *

    - * @param {yfiles.graph.IEdge} masterEdge The master edge that belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. + * @param masterEdge The master edge that belongs to the {@link #masterGraph}. * @throws {Stubs.Exceptions.ArgumentError} If the provided master edge does not belong to the master graph. * @see yfiles.graph.FoldingManager#updateFolderNodeStates */ @@ -58632,7 +58722,7 @@ declare namespace system{ *

    * When the properties of the state are changed, these changes are reflected immediately in the {@link yfiles.graph.FoldingManager#views}. *

    - * @class yfiles.graph.FoldingBendState + * @class * @final */ export interface FoldingBendState extends Object{} @@ -58643,7 +58733,7 @@ declare namespace system{ * The returned bend is not present in any graph but may be passed to {@link yfiles.graph.IFoldingView#getViewItem} to get the bend * state's view bend in the {@link yfiles.graph.IFoldingView#graph folding view graph}. *

    - * @returns {yfiles.graph.IBend} An {@link yfiles.graph.IBend} instance which represents this bend state. + * @returns An {@link } instance which represents this bend state. */ asBend():yfiles.graph.IBend; /** @@ -58670,7 +58760,7 @@ declare namespace system{ *

    * @see yfiles.graph.FoldingEdgeStateId * @see yfiles.graph.FoldingManager#getFoldingEdgeState - * @class yfiles.graph.FoldingEdgeState + * @class * @extends {yfiles.graph.FoldingLabelOwnerState} * @final */ @@ -58678,10 +58768,10 @@ declare namespace system{ export class FoldingEdgeState { /** * Adds a new {@link yfiles.graph.FoldingBendState} to this edge state at the given index and location. - * @param {yfiles.geometry.Point} location The location of the new bend state. - * @param {number} [index=-1] The index the bend state shall be inserted in the - * {@link yfiles.graph.FoldingEdgeState#bends}; a negative value (which is the default) indicates that the bend should be appended to the end of the list of bends. - * @returns {yfiles.graph.FoldingBendState} The newly added bend state. + * @param location The location of the new bend state. + * @param [index=-1] The index the bend state shall be inserted in the + * {@link #bends}; a negative value (which is the default) indicates that the bend should be appended to the end of the list of bends. + * @returns The newly added bend state. */ addBend(location:yfiles.geometry.Point,index?:number):yfiles.graph.FoldingBendState; /** @@ -58690,7 +58780,7 @@ declare namespace system{ * The returned edge is not present in any graph but may be passed to {@link yfiles.graph.IFoldingView#getViewItem} to get the edge * state's view edge in the {@link yfiles.graph.IFoldingView#graph folding view graph}. *

    - * @returns {yfiles.graph.IEdge} An {@link yfiles.graph.IEdge} instance which represents this edge state. + * @returns An {@link } instance which represents this edge state. */ asEdge():yfiles.graph.IEdge; /** @@ -58699,12 +58789,12 @@ declare namespace system{ clearBends():void; /** * - * @param {yfiles.graph.FoldingLabelState} label + * @param label */ remove(label:yfiles.graph.FoldingLabelState):void; /** * Removes the bend from this edge state. - * @param {yfiles.graph.FoldingBendState} bend The bend to remove. + * @param bend The bend to remove. * @throws {Stubs.Exceptions.ArgumentError} Thrown if the bend doesn't belong to this edge state. */ remove(bend:yfiles.graph.FoldingBendState):void; @@ -58742,7 +58832,7 @@ declare namespace system{ *

    * @see yfiles.graph.FoldingLabelOwnerState#labels * @see yfiles.graph.FoldingLabelOwnerState#addLabel - * @class yfiles.graph.FoldingLabelState + * @class * @final */ export interface FoldingLabelState extends Object{} @@ -58753,7 +58843,7 @@ declare namespace system{ * The returned label is not present in any graph but may be passed to {@link yfiles.graph.IFoldingView#getViewItem} to get the * label state's view label in the {@link yfiles.graph.IFoldingView#graph folding view graph}. *

    - * @returns {yfiles.graph.ILabel} An {@link yfiles.graph.ILabel} instance which represents this label state. + * @returns An {@link } instance which represents this label state. */ asLabel():yfiles.graph.ILabel; /** @@ -58795,19 +58885,19 @@ declare namespace system{ * @see yfiles.graph.FolderNodeState * @see yfiles.graph.FoldingEdgeState * @see yfiles.graph.FoldingLabelState - * @class yfiles.graph.FoldingLabelOwnerState + * @class */ export interface FoldingLabelOwnerState extends Object{} export class FoldingLabelOwnerState { constructor(); /** * Adds a {@link yfiles.graph.FoldingLabelState} to this state. - * @param {string} text The text of the new label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The layout parameter of the new label. - * @param {yfiles.styles.ILabelStyle} style The style of the new label. - * @param {yfiles.geometry.Size} preferredSize The preferred size of the label. - * @param {Object} tag The tag of the label. - * @returns {yfiles.graph.FoldingLabelState} The newly added {@link yfiles.graph.FoldingLabelState}. + * @param text The text of the new label. + * @param layoutParameter The layout parameter of the new label. + * @param style The style of the new label. + * @param preferredSize The preferred size of the label. + * @param tag The tag of the label. + * @returns The newly added {@link }. * @abstract */ addLabel(text:string,layoutParameter:yfiles.graph.ILabelModelParameter,style:yfiles.styles.ILabelStyle,preferredSize:yfiles.geometry.Size,tag:Object):yfiles.graph.FoldingLabelState; @@ -58831,7 +58921,7 @@ declare namespace system{ * @see yfiles.graph.FoldingEdgeState#targetPort * @see yfiles.graph.FolderNodeState#ports * @see yfiles.graph.FolderNodeState#getFoldingPortState - * @class yfiles.graph.FoldingPortState + * @class */ export interface FoldingPortState extends Object{} export class FoldingPortState { @@ -58841,7 +58931,7 @@ declare namespace system{ * The returned port is not present in any graph but may be passed to {@link yfiles.graph.IFoldingView#getViewItem} to get the port * state's view port in the {@link yfiles.graph.IFoldingView#graph folding view graph}. *

    - * @returns {yfiles.graph.IPort} An {@link yfiles.graph.IPort} instance which represents this port state. + * @returns An {@link } instance which represents this port state. * @abstract */ asPort():yfiles.graph.IPort; @@ -58869,7 +58959,7 @@ declare namespace system{ * When the properties of the state are changed, these changes are reflected immediately in the {@link yfiles.graph.FoldingManager#views}. *

    * @see yfiles.graph.FoldingManager#getFolderNodeState - * @class yfiles.graph.FolderNodeState + * @class * @extends {yfiles.graph.FoldingLabelOwnerState} * @final */ @@ -58881,7 +58971,7 @@ declare namespace system{ * The returned node is not present in any graph but may be passed to {@link yfiles.graph.IFoldingView#getViewItem} to get the node * state's folder node in the {@link yfiles.graph.IFoldingView#graph folding view graph}. *

    - * @returns {yfiles.graph.INode} An {@link yfiles.graph.INode} instance which represents this folder node state. + * @returns An {@link } instance which represents this folder node state. */ asNode():yfiles.graph.INode; /** @@ -58889,15 +58979,15 @@ declare namespace system{ *

    * This method can be used to query the folding state of a port at the folder which is represented by this state. *

    - * @param {yfiles.graph.IPort} masterPort The master port for which the state should be returned. - * @returns {yfiles.graph.FoldingPortState} A state holder implementation of the masterPort, which reflects the port in the node's collapsed state. + * @param masterPort The master port for which the state should be returned. + * @returns A state holder implementation of the masterPort, which reflects the port in the node's collapsed state. * @see yfiles.graph.FoldingPortState#style * @see yfiles.graph.FoldingPortState#locationParameter */ getFoldingPortState(masterPort:yfiles.graph.IPort):yfiles.graph.FoldingPortState; /** * - * @param {yfiles.graph.FoldingLabelState} label + * @param label */ remove(label:yfiles.graph.FoldingLabelState):void; /** @@ -58926,9 +59016,10 @@ declare namespace system{ * Interface used by {@link yfiles.graph.FoldingManager} and {@link yfiles.graph.IFoldingView} which is responsible for managing edges * between folder nodes. *

    - * Since CreateFoldingView creates views that can potentially contain edges that connect to nodes which have a different - * set of attributes, these edges might need to have a separate set of attributes, too. Implementations of this interface - * are being called by the {@link yfiles.graph.IFoldingView}s to configure these kind of folding edges. + * Since {@link yfiles.graph.FoldingManager#createFoldingView} creates views that can potentially contain edges that connect to + * nodes which have a different set of attributes, these edges might need to have a separate set of attributes, too. + * Implementations of this interface are being called by the + * {@link yfiles.graph.IFoldingView}s to configure these kind of folding edges. *

    * @see yfiles.graph.DefaultFoldingEdgeConverter * @see yfiles.graph.FoldingManager#foldingEdgeConverter @@ -58946,18 +59037,18 @@ declare namespace system{ * and return the values that these implementation yields to the caller. The implementation can optionally query the {@link yfiles.graph.IFoldingEdgeFactory#getExistingFoldingEdges existing folding edges} * between the source and target node and decide whether to add the edge {@link yfiles.graph.IFoldingEdgeFactory#addToExistingFoldingEdge to the existing folding edge}. *

    - * @param {yfiles.graph.IFoldingEdgeFactory} factory The {@link yfiles.graph.IFoldingEdgeFactory} implementation that needs to be called in order to communicate the results of this + * @param factory The {@link } implementation that needs to be called in order to communicate the results of this * query. - * @param {yfiles.graph.IFoldingView} foldingView The instance into which the folding edge is going to be inserted. - * @param {yfiles.graph.IEdge} masterEdge The edge from the {@link yfiles.graph.FoldingManager#masterGraph} that needs to be represented by a folding edge. Note that you may not return this instance. - * @param {yfiles.graph.INode} source The source node that belongs to the {@link yfiles.graph.IFoldingView} graph that will act as the local view node of the actual + * @param foldingView The instance into which the folding edge is going to be inserted. + * @param masterEdge The edge from the {@link #masterGraph} that needs to be represented by a folding edge. Note that you may not return this instance. + * @param source The source node that belongs to the {@link } graph that will act as the local view node of the actual * source node. - * @param {boolean} sourceIsCollapsed Determines whether the source is currently a folder node. - * @param {yfiles.graph.INode} target The target node that belongs to the {@link yfiles.graph.IFoldingView} graph that will act as the local view node of the actual + * @param sourceIsCollapsed Determines whether the source is currently a folder node. + * @param target The target node that belongs to the {@link } graph that will act as the local view node of the actual * target node. - * @param {boolean} targetIsCollapsed Determines whether the target is currently a folder node. - * @returns {yfiles.graph.IEdge} The edge as returned by {@link yfiles.graph.IFoldingEdgeFactory#addAsSeparateEdge}, or - * {@link yfiles.graph.IFoldingEdgeFactory#addToExistingFoldingEdge}, or null if the edge will be {@link yfiles.graph.IFoldingEdgeFactory#excludeFoldingEdge excluded} from the view. + * @param targetIsCollapsed Determines whether the target is currently a folder node. + * @returns The edge as returned by {@link #addAsSeparateEdge}, or + * {@link #addToExistingFoldingEdge}, or null if the edge will be {@link #excludeFoldingEdge excluded} from the view. * @abstract */ addFoldingEdge(factory:yfiles.graph.IFoldingEdgeFactory,foldingView:yfiles.graph.IFoldingView,masterEdge:yfiles.graph.IEdge,source:yfiles.graph.INode,sourceIsCollapsed:boolean,target:yfiles.graph.INode,targetIsCollapsed:boolean):yfiles.graph.IEdge; @@ -58967,10 +59058,10 @@ declare namespace system{ * Implementations may not use the {@link yfiles.graph.IFoldingView}'s {@link yfiles.graph.IFoldingView#graph} instance to modify the foldingEdge, because this would * create and enqueue undo events. Rather the properties provided by the state implementation must be set. *

    - * @param {yfiles.graph.FoldingEdgeState} state The {@link yfiles.graph.FoldingEdgeState} of the edge to change. - * @param {yfiles.graph.IFoldingView} foldingView The graph to which the folding edge belongs. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge for which the appearance shall be determined. - * @param {yfiles.collections.IList.} masterEdges The list of {@link yfiles.graph.IFoldingView#getMasterEdges master edges}, that the folding edge initially represents. + * @param state The {@link } of the edge to change. + * @param foldingView The graph to which the folding edge belongs. + * @param foldingEdge The folding edge for which the appearance shall be determined. + * @param masterEdges The list of {@link #getMasterEdges master edges}, that the folding edge initially represents. * @see yfiles.graph.IFoldingEdgeConverter#updateFoldingEdgeState * @abstract */ @@ -58984,10 +59075,10 @@ declare namespace system{ * Implementations may not use the {@link yfiles.graph.IFoldingView}'s {@link yfiles.graph.IFoldingView#graph} instance to modify the foldingEdge, because this would * create and enqueue undo events. Rather the properties provided by the state implementation must be set. *

    - * @param {yfiles.graph.FoldingEdgeState} state The {@link yfiles.graph.FoldingEdgeState} of the edge to change. - * @param {yfiles.graph.IFoldingView} foldingView The graph to which the folding edge belongs. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge for which the appearance might need an update. - * @param {yfiles.collections.IList.} masterEdges The list of {@link yfiles.graph.IFoldingView#getMasterEdges master edges}, that the folding edge currently represents. + * @param state The {@link } of the edge to change. + * @param foldingView The graph to which the folding edge belongs. + * @param foldingEdge The folding edge for which the appearance might need an update. + * @param masterEdges The list of {@link #getMasterEdges master edges}, that the folding edge currently represents. * @see yfiles.graph.IFoldingEdgeConverter#initializeFoldingEdgeState * @abstract */ @@ -59001,9 +59092,9 @@ declare namespace system{ * Interface used by {@link yfiles.graph.FoldingManager} and {@link yfiles.graph.IFoldingView} which is responsible for managing the * appearance of folder nodes. *

    - * Since CreateFoldingView creates views that can potentially contain nodes which have a different set of attributes, these - * attributes need to be determined somehow. Implementations of this interface are being called by the {@link yfiles.graph.IFoldingView view}s to configure - * the appearance of these {@link yfiles.graph.IFoldingView#isInFoldingState folder nodes}. + * Since {@link yfiles.graph.FoldingManager#createFoldingView} creates views that can potentially contain nodes which have a + * different set of attributes, these attributes need to be determined somehow. Implementations of this interface are being + * called by the {@link yfiles.graph.IFoldingView view}s to configure the appearance of these {@link yfiles.graph.IFoldingView#isInFoldingState folder nodes}. *

    * @see yfiles.graph.DefaultFolderNodeConverter * @see yfiles.graph.FoldingManager#folderNodeConverter @@ -59024,10 +59115,10 @@ declare namespace system{ *

    * Note that changing the appearance has to be done on state. *

    - * @param {yfiles.graph.FolderNodeState} state The folder node state to initialize. - * @param {yfiles.graph.IFoldingView} foldingView The graph instance for which the folder node has been created. - * @param {yfiles.graph.INode} viewNode The folder node instance in the view - * @param {yfiles.graph.INode} masterNode The node that represents the {@link yfiles.graph.IFoldingView#getMasterItem} of the viewstate to change. + * @param state The folder node state to initialize. + * @param foldingView The graph instance for which the folder node has been created. + * @param viewNode The folder node instance in the view + * @param masterNode The node that represents the {@link #getMasterItem} of the viewstate to change. * @see yfiles.graph.IFolderNodeConverter#updateFolderNodeState * @abstract */ @@ -59042,10 +59133,10 @@ declare namespace system{ *

    * Note that changing the appearance has to be done on state. *

    - * @param {yfiles.graph.FolderNodeState} state The folder node state to update. - * @param {yfiles.graph.IFoldingView} foldingView The graph instance for which the folder node can be changed. - * @param {yfiles.graph.INode} viewNode The folder node instance in the view - * @param {yfiles.graph.INode} masterNode The node that represents the {@link yfiles.graph.IFoldingView#getMasterItem} of the viewstate to change. + * @param state The folder node state to update. + * @param foldingView The graph instance for which the folder node can be changed. + * @param viewNode The folder node instance in the view + * @param masterNode The node that represents the {@link #getMasterItem} of the viewstate to change. * @see yfiles.graph.IFolderNodeConverter#initializeFolderNodeState * @abstract */ @@ -59092,11 +59183,11 @@ declare namespace system{ * folding edge. Existing ports at the provided source and target nodes may be specified to further influence the folding * edge creation. *

    - * @param {yfiles.graph.IPort} sourcePort The source port at the source node in the view to use or null if an extra {@link yfiles.graph.IFoldingView#isInFoldingState folding state} port should be added for the + * @param sourcePort The source port at the source node in the view to use or null if an extra {@link #isInFoldingState folding state} port should be added for the * edge to connect to at the source. - * @param {yfiles.graph.IPort} targetPort The target port at the target node in the view to use or null if an extra {@link yfiles.graph.IFoldingView#isInFoldingState folding state} port should be added for the + * @param targetPort The target port at the target node in the view to use or null if an extra {@link #isInFoldingState folding state} port should be added for the * edge to connect to at the target. - * @returns {yfiles.graph.IEdge} The folding edge that has been created in the view. Don't change the properties of the edge directly. + * @returns The folding edge that has been created in the view. Don't change the properties of the edge directly. * @see yfiles.graph.IFoldingEdgeConverter * @see yfiles.graph.IFoldingView#getViewItem * @abstract @@ -59113,8 +59204,8 @@ declare namespace system{ * method to retrieve the current set of existing folding edges that interconnect the same source and target nodes. The * range of valid parameters is constrained to this collection. *

    - * @param {yfiles.graph.IEdge} foldingEdge One of the {@link yfiles.graph.IFoldingEdgeFactory#getExistingFoldingEdges existing folding edges} from the view which has been chosen to represent the master edge in this view. - * @returns {yfiles.graph.IEdge} The folding edge that represents the edge in the view, which is the same as the foldingEdge parameter. Don't change the + * @param foldingEdge One of the {@link #getExistingFoldingEdges existing folding edges} from the view which has been chosen to represent the master edge in this view. + * @returns The folding edge that represents the edge in the view, which is the same as the foldingEdge parameter. Don't change the * properties of the edge directly. * @see yfiles.graph.IFoldingEdgeConverter * @see yfiles.graph.IFoldingEdgeFactory#getExistingFoldingEdges @@ -59129,7 +59220,7 @@ declare namespace system{ * null should be returned as the result of a {@link yfiles.graph.IFoldingEdgeConverter#addFoldingEdge} call, which is the same as * the return value of this method. So it is possible to just pass the return value on to the caller. *

    - * @returns {yfiles.graph.IEdge} This method will always return null. This is for symmetry reasons to be easily exchangeable with the other methods. + * @returns This method will always return null. This is for symmetry reasons to be easily exchangeable with the other methods. * @see yfiles.graph.IFoldingEdgeConverter * @abstract */ @@ -59143,8 +59234,8 @@ declare namespace system{ * would, if it was included in this view. One of the items in the returned collection can be passed to the {@link yfiles.graph.IFoldingEdgeFactory#addToExistingFoldingEdge} * method. *

    - * @param {boolean} ignoreDirection Whether the direction of the edges should be ignored so that reverse edges are included in the enumeration, too. - * @returns {yfiles.collections.IEnumerable.} An collection of currently existing folding edges in the view that interconnects the same source and target node. + * @param ignoreDirection Whether the direction of the edges should be ignored so that reverse edges are included in the enumeration, too. + * @returns An collection of currently existing folding edges in the view that interconnects the same source and target node. * @abstract */ getExistingFoldingEdges(ignoreDirection:boolean):yfiles.collections.IEnumerable; @@ -59153,801 +59244,6 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; - export enum StretchStripeLabelModelPosition{ - /** - * Encodes a position at the top side of the node interior - */ - NORTH, - /** - * Encodes a position at the right side of the node interior - */ - EAST, - /** - * Encodes a position at the bottom side of the node interior - */ - SOUTH, - /** - * Encodes a position at the left side of the node interior - */ - WEST - } - /** - * A label model for labels that is especially tailored to be used as a model for the four default positions where the - * label of a stripe may lie. - *

    - * This label model supports four positions inside of the stripe bounds. The east and west positions are rotated - * automatically. The {@link yfiles.graph.ILabel#owner} is expected to be an {@link yfiles.graph.IStripe} instance, i.e. the parameter supports only {@link yfiles.graph.IStripe} - * instances. - *

    - * @class yfiles.graph.StretchStripeLabelModel - * @implements {yfiles.graph.ILabelModel} - * @implements {yfiles.graph.ILabelModelParameterProvider} - */ - export interface StretchStripeLabelModel extends Object,yfiles.graph.ILabelModel,yfiles.graph.ILabelModelParameterProvider{} - export class StretchStripeLabelModel { - /** - * Creates a new instance of this model with empty insets. - * @param {Object} [options=null] The parameters to pass. - * @param {yfiles.geometry.Insets} options.insets The insets to use within the stripe's {@link yfiles.graph.IStripe#layout}. - *

    - * This option sets the {@link yfiles.graph.StretchStripeLabelModel#insets} property on the created object. - *

    - * @param {boolean} options.useActualInsets Whether or not to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the stripe header area. - *

    - * This option sets the {@link yfiles.graph.StretchStripeLabelModel#useActualInsets} property on the created object. - *

    - * @constructor - */ - constructor(options?:{insets?:yfiles.geometry.Insets,useActualInsets?:boolean}); - /** - * - * @returns {yfiles.graph.ILabelModelParameter} - */ - createDefaultParameter():yfiles.graph.ILabelModelParameter; - /** - * Creates the parameter for the given position. - * @param {yfiles.graph.StretchStripeLabelModelPosition} position The position. - * @returns {yfiles.graph.ILabelModelParameter} - */ - createParameter(position:yfiles.graph.StretchStripeLabelModelPosition):yfiles.graph.ILabelModelParameter; - /** - * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} - */ - getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; - /** - * Calculates the geometry in form of an {@link yfiles.geometry.IOrientedRectangle} for a given label using the given model - * parameter. - *

    - * The geometry is calculated in table coordinates, i.e. relative to {@link yfiles.graph.ITable#relativeLocation}. - *

    - * @param {yfiles.graph.ILabel} label the label to calculate the geometry for - * @param {yfiles.graph.ILabelModelParameter} layoutParameter A parameter that has been created by this model. This is typically the parameter that yielded this instance through its - * {@link yfiles.graph.ILabelModelParameter#model} property. - * @returns {yfiles.geometry.IOrientedRectangle} An instance that describes the geometry. This is typically an instance designed as a flyweight, so clients should not - * cache the instance but store the values if they need a snapshot for later use - */ - getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; - /** - * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} - */ - getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; - /** - * - * @param {yfiles.lang.Class} type - * @returns {Object} - */ - lookup(type:yfiles.lang.Class):Object; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static NORTH:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static SOUTH:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static EAST:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static WEST:yfiles.graph.ILabelModelParameter; - /** - * Gets or sets the insets to use within the stripe's {@link yfiles.graph.IStripe#layout}. - * @default '0' - * @type {yfiles.geometry.Insets} - */ - insets:yfiles.geometry.Insets; - /** - * Gets or sets whether or not to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the - * stripe header area. - *

    - * If true the header insets are used. Default is false - *

    - * @default false - * @type {boolean} - */ - useActualInsets:boolean; - static $class:yfiles.lang.Class; - } - export enum StripeLabelModelPosition{ - /** - * Encodes a position at the top side of the node interior - */ - NORTH, - /** - * Encodes a position at the right side of the node interior - */ - EAST, - /** - * Encodes a position at the bottom side of the node interior - */ - SOUTH, - /** - * Encodes a position at the left side of the node interior - */ - WEST - } - /** - * A label model for labels that is especially tailored to be used as a model for the four default positions where the - * label of a stripe may lie. - *

    - * This label model supports four positions inside of the stripe bounds. The east and west positions are rotated - * automatically. The {@link yfiles.graph.ILabel#owner} is expected to be an {@link yfiles.graph.IStripe} instance, i.e. the parameter supports only {@link yfiles.graph.IStripe} - * instances. - *

    - * @class yfiles.graph.StripeLabelModel - * @implements {yfiles.graph.ILabelModel} - * @implements {yfiles.graph.ILabelModelParameterProvider} - */ - export interface StripeLabelModel extends Object,yfiles.graph.ILabelModel,yfiles.graph.ILabelModelParameterProvider{} - export class StripeLabelModel { - /** - * Creates a new instance of this model with empty insets. - * @param {Object} [options=null] The parameters to pass. - * @param {number} options.ratio The ratio how far the label should be positioned from the border in the header area. - *

    - * This option sets the {@link yfiles.graph.StripeLabelModel#ratio} property on the created object. - *

    - * @param {boolean} options.useActualInsets A value indicating whether to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the stripe header area. - *

    - * This option sets the {@link yfiles.graph.StripeLabelModel#useActualInsets} property on the created object. - *

    - * @constructor - */ - constructor(options?:{ratio?:number,useActualInsets?:boolean}); - /** - * - * @returns {yfiles.graph.ILabelModelParameter} - */ - createDefaultParameter():yfiles.graph.ILabelModelParameter; - /** - * Creates the parameter for the given position. - * @param {yfiles.graph.StripeLabelModelPosition} position The position. - * @returns {yfiles.graph.ILabelModelParameter} - */ - createParameter(position:yfiles.graph.StripeLabelModelPosition):yfiles.graph.ILabelModelParameter; - /** - * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} - */ - getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; - /** - * Calculates the geometry in form of an {@link yfiles.geometry.IOrientedRectangle} for a given label using the given model - * parameter. - *

    - * The geometry is calculated in table coordinates, i.e. relative to {@link yfiles.graph.ITable#relativeLocation}. - *

    - * @param {yfiles.graph.ILabel} label the label to calculate the geometry for - * @param {yfiles.graph.ILabelModelParameter} layoutParameter A parameter that has been created by this model. This is typically the parameter that yielded this instance through its - * {@link yfiles.graph.ILabelModelParameter#model} property. - * @returns {yfiles.geometry.IOrientedRectangle} An instance that describes the geometry. This is typically an instance designed as a flyweight, so clients should not - * cache the instance but store the values if they need a snapshot for later use - */ - getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; - /** - * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} - */ - getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; - /** - * - * @param {yfiles.lang.Class} type - * @returns {Object} - */ - lookup(type:yfiles.lang.Class):Object; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static NORTH:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static SOUTH:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static EAST:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static WEST:yfiles.graph.ILabelModelParameter; - /** - * Gets or sets a value indicating whether to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label - * inside the stripe header area. - *

    - * If true the header insets are used. Default is false - *

    - * @default false - * @type {boolean} - */ - useActualInsets:boolean; - /** - * Gets or sets the ratio how far the label should be positioned from the border in the header area. - *

    - * 0 means the label is positioned on the outer border, 1 means it is positioned at the inner border of the header or inset - * area. Default value is 0.5 - *

    - * @default 0.5 - * @type {number} - */ - ratio:number; - static $class:yfiles.lang.Class; - } - /** - * Default implementation of the {@link yfiles.graph.ITable} interface. - * @class yfiles.graph.Table - * @implements {yfiles.graph.ITable} - * @implements {yfiles.lang.ICloneable} - */ - export interface Table extends Object,yfiles.graph.ITable,yfiles.lang.ICloneable{} - export class Table { - /** - * Default constructor that creates an empty table - * @param {Object} [options=null] The parameters to pass. - * @param {yfiles.geometry.Insets} [options.insets=null] Sets the insets property. - * @param {yfiles.geometry.Point} [options.relativeLocation=null] Sets the relativeLocation property. - * @param {yfiles.graph.IStripeDefaults} options.rowDefaults The defaults for rows. - *

    - * This option sets the {@link yfiles.graph.Table#rowDefaults} property on the created object. - *

    - * @param {yfiles.graph.IStripeDefaults} options.columnDefaults The defaults for Columns. - *

    - * This option sets the {@link yfiles.graph.Table#columnDefaults} property on the created object. - *

    - * @constructor - */ - constructor(options?:{insets?:yfiles.geometry.Insets,relativeLocation?:yfiles.geometry.Point,rowDefaults?:yfiles.graph.IStripeDefaults,columnDefaults?:yfiles.graph.IStripeDefaults}); - /** - * - * @param {yfiles.graph.IStripe} owner - * @param {string} text - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [style=null] - * @param {yfiles.geometry.Size} [preferredSize=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.ILabel} - */ - addLabel(owner:yfiles.graph.IStripe,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object):yfiles.graph.ILabel; - /** - * - * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IStripe} options.owner - * @param {string} options.text - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [options.style=null] - * @param {yfiles.geometry.Size} [options.preferredSize=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.ILabel} - */ - addLabel(options:{owner:yfiles.graph.IStripe,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object}):yfiles.graph.ILabel; - /** - * - * @returns {Object} - */ - clone():Object; - /** - * Called during {@link yfiles.graph.Table#clone} to create a copy of column - *

    - * If column implements the {@link yfiles.lang.ICloneable} interface, the column instance is - * {@link yfiles.lang.ICloneable#clone}d, otherwise, the original instance is returned unchanged. - *

    - * @param {yfiles.graph.IColumn} column The column that should be copied during a clone operation. - * @returns {yfiles.graph.IColumn} A clone of column if possible, otherwise the original reference to column - * @protected - */ - copyColumn(column:yfiles.graph.IColumn):yfiles.graph.IColumn; - /** - * Called during {@link yfiles.graph.Table#clone} to create a copy of originalDefaults - *

    - * This implementation returns an unchanged reference to originalDefaults. If you need to create a deep clone of - * originalDefaults, you'll have to perform the cloning yourself. - *

    - * @param {yfiles.graph.IStripeDefaults} originalDefaults The default settings that should be copied during a clone operation. - * @returns {yfiles.graph.IStripeDefaults} The original reference to originalDefaults - * @protected - */ - copyDefaults(originalDefaults:yfiles.graph.IStripeDefaults):yfiles.graph.IStripeDefaults; - /** - * Called during {@link yfiles.graph.Table#clone} to create a copy of row - *

    - * If row implements the {@link yfiles.lang.ICloneable} interface, the row instance is - * {@link yfiles.lang.ICloneable#clone}d, otherwise, the original instance is returned unchanged. - *

    - * @param {yfiles.graph.IRow} row The row that should be copied during a clone operation. - * @returns {yfiles.graph.IRow} A clone of row if possible, otherwise the original reference to row - * @protected - */ - copyRow(row:yfiles.graph.IRow):yfiles.graph.IRow; - /** - * - * @param {yfiles.graph.IColumn} owner - * @param {number} [width=null] - * @param {number} [minWidth=null] - * @param {yfiles.geometry.Insets} [insets=null] - * @param {yfiles.styles.IStripeStyle} [style=null] - * @param {Object} [tag=null] - * @param {number} [index=null] - * @returns {yfiles.graph.IColumn} - */ - createChildColumn(owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IColumn; - /** - * - * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IColumn} options.owner - * @param {number} [options.width=null] - * @param {number} [options.minWidth=null] - * @param {yfiles.geometry.Insets} [options.insets=null] - * @param {yfiles.styles.IStripeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @param {number} [options.index=null] - * @returns {yfiles.graph.IColumn} - */ - createChildColumn(options:{owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IColumn; - /** - * - * @param {yfiles.graph.IRow} owner - * @param {number} [height=null] - * @param {number} [minHeight=null] - * @param {yfiles.geometry.Insets} [insets=null] - * @param {yfiles.styles.IStripeStyle} [style=null] - * @param {Object} [tag=null] - * @param {number} [index=null] - * @returns {yfiles.graph.IRow} - */ - createChildRow(owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IRow; - /** - * - * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IRow} options.owner - * @param {number} [options.height=null] - * @param {number} [options.minHeight=null] - * @param {yfiles.geometry.Insets} [options.insets=null] - * @param {yfiles.styles.IStripeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @param {number} [options.index=null] - * @returns {yfiles.graph.IRow} - */ - createChildRow(options:{owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IRow; - /** - * Callback method that creates the Column defaults. - * @returns {yfiles.graph.IStripeDefaults} A new instance of the {@link yfiles.graph.StripeDefaults} class which is used for newly created columns. - * @protected - */ - createColumnDefaults():yfiles.graph.IStripeDefaults; - /** - * Callback method that creates the row defaults. - * @returns {yfiles.graph.IStripeDefaults} A new instance of the {@link yfiles.graph.StripeDefaults} class that is used for newly created rows. - * @protected - */ - createRowDefaults():yfiles.graph.IStripeDefaults; - /** - * Installs the undo support for use with all tables that are bound to nodes in graph. - *

    - * This method queries the graph for its undo support dynamically whenever undo support is queried in the table. In - * contrast to {@link yfiles.graph.Table#installStaticUndoSupport} the undo support installed with this method will thus always be - * the one which is the currently available support for the graph. - *

    - * @param {yfiles.graph.IGraph} graph The graph where the nodes exist or will be created/changed and where the undo support should come from. - * @see yfiles.graph.Table#uninstallDynamicUndoSupport - * @see yfiles.graph.Table#installStaticUndoSupport - * @static - */ - static installDynamicUndoSupport(graph:yfiles.graph.IGraph):void; - /** - * Installs the undo support for use with all tables that are bound to nodes in graph. - *

    - * This methods installs the undo support which manages the graph at the time this method is called. In contrast to {@link yfiles.graph.Table#installDynamicUndoSupport} - * the installed undo support will not change when the graph's undo support changes. - *

    - *

    - * This method adds undo support both for existing nodes in graph as well as for newly created or changed nodes. - *

    - * @param {yfiles.graph.IGraph} graph The graph where the nodes exist or will be created/changed. - * @see yfiles.graph.Table#uninstallStaticUndoSupport - * @see yfiles.graph.Table#installDynamicUndoSupport - * @static - */ - static installStaticUndoSupport(graph:yfiles.graph.IGraph):void; - /** - * - * @param {yfiles.lang.Class} type - * @returns {Object} - */ - lookup(type:yfiles.lang.Class):Object; - /** - * Called after a label has been added to a stripe. - *

    - * This method raises the {@link yfiles.graph.Table#addLabelAddedListener LabelAdded} event. - *

    - * @param {yfiles.graph.ILabel} label The label that has just been added. - * @protected - */ - onLabelAdded(label:yfiles.graph.ILabel):void; - /** - * Callback that is invoked after a label has changed. - *

    - * This method raises the {@link yfiles.graph.Table#addLabelChangedListener LabelChanged} event. - *

    - * @param {yfiles.graph.ILabel} label The label that has changed. - * @protected - */ - onLabelChanged(label:yfiles.graph.ILabel):void; - /** - * Called after a label has been removed from its stripe. - *

    - * This method raises the {@link yfiles.graph.Table#addLabelRemovedListener LabelRemoved} event. - *

    - * @param {yfiles.graph.ILabel} label The label that has just been removed. - * @param {yfiles.graph.ILabelOwner} owner The old owner of the label. - * @protected - */ - onLabelRemoved(owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel):void; - /** - * Callback that is invoked after a stripe has changed. - *

    - * This will trigger the {@link yfiles.graph.Table#addStripeChangedListener StripeChanged} event. - *

    - * @param {yfiles.graph.IStripe} owner The original owner - * @param {yfiles.graph.IStripe} stripe The stripe that has changed. - * @param {yfiles.graph.ITable} oldTable The original table owner, in case the stripe has been moved between different table instances - * @protected - */ - onStripeChanged(owner:yfiles.graph.IStripe,stripe:yfiles.graph.IStripe,oldTable:yfiles.graph.ITable):void; - /** - * Called after a stripe has been created and added to a table. - *

    - * This method raises the {@link yfiles.graph.Table#addStripeCreatedListener StripeCreated} event. - *

    - * @param {yfiles.graph.IStripe} stripe The stripe that has just been created. - * @protected - */ - onStripeCreated(stripe:yfiles.graph.IStripe):void; - /** - * Called after a stripe has been removed from its owner. - *

    - * This method raises the {@link yfiles.graph.Table#addStripeRemovedListener StripeRemoved} event. - *

    - * @param {yfiles.graph.IStripe} stripe The stripe that has just been removed. - * @param {yfiles.graph.IStripe} owner The old owner of the stripe. - * @protected - */ - onStripeRemoved(owner:yfiles.graph.IStripe,stripe:yfiles.graph.IStripe):void; - /** - * Removes the given label from its owner. - *

    - * This will trigger the corresponding event. - *

    - * @param {yfiles.graph.ILabel} label the label to remove - * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. - */ - remove(label:yfiles.graph.ILabel):void; - /** - * - * @param {yfiles.graph.IStripe} stripe - */ - remove(stripe:yfiles.graph.IStripe):void; - /** - * Sets the label model parameter for the given label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The new parameter. - * @throws {Stubs.Exceptions.ArgumentError} If the parameter cannot be used for this label or if the label is not associated with this table instance. - */ - setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; - /** - * Sets the preferred size of the label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.geometry.Size} preferredSize The new preferred size. - * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. - * @see yfiles.graph.ILabel#preferredSize - */ - setLabelPreferredSize(label:yfiles.graph.ILabel,preferredSize:yfiles.geometry.Size):void; - /** - * Sets the label text of the given label. - * @param {yfiles.graph.ILabel} label the label to modify - * @param {string} text the new text of the label - * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. - * @see yfiles.graph.ILabel#text - */ - setLabelText(label:yfiles.graph.ILabel,text:string):void; - /** - * - * @param {yfiles.graph.IStripe} stripe - * @param {number} minimumSize - */ - setMinimumSize(stripe:yfiles.graph.IStripe,minimumSize:number):void; - /** - * - * @param {yfiles.graph.IColumn} owner - * @param {yfiles.graph.IColumn} column - * @param {number} [index=null] - */ - setParent(owner:yfiles.graph.IColumn,column:yfiles.graph.IColumn,index?:number):void; - /** - * - * @param {yfiles.graph.IRow} owner - * @param {yfiles.graph.IRow} row - * @param {number} [index=null] - */ - setParent(owner:yfiles.graph.IRow,row:yfiles.graph.IRow,index?:number):void; - /** - * - * @param {yfiles.graph.IStripe} stripe - * @param {number} size - */ - setSize(stripe:yfiles.graph.IStripe,size:number):void; - /** - * - * @param {yfiles.graph.IStripe} stripe - * @param {yfiles.geometry.Insets} insets - */ - setStripeInsets(stripe:yfiles.graph.IStripe,insets:yfiles.geometry.Insets):void; - /** - * Assigns the given style instance by reference to the label. - *

    - * Style instances can be shared. - *

    - * @param {yfiles.graph.ILabel} label The label that will be assigned the new style - * @param {yfiles.styles.ILabelStyle} style The style instance that will be assigned to the label. - * @see yfiles.graph.ILabel#style - */ - setStyle(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):void; - /** - * - * @param {yfiles.graph.IStripe} stripe - * @param {yfiles.styles.IStripeStyle} style - */ - setStyle(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):void; - /** - * Uninstalls the undo support that has previously been installed with {@link yfiles.graph.Table#installDynamicUndoSupport} - * @param {yfiles.graph.IGraph} graph The graph where the tables are installed for which the undo support should be cleared. - * @static - */ - static uninstallDynamicUndoSupport(graph:yfiles.graph.IGraph):void; - /** - * Uninstalls the undo support that has previously been installed with {@link yfiles.graph.Table#installStaticUndoSupport} - * @param {yfiles.graph.IGraph} graph The graph where the tables are installed for which the undo support should be cleared. - * @static - */ - static uninstallStaticUndoSupport(graph:yfiles.graph.IGraph):void; - /** - * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an - * {@link yfiles.graph.IStripe}'s lookup. - *

    - * The provided default implementations can for example be used as fallback when the stripe lookup is wrapped. - *

    - * @static - * @type {yfiles.graph.IContextLookup} - */ - static DEFAULT_STRIPE_LOOKUP:yfiles.graph.IContextLookup; - /** - * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an - * {@link yfiles.graph.IColumn}'s lookup. - *

    - * The provided default implementations can for example be used as fallback when the column lookup is wrapped. - *

    - * @static - * @type {yfiles.graph.IContextLookup} - */ - static DEFAULT_COLUMN_LOOKUP:yfiles.graph.IContextLookup; - /** - * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an - * {@link yfiles.graph.IRow}'s lookup. - *

    - * The provided default implementations can for example be used as fallback when the row lookup is wrapped. - *

    - * @static - * @type {yfiles.graph.IContextLookup} - */ - static DEFAULT_ROW_LOOKUP:yfiles.graph.IContextLookup; - /** - * The toplevel {@link yfiles.graph.IRow}s in this table. - * @type {yfiles.collections.IEnumerable.} - */ - rows:yfiles.collections.IEnumerable; - /** - * The toplevel {@link yfiles.graph.IColumn}s in this table. - * @type {yfiles.collections.IEnumerable.} - */ - columns:yfiles.collections.IEnumerable; - /** - * - * @default '0' - * @type {yfiles.geometry.Insets} - */ - insets:yfiles.geometry.Insets; - /** - * - * @default '0,0' - * @type {yfiles.geometry.Point} - */ - relativeLocation:yfiles.geometry.Point; - /** - * Gets the relative layout of the table. - *

    - * The upper left corner of the layout always coincides with {@link yfiles.graph.Table#relativeLocation}. - *

    - * @see yfiles.graph.Table#relativeLocation - * @type {yfiles.geometry.IRectangle} - */ - layout:yfiles.geometry.IRectangle; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - addStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - removeStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener - */ - addStripeRemovedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener - */ - removeStripeRemovedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener - */ - addStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener - */ - removeStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - addLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - removeLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener - */ - addLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener - */ - removeLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - addLabelChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - removeLabelChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Gets or sets the defaults for rows. - *

    - * The settings that are obtained from the instance influence newly created elements only. Setting different defaults later - * does not influence existing elements. - *

    - *

    - * If no value is set explicitly a default will be created using {@link yfiles.graph.Table#createRowDefaults} upon first read - * access. - *

    - * @type {yfiles.graph.IStripeDefaults} - */ - rowDefaults:yfiles.graph.IStripeDefaults; - /** - * Gets or sets the defaults for Columns. - *

    - * The settings that are obtained from the instance influence newly created elements only. Setting different defaults later - * does not influence existing elements. - *

    - *

    - * If no value is set explicitly a default will be created using {@link yfiles.graph.Table#createColumnDefaults} upon first read - * access. - *

    - * @type {yfiles.graph.IStripeDefaults} - */ - columnDefaults:yfiles.graph.IStripeDefaults; - /** - * - * @type {yfiles.graph.IRow} - */ - rootRow:yfiles.graph.IRow; - /** - * - * @type {yfiles.graph.IColumn} - */ - rootColumn:yfiles.graph.IColumn; - static $class:yfiles.lang.Class; - } /** * This interface defines a child element of a table or a table element container * @interface @@ -59959,9 +59255,9 @@ declare namespace system{ *

    * Since {@link yfiles.graph.IStripe#layout} is relative to the owning node's left corner, you need to provide an node node to calculate the absolute layout. *

    - * @param {yfiles.graph.INode} node The node relative to which the stripe layout is calculated. This should be the same node where {@link yfiles.graph.IStripe#table} for stripe is associated + * @param node The node relative to which the stripe layout is calculated. This should be the same node where {@link #table} for stripe is associated * to. - * @returns {yfiles.geometry.Rect} + * @returns */ getAbsoluteBounds?(node:yfiles.graph.INode):yfiles.geometry.Rect; /** @@ -60018,7 +59314,6 @@ declare namespace system{ table:yfiles.graph.ITable; /** * Checks whether stripe is the root item of a stripe hierarchy. - * @returns true iff stripe is a root stripe. * @see yfiles.graph.IStripe#root * @type {boolean} */ @@ -60028,7 +59323,6 @@ declare namespace system{ *

    * The stripe is the GetIndexth child of its parent. *

    - * @returns the children of stripe * @see yfiles.graph.IColumn#childColumns * @see yfiles.graph.IRow#childRows * @type {number} @@ -60047,7 +59341,6 @@ declare namespace system{ *

    * For {@link yfiles.graph.IColumn} instances, this returns {@link yfiles.graph.IColumn#childColumns}, for {@link yfiles.graph.IRow} instances, this returns {@link yfiles.graph.IRow#childRows} *

    - * @returns the children of stripe * @see yfiles.graph.IColumn#childColumns * @see yfiles.graph.IRow#childRows * @type {yfiles.collections.IEnumerable.} @@ -60058,7 +59351,6 @@ declare namespace system{ *

    * For {@link yfiles.graph.IColumn} instances, this returns {@link yfiles.graph.IColumn#parentColumn}, for {@link yfiles.graph.IRow} instances, this returns {@link yfiles.graph.IRow#parentRow} *

    - * @returns the parent of stripe * @see yfiles.graph.IColumn#parentColumn * @see yfiles.graph.IRow#parentRow * @type {yfiles.graph.IStripe} @@ -60070,7 +59362,6 @@ declare namespace system{ * If the stripe is part of an {@link yfiles.graph.ITable} instance, this returns {@link yfiles.graph.ITable#rootColumn} for {@link yfiles.graph.IColumn} instances and {@link yfiles.graph.IRow#parentRow} for {@link yfiles.graph.ITable#rootRow} * instances. Otherwise null is returned. *

    - * @returns the root of stripe * @see yfiles.graph.ITable#rootColumn * @see yfiles.graph.ITable#rootRow * @see yfiles.graph.IStripe#isRoot @@ -60079,7 +59370,6 @@ declare namespace system{ root?:yfiles.graph.IStripe; /** * Returns a collection of all descendants of stripe that are leaves and therefore don't have any child stripes. - * @returns A collection of all leaf descendants of stripe * @type {yfiles.collections.IEnumerable.} */ leaves?:yfiles.collections.IEnumerable; @@ -60088,7 +59378,6 @@ declare namespace system{ *

    * The descendants are returned in top to bottom order. *

    - * @returns A collection of all descendants of stripe * @type {yfiles.collections.IEnumerable.} */ descendants?:yfiles.collections.IEnumerable; @@ -60098,7 +59387,6 @@ declare namespace system{ * This value is determined by the accumulated insets of all ancestor, sibling and descendant insets. These insets may be * larger than {@link yfiles.graph.IStripe#insets}. *

    - * @returns The actual insets of the stripe. * @type {yfiles.geometry.Insets} */ actualInsets?:yfiles.geometry.Insets; @@ -60108,7 +59396,6 @@ declare namespace system{ * This is always the stripe size which is actually used for the stripe. For leaf stripes, this is the same as * {@link yfiles.graph.IStripe#size}, otherwise, it is the accumulated size of all descendants with taking nested insets into account. *

    - * @returns The actual size of the stripe. * @type {number} */ actualSize?:number; @@ -60159,13 +59446,13 @@ declare namespace system{ export interface ITable extends Object,yfiles.graph.ILookup{ /** * Add a label to the given owner using the text as the initial label text and label model parameter and style. - * @param {yfiles.graph.IStripe} owner the owner to add the label to. - * @param {string} text the initial text of the label - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] The label model parameter instance to use. - * @param {yfiles.styles.ILabelStyle} [style=null] The style to use for the label - * @param {yfiles.geometry.Size} [preferredSize=null] The initial values to use for the {@link yfiles.graph.ILabel#preferredSize}. - * @param {Object} [tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.ILabel} the newly created label + * @param owner the owner to add the label to. + * @param text the initial text of the label + * @param [layoutParameter=null] The label model parameter instance to use. + * @param [style=null] The style to use for the label + * @param [preferredSize=null] The initial values to use for the {@link #preferredSize}. + * @param [tag=null] the initial {@link #tag} to assign. + * @returns the newly created label * @see yfiles.graph.ITable#setLabelText * @see yfiles.graph.ITable#setLabelLayoutParameter * @see yfiles.graph.ITable#setStyle @@ -60175,13 +59462,13 @@ declare namespace system{ /** * Add a label to the given owner using the text as the initial label text and label model parameter and style. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IStripe} options.owner the owner to add the label to. - * @param {string} options.text the initial text of the label - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] The label model parameter instance to use. - * @param {yfiles.styles.ILabelStyle} [options.style=null] The style to use for the label - * @param {yfiles.geometry.Size} [options.preferredSize=null] The initial values to use for the {@link yfiles.graph.ILabel#preferredSize}. - * @param {Object} [options.tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.ILabel} the newly created label + * @param options.owner the owner to add the label to. + * @param options.text the initial text of the label + * @param [options.layoutParameter=null] The label model parameter instance to use. + * @param [options.style=null] The style to use for the label + * @param [options.preferredSize=null] The initial values to use for the {@link #preferredSize}. + * @param [options.tag=null] the initial {@link #tag} to assign. + * @returns the newly created label * @see yfiles.graph.ITable#setLabelText * @see yfiles.graph.ITable#setLabelLayoutParameter * @see yfiles.graph.ITable#setStyle @@ -60194,18 +59481,18 @@ declare namespace system{ * This implementation uses the {@link yfiles.graph.ILabel#style style's} renderer for the label to determine the preferred rendering size. This is useful * after the label's content or style have been changed. *

    - * @param {yfiles.graph.ILabel} label The label to adjust the size for. + * @param label The label to adjust the size for. * @see yfiles.graph.ILabelDefaults#autoAdjustPreferredSize */ adjustLabelPreferredSize?(label:yfiles.graph.ILabel):void; /** * Calculates the preferred size of a label with the given properties. - * @param {yfiles.graph.IStripe} stripe The item that will own the label. - * @param {yfiles.styles.ILabelStyle} style The label style. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The label model parameter. - * @param {string} text The text. - * @param {Object} tag The tag for the label. - * @returns {yfiles.geometry.Size} The size as calculated by the {@link yfiles.styles.ILabelStyleRenderer}. + * @param stripe The item that will own the label. + * @param style The label style. + * @param layoutParameter The label model parameter. + * @param text The text. + * @param tag The tag for the label. + * @returns The size as calculated by the {@link }. */ calculateLabelPreferredSize?(stripe:yfiles.graph.IStripe,style:yfiles.styles.ILabelStyle,layoutParameter:yfiles.graph.ILabelModelParameter,text:string,tag:Object):yfiles.geometry.Size; /** @@ -60217,63 +59504,63 @@ declare namespace system{ clear?():void; /** * Create a new column as the indexth child of owner with the given parameters. - * @param {yfiles.graph.IColumn} owner The owner of the new column. - * @param {number} [index=null] The position in the child list. - * @param {number} [width=null] The actual width of the column. - * @param {number} [minWidth=null] The minimal width of the column. - * @param {yfiles.geometry.Insets} [insets=null] The insets of the column. - * @param {yfiles.styles.IStripeStyle} [style=null] The style of the column. - * @param {Object} [tag=null] The tag of the column - * @returns {yfiles.graph.IColumn} A new column instance + * @param owner The owner of the new column. + * @param [index=null] The position in the child list. + * @param [width=null] The actual width of the column. + * @param [minWidth=null] The minimal width of the column. + * @param [insets=null] The insets of the column. + * @param [style=null] The style of the column. + * @param [tag=null] The tag of the column + * @returns A new column instance * @abstract */ createChildColumn(owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IColumn; /** * Create a new column as the indexth child of owner with the given parameters. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IColumn} options.owner The owner of the new column. - * @param {number} [options.index=null] The position in the child list. - * @param {number} [options.width=null] The actual width of the column. - * @param {number} [options.minWidth=null] The minimal width of the column. - * @param {yfiles.geometry.Insets} [options.insets=null] The insets of the column. - * @param {yfiles.styles.IStripeStyle} [options.style=null] The style of the column. - * @param {Object} [options.tag=null] The tag of the column - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.ITable#addLabel} + * @param options.owner The owner of the new column. + * @param [options.index=null] The position in the child list. + * @param [options.width=null] The actual width of the column. + * @param [options.minWidth=null] The minimal width of the column. + * @param [options.insets=null] The insets of the column. + * @param [options.style=null] The style of the column. + * @param [options.tag=null] The tag of the column + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.childColumns An array of rows to create as children of this row. Each item will be passed to the {@link yfiles.graph.ITable#createChildColumn} + * @param options.childColumns An array of rows to create as children of this row. Each item will be passed to the {@link #createChildColumn} * method. - * @returns {yfiles.graph.IColumn} A new column instance + * @returns A new column instance * @abstract */ createChildColumn(options:{owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number,labels?:Array,childColumns?:Array}):yfiles.graph.IColumn; /** * Create a new row as the indexth child of owner with the given parameters. - * @param {yfiles.graph.IRow} owner The owner of the new row. - * @param {number} [index=null] The position in the child list. - * @param {number} [height=null] The actual height of the row. - * @param {number} [minHeight=null] The minimal height of the row. - * @param {yfiles.geometry.Insets} [insets=null] The insets of the row. - * @param {yfiles.styles.IStripeStyle} [style=null] The style of the row. - * @param {Object} [tag=null] The tag of the row - * @returns {yfiles.graph.IRow} A new row instance + * @param owner The owner of the new row. + * @param [index=null] The position in the child list. + * @param [height=null] The actual height of the row. + * @param [minHeight=null] The minimal height of the row. + * @param [insets=null] The insets of the row. + * @param [style=null] The style of the row. + * @param [tag=null] The tag of the row + * @returns A new row instance * @abstract */ createChildRow(owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IRow; /** * Create a new row as the indexth child of owner with the given parameters. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IRow} options.owner The owner of the new row. - * @param {number} [options.index=null] The position in the child list. - * @param {number} [options.height=null] The actual height of the row. - * @param {number} [options.minHeight=null] The minimal height of the row. - * @param {yfiles.geometry.Insets} [options.insets=null] The insets of the row. - * @param {yfiles.styles.IStripeStyle} [options.style=null] The style of the row. - * @param {Object} [options.tag=null] The tag of the row - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.ITable#addLabel} + * @param options.owner The owner of the new row. + * @param [options.index=null] The position in the child list. + * @param [options.height=null] The actual height of the row. + * @param [options.minHeight=null] The minimal height of the row. + * @param [options.insets=null] The insets of the row. + * @param [options.style=null] The style of the row. + * @param [options.tag=null] The tag of the row + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.childRows An array of rows to create as children of this row. Each item will be passed to the {@link yfiles.graph.ITable#createChildRow} + * @param options.childRows An array of rows to create as children of this row. Each item will be passed to the {@link #createChildRow} * method. - * @returns {yfiles.graph.IRow} A new row instance + * @returns A new row instance * @abstract */ createChildRow(options:{owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number,labels?:Array,childRows?:Array}):yfiles.graph.IRow; @@ -60282,13 +59569,13 @@ declare namespace system{ *

    * The column will be a part of this table after the method returns. This will trigger the corresponding events. *

    - * @param {number} [width=null] The actual width of the column. - * @param {number} [minWidth=null] The minimal width of the column. - * @param {yfiles.geometry.Insets} [insets=null] The insets of the column. - * @param {yfiles.styles.IStripeStyle} [style=null] The style of the column. - * @param {Object} [tag=null] The tag of the column - * @param {number} [index=null] The position in the child list. - * @returns {yfiles.graph.IColumn} A newly created column instance + * @param [width=null] The actual width of the column. + * @param [minWidth=null] The minimal width of the column. + * @param [insets=null] The insets of the column. + * @param [style=null] The style of the column. + * @param [tag=null] The tag of the column + * @param [index=null] The position in the child list. + * @returns A newly created column instance * @see yfiles.graph.ITable#addStripeCreatedListener */ createColumn?(width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IColumn; @@ -60298,13 +59585,13 @@ declare namespace system{ * The column will be a part of this table after the method returns. This will trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {number} [options.width=null] The actual width of the column. - * @param {number} [options.minWidth=null] The minimal width of the column. - * @param {yfiles.geometry.Insets} [options.insets=null] The insets of the column. - * @param {yfiles.styles.IStripeStyle} [options.style=null] The style of the column. - * @param {Object} [options.tag=null] The tag of the column - * @param {number} [options.index=null] The position in the child list. - * @returns {yfiles.graph.IColumn} A newly created column instance + * @param [options.width=null] The actual width of the column. + * @param [options.minWidth=null] The minimal width of the column. + * @param [options.insets=null] The insets of the column. + * @param [options.style=null] The style of the column. + * @param [options.tag=null] The tag of the column + * @param [options.index=null] The position in the child list. + * @returns A newly created column instance * @see yfiles.graph.ITable#addStripeCreatedListener */ createColumn?(options:{width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IColumn; @@ -60313,8 +59600,8 @@ declare namespace system{ *

    * All existing rows and columns are cleared from table *

    - * @param {number} columns The number of columns to test. - * @param {number} rows The number of rows to test. + * @param columns The number of columns to test. + * @param rows The number of rows to test. */ createGrid?(columns:number,rows:number):void; /** @@ -60322,15 +59609,15 @@ declare namespace system{ *

    * This implementation uses the label defaults for the table to {@link yfiles.graph.ILabelDefaults#getLayoutParameterInstance obtain the parameter instance}. *

    - * @param {yfiles.graph.IStripe} stripe The item that is the {@link yfiles.graph.ILabel#owner} of the label in question. - * @returns {yfiles.graph.ILabelModelParameter} The default label model parameter to use for newly created labels at the item. + * @param stripe The item that is the {@link #owner} of the label in question. + * @returns The default label model parameter to use for newly created labels at the item. * @see yfiles.graph.ILabelDefaults#getLayoutParameterInstance */ createLabelLayoutParameter?(stripe:yfiles.graph.IStripe):yfiles.graph.ILabelModelParameter; /** * Convenience method that delegates to the {@link yfiles.graph.ILabelDefaults#getStyleInstance} method for the given {@link yfiles.graph.IStripe stripe}. - * @param {yfiles.graph.IStripe} stripe The item the newly created label will belong to. - * @returns {yfiles.styles.ILabelStyle} The style instance to use for newly created stripes. + * @param stripe The item the newly created label will belong to. + * @returns The style instance to use for newly created stripes. */ createLabelStyle?(stripe:yfiles.graph.IStripe):yfiles.styles.ILabelStyle; /** @@ -60338,13 +59625,13 @@ declare namespace system{ *

    * The row will be a part of this table after the method returns. This will trigger the corresponding events. *

    - * @param {number} [height=null] The actual height of the row. - * @param {number} [minHeight=null] The minimal height of the row. - * @param {yfiles.geometry.Insets} [insets=null] The insets of the row. - * @param {yfiles.styles.IStripeStyle} [style=null] The style of the row. - * @param {Object} [tag=null] The tag of the row - * @param {number} [index=null] The position in the child list. - * @returns {yfiles.graph.IRow} A newly created row instance + * @param [height=null] The actual height of the row. + * @param [minHeight=null] The minimal height of the row. + * @param [insets=null] The insets of the row. + * @param [style=null] The style of the row. + * @param [tag=null] The tag of the row + * @param [index=null] The position in the child list. + * @returns A newly created row instance * @see yfiles.graph.ITable#addStripeCreatedListener */ createRow?(height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IRow; @@ -60354,13 +59641,13 @@ declare namespace system{ * The row will be a part of this table after the method returns. This will trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {number} [options.height=null] The actual height of the row. - * @param {number} [options.minHeight=null] The minimal height of the row. - * @param {yfiles.geometry.Insets} [options.insets=null] The insets of the row. - * @param {yfiles.styles.IStripeStyle} [options.style=null] The style of the row. - * @param {Object} [options.tag=null] The tag of the row - * @param {number} [options.index=null] The position in the child list. - * @returns {yfiles.graph.IRow} A newly created row instance + * @param [options.height=null] The actual height of the row. + * @param [options.minHeight=null] The minimal height of the row. + * @param [options.insets=null] The insets of the row. + * @param [options.style=null] The style of the row. + * @param [options.tag=null] The tag of the row + * @param [options.index=null] The position in the child list. + * @returns A newly created row instance * @see yfiles.graph.ITable#addStripeCreatedListener */ createRow?(options:{height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IRow; @@ -60369,10 +59656,10 @@ declare namespace system{ *

    * The column are tested in bottom up order. *

    - * @param {yfiles.graph.INode} node The node this table is currently bound to - * @param {yfiles.geometry.Point} location The location to test. - * @param {function(yfiles.graph.IStripe): boolean} filter Additional predicate to further restrict the results. - * @returns {yfiles.graph.IColumn} The topmost column that has been found for the location or null. + * @param node The node this table is currently bound to + * @param location The location to test. + * @param filter Additional predicate to further restrict the results. + * @returns The topmost column that has been found for the location or null. */ findColumn?(node:yfiles.graph.INode,location:yfiles.geometry.Point,filter:(obj:yfiles.graph.IStripe)=>boolean):yfiles.graph.IColumn; /** @@ -60380,10 +59667,10 @@ declare namespace system{ *

    * The rows are tested in bottom up order. *

    - * @param {yfiles.graph.INode} node The node this table is currently bound to - * @param {yfiles.geometry.Point} location The location to test. - * @param {function(yfiles.graph.IStripe): boolean} filter Additional predicate to further restrict the results. - * @returns {yfiles.graph.IRow} The topmost row that has been found for the location or null. + * @param node The node this table is currently bound to + * @param location The location to test. + * @param filter Additional predicate to further restrict the results. + * @returns The topmost row that has been found for the location or null. */ findRow?(node:yfiles.graph.INode,location:yfiles.geometry.Point,filter:(obj:yfiles.graph.IStripe)=>boolean):yfiles.graph.IRow; /** @@ -60391,26 +59678,26 @@ declare namespace system{ *

    * The stripes are always returned in bottom up, rows first order. Note that this method does not take any {@link yfiles.view.ICanvasContext#hitTestRadius} into account. *

    - * @param {yfiles.graph.INode} node The node this table is currently bound to - * @param {yfiles.geometry.Point} location The location to test. - * @param {yfiles.graph.StripeTypes} stripeTypes An enumeration value of {@link yfiles.graph.StripeTypes} to specify the stripe type. - * @param {function(yfiles.graph.IStripe): boolean} filter Additional predicate to further restrict the hit test results. - * @returns {yfiles.collections.IEnumerable.} The stripes that have been found for the location or null. + * @param node The node this table is currently bound to + * @param location The location to test. + * @param stripeTypes An enumeration value of {@link } to specify the stripe type. + * @param filter Additional predicate to further restrict the hit test results. + * @returns The stripes that have been found for the location or null. */ findStripes?(node:yfiles.graph.INode,location:yfiles.geometry.Point,stripeTypes:yfiles.graph.StripeTypes,filter:(obj:yfiles.graph.IStripe)=>boolean):yfiles.collections.IEnumerable; /** * Return the accumulated insets for the table. - * @returns {yfiles.geometry.Insets} + * @returns */ getAccumulatedInsets?():yfiles.geometry.Insets; /** * Calculates the relative bounds of a table cell that is determined by column and row *

    - * Both column and row must live in the provided table instance. Otherwise, an {@link Stubs.Exceptions.ArgumentError} is thrown. + * Both column and row must live in the provided table instance. Otherwise, an {@link yfiles.lang.Exception} is thrown. *

    - * @param {yfiles.graph.IColumn} column The column that determines the cell - * @param {yfiles.graph.IRow} row The row that determines the cell - * @returns {yfiles.geometry.Rect} The relative bounds of a the cell determined by column and row + * @param column The column that determines the cell + * @param row The row that determines the cell + * @returns The relative bounds of a the cell determined by column and row * @throws {Stubs.Exceptions.ArgumentError} If column and row are part of a different table instance. */ getCellBounds?(column:yfiles.graph.IColumn,row:yfiles.graph.IRow):yfiles.geometry.Rect; @@ -60419,7 +59706,7 @@ declare namespace system{ *

    * This method reparents all children of stripe to the parent of the stripe. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to remove + * @param stripe The stripe to remove * @abstract */ remove(stripe:yfiles.graph.IStripe):void; @@ -60428,7 +59715,7 @@ declare namespace system{ *

    * This will trigger the corresponding event. *

    - * @param {yfiles.graph.ILabel} label the label to remove + * @param label the label to remove * @abstract */ remove(label:yfiles.graph.ILabel):void; @@ -60437,40 +59724,40 @@ declare namespace system{ *

    * This method does not resize any stripes, use {@link yfiles.graph.ITable#removeRecursivelyWithResize} instead. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to remove + * @param stripe The stripe to remove */ removeRecursively?(stripe:yfiles.graph.IStripe):void; /** * {@link yfiles.graph.ITable#removeWithResize Removes} the given stripe and all of its descendants from table and resizes all affected stripes so that the table size * does not change if possible. - * @param {yfiles.graph.IStripe} stripe The stripe to remove + * @param stripe The stripe to remove */ removeRecursivelyWithResize?(stripe:yfiles.graph.IStripe):void; /** * {@link yfiles.graph.ITable#remove Removes} stripe from table and resizes all affected stripes so that the table size does not change if possible. - * @param {yfiles.graph.IStripe} stripe The stripe to remove + * @param stripe The stripe to remove */ removeWithResize?(stripe:yfiles.graph.IStripe):void; /** * Sets the label model parameter for the given label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The new parameter. + * @param label The label. + * @param layoutParameter The new parameter. * @throws {Stubs.Exceptions.ArgumentError} If the parameter cannot be used for this label. * @abstract */ setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; /** * Sets the preferred size of the label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.geometry.Size} preferredSize The new preferred size. + * @param label The label. + * @param preferredSize The new preferred size. * @see yfiles.graph.ILabel#preferredSize * @abstract */ setLabelPreferredSize(label:yfiles.graph.ILabel,preferredSize:yfiles.geometry.Size):void; /** * Sets the label text of the given label. - * @param {yfiles.graph.ILabel} label the label to modify - * @param {string} text the new text of the label + * @param label the label to modify + * @param text the new text of the label * @see yfiles.graph.ILabel#text * @abstract */ @@ -60480,8 +59767,8 @@ declare namespace system{ *

    * This method sets the {@link yfiles.graph.IStripe#minimumSize} of stripe. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to change - * @param {number} minimumSize The new minimum size of the stripe + * @param stripe The stripe to change + * @param minimumSize The new minimum size of the stripe * @abstract */ setMinimumSize(stripe:yfiles.graph.IStripe,minimumSize:number):void; @@ -60490,9 +59777,9 @@ declare namespace system{ *

    * The column will be inserted at position index in the child list of the new parent. *

    - * @param {yfiles.graph.IColumn} owner - * @param {yfiles.graph.IColumn} column - * @param {number} [index=null] + * @param owner + * @param column + * @param [index=null] * @abstract */ setParent(owner:yfiles.graph.IColumn,column:yfiles.graph.IColumn,index?:number):void; @@ -60501,9 +59788,9 @@ declare namespace system{ *

    * The row will be inserted at position index in the child list of the new parent. *

    - * @param {yfiles.graph.IRow} owner - * @param {yfiles.graph.IRow} row - * @param {number} [index=null] + * @param owner + * @param row + * @param [index=null] * @abstract */ setParent(owner:yfiles.graph.IRow,row:yfiles.graph.IRow,index?:number):void; @@ -60512,22 +59799,22 @@ declare namespace system{ *

    * This method sets the {@link yfiles.graph.IStripe#size} of stripe. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to change - * @param {number} size The new size of the stripe + * @param stripe The stripe to change + * @param size The new size of the stripe * @abstract */ setSize(stripe:yfiles.graph.IStripe,size:number):void; /** * Sets the insets of stripe. - * @param {yfiles.graph.IStripe} stripe The stripe to change - * @param {yfiles.geometry.Insets} insets The new insets of the stripe + * @param stripe The stripe to change + * @param insets The new insets of the stripe * @abstract */ setStripeInsets(stripe:yfiles.graph.IStripe,insets:yfiles.geometry.Insets):void; /** * Sets the style of stripe. - * @param {yfiles.graph.IStripe} stripe The stripe to change - * @param {yfiles.styles.IStripeStyle} style The new style of the stripe + * @param stripe The stripe to change + * @param style The new style of the stripe * @abstract */ setStyle(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):void; @@ -60536,8 +59823,8 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.ILabel} label The label that will be assigned the new style - * @param {yfiles.styles.ILabelStyle} style The style instance that will be assigned to the label. + * @param label The label that will be assigned the new style + * @param style The style instance that will be assigned to the label. * @see yfiles.graph.ILabel#style * @abstract */ @@ -60618,7 +59905,7 @@ declare namespace system{ rootColumn:yfiles.graph.IColumn; /** * Adds the given listener for the LabelAdded event that occurs when a label has been added to this graph instance. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#addLabel * @see yfiles.graph.ITable#removeLabelAddedListener * @abstract @@ -60626,7 +59913,7 @@ declare namespace system{ addLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the LabelAdded event that occurs when a label has been added to this graph instance. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#addLabel * @see yfiles.graph.ITable#addLabelAddedListener * @abstract @@ -60641,7 +59928,7 @@ declare namespace system{ * Implementations may choose to use the {@link yfiles.graph.LabelEventArgs} to carry additional label owner information. The {@link yfiles.graph.LabelEventArgs#owner} * property will be set to the the owner of the label that owned it before the removal. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#remove * @see yfiles.graph.ITable#removeLabelRemovedListener * @abstract @@ -60657,7 +59944,7 @@ declare namespace system{ * Implementations may choose to use the {@link yfiles.graph.LabelEventArgs} to carry additional label owner information. The {@link yfiles.graph.LabelEventArgs#owner} * property will be set to the the owner of the label that owned it before the removal. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#remove * @see yfiles.graph.ITable#addLabelRemovedListener * @abstract @@ -60666,7 +59953,7 @@ declare namespace system{ /** * Adds the given listener for the LabelChanged event that occurs when a label has been changed, for instance, if its style * has been replaced. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#setStyle * @see yfiles.graph.ITable#removeLabelChangedListener * @abstract @@ -60675,7 +59962,7 @@ declare namespace system{ /** * Removes the given listener for the LabelChanged event that occurs when a label has been changed, for instance, if its * style has been replaced. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#setStyle * @see yfiles.graph.ITable#addLabelChangedListener * @abstract @@ -60683,7 +59970,7 @@ declare namespace system{ removeLabelChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Adds the given listener for the StripeCreated event that occurs when a stripe has been added. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#createChildRow * @see yfiles.graph.ITable#createChildColumn * @see yfiles.graph.ITable#removeStripeCreatedListener @@ -60692,7 +59979,7 @@ declare namespace system{ addStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the StripeCreated event that occurs when a stripe has been added. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#createChildRow * @see yfiles.graph.ITable#createChildColumn * @see yfiles.graph.ITable#addStripeCreatedListener @@ -60701,7 +59988,7 @@ declare namespace system{ removeStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Adds the given listener for the StripeRemoved event that occurs when a stripe has been removed from its parent. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#remove * @see yfiles.graph.ITable#removeStripeRemovedListener * @abstract @@ -60709,7 +59996,7 @@ declare namespace system{ addStripeRemovedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; /** * Removes the given listener for the StripeRemoved event that occurs when a stripe has been removed from its parent. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#remove * @see yfiles.graph.ITable#addStripeRemovedListener * @abstract @@ -60718,7 +60005,7 @@ declare namespace system{ /** * Adds the given listener for the StripeChanged event that occurs when a stripe has been changed, for instance, if its * style has been replaced. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#setStyle * @see yfiles.graph.ITable#setStripeInsets * @see yfiles.graph.ITable#setSize @@ -60730,7 +60017,7 @@ declare namespace system{ /** * Removes the given listener for the StripeChanged event that occurs when a stripe has been changed, for instance, if its * style has been replaced. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#setStyle * @see yfiles.graph.ITable#setStripeInsets * @see yfiles.graph.ITable#setSize @@ -60743,23 +60030,23 @@ declare namespace system{ var ITable:{ /** * Convenience method to find a stripe underneath a certain point. - * @param {yfiles.geometry.Point} location The location to test. - * @param {yfiles.graph.StripeTypes} stripeTypes An enumeration value of {@link yfiles.graph.StripeTypes} to specify the stripe type. - * @param {yfiles.input.StripeSubregionTypes} subregionTypes An enumeration value of {@link yfiles.input.StripeSubregionTypes} to further restrict the stripe region. - * @param {yfiles.view.CanvasComponent} canvas The canvas that provides necessary context for hit determination, such as {@link yfiles.view.ICanvasContext#hitTestRadius}. - * @param {function(yfiles.input.StripeSubregion): boolean} filter Additional predicate to further restrict the hit test results. - * @returns {yfiles.input.StripeSubregion} The stripe subregions that have been found for the location or null. + * @param location The location to test. + * @param stripeTypes An enumeration value of {@link } to specify the stripe type. + * @param subregionTypes An enumeration value of {@link } to further restrict the stripe region. + * @param canvas The canvas that provides necessary context for hit determination, such as {@link #hitTestRadius}. + * @param filter Additional predicate to further restrict the hit test results. + * @returns The stripe subregions that have been found for the location or null. * @static */ findStripe?(location:yfiles.geometry.Point,stripeTypes:yfiles.graph.StripeTypes,subregionTypes:yfiles.input.StripeSubregionTypes,canvas:yfiles.view.CanvasComponent,filter:(obj:yfiles.input.StripeSubregion)=>boolean):yfiles.input.StripeSubregion; /** * Used as a callback to find the items underneath a certain point. - * @param {yfiles.geometry.Point} location The location to test. - * @param {yfiles.graph.StripeTypes} stripeTypes An enumeration value of {@link yfiles.graph.StripeTypes} to specify the stripe type. - * @param {yfiles.input.StripeSubregionTypes} subregionTypes An enumeration value of {@link yfiles.input.StripeSubregionTypes} to further restrict the stripe region. - * @param {yfiles.view.CanvasComponent} canvas The canvas that provides necessary context for hit determination, such as {@link yfiles.view.ICanvasContext#hitTestRadius}. - * @param {function(yfiles.input.StripeSubregion): boolean} filter Additional predicate to further restrict the hit test results. - * @returns {yfiles.collections.IEnumerable.} The stripe subregions that have been found for the location. + * @param location The location to test. + * @param stripeTypes An enumeration value of {@link } to specify the stripe type. + * @param subregionTypes An enumeration value of {@link } to further restrict the stripe region. + * @param canvas The canvas that provides necessary context for hit determination, such as {@link #hitTestRadius}. + * @param filter Additional predicate to further restrict the hit test results. + * @returns The stripe subregions that have been found for the location. * @static */ findStripes?(location:yfiles.geometry.Point,stripeTypes:yfiles.graph.StripeTypes,subregionTypes:yfiles.input.StripeSubregionTypes,canvas:yfiles.view.CanvasComponent,filter:(obj:yfiles.input.StripeSubregion)=>boolean):yfiles.collections.IEnumerable; @@ -60767,12 +60054,12 @@ declare namespace system{ * Calculates the absolute bounds of a table cell that is determined by column and row *

    * Both column and row must live in the same {@link yfiles.graph.ITable} instance that is also present in the tableNodes - * {@link yfiles.graph.ILookup}. Otherwise, an {@link Stubs.Exceptions.ArgumentError} is thrown. + * {@link yfiles.graph.ILookup}. Otherwise, an {@link yfiles.lang.Exception} is thrown. *

    - * @param {yfiles.graph.INode} tableNode The node where a table is bound to via the node's lookup - * @param {yfiles.graph.IColumn} column The column that determines the cell - * @param {yfiles.graph.IRow} row The row that determines the cell - * @returns {yfiles.geometry.Rect} The absolute bounds of a the cell determined by column and row + * @param tableNode The node where a table is bound to via the node's lookup + * @param column The column that determines the cell + * @param row The row that determines the cell + * @returns The absolute bounds of a the cell determined by column and row * @throws {Stubs.Exceptions.ArgumentError} If no table is present in the {@link yfiles.graph.ILookup} of tableNode, or if column and row are part of a different table * instance. * @static @@ -60782,7 +60069,7 @@ declare namespace system{ * Places node in the center of the table cell determined by column and row. *

    * Both column and row must live in the same {@link yfiles.graph.ITable} instance that is also present in the tableNodes - * {@link yfiles.graph.ILookup}. Otherwise, an {@link Stubs.Exceptions.ArgumentError} is thrown. The cell bounds are determined by + * {@link yfiles.graph.ILookup}. Otherwise, an {@link yfiles.lang.Exception} is thrown. The cell bounds are determined by * {@link yfiles.graph.ITable#getCellBounds}. *

    *

    @@ -60798,13 +60085,13 @@ declare namespace system{ * This method does not change the size of the target stripes if they would be too small to contain the whole node layout. * Callers must increase the stripe size before or after calling this method, if necessary. *

    - * @param {yfiles.graph.IGraph} graph The graph instance where the move should be performed - * @param {yfiles.graph.INode} node The node that should be moved into the given cell. - * @param {yfiles.graph.INode} tableNode The node where a table is bound to via the node's lookup - * @param {yfiles.graph.IColumn} column The column that determines the cell - * @param {yfiles.graph.IRow} row The row that determines the cell - * @param {boolean} [reparent=true] Whether node should also be made part of tableNode's grouping hierarchy if it is not yet contained in it. - * @param {boolean} [alwaysMove=false] Whether node should be moved even if it is already placed in the cell. + * @param graph The graph instance where the move should be performed + * @param node The node that should be moved into the given cell. + * @param tableNode The node where a table is bound to via the node's lookup + * @param column The column that determines the cell + * @param row The row that determines the cell + * @param [reparent=true] Whether node should also be made part of tableNode's grouping hierarchy if it is not yet contained in it. + * @param [alwaysMove=false] Whether node should be moved even if it is already placed in the cell. * @throws {Stubs.Exceptions.ArgumentError} If no table is present in the {@link yfiles.graph.ILookup} of tableNode, or if column and row are part of a different table * instance. * @static @@ -60814,7 +60101,7 @@ declare namespace system{ * Places node in the center of the table cell determined by column and row. *

    * Both column and row must live in the same {@link yfiles.graph.ITable} instance that is also present in the tableNodes - * {@link yfiles.graph.ILookup}. Otherwise, an {@link Stubs.Exceptions.ArgumentError} is thrown. The cell bounds are determined by + * {@link yfiles.graph.ILookup}. Otherwise, an {@link yfiles.lang.Exception} is thrown. The cell bounds are determined by * {@link yfiles.graph.ITable#getCellBounds}. *

    *

    @@ -60831,13 +60118,13 @@ declare namespace system{ * Callers must increase the stripe size before or after calling this method, if necessary. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IGraph} options.graph The graph instance where the move should be performed - * @param {yfiles.graph.INode} options.node The node that should be moved into the given cell. - * @param {yfiles.graph.INode} options.tableNode The node where a table is bound to via the node's lookup - * @param {yfiles.graph.IColumn} options.column The column that determines the cell - * @param {yfiles.graph.IRow} options.row The row that determines the cell - * @param {boolean} [options.reparent=true] Whether node should also be made part of tableNode's grouping hierarchy if it is not yet contained in it. - * @param {boolean} [options.alwaysMove=false] Whether node should be moved even if it is already placed in the cell. + * @param options.graph The graph instance where the move should be performed + * @param options.node The node that should be moved into the given cell. + * @param options.tableNode The node where a table is bound to via the node's lookup + * @param options.column The column that determines the cell + * @param options.row The row that determines the cell + * @param [options.reparent=true] Whether node should also be made part of tableNode's grouping hierarchy if it is not yet contained in it. + * @param [options.alwaysMove=false] Whether node should be moved even if it is already placed in the cell. * @throws {Stubs.Exceptions.ArgumentError} If no table is present in the {@link yfiles.graph.ILookup} of tableNode, or if column and row are part of a different table * instance. * @static @@ -60914,6 +60201,153 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; + export enum StretchStripeLabelModelPosition{ + /** + * Encodes a position at the top side of the node interior + */ + NORTH, + /** + * Encodes a position at the right side of the node interior + */ + EAST, + /** + * Encodes a position at the bottom side of the node interior + */ + SOUTH, + /** + * Encodes a position at the left side of the node interior + */ + WEST + } + /** + * A label model for labels that is especially tailored to be used as a model for the four default positions where the + * label of a stripe may lie. + *

    + * This label model supports four positions inside of the stripe bounds. The east and west positions are rotated + * automatically. The {@link yfiles.graph.ILabel#owner} is expected to be an {@link yfiles.graph.IStripe} instance, i.e. the parameter supports only {@link yfiles.graph.IStripe} + * instances. + *

    + * @class + * @implements {yfiles.graph.ILabelModel} + * @implements {yfiles.graph.ILabelModelParameterProvider} + */ + export interface StretchStripeLabelModel extends Object,yfiles.graph.ILabelModel,yfiles.graph.ILabelModelParameterProvider{} + export class StretchStripeLabelModel { + /** + * Creates a new instance of this model with empty insets. + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.geometry.Insets} options.insets The insets to use within the stripe's {@link yfiles.graph.IStripe#layout}. + *

    + * This option sets the {@link yfiles.graph.StretchStripeLabelModel#insets} property on the created object. + *

    + * @param {boolean} options.useActualInsets Whether or not to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the stripe header area. + *

    + * This option sets the {@link yfiles.graph.StretchStripeLabelModel#useActualInsets} property on the created object. + *

    + */ + constructor(options?:{insets?:yfiles.geometry.Insets,useActualInsets?:boolean}); + /** + * + * @returns + */ + createDefaultParameter():yfiles.graph.ILabelModelParameter; + /** + * Creates the parameter for the given position. + * @param position The position. + * @returns + */ + createParameter(position:yfiles.graph.StretchStripeLabelModelPosition):yfiles.graph.ILabelModelParameter; + /** + * + * @param label + * @param layoutParameter + * @returns + */ + getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; + /** + * Calculates the geometry in form of an {@link yfiles.geometry.IOrientedRectangle} for a given label using the given model + * parameter. + *

    + * The geometry is calculated in table coordinates, i.e. relative to {@link yfiles.graph.ITable#relativeLocation}. + *

    + * @param label the label to calculate the geometry for + * @param layoutParameter A parameter that has been created by this model. This is typically the parameter that yielded this instance through its + * {@link #model} property. + * @returns An instance that describes the geometry. This is typically an instance designed as a flyweight, so clients should not + * cache the instance but store the values if they need a snapshot for later use + */ + getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; + /** + * + * @param label + * @param model + * @returns + */ + getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; + /** + * + * @param type + * @returns + */ + lookup(type:yfiles.lang.Class):Object; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static NORTH:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static SOUTH:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static EAST:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static WEST:yfiles.graph.ILabelModelParameter; + /** + * Gets or sets the insets to use within the stripe's {@link yfiles.graph.IStripe#layout}. + * @default '0' + * @type {yfiles.geometry.Insets} + */ + insets:yfiles.geometry.Insets; + /** + * Gets or sets whether or not to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the + * stripe header area. + *

    + * If true the header insets are used. Default is false + *

    + * @default false + * @type {boolean} + */ + useActualInsets:boolean; + static $class:yfiles.lang.Class; + } /** * A specialized subclass of the {@link yfiles.collections.ItemEventArgs.} class that is bound to the {@link yfiles.graph.IStripe} type and carries additional {@link yfiles.graph.IStripe owner} * information. @@ -60921,7 +60355,7 @@ declare namespace system{ * Since for some events ({@link yfiles.graph.ITable#addStripeRemovedListener StripeRemoved}) it is unclear what {@link yfiles.graph.IStripe#parentStripe parent} the * stripe was owned by before the event, this event can be used to carry exactly that information. *

    - * @class yfiles.graph.StripeEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -60929,10 +60363,9 @@ declare namespace system{ export class StripeEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.StripeEventArgs} class. - * @param {yfiles.graph.IStripe} stripe The stripe to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.IStripe} parentStripe The previous parent of the stripe. - * @param {yfiles.graph.ITable} table The table the stripe belonged to previously. - * @constructor + * @param stripe The stripe to assign to the {@link #item} property. + * @param parentStripe The previous parent of the stripe. + * @param table The table the stripe belonged to previously. */ constructor(stripe:yfiles.graph.IStripe,parentStripe:yfiles.graph.IStripe,table:yfiles.graph.ITable); /** @@ -60947,6 +60380,651 @@ declare namespace system{ table:yfiles.graph.ITable; static $class:yfiles.lang.Class; } + export enum StripeLabelModelPosition{ + /** + * Encodes a position at the top side of the node interior + */ + NORTH, + /** + * Encodes a position at the right side of the node interior + */ + EAST, + /** + * Encodes a position at the bottom side of the node interior + */ + SOUTH, + /** + * Encodes a position at the left side of the node interior + */ + WEST + } + /** + * A label model for labels that is especially tailored to be used as a model for the four default positions where the + * label of a stripe may lie. + *

    + * This label model supports four positions inside of the stripe bounds. The east and west positions are rotated + * automatically. The {@link yfiles.graph.ILabel#owner} is expected to be an {@link yfiles.graph.IStripe} instance, i.e. the parameter supports only {@link yfiles.graph.IStripe} + * instances. + *

    + * @class + * @implements {yfiles.graph.ILabelModel} + * @implements {yfiles.graph.ILabelModelParameterProvider} + */ + export interface StripeLabelModel extends Object,yfiles.graph.ILabelModel,yfiles.graph.ILabelModelParameterProvider{} + export class StripeLabelModel { + /** + * Creates a new instance of this model with empty insets. + * @param {Object} [options=null] The parameters to pass. + * @param {number} options.ratio The ratio how far the label should be positioned from the border in the header area. + *

    + * This option sets the {@link yfiles.graph.StripeLabelModel#ratio} property on the created object. + *

    + * @param {boolean} options.useActualInsets A value indicating whether to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the stripe header area. + *

    + * This option sets the {@link yfiles.graph.StripeLabelModel#useActualInsets} property on the created object. + *

    + */ + constructor(options?:{ratio?:number,useActualInsets?:boolean}); + /** + * + * @returns + */ + createDefaultParameter():yfiles.graph.ILabelModelParameter; + /** + * Creates the parameter for the given position. + * @param position The position. + * @returns + */ + createParameter(position:yfiles.graph.StripeLabelModelPosition):yfiles.graph.ILabelModelParameter; + /** + * + * @param label + * @param layoutParameter + * @returns + */ + getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; + /** + * Calculates the geometry in form of an {@link yfiles.geometry.IOrientedRectangle} for a given label using the given model + * parameter. + *

    + * The geometry is calculated in table coordinates, i.e. relative to {@link yfiles.graph.ITable#relativeLocation}. + *

    + * @param label the label to calculate the geometry for + * @param layoutParameter A parameter that has been created by this model. This is typically the parameter that yielded this instance through its + * {@link #model} property. + * @returns An instance that describes the geometry. This is typically an instance designed as a flyweight, so clients should not + * cache the instance but store the values if they need a snapshot for later use + */ + getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; + /** + * + * @param label + * @param model + * @returns + */ + getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; + /** + * + * @param type + * @returns + */ + lookup(type:yfiles.lang.Class):Object; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static NORTH:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static SOUTH:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static EAST:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static WEST:yfiles.graph.ILabelModelParameter; + /** + * Gets or sets a value indicating whether to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label + * inside the stripe header area. + *

    + * If true the header insets are used. Default is false + *

    + * @default false + * @type {boolean} + */ + useActualInsets:boolean; + /** + * Gets or sets the ratio how far the label should be positioned from the border in the header area. + *

    + * 0 means the label is positioned on the outer border, 1 means it is positioned at the inner border of the header or inset + * area. Default value is 0.5 + *

    + * @default 0.5 + * @type {number} + */ + ratio:number; + static $class:yfiles.lang.Class; + } + /** + * Default implementation of the {@link yfiles.graph.ITable} interface. + * @class + * @implements {yfiles.graph.ITable} + * @implements {yfiles.lang.ICloneable} + */ + export interface Table extends Object,yfiles.graph.ITable,yfiles.lang.ICloneable{} + export class Table { + /** + * Default constructor that creates an empty table + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.geometry.Insets} [options.insets=null] Sets the insets property. + * @param {yfiles.geometry.Point} [options.relativeLocation=null] Sets the relativeLocation property. + * @param {yfiles.graph.IStripeDefaults} options.rowDefaults The defaults for rows. + *

    + * This option sets the {@link yfiles.graph.Table#rowDefaults} property on the created object. + *

    + * @param {yfiles.graph.IStripeDefaults} options.columnDefaults The defaults for Columns. + *

    + * This option sets the {@link yfiles.graph.Table#columnDefaults} property on the created object. + *

    + */ + constructor(options?:{insets?:yfiles.geometry.Insets,relativeLocation?:yfiles.geometry.Point,rowDefaults?:yfiles.graph.IStripeDefaults,columnDefaults?:yfiles.graph.IStripeDefaults}); + /** + * + * @param owner + * @param text + * @param [layoutParameter=null] + * @param [style=null] + * @param [preferredSize=null] + * @param [tag=null] + * @returns + */ + addLabel(owner:yfiles.graph.IStripe,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object):yfiles.graph.ILabel; + /** + * + * @param {Object} options The parameters to pass. + * @param options.owner + * @param options.text + * @param [options.layoutParameter=null] + * @param [options.style=null] + * @param [options.preferredSize=null] + * @param [options.tag=null] + * @returns + */ + addLabel(options:{owner:yfiles.graph.IStripe,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object}):yfiles.graph.ILabel; + /** + * + * @returns + */ + clone():Object; + /** + * Called during {@link yfiles.graph.Table#clone} to create a copy of column + *

    + * If column implements the {@link yfiles.lang.ICloneable} interface, the column instance is + * {@link yfiles.lang.ICloneable#clone}d, otherwise, the original instance is returned unchanged. + *

    + * @param column The column that should be copied during a clone operation. + * @returns A clone of column if possible, otherwise the original reference to column + * @protected + */ + copyColumn(column:yfiles.graph.IColumn):yfiles.graph.IColumn; + /** + * Called during {@link yfiles.graph.Table#clone} to create a copy of originalDefaults + *

    + * This implementation returns an unchanged reference to originalDefaults. If you need to create a deep clone of + * originalDefaults, you'll have to perform the cloning yourself. + *

    + * @param originalDefaults The default settings that should be copied during a clone operation. + * @returns The original reference to originalDefaults + * @protected + */ + copyDefaults(originalDefaults:yfiles.graph.IStripeDefaults):yfiles.graph.IStripeDefaults; + /** + * Called during {@link yfiles.graph.Table#clone} to create a copy of row + *

    + * If row implements the {@link yfiles.lang.ICloneable} interface, the row instance is + * {@link yfiles.lang.ICloneable#clone}d, otherwise, the original instance is returned unchanged. + *

    + * @param row The row that should be copied during a clone operation. + * @returns A clone of row if possible, otherwise the original reference to row + * @protected + */ + copyRow(row:yfiles.graph.IRow):yfiles.graph.IRow; + /** + * + * @param owner + * @param [width=null] + * @param [minWidth=null] + * @param [insets=null] + * @param [style=null] + * @param [tag=null] + * @param [index=null] + * @returns + */ + createChildColumn(owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IColumn; + /** + * + * @param {Object} options The parameters to pass. + * @param options.owner + * @param [options.width=null] + * @param [options.minWidth=null] + * @param [options.insets=null] + * @param [options.style=null] + * @param [options.tag=null] + * @param [options.index=null] + * @returns + */ + createChildColumn(options:{owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IColumn; + /** + * + * @param owner + * @param [height=null] + * @param [minHeight=null] + * @param [insets=null] + * @param [style=null] + * @param [tag=null] + * @param [index=null] + * @returns + */ + createChildRow(owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IRow; + /** + * + * @param {Object} options The parameters to pass. + * @param options.owner + * @param [options.height=null] + * @param [options.minHeight=null] + * @param [options.insets=null] + * @param [options.style=null] + * @param [options.tag=null] + * @param [options.index=null] + * @returns + */ + createChildRow(options:{owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IRow; + /** + * Callback method that creates the Column defaults. + * @returns A new instance of the {@link } class which is used for newly created columns. + * @protected + */ + createColumnDefaults():yfiles.graph.IStripeDefaults; + /** + * Callback method that creates the row defaults. + * @returns A new instance of the {@link } class that is used for newly created rows. + * @protected + */ + createRowDefaults():yfiles.graph.IStripeDefaults; + /** + * Installs the undo support for use with all tables that are bound to nodes in graph. + *

    + * This method queries the graph for its undo support dynamically whenever undo support is queried in the table. In + * contrast to {@link yfiles.graph.Table#installStaticUndoSupport} the undo support installed with this method will thus always be + * the one which is the currently available support for the graph. + *

    + * @param graph The graph where the nodes exist or will be created/changed and where the undo support should come from. + * @see yfiles.graph.Table#uninstallDynamicUndoSupport + * @see yfiles.graph.Table#installStaticUndoSupport + * @static + */ + static installDynamicUndoSupport(graph:yfiles.graph.IGraph):void; + /** + * Installs the undo support for use with all tables that are bound to nodes in graph. + *

    + * This methods installs the undo support which manages the graph at the time this method is called. In contrast to {@link yfiles.graph.Table#installDynamicUndoSupport} + * the installed undo support will not change when the graph's undo support changes. + *

    + *

    + * This method adds undo support both for existing nodes in graph as well as for newly created or changed nodes. + *

    + * @param graph The graph where the nodes exist or will be created/changed. + * @see yfiles.graph.Table#uninstallStaticUndoSupport + * @see yfiles.graph.Table#installDynamicUndoSupport + * @static + */ + static installStaticUndoSupport(graph:yfiles.graph.IGraph):void; + /** + * + * @param type + * @returns + */ + lookup(type:yfiles.lang.Class):Object; + /** + * Called after a label has been added to a stripe. + *

    + * This method raises the {@link yfiles.graph.Table#addLabelAddedListener LabelAdded} event. + *

    + * @param label The label that has just been added. + * @protected + */ + onLabelAdded(label:yfiles.graph.ILabel):void; + /** + * Callback that is invoked after a label has changed. + *

    + * This method raises the {@link yfiles.graph.Table#addLabelChangedListener LabelChanged} event. + *

    + * @param label The label that has changed. + * @protected + */ + onLabelChanged(label:yfiles.graph.ILabel):void; + /** + * Called after a label has been removed from its stripe. + *

    + * This method raises the {@link yfiles.graph.Table#addLabelRemovedListener LabelRemoved} event. + *

    + * @param label The label that has just been removed. + * @param owner The old owner of the label. + * @protected + */ + onLabelRemoved(owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel):void; + /** + * Callback that is invoked after a stripe has changed. + *

    + * This will trigger the {@link yfiles.graph.Table#addStripeChangedListener StripeChanged} event. + *

    + * @param owner The original owner + * @param stripe The stripe that has changed. + * @param oldTable The original table owner, in case the stripe has been moved between different table instances + * @protected + */ + onStripeChanged(owner:yfiles.graph.IStripe,stripe:yfiles.graph.IStripe,oldTable:yfiles.graph.ITable):void; + /** + * Called after a stripe has been created and added to a table. + *

    + * This method raises the {@link yfiles.graph.Table#addStripeCreatedListener StripeCreated} event. + *

    + * @param stripe The stripe that has just been created. + * @protected + */ + onStripeCreated(stripe:yfiles.graph.IStripe):void; + /** + * Called after a stripe has been removed from its owner. + *

    + * This method raises the {@link yfiles.graph.Table#addStripeRemovedListener StripeRemoved} event. + *

    + * @param stripe The stripe that has just been removed. + * @param owner The old owner of the stripe. + * @protected + */ + onStripeRemoved(owner:yfiles.graph.IStripe,stripe:yfiles.graph.IStripe):void; + /** + * Removes the given label from its owner. + *

    + * This will trigger the corresponding event. + *

    + * @param label the label to remove + * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. + */ + remove(label:yfiles.graph.ILabel):void; + /** + * + * @param stripe + */ + remove(stripe:yfiles.graph.IStripe):void; + /** + * Sets the label model parameter for the given label. + * @param label The label. + * @param layoutParameter The new parameter. + * @throws {Stubs.Exceptions.ArgumentError} If the parameter cannot be used for this label or if the label is not associated with this table instance. + */ + setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; + /** + * Sets the preferred size of the label. + * @param label The label. + * @param preferredSize The new preferred size. + * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. + * @see yfiles.graph.ILabel#preferredSize + */ + setLabelPreferredSize(label:yfiles.graph.ILabel,preferredSize:yfiles.geometry.Size):void; + /** + * Sets the label text of the given label. + * @param label the label to modify + * @param text the new text of the label + * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. + * @see yfiles.graph.ILabel#text + */ + setLabelText(label:yfiles.graph.ILabel,text:string):void; + /** + * + * @param stripe + * @param minimumSize + */ + setMinimumSize(stripe:yfiles.graph.IStripe,minimumSize:number):void; + /** + * + * @param owner + * @param column + * @param [index=null] + */ + setParent(owner:yfiles.graph.IColumn,column:yfiles.graph.IColumn,index?:number):void; + /** + * + * @param owner + * @param row + * @param [index=null] + */ + setParent(owner:yfiles.graph.IRow,row:yfiles.graph.IRow,index?:number):void; + /** + * + * @param stripe + * @param size + */ + setSize(stripe:yfiles.graph.IStripe,size:number):void; + /** + * + * @param stripe + * @param insets + */ + setStripeInsets(stripe:yfiles.graph.IStripe,insets:yfiles.geometry.Insets):void; + /** + * Assigns the given style instance by reference to the label. + *

    + * Style instances can be shared. + *

    + * @param label The label that will be assigned the new style + * @param style The style instance that will be assigned to the label. + * @see yfiles.graph.ILabel#style + */ + setStyle(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):void; + /** + * + * @param stripe + * @param style + */ + setStyle(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):void; + /** + * Uninstalls the undo support that has previously been installed with {@link yfiles.graph.Table#installDynamicUndoSupport} + * @param graph The graph where the tables are installed for which the undo support should be cleared. + * @static + */ + static uninstallDynamicUndoSupport(graph:yfiles.graph.IGraph):void; + /** + * Uninstalls the undo support that has previously been installed with {@link yfiles.graph.Table#installStaticUndoSupport} + * @param graph The graph where the tables are installed for which the undo support should be cleared. + * @static + */ + static uninstallStaticUndoSupport(graph:yfiles.graph.IGraph):void; + /** + * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an + * {@link yfiles.graph.IStripe}'s lookup. + *

    + * The provided default implementations can for example be used as fallback when the stripe lookup is wrapped. + *

    + * @static + * @type {yfiles.graph.IContextLookup} + */ + static DEFAULT_STRIPE_LOOKUP:yfiles.graph.IContextLookup; + /** + * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an + * {@link yfiles.graph.IColumn}'s lookup. + *

    + * The provided default implementations can for example be used as fallback when the column lookup is wrapped. + *

    + * @static + * @type {yfiles.graph.IContextLookup} + */ + static DEFAULT_COLUMN_LOOKUP:yfiles.graph.IContextLookup; + /** + * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an + * {@link yfiles.graph.IRow}'s lookup. + *

    + * The provided default implementations can for example be used as fallback when the row lookup is wrapped. + *

    + * @static + * @type {yfiles.graph.IContextLookup} + */ + static DEFAULT_ROW_LOOKUP:yfiles.graph.IContextLookup; + /** + * The toplevel {@link yfiles.graph.IRow}s in this table. + * @type {yfiles.collections.IEnumerable.} + */ + rows:yfiles.collections.IEnumerable; + /** + * The toplevel {@link yfiles.graph.IColumn}s in this table. + * @type {yfiles.collections.IEnumerable.} + */ + columns:yfiles.collections.IEnumerable; + /** + * + * @default '0' + * @type {yfiles.geometry.Insets} + */ + insets:yfiles.geometry.Insets; + /** + * + * @default '0,0' + * @type {yfiles.geometry.Point} + */ + relativeLocation:yfiles.geometry.Point; + /** + * Gets the relative layout of the table. + *

    + * The upper left corner of the layout always coincides with {@link yfiles.graph.Table#relativeLocation}. + *

    + * @see yfiles.graph.Table#relativeLocation + * @type {yfiles.geometry.IRectangle} + */ + layout:yfiles.geometry.IRectangle; + /** + * + * @param listener + */ + addStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * + * @param listener + */ + removeStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * + * @param listener + */ + addStripeRemovedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; + /** + * + * @param listener + */ + removeStripeRemovedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; + /** + * + * @param listener + */ + addStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; + /** + * + * @param listener + */ + removeStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; + /** + * + * @param listener + */ + addLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * + * @param listener + */ + removeLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * + * @param listener + */ + addLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; + /** + * + * @param listener + */ + removeLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; + /** + * + * @param listener + */ + addLabelChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * + * @param listener + */ + removeLabelChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Gets or sets the defaults for rows. + *

    + * The settings that are obtained from the instance influence newly created elements only. Setting different defaults later + * does not influence existing elements. + *

    + *

    + * If no value is set explicitly a default will be created using {@link yfiles.graph.Table#createRowDefaults} upon first read + * access. + *

    + * @type {yfiles.graph.IStripeDefaults} + */ + rowDefaults:yfiles.graph.IStripeDefaults; + /** + * Gets or sets the defaults for Columns. + *

    + * The settings that are obtained from the instance influence newly created elements only. Setting different defaults later + * does not influence existing elements. + *

    + *

    + * If no value is set explicitly a default will be created using {@link yfiles.graph.Table#createColumnDefaults} upon first read + * access. + *

    + * @type {yfiles.graph.IStripeDefaults} + */ + columnDefaults:yfiles.graph.IStripeDefaults; + /** + * + * @type {yfiles.graph.IRow} + */ + rootRow:yfiles.graph.IRow; + /** + * + * @type {yfiles.graph.IColumn} + */ + rootColumn:yfiles.graph.IColumn; + static $class:yfiles.lang.Class; + } /** * Interface used by {@link yfiles.graph.ITable} and the like to declare and obtain the defaults for stripes and their labels. * @see yfiles.graph.ITable#rowDefaults @@ -60960,7 +61038,7 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IStripeDefaults#style} property, if {@link yfiles.graph.IStripeDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @returns {yfiles.styles.IStripeStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IStripeDefaults#style} property, if {@link yfiles.graph.IStripeDefaults#shareStyleInstance} is enabled. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. * @abstract */ getStyleInstance():yfiles.styles.IStripeStyle; @@ -61017,7 +61095,7 @@ declare namespace system{ }; /** * A canonic implementation of the {@link yfiles.graph.IStripeDefaults} interface. - * @class yfiles.graph.StripeDefaults + * @class * @implements {yfiles.graph.IStripeDefaults} */ export interface StripeDefaults extends Object,yfiles.graph.IStripeDefaults{} @@ -61039,12 +61117,11 @@ declare namespace system{ * @param {yfiles.graph.ILabelDefaults} [options.labels=null] Sets the labels property. * @param {yfiles.styles.IStripeStyle} [options.style=null] Sets the style property. * @param {boolean} [options.shareStyleInstance=null] Sets the shareStyleInstance property. - * @constructor */ constructor(options?:{size?:number,minimumSize?:number,labels?:yfiles.graph.ILabelDefaults,style?:yfiles.styles.IStripeStyle,shareStyleInstance?:boolean}); /** * - * @returns {yfiles.styles.IStripeStyle} + * @returns */ getStyleInstance():yfiles.styles.IStripeStyle; /** @@ -61128,7 +61205,7 @@ declare namespace system{ /** * A class that is used by {@link yfiles.geometry.GeneralPath} to iterate over the elements the path is made up of. * @see yfiles.geometry.GeneralPath#createCursor - * @class yfiles.geometry.GeneralPathCursor + * @class */ export interface GeneralPathCursor extends Object{} export class GeneralPathCursor { @@ -61138,25 +61215,25 @@ declare namespace system{ * The array needs to have a length of at least 6, since {@link yfiles.geometry.PathType#CUBIC_TO} needs six coordinates. If the * path has been flattened a length of two suffices. *

    - * @param {Array.} coordinates - * @returns {yfiles.geometry.PathType} The current type of the path element. + * @param coordinates + * @returns The current type of the path element. * @see yfiles.geometry.GeneralPathCursor#getCurrentEndPoint */ getCurrent(coordinates:number[]):yfiles.geometry.PathType; /** * Places the current end coordinates of the last path element into the array. - * @param {Array.} coordinates An array with length at least 2. - * @returns {yfiles.geometry.PathType} The type of the current element. + * @param coordinates An array with length at least 2. + * @returns The type of the current element. */ getCurrentEndPoint(coordinates:number[]):yfiles.geometry.PathType; /** * Advances the cursor to the next position if possible. - * @returns {boolean} Whether the cursor has been moved successfully. false if the cursor has been moved beyond the end of the path. + * @returns Whether the cursor has been moved successfully. false if the cursor has been moved beyond the end of the path. */ moveNext():boolean; /** * Moves the cursor to the previous position in the path. - * @returns {boolean} Whether the move was successful. + * @returns Whether the move was successful. */ movePrevious():boolean; /** @@ -61165,7 +61242,7 @@ declare namespace system{ reset():void; /** * Resets the cursor to point to the last element in the path. - * @returns {boolean} Whether the cursor has been moved successfully. + * @returns Whether the cursor has been moved successfully. */ toLast():boolean; /** @@ -61203,7 +61280,7 @@ declare namespace system{ * calculating the bounds, hit tests, containment tests, curve flattening, path transformation, path modification, and path * iteration. *

    - * @class yfiles.geometry.GeneralPath + * @class * @implements {yfiles.lang.ICloneable} * @final */ @@ -61211,8 +61288,7 @@ declare namespace system{ export class GeneralPath { /** * Creates a new instance with given initial capacity. - * @param {number} [capacity=16] The number of elements for which storage will be allocated initially. - * @constructor + * @param [capacity=16] The number of elements for which storage will be allocated initially. */ constructor(capacity?:number); /** @@ -61221,10 +61297,10 @@ declare namespace system{ * If connect is true, an initial {@link yfiles.geometry.PathType#MOVE_TO} in other will be transformed into a * {@link yfiles.geometry.PathType#LINE_TO}. *

    - * @param {yfiles.geometry.GeneralPath} other The path to append to this path. - * @param {boolean} connect Whether to connect the path to the end of this path. - * @param {number} beginIndex The first element to be copied from other, inclusively. - * @param {number} endIndex The last element to be copied from other, exclusively. + * @param other The path to append to this path. + * @param connect Whether to connect the path to the end of this path. + * @param beginIndex The first element to be copied from other, inclusively. + * @param endIndex The last element to be copied from other, exclusively. */ append(other:yfiles.geometry.GeneralPath,beginIndex:number,endIndex:number,connect:boolean):void; /** @@ -61233,26 +61309,26 @@ declare namespace system{ * If connect is true, an initial {@link yfiles.geometry.PathType#MOVE_TO} in other will be transformed into a * {@link yfiles.geometry.PathType#LINE_TO}. *

    - * @param {yfiles.geometry.GeneralPath} other The path to append to this path. - * @param {boolean} connect Whether to connect the path to the end of this path. + * @param other The path to append to this path. + * @param connect Whether to connect the path to the end of this path. */ append(other:yfiles.geometry.GeneralPath,connect:boolean):void; /** * Appends an ellipse using the given bounding box to this instance. - * @param {yfiles.geometry.IRectangle} bounds The bounds of the ellipse. - * @param {boolean} connect Whether to initially {@link yfiles.geometry.GeneralPath#lineTo} the ellipses lowest point. + * @param bounds The bounds of the ellipse. + * @param connect Whether to initially {@link #lineTo} the ellipses lowest point. */ appendEllipse(bounds:yfiles.geometry.IRectangle,connect:boolean):void; /** * Appends an {@link yfiles.geometry.IOrientedRectangle} to this path instance. - * @param {yfiles.geometry.IOrientedRectangle} rectangle The {@link yfiles.geometry.IOrientedRectangle} to get the coordinates from. - * @param {boolean} connect Whether to use a {@link yfiles.geometry.GeneralPath#lineTo} to the anchor corner. + * @param rectangle The {@link } to get the coordinates from. + * @param connect Whether to use a {@link #lineTo} to the anchor corner. */ appendOrientedRectangle(rectangle:yfiles.geometry.IOrientedRectangle,connect:boolean):void; /** * Appends a rectangle to this path instance. - * @param {yfiles.geometry.IRectangle} rectangle The rectangle to get the coordinates from. - * @param {boolean} connect Whether to use a {@link yfiles.geometry.GeneralPath#lineTo} to the upper left corner. + * @param rectangle The rectangle to get the coordinates from. + * @param connect Whether to use a {@link #lineTo} to the upper left corner. */ appendRectangle(rectangle:yfiles.geometry.IRectangle,connect:boolean):void; /** @@ -61261,9 +61337,9 @@ declare namespace system{ * Note that this will only work as expected for closed paths. The epsilon is used for internally flattening Bézier * curves. *

    - * @param {yfiles.geometry.IPoint} point The coordinates of the point to test. - * @param {number} [eps=0.5] The value to use for flattening Bézier curves during the test. 0.5 is the default value. - * @returns {boolean} Whether the point lies within the area described by this path. + * @param point The coordinates of the point to test. + * @param [eps=0.5] The value to use for flattening Bézier curves during the test. 0.5 is the default value. + * @returns Whether the point lies within the area described by this path. */ areaContains(point:yfiles.geometry.IPoint,eps?:number):boolean; /** @@ -61272,7 +61348,7 @@ declare namespace system{ clear():void; /** * Creates a clone of this instance, copying the path information to the new instance. - * @returns {Object} An exact clone of this instance. + * @returns An exact clone of this instance. */ clone():Object; /** @@ -61295,33 +61371,33 @@ declare namespace system{ * The cursor is fail-fast, i.e. if the path's structure is modified after the construction of the cursor any cursor * operation will fail. *

    - * @returns {yfiles.geometry.GeneralPathCursor} A cursor to iterate over this path. + * @returns A cursor to iterate over this path. */ createCursor():yfiles.geometry.GeneralPathCursor; /** * Creates a new path based on this one where corners are smoothed with a quadratic Bézier arc starting at smoothingLength * away from the corner. - * @param {number} smoothingLength Distance from the corner where the arc begins. - * @returns {yfiles.geometry.GeneralPath} A new path, with its corners smoothed. + * @param smoothingLength Distance from the corner where the arc begins. + * @returns A new path, with its corners smoothed. */ createSmoothedPath(smoothingLength:number):yfiles.geometry.GeneralPath; /** * Creates an SVG path element using the provided parameters. - * @param {yfiles.geometry.Matrix} [transform=null] The matrix to apply to the path data. - * @returns {SVGPathElement} A {@link SVGPathElement path} that displays this instance using the provided attributes. + * @param [transform=null] The matrix to apply to the path data. + * @returns A {@link path} that displays this instance using the provided attributes. */ createSvgPath(transform?:yfiles.geometry.Matrix):SVGPathElement; /** * Creates the data for a SVG path element that corresponds to this instance with the provided transform. - * @param {yfiles.geometry.Matrix} [transform=null] The transform to apply to the created data. - * @returns {string} The path data for an SVG path element that corresponds to this instance with the provided transform. + * @param [transform=null] The transform to apply to the created data. + * @returns The path data for an SVG path element that corresponds to this instance with the provided transform. */ createSvgPathData(transform?:yfiles.geometry.Matrix):string; /** * Creates a new {@link yfiles.geometry.GeneralPath} that is a copy of this path with all geometry transformed using the supplied * matrix. - * @param {yfiles.geometry.Matrix} transform The matrix to multiply the geometry with. - * @returns {yfiles.geometry.GeneralPath} A new path. + * @param transform The matrix to multiply the geometry with. + * @returns A new path. */ createTransformedPath(transform:yfiles.geometry.Matrix):yfiles.geometry.GeneralPath; /** @@ -61329,7 +61405,7 @@ declare namespace system{ *

    * This will remove all path operations that follow the position indicated by the cursor. *

    - * @param {yfiles.geometry.GeneralPathCursor} cursor The cursor that depicts a position in this path. + * @param cursor The cursor that depicts a position in this path. */ cropAfter(cursor:yfiles.geometry.GeneralPathCursor):void; /** @@ -61337,7 +61413,7 @@ declare namespace system{ *

    * This will remove all path operations that precede the position indicated by the cursor. *

    - * @param {yfiles.geometry.GeneralPathCursor} cursor The cursor that depicts a position in this path. + * @param cursor The cursor that depicts a position in this path. */ cropBefore(cursor:yfiles.geometry.GeneralPathCursor):void; /** @@ -61345,12 +61421,12 @@ declare namespace system{ *

    * This draws a cubic Bézier curve from the current end point to the given position using the two given control points. *

    - * @param {number} c1x The x coordinate of the first Bézier control point. - * @param {number} c1y The y coordinate of the first Bézier control point. - * @param {number} c2x The x coordinate of the second Bézier control point. - * @param {number} c2y The y coordinate of the second Bézier control point. - * @param {number} x The x coordinate of the curve's end point. - * @param {number} y The y coordinate of the curve's end point. + * @param c1x The x coordinate of the first Bézier control point. + * @param c1y The y coordinate of the first Bézier control point. + * @param c2x The x coordinate of the second Bézier control point. + * @param c2y The y coordinate of the second Bézier control point. + * @param x The x coordinate of the curve's end point. + * @param y The y coordinate of the curve's end point. */ cubicTo(c1x:number,c1y:number,c2x:number,c2y:number,x:number,y:number):void; /** @@ -61358,9 +61434,9 @@ declare namespace system{ *

    * This draws a cubic Bézier curve from the current end point to the given position using the two given control points. *

    - * @param {yfiles.geometry.IPoint} c1 The coordinates of the first Bézier control point. - * @param {yfiles.geometry.IPoint} c2 The coordinates of the second Bézier control point. - * @param {yfiles.geometry.IPoint} end The coordinates of the curve's end point. + * @param c1 The coordinates of the first Bézier control point. + * @param c2 The coordinates of the second Bézier control point. + * @param end The coordinates of the curve's end point. */ cubicTo(c1:yfiles.geometry.IPoint,c2:yfiles.geometry.IPoint,end:yfiles.geometry.IPoint):void; /** @@ -61369,10 +61445,10 @@ declare namespace system{ * The value returned will be the smallest positive value smaller than 1 such that the point depicted by start + result * (end - start) * is an intersection point between the line and the path. *

    - * @param {yfiles.geometry.Point} start The coordinates of the first point of the line. - * @param {yfiles.geometry.Point} end The coordinates of the second point of the line. - * @param {number} [eps=0.5] The value to use for interpolating Bézier curves. - * @returns {number} The factor to calculate the intersection point or double.PositiveInfinity. + * @param start The coordinates of the first point of the line. + * @param end The coordinates of the second point of the line. + * @param [eps=0.5] The value to use for interpolating Bézier curves. + * @returns The factor to calculate the intersection point or double.PositiveInfinity. */ findLineIntersection(start:yfiles.geometry.Point,end:yfiles.geometry.Point,eps?:number):number; /** @@ -61384,11 +61460,11 @@ declare namespace system{ * the point depicted by (anchorX + result * rayX, anchorY + result * rayY) is an intersection point between the ray and * the path. *

    - * @param {yfiles.geometry.Point} anchor The coordinates of the anchor point of the ray. - * @param {yfiles.geometry.Point} direction The coordinates of the direction vector of the ray. - * @param {number} [eps=0.5] The epsilon value that is used for the accuracy with which the implementation should test Bézier curves within the path + * @param anchor The coordinates of the anchor point of the ray. + * @param direction The coordinates of the direction vector of the ray. + * @param [eps=0.5] The epsilon value that is used for the accuracy with which the implementation should test Bézier curves within the path * for intersections. - * @returns {number} The factor to calculate the intersection point or double.PositiveInfinity. + * @returns The factor to calculate the intersection point or double.PositiveInfinity. */ findRayIntersection(anchor:yfiles.geometry.Point,direction:yfiles.geometry.Point,eps?:number):number; /** @@ -61397,14 +61473,14 @@ declare namespace system{ * This will create a path that consists of {@link yfiles.geometry.PathType#MOVE_TO}, {@link yfiles.geometry.PathType#LINE_TO}, and {@link yfiles.geometry.PathType#CLOSE} * operations only. *

    - * @param {number} eps The maximum value the flattened path may diverge from the original path for the Bézier curve line interpolations. - * @returns {yfiles.geometry.GeneralPath} A new path that does not contain Bézier curves. + * @param eps The maximum value the flattened path may diverge from the original path for the Bézier curve line interpolations. + * @returns A new path that does not contain Bézier curves. */ flatten(eps:number):yfiles.geometry.GeneralPath; /** * Gets the bounds of a flattened version the path. - * @param {number} eps The epsilon to use for the flattening operation. - * @returns {yfiles.geometry.Rect} The bounds of the flattened path. + * @param eps The epsilon to use for the flattening operation. + * @returns The bounds of the flattened path. */ getBounds(eps:number):yfiles.geometry.Rect; /** @@ -61413,7 +61489,7 @@ declare namespace system{ * This will not yield tight bounds if the path contains Bézier curves. The bounds are calculated using the union of all * points and control points contained in this path. *

    - * @returns {yfiles.geometry.Rect} A rectangle that describes the geometric bounds of this path. + * @returns A rectangle that describes the geometric bounds of this path. * @see yfiles.geometry.GeneralPath#getBounds */ getBounds():yfiles.geometry.Rect; @@ -61422,7 +61498,7 @@ declare namespace system{ *

    * Note that Bézier curves are still treated as line segments. *

    - * @returns {number} The length of this path. + * @returns The length of this path. */ getLength():number; /** @@ -61430,14 +61506,14 @@ declare namespace system{ *

    * Note that this implementation still treats Bézier curves as linear segments. *

    - * @param {number} ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of this path. - * @returns {yfiles.geometry.Point} The coordinates of the point. + * @param ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of this path. + * @returns The coordinates of the point. */ getPoint(ratio:number):yfiles.geometry.Point; /** * Gets the number of segments in this path, that is the number of {@link yfiles.geometry.PathType#LINE_TO} and {@link yfiles.geometry.PathType#CLOSE} * operations. - * @returns {number} The number of segments. + * @returns The number of segments. */ getSegmentCount():number; /** @@ -61446,10 +61522,10 @@ declare namespace system{ * Note that this implementation still treats Bézier curves as linear segments. Also note that the tangent vector may not * be normalized. *

    - * @param {number} ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the segment at segmentIndex + * @param ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the segment at segmentIndex * for this path. - * @param {number} segmentIndex The segment index to determine a point at. - * @returns {yfiles.geometry.Tangent} The tangent, if any exists. The tangent vector may not be normalized. + * @param segmentIndex The segment index to determine a point at. + * @returns The tangent, if any exists. The tangent vector may not be normalized. */ getTangent(segmentIndex:number,ratio:number):yfiles.geometry.Tangent; /** @@ -61457,14 +61533,14 @@ declare namespace system{ *

    * Note that this implementation still treats Bézier curves as linear segments. *

    - * @param {number} ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of this path. - * @returns {yfiles.geometry.Tangent} The tangent, if any exists. The tangent vector may not be normalized. + * @param ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of this path. + * @returns The tangent, if any exists. The tangent vector may not be normalized. */ getTangent(ratio:number):yfiles.geometry.Tangent; /** * Determines whether this has the same values like path. - * @param {yfiles.geometry.GeneralPath} path The object to compare this to. Must be of the same type. - * @returns {boolean} true if this has the same values like the other object. + * @param path The object to compare this to. Must be of the same type. + * @returns true if this has the same values like the other object. */ hasSameValue(path:yfiles.geometry.GeneralPath):boolean; /** @@ -61472,9 +61548,9 @@ declare namespace system{ *

    * This will yield false if the rectangle is fully contained within the area of the path. *

    - * @param {yfiles.geometry.Rect} rectangle The rectangle to test. - * @param {number} eps The epsilon to use for fuzzy testing. - * @returns {boolean} Whether the path described by this instance intersects the rectangle. + * @param rectangle The rectangle to test. + * @param eps The epsilon to use for fuzzy testing. + * @returns Whether the path described by this instance intersects the rectangle. */ intersects(rectangle:yfiles.geometry.Rect,eps:number):boolean; /** @@ -61482,8 +61558,8 @@ declare namespace system{ *

    * This draws a line from the current end point to the given position. *

    - * @param {number} x The x coordinate of the line's end point. - * @param {number} y The y coordinate of the line's end point. + * @param x The x coordinate of the line's end point. + * @param y The y coordinate of the line's end point. */ lineTo(x:number,y:number):void; /** @@ -61491,7 +61567,7 @@ declare namespace system{ *

    * This draws a line from the current end point to the given position. *

    - * @param {yfiles.geometry.IPoint} point The coordinates of the line's end point. + * @param point The coordinates of the line's end point. */ lineTo(point:yfiles.geometry.IPoint):void; /** @@ -61500,9 +61576,9 @@ declare namespace system{ *

    * This method will return false if the clip is entirely inside the area of this path. *

    - * @param {yfiles.geometry.Rect} clip The clip to check for intersection. - * @param {number} width The width of the stroke. - * @returns {boolean} false if it is guaranteed that this instance would not intersect the given clip. + * @param clip The clip to check for intersection. + * @param width The width of the stroke. + * @returns false if it is guaranteed that this instance would not intersect the given clip. */ mayIntersectClip(clip:yfiles.geometry.Rect,width:number):boolean; /** @@ -61510,8 +61586,8 @@ declare namespace system{ *

    * This moves the pen to a new position without drawing a line. *

    - * @param {number} x The next x coordinate. - * @param {number} y The next y coordinate. + * @param x The next x coordinate. + * @param y The next y coordinate. */ moveTo(x:number,y:number):void; /** @@ -61519,14 +61595,14 @@ declare namespace system{ *

    * This moves the pen to a new position without drawing a line. *

    - * @param {yfiles.geometry.IPoint} point The next coordinate. + * @param point The next coordinate. */ moveTo(point:yfiles.geometry.IPoint):void; /** * Tests whether the line of the path is hit at the given point using an epsilon for fuzzy hit testing. - * @param {yfiles.geometry.IPoint} point The p coordinates of the point to test. - * @param {number} [eps=0.5] The allowed distance from the point to the path that is considered a hit.0.5 is the default value. - * @returns {boolean} Whether the point hits the path. + * @param point The p coordinates of the point to test. + * @param [eps=0.5] The allowed distance from the point to the path that is considered a hit.0.5 is the default value. + * @returns Whether the point hits the path. */ pathContains(point:yfiles.geometry.IPoint,eps?:number):boolean; /** @@ -61535,8 +61611,8 @@ declare namespace system{ * If connect is true, the initial {@link yfiles.geometry.PathType#MOVE_TO} in this will be transformed into a * {@link yfiles.geometry.PathType#LINE_TO}. *

    - * @param {yfiles.geometry.GeneralPath} other The path to append to this path. - * @param {boolean} connect Whether to connect the path to the end of this path. + * @param other The path to append to this path. + * @param connect Whether to connect the path to the end of this path. */ prepend(other:yfiles.geometry.GeneralPath,connect:boolean):void; /** @@ -61544,10 +61620,10 @@ declare namespace system{ *

    * This draws a quadratic Bézier curve from the current end point to the given position using the given control point. *

    - * @param {number} cx The x coordinate of the Bézier control point. - * @param {number} cy The y coordinate of the Bézier control point. - * @param {number} x The x coordinate of the curve's end point. - * @param {number} y The y coordinate of the curve's end point. + * @param cx The x coordinate of the Bézier control point. + * @param cy The y coordinate of the Bézier control point. + * @param x The x coordinate of the curve's end point. + * @param y The y coordinate of the curve's end point. */ quadTo(cx:number,cy:number,x:number,y:number):void; /** @@ -61555,13 +61631,13 @@ declare namespace system{ *

    * This draws a quadratic Bézier curve from the current end point to the given position using the given control point. *

    - * @param {yfiles.geometry.IPoint} center The coordinates of the Bézier control point. - * @param {yfiles.geometry.IPoint} point The coordinates of the curve's end point. + * @param center The coordinates of the Bézier control point. + * @param point The coordinates of the curve's end point. */ quadTo(center:yfiles.geometry.IPoint,point:yfiles.geometry.IPoint):void; /** * Transforms this {@link yfiles.geometry.GeneralPath} in place using the given transform. - * @param {yfiles.geometry.Matrix} transform The matrix to multiply the geometry with. + * @param transform The matrix to multiply the geometry with. */ transform(transform:yfiles.geometry.Matrix):void; /** @@ -61580,7 +61656,7 @@ declare namespace system{ */ lastY:number; /** - * Gets a value indicating whether this path contains elements other than an initial {@link yfiles.geometry.PathType#MOVE_TO}.. + * Gets a value indicating whether this path contains elements other than an initial {@link yfiles.geometry.PathType#MOVE_TO}. * @type {boolean} */ isEmpty:boolean; @@ -61598,7 +61674,7 @@ declare namespace system{ } /** * An immutable {@link yfiles.geometry.ISize} implementation to describe a size in two-dimensional space. - * @class yfiles.geometry.Size + * @class * @implements {yfiles.geometry.ISize} * @final */ @@ -61606,60 +61682,59 @@ declare namespace system{ export class Size { /** * Creates a new size using the provided width and height. - * @param {number} width The new width. - * @param {number} height The new height. - * @constructor + * @param width The new width. + * @param height The new height. */ constructor(width:number,height:number); /** * - * @returns {yfiles.geometry.Size} + * @returns */ clone():yfiles.geometry.Size; /** * Performs an implicit conversion from {@link yfiles.geometry.MutableSize} to {@link yfiles.geometry.Size}. - * @param {yfiles.geometry.MutableSize} size The size. - * @returns {yfiles.geometry.Size} The result of the conversion. + * @param size The size. + * @returns The result of the conversion. * @static */ static convertFrom(size:yfiles.geometry.MutableSize):yfiles.geometry.Size; /** * Performs an explicit conversion from {@link yfiles.geometry.Size} to {@link yfiles.geometry.MutableSize}. - * @param {yfiles.geometry.Size} size The size. - * @returns {yfiles.geometry.MutableSize} The result of the conversion. + * @param size The size. + * @returns The result of the conversion. * @static */ static convertToMutableSize(size:yfiles.geometry.Size):yfiles.geometry.MutableSize; /** * Returns a size whose {@link yfiles.geometry.Size#width} and {@link yfiles.geometry.Size#height} is the {@link Math#max} of the respecting properties of the two parameters. - * @param {yfiles.geometry.Size} size1 The first size. - * @param {yfiles.geometry.Size} size2 The second size. - * @returns {yfiles.geometry.Size} A size whose {@link yfiles.geometry.Size#width} and {@link yfiles.geometry.Size#height} is the {@link Math#max} of the respecting properties of the two parameters. + * @param size1 The first size. + * @param size2 The second size. + * @returns A size whose {@link #width} and {@link #height} is the {@link #max} of the respecting properties of the two parameters. * @static */ static max(size1:yfiles.geometry.Size,size2:yfiles.geometry.Size):yfiles.geometry.Size; /** * Returns a size whose {@link yfiles.geometry.Size#width} and {@link yfiles.geometry.Size#height} is the {@link Math#min} of the respecting properties of the two parameters. - * @param {yfiles.geometry.Size} size1 The first size. - * @param {yfiles.geometry.Size} size2 The second size. - * @returns {yfiles.geometry.Size} A size whose {@link yfiles.geometry.Size#width} and {@link yfiles.geometry.Size#height} is the {@link Math#min} of the respecting properties of the two parameters. + * @param size1 The first size. + * @param size2 The second size. + * @returns A size whose {@link #width} and {@link #height} is the {@link #min} of the respecting properties of the two parameters. * @static */ static min(size1:yfiles.geometry.Size,size2:yfiles.geometry.Size):yfiles.geometry.Size; /** * Multiplies the {@link yfiles.geometry.Size#width} and {@link yfiles.geometry.Size#height} by the given factor and returns the result. - * @param {number} factor The factor to multiply the width and height by. - * @returns {yfiles.geometry.Size} A new size that has the width and height multiplied by the factor. + * @param factor The factor to multiply the width and height by. + * @returns A new size that has the width and height multiplied by the factor. */ multiply(factor:number):yfiles.geometry.Size; /** * Converts this instance to an {@link yfiles.geometry.MutableSize} instance - * @returns {yfiles.geometry.MutableSize} The {@link yfiles.geometry.MutableSize} instance, whose attributes have been initialized with the values of this instance. + * @returns The {@link } instance, whose attributes have been initialized with the values of this instance. */ toMutableSize():yfiles.geometry.MutableSize; /** * Creates a {@link yfiles.algorithms.YDimension} from a given {@link yfiles.geometry.Size}. - * @returns {yfiles.algorithms.YDimension} The {@link yfiles.algorithms.YDimension}. + * @returns The {@link }. */ toYDimension():yfiles.algorithms.YDimension; /** @@ -61728,7 +61803,7 @@ declare namespace system{ * This class implements the {@link yfiles.geometry.IPoint} interface so that it can be used in methods that require that * interface. *

    - * @class yfiles.geometry.Point + * @class * @implements {yfiles.geometry.IPoint} * @final */ @@ -61736,9 +61811,8 @@ declare namespace system{ export class Point { /** * Initializes a new instance using the given values for the {@link yfiles.geometry.Point#x} and {@link yfiles.geometry.Point#y} properties. - * @param {number} x The x coordinate. - * @param {number} y The y coordinate. - * @constructor + * @param x The x coordinate. + * @param y The y coordinate. */ constructor(x:number,y:number); /** @@ -61746,41 +61820,41 @@ declare namespace system{ *

    * This operator is applied componentwise to {@link yfiles.geometry.Point#x} and {@link yfiles.geometry.Point#y}. *

    - * @param {yfiles.geometry.Point} otherPoint The second point. - * @returns {yfiles.geometry.Point} The result of the vector addition. + * @param otherPoint The second point. + * @returns The result of the vector addition. */ add(otherPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** * - * @returns {yfiles.geometry.Point} + * @returns */ clone():yfiles.geometry.Point; /** * Performs an explicit conversion from {@link yfiles.geometry.MutablePoint} to {@link yfiles.geometry.Point}. - * @param {yfiles.geometry.MutablePoint} p The point to convert. - * @returns {yfiles.geometry.Point} The result of the conversion. + * @param p The point to convert. + * @returns The result of the conversion. * @static */ static convertFrom(p:yfiles.geometry.MutablePoint):yfiles.geometry.Point; /** * Performs an implicit conversion from {@link yfiles.geometry.Point} to {@link yfiles.geometry.MutablePoint}. - * @param {yfiles.geometry.Point} point The point to convert. - * @returns {yfiles.geometry.MutablePoint} + * @param point The point to convert. + * @returns * @static */ static convertToMutablePoint(point:yfiles.geometry.Point):yfiles.geometry.MutablePoint; /** * Determines the distance between this point and a line segment. - * @param {yfiles.geometry.Point} start The coordinates of the first point of the line. - * @param {yfiles.geometry.Point} end The coordinates of the second point of the line. - * @returns {number} The distance between this point and the closest point on the line segment. + * @param start The coordinates of the first point of the line. + * @param end The coordinates of the second point of the line. + * @returns The distance between this point and the closest point on the line segment. */ distanceToSegment(start:yfiles.geometry.Point,end:yfiles.geometry.Point):number; /** * Determines whether the two given points have the same coordinates with respect to a certain given eps. - * @param {yfiles.geometry.Point} other The other point to check for equality against this point. - * @param {number} eps The epsilon value. - * @returns {boolean} Whether both coordinates are equal with respect for the given epsilon. + * @param other The other point to check for equality against this point. + * @param eps The epsilon value. + * @returns Whether both coordinates are equal with respect for the given epsilon. */ equalsEps(other:yfiles.geometry.Point,eps:number):boolean; /** @@ -61788,15 +61862,15 @@ declare namespace system{ *

    * If the given rectangle is {@link yfiles.geometry.Rect#EMPTY}, this implementation will silently return. *

    - * @param {yfiles.geometry.Rect} rectangle The rectangle to constrain this instance by. - * @returns {yfiles.geometry.Point} A constrained copy of this instance. + * @param rectangle The rectangle to constrain this instance by. + * @returns A constrained copy of this instance. */ getConstrained(rectangle:yfiles.geometry.Rect):yfiles.geometry.Point; /** * Calculates the projection of this point onto a line. - * @param {yfiles.geometry.Point} anchor An anchor for the infinite line. - * @param {yfiles.geometry.Point} direction A direction vector for the infinite line. - * @returns {yfiles.geometry.Point} The point on the line that is closest to this point. + * @param anchor An anchor for the infinite line. + * @param direction A direction vector for the infinite line. + * @returns The point on the line that is closest to this point. */ getProjectionOnLine(anchor:yfiles.geometry.Point,direction:yfiles.geometry.Point):yfiles.geometry.Point; /** @@ -61805,9 +61879,9 @@ declare namespace system{ * If the perpendicular projection onto the line is outside of the ray ("behind" the rayStart) the rayStart is returned * instead. *

    - * @param {yfiles.geometry.Point} rayStart The start of the segment. - * @param {yfiles.geometry.Point} direction The direction of the ray. - * @returns {yfiles.geometry.Point} The point on the ray that is closest to this point. + * @param rayStart The start of the segment. + * @param direction The direction of the ray. + * @returns The point on the ray that is closest to this point. */ getProjectionOnRay(rayStart:yfiles.geometry.Point,direction:yfiles.geometry.Point):yfiles.geometry.Point; /** @@ -61815,38 +61889,38 @@ declare namespace system{ *

    * If the perpendicular projection onto the line is outside of the segment the nearest segment endpoint is returned. *

    - * @param {yfiles.geometry.Point} start The start of the segment. - * @param {yfiles.geometry.Point} end The end of the segment. - * @returns {yfiles.geometry.Point} The point on the segment that is closest to this point. + * @param start The start of the segment. + * @param end The end of the segment. + * @returns The point on the segment that is closest to this point. */ getProjectionOnSegment(start:yfiles.geometry.Point,end:yfiles.geometry.Point):yfiles.geometry.Point; /** * Determines if the point lies close to this point given an epsilon. - * @param {yfiles.geometry.Point} other The coordinates of the other point. - * @param {number} hitTestRadius The hit test epsilon. - * @returns {boolean} Whether the distance between the two points is smaller than hitTestRadius + * @param other The coordinates of the other point. + * @param hitTestRadius The hit test epsilon. + * @returns Whether the distance between the two points is smaller than hitTestRadius */ hits(other:yfiles.geometry.Point,hitTestRadius:number):boolean; /** * Determines whether this point hits the line segment with respect to a given radius. - * @param {yfiles.geometry.Point} start The starting point of the line segment to test. - * @param {yfiles.geometry.Point} end The ending point of the line segment to test. - * @param {number} radius The hit test radius. - * @returns {boolean} Whether this point hits the given line segment within the radius. + * @param start The starting point of the line segment to test. + * @param end The ending point of the line segment to test. + * @param radius The hit test radius. + * @returns Whether this point hits the given line segment within the radius. */ hitsLineSegment(start:yfiles.geometry.Point,end:yfiles.geometry.Point,radius:number):boolean; /** * Determines whether a polygonal line is hit by this point given an epsilon. - * @param {yfiles.collections.IEnumerable.} points The list of points that is treated as a polygon - * @param {number} radius A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * @param points The list of points that is treated as a polygon + * @param radius A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than * or equal to that value, it will be considered a hit. - * @returns {boolean} Whether the point hits the polygon. + * @returns Whether the point hits the polygon. */ hitsPolyline(points:yfiles.collections.IEnumerable,radius:number):boolean; /** * Applies the given matrix to this instance by calling {@link yfiles.geometry.Matrix#transform} and returns the result. - * @param {yfiles.geometry.Matrix} matrix The matrix to use for the transformation. - * @returns {yfiles.geometry.Point} The result of the transformation. + * @param matrix The matrix to use for the transformation. + * @returns The result of the transformation. */ multiply(matrix:yfiles.geometry.Matrix):yfiles.geometry.Point; /** @@ -61854,21 +61928,21 @@ declare namespace system{ *

    * This factor is applied componentwise to {@link yfiles.geometry.Point#x} and {@link yfiles.geometry.Point#y}. *

    - * @param {number} factor The factor to scale the components by. - * @returns {yfiles.geometry.Point} The result of the scalar multiplication. + * @param factor The factor to scale the components by. + * @returns The result of the scalar multiplication. */ multiply(factor:number):yfiles.geometry.Point; /** * Calculates the scalar product of this and the given vector. - * @param {yfiles.geometry.Point} other The other vector. - * @returns {number} The scalar product (X*other.X + Y*other.Y) + * @param other The other vector. + * @returns The scalar product (X*other.X + Y*other.Y) */ scalarProduct(other:yfiles.geometry.Point):number; /** * Calculates the scalar product of the two given points. - * @param {yfiles.geometry.Point} point1 The first point. - * @param {yfiles.geometry.Point} point2 The second point. - * @returns {number} The scalar product of the two points. + * @param point1 The first point. + * @param point2 The second point. + * @returns The scalar product of the two points. * @static */ static scalarProduct(point1:yfiles.geometry.Point,point2:yfiles.geometry.Point):number; @@ -61877,28 +61951,28 @@ declare namespace system{ *

    * This operator is applied componentwise to {@link yfiles.geometry.Point#x} and {@link yfiles.geometry.Point#y}. *

    - * @param {yfiles.geometry.Point} otherPoint The second point. - * @returns {yfiles.geometry.Point} The result of the vector subtraction. + * @param otherPoint The second point. + * @returns The result of the vector subtraction. */ subtract(otherPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** * Creates an {@link yfiles.geometry.IMutablePoint} that has the same coordinates as this instance. - * @returns {yfiles.geometry.IMutablePoint} A {@link yfiles.geometry.IMutablePoint} with the same coordinates. + * @returns A {@link } with the same coordinates. */ toMutablePoint():yfiles.geometry.IMutablePoint; /** * Creates a {@link yfiles.algorithms.Point2D} from a given {@link yfiles.geometry.Point}. - * @returns {yfiles.algorithms.Point2D} The {@link yfiles.algorithms.Point2D}. + * @returns The {@link }. */ toPoint2D():yfiles.algorithms.Point2D; /** * Creates a {@link yfiles.algorithms.YPoint} from a given {@link yfiles.geometry.Point}. - * @returns {yfiles.algorithms.YPoint} The {@link yfiles.algorithms.YPoint}. + * @returns The {@link }. */ toYPoint():yfiles.algorithms.YPoint; /** * Creates a {@link yfiles.algorithms.YVector} from a given {@link yfiles.geometry.Point}. - * @returns {yfiles.algorithms.YVector} The {@link yfiles.algorithms.YVector}. + * @returns The {@link }. */ toYVector():yfiles.algorithms.YVector; /** @@ -61947,53 +62021,51 @@ declare namespace system{ } /** * A class that models the thickness of insets as double precision floating point values. - * @class yfiles.geometry.Insets + * @class * @final */ export interface Insets extends yfiles.lang.Struct{} export class Insets { /** * Initializes a new instance. - * @param {number} left The left inset. - * @param {number} top The top inset. - * @param {number} right The right inset. - * @param {number} bottom The bottom inset. - * @constructor + * @param left The left inset. + * @param top The top inset. + * @param right The right inset. + * @param bottom The bottom inset. */ constructor(left:number,top:number,right:number,bottom:number); /** * Initializes a new instance using the provided inset for all four sides. - * @param {number} inset The inset to use for all sides. - * @constructor + * @param inset The inset to use for all sides. */ constructor(inset:number); /** * - * @returns {yfiles.geometry.Insets} + * @returns */ clone():yfiles.geometry.Insets; /** * Calculates the union of this instance and the given inset which is done by performing {@link Math#max} on all four inset * values. - * @param {yfiles.geometry.Insets} insets The insets to max with these insets. - * @returns {yfiles.geometry.Insets} + * @param insets The insets to max with these insets. + * @returns */ createUnion(insets:yfiles.geometry.Insets):yfiles.geometry.Insets; /** * Creates an enlarged instance by adding the insets of the specified insets to this instance and returning the result. - * @param {yfiles.geometry.Insets} insets The insets to add to this instance. - * @returns {yfiles.geometry.Insets} + * @param insets The insets to add to this instance. + * @returns */ getEnlarged(insets:yfiles.geometry.Insets):yfiles.geometry.Insets; /** * Multiplies each side of the insets by the given factor and returns the result. - * @param {number} factor The factor to scales up by. - * @returns {yfiles.geometry.Insets} New insets scaled up by the factor. + * @param factor The factor to scales up by. + * @returns New insets scaled up by the factor. */ multiply(factor:number):yfiles.geometry.Insets; /** * Creates a {@link yfiles.algorithms.Insets} from a given {@link yfiles.geometry.Insets}. - * @returns {yfiles.algorithms.Insets} The {@link yfiles.geometry.Insets}. + * @returns The {@link }. */ toInsets():yfiles.algorithms.Insets; /** @@ -62048,7 +62120,7 @@ declare namespace system{ * rectangles are not considered in {@link yfiles.geometry.Rect#add union-like} operations, whereas rectangles with {@link yfiles.geometry.Rect#width} and {@link yfiles.geometry.Rect#height} of 0.0d are. This class implements * the {@link yfiles.geometry.IRectangle} interface so that it can be used in methods that require that interface. *

    - * @class yfiles.geometry.Rect + * @class * @implements {yfiles.geometry.IRectangle} * @final */ @@ -62056,18 +62128,16 @@ declare namespace system{ export class Rect { /** * Initializes a new instance. - * @param {number} x The {@link yfiles.geometry.Rect#x} coordinate of the top left corner. - * @param {number} y The {@link yfiles.geometry.Rect#y} coordinate of the top left corner. - * @param {number} width The {@link yfiles.geometry.Rect#width} of the rectangle. - * @param {number} height The {@link yfiles.geometry.Rect#height} of the rectangle. - * @constructor + * @param x The {@link #x} coordinate of the top left corner. + * @param y The {@link #y} coordinate of the top left corner. + * @param width The {@link #width} of the rectangle. + * @param height The {@link #height} of the rectangle. */ constructor(x:number,y:number,width:number,height:number); /** * Initializes a new instance using the {@link yfiles.geometry.Rect#topLeft} corner and the {@link yfiles.geometry.Rect#size}. - * @param {yfiles.geometry.Point} location The top left corner. - * @param {yfiles.geometry.Size} size The size to use. - * @constructor + * @param location The top left corner. + * @param size The size to use. */ constructor(location:yfiles.geometry.Point,size:yfiles.geometry.Size); /** @@ -62076,21 +62146,19 @@ declare namespace system{ * This will always result in non-{@link yfiles.geometry.Rect#isEmpty} rectangles as the coordinates of the points are sorted so that the smaller gets assigned * to {@link yfiles.geometry.Rect#x} and {@link yfiles.geometry.Rect#y} respectively and the greater ones define the {@link yfiles.geometry.Rect#width} and {@link yfiles.geometry.Rect#height}. *

    - * @param {yfiles.geometry.Point} p1 The first point to determine the bounds. - * @param {yfiles.geometry.Point} p2 The second point to determine the bounds. - * @constructor + * @param p1 The first point to determine the bounds. + * @param p2 The second point to determine the bounds. */ constructor(p1:yfiles.geometry.Point,p2:yfiles.geometry.Point); /** * Initializes a new instance of the {@link yfiles.geometry.Rect} class with the initial values obtained from the given rectangle. - * @param {yfiles.geometry.IRectangle} rectangle The rectangle to retrieve the initial values from. - * @constructor + * @param rectangle The rectangle to retrieve the initial values from. */ constructor(rectangle:yfiles.geometry.IRectangle); /** * Returns the union of this rectangle and the given point. - * @param {yfiles.geometry.Point} point The point to include in the rectangle's bounds. - * @returns {yfiles.geometry.Rect} The enlarged rectangle. + * @param point The point to include in the rectangle's bounds. + * @returns The enlarged rectangle. */ add(point:yfiles.geometry.Point):yfiles.geometry.Rect; /** @@ -62098,53 +62166,53 @@ declare namespace system{ *

    * {@link yfiles.geometry.Rect#isEmpty empty} rectangles will not be considered. *

    - * @param {yfiles.geometry.Rect} firstRectangle The first rectangle to use for the union. - * @param {yfiles.geometry.Rect} secondRectangle The second rectangle to use for the union. - * @returns {yfiles.geometry.Rect} A rectangle that encompasses the area of the two given rectangles. + * @param firstRectangle The first rectangle to use for the union. + * @param secondRectangle The second rectangle to use for the union. + * @returns A rectangle that encompasses the area of the two given rectangles. * @static */ static add(firstRectangle:yfiles.geometry.Rect,secondRectangle:yfiles.geometry.Rect):yfiles.geometry.Rect; /** * - * @returns {yfiles.geometry.Rect} + * @returns */ clone():yfiles.geometry.Rect; /** * Determines whether this rectangle contains the specified point with respect to a given epsilon. - * @param {yfiles.geometry.Point} point The point to test. - * @param {number} eps The positive epsilon distance that the point may lie outside the rectangle and still be considered contained. - * @returns {boolean} true if this rectangle contains the specified point; false otherwise. An {@link yfiles.geometry.Rect#isEmpty empty} instance never contains any point. A - * point is considered to be contained in the rectangle when the coordinates are not smaller than {@link yfiles.geometry.Rect#minX} and {@link yfiles.geometry.Rect#minY} minus eps nor - * greater than {@link yfiles.geometry.Rect#maxX} and {@link yfiles.geometry.Rect#maxY} plus eps. + * @param point The point to test. + * @param eps The positive epsilon distance that the point may lie outside the rectangle and still be considered contained. + * @returns true if this rectangle contains the specified point; false otherwise. An {@link #isEmpty empty} instance never contains any point. A + * point is considered to be contained in the rectangle when the coordinates are not smaller than {@link #minX} and {@link #minY} minus eps nor + * greater than {@link #maxX} and {@link #maxY} plus eps. */ containsWithEps(point:yfiles.geometry.Point,eps:number):boolean; /** * Performs an explicit conversion from {@link yfiles.geometry.MutableRectangle} to {@link yfiles.geometry.Rect}. - * @param {yfiles.geometry.MutableRectangle} rectangle The rectangle to convert. - * @returns {yfiles.geometry.Rect} The result of the conversion. + * @param rectangle The rectangle to convert. + * @returns The result of the conversion. * @static */ static convertFrom(rectangle:yfiles.geometry.MutableRectangle):yfiles.geometry.Rect; /** * Performs an explicit conversion from {@link yfiles.geometry.Rect} to {@link yfiles.geometry.MutableRectangle}. - * @param {yfiles.geometry.Rect} rectangle The rectangle to convert. - * @returns {yfiles.geometry.MutableRectangle} The result of the conversion. + * @param rectangle The rectangle to convert. + * @returns The result of the conversion. * @static */ static convertToMutableRectangle(rectangle:yfiles.geometry.Rect):yfiles.geometry.MutableRectangle; /** * Finds the intersection between a rectangle and a line. - * @param {yfiles.geometry.Point} inner The coordinates of a point lying inside the rectangle. - * @param {yfiles.geometry.Point} outer The coordinates of a point lying outside the rectangle. - * @returns {yfiles.geometry.Point} The intersection point if the inner point lies inside the rectangle, the outer point lies outside the rectangle and thus + * @param inner The coordinates of a point lying inside the rectangle. + * @param outer The coordinates of a point lying outside the rectangle. + * @returns The intersection point if the inner point lies inside the rectangle, the outer point lies outside the rectangle and thus * an intersection point has been found, or null otherwise. */ findLineIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Creates a new instance given the center of the rectangle and its size. - * @param {yfiles.geometry.Point} center The center to use. - * @param {yfiles.geometry.Size} size The size to assign. - * @returns {yfiles.geometry.Rect} An instance whose center is set to center and size is size + * @param center The center to use. + * @param size The size to assign. + * @returns An instance whose center is set to center and size is size * @static */ static fromCenter(center:yfiles.geometry.Point,size:yfiles.geometry.Size):yfiles.geometry.Rect; @@ -62153,8 +62221,8 @@ declare namespace system{ *

    * If this instance {@link yfiles.geometry.Rect#isEmpty}, the result will be the same. *

    - * @param {number} size The inset to add to each of the sides to grow the new instance. - * @returns {yfiles.geometry.Rect} + * @param size The inset to add to each of the sides to grow the new instance. + * @returns * @see yfiles.geometry.Rect#getEnlarged */ getEnlarged(size:number):yfiles.geometry.Rect; @@ -62163,62 +62231,62 @@ declare namespace system{ *

    * If this instance {@link yfiles.geometry.Rect#isEmpty}, the same will be returned. *

    - * @param {yfiles.geometry.Insets} insets The insets to use to add to the instance. - * @returns {yfiles.geometry.Rect} + * @param insets The insets to use to add to the instance. + * @returns */ getEnlarged(insets:yfiles.geometry.Insets):yfiles.geometry.Rect; /** * Transforms this instance using the specified matrix and returns the result. - * @param {yfiles.geometry.Matrix} transform The transform matrix to apply to this instance. - * @returns {yfiles.geometry.Rect} + * @param transform The transform matrix to apply to this instance. + * @returns */ getTransformed(transform:yfiles.geometry.Matrix):yfiles.geometry.Rect; /** * Returns a translated instance of this which has modified {@link yfiles.geometry.Rect#x} and {@link yfiles.geometry.Rect#y} by the given amount. - * @param {yfiles.geometry.Point} delta The delta to add to {@link yfiles.geometry.Rect#x} and {@link yfiles.geometry.Rect#y}. - * @returns {yfiles.geometry.Rect} + * @param delta The delta to add to {@link #x} and {@link #y}. + * @returns */ getTranslated(delta:yfiles.geometry.Point):yfiles.geometry.Rect; /** * Determines whether the bounds of this instance intersect with the bounds of the specified rectangle. - * @param {yfiles.geometry.Rect} rectangle The rectangle to check. - * @returns {boolean} Whether both instance are non-empty and have an intersection with positive {@link yfiles.geometry.Rect#area}. + * @param rectangle The rectangle to check. + * @returns Whether both instance are non-empty and have an intersection with positive {@link #area}. */ intersects(rectangle:yfiles.geometry.Rect):boolean; /** * Determines whether this rectangle intersects an {@link yfiles.geometry.IOrientedRectangle}, given an epsilon. - * @param {yfiles.geometry.IOrientedRectangle} rectangle The {@link yfiles.geometry.IOrientedRectangle} to test. - * @param {number} [eps=0] A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * @param rectangle The {@link } to test. + * @param [eps=0] A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than * or equal to that value, it will be considered a hit. - * @returns {boolean} Whether they have a non-empty intersection. + * @returns Whether they have a non-empty intersection. */ intersects(rectangle:yfiles.geometry.IOrientedRectangle,eps?:number):boolean; /** * Determines whether this rectangle intersects a line. - * @param {yfiles.geometry.Point} start The first end point of the line. - * @param {yfiles.geometry.Point} end The second end point of the line. - * @returns {boolean} Whether the line intersects the rectangle. + * @param start The first end point of the line. + * @param end The second end point of the line. + * @returns Whether the line intersects the rectangle. */ intersectsLine(start:yfiles.geometry.Point,end:yfiles.geometry.Point):boolean; /** * Determines whether a rectangle intersects a polygonal line. - * @param {yfiles.collections.IEnumerable.} points The list of points that is interpreted as a number of line segments. - * @returns {boolean} true if the rectangle intersects at least one segment of the line. + * @param points The list of points that is interpreted as a number of line segments. + * @returns true if the rectangle intersects at least one segment of the line. */ intersectsPolyline(points:yfiles.collections.IEnumerable):boolean; /** * Creates an {@link yfiles.geometry.IMutableRectangle} using the values from this instance. - * @returns {yfiles.geometry.IMutableRectangle} An instance that has been initialized from the values of this instance. + * @returns An instance that has been initialized from the values of this instance. */ toMutableRectangle():yfiles.geometry.IMutableRectangle; /** * Creates a {@link yfiles.algorithms.Rectangle2D Rectangle2D} from a given {@link yfiles.geometry.Rect}. - * @returns {yfiles.algorithms.Rectangle2D} The {@link yfiles.algorithms.Rectangle2D Rectangle2D}. + * @returns The {@link Rectangle2D}. */ toRectangle2D():yfiles.algorithms.Rectangle2D; /** * Creates a {@link yfiles.algorithms.YRectangle} from a given {@link yfiles.geometry.Rect}. - * @returns {yfiles.algorithms.YRectangle} The {@link yfiles.algorithms.YRectangle}. + * @returns The {@link }. */ toYRectangle():yfiles.algorithms.YRectangle; /** @@ -62347,16 +62415,15 @@ declare namespace system{ *

    * The tangent consists of its point of tangency ({@link yfiles.geometry.Tangent#point}) and a direction ({@link yfiles.geometry.Tangent#vector}). *

    - * @class yfiles.geometry.Tangent + * @class * @final */ export interface Tangent extends yfiles.lang.Struct{} export class Tangent { /** * Initializes a new instance of the {@link yfiles.geometry.Tangent} class using the given values for the {@link yfiles.geometry.Tangent#point} and {@link yfiles.geometry.Tangent#vector} properties. - * @param {yfiles.geometry.Point} point The point of tangency. - * @param {yfiles.geometry.Point} vector The directional vector. - * @constructor + * @param point The point of tangency. + * @param vector The directional vector. */ constructor(point:yfiles.geometry.Point,vector:yfiles.geometry.Point); /** @@ -62376,18 +62443,18 @@ declare namespace system{ *

    * Also it serves as a factory for various implementations of geometric primitives. *

    - * @class yfiles.geometry.GeomUtilities + * @class * @static */ export interface GeomUtilities extends Object{} export class GeomUtilities { /** * Checks whether an ellipse contains the given point. - * @param {yfiles.geometry.Rect} bounds The coordinates of the bounds of the ellipse's enclosing rectangle. - * @param {yfiles.geometry.Point} point The coordinates of the point to test. - * @param {number} eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * @param bounds The coordinates of the bounds of the ellipse's enclosing rectangle. + * @param point The coordinates of the point to test. + * @param eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than * or equal to that value, it will be considered a hit. - * @returns {boolean} Whether the point lies within the ellipse + * @returns Whether the point lies within the ellipse * @static */ static ellipseContains(bounds:yfiles.geometry.Rect,point:yfiles.geometry.Point,eps:number):boolean; @@ -62396,10 +62463,10 @@ declare namespace system{ *

    * This will always return the intersection point that lies in the direction from inner to outer. *

    - * @param {yfiles.geometry.Rect} bounds The coordinates of the bounds of the ellipse's enclosing rectangle. - * @param {yfiles.geometry.Point} inner The coordinates of a point lying inside the ellipse. - * @param {yfiles.geometry.Point} outer The coordinates of a point lying outside the ellipse. - * @returns {yfiles.geometry.Point} The intersection point iff the inner point lies inside the ellipse and an intersection point has been found, otherwise + * @param bounds The coordinates of the bounds of the ellipse's enclosing rectangle. + * @param inner The coordinates of a point lying inside the ellipse. + * @param outer The coordinates of a point lying outside the ellipse. + * @returns The intersection point iff the inner point lies inside the ellipse and an intersection point has been found, otherwise * null. * @static */ @@ -62410,11 +62477,11 @@ declare namespace system{ * The ray is described using an anchor point and a ray direction. The direction vector does not need to be normalized. In * order to obtain the intersection point do the following: *

    - * @param {yfiles.geometry.Point} start The coordinates of the first end point of the line segment. - * @param {yfiles.geometry.Point} end The coordinates of the second end point of the line segment. - * @param {yfiles.geometry.Point} anchor The coordinates of the starting point of the ray. - * @param {yfiles.geometry.Point} rayDirection The direction vector of the ray. - * @returns {number} The distance factor or {@link number#POSITIVE_INFINITY} if the ray does not intersect the line. + * @param start The coordinates of the first end point of the line segment. + * @param end The coordinates of the second end point of the line segment. + * @param anchor The coordinates of the starting point of the ray. + * @param rayDirection The direction vector of the ray. + * @returns The distance factor or {@link #POSITIVE_INFINITY} if the ray does not intersect the line. * @static */ static findRayIntersection(start:yfiles.geometry.Point,end:yfiles.geometry.Point,anchor:yfiles.geometry.Point,rayDirection:yfiles.geometry.Point):number; @@ -62432,12 +62499,12 @@ declare namespace system{ export interface IMutableOrientedRectangle extends Object,yfiles.geometry.IOrientedRectangle,yfiles.geometry.IMutableSize{ /** * Sets the anchor vector of the oriented rectangle to the given value. - * @param {yfiles.geometry.Point} location The coordinates of the new anchor location. + * @param location The coordinates of the new anchor location. */ setAnchor?(location:yfiles.geometry.Point):void; /** * Sets the center of the oriented rectangle to the given value. - * @param {yfiles.geometry.Point} center The coordinates of the new center. + * @param center The coordinates of the new center. */ setCenter?(center:yfiles.geometry.Point):void; /** @@ -62445,8 +62512,8 @@ declare namespace system{ *

    * It is up to the caller to assure that the values describe a vector of length 1. *

    - * @param {number} upx The x component of the normalized up vector. - * @param {number} upy The y component of the normalized up vector. + * @param upx The x component of the normalized up vector. + * @param upy The y component of the normalized up vector. * @see yfiles.geometry.IOrientedRectangle#upX * @see yfiles.geometry.IOrientedRectangle#upY * @abstract @@ -62493,13 +62560,13 @@ declare namespace system{ export interface IMutablePoint extends Object,yfiles.geometry.IPoint{ /** * Sets the coordinates of the point to the given values. - * @param {number} x The new x coordinate - * @param {number} y The new y coordinate + * @param x The new x coordinate + * @param y The new y coordinate */ relocate?(x:number,y:number):void; /** * Sets the coordinates of the point to the given values. - * @param {yfiles.geometry.IPoint} location The new location. + * @param location The new location. */ relocate?(location:yfiles.geometry.IPoint):void; /** @@ -62553,7 +62620,7 @@ declare namespace system{ * If the rectangle is initially empty, i.e. its width or height is negative, the bounds of the rectangle will be set to * (p.x, p.y, 0, 0) *

    - * @param {yfiles.geometry.IPoint} point The coordinate to include in the bounds. + * @param point The coordinate to include in the bounds. */ add?(point:yfiles.geometry.IPoint):void; /** @@ -62562,31 +62629,31 @@ declare namespace system{ * The result is placed into the first rectangle, which is returned. If either of the two rectangles is empty, i.e. it's * width or height is negative, the result will be the other rectangle. *

    - * @param {yfiles.geometry.IRectangle} rectangle2 The rectangle to be added. + * @param rectangle2 The rectangle to be added. */ add?(rectangle2:yfiles.geometry.IRectangle):void; /** * Applies a new position and size to a given mutable rectangle. - * @param {number} x The new x coordinate of the upper left corner of the rectangle. - * @param {number} y The new y coordinate of the upper left corner of the rectangle. - * @param {number} width The new width of the rectangle. - * @param {number} height The new height of the rectangle. + * @param x The new x coordinate of the upper left corner of the rectangle. + * @param y The new y coordinate of the upper left corner of the rectangle. + * @param width The new width of the rectangle. + * @param height The new height of the rectangle. */ reshape?(x:number,y:number,width:number,height:number):void; /** * Applies a new position and size to a given mutable rectangle. - * @param {yfiles.geometry.IPoint} position The new location. - * @param {yfiles.geometry.ISize} size The new size. + * @param position The new location. + * @param size The new size. */ reshape?(position:yfiles.geometry.IPoint,size:yfiles.geometry.ISize):void; /** * Applies a new position and size to a given mutable rectangle. - * @param {yfiles.geometry.IRectangle} newRectangle The bounds to set to the rectangle. + * @param newRectangle The bounds to set to the rectangle. */ reshape?(newRectangle:yfiles.geometry.IRectangle):void; /** * Sets the center of the rectangle to the provided value. - * @param {yfiles.geometry.Point} center The new center coordinates. + * @param center The new center coordinates. */ setCenter?(center:yfiles.geometry.Point):void; /** @@ -62595,8 +62662,8 @@ declare namespace system{ * Either of the two parameters rectangles may be the same as the first parameter. The result is placed into the this * parameter. This method treats rectangles with negative width or height as empty. *

    - * @param {yfiles.geometry.IRectangle} rectangle1 The first rectangle to create the union of. - * @param {yfiles.geometry.IRectangle} rectangle2 The second rectangle to create the union of. + * @param rectangle1 The first rectangle to create the union of. + * @param rectangle2 The second rectangle to create the union of. */ setToUnion?(rectangle1:yfiles.geometry.IRectangle,rectangle2:yfiles.geometry.IRectangle):void; } @@ -62617,18 +62684,13 @@ declare namespace system{ export interface IMutableSize extends Object,yfiles.geometry.ISize{ /** * Sets the coordinates of the size to the given values. - * @param {number} newWidth The new x coordinate - * @param {number} newHeight The new y coordinate + * @param newWidth The new x coordinate + * @param newHeight The new y coordinate */ resize?(newWidth:number,newHeight:number):void; - /** - * Sets the values of the size to the given values. - * @param {yfiles.geometry.Size} newSize The new location. - */ - resize?(newSize:yfiles.geometry.Size):void; /** * Sets the coordinates of the size to the given values. - * @param {yfiles.geometry.ISize} newSize The new location. + * @param newSize The new location. */ resize?(newSize:yfiles.geometry.ISize):void; /** @@ -62681,29 +62743,29 @@ declare namespace system{ export interface IOrientedRectangle extends Object,yfiles.geometry.ISize{ /** * Determines whether the given oriented rectangle contains the provided point, using an epsilon value. - * @param {yfiles.geometry.Point} point The coordinates of the point to test. - * @param {number} eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * @param point The coordinates of the point to test. + * @param eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than * or equal to that value, it will be considered a hit. - * @returns {boolean} true iff the point lies inside the rectangle. + * @returns true iff the point lies inside the rectangle. */ containsWithEps?(point:yfiles.geometry.Point,eps:number):boolean; /** * Creates a transformation matrix that can be used to transform points that are in the local coordinate system of the * oriented rectangle if the top-left corner is the origin. - * @returns {yfiles.geometry.Matrix} A matrix that can be used to transform from oriented rectangle coordinates to world coordinates. + * @returns A matrix that can be used to transform from oriented rectangle coordinates to world coordinates. */ createTransform?():yfiles.geometry.Matrix; /** * Determines whether the oriented rectangle contains the provided point, using an epsilon value. - * @param {yfiles.geometry.Point} location The coordinates of the point to test. - * @param {number} eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * @param location The coordinates of the point to test. + * @param eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than * or equal to that value, it will be considered a hit. - * @returns {boolean} true iff the point lies inside the rectangle. + * @returns true iff the point lies inside the rectangle. */ hits?(location:yfiles.geometry.Point,eps:number):boolean; /** * Creates a {@link yfiles.algorithms.YOrientedRectangle} from a given {@link yfiles.geometry.IOrientedRectangle}. - * @returns {yfiles.algorithms.YOrientedRectangle} The {@link yfiles.algorithms.YOrientedRectangle}. + * @returns The {@link }. */ toOrientedRectangle?():yfiles.algorithms.YOrientedRectangle; /** @@ -62746,19 +62808,16 @@ declare namespace system{ upY:number; /** * Gets the up vector of the oriented rectangle as a {@link yfiles.geometry.Point} struct. - * @returns The value of the up vector of the rectangle at the time of the invocation. * @type {yfiles.geometry.Point} */ upVector?:yfiles.geometry.Point; /** * Gets the anchor location of the oriented rectangle as a {@link yfiles.geometry.Point} struct. - * @returns The anchor location of the rectangle at the time of the invocation. * @type {yfiles.geometry.Point} */ anchorLocation?:yfiles.geometry.Point; /** * Gets the current center of the oriented rectangle as a {@link yfiles.geometry.Point} struct. - * @returns The current coordinates of the center. * @type {yfiles.geometry.Point} */ orientedRectangleCenter?:yfiles.geometry.Point; @@ -62767,7 +62826,6 @@ declare namespace system{ *

    * Bounding rectangles are parallel to the coordinate axes. *

    - * @returns The bounds. * @type {yfiles.geometry.Rect} */ bounds?:yfiles.geometry.Rect; @@ -62798,8 +62856,8 @@ declare namespace system{ export interface IPoint extends Object{ /** * Calculates the Euclidean distance between two points. - * @param {yfiles.geometry.IPoint} point2 The second point. - * @returns {number} The distance between the two points. + * @param point2 The second point. + * @returns The distance between the two points. */ distanceTo?(point2:yfiles.geometry.IPoint):number; /** @@ -62808,7 +62866,7 @@ declare namespace system{ * This method is useful to obtain a copy of the state and for making use of the various utility methods that are provided * by {@link yfiles.geometry.Point}. *

    - * @returns {yfiles.geometry.Point} The current values of the coordinates of the point. + * @returns The current values of the coordinates of the point. * @see yfiles.geometry.Point#toMutablePoint */ toPoint?():yfiles.geometry.Point; @@ -62858,14 +62916,14 @@ declare namespace system{ export interface IRectangle extends Object,yfiles.geometry.ISize,yfiles.geometry.IPoint{ /** * Determines whether the given rectangle contains the provided point. - * @param {yfiles.geometry.Point} point The point to test. - * @returns {boolean} true iff the point lies inside the rectangle. + * @param point The point to test. + * @returns true iff the point lies inside the rectangle. */ contains?(point:yfiles.geometry.Point):boolean; /** * Determines whether the given rectangle contains the provided point. - * @param {yfiles.geometry.IPoint} point The point to test. - * @returns {boolean} true iff the point lies inside the rectangle. + * @param point The point to test. + * @returns true iff the point lies inside the rectangle. */ contains?(point:yfiles.geometry.IPoint):boolean; /** @@ -62874,26 +62932,23 @@ declare namespace system{ * This method can be used to obtain a copy of the current state of the rectangle and for using the utility methods that * are available for the {@link yfiles.geometry.Rect} type. *

    - * @returns {yfiles.geometry.Rect} A {@link yfiles.geometry.Rect} that holds the values of the rectangle at the time of the invocation. + * @returns A {@link } that holds the values of the rectangle at the time of the invocation. * @see yfiles.geometry.IMutableRectangle#reshape * @see yfiles.geometry.Rect#toMutableRectangle */ toRect?():yfiles.geometry.Rect; /** * Gets the coordinates of the top left corner of the rectangle as a {@link yfiles.geometry.Point}. - * @returns The current coordinates of the corner. * @type {yfiles.geometry.Point} */ topLeft?:yfiles.geometry.Point; /** * Gets the coordinates of the bottom left corner of the rectangle as a {@link yfiles.geometry.Point}. - * @returns The current coordinates of the corner. * @type {yfiles.geometry.Point} */ bottomLeft?:yfiles.geometry.Point; /** * Gets the coordinates of the center of the rectangle as a {@link yfiles.geometry.Point}. - * @returns The current coordinates of the center. * @type {yfiles.geometry.Point} */ center?:yfiles.geometry.Point; @@ -62902,7 +62957,6 @@ declare namespace system{ *

    * This is the x coordinate of the right side of the rectangle, or the left side if the rectangle is {@link yfiles.geometry.IRectangle#isEmpty}. *

    - * @returns The maximum x coordinate of the rectangle's corners. * @type {number} */ maxX?:number; @@ -62911,7 +62965,6 @@ declare namespace system{ *

    * {@link yfiles.geometry.IRectangle} instances are considered empty if their {@link yfiles.geometry.ISize#width} or {@link yfiles.geometry.ISize#height} is less than 0.0d. *

    - * @returns true if the specified rectangle is empty; false otherwise. * @type {boolean} */ isEmpty?:boolean; @@ -62920,19 +62973,16 @@ declare namespace system{ *

    * This is the y coordinate of the bottom side of the rectangle, or the top side if the rectangle is {@link yfiles.geometry.IRectangle#isEmpty}. *

    - * @returns The maximum y coordinate of the rectangle's corners. * @type {number} */ maxY?:number; /** * Gets the coordinates of the top right corner of the rectangle as a {@link yfiles.geometry.Point}. - * @returns The current coordinates of the corner. * @type {yfiles.geometry.Point} */ topRight?:yfiles.geometry.Point; /** * Gets the coordinates of the bottom right corner of the rectangle as a {@link yfiles.geometry.Point}. - * @returns The current coordinates of the corner. * @type {yfiles.geometry.Point} */ bottomRight?:yfiles.geometry.Point; @@ -62956,7 +63006,7 @@ declare namespace system{ export interface ISize extends Object{ /** * Converts the {@link yfiles.geometry.ISize} to a {@link yfiles.geometry.Size} struct. - * @returns {yfiles.geometry.Size} A {@link yfiles.geometry.Size} struct that has been initialized with the current values of size. + * @returns A {@link } struct that has been initialized with the current values of size. */ toSize?():yfiles.geometry.Size; /** @@ -63013,7 +63063,7 @@ declare namespace system{ * {@link yfiles.geometry.MatrixOrder#PREPEND Prepending} a matrix T to this instance results in the operation M′ = M T. In concept, this means that T is applied before M * when applying M' to a vector. {@link yfiles.geometry.MatrixOrder#APPEND Appending} T to M results in M′ = T M. *

    - * @class yfiles.geometry.Matrix + * @class * @implements {yfiles.lang.ICloneable} * @final */ @@ -63021,41 +63071,39 @@ declare namespace system{ export class Matrix { /** * Create a matrix using the provided matrix entries. - * @param {number} m11 - * @param {number} m12 - * @param {number} m21 - * @param {number} m22 - * @param {number} dx - * @param {number} dy - * @constructor + * @param m11 + * @param m12 + * @param m21 + * @param m22 + * @param dx + * @param dy */ constructor(m11:number,m12:number,m21:number,m22:number,dx:number,dy:number); /** * Create an identity matrix. - * @constructor */ constructor(); /** * Applies this matrix to the given SVG element. - * @param {SVGElement} element The element to transform. + * @param element The element to transform. */ applyTo(element:SVGElement):void; /** * Applies this matrix to the given HTML canvas rendering context. - * @param {CanvasRenderingContext2D} ctx The context to transform. + * @param ctx The context to transform. */ applyTo(ctx:CanvasRenderingContext2D):void; /** * Creates a matrix rotation instance around the origin. - * @param {number} theta The rotation angle in radians. - * @returns {yfiles.geometry.Matrix} A new matrix. + * @param theta The rotation angle in radians. + * @returns A new matrix. * @static */ static createRotateInstance(theta:number):yfiles.geometry.Matrix; /** * Determines whether this has the same values like other. - * @param {yfiles.geometry.Matrix} other The object to compare this to. Must be of the same type. - * @returns {boolean} true if this has the same values like the other object. + * @param other The object to compare this to. Must be of the same type. + * @returns true if this has the same values like the other object. */ hasSameValue(other:yfiles.geometry.Matrix):boolean; /** @@ -63064,8 +63112,8 @@ declare namespace system{ invert():void; /** * Multiplies this matrix instance by the given instance using the given order. - * @param {yfiles.geometry.Matrix} matrix The matrix to multiply with this one. - * @param {yfiles.geometry.MatrixOrder} [order=yfiles.geometry.MatrixOrder.PREPEND] The order of the multiplication. {@link yfiles.geometry.MatrixOrder#PREPEND} if not specified. + * @param matrix The matrix to multiply with this one. + * @param [order=yfiles.geometry.MatrixOrder.PREPEND] The order of the multiplication. {@link #PREPEND} if not specified. */ multiply(matrix:yfiles.geometry.Matrix,order?:yfiles.geometry.MatrixOrder):void; /** @@ -63074,37 +63122,37 @@ declare namespace system{ reset():void; /** * Prepends or appends a rotation operation to this matrix around the specified rotation center. - * @param {number} theta The rotation angle in radians - * @param {yfiles.geometry.Point} center The coordinate of the center of the rotation. - * @param {yfiles.geometry.MatrixOrder} [order=yfiles.geometry.MatrixOrder.PREPEND] Whether to append or prepend the rotation matrix. + * @param theta The rotation angle in radians + * @param center The coordinate of the center of the rotation. + * @param [order=yfiles.geometry.MatrixOrder.PREPEND] Whether to append or prepend the rotation matrix. */ rotate(theta:number,center:yfiles.geometry.Point,order?:yfiles.geometry.MatrixOrder):void; /** * Prepends or appends a rotation operation to this matrix around the origin. - * @param {number} theta The rotation angle in radians - * @param {yfiles.geometry.MatrixOrder} [order=yfiles.geometry.MatrixOrder.PREPEND] Whether to append or prepend the rotation matrix. + * @param theta The rotation angle in radians + * @param [order=yfiles.geometry.MatrixOrder.PREPEND] Whether to append or prepend the rotation matrix. */ rotate(theta:number,order?:yfiles.geometry.MatrixOrder):void; /** * Appends or prepends a scale operation to this instance. - * @param {number} x - * @param {number} y - * @param {yfiles.geometry.MatrixOrder} [order=0] + * @param x + * @param y + * @param [order=yfiles.geometry.MatrixOrder.PREPEND] */ scale(x:number,y:number,order?:yfiles.geometry.MatrixOrder):void; /** * Sets all elements of this instance. - * @param {number} m0 - * @param {number} m1 - * @param {number} m2 - * @param {number} m3 - * @param {number} dx - * @param {number} dy + * @param m0 + * @param m1 + * @param m2 + * @param m3 + * @param dx + * @param dy */ set(m0:number,m1:number,m2:number,m3:number,dx:number,dy:number):void; /** * Sets the values of the given matrix to this instance. - * @param {yfiles.geometry.Matrix} matrix + * @param matrix */ set(matrix:yfiles.geometry.Matrix):void; /** @@ -63112,25 +63160,25 @@ declare namespace system{ *

    * The returned string can be used in a transform attribute. *

    - * @returns {string} The transform string + * @returns The transform string */ toSvgTransform():string; /** * Transforms the given coordinate. - * @param {yfiles.geometry.Point} point The coordinate to transform. - * @returns {yfiles.geometry.Point} The transformed coordinates. + * @param point The coordinate to transform. + * @returns The transformed coordinates. */ transform(point:yfiles.geometry.Point):yfiles.geometry.Point; /** * Transforms the given point in place. - * @param {yfiles.geometry.IMutablePoint} point The point to transform and return. - * @returns {yfiles.geometry.IMutablePoint} point + * @param point The point to transform and return. + * @returns point */ transform(point:yfiles.geometry.IMutablePoint):yfiles.geometry.IMutablePoint; /** * Appends or Prepends a translation to this instance. - * @param {yfiles.geometry.Point} delta - * @param {yfiles.geometry.MatrixOrder} [order=0] + * @param delta + * @param [order=yfiles.geometry.MatrixOrder.PREPEND] */ translate(delta:yfiles.geometry.Point,order?:yfiles.geometry.MatrixOrder):void; /** @@ -63150,7 +63198,7 @@ declare namespace system{ * implements the {@link yfiles.lang.ICloneable} interface. *

    * @see yfiles.geometry.IPoint - * @class yfiles.geometry.MutablePoint + * @class * @implements {yfiles.geometry.IMutablePoint} * @implements {yfiles.lang.ICloneable} * @final @@ -63159,25 +63207,22 @@ declare namespace system{ export class MutablePoint { /** * Creates an instance using the given coordinate pair. - * @param {number} x The x coordinate - * @param {number} y The y coordinate - * @constructor + * @param x The x coordinate + * @param y The y coordinate */ constructor(x:number,y:number); /** * Creates an instance using the given coordinate pair. - * @param {yfiles.geometry.IPoint} point The coordinate. - * @constructor + * @param point The coordinate. */ constructor(point:yfiles.geometry.IPoint); /** * Creates the point with initially 0.0d values for {@link yfiles.geometry.MutablePoint#x} and {@link yfiles.geometry.MutablePoint#y}. - * @constructor */ constructor(); /** * Moves this instance by adding the provided offsets to the coordinates of this point. - * @param {yfiles.geometry.Point} delta The offset to add to this point's x coordinate + * @param delta The offset to add to this point's x coordinate */ moveBy(delta:yfiles.geometry.Point):void; /** @@ -63210,7 +63255,7 @@ declare namespace system{ *

    * @see yfiles.geometry.IRectangle * @see yfiles.geometry.IMutableRectangle - * @class yfiles.geometry.MutableRectangle + * @class * @implements {yfiles.geometry.IMutableRectangle} * @implements {yfiles.geometry.IOrientedRectangle} * @implements {yfiles.lang.ICloneable} @@ -63224,11 +63269,10 @@ declare namespace system{ * An instance of {@link yfiles.geometry.MutablePoint} will be used to store the position and an instance of {@link yfiles.geometry.MutableRectangle#size} will be used to store * the size. *

    - * @param {number} x The x coordinate of the upper left corner of the rectangle. - * @param {number} y The y coordinate of the upper left corner of the rectangle. - * @param {number} width The width of the rectangle. - * @param {number} height The height of the rectangle. - * @constructor + * @param x The x coordinate of the upper left corner of the rectangle. + * @param y The y coordinate of the upper left corner of the rectangle. + * @param width The width of the rectangle. + * @param height The height of the rectangle. */ constructor(x:number,y:number,width:number,height:number); /** @@ -63237,9 +63281,8 @@ declare namespace system{ * An instance of {@link yfiles.geometry.MutablePoint} will be used to store the position and an instance of {@link yfiles.geometry.MutableRectangle#size} will be used to store * the size. *

    - * @param {yfiles.geometry.Point} location The coordinates of the upper left corner of the rectangle. - * @param {yfiles.geometry.Size} size The size of the rectangle. - * @constructor + * @param location The coordinates of the upper left corner of the rectangle. + * @param size The size of the rectangle. */ constructor(location:yfiles.geometry.Point,size:yfiles.geometry.Size); /** @@ -63249,25 +63292,22 @@ declare namespace system{ * instances. Changes to them will indirectly change the state of this instance and changes applied through this instance * will be written to the referenced implementations. *

    - * @param {yfiles.geometry.IMutablePoint} location The provider for the dynamic position of this instance. - * @param {yfiles.geometry.IMutableSize} size The provider for the dynamic size of this instance. - * @constructor + * @param location The provider for the dynamic position of this instance. + * @param size The provider for the dynamic size of this instance. */ constructor(location:yfiles.geometry.IMutablePoint,size:yfiles.geometry.IMutableSize); /** * Creates a new instance initialized to the values of the provided argument. - * @param {yfiles.geometry.IRectangle} rectangle - * @constructor + * @param rectangle */ constructor(rectangle:yfiles.geometry.IRectangle); /** * Creates a new empty instance located at the origin with width and height set to -1. - * @constructor */ constructor(); /** * Moves this rectangle by applying the offset to the {@link yfiles.geometry.MutableRectangle#location} - * @param {yfiles.geometry.Point} delta The offset to move the rectangle's position by. + * @param delta The offset to move the rectangle's position by. */ moveBy(delta:yfiles.geometry.Point):void; /** @@ -63393,7 +63433,7 @@ declare namespace system{ * This implementation stores the values of the width and height in double precision floating point members. *

    * @see yfiles.geometry.ISize - * @class yfiles.geometry.MutableSize + * @class * @implements {yfiles.geometry.IMutableSize} * @implements {yfiles.lang.ICloneable} * @final @@ -63402,9 +63442,8 @@ declare namespace system{ export class MutableSize { /** * Creates an instance using the given width and height. - * @param {number} width The width. - * @param {number} height The height - * @constructor + * @param width The width. + * @param height The height */ constructor(width:number,height:number); /** @@ -63413,14 +63452,11 @@ declare namespace system{ * This will not create a dynamic instance. The values will be copied from size immediately and no reference is held to * that instance thereafter. *

    - * @param {yfiles.geometry.ISize} size A size to retrieve the initial values from. - * @returns A instance of the Size class. - * @constructor + * @param size A size to retrieve the initial values from. */ constructor(size:yfiles.geometry.ISize); /** * Creates the initially empty size, that is both {@link yfiles.geometry.MutableSize#width} and {@link yfiles.geometry.MutableSize#height} are 0.0d. - * @constructor */ constructor(); /** @@ -63446,7 +63482,7 @@ declare namespace system{ *

    * @see yfiles.geometry.IOrientedRectangle * @see yfiles.geometry.IMutableOrientedRectangle - * @class yfiles.geometry.OrientedRectangle + * @class * @implements {yfiles.geometry.IMutablePoint} * @implements {yfiles.geometry.IMutableOrientedRectangle} * @implements {yfiles.lang.ICloneable} @@ -63462,9 +63498,8 @@ declare namespace system{ * provided instances. Changes to them will indirectly change the state of this instance and changes applied through this * instance will be written to the referenced implementations. *

    - * @param {yfiles.geometry.IMutablePoint} anchor The provider for the dynamic anchor of this instance. - * @param {yfiles.geometry.IMutableSize} size The provider for the dynamic size of this instance. - * @constructor + * @param anchor The provider for the dynamic anchor of this instance. + * @param size The provider for the dynamic size of this instance. */ constructor(anchor:yfiles.geometry.IMutablePoint,size:yfiles.geometry.IMutableSize); /** @@ -63472,8 +63507,7 @@ declare namespace system{ *

    * This will basically create a copy of the given rectangle *

    - * @param {yfiles.geometry.IOrientedRectangle} rectangle The rectangle to initialize the anchor and size and up vector from. - * @constructor + * @param rectangle The rectangle to initialize the anchor and size and up vector from. */ constructor(rectangle:yfiles.geometry.IOrientedRectangle); /** @@ -63482,8 +63516,7 @@ declare namespace system{ * The anchor will be set to the lower left corner of the provided rectangle. Thus this instance will have the exact same * bounds as the rectangle initially. The up vector will be initialized to (0, -1). *

    - * @param {yfiles.geometry.IRectangle} rectangle The rectangle to initialize the anchor and size from. - * @constructor + * @param rectangle The rectangle to initialize the anchor and size from. */ constructor(rectangle:yfiles.geometry.IRectangle); /** @@ -63491,13 +63524,12 @@ declare namespace system{ *

    * It is up to the caller to ensure that the up vector is normalized. *

    - * @param {number} anchorX The x coordinate of the anchor of the oriented rectangle. - * @param {number} anchorY The y coordinate of the anchor of the oriented rectangle. - * @param {number} width The width of the rectangle. - * @param {number} height The height of the rectangle. - * @param {number} [upX=0] The x component of the up vector. - * @param {number} [upY=-1] The y component of the up vector. - * @constructor + * @param anchorX The x coordinate of the anchor of the oriented rectangle. + * @param anchorY The y coordinate of the anchor of the oriented rectangle. + * @param width The width of the rectangle. + * @param height The height of the rectangle. + * @param [upX=0] The x component of the up vector. + * @param [upY=-1] The y component of the up vector. */ constructor(anchorX:number,anchorY:number,width:number,height:number,upX?:number,upY?:number); /** @@ -63506,19 +63538,17 @@ declare namespace system{ * It is up to the caller to ensure that the up vector is normalized. *

    * @param {Object} options The parameters to pass. - * @param {number} options.anchorX The x coordinate of the anchor of the oriented rectangle. - * @param {number} options.anchorY The y coordinate of the anchor of the oriented rectangle. - * @param {number} options.width The width of the rectangle. - * @param {number} options.height The height of the rectangle. - * @param {number} [options.upX=0] The x component of the up vector. - * @param {number} [options.upY=-1] The y component of the up vector. - * @constructor + * @param options.anchorX The x coordinate of the anchor of the oriented rectangle. + * @param options.anchorY The y coordinate of the anchor of the oriented rectangle. + * @param options.width The width of the rectangle. + * @param options.height The height of the rectangle. + * @param [options.upX=0] The x component of the up vector. + * @param [options.upY=-1] The y component of the up vector. */ constructor(options:{anchorX:number,anchorY:number,width:number,height:number,upX?:number,upY?:number}); /** * Initializes a new instance of the {@link yfiles.geometry.OrientedRectangle} class located at 0.0d,0.0d with empty width and * height (-1.0d). - * @constructor */ constructor(); /** @@ -63530,32 +63560,31 @@ declare namespace system{ * (0, -1). Unlike true casting this will create a new instance that will be initialized to the current state of the object * being cast, but which will not stay in sync with the state of the object. *

    - * @param {yfiles.geometry.MutableRectangle} rect the rectangle to get the current state from - * @returns {yfiles.geometry.OrientedRectangle} A new instance of {@link yfiles.geometry.OrientedRectangle} that holds no reference to the provided rectangle. + * @param rect the rectangle to get the current state from + * @returns A new instance of {@link } that holds no reference to the provided rectangle. * @static */ static convertFrom(rect:yfiles.geometry.MutableRectangle):yfiles.geometry.OrientedRectangle; /** * Creates an immutable {@link yfiles.geometry.IOrientedRectangle} with the given values. - * @param {number} anchorX - * @param {number} anchorY - * @param {number} width - * @param {number} height - * @param {number} upX - * @param {number} upY - * @returns {yfiles.geometry.IOrientedRectangle} + * @param anchorX + * @param anchorY + * @param width + * @param height + * @param upX + * @param upY + * @returns * @static */ static createImmutable(anchorX:number,anchorY:number,width:number,height:number,upX:number,upY:number):yfiles.geometry.IOrientedRectangle; /** * Moves this rectangle by applying the offset to the {@link yfiles.geometry.OrientedRectangle#anchor} - * @param {yfiles.geometry.Point} delta The offset to move the rectangle's anchor by. - * @returns true iff dx != 0 || dy != 0 + * @param delta The offset to move the rectangle's anchor by. */ moveBy(delta:yfiles.geometry.Point):void; /** * Applies the values provided by the given instance to the values of this instance. - * @param {yfiles.geometry.IOrientedRectangle} rectangle The instance to retrieve the values from. + * @param rectangle The instance to retrieve the values from. */ reshape(rectangle:yfiles.geometry.IOrientedRectangle):void; /** @@ -63563,8 +63592,8 @@ declare namespace system{ *

    * It is up to the caller to assure that the values describe a vector of length 1. *

    - * @param {number} upx The x component of the normalized up vector. - * @param {number} upy The y component of the normalized up vector. + * @param upx The x component of the normalized up vector. + * @param upy The y component of the normalized up vector. * @see yfiles.geometry.OrientedRectangle#angle */ setUpVector(upx:number,upy:number):void; @@ -63682,7 +63711,7 @@ declare namespace system{ }export namespace styles{ /** * A default implementation of the {@link yfiles.styles.IArrow} interface that can render {@link yfiles.styles.ArrowType}s. - * @class yfiles.styles.Arrow + * @class * @implements {yfiles.styles.IArrow} * @implements {yfiles.lang.ICloneable} * @final @@ -63694,8 +63723,7 @@ declare namespace system{ *

    * The {@link yfiles.styles.Arrow#stroke} is created with thickness 1. *

    - * @param {yfiles.view.Color} color The color to use for {@link yfiles.styles.Arrow#stroke} and brush. - * @constructor + * @param color The color to use for {@link #stroke} and brush. */ constructor(color:yfiles.view.Color); /** @@ -63704,7 +63732,7 @@ declare namespace system{ * The {@link yfiles.styles.Arrow#stroke} is created with thickness 1. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.view.Color} options.color The color to use for {@link yfiles.styles.Arrow#stroke} and brush. + * @param options.color The color to use for {@link #stroke} and brush. * @param {number} options.cropLength The cropping length associated with this instance. *

    * This option sets the {@link yfiles.styles.Arrow#cropLength} property on the created object. @@ -63721,7 +63749,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.Arrow#type} property on the created object. *

    - * @constructor */ constructor(options:{color:yfiles.view.Color,cropLength?:number,stroke?:yfiles.view.Stroke,scale?:number,type?:yfiles.styles.ArrowType}); /** @@ -63747,17 +63774,16 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.Arrow#type} property on the created object. *

    - * @constructor */ constructor(options?:{fill?:yfiles.view.Fill,cropLength?:number,stroke?:yfiles.view.Stroke,scale?:number,type?:yfiles.styles.ArrowType}); /** * Returns an immutable {@link yfiles.styles.IArrow} instance that uses the current properties. - * @returns {yfiles.styles.IArrow} An immutable instance + * @returns An immutable instance */ asFrozen():yfiles.styles.IArrow; /** * Gets or sets the type of this arrow. - * @default 1 + * @default yfiles.styles.ArrowType.DEFAULT * @type {yfiles.styles.ArrowType} */ type:yfiles.styles.ArrowType; @@ -63800,7 +63826,7 @@ declare namespace system{ *
      *
    • Tutorial: 02 Custom Styles, step 18 Edge Cropping
    • *
    - * @class yfiles.styles.DefaultEdgePathCropper + * @class * @implements {yfiles.styles.IEdgePathCropper} */ export interface DefaultEdgePathCropper extends Object,yfiles.styles.IEdgePathCropper{} @@ -63811,9 +63837,9 @@ declare namespace system{ * This method can be overridden to change the length that is cropped from an edge. The default implementation returns the * sum of {@link yfiles.styles.DefaultEdgePathCropper#extraCropLength}, {@link yfiles.styles.IArrow#length arrow length} and {@link yfiles.styles.IArrow#cropLength arrow crop length} *

    - * @param {yfiles.styles.IArrow} arrow The arrow at this edge end. - * @param {boolean} atSource true if the crop length should be calculated at the edge source. false otherwise. - * @returns {number} The total length the edge path is cropped. + * @param arrow The arrow at this edge end. + * @param atSource true if the crop length should be calculated at the edge source. false otherwise. + * @returns The total length the edge path is cropped. * @see yfiles.styles.DefaultEdgePathCropper#cropEdgePath * @see yfiles.styles.DefaultEdgePathCropper#cropEdgePathAtArrow * @protected @@ -63826,11 +63852,11 @@ declare namespace system{ * the edge path is cropped at the {@link yfiles.styles.DefaultEdgePathCropper#getNodeGeometry node geometry}. If this would result in an empty path, the cropping is delegated to {@link yfiles.styles.DefaultEdgePathCropper#handleEmptyPath} * instead. *

    - * @param {yfiles.graph.IEdge} edge The edge whose path is to be cropped. - * @param {boolean} atSource Whether to crop the source or target side of the path. - * @param {yfiles.styles.IArrow} arrow The arrow that is used at the end of the edge. - * @param {yfiles.geometry.GeneralPath} path The path to crop. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param edge The edge whose path is to be cropped. + * @param atSource Whether to crop the source or target side of the path. + * @param arrow The arrow that is used at the end of the edge. + * @param path The path to crop. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. */ cropEdgePath(edge:yfiles.graph.IEdge,atSource:boolean,arrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; /** @@ -63839,30 +63865,30 @@ declare namespace system{ * The path is cropped by the length {@link yfiles.styles.DefaultEdgePathCropper#calculateTotalCropLength} returns for arrow and * atSource. *

    - * @param {boolean} atSource if set to true the source side is cropped. - * @param {yfiles.styles.IArrow} arrow The arrow to consider for the cropping. - * @param {yfiles.geometry.GeneralPath} path The edge's path to crop. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param atSource if set to true the source side is cropped. + * @param arrow The arrow to consider for the cropping. + * @param path The edge's path to crop. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. */ cropEdgePathAtArrow(atSource:boolean,arrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; /** * Crops an edge's path at the source or target side at the {@link yfiles.styles.DefaultEdgePathCropper#getPortGeometry port geometry} with respect to the given arrow. - * @param {yfiles.graph.IEdge} edge The edge whose path is to be cropped. - * @param {boolean} atSource Whether to crop the source or target side of the path. - * @param {yfiles.styles.IArrow} arrow The arrow that is used at the end of the edge. - * @param {yfiles.geometry.GeneralPath} path The path to crop. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param edge The edge whose path is to be cropped. + * @param atSource Whether to crop the source or target side of the path. + * @param arrow The arrow that is used at the end of the edge. + * @param path The path to crop. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. * @protected */ cropEdgePathAtPortGeometry(edge:yfiles.graph.IEdge,atSource:boolean,arrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; /** * Finds the intersection between a node and the edge. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.IShapeGeometry} nodeShapeGeometry - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param node + * @param nodeShapeGeometry + * @param edge + * @param inner + * @param outer + * @returns * @protected */ getIntersection(node:yfiles.graph.INode,nodeShapeGeometry:yfiles.styles.IShapeGeometry,edge:yfiles.graph.IEdge,inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; @@ -63872,8 +63898,8 @@ declare namespace system{ * The default implementation queries the {@link yfiles.styles.INodeStyleRenderer#getShapeGeometry node style renderer} for an implementation of {@link yfiles.styles.IShapeGeometry}. This * method can be overridden to return an arbitrary {@link yfiles.styles.IShapeGeometry geometry} for a node. *

    - * @param {yfiles.graph.INode} node The node the edge should be cropped at. - * @returns {yfiles.styles.IShapeGeometry} The {@link yfiles.styles.IShapeGeometry geometry} of the node. + * @param node The node the edge should be cropped at. + * @returns The {@link geometry} of the node. * @protected */ getNodeGeometry(node:yfiles.graph.INode):yfiles.styles.IShapeGeometry; @@ -63882,8 +63908,8 @@ declare namespace system{ *

    * The default implementation returns null. This method can be overridden to return an arbitrary {@link yfiles.styles.IShapeGeometry geometry} for a port. *

    - * @param {yfiles.graph.IPort} port The port the edge should be cropped at. - * @returns {yfiles.styles.IShapeGeometry} The {@link yfiles.styles.IShapeGeometry geometry} of the port. + * @param port The port the edge should be cropped at. + * @returns The {@link geometry} of the port. * @see yfiles.styles.DefaultEdgePathCropper#cropAtPort * @protected */ @@ -63897,21 +63923,21 @@ declare namespace system{ *

    * The default implementation is to {@link yfiles.geometry.GeneralPath#clear} the edge path. *

    - * @param {yfiles.graph.IEdge} edge The edge whose path is to be cropped. - * @param {boolean} atSource Whether to crop the source or target side of the path. - * @param {yfiles.styles.IArrow} arrow The arrow that is used at the end of the edge. - * @param {yfiles.geometry.GeneralPath} path The path to crop. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param edge The edge whose path is to be cropped. + * @param atSource Whether to crop the source or target side of the path. + * @param arrow The arrow that is used at the end of the edge. + * @param path The path to crop. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. * @protected */ handleEmptyPath(edge:yfiles.graph.IEdge,atSource:boolean,arrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; /** * Checks whether a given point is inside a node's shape geometry with respect to the edge that is being calculated. - * @param {yfiles.geometry.Point} location - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.IShapeGeometry} nodeShapeGeometry - * @param {yfiles.graph.IEdge} edge - * @returns {boolean} + * @param location + * @param node + * @param nodeShapeGeometry + * @param edge + * @returns * @protected */ isInside(location:yfiles.geometry.Point,node:yfiles.graph.INode,nodeShapeGeometry:yfiles.styles.IShapeGeometry,edge:yfiles.graph.IEdge):boolean; @@ -63960,11 +63986,11 @@ declare namespace system{ /** * Gets an {@link yfiles.view.IBoundsProvider} implementation that can yield this arrow's bounds if painted at the given location * using the given direction for the given edge. - * @param {yfiles.graph.IEdge} edge the edge this arrow belongs to - * @param {boolean} atSource whether this will be the source arrow - * @param {yfiles.geometry.Point} anchor the anchor point for the tip of the arrow - * @param {yfiles.geometry.Point} directionVector the direction the arrow is pointing in - * @returns {yfiles.view.IBoundsProvider} an implementation of the {@link yfiles.view.IBoundsProvider} interface that can subsequently be used to query the bounds. + * @param edge the edge this arrow belongs to + * @param atSource whether this will be the source arrow + * @param anchor the anchor point for the tip of the arrow + * @param directionVector the direction the arrow is pointing in + * @returns an implementation of the {@link } interface that can subsequently be used to query the bounds. * Clients will always call this method before using the implementation and may not cache the instance returned. This * allows for applying the flyweight design pattern to implementations. * @abstract @@ -63973,11 +63999,11 @@ declare namespace system{ /** * Gets an {@link yfiles.view.IVisualCreator} implementation that will paint this arrow at the given location using the given * direction for the given edge. - * @param {yfiles.graph.IEdge} edge the edge this arrow belongs to - * @param {boolean} atSource whether this will be the source arrow - * @param {yfiles.geometry.Point} anchor the anchor point for the tip of the arrow - * @param {yfiles.geometry.Point} direction the direction the arrow is pointing in - * @returns {yfiles.view.IVisualCreator} an implementation of the {@link yfiles.view.IVisualCreator} interface that can subsequently be used to perform the actual + * @param edge the edge this arrow belongs to + * @param atSource whether this will be the source arrow + * @param anchor the anchor point for the tip of the arrow + * @param direction the direction the arrow is pointing in + * @returns an implementation of the {@link } interface that can subsequently be used to perform the actual * painting. Clients will always call this method before using the implementation and may not cache the instance returned. * This allows for applying the flyweight design pattern to implementations. * @abstract @@ -64068,7 +64094,7 @@ declare namespace system{ * instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.graph.IEdge#style} property of an * {@link yfiles.graph.IEdge}. *

    - * @class yfiles.styles.VoidEdgeStyle + * @class * @implements {yfiles.styles.IEdgeStyle} * @final */ @@ -64076,16 +64102,16 @@ declare namespace system{ export class VoidEdgeStyle { /** * Returns this. - * @returns {Object} this + * @returns this */ clone():Object; /** * The {@link yfiles.styles.VoidEdgeStyle} singleton. * @const * @static - * @type {yfiles.styles.IEdgeStyle} + * @type {yfiles.styles.VoidEdgeStyle} */ - static INSTANCE:yfiles.styles.IEdgeStyle; + static INSTANCE:yfiles.styles.VoidEdgeStyle; /** * Yields the {@link yfiles.styles.VoidEdgeStyleRenderer#INSTANCE VoidEdgeStyleRenderer instance}. * @see yfiles.styles.IEdgeStyle#renderer @@ -64101,7 +64127,7 @@ declare namespace system{ * class instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.styles.IEdgeStyle#renderer} property of an * {@link yfiles.styles.IEdgeStyle}. *

    - * @class yfiles.styles.VoidEdgeStyleRenderer + * @class * @implements {yfiles.styles.IEdgeStyleRenderer} * @final */ @@ -64109,52 +64135,52 @@ declare namespace system{ export class VoidEdgeStyleRenderer { /** * Yields the {@link yfiles.view.IBoundsProvider#EMPTY} that will return empty bounds. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.view.IBoundsProvider} + * @param edge + * @param style + * @returns */ getBoundsProvider(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.view.IBoundsProvider; /** * Yields the {@link yfiles.graph.ILookup#EMPTY} that will not yield anything. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.graph.ILookup} + * @param edge + * @param style + * @returns */ getContext(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.graph.ILookup; /** * Yields the {@link yfiles.input.IHitTestable#NEVER} that will always report misses. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.input.IHitTestable} + * @param edge + * @param style + * @returns */ getHitTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.input.IHitTestable; /** * Yields the {@link yfiles.input.IMarqueeTestable#NEVER} that will always report misses. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.input.IMarqueeTestable} + * @param edge + * @param style + * @returns */ getMarqueeTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.input.IMarqueeTestable; /** * This method always returns the {@link yfiles.styles.VoidPathGeometry#INSTANCE VoidPathGeometry instance}. - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the rendering - * @returns {yfiles.styles.IPathGeometry} The {@link yfiles.styles.VoidPathGeometry#INSTANCE VoidPathGeometry instance}. + * @param edge The edge to provide an instance for + * @param style The style to use for the rendering + * @returns The {@link #INSTANCE VoidPathGeometry instance}. * @see yfiles.styles.IEdgeStyleRenderer#getPathGeometry */ getPathGeometry(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.styles.IPathGeometry; /** * Yields the {@link yfiles.view.IVisibilityTestable#NEVER} that will always claim invisibility. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.view.IVisibilityTestable} + * @param edge + * @param style + * @returns */ getVisibilityTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.view.IVisibilityTestable; /** * Yields the {@link yfiles.view.VoidVisualCreator#INSTANCE} that will do nothing. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.view.IVisualCreator} + * @param edge + * @param style + * @returns */ getVisualCreator(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.view.IVisualCreator; /** @@ -64172,7 +64198,7 @@ declare namespace system{ * This class implements the singleton pattern. Use the shared static {@link yfiles.styles.VoidPathGeometry#INSTANCE} of this class * instead of null were null is not allowed. The {@link yfiles.styles.VoidEdgeStyleRenderer} does so for example. *

    - * @class yfiles.styles.VoidPathGeometry + * @class * @implements {yfiles.styles.IPathGeometry} * @final */ @@ -64245,9 +64271,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the calculating the painting bounds - * @returns {yfiles.view.IBoundsProvider} An implementation that may be used to subsequently query the edge's painting bounds. Clients should not cache this + * @param edge The edge to provide an instance for + * @param style The style to use for the calculating the painting bounds + * @returns An implementation that may be used to subsequently query the edge's painting bounds. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64258,9 +64284,9 @@ declare namespace system{ *

    * Implementations may return {@link yfiles.graph.ILookup#EMPTY} if they don't support this, but may not return null. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide a context instance for. - * @param {yfiles.styles.IEdgeStyle} style The style to use for the context. - * @returns {yfiles.graph.ILookup} An non-null lookup implementation. + * @param edge The edge to provide a context instance for. + * @param style The style to use for the context. + * @returns An non-null lookup implementation. * @see yfiles.graph.ILookup#EMPTY * @see yfiles.graph.ILookup * @abstract @@ -64272,9 +64298,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the querying hit tests - * @returns {yfiles.input.IHitTestable} An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must + * @param edge The edge to provide an instance for + * @param style The style to use for the querying hit tests + * @returns An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must * always call this method immediately before using the value returned. This enables the use of the flyweight design * pattern for implementations. This method may return null to indicate that the edge cannot be hit tested. * @abstract @@ -64286,9 +64312,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the querying marquee intersection test. - * @returns {yfiles.input.IMarqueeTestable} An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this + * @param edge The edge to provide an instance for + * @param style The style to use for the querying marquee intersection test. + * @returns An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64300,9 +64326,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the rendering - * @returns {yfiles.styles.IPathGeometry} An implementation that may be used to subsequently query geometry information from. Clients should not cache this + * @param edge The edge to provide an instance for + * @param style The style to use for the rendering + * @returns An implementation that may be used to subsequently query geometry information from. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64314,9 +64340,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the testing the visibility - * @returns {yfiles.view.IVisibilityTestable} An implementation that may be used to subsequently query the edge's visibility. Clients should not cache this instance + * @param edge The edge to provide an instance for + * @param style The style to use for the testing the visibility + * @returns An implementation that may be used to subsequently query the edge's visibility. Clients should not cache this instance * and must always call this method immediately before using the value returned. This enables the use of the flyweight * design pattern for implementations * @abstract @@ -64328,11 +64354,11 @@ declare namespace system{ *

    * This method may return a flyweight implementation, but never null. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the creation of the visual - * @returns {yfiles.view.IVisualCreator} An implementation that may be used to subsequently create or update the visual for the edge. Clients should not cache + * @param edge The edge to provide an instance for + * @param style The style to use for the creation of the visual + * @returns An implementation that may be used to subsequently create or update the visual for the edge. Clients should not cache * this instance and must always call this method immediately before using the value returned. This enables the use of the - * flyweight design pattern for implementations. This method may not return null but should yield a {@link yfiles.view.VoidVisualCreator#INSTANCE void} implementation + * flyweight design pattern for implementations. This method may not return null but should yield a {@link #INSTANCE void} implementation * instead. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract @@ -64392,11 +64418,11 @@ declare namespace system{ export interface IEdgePathCropper extends Object{ /** * Crops the provided path at one end of an edge. - * @param {yfiles.graph.IEdge} edge The edge whose path is to be cropped. - * @param {boolean} atSource Whether to crop the source or target side of the path. - * @param {yfiles.styles.IArrow} arrow The arrow that is used at the end of the edge. - * @param {yfiles.geometry.GeneralPath} path The path to crop. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param edge The edge whose path is to be cropped. + * @param atSource Whether to crop the source or target side of the path. + * @param arrow The arrow that is used at the end of the edge. + * @param path The path to crop. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. * @abstract */ cropEdgePath(edge:yfiles.graph.IEdge,atSource:boolean,arrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; @@ -64412,7 +64438,7 @@ declare namespace system{ * instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.graph.ILabel#style} property of an * {@link yfiles.graph.ILabel}. *

    - * @class yfiles.styles.VoidLabelStyle + * @class * @implements {yfiles.styles.ILabelStyle} * @final */ @@ -64420,16 +64446,16 @@ declare namespace system{ export class VoidLabelStyle { /** * Returns this. - * @returns {Object} this + * @returns this */ clone():Object; /** * The singleton instance of this style. * @const * @static - * @type {yfiles.styles.ILabelStyle} + * @type {yfiles.styles.VoidLabelStyle} */ - static INSTANCE:yfiles.styles.ILabelStyle; + static INSTANCE:yfiles.styles.VoidLabelStyle; /** * Yields the {@link yfiles.styles.VoidLabelStyleRenderer#INSTANCE VoidLabelStyleRenderer instance}. * @see yfiles.styles.ILabelStyle#renderer @@ -64445,7 +64471,7 @@ declare namespace system{ * class instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.styles.ILabelStyle#renderer} property of an * {@link yfiles.styles.ILabelStyle}. *

    - * @class yfiles.styles.VoidLabelStyleRenderer + * @class * @implements {yfiles.styles.ILabelStyleRenderer} * @final */ @@ -64453,51 +64479,51 @@ declare namespace system{ export class VoidLabelStyleRenderer { /** * Yields the {@link yfiles.view.IBoundsProvider#EMPTY} that will return empty bounds. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.view.IBoundsProvider} + * @param label + * @param style + * @returns */ getBoundsProvider(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IBoundsProvider; /** * Yields the {@link yfiles.graph.ILookup#EMPTY} that will not yield anything. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.graph.ILookup} + * @param label + * @param style + * @returns */ getContext(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.graph.ILookup; /** * Yields the {@link yfiles.input.IHitTestable#NEVER} that will always report misses. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.input.IHitTestable} + * @param label + * @param style + * @returns */ getHitTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IHitTestable; /** * Yields the {@link yfiles.input.IMarqueeTestable#NEVER} that will always report misses. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.input.IMarqueeTestable} + * @param label + * @param style + * @returns */ getMarqueeTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IMarqueeTestable; /** * Yields {@link yfiles.geometry.Size#EMPTY}. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.geometry.Size} + * @param label + * @param style + * @returns */ getPreferredSize(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; /** * Yields the {@link yfiles.view.IVisibilityTestable#NEVER} that will always claim invisibility. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.view.IVisibilityTestable} + * @param label + * @param style + * @returns */ getVisibilityTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisibilityTestable; /** * Yields the {@link yfiles.view.VoidVisualCreator#INSTANCE} that will do nothing. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.view.IVisualCreator} + * @param label + * @param style + * @returns */ getVisualCreator(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisualCreator; /** @@ -64567,9 +64593,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.ILabel} label The label to provide an instance for - * @param {yfiles.styles.ILabelStyle} style The style to use for the calculating the painting bounds - * @returns {yfiles.view.IBoundsProvider} An implementation that may be used to subsequently query the label's painting bounds. Clients should not cache this + * @param label The label to provide an instance for + * @param style The style to use for the calculating the painting bounds + * @returns An implementation that may be used to subsequently query the label's painting bounds. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64580,9 +64606,9 @@ declare namespace system{ *

    * Implementations may return {@link yfiles.graph.ILookup#EMPTY} if they don't support this, but may not return null. *

    - * @param {yfiles.graph.ILabel} label The label to provide a context instance for. - * @param {yfiles.styles.ILabelStyle} style The style to use for the context. - * @returns {yfiles.graph.ILookup} An non-null lookup implementation. + * @param label The label to provide a context instance for. + * @param style The style to use for the context. + * @returns An non-null lookup implementation. * @see yfiles.graph.ILookup#EMPTY * @see yfiles.graph.ILookup * @abstract @@ -64594,9 +64620,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.ILabel} label The label to provide an instance for - * @param {yfiles.styles.ILabelStyle} style The style to use for the querying hit tests - * @returns {yfiles.input.IHitTestable} An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must + * @param label The label to provide an instance for + * @param style The style to use for the querying hit tests + * @returns An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must * always call this method immediately before using the value returned. This enables the use of the flyweight design * pattern for implementations. This method may return null to indicate that the label cannot be hit tested. * @abstract @@ -64608,9 +64634,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.ILabel} label The label to provide an instance for - * @param {yfiles.styles.ILabelStyle} style The style to use for the querying marquee intersection test. - * @returns {yfiles.input.IMarqueeTestable} An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this + * @param label The label to provide an instance for + * @param style The style to use for the querying marquee intersection test. + * @returns An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64618,9 +64644,9 @@ declare namespace system{ getMarqueeTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IMarqueeTestable; /** * Calculates the {@link yfiles.graph.ILabel#preferredSize preferred size} of a given label using the associated style. - * @param {yfiles.graph.ILabel} label The label to determine the preferred size for - * @param {yfiles.styles.ILabelStyle} style The style instance that uses this instance as its {@link yfiles.styles.ILabelStyle#renderer} - * @returns {yfiles.geometry.Size} A size that can be used as the {@link yfiles.graph.ILabel#preferredSize} if this renderer renders the label using the associated style. + * @param label The label to determine the preferred size for + * @param style The style instance that uses this instance as its {@link #renderer} + * @returns A size that can be used as the {@link #preferredSize} if this renderer renders the label using the associated style. * @abstract */ getPreferredSize(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; @@ -64630,9 +64656,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.ILabel} label The label to provide an instance for - * @param {yfiles.styles.ILabelStyle} style The style to use for the testing the visibility - * @returns {yfiles.view.IVisibilityTestable} An implementation that may be used to subsequently query the label's visibility. Clients should not cache this instance + * @param label The label to provide an instance for + * @param style The style to use for the testing the visibility + * @returns An implementation that may be used to subsequently query the label's visibility. Clients should not cache this instance * and must always call this method immediately before using the value returned. This enables the use of the flyweight * design pattern for implementations * @abstract @@ -64644,11 +64670,11 @@ declare namespace system{ *

    * This method may return a flyweight implementation, but never null. *

    - * @param {yfiles.graph.ILabel} label The label to provide an instance for - * @param {yfiles.styles.ILabelStyle} style The style to use for the creation of the visual - * @returns {yfiles.view.IVisualCreator} An implementation that may be used to subsequently create or update the visual for the label. Clients should not cache + * @param label The label to provide an instance for + * @param style The style to use for the creation of the visual + * @returns An implementation that may be used to subsequently create or update the visual for the label. Clients should not cache * this instance and must always call this method immediately before using the value returned. This enables the use of the - * flyweight design pattern for implementations. This method may not return null but should yield a {@link yfiles.view.VoidVisualCreator#INSTANCE void} implementation + * flyweight design pattern for implementations. This method may not return null but should yield a {@link #INSTANCE void} implementation * instead. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract @@ -64666,7 +64692,7 @@ declare namespace system{ * This class implements the singleton pattern. Use the shared static {@link yfiles.styles.VoidShapeGeometry#INSTANCE} of this * class instead of null were null is not allowed. The {@link yfiles.styles.VoidNodeStyleRenderer} does so for example. *

    - * @class yfiles.styles.VoidShapeGeometry + * @class * @implements {yfiles.styles.IShapeGeometry} * @final */ @@ -64674,9 +64700,9 @@ declare namespace system{ export class VoidShapeGeometry { /** * This implementation always returns null (a {@link T} with no value). - * @param {yfiles.geometry.Point} inner The first point of the line that is inside the shape. - * @param {yfiles.geometry.Point} outer The second point of the line that is outside the shape. - * @returns {yfiles.geometry.Point} A {@link T} with no value. + * @param inner The first point of the line that is inside the shape. + * @param outer The second point of the line that is outside the shape. + * @returns A {@link } with no value. * @see yfiles.styles.IShapeGeometry#getIntersection */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; @@ -64685,14 +64711,14 @@ declare namespace system{ *

    * This means that the outline never intersects any line or contains any point. *

    - * @returns {yfiles.geometry.GeneralPath} The empty path. + * @returns The empty path. * @see yfiles.styles.IShapeGeometry#getOutline */ getOutline():yfiles.geometry.GeneralPath; /** * This implementation always returns false. - * @param {yfiles.geometry.Point} location The point to test. - * @returns {boolean} false + * @param location The point to test. + * @returns false * @see yfiles.styles.IShapeGeometry#isInside */ isInside(location:yfiles.geometry.Point):boolean; @@ -64712,7 +64738,7 @@ declare namespace system{ * instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.graph.INode#style} property of an * {@link yfiles.graph.INode}. *

    - * @class yfiles.styles.VoidNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} * @final */ @@ -64720,16 +64746,16 @@ declare namespace system{ export class VoidNodeStyle { /** * Returns this. - * @returns {Object} this + * @returns this */ clone():Object; /** * The {@link yfiles.styles.VoidNodeStyle} singleton. * @const * @static - * @type {yfiles.styles.INodeStyle} + * @type {yfiles.styles.VoidNodeStyle} */ - static INSTANCE:yfiles.styles.INodeStyle; + static INSTANCE:yfiles.styles.VoidNodeStyle; /** * Yields the {@link yfiles.styles.VoidNodeStyleRenderer#INSTANCE VoidNodeStyleRenderer instance}. * @see yfiles.styles.INodeStyle#renderer @@ -64745,7 +64771,7 @@ declare namespace system{ * class instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.styles.INodeStyle#renderer} property of an * {@link yfiles.styles.INodeStyle}. *

    - * @class yfiles.styles.VoidNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @final */ @@ -64753,52 +64779,52 @@ declare namespace system{ export class VoidNodeStyleRenderer { /** * Yields the {@link yfiles.view.IBoundsProvider#EMPTY} that will return empty bounds. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IBoundsProvider} + * @param node + * @param style + * @returns */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; /** * Yields the {@link yfiles.graph.ILookup#EMPTY} that will not yield anything. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.graph.ILookup} + * @param node + * @param style + * @returns */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Yields the {@link yfiles.input.IHitTestable#NEVER} that will always report misses. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.input.IHitTestable} + * @param node + * @param style + * @returns */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * Yields the {@link yfiles.input.IMarqueeTestable#NEVER} that will always report misses. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.input.IMarqueeTestable} + * @param node + * @param style + * @returns */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * This implementation always returns the {@link yfiles.styles.VoidShapeGeometry#INSTANCE VoidShapeGeometry instance}. - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the rendering - * @returns {yfiles.styles.IShapeGeometry} The {@link yfiles.styles.VoidShapeGeometry#INSTANCE VoidShapeGeometry instance}. + * @param node The node to provide an instance for + * @param style The style to use for the rendering + * @returns The {@link #INSTANCE VoidShapeGeometry instance}. * @see yfiles.styles.INodeStyleRenderer#getShapeGeometry */ getShapeGeometry(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.styles.IShapeGeometry; /** * Yields the {@link yfiles.view.IVisibilityTestable#NEVER} that will always claim invisibility. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IVisibilityTestable} + * @param node + * @param style + * @returns */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Yields the {@link yfiles.view.VoidVisualCreator#INSTANCE} that will do nothing. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IVisualCreator} + * @param node + * @param style + * @returns */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** @@ -64868,9 +64894,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the calculating the painting bounds - * @returns {yfiles.view.IBoundsProvider} An implementation that may be used to subsequently query the node's painting bounds. Clients should not cache this + * @param node The node to provide an instance for + * @param style The style to use for the calculating the painting bounds + * @returns An implementation that may be used to subsequently query the node's painting bounds. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64881,9 +64907,9 @@ declare namespace system{ *

    * Implementations may return {@link yfiles.graph.ILookup#EMPTY} if they don't support this, but may not return null. *

    - * @param {yfiles.graph.INode} node The node to provide a context instance for. - * @param {yfiles.styles.INodeStyle} style The style to use for the context. - * @returns {yfiles.graph.ILookup} An non-null lookup implementation. + * @param node The node to provide a context instance for. + * @param style The style to use for the context. + * @returns An non-null lookup implementation. * @see yfiles.graph.ILookup#EMPTY * @see yfiles.graph.ILookup * @abstract @@ -64895,9 +64921,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the querying hit tests - * @returns {yfiles.input.IHitTestable} An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must + * @param node The node to provide an instance for + * @param style The style to use for the querying hit tests + * @returns An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must * always call this method immediately before using the value returned. This enables the use of the flyweight design * pattern for implementations. This method may return null to indicate that the node cannot be hit tested. * @abstract @@ -64909,9 +64935,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the querying marquee intersection test. - * @returns {yfiles.input.IMarqueeTestable} An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this + * @param node The node to provide an instance for + * @param style The style to use for the querying marquee intersection test. + * @returns An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64923,9 +64949,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the rendering - * @returns {yfiles.styles.IShapeGeometry} An implementation that may be used to subsequently query geometry information from. Clients should not cache this + * @param node The node to provide an instance for + * @param style The style to use for the rendering + * @returns An implementation that may be used to subsequently query geometry information from. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64937,9 +64963,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the testing the visibility - * @returns {yfiles.view.IVisibilityTestable} An implementation that may be used to subsequently query the node's visibility. Clients should not cache this instance + * @param node The node to provide an instance for + * @param style The style to use for the testing the visibility + * @returns An implementation that may be used to subsequently query the node's visibility. Clients should not cache this instance * and must always call this method immediately before using the value returned. This enables the use of the flyweight * design pattern for implementations * @abstract @@ -64951,11 +64977,11 @@ declare namespace system{ *

    * This method may return a flyweight implementation, but never null. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the creation of the visual - * @returns {yfiles.view.IVisualCreator} An implementation that may be used to subsequently create or update the visual for the node. Clients should not cache + * @param node The node to provide an instance for + * @param style The style to use for the creation of the visual + * @returns An implementation that may be used to subsequently create or update the visual for the node. Clients should not cache * this instance and must always call this method immediately before using the value returned. This enables the use of the - * flyweight design pattern for implementations. This method may not return null but should yield a {@link yfiles.view.VoidVisualCreator#INSTANCE void} implementation + * flyweight design pattern for implementations. This method may not return null but should yield a {@link #INSTANCE void} implementation * instead. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract @@ -64974,21 +65000,21 @@ declare namespace system{ export interface IPathGeometry extends Object{ /** * Returns a representation of the visible path of the edge in form of a {@link yfiles.geometry.GeneralPath} - * @returns {yfiles.geometry.GeneralPath} An instance that describes the visible path or null if this is not applicable for the current geometry. + * @returns An instance that describes the visible path or null if this is not applicable for the current geometry. * @abstract */ getPath():yfiles.geometry.GeneralPath; /** * Returns the number of "segments" this edge's path consists of. - * @returns {number} the number of segments or -1 if there is no such thing as a segment for this edge. + * @returns the number of segments or -1 if there is no such thing as a segment for this edge. * @abstract */ getSegmentCount():number; /** * Calculates the tangent on the edge's path at the given ratio point for the given segment. - * @param {number} segmentIndex the segment to use for the calculation - * @param {number} ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the segment - * @returns {yfiles.geometry.Tangent} The tangential line, if any exists. + * @param segmentIndex the segment to use for the calculation + * @param ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the segment + * @returns The tangential line, if any exists. * @see yfiles.styles.IPathGeometry#getTangent * @see yfiles.styles.IPathGeometry#getSegmentCount * @abstract @@ -64996,8 +65022,8 @@ declare namespace system{ getTangent(segmentIndex:number,ratio:number):yfiles.geometry.Tangent; /** * Calculates the tangent on the edge's path at the given ratio point. - * @param {number} ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the visible edge path - * @returns {yfiles.geometry.Tangent} The tangential line, if any exists. + * @param ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the visible edge path + * @returns The tangential line, if any exists. * @abstract */ getTangent(ratio:number):yfiles.geometry.Tangent; @@ -65013,7 +65039,7 @@ declare namespace system{ * class instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.styles.IPortStyle#renderer} property of an * {@link yfiles.styles.IPortStyle}. *

    - * @class yfiles.styles.VoidPortStyleRenderer + * @class * @implements {yfiles.styles.IPortStyleRenderer} * @final */ @@ -65021,44 +65047,44 @@ declare namespace system{ export class VoidPortStyleRenderer { /** * Yields the {@link yfiles.view.IBoundsProvider#EMPTY} that will return empty bounds. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.view.IBoundsProvider} + * @param port + * @param style + * @returns */ getBoundsProvider(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IBoundsProvider; /** * Yields the {@link yfiles.graph.ILookup#EMPTY} that will not yield anything. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.graph.ILookup} + * @param port + * @param style + * @returns */ getContext(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.graph.ILookup; /** * Yields the {@link yfiles.input.IHitTestable#NEVER} that will always report misses. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.input.IHitTestable} + * @param port + * @param style + * @returns */ getHitTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.input.IHitTestable; /** * Yields the {@link yfiles.input.IMarqueeTestable#NEVER} that will always report misses. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.input.IMarqueeTestable} + * @param port + * @param style + * @returns */ getMarqueeTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.input.IMarqueeTestable; /** * Yields the {@link yfiles.view.IVisibilityTestable#NEVER} that will always claim invisibility. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.view.IVisibilityTestable} + * @param port + * @param style + * @returns */ getVisibilityTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IVisibilityTestable; /** * Yields the {@link yfiles.view.VoidVisualCreator#INSTANCE} that will do nothing. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.view.IVisualCreator} + * @param port + * @param style + * @returns */ getVisualCreator(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IVisualCreator; /** @@ -65077,7 +65103,7 @@ declare namespace system{ * instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.graph.IPort#style} property of an * {@link yfiles.graph.IPort}. *

    - * @class yfiles.styles.VoidPortStyle + * @class * @implements {yfiles.styles.IPortStyle} * @final */ @@ -65085,16 +65111,16 @@ declare namespace system{ export class VoidPortStyle { /** * Returns this. - * @returns {Object} this + * @returns this */ clone():Object; /** * The {@link yfiles.styles.VoidPortStyle} singleton. * @const * @static - * @type {yfiles.styles.IPortStyle} + * @type {yfiles.styles.VoidPortStyle} */ - static INSTANCE:yfiles.styles.IPortStyle; + static INSTANCE:yfiles.styles.VoidPortStyle; /** * Yields the {@link yfiles.styles.VoidPortStyleRenderer#INSTANCE VoidPortStyleRenderer instance}. * @see yfiles.styles.IPortStyle#renderer @@ -65161,9 +65187,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IPort} port The port to provide an instance for - * @param {yfiles.styles.IPortStyle} style The style to use for the calculating the painting bounds - * @returns {yfiles.view.IBoundsProvider} An implementation that may be used to subsequently query the port's painting bounds. Clients should not cache this + * @param port The port to provide an instance for + * @param style The style to use for the calculating the painting bounds + * @returns An implementation that may be used to subsequently query the port's painting bounds. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -65174,9 +65200,9 @@ declare namespace system{ *

    * Implementations may return {@link yfiles.graph.ILookup#EMPTY} if they don't support this, but may not return null. *

    - * @param {yfiles.graph.IPort} port The port to provide a context instance for. - * @param {yfiles.styles.IPortStyle} style The style to use for the context. - * @returns {yfiles.graph.ILookup} An non-null lookup implementation. + * @param port The port to provide a context instance for. + * @param style The style to use for the context. + * @returns An non-null lookup implementation. * @see yfiles.graph.ILookup#EMPTY * @see yfiles.graph.ILookup * @abstract @@ -65188,9 +65214,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IPort} port The port to provide an instance for - * @param {yfiles.styles.IPortStyle} style The style to use for the querying hit tests - * @returns {yfiles.input.IHitTestable} An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must + * @param port The port to provide an instance for + * @param style The style to use for the querying hit tests + * @returns An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must * always call this method immediately before using the value returned. This enables the use of the flyweight design * pattern for implementations. This method may return null to indicate that the port cannot be hit tested. * @abstract @@ -65202,9 +65228,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IPort} port The port to provide an instance for - * @param {yfiles.styles.IPortStyle} style The style to use for the querying marquee intersection test. - * @returns {yfiles.input.IMarqueeTestable} An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this + * @param port The port to provide an instance for + * @param style The style to use for the querying marquee intersection test. + * @returns An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -65216,9 +65242,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IPort} port The port to provide an instance for - * @param {yfiles.styles.IPortStyle} style The style to use for the testing the visibility - * @returns {yfiles.view.IVisibilityTestable} An implementation that may be used to subsequently query the port's visibility. Clients should not cache this instance + * @param port The port to provide an instance for + * @param style The style to use for the testing the visibility + * @returns An implementation that may be used to subsequently query the port's visibility. Clients should not cache this instance * and must always call this method immediately before using the value returned. This enables the use of the flyweight * design pattern for implementations * @abstract @@ -65230,11 +65256,11 @@ declare namespace system{ *

    * This method may return a flyweight implementation, but never null. *

    - * @param {yfiles.graph.IPort} port The port to provide an instance for - * @param {yfiles.styles.IPortStyle} style The style to use for the creation of the visual - * @returns {yfiles.view.IVisualCreator} An implementation that may be used to subsequently create or update the visual for the port. Clients should not cache + * @param port The port to provide an instance for + * @param style The style to use for the creation of the visual + * @returns An implementation that may be used to subsequently create or update the visual for the port. Clients should not cache * this instance and must always call this method immediately before using the value returned. This enables the use of the - * flyweight design pattern for implementations. This method may not return null but should yield a {@link yfiles.view.VoidVisualCreator#INSTANCE void} implementation + * flyweight design pattern for implementations. This method may not return null but should yield a {@link #INSTANCE void} implementation * instead. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract @@ -65257,22 +65283,22 @@ declare namespace system{ export interface IShapeGeometry extends Object{ /** * Returns the intersection for the given line with this shape's geometry. - * @param {yfiles.geometry.Point} inner The first point of the line that is inside the shape. - * @param {yfiles.geometry.Point} outer The second point of the line that is outside the shape. - * @returns {yfiles.geometry.Point} The coordinates of the intersection point, if an intersection was found. + * @param inner The first point of the line that is inside the shape. + * @param outer The second point of the line that is outside the shape. + * @returns The coordinates of the intersection point, if an intersection was found. * @abstract */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Returns the outline of the shape or null. - * @returns {yfiles.geometry.GeneralPath} The outline or null if no outline can be provided. + * @returns The outline or null if no outline can be provided. * @abstract */ getOutline():yfiles.geometry.GeneralPath; /** * Checks whether the given coordinate is deemed to lie within the shape's geometric bounds. - * @param {yfiles.geometry.Point} location The point to test. - * @returns {boolean} True if the point lies within the shape. + * @param location The point to test. + * @returns True if the point lies within the shape. * @abstract */ isInside(location:yfiles.geometry.Point):boolean; @@ -65284,61 +65310,60 @@ declare namespace system{ /** * An {@link yfiles.view.IVisualCreator} for use in a {@link yfiles.view.CanvasComponent} that renders a {@link yfiles.graph.IGraph} instance in a * sloppy overview style. - * @class yfiles.styles.GraphOverviewSvgVisualCreator + * @class * @implements {yfiles.view.IVisualCreator} */ export interface GraphOverviewSvgVisualCreator extends Object,yfiles.view.IVisualCreator{} export class GraphOverviewSvgVisualCreator { /** * Creates a new instance for the given graph. - * @param {yfiles.graph.IGraph} graph - * @constructor + * @param graph */ constructor(graph:yfiles.graph.IGraph); /** * Callback that returns and/or configures a edge style for the given edge to render. - * @param {yfiles.graph.IEdge} edge The edge to render. - * @returns {yfiles.styles.IEdgeStyle} The style or null + * @param edge The edge to render. + * @returns The style or null * @protected */ getEdgeStyle(edge:yfiles.graph.IEdge):yfiles.styles.IEdgeStyle; /** * Obtains the {@link yfiles.view.IVisualCreator} for the given edge. - * @param {yfiles.view.IRenderContext} context The context. - * @param {yfiles.graph.IEdge} edge The edge. - * @returns {yfiles.view.IVisualCreator} The visual creator that is obtained from the {@link yfiles.styles.GraphOverviewSvgVisualCreator#getEdgeStyle}'s {@link yfiles.styles.IEdgeStyleRenderer#getVisualCreator} + * @param context The context. + * @param edge The edge. + * @returns The visual creator that is obtained from the {@link #getEdgeStyle}'s {@link #getVisualCreator} * method. * @protected */ getEdgeVisualCreator(context:yfiles.view.IRenderContext,edge:yfiles.graph.IEdge):yfiles.view.IVisualCreator; /** * Callback that returns and/or configures a group node style for the given node to render. - * @param {yfiles.graph.INode} node The group node to render. - * @returns {yfiles.styles.INodeStyle} The style or null + * @param node The group node to render. + * @returns The style or null * @protected */ getGroupNodeStyle(node:yfiles.graph.INode):yfiles.styles.INodeStyle; /** * Obtains the {@link yfiles.view.IVisualCreator} for the given group node. - * @param {yfiles.view.IRenderContext} context The context. - * @param {yfiles.graph.INode} node The group node. - * @returns {yfiles.view.IVisualCreator} The visual creator that is obtained from the {@link yfiles.styles.GraphOverviewSvgVisualCreator#getGroupNodeStyle}'s {@link yfiles.styles.INodeStyleRenderer#getVisualCreator} + * @param context The context. + * @param node The group node. + * @returns The visual creator that is obtained from the {@link #getGroupNodeStyle}'s {@link #getVisualCreator} * method. * @protected */ getGroupNodeVisualCreator(context:yfiles.view.IRenderContext,node:yfiles.graph.INode):yfiles.view.IVisualCreator; /** * Callback that returns and/or configures a node style for the given node to render. - * @param {yfiles.graph.INode} node The node to render. - * @returns {yfiles.styles.INodeStyle} The style or null + * @param node The node to render. + * @returns The style or null * @protected */ getNodeStyle(node:yfiles.graph.INode):yfiles.styles.INodeStyle; /** * Obtains the {@link yfiles.view.IVisualCreator} for the given node. - * @param {yfiles.view.IRenderContext} context The context. - * @param {yfiles.graph.INode} node The node. - * @returns {yfiles.view.IVisualCreator} The visual creator that is obtained from the {@link yfiles.styles.GraphOverviewSvgVisualCreator#getNodeStyle}'s {@link yfiles.styles.INodeStyleRenderer#getVisualCreator} + * @param context The context. + * @param node The node. + * @returns The visual creator that is obtained from the {@link #getNodeStyle}'s {@link #getVisualCreator} * method. * @protected */ @@ -65380,7 +65405,7 @@ declare namespace system{ *
  • Tutorial: 02 Custom Styles, step 17 Edge Hit Test
  • *
  • Tutorial: 02 Custom Styles, step 18 Edge Cropping
  • * - * @class yfiles.styles.EdgeStyleBase + * @class * @implements {yfiles.styles.IEdgeStyle} */ export interface EdgeStyleBase extends Object,yfiles.styles.IEdgeStyle{} @@ -65388,17 +65413,16 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.styles.EdgeStyleBase} class. * @protected - * @constructor */ constructor(); /** * Convenience method that adds the arrows to a given container. - * @param {yfiles.view.IRenderContext} context The context for the rendering. - * @param {SVGGElement} group The container to which the arrows should be added. - * @param {yfiles.graph.IEdge} edge The edge that is being rendered. - * @param {yfiles.geometry.GeneralPath} edgePath The edge path. - * @param {yfiles.styles.IArrow} sourceArrow The source arrow. - * @param {yfiles.styles.IArrow} targetArrow The target arrow. + * @param context The context for the rendering. + * @param group The container to which the arrows should be added. + * @param edge The edge that is being rendered. + * @param edgePath The edge path. + * @param sourceArrow The source arrow. + * @param targetArrow The target arrow. * @protected */ addArrows(context:yfiles.view.IRenderContext,group:SVGGElement,edge:yfiles.graph.IEdge,edgePath:yfiles.geometry.GeneralPath,sourceArrow:yfiles.styles.IArrow,targetArrow:yfiles.styles.IArrow):void; @@ -65407,7 +65431,7 @@ declare namespace system{ *

    * Immutable subclasses should consider returning this. *

    - * @returns {Object} A new object that is a copy of this instance using {@link Object#memberwiseClone}. + * @returns A new object that is a copy of this instance using {@link #memberwiseClone}. */ clone():Object; /** @@ -65416,9 +65440,9 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been * queried from the {@link yfiles.styles.EdgeStyleBase#renderer}. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param edge The edge to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.EdgeStyleBase#updateVisual * @protected * @abstract @@ -65430,11 +65454,11 @@ declare namespace system{ * This implementation uses the {@link yfiles.styles.IEdgePathCropper} instances found in the {@link yfiles.graph.ILookup#lookup} of the * source and target port of the edge to perform the actual cropping. *

    - * @param {yfiles.graph.IEdge} edge The edge that is being rendered. - * @param {yfiles.geometry.GeneralPath} path The path that should be cropped. - * @param {yfiles.styles.IArrow} sourceArrow The source arrow instance. - * @param {yfiles.styles.IArrow} targetArrow The target arrow instance. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param edge The edge that is being rendered. + * @param path The path that should be cropped. + * @param sourceArrow The source arrow instance. + * @param targetArrow The target arrow instance. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. * @protected */ cropPath(edge:yfiles.graph.IEdge,sourceArrow:yfiles.styles.IArrow,targetArrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; @@ -65445,56 +65469,56 @@ declare namespace system{ * from the {@link yfiles.styles.EdgeStyleBase#renderer}. This implementation simply yields a {@link yfiles.geometry.Rect rectangle} containing. the locations of the {@link yfiles.graph.IEdge#sourcePort source port} and the {@link yfiles.graph.IEdge#targetPort target port} * of the edge and the locations of all its {@link yfiles.graph.IEdge#bends bends}. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {yfiles.geometry.Rect} The visual bounds of the visual representation. + * @param context The canvas context. + * @param edge The edge to which this style instance is assigned. + * @returns The visual bounds of the visual representation. * @protected */ getBounds(context:yfiles.view.ICanvasContext,edge:yfiles.graph.IEdge):yfiles.geometry.Rect; /** * Gets the path of the edge. - * @param {yfiles.graph.IEdge} edge The edge. - * @returns {yfiles.geometry.GeneralPath} The path. + * @param edge The edge. + * @returns The path. * @protected */ getPath(edge:yfiles.graph.IEdge):yfiles.geometry.GeneralPath; /** * Gets the number of segments of the edge. - * @param {yfiles.graph.IEdge} edge The edge. - * @returns {number} The segment count. + * @param edge The edge. + * @returns The segment count. * @protected */ getSegmentCount(edge:yfiles.graph.IEdge):number; /** * Convenience method that calculates the source arrow anchor and direction for a a given arrow and path. - * @param {yfiles.geometry.GeneralPath} path The path of the edge. - * @param {yfiles.styles.IArrow} arrow The arrow. - * @returns {yfiles.geometry.Tangent} The anchor and directional vector of the arrow, if any exist. + * @param path The path of the edge. + * @param arrow The arrow. + * @returns The anchor and directional vector of the arrow, if any exist. * @protected */ getSourceArrowAnchor(path:yfiles.geometry.GeneralPath,arrow:yfiles.styles.IArrow):yfiles.geometry.Tangent; /** * Gets the tangent to the edge at the specified ratio of a segment of the edge and the corresponding touch point. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {number} segmentIndex Index of the segment of the edge. - * @param {number} ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the segment of the edge. - * @returns {yfiles.geometry.Tangent} The tangent, if any exists. + * @param edge The edge. + * @param segmentIndex Index of the segment of the edge. + * @param ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the segment of the edge. + * @returns The tangent, if any exists. * @protected */ getTangent(edge:yfiles.graph.IEdge,segmentIndex:number,ratio:number):yfiles.geometry.Tangent; /** * Gets the tangent to the edge at the specified ratio and the corresponding touch point. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {number} ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the path of the edge. - * @returns {yfiles.geometry.Tangent} The tangent, if any exists. + * @param edge The edge. + * @param ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the path of the edge. + * @returns The tangent, if any exists. * @protected */ getTangent(edge:yfiles.graph.IEdge,ratio:number):yfiles.geometry.Tangent; /** * Convenience method that calculates the target arrow anchor and direction for a a given arrow and path. - * @param {yfiles.geometry.GeneralPath} path The path of the edge. - * @param {yfiles.styles.IArrow} arrow The arrow. - * @returns {yfiles.geometry.Tangent} The anchor and directional vector of the arrow, if any exist. + * @param path The path of the edge. + * @param arrow The arrow. + * @returns The anchor and directional vector of the arrow, if any exist. * @protected */ getTargetArrowAnchor(path:yfiles.geometry.GeneralPath,arrow:yfiles.styles.IArrow):yfiles.geometry.Tangent; @@ -65509,10 +65533,10 @@ declare namespace system{ * with the polygonal line defined by the source port, the target port and the bends of the edge and the {@link yfiles.view.ICanvasContext#hitTestRadius} of the * {@link yfiles.view.ICanvasContext canvas context}. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} location The point to test. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {boolean} true if the specified edge representation is hit; false otherwise. + * @param context The input mode context. + * @param location The point to test. + * @param edge The edge to which this style instance is assigned. + * @returns true if the specified edge representation is hit; false otherwise. * @see yfiles.geometry.Point#hitsPolyline * @protected */ @@ -65527,10 +65551,10 @@ declare namespace system{ * This implementation returns the result of the {@link yfiles.geometry.Rect#intersectsPolyline} method of class {@link yfiles.geometry.Rect} * with the polygonal line defined by the source port, the target port and the bends of the edge. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} rectangle The marquee selection box. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {boolean} true if the specified edge is visible is selected by the marquee rectangle; false otherwise. + * @param context The input mode context. + * @param rectangle The marquee selection box. + * @param edge The edge to which this style instance is assigned. + * @returns true if the specified edge is visible is selected by the marquee rectangle; false otherwise. * @protected */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect,edge:yfiles.graph.IEdge):boolean; @@ -65540,10 +65564,10 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisibilityTestable#isVisible} call to the instance that has been * queried from the {@link yfiles.styles.EdgeStyleBase#renderer}. This implementation simply tests whether the {@link yfiles.styles.EdgeStyleBase#getBounds bounds} intersect the clip. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.geometry.Rect} rectangle The clipping rectangle. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {boolean} true if the specified edge is visible in the clipping rectangle; false otherwise. + * @param context The canvas context. + * @param rectangle The clipping rectangle. + * @param edge The edge to which this style instance is assigned. + * @returns true if the specified edge is visible in the clipping rectangle; false otherwise. * @protected */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect,edge:yfiles.graph.IEdge):boolean; @@ -65565,20 +65589,20 @@ declare namespace system{ *

    * For these interfaces an implementation will be returned that delegates to the methods in this instance. *

    - * @param {yfiles.graph.IEdge} edge The edge to use for the context lookup. - * @param {yfiles.lang.Class} type The type to query. - * @returns {Object} An implementation of the type or null. + * @param edge The edge to use for the context lookup. + * @param type The type to query. + * @returns An implementation of the type or null. * @protected */ lookup(edge:yfiles.graph.IEdge,type:yfiles.lang.Class):Object; /** * Convenience method that updates the arrows in a given container. - * @param {yfiles.view.IRenderContext} context The context for the rendering. - * @param {SVGGElement} group The container to which the arrows should be added. - * @param {yfiles.graph.IEdge} edge The edge that is being rendered. - * @param {yfiles.geometry.GeneralPath} edgePath The edge path. - * @param {yfiles.styles.IArrow} sourceArrow The source arrow. - * @param {yfiles.styles.IArrow} targetArrow The target arrow. + * @param context The context for the rendering. + * @param group The container to which the arrows should be added. + * @param edge The edge that is being rendered. + * @param edgePath The edge path. + * @param sourceArrow The source arrow. + * @param targetArrow The target arrow. * @protected */ updateArrows(context:yfiles.view.IRenderContext,group:SVGGElement,edge:yfiles.graph.IEdge,edgePath:yfiles.geometry.GeneralPath,sourceArrow:yfiles.styles.IArrow,targetArrow:yfiles.styles.IArrow):void; @@ -65589,10 +65613,10 @@ declare namespace system{ * queried from the {@link yfiles.styles.EdgeStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.EdgeStyleBase#createVisual} so subclasses should * override to improve rendering performance. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.view.Visual} oldVisual The visual that has been created in the call to {@link yfiles.styles.EdgeStyleBase#createVisual}. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param oldVisual The visual that has been created in the call to {@link #createVisual}. + * @param edge The edge to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.EdgeStyleBase#createVisual * @protected */ @@ -65622,7 +65646,7 @@ declare namespace system{ * and 'yfiles-collapsebutton-unchecked'. *

    * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer - * @class yfiles.styles.CollapsibleNodeStyleDecorator + * @class * @implements {yfiles.styles.INodeStyle} */ export interface CollapsibleNodeStyleDecorator extends Object,yfiles.styles.INodeStyle{} @@ -65630,17 +65654,16 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.styles.CollapsibleNodeStyleDecorator} class using the provided style for the {@link yfiles.styles.CollapsibleNodeStyleDecorator#wrapped} * property and the provided {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} as renderer. - * @param {yfiles.styles.INodeStyle} wrapped The decorated style. - * @param {yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} [renderer=null] An instance of {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} to render this style. - * @constructor + * @param wrapped The decorated style. + * @param [renderer=null] An instance of {@link } to render this style. */ constructor(wrapped:yfiles.styles.INodeStyle,renderer?:yfiles.styles.CollapsibleNodeStyleDecoratorRenderer); /** * Initializes a new instance of the {@link yfiles.styles.CollapsibleNodeStyleDecorator} class using the provided style for the {@link yfiles.styles.CollapsibleNodeStyleDecorator#wrapped} * property and the provided {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} as renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.INodeStyle} options.wrapped The decorated style. - * @param {yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} [options.renderer=null] An instance of {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} to render this style. + * @param options.wrapped The decorated style. + * @param [options.renderer=null] An instance of {@link } to render this style. * @param {yfiles.graph.ILabelModelParameter} options.buttonPlacement An {@link yfiles.graph.ILabelModelParameter} that determines the placement of the button for toggling the expanded state. *

    * This option sets the {@link yfiles.styles.CollapsibleNodeStyleDecorator#buttonPlacement} property on the created object. @@ -65649,7 +65672,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.CollapsibleNodeStyleDecorator#insets} property on the created object. *

    - * @constructor */ constructor(options:{wrapped:yfiles.styles.INodeStyle,renderer?:yfiles.styles.CollapsibleNodeStyleDecoratorRenderer,buttonPlacement?:yfiles.graph.ILabelModelParameter,insets?:yfiles.geometry.Insets}); /** @@ -65666,12 +65688,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.CollapsibleNodeStyleDecorator#insets} property on the created object. *

    - * @constructor */ constructor(options?:{buttonPlacement?:yfiles.graph.ILabelModelParameter,insets?:yfiles.geometry.Insets}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -65711,7 +65732,7 @@ declare namespace system{ /** * {@link yfiles.styles.INodeStyleRenderer} implementation that can be used in conjunction with {@link yfiles.styles.CollapsibleNodeStyleDecorator} * instances. - * @class yfiles.styles.CollapsibleNodeStyleDecoratorRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -65725,7 +65746,6 @@ declare namespace system{ export class CollapsibleNodeStyleDecoratorRenderer { /** * Initializes a new instance of the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} class. - * @constructor */ constructor(); /** @@ -65735,9 +65755,9 @@ declare namespace system{ * {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE}. It is called by * {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#createButton}. *

    - * @param {yfiles.view.SvgVisual} button The button visual to add the event listeners to. - * @param {yfiles.graph.INode} currentNode The group node whose state is to be toggled. - * @param {yfiles.view.IRenderContext} context The context. + * @param button The button visual to add the event listeners to. + * @param currentNode The group node whose state is to be toggled. + * @param context The context. * @static */ static addToggleExpansionStateCommand(button:yfiles.view.SvgVisual,currentNode:yfiles.graph.INode,context:yfiles.view.IRenderContext):void; @@ -65766,17 +65786,17 @@ declare namespace system{ * This implementation adds the {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE} command to the button. The created button is * automatically unchecked if the group node is {@link yfiles.graph.IFoldingView#isExpanded expanded} and vice versa. *

    - * @param {yfiles.view.IRenderContext} context The context. - * @param {boolean} expanded Specifies whether the button visual is created for the expanded or the collapsed state. - * @param {yfiles.geometry.Size} size The button size. - * @returns {yfiles.view.SvgVisual} + * @param context The context. + * @param expanded Specifies whether the button visual is created for the expanded or the collapsed state. + * @param size The button size. + * @returns * @protected */ createButton(context:yfiles.view.IRenderContext,expanded:boolean,size:yfiles.geometry.Size):yfiles.view.SvgVisual; /** * Callback that provides a customized {@link yfiles.view.ISelectionIndicatorInstaller}. - * @returns {yfiles.view.ISelectionIndicatorInstaller} This implementation yields a {@link yfiles.view.RectangleIndicatorInstaller} that uses - * {@link yfiles.view.RectangleIndicatorInstaller#SELECTION_TEMPLATE_KEY}. + * @returns This implementation yields a {@link } that uses + * {@link #SELECTION_TEMPLATE_KEY}. * @protected */ createSelectionInstaller():yfiles.view.ISelectionIndicatorInstaller; @@ -65785,37 +65805,36 @@ declare namespace system{ *

    * This method uses {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#createButton} to create the togglebutton instance. * It will then use the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getButtonLocationParameter} to determine the - * placement of the button and use the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle} to create the - * visual for the actual node. + * placement of the button and use the {@link yfiles.styles.CollapsibleNodeStyleDecorator#wrapped wrapped style} to create the visual for the actual node. *

    - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle} and takes the button into account. - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} and * returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; /** * Yields the {@link yfiles.styles.CollapsibleNodeStyleDecorator#buttonPlacement} for the current {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} - * @returns {yfiles.graph.ILabelModelParameter} + * @returns * @protected */ getButtonLocationParameter():yfiles.graph.ILabelModelParameter; /** * Returns the size of new buttons. - * @returns {yfiles.geometry.Size} The size of new buttons + * @returns The size of new buttons * @protected */ getButtonSize():yfiles.geometry.Size; @@ -65828,47 +65847,47 @@ declare namespace system{ * method call they should call {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} only if needed, i.e. if they * decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Configures the style and node parameters, calls {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} and * returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle}. - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} and * returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle}. - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Configures the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} and {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} properties, calls {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#isInside * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getIntersection */ @@ -65881,59 +65900,59 @@ declare namespace system{ * {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure}. If the subclass implementation depends on this instance * to be configured, it needs to call Configure in {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} and * returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#createVisual * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * Yields the {@link yfiles.styles.CollapsibleNodeStyleDecorator#wrapped} property for the current {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} - * @returns {yfiles.styles.INodeStyle} + * @returns * @protected */ getWrappedStyle():yfiles.styles.INodeStyle; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle} and checks the button. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle}. - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle}. - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -65942,19 +65961,19 @@ declare namespace system{ * This method is called from {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#updateVisual} to update an existing button * or to create a new one. Custom implementations can override this method to use a custom button visualization. *

    - * @param {yfiles.view.IRenderContext} context The context. - * @param {boolean} expanded Specifies whether the button visual is updated for the expanded or the collapsed state. - * @param {yfiles.geometry.Size} size The button size. - * @param {yfiles.view.Visual} oldButton The old button visual. - * @returns {yfiles.view.SvgVisual} + * @param context The context. + * @param expanded Specifies whether the button visual is updated for the expanded or the collapsed state. + * @param size The button size. + * @param oldButton The old button visual. + * @returns * @protected */ updateButton(context:yfiles.view.IRenderContext,expanded:boolean,size:yfiles.geometry.Size,oldButton:yfiles.view.Visual):yfiles.view.SvgVisual; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -65999,7 +66018,7 @@ declare namespace system{ *
  • Tutorial: 02 Custom Styles, step 11 Label Preferred Size
  • *
  • Tutorial: 02 Custom Styles, step 12 High Performance Rendering of Label
  • * - * @class yfiles.styles.LabelStyleBase + * @class * @implements {yfiles.styles.ILabelStyle} */ export interface LabelStyleBase extends Object,yfiles.styles.ILabelStyle{} @@ -66007,7 +66026,6 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.styles.LabelStyleBase} class. * @protected - * @constructor */ constructor(); /** @@ -66015,15 +66033,15 @@ declare namespace system{ *

    * Immutable subclasses should consider returning this. *

    - * @returns {Object} A new object that is a copy of this instance using {@link Object#memberwiseClone}. + * @returns A new object that is a copy of this instance using {@link #memberwiseClone}. */ clone():Object; /** * Creates a transform matrix that can be applied to a {@link yfiles.view.Visual} to arrange it according to the given layout and autoFlip * rule. - * @param {yfiles.geometry.IOrientedRectangle} layout The layout used to create the transform matrix. - * @param {boolean} autoFlip Whether to automatically flip the mtrix by 180 degrees, if the result would be pointing downwards. - * @returns {yfiles.geometry.Matrix} The transform matrix. + * @param layout The layout used to create the transform matrix. + * @param autoFlip Whether to automatically flip the mtrix by 180 degrees, if the result would be pointing downwards. + * @returns The transform matrix. * @static */ static createLayoutTransform(layout:yfiles.geometry.IOrientedRectangle,autoFlip:boolean):yfiles.geometry.Matrix; @@ -66033,9 +66051,9 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been * queried from the {@link yfiles.styles.LabelStyleBase#renderer}. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param label The label to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.LabelStyleBase#updateVisual * @protected * @abstract @@ -66050,16 +66068,16 @@ declare namespace system{ *

    * This implementation simply yields the {@link yfiles.geometry.IOrientedRectangle#bounds bounds} of the {@link yfiles.graph.ILabel#layout layout} of the given label. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {yfiles.geometry.Rect} The visual bounds of the visual representation. + * @param context The canvas context. + * @param label The label to which this style instance is assigned. + * @returns The visual bounds of the visual representation. * @protected */ getBounds(context:yfiles.view.ICanvasContext,label:yfiles.graph.ILabel):yfiles.geometry.Rect; /** * Callback that returns the preferred {@link yfiles.geometry.Size size} of the label. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {yfiles.geometry.Size} The preferred size. + * @param label The label to which this style instance is assigned. + * @returns The preferred size. * @protected * @abstract */ @@ -66074,10 +66092,10 @@ declare namespace system{ * This implementation returns the result of the {@link yfiles.geometry.IOrientedRectangle#hits} method invoked for the {@link yfiles.graph.ILabel#layout layout} of * the label, the given {@link yfiles.geometry.Point point} and the {@link yfiles.view.ICanvasContext#hitTestRadius hit test radius} of the {@link yfiles.view.ICanvasContext canvas context}. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} location The point to test. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {boolean} true if the specified label representation is hit; false otherwise. + * @param context The input mode context. + * @param location The point to test. + * @param label The label to which this style instance is assigned. + * @returns true if the specified label representation is hit; false otherwise. * @protected */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,label:yfiles.graph.ILabel):boolean; @@ -66091,10 +66109,10 @@ declare namespace system{ * This implementation returns the result of the {@link yfiles.geometry.Rect#intersects} method invoked on rectangle for the {@link yfiles.graph.ILabel#layout layout} * of the label and the context. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} rectangle The marquee selection box. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {boolean} true if the specified label is visible is selected by the marquee rectangle; false otherwise. + * @param context The input mode context. + * @param rectangle The marquee selection box. + * @param label The label to which this style instance is assigned. + * @returns true if the specified label is visible is selected by the marquee rectangle; false otherwise. * @protected */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect,label:yfiles.graph.ILabel):boolean; @@ -66107,10 +66125,10 @@ declare namespace system{ *

    * This implementation simply tests whether the {@link yfiles.styles.LabelStyleBase#getBounds bounds} intersect the clip. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.geometry.Rect} rectangle The clipping rectangle. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {boolean} true if the specified label is visible in the clipping rectangle; false otherwise. + * @param context The canvas context. + * @param rectangle The clipping rectangle. + * @param label The label to which this style instance is assigned. + * @returns true if the specified label is visible in the clipping rectangle; false otherwise. * @protected */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect,label:yfiles.graph.ILabel):boolean; @@ -66131,9 +66149,9 @@ declare namespace system{ *

    * For these interfaces an implementation will be returned that delegates to the methods in this instance. *

    - * @param {yfiles.graph.ILabel} label The label to use for the context lookup. - * @param {yfiles.lang.Class} type The type to query. - * @returns {Object} An implementation of the type or null. + * @param label The label to use for the context lookup. + * @param type The type to query. + * @returns An implementation of the type or null. * @protected */ lookup(label:yfiles.graph.ILabel,type:yfiles.lang.Class):Object; @@ -66144,10 +66162,10 @@ declare namespace system{ * queried from the {@link yfiles.styles.LabelStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.LabelStyleBase#createVisual} so subclasses * should override to improve rendering performance. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.view.Visual} oldVisual The visual that has been created in the call to {@link yfiles.styles.LabelStyleBase#createVisual}. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param oldVisual The visual that has been created in the call to {@link #createVisual}. + * @param label The label to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.LabelStyleBase#createVisual * @protected */ @@ -66182,7 +66200,7 @@ declare namespace system{ *
  • Tutorial: 02 Custom Styles, step 03 UpdateVisual and RenderDataCache
  • *
  • Tutorial: 02 Custom Styles, step 05 Hit Test
  • * - * @class yfiles.styles.NodeStyleBase + * @class * @implements {yfiles.styles.INodeStyle} */ export interface NodeStyleBase extends Object,yfiles.styles.INodeStyle{} @@ -66190,7 +66208,6 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.styles.NodeStyleBase} class. * @protected - * @constructor */ constructor(); /** @@ -66198,7 +66215,7 @@ declare namespace system{ *

    * Immutable subclasses should consider returning this. *

    - * @returns {Object} A new object that is a copy of this instance using {@link Object#memberwiseClone}. + * @returns A new object that is a copy of this instance using {@link #memberwiseClone}. */ clone():Object; /** @@ -66207,9 +66224,9 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been * queried from the {@link yfiles.styles.NodeStyleBase#renderer}. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param node The node to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.NodeStyleBase#updateVisual * @protected * @abstract @@ -66221,9 +66238,9 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IBoundsProvider#getBounds} call to the instance that has been queried * from the {@link yfiles.styles.NodeStyleBase#renderer}. This implementation simply yields the {@link yfiles.graph.INode#layout}. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {yfiles.geometry.Rect} The visual bounds of the visual representation. + * @param context The canvas context. + * @param node The node to which this style instance is assigned. + * @returns The visual bounds of the visual representation. * @protected */ getBounds(context:yfiles.view.ICanvasContext,node:yfiles.graph.INode):yfiles.geometry.Rect; @@ -66235,10 +66252,10 @@ declare namespace system{ * null. If it is feasible to determine the intersection point for the current shape, this method should be implemented in * addition to {@link yfiles.styles.NodeStyleBase#getOutline} to improve performance. *

    - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @param {yfiles.geometry.Point} inner The coordinates of a point lying {@link yfiles.styles.NodeStyleBase#isInside inside} the shape. - * @param {yfiles.geometry.Point} outer The coordinates of a point lying outside the shape. - * @returns {yfiles.geometry.Point} The intersection point if one has been found or null, otherwise. + * @param node The node to which this style instance is assigned. + * @param inner The coordinates of a point lying {@link #isInside inside} the shape. + * @param outer The coordinates of a point lying outside the shape. + * @returns The intersection point if one has been found or null, otherwise. * @see yfiles.styles.NodeStyleBase#isInside * @protected */ @@ -66250,8 +66267,8 @@ declare namespace system{ * behavior of {@link yfiles.styles.NodeStyleBase#isInside} and {@link yfiles.styles.NodeStyleBase#getIntersection} since the default * implementations delegate to it. *

    - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {yfiles.geometry.GeneralPath} The outline of the visual representation or null. + * @param node The node to which this style instance is assigned. + * @returns The outline of the visual representation or null. * @protected */ getOutline(node:yfiles.graph.INode):yfiles.geometry.GeneralPath; @@ -66261,10 +66278,10 @@ declare namespace system{ * This method is called in response to a {@link yfiles.input.IHitTestable#isHit} call to the instance that has been queried from * the {@link yfiles.styles.NodeStyleBase#renderer}. This implementation uses the {@link yfiles.styles.NodeStyleBase#getOutline outline} to determine whether the node has been hit. *

    - * @param {yfiles.input.IInputModeContext} context The canvas context. - * @param {yfiles.geometry.Point} location The point to test. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {boolean} true if the specified node representation is hit; false otherwise. + * @param context The canvas context. + * @param location The point to test. + * @param node The node to which this style instance is assigned. + * @returns true if the specified node representation is hit; false otherwise. * @protected */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,node:yfiles.graph.INode):boolean; @@ -66274,10 +66291,10 @@ declare namespace system{ * This method is called in response to a {@link yfiles.input.IMarqueeTestable#isInBox} call to the instance that has been queried * from the {@link yfiles.styles.NodeStyleBase#renderer}. This implementation simply tests whether the {@link yfiles.styles.NodeStyleBase#getBounds bounds} intersect the marquee box. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} rectangle The marquee selection box. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {boolean} true if the specified node is visible is selected by the marquee rectangle; false otherwise. + * @param context The input mode context. + * @param rectangle The marquee selection box. + * @param node The node to which this style instance is assigned. + * @returns true if the specified node is visible is selected by the marquee rectangle; false otherwise. * @protected */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect,node:yfiles.graph.INode):boolean; @@ -66289,9 +66306,9 @@ declare namespace system{ * outline is null. If it is feasible to determine whether a given point lies inside the shape, this method should be * implemented in addition to {@link yfiles.styles.NodeStyleBase#getOutline} to improve performance. *

    - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @param {yfiles.geometry.Point} location The point to test. - * @returns {boolean} Whether the point is considered to lie inside the shape. + * @param node The node to which this style instance is assigned. + * @param location The point to test. + * @returns Whether the point is considered to lie inside the shape. * @protected */ isInside(node:yfiles.graph.INode,location:yfiles.geometry.Point):boolean; @@ -66301,10 +66318,10 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisibilityTestable#isVisible} call to the instance that has been * queried from the {@link yfiles.styles.NodeStyleBase#renderer}. This implementation simply tests whether the {@link yfiles.styles.NodeStyleBase#getBounds bounds} intersect the clip. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.geometry.Rect} rectangle The clipping rectangle. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {boolean} true if the specified node is visible in the clipping rectangle; false otherwise. + * @param context The canvas context. + * @param rectangle The clipping rectangle. + * @param node The node to which this style instance is assigned. + * @returns true if the specified node is visible in the clipping rectangle; false otherwise. * @protected */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect,node:yfiles.graph.INode):boolean; @@ -66326,9 +66343,9 @@ declare namespace system{ *

    * For these interfaces an implementation will be returned that delegates to the methods in this instance. *

    - * @param {yfiles.graph.INode} node The node to use for the context lookup. - * @param {yfiles.lang.Class} type The type to query. - * @returns {Object} An implementation of the type or null. + * @param node The node to use for the context lookup. + * @param type The type to query. + * @returns An implementation of the type or null. * @protected */ lookup(node:yfiles.graph.INode,type:yfiles.lang.Class):Object; @@ -66339,10 +66356,10 @@ declare namespace system{ * queried from the {@link yfiles.styles.NodeStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.NodeStyleBase#createVisual} so subclasses should * override to improve rendering performance. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.view.Visual} oldVisual The visual that has been created in the call to {@link yfiles.styles.NodeStyleBase#createVisual}. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param oldVisual The visual that has been created in the call to {@link #createVisual}. + * @param node The node to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.NodeStyleBase#createVisual * @protected */ @@ -66360,7 +66377,7 @@ declare namespace system{ /** * A label style decorator that uses a node style instance to render the background and a label style instance to render * the foreground of a label. - * @class yfiles.styles.NodeStyleLabelStyleAdapter + * @class * @implements {yfiles.styles.ILabelStyle} */ export interface NodeStyleLabelStyleAdapter extends Object,yfiles.styles.ILabelStyle{} @@ -66372,9 +66389,8 @@ declare namespace system{ * Note that the styles will be stored by reference, thus modifying the style will directly affect the rendering of this * instance. *

    - * @param {yfiles.styles.INodeStyle} nodeStyle The style to use for rendering the background of the label. - * @param {yfiles.styles.ILabelStyle} labelStyle The style to use for rendering the foreground of the label. - * @constructor + * @param nodeStyle The style to use for rendering the background of the label. + * @param labelStyle The style to use for rendering the foreground of the label. */ constructor(nodeStyle:yfiles.styles.INodeStyle,labelStyle:yfiles.styles.ILabelStyle); /** @@ -66385,8 +66401,8 @@ declare namespace system{ * instance. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.styles.INodeStyle} options.nodeStyle The style to use for rendering the background of the label. - * @param {yfiles.styles.ILabelStyle} options.labelStyle The style to use for rendering the foreground of the label. + * @param options.nodeStyle The style to use for rendering the background of the label. + * @param options.labelStyle The style to use for rendering the foreground of the label. * @param {boolean} options.autoFlip A value indicating whether the label should be flipped 180 degrees automatically, if it would be oriented downwards, otherwise. *

    * This option sets the {@link yfiles.styles.NodeStyleLabelStyleAdapter#autoFlip} property on the created object. @@ -66395,7 +66411,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.NodeStyleLabelStyleAdapter#labelStyleInsets} property on the created object. *

    - * @constructor */ constructor(options:{nodeStyle:yfiles.styles.INodeStyle,labelStyle:yfiles.styles.ILabelStyle,autoFlip?:boolean,labelStyleInsets?:yfiles.geometry.Insets}); /** @@ -66420,12 +66435,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.NodeStyleLabelStyleAdapter#nodeStyle} property on the created object. *

    - * @constructor */ constructor(options?:{autoFlip?:boolean,labelStyle?:yfiles.styles.ILabelStyle,labelStyleInsets?:yfiles.geometry.Insets,nodeStyle?:yfiles.styles.INodeStyle}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -66460,7 +66474,7 @@ declare namespace system{ } /** * A port style decorator that uses a node style instance to render the port. - * @class yfiles.styles.NodeStylePortStyleAdapter + * @class * @implements {yfiles.styles.IPortStyle} */ export interface NodeStylePortStyleAdapter extends Object,yfiles.styles.IPortStyle{} @@ -66471,8 +66485,7 @@ declare namespace system{ * Note that the styles will be stored by reference, thus modifying the style will directly affect the rendering of this * instance. *

    - * @param {yfiles.styles.INodeStyle} nodeStyle The style to use for rendering the port. - * @constructor + * @param nodeStyle The style to use for rendering the port. */ constructor(nodeStyle:yfiles.styles.INodeStyle); /** @@ -66482,18 +66495,17 @@ declare namespace system{ * instance. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.styles.INodeStyle} options.nodeStyle The style to use for rendering the port. + * @param options.nodeStyle The style to use for rendering the port. * @param {yfiles.geometry.Size} options.renderSize The {@link yfiles.geometry.MutableSize} of the port that will be displayed using {@link yfiles.styles.NodeStylePortStyleAdapter#nodeStyle}. *

    * This option sets the {@link yfiles.styles.NodeStylePortStyleAdapter#renderSize} property on the created object. *

    - * @constructor */ constructor(options:{nodeStyle:yfiles.styles.INodeStyle,renderSize?:yfiles.geometry.Size}); /** * Initializes a new instance of the {@link yfiles.styles.NodeStylePortStyleAdapter} class. *

    - * This constructor uses an ellipse {@link yfiles.styles.ShapeNodeStyle} with a black brush for the {@link yfiles.styles.NodeStylePortStyleAdapter#nodeStyle} property. + * This constructor uses an ellipse {@link yfiles.styles.ShapeNodeStyle} with a black {@link yfiles.view.Fill} for the {@link yfiles.styles.NodeStylePortStyleAdapter#nodeStyle} property. *

    * @param {Object} [options=null] The parameters to pass. * @param {yfiles.styles.INodeStyle} options.nodeStyle The {@link yfiles.styles.INodeStyle} that is used for rendering the port. @@ -66504,12 +66516,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.NodeStylePortStyleAdapter#renderSize} property on the created object. *

    - * @constructor */ constructor(options?:{nodeStyle?:yfiles.styles.INodeStyle,renderSize?:yfiles.geometry.Size}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -66551,7 +66562,7 @@ declare namespace system{ *
  • Demo: SimpleCustomStyle, demo.yfiles.style.simplecustomstyle
  • *
  • Tutorial: 02 Custom Styles, step 22 Custom Ports
  • * - * @class yfiles.styles.PortStyleBase + * @class * @implements {yfiles.styles.IPortStyle} */ export interface PortStyleBase extends Object,yfiles.styles.IPortStyle{} @@ -66559,7 +66570,6 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.styles.PortStyleBase} class. * @protected - * @constructor */ constructor(); /** @@ -66567,7 +66577,7 @@ declare namespace system{ *

    * Immutable subclasses should consider returning this. *

    - * @returns {Object} A new object that is a copy of this instance using {@link Object#memberwiseClone}. + * @returns A new object that is a copy of this instance using {@link #memberwiseClone}. */ clone():Object; /** @@ -66576,9 +66586,9 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been * queried from the {@link yfiles.styles.PortStyleBase#renderer}. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param port The port to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.PortStyleBase#updateVisual * @protected * @abstract @@ -66586,9 +66596,9 @@ declare namespace system{ createVisual(context:yfiles.view.IRenderContext,port:yfiles.graph.IPort):yfiles.view.Visual; /** * Callback that returns the bounds of the visual for the port in the given context. - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {yfiles.geometry.Rect} The visual bounds of the visual representation. + * @param context The canvas context. + * @param port The port to which this style instance is assigned. + * @returns The visual bounds of the visual representation. * @protected * @abstract */ @@ -66602,10 +66612,10 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.styles.PortStyleBase#getBounds bounds} to determine whether the port has been hit. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} location The point to test. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {boolean} true if the specified port representation is hit; false otherwise. + * @param context The input mode context. + * @param location The point to test. + * @param port The port to which this style instance is assigned. + * @returns true if the specified port representation is hit; false otherwise. * @protected */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,port:yfiles.graph.IPort):boolean; @@ -66618,10 +66628,10 @@ declare namespace system{ *

    * This implementation simply tests whether the {@link yfiles.styles.PortStyleBase#getBounds bounds} intersect the marquee box. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} rectangle The marquee selection box. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {boolean} true if the specified port is visible is selected by the marquee rectangle; false otherwise. + * @param context The input mode context. + * @param rectangle The marquee selection box. + * @param port The port to which this style instance is assigned. + * @returns true if the specified port is visible is selected by the marquee rectangle; false otherwise. * @protected */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect,port:yfiles.graph.IPort):boolean; @@ -66631,10 +66641,10 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisibilityTestable#isVisible} call to the instance that has been * queried from the {@link yfiles.styles.PortStyleBase#renderer}. This implementation simply tests whether the {@link yfiles.styles.PortStyleBase#getBounds bounds} intersect the clip. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.geometry.Rect} rectangle The clipping rectangle. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {boolean} true if the specified port is visible in the clipping rectangle; false otherwise. + * @param context The canvas context. + * @param rectangle The clipping rectangle. + * @param port The port to which this style instance is assigned. + * @returns true if the specified port is visible in the clipping rectangle; false otherwise. * @protected */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect,port:yfiles.graph.IPort):boolean; @@ -66655,9 +66665,9 @@ declare namespace system{ *

    * For these interfaces an implementation will be returned that delegates to the methods in this instance. *

    - * @param {yfiles.graph.IPort} port The port to use for the context lookup. - * @param {yfiles.lang.Class} type The type to query. - * @returns {Object} An implementation of the type or null. + * @param port The port to use for the context lookup. + * @param type The type to query. + * @returns An implementation of the type or null. * @protected */ lookup(port:yfiles.graph.IPort,type:yfiles.lang.Class):Object; @@ -66668,10 +66678,10 @@ declare namespace system{ * queried from the {@link yfiles.styles.PortStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.PortStyleBase#createVisual} so subclasses should * override to improve rendering performance. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.view.Visual} oldVisual The visual that has been created in the call to {@link yfiles.styles.PortStyleBase#createVisual}. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param oldVisual The visual that has been created in the call to {@link #createVisual}. + * @param port The port to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.PortStyleBase#createVisual * @protected */ @@ -66689,43 +66699,43 @@ declare namespace system{ /** * A utility class that provides {@link yfiles.styles.TextRenderSupport#measureText text size measurement} and {@link yfiles.styles.TextRenderSupport#addText text placement} functionality, for instance, for label rendering * and measurement. - * @class yfiles.styles.TextRenderSupport + * @class */ export interface TextRenderSupport extends Object{} export class TextRenderSupport { /** * Add the text content to the provided SVG text element. - * @param {SVGTextElement} targetElement An SVG text element to add the provided text to (either as textContent, or by appending tspan elements). - * @param {string} text The text content to add to the provided text element (may contain newline characters). - * @param {yfiles.view.Font} font The {@link yfiles.view.Font} that defines the font properties to apply to the added text. - * @param {yfiles.geometry.Size} maximumSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. - * @param {yfiles.view.TextWrapping} [wrapping=yfiles.view.TextWrapping.NONE] The {@link yfiles.view.TextWrapping} policy to apply when the text exceeds the provided maximumSize; {@link yfiles.view.TextWrapping#WORD} + * @param targetElement An SVG text element to add the provided text to (either as textContent, or by appending tspan elements). + * @param text The text content to add to the provided text element (may contain newline characters). + * @param font The {@link } that defines the font properties to apply to the added text. + * @param maximumSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. + * @param [wrapping=yfiles.view.TextWrapping.NONE] The {@link } policy to apply when the text exceeds the provided maximumSize; {@link #WORD} * per default. - * @param {yfiles.styles.TextMeasurePolicy} [measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link yfiles.styles.TextMeasurePolicy#AUTOMATIC} per default. - * @returns {string} The text that was actually placed in the targetElement. + * @param [measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link #AUTOMATIC} per default. + * @returns The text that was actually placed in the targetElement. * @static */ static addText(targetElement:SVGTextElement,text:string,font:yfiles.view.Font,maximumSize:yfiles.geometry.Size,wrapping?:yfiles.view.TextWrapping,measurePolicy?:yfiles.styles.TextMeasurePolicy):string; /** * Add the text content to the provided SVG text element. * @param {Object} options The parameters to pass. - * @param {SVGTextElement} options.targetElement An SVG text element to add the provided text to (either as textContent, or by appending tspan elements). - * @param {string} options.text The text content to add to the provided text element (may contain newline characters). - * @param {yfiles.view.Font} options.font The {@link yfiles.view.Font} that defines the font properties to apply to the added text. - * @param {yfiles.geometry.Size} options.maximumSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. - * @param {yfiles.view.TextWrapping} [options.wrapping=yfiles.view.TextWrapping.NONE] The {@link yfiles.view.TextWrapping} policy to apply when the text exceeds the provided maximumSize; {@link yfiles.view.TextWrapping#WORD} + * @param options.targetElement An SVG text element to add the provided text to (either as textContent, or by appending tspan elements). + * @param options.text The text content to add to the provided text element (may contain newline characters). + * @param options.font The {@link } that defines the font properties to apply to the added text. + * @param options.maximumSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. + * @param [options.wrapping=yfiles.view.TextWrapping.NONE] The {@link } policy to apply when the text exceeds the provided maximumSize; {@link #WORD} * per default. - * @param {yfiles.styles.TextMeasurePolicy} [options.measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link yfiles.styles.TextMeasurePolicy#AUTOMATIC} per default. - * @returns {string} The text that was actually placed in the targetElement. + * @param [options.measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link #AUTOMATIC} per default. + * @returns The text that was actually placed in the targetElement. * @static */ static addText(options:{targetElement:SVGTextElement,text:string,font:yfiles.view.Font,maximumSize:yfiles.geometry.Size,wrapping?:yfiles.view.TextWrapping,measurePolicy?:yfiles.styles.TextMeasurePolicy}):string; /** * Calculate the width and height required to render the provided text using the provided {@link yfiles.view.Font}. - * @param {string} text The text that should be measured. - * @param {yfiles.view.Font} font The {@link yfiles.view.Font} to apply to the text before measuring. - * @param {yfiles.styles.TextMeasurePolicy} [measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link yfiles.styles.TextMeasurePolicy#AUTOMATIC} per default. - * @returns {yfiles.geometry.Size} The measured text size + * @param text The text that should be measured. + * @param font The {@link } to apply to the text before measuring. + * @param [measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link #AUTOMATIC} per default. + * @returns The measured text size * @static */ static measureText(text:string,font:yfiles.view.Font,measurePolicy?:yfiles.styles.TextMeasurePolicy):yfiles.geometry.Size; @@ -66747,21 +66757,23 @@ declare namespace system{ } /** * A basic label style which renders the label's {@link yfiles.graph.ILabel#text} and optionally a {@link yfiles.styles.DefaultLabelStyle#backgroundFill background} and {@link yfiles.styles.DefaultLabelStyle#backgroundStroke border}. - * @class yfiles.styles.DefaultLabelStyle + *

    + * This style uses a {@link yfiles.styles.DefaultLabelStyleRenderer} to create its visualization. + *

    + * @class * @implements {yfiles.styles.ILabelStyle} */ export interface DefaultLabelStyle extends Object,yfiles.styles.ILabelStyle{} export class DefaultLabelStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.ILabelStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderer The custom renderer for this style instance. */ constructor(renderer:yfiles.styles.ILabelStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.ILabelStyleRenderer} options.renderer The custom renderer for this style instance. + * @param options.renderer The custom renderer for this style instance. * @param {boolean} options.autoFlip A value indicating whether the label should be flipped 180 degrees automatically, if it would be oriented downwards, otherwise. *

    * This option sets the {@link yfiles.styles.DefaultLabelStyle#autoFlip} property on the created object. @@ -66802,7 +66814,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.DefaultLabelStyle#verticalTextAlignment} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.ILabelStyleRenderer,autoFlip?:boolean,backgroundFill?:yfiles.view.Fill,backgroundStroke?:yfiles.view.Stroke,clipText?:boolean,horizontalTextAlignment?:yfiles.view.HorizontalTextAlignment,textFill?:yfiles.view.Fill,textSize?:number,wrapping?:yfiles.view.TextWrapping,font?:yfiles.view.Font,verticalTextAlignment?:yfiles.view.VerticalTextAlignment}); /** @@ -66848,12 +66859,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.DefaultLabelStyle#verticalTextAlignment} property on the created object. *

    - * @constructor */ constructor(options?:{autoFlip?:boolean,backgroundFill?:yfiles.view.Fill,backgroundStroke?:yfiles.view.Stroke,clipText?:boolean,horizontalTextAlignment?:yfiles.view.HorizontalTextAlignment,textFill?:yfiles.view.Fill,textSize?:number,wrapping?:yfiles.view.TextWrapping,font?:yfiles.view.Font,verticalTextAlignment?:yfiles.view.VerticalTextAlignment}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -66870,7 +66880,7 @@ declare namespace system{ *

    * The default value is {@link yfiles.view.VerticalTextAlignment#TOP}. *

    - * @default 1 + * @default yfiles.view.VerticalTextAlignment.TOP * @type {yfiles.view.VerticalTextAlignment} */ verticalTextAlignment:yfiles.view.VerticalTextAlignment; @@ -66879,7 +66889,7 @@ declare namespace system{ *

    * The default value is {@link yfiles.view.HorizontalTextAlignment#LEFT}. *

    - * @default 1 + * @default yfiles.view.HorizontalTextAlignment.LEFT * @type {yfiles.view.HorizontalTextAlignment} */ horizontalTextAlignment:yfiles.view.HorizontalTextAlignment; @@ -66888,7 +66898,7 @@ declare namespace system{ *

    * The default value is {@link yfiles.view.TextWrapping#NONE}. *

    - * @default 0 + * @default yfiles.view.TextWrapping.NONE * @type {yfiles.view.TextWrapping} */ wrapping:yfiles.view.TextWrapping; @@ -66959,32 +66969,31 @@ declare namespace system{ static $class:yfiles.lang.Class; } /** - * A label style that draws an icon in addtion to the text. + * A label style that draws an icon in addition to the text. *

    * This style draws the icon at the location specified by {@link yfiles.styles.IconLabelStyle#iconPlacement} and delegates the drawing of the label's text to the {@link yfiles.styles.IconLabelStyle#wrapped} style. *

    - * @class yfiles.styles.IconLabelStyle + * @class * @implements {yfiles.styles.ILabelStyle} */ export interface IconLabelStyle extends Object,yfiles.styles.ILabelStyle{} export class IconLabelStyle { /** * Creates a new instance using the provided icon and renderer. - * @param {string} icon The icon to draw. - * @param {yfiles.styles.ILabelStyleRenderer} [renderer=null] The custom renderer for this style instance. - * @constructor + * @param icon The icon to draw. + * @param [renderer=null] The custom renderer for this style instance. */ constructor(icon:string,renderer?:yfiles.styles.ILabelStyleRenderer); /** * Creates a new instance using the provided icon and renderer. * @param {Object} options The parameters to pass. - * @param {string} options.icon The icon to draw. - * @param {yfiles.styles.ILabelStyleRenderer} [options.renderer=null] The custom renderer for this style instance. + * @param options.icon The icon to draw. + * @param [options.renderer=null] The custom renderer for this style instance. * @param {boolean} options.autoFlip A value indicating whether to automatically flip the rendering should the {@link yfiles.graph.ILabel#layout layout}'s {@link yfiles.geometry.IOrientedRectangle#upY up vector} point downwards. *

    * This option sets the {@link yfiles.styles.IconLabelStyle#autoFlip} property on the created object. *

    - * @param {yfiles.graph.ILabelModelParameter} options.iconPlacement The parameter the specifies the icon placement. + * @param {yfiles.graph.ILabelModelParameter} options.iconPlacement The parameter that specifies the icon placement. *

    * This option sets the {@link yfiles.styles.IconLabelStyle#iconPlacement} property on the created object. *

    @@ -67000,7 +67009,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.IconLabelStyle#wrappedInsets} property on the created object. *

    - * @constructor */ constructor(options:{icon:string,renderer?:yfiles.styles.ILabelStyleRenderer,autoFlip?:boolean,iconPlacement?:yfiles.graph.ILabelModelParameter,iconSize?:yfiles.geometry.Size,wrapped?:yfiles.styles.ILabelStyle,wrappedInsets?:yfiles.geometry.Insets}); /** @@ -67014,7 +67022,7 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.IconLabelStyle#icon} property on the created object. *

    - * @param {yfiles.graph.ILabelModelParameter} options.iconPlacement The parameter the specifies the icon placement. + * @param {yfiles.graph.ILabelModelParameter} options.iconPlacement The parameter that specifies the icon placement. *

    * This option sets the {@link yfiles.styles.IconLabelStyle#iconPlacement} property on the created object. *

    @@ -67030,12 +67038,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.IconLabelStyle#wrappedInsets} property on the created object. *

    - * @constructor */ constructor(options?:{autoFlip?:boolean,icon?:string,iconPlacement?:yfiles.graph.ILabelModelParameter,iconSize?:yfiles.geometry.Size,wrapped?:yfiles.styles.ILabelStyle,wrappedInsets?:yfiles.geometry.Insets}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -67052,7 +67059,7 @@ declare namespace system{ */ iconSize:yfiles.geometry.Size; /** - * Gets or sets the parameter the specifies the icon placement. + * Gets or sets the parameter that specifies the icon placement. *

    * All valid node label model parameters can be used. The label's {@link yfiles.graph.ILabel#layout layout} will be interpreted as the a node's layout and the * icon will be placed relative to that layout as if it was a node's label. @@ -67113,7 +67120,7 @@ declare namespace system{ * This implementation will just draw the label's {@link yfiles.graph.ILabel#text} using the properties provided by {@link yfiles.styles.DefaultLabelStyle} into * the label's {@link yfiles.graph.ILabel#layout layout} area. *

    - * @class yfiles.styles.DefaultLabelStyleRenderer + * @class * @implements {yfiles.styles.ILabelStyleRenderer} * @implements {yfiles.view.IBoundsProvider} * @implements {yfiles.view.IVisibilityTestable} @@ -67126,17 +67133,16 @@ declare namespace system{ export class DefaultLabelStyleRenderer { /** * Creates a new default instance. - * @constructor */ constructor(); /** * Add the text content to the provided SVG text element. - * @param {SVGTextElement} textElement An SVG text element to add the provided text to. - * @param {yfiles.view.Font} font The {@link yfiles.view.Font} that defines the font properties to apply to the added text. - * @param {string} text The text content to add to the provided text element (may contain newline characters). - * @param {yfiles.geometry.Size} maxSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. - * @param {yfiles.view.TextWrapping} wrapping The {@link yfiles.view.TextWrapping} policy to apply when the text exceeds the provided maxSize. - * @returns {string} + * @param textElement An SVG text element to add the provided text to. + * @param font The {@link } that defines the font properties to apply to the added text. + * @param text The text content to add to the provided text element (may contain newline characters). + * @param maxSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. + * @param wrapping The {@link } policy to apply when the text exceeds the provided maxSize. + * @returns * @protected */ addTextElements(textElement:SVGTextElement,font:yfiles.view.Font,text:string,maxSize:yfiles.geometry.Size,wrapping:yfiles.view.TextWrapping):string; @@ -67156,21 +67162,21 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and label parameters, calls {@link yfiles.styles.DefaultLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param label The label to retrieve the bounds provider for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#getBounds */ getBoundsProvider(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IBoundsProvider; @@ -67183,50 +67189,50 @@ declare namespace system{ * {@link yfiles.styles.DefaultLabelStyleRenderer#configure} only if needed, i.e. if they decide to return this or an instance that * depends on a correctly configured this. *

    - * @param {yfiles.graph.ILabel} label The label to query the context for. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param label The label to query the context for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#lookup */ getContext(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.graph.ILookup; /** * Configures the style and label parameters, calls {@link yfiles.styles.DefaultLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query hit test with. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param label The label to query hit test with. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#isHit */ getHitTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IHitTestable; /** * Determines how the text should be aligned within the assigned label bounds. - * @returns {yfiles.view.HorizontalTextAlignment} This value as obtained from the style. + * @returns This value as obtained from the style. * @protected */ getHorizontalTextAlignment():yfiles.view.HorizontalTextAlignment; /** * Configures the style and label parameters, calls {@link yfiles.styles.DefaultLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param label The label to query marquee intersection tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#isInBox */ getMarqueeTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IMarqueeTestable; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.geometry.Size} + * @param label + * @param style + * @returns */ getPreferredSize(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; /** * Calculates the preferred size given the current state of the renderer. - * @returns {yfiles.geometry.Size} The size as suggested by this renderer. + * @returns The size as suggested by this renderer. * @protected */ getPreferredSizeCore():yfiles.geometry.Size; /** * Determines how the text should be aligned vertically within the assigned label bounds. - * @returns {yfiles.view.VerticalTextAlignment} This value as obtained from the style. + * @returns This value as obtained from the style. * @protected */ getVerticalTextAlignment():yfiles.view.VerticalTextAlignment; @@ -67238,58 +67244,58 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.DefaultLabelStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.ILabel} label The label to query visibility tests. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param label The label to query visibility tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#isVisible */ getVisibilityTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and label parameters, calls {@link yfiles.styles.DefaultLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param label The label to retrieve the {@link } for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#createVisual * @see yfiles.styles.DefaultLabelStyleRenderer#updateVisual */ getVisualCreator(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisualCreator; /** * Determines how the text should be trimmed to fit the assigned label bounds. - * @returns {yfiles.view.TextWrapping} This value as obtained from the style. + * @returns This value as obtained from the style. * @protected */ getWrapping():yfiles.view.TextWrapping; /** * Delegates to {@link yfiles.styles.DefaultLabelStyle#autoFlip} - * @returns {boolean} Whether to flip the drawing if it is upside down. + * @returns Whether to flip the drawing if it is upside down. * @protected */ isAutoFlip():boolean; /** * Determines whether text should be forced to be clipped inside the rectangle. - * @returns {boolean} This value as obtained from the style. + * @returns This value as obtained from the style. * @protected */ isClippingText():boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * Uses the {@link yfiles.graph.ILabel#layout} to determine whether the clip intersects. - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -67302,23 +67308,23 @@ declare namespace system{ * This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.DefaultLabelStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Calculate the width and height required to render the provided text using the provided {@link yfiles.view.Font}. - * @param {string} text The text that should be measured. - * @param {yfiles.view.Font} font The {@link yfiles.view.Font} to apply to the text before measuring. - * @returns {yfiles.geometry.Size} The text size. + * @param text The text that should be measured. + * @param font The {@link } to apply to the text before measuring. + * @returns The text size. * @protected */ measureText(text:string,font:yfiles.view.Font):yfiles.geometry.Size; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -67346,7 +67352,7 @@ declare namespace system{ *

    * This implementation renders the label's inner style and an icon. *

    - * @class yfiles.styles.IconLabelStyleRenderer + * @class * @implements {yfiles.styles.ILabelStyleRenderer} * @implements {yfiles.view.IBoundsProvider} * @implements {yfiles.view.IVisibilityTestable} @@ -67359,7 +67365,6 @@ declare namespace system{ export class IconLabelStyleRenderer { /** * Creates a new instance of this renderer. - * @constructor */ constructor(); /** @@ -67369,21 +67374,21 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and label parameters, calls {@link yfiles.styles.IconLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param label The label to retrieve the bounds provider for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#getBounds */ getBoundsProvider(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IBoundsProvider; @@ -67394,62 +67399,56 @@ declare namespace system{ * instead subclasses should ensure that in the {@link yfiles.styles.IconLabelStyleRenderer#lookup} method call they should call {@link yfiles.styles.IconLabelStyleRenderer#configure} * only if needed, i.e. if they decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.ILabel} label The label to query the context for. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param label The label to query the context for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#lookup */ getContext(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.graph.ILookup; /** * Configures the style and label parameters, calls {@link yfiles.styles.IconLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query hit test with. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param label The label to query hit test with. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#isHit */ getHitTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IHitTestable; /** * Retrieves the {@link yfiles.styles.IconLabelStyle#icon} from the {@link yfiles.styles.IconLabelStyleRenderer#style}. - * @returns {string} The icon. + * @returns The icon. * @protected */ getIcon():string; /** * Retrieves the {@link yfiles.styles.IconLabelStyle#iconPlacement} from the {@link yfiles.styles.IconLabelStyleRenderer#style}. - * @returns {yfiles.graph.ILabelModelParameter} The placement parameter. + * @returns The placement parameter. * @protected */ getIconPlacement():yfiles.graph.ILabelModelParameter; /** * Gets the size of the icon from the {@link yfiles.styles.IconLabelStyle#iconSize} property. - * @returns {yfiles.geometry.Size} The size to use for the icon. + * @returns The size to use for the icon. * @protected */ getIconSize():yfiles.geometry.Size; - /** - * Retrieves the {@link yfiles.styles.IconLabelStyle#wrappedInsets} from the {@link yfiles.styles.IconLabelStyleRenderer#style}. - * @returns {yfiles.geometry.Insets} The insets. - * @protected - */ - getInnerStyleInsets():yfiles.geometry.Insets; /** * Configures the style and label parameters, calls {@link yfiles.styles.IconLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param label The label to query marquee intersection tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#isInBox */ getMarqueeTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IMarqueeTestable; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.geometry.Size} + * @param label + * @param style + * @returns */ getPreferredSize(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; /** * Calculates the preferred size given the current state of the renderer. - * @returns {yfiles.geometry.Size} The size as suggested by this renderer. + * @returns The size as suggested by this renderer. * @protected */ getPreferredSizeCore():yfiles.geometry.Size; @@ -67460,52 +67459,58 @@ declare namespace system{ * subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.IconLabelStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.ILabel} label The label to query visibility tests. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param label The label to query visibility tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#isVisible */ getVisibilityTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and label parameters, calls {@link yfiles.styles.IconLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param label The label to retrieve the {@link } for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#createVisual * @see yfiles.styles.IconLabelStyleRenderer#updateVisual */ getVisualCreator(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisualCreator; /** * Retrieves the {@link yfiles.styles.IconLabelStyle#wrapped} from the {@link yfiles.styles.IconLabelStyleRenderer#style}. - * @returns {yfiles.styles.ILabelStyle} The style. + * @returns The style. * @protected */ getWrappedStyle():yfiles.styles.ILabelStyle; + /** + * Retrieves the {@link yfiles.styles.IconLabelStyle#wrappedInsets} from the {@link yfiles.styles.IconLabelStyleRenderer#style}. + * @returns The insets. + * @protected + */ + getWrappedStyleInsets():yfiles.geometry.Insets; /** * Retrieves the {@link yfiles.styles.IconLabelStyle#autoFlip} property from the {@link yfiles.styles.IconLabelStyleRenderer#style}. - * @returns {boolean} The autoflip property value. + * @returns The autoflip property value. * @protected */ isAutoFlip():boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -67518,21 +67523,21 @@ declare namespace system{ * This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.IconLabelStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Returns whether the icon bounds should be considered for hit testing. - * @returns {boolean} true + * @returns true * @protected */ shouldHitTestIcon():boolean; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -67551,23 +67556,22 @@ declare namespace system{ } /** * A node style that can display node shapes with a boundary that is defined by a {@link yfiles.geometry.GeneralPath} instance. - * @class yfiles.styles.GeneralPathNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface GeneralPathNodeStyle extends Object,yfiles.styles.INodeStyle{} export class GeneralPathNodeStyle { /** * Creates a new instance using the specified path and a custom renderer instance. - * @param {yfiles.geometry.GeneralPath} path The path that defines the boundary of this style. - * @param {yfiles.styles.GeneralPathNodeStyleRenderer} [renderer=null] Custom renderer instance for this style - * @constructor + * @param path The path that defines the boundary of this style. + * @param [renderer=null] Custom renderer instance for this style */ constructor(path:yfiles.geometry.GeneralPath,renderer?:yfiles.styles.GeneralPathNodeStyleRenderer); /** * Creates a new instance using the specified path and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.GeneralPath} options.path The path that defines the boundary of this style. - * @param {yfiles.styles.GeneralPathNodeStyleRenderer} [options.renderer=null] Custom renderer instance for this style + * @param options.path The path that defines the boundary of this style. + * @param [options.renderer=null] Custom renderer instance for this style * @param {yfiles.view.Fill} options.fill The {@link yfiles.view.Fill} that is used to draw the shape. *

    * This option sets the {@link yfiles.styles.GeneralPathNodeStyle#fill} property on the created object. @@ -67576,7 +67580,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.GeneralPathNodeStyle#stroke} property on the created object. *

    - * @constructor */ constructor(options:{path:yfiles.geometry.GeneralPath,renderer?:yfiles.styles.GeneralPathNodeStyleRenderer,fill?:yfiles.view.Fill,stroke?:yfiles.view.Stroke}); /** @@ -67594,12 +67597,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.GeneralPathNodeStyle#stroke} property on the created object. *

    - * @constructor */ constructor(options?:{fill?:yfiles.view.Fill,path?:yfiles.geometry.GeneralPath,stroke?:yfiles.view.Stroke}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -67641,7 +67643,7 @@ declare namespace system{ } /** * An {@link yfiles.styles.INodeStyleRenderer} implementation that can handle {@link yfiles.styles.GeneralPathNodeStyle} instances. - * @class yfiles.styles.GeneralPathNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -67655,7 +67657,6 @@ declare namespace system{ export class GeneralPathNodeStyleRenderer { /** * Initializes a new instance of the {@link yfiles.styles.GeneralPathNodeStyleRenderer} class. - * @constructor */ constructor(); /** @@ -67674,21 +67675,21 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -67701,45 +67702,45 @@ declare namespace system{ * call {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} only if needed, i.e. if they decide to return this or an * instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Configures the style and node parameters, calls {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Configures the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} and {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} properties, calls {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#isInside * @see yfiles.styles.GeneralPathNodeStyleRenderer#getIntersection */ @@ -67752,46 +67753,46 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.GeneralPathNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#createVisual * @see yfiles.styles.GeneralPathNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Determines visibility by checking for an intersection with the {@link yfiles.styles.GeneralPathNodeStyleRenderer#layout}. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {yfiles.geometry.Rect} rectangle The current clip - * @returns {boolean} Whether the {@link yfiles.styles.GeneralPathNodeStyleRenderer#layout} is visible in the clip. + * @param context The context. + * @param rectangle The current clip + * @returns Whether the {@link #layout} is visible in the clip. */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -67804,15 +67805,15 @@ declare namespace system{ * lookup. This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -67841,7 +67842,7 @@ declare namespace system{ * An abstract base class for {@link yfiles.styles.IEdgeStyleRenderer} implementations that are based on the calculation of a * {@link yfiles.geometry.GeneralPath}. * Type parameter TStyle: The exact type of style to use for this instance. - * @class yfiles.styles.PathBasedEdgeStyleRenderer. + * @class * @implements {yfiles.styles.IEdgeStyleRenderer} * @implements {yfiles.styles.IPathGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -67857,7 +67858,7 @@ declare namespace system{ export class PathBasedEdgeStyleRenderer { /** * - * @param {yfiles.lang.Class} edgeStyleType The exact type of style to use for this instance. + * @param edgeStyleType The exact type of style to use for this instance. */ constructor(edgeStyleType:yfiles.lang.Class); /** @@ -67874,20 +67875,20 @@ declare namespace system{ configure():void; /** * This method should create the basic uncropped path given the control points. - * @returns {yfiles.geometry.GeneralPath} A path that has to be cropped, yet. + * @returns A path that has to be cropped, yet. * @protected * @abstract */ createPath():yfiles.geometry.GeneralPath; /** * Static utility method that creates a rectangular self loop path. - * @param {number} sx The x coordinate of the source port. - * @param {number} sy The y coordinate of the source port. - * @param {number} oppositeX The x coordinate of the single control point. - * @param {number} oppositeY The y coordinate of the single control point. - * @param {number} tx The x coordinate of the target port. - * @param {number} ty The y coordinate of the target port. - * @returns {yfiles.geometry.GeneralPath} A path that describes a rectangular self loop. + * @param sx The x coordinate of the source port. + * @param sy The y coordinate of the source port. + * @param oppositeX The x coordinate of the single control point. + * @param oppositeY The y coordinate of the single control point. + * @param tx The x coordinate of the target port. + * @param ty The y coordinate of the target port. + * @returns A path that describes a rectangular self loop. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#createSelfLoopPath * @protected * @static @@ -67895,13 +67896,13 @@ declare namespace system{ static createRectangleSelfLoop(sx:number,sy:number,oppositeX:number,oppositeY:number,tx:number,ty:number):yfiles.geometry.GeneralPath; /** * Static utility method that creates a round self loop path. - * @param {number} sx The x coordinate of the source port. - * @param {number} sy The y coordinate of the source port. - * @param {number} oppositeX The x coordinate of the single control point. - * @param {number} oppositeY The y coordinate of the single control point. - * @param {number} tx The x coordinate of the target port. - * @param {number} ty The y coordinate of the target port. - * @returns {yfiles.geometry.GeneralPath} A path that describes a round self loop. + * @param sx The x coordinate of the source port. + * @param sy The y coordinate of the source port. + * @param oppositeX The x coordinate of the single control point. + * @param oppositeY The y coordinate of the single control point. + * @param tx The x coordinate of the target port. + * @param ty The y coordinate of the target port. + * @returns A path that describes a round self loop. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#createSelfLoopPath * @protected * @static @@ -67909,15 +67910,15 @@ declare namespace system{ static createRoundSelfLoop(sx:number,sy:number,oppositeX:number,oppositeY:number,tx:number,ty:number):yfiles.geometry.GeneralPath; /** * Special implementation that will create a self loop path. - * @param {boolean} roundSelfLoop - * @returns {yfiles.geometry.GeneralPath} + * @param roundSelfLoop + * @returns * @protected */ createSelfLoopPath(roundSelfLoop:boolean):yfiles.geometry.GeneralPath; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -67926,22 +67927,22 @@ declare namespace system{ * This implementation uses the {@link yfiles.styles.IEdgePathCropper} instances found in the {@link yfiles.graph.ILookup#lookup} of the * source and target port of the edge to perform the actual cropping. *

    - * @param {yfiles.geometry.GeneralPath} path The path that should be cropped. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param path The path that should be cropped. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. * @protected */ cropPath(path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and edge parameters, calls {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} and returns this. - * @param {yfiles.graph.IEdge} edge The edge to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#edge} property. - * @param {yfiles.styles.IEdgeStyle} style The style to associate with the edge. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param edge The edge to retrieve the bounds provider for. The value will be stored in the {@link #edge} property. + * @param style The style to associate with the edge. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getBounds */ getBoundsProvider(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.view.IBoundsProvider; @@ -67951,7 +67952,7 @@ declare namespace system{ * The return value of this method (which may be null) will be passed to the {@link yfiles.view.BridgeManager}'s {@link yfiles.view.BridgeManager#addBridges} * method. *

    - * @returns {yfiles.view.IBridgeCreator} This implementation returns null. + * @returns This implementation returns null. * @protected */ getBridgeCreator():yfiles.view.IBridgeCreator; @@ -67962,9 +67963,9 @@ declare namespace system{ * the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#lookup} method call they should call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} only if needed, i.e. if they decide to return this or an instance * that depends on a correctly configured this. *

    - * @param {yfiles.graph.IEdge} edge The edge to query the context for. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#edge} property. - * @param {yfiles.styles.IEdgeStyle} style The style to associate with the edge. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#style} property. - * @returns {yfiles.graph.ILookup} this + * @param edge The edge to query the context for. The value will be stored in the {@link #edge} property. + * @param style The style to associate with the edge. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#lookup */ getContext(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.graph.ILookup; @@ -67974,9 +67975,9 @@ declare namespace system{ * This implementation does not call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure}. If subclasses depend on a configured instance in an override of {@link yfiles.styles.PathBasedEdgeStyleRenderer.#isHit}, * they need to override this method, too and call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} if the base call returns a non-null value. *

    - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.input.IHitTestable} + * @param edge + * @param style + * @returns * @see yfiles.styles.PathBasedEdgeStyleRenderer.#isHit * @see yfiles.styles.PathBasedEdgeStyleRenderer.#configure * @see yfiles.styles.IEdgeStyleRenderer#getHitTestable @@ -67984,30 +67985,30 @@ declare namespace system{ getHitTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.input.IHitTestable; /** * Configures the style and edge parameters, calls {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} and returns this. - * @param {yfiles.graph.IEdge} edge The edge to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#edge} property. - * @param {yfiles.styles.IEdgeStyle} style The style to associate with the edge. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param edge The edge to query marquee intersection tests. The value will be stored in the {@link #edge} property. + * @param style The style to associate with the edge. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#isInBox */ getMarqueeTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.input.IMarqueeTestable; /** * Returns {@link yfiles.styles.PathBasedEdgeStyleRenderer.#createPath} unless {@link yfiles.styles.PathBasedEdgeStyleRenderer.#isVisible} yields false for the provided context and {@link yfiles.view.IRenderContext#clip}. - * @param {yfiles.view.IRenderContext} context The context to yield the obstacles for. - * @returns {yfiles.geometry.GeneralPath} Either null or the result of {@link yfiles.styles.PathBasedEdgeStyleRenderer.#createPath}. + * @param context The context to yield the obstacles for. + * @returns Either null or the result of {@link #createPath}. * @see yfiles.view.IObstacleProvider */ getObstacles(context:yfiles.view.IRenderContext):yfiles.geometry.GeneralPath; /** * - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getPath():yfiles.geometry.GeneralPath; /** * Gets an implementation of the {@link yfiles.styles.IPathGeometry} interface that can handle the provided edge and its associated * style. - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the painting - * @returns {yfiles.styles.IPathGeometry} this + * @param edge The edge to provide an instance for + * @param style The style to use for the painting + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#configure * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getTangent * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getTangent @@ -68021,7 +68022,7 @@ declare namespace system{ * This method is part of the {@link yfiles.styles.IPathGeometry} interface, that is implemented by this class. This interface will * be returned by {@link yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry}. *

    - * @returns {number} the number of segments or -1 if there is no such thing as a segment for this edge. + * @returns the number of segments or -1 if there is no such thing as a segment for this edge. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry * @abstract */ @@ -68031,27 +68032,27 @@ declare namespace system{ *

    * This implementation returns 0.0d, which effectively turns off path smoothing. *

    - * @returns {number} The radius of the arcs to use at the bends of the path. + * @returns The radius of the arcs to use at the bends of the path. * @protected */ getSmoothingLength():number; /** * Gets the source arrow from the style. - * @returns {yfiles.styles.IArrow} The arrow to use. + * @returns The arrow to use. * @protected * @abstract */ getSourceArrow():yfiles.styles.IArrow; /** * Calculate and update the anchor and the source arrow's direction vector. - * @param {yfiles.styles.IArrow} arrow The arrow to calculate the anchor for. - * @returns {yfiles.geometry.Tangent} The anchor and directional vector of the arrow, if any exist. + * @param arrow The arrow to calculate the anchor for. + * @returns The anchor and directional vector of the arrow, if any exist. * @protected */ getSourceArrowAnchor(arrow:yfiles.styles.IArrow):yfiles.geometry.Tangent; /** * Gets the {@link yfiles.view.Stroke} to use to render the path. - * @returns {yfiles.view.Stroke} The {@link yfiles.view.Stroke} or null. + * @returns The {@link } or null. * @protected * @abstract */ @@ -68062,9 +68063,9 @@ declare namespace system{ * This method is part of the {@link yfiles.styles.IPathGeometry} interface, that is implemented by this class. This interface will * be returned by {@link yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry}. *

    - * @param {number} segmentIndex the segment to use for the calculation - * @param {number} ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the segment - * @returns {yfiles.geometry.Tangent} The tangential line, if any exists. + * @param segmentIndex the segment to use for the calculation + * @param ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the segment + * @returns The tangential line, if any exists. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getTangent * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getSegmentCount * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry @@ -68077,23 +68078,23 @@ declare namespace system{ * This method is part of the {@link yfiles.styles.IPathGeometry} interface, that is implemented by this class. This interface will * be returned by {@link yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry}. *

    - * @param {number} ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the visible edge path - * @returns {yfiles.geometry.Tangent} The tangential line, if any exists. + * @param ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the visible edge path + * @returns The tangential line, if any exists. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry * @abstract */ getTangent(ratio:number):yfiles.geometry.Tangent; /** * Gets the target arrow from the style. - * @returns {yfiles.styles.IArrow} The arrow to use. + * @returns The arrow to use. * @protected * @abstract */ getTargetArrow():yfiles.styles.IArrow; /** * Calculate and update the anchor and the target arrow's direction vector. - * @param {yfiles.styles.IArrow} arrow The arrow to calculate the anchor for. - * @returns {yfiles.geometry.Tangent} The anchor and directional vector of the arrow, if any exist. + * @param arrow The arrow to calculate the anchor for. + * @returns The anchor and directional vector of the arrow, if any exist. * @protected */ getTargetArrowAnchor(arrow:yfiles.styles.IArrow):yfiles.geometry.Tangent; @@ -68103,17 +68104,17 @@ declare namespace system{ * Unlike most of the other methods this implementation does not call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure}. If the subclass implementation depends on * this instance to be configured, it needs to call Configure in {@link yfiles.styles.PathBasedEdgeStyleRenderer.#isVisible}. *

    - * @param {yfiles.graph.IEdge} edge The edge to query visibility tests. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#edge} property. - * @param {yfiles.styles.IEdgeStyle} style The style to associate with the edge. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param edge The edge to query visibility tests. The value will be stored in the {@link #edge} property. + * @param style The style to associate with the edge. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#isVisible */ getVisibilityTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and edge parameters, calls {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} and returns this. - * @param {yfiles.graph.IEdge} edge The edge to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#edge} property. - * @param {yfiles.styles.IEdgeStyle} style The style to associate with the edge. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param edge The edge to retrieve the {@link } for. The value will be stored in the {@link #edge} property. + * @param style The style to associate with the edge. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#createVisual * @see yfiles.styles.PathBasedEdgeStyleRenderer.#updateVisual */ @@ -68128,18 +68129,18 @@ declare namespace system{ * Subclasses should not depend on the fact that {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} has already been called. This may not be the case. If your * subclass depends on Configure being called, override {@link yfiles.styles.PathBasedEdgeStyleRenderer.#getHitTestable} and call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} after the base class call. *

    - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getHitTestable * @see yfiles.styles.PathBasedEdgeStyleRenderer.#configure */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -68148,23 +68149,23 @@ declare namespace system{ * This simple implementation uses {@link yfiles.styles.PathBasedEdgeStyleRenderer.#getBounds} to determine the visibility. Subclasses may choose to override this behavior * for improved performance but need to make sure to call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} if they depend on a configured instance. *

    - * @param {yfiles.view.ICanvasContext} context the current canvas context - * @param {yfiles.geometry.Rect} rectangle the clip bounds - * @returns {boolean} true if the edge may be painted within the clip bounds. + * @param context the current canvas context + * @param rectangle the clip bounds + * @returns true if the edge may be painted within the clip bounds. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getVisibilityTestable */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -68201,7 +68202,7 @@ declare namespace system{ } /** * An {@link yfiles.styles.IEdgeStyleRenderer} that will render {@link yfiles.styles.PolylineEdgeStyle} instances. - * @class yfiles.styles.PolylineEdgeStyleRenderer + * @class * @extends {yfiles.styles.PathBasedEdgeStyleRenderer.} */ export interface PolylineEdgeStyleRenderer extends yfiles.styles.PathBasedEdgeStyleRenderer{} @@ -68211,21 +68212,20 @@ declare namespace system{ } /** * A polygonal {@link yfiles.styles.IEdgeStyle} where straight line segments are used to connect the bends. - * @class yfiles.styles.PolylineEdgeStyle + * @class * @implements {yfiles.styles.IEdgeStyle} */ export interface PolylineEdgeStyle extends Object,yfiles.styles.IEdgeStyle{} export class PolylineEdgeStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.PolylineEdgeStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderer The custom renderer for this style instance. */ constructor(renderer:yfiles.styles.PolylineEdgeStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.PolylineEdgeStyleRenderer} options.renderer The custom renderer for this style instance. + * @param options.renderer The custom renderer for this style instance. * @param {yfiles.view.Stroke} options.stroke The {@link yfiles.styles.PolylineEdgeStyle#stroke} for the line. *

    * This option sets the {@link yfiles.styles.PolylineEdgeStyle#stroke} property on the created object. @@ -68242,7 +68242,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.PolylineEdgeStyle#targetArrow} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.PolylineEdgeStyleRenderer,stroke?:yfiles.view.Stroke,smoothingLength?:number,sourceArrow?:yfiles.styles.IArrow,targetArrow?:yfiles.styles.IArrow}); /** @@ -68264,12 +68263,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.PolylineEdgeStyle#targetArrow} property on the created object. *

    - * @constructor */ constructor(options?:{stroke?:yfiles.view.Stroke,smoothingLength?:number,sourceArrow?:yfiles.styles.IArrow,targetArrow?:yfiles.styles.IArrow}); /** * Performs a {@link Object#memberwiseClone} - * @returns {Object} + * @returns */ clone():Object; /** @@ -68402,7 +68400,7 @@ declare namespace system{ } /** * Default renderer implementation that can be used for {@link yfiles.styles.ShapeNodeStyle} instances. - * @class yfiles.styles.ShapeNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -68430,8 +68428,8 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -68439,15 +68437,15 @@ declare namespace system{ *

    * This implementation simply sets the {@link yfiles.styles.ShapeNodeStyleRenderer#layout}'s bounds to the scratch variable and returns. *

    - * @param {yfiles.view.ICanvasContext} context the context to calculate the bounds for - * @returns {yfiles.geometry.Rect} the bounds or null to indicate an unbound area + * @param context the context to calculate the bounds for + * @returns the bounds or null to indicate an unbound area */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShapeNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -68458,9 +68456,9 @@ declare namespace system{ * instead subclasses should ensure that in the {@link yfiles.styles.ShapeNodeStyleRenderer#lookup} method call they should call {@link yfiles.styles.ShapeNodeStyleRenderer#configure} * only if needed, i.e. if they decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; @@ -68469,36 +68467,36 @@ declare namespace system{ *

    * This implementation retrieves the brush from the owning style *

    - * @returns {yfiles.view.Fill} The brush that is currently used by this renderer. + * @returns The brush that is currently used by this renderer. * @protected */ getFill():yfiles.view.Fill; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShapeNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShapeNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** @@ -68506,15 +68504,15 @@ declare namespace system{ *

    * This implementation retrieves the shape from the owning style *

    - * @returns {yfiles.styles.ShapeNodeShape} The shape that is currently used by this renderer. + * @returns The shape that is currently used by this renderer. * @protected */ getShape():yfiles.styles.ShapeNodeShape; /** * Configures the {@link yfiles.styles.ShapeNodeStyleRenderer#style} and {@link yfiles.styles.ShapeNodeStyleRenderer#node} properties, calls {@link yfiles.styles.ShapeNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#isInside * @see yfiles.styles.ShapeNodeStyleRenderer#getIntersection */ @@ -68524,7 +68522,7 @@ declare namespace system{ *

    * This implementation retrieves the {@link yfiles.view.Stroke} from the owning style *

    - * @returns {yfiles.view.Stroke} The {@link yfiles.view.Stroke} that is currently used by this renderer. + * @returns The {@link } that is currently used by this renderer. * @protected */ getStroke():yfiles.view.Stroke; @@ -68535,26 +68533,26 @@ declare namespace system{ * subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.ShapeNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShapeNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#createVisual * @see yfiles.styles.ShapeNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** @@ -68562,22 +68560,22 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.styles.ShapeNodeStyleRenderer#layout} to determine whether the node is in the box. *

    - * @param {yfiles.input.IInputModeContext} context the current input mode context - * @param {yfiles.geometry.Rect} rectangle the box describing the marquee's bounds - * @returns {boolean} true if the node is considered to be captured by the marquee + * @param context the current input mode context + * @param rectangle the box describing the marquee's bounds + * @returns true if the node is considered to be captured by the marquee */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Determines visibility by checking for an intersection with the {@link yfiles.styles.ShapeNodeStyleRenderer#layout}. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {yfiles.geometry.Rect} rectangle The current clip - * @returns {boolean} Whether the {@link yfiles.styles.ShapeNodeStyleRenderer#layout} is visible in the clip. + * @param context The context. + * @param rectangle The current clip + * @returns Whether the {@link #layout} is visible in the clip. */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -68590,15 +68588,15 @@ declare namespace system{ * This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.ShapeNodeStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -68633,21 +68631,20 @@ declare namespace system{ *

    * This style can be used together with {@link yfiles.styles.ShapeNodeStyleRenderer} instances. *

    - * @class yfiles.styles.ShapeNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface ShapeNodeStyle extends Object,yfiles.styles.INodeStyle{} export class ShapeNodeStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.ShapeNodeStyleRenderer} renderer Custom renderer instance for this style. - * @constructor + * @param renderer Custom renderer instance for this style. */ constructor(renderer:yfiles.styles.ShapeNodeStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.ShapeNodeStyleRenderer} options.renderer Custom renderer instance for this style. + * @param options.renderer Custom renderer instance for this style. * @param {yfiles.view.Fill} options.fill The {@link yfiles.styles.ShapeNodeStyle#fill} for this style. *

    * This option sets the {@link yfiles.styles.ShapeNodeStyle#fill} property on the created object. @@ -68660,7 +68657,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ShapeNodeStyle#shape} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.ShapeNodeStyleRenderer,fill?:yfiles.view.Fill,stroke?:yfiles.view.Stroke,shape?:yfiles.styles.ShapeNodeShape}); /** @@ -68678,12 +68674,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ShapeNodeStyle#shape} property on the created object. *

    - * @constructor */ constructor(options?:{fill?:yfiles.view.Fill,stroke?:yfiles.view.Stroke,shape?:yfiles.styles.ShapeNodeShape}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -68709,7 +68704,7 @@ declare namespace system{ *

    * The default value is {@link yfiles.styles.ShapeNodeShape#RECTANGLE}. *

    - * @default 0 + * @default yfiles.styles.ShapeNodeShape.RECTANGLE * @type {yfiles.styles.ShapeNodeShape} */ shape:yfiles.styles.ShapeNodeShape; @@ -68722,7 +68717,7 @@ declare namespace system{ } /** * Default renderer implementation for {@link yfiles.styles.ArcEdgeStyle} - * @class yfiles.styles.ArcEdgeStyleRenderer + * @class * @extends {yfiles.styles.PathBasedEdgeStyleRenderer.} */ export interface ArcEdgeStyleRenderer extends yfiles.styles.PathBasedEdgeStyleRenderer{} @@ -68730,13 +68725,13 @@ declare namespace system{ constructor(); /** * Retrieves the {@link yfiles.styles.ArcEdgeStyle#height} of the style. - * @returns {number} the height. + * @returns the height. */ getHeight():number; /** * Gets a value indicating whether this {@link yfiles.styles.ArcEdgeStyleRenderer#getHeight} should be interpreted as an absolute * or relative value. - * @returns {boolean} true if the height value should be interpreted as a fixed value, otherwise, false. + * @returns true if the height value should be interpreted as a fixed value, otherwise, false. * @see yfiles.styles.ArcEdgeStyleRenderer#getHeight */ isFixedHeight():boolean; @@ -68757,21 +68752,20 @@ declare namespace system{ *

    * This style uses an {@link yfiles.styles.ArcEdgeStyleRenderer} for its visualization. *

    - * @class yfiles.styles.ArcEdgeStyle + * @class * @implements {yfiles.styles.IEdgeStyle} */ export interface ArcEdgeStyle extends Object,yfiles.styles.IEdgeStyle{} export class ArcEdgeStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.ArcEdgeStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderer The custom renderer for this style instance. */ constructor(renderer:yfiles.styles.ArcEdgeStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.ArcEdgeStyleRenderer} options.renderer The custom renderer for this style instance. + * @param options.renderer The custom renderer for this style instance. * @param {boolean} options.fixedHeight A value indicating whether this {@link yfiles.styles.ArcEdgeStyle} interprets the {@link yfiles.styles.ArcEdgeStyle#height} value as an absolute or relative value. *

    * This option sets the {@link yfiles.styles.ArcEdgeStyle#fixedHeight} property on the created object. @@ -68796,7 +68790,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ArcEdgeStyle#targetArrow} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.ArcEdgeStyleRenderer,fixedHeight?:boolean,height?:number,stroke?:yfiles.view.Stroke,provideHeightHandle?:boolean,sourceArrow?:yfiles.styles.IArrow,targetArrow?:yfiles.styles.IArrow}); /** @@ -68826,12 +68819,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ArcEdgeStyle#targetArrow} property on the created object. *

    - * @constructor */ constructor(options?:{fixedHeight?:boolean,height?:number,stroke?:yfiles.view.Stroke,provideHeightHandle?:boolean,sourceArrow?:yfiles.styles.IArrow,targetArrow?:yfiles.styles.IArrow}); /** * Performs a {@link Object#memberwiseClone} - * @returns {Object} + * @returns */ clone():Object; /** @@ -68912,7 +68904,7 @@ declare namespace system{ /** * A {@link yfiles.styles.INodeStyle} {@link yfiles.styles.INodeStyleRenderer renderer} implementation that draws a rounded rectangle with a bevel border in a 'shiny plate' * fashion. - * @class yfiles.styles.BevelNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -68939,8 +68931,8 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -68948,15 +68940,15 @@ declare namespace system{ *

    * This implementation simply sets the {@link yfiles.styles.BevelNodeStyleRenderer#layout}'s bounds to the scratch variable and returns. *

    - * @param {yfiles.view.ICanvasContext} context the context to calculate the bounds for - * @returns {yfiles.geometry.Rect} the bounds or null to indicate an unbound area + * @param context the context to calculate the bounds for + * @returns the bounds or null to indicate an unbound area */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.BevelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -68967,45 +68959,45 @@ declare namespace system{ * instead subclasses should ensure that in the {@link yfiles.styles.BevelNodeStyleRenderer#lookup} method call they should call {@link yfiles.styles.BevelNodeStyleRenderer#configure} * only if needed, i.e. if they decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Configures the style and node parameters, calls {@link yfiles.styles.BevelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.BevelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Configures the {@link yfiles.styles.BevelNodeStyleRenderer#style} and {@link yfiles.styles.BevelNodeStyleRenderer#node} properties, calls {@link yfiles.styles.BevelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#isInside * @see yfiles.styles.BevelNodeStyleRenderer#getIntersection */ @@ -69017,26 +69009,26 @@ declare namespace system{ * subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.BevelNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.BevelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#createVisual * @see yfiles.styles.BevelNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** @@ -69044,35 +69036,35 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.styles.BevelNodeStyleRenderer#layout} to determine whether the node is in the box. *

    - * @param {yfiles.input.IInputModeContext} context the current input mode context - * @param {yfiles.geometry.Rect} rectangle the box describing the marquee's bounds - * @returns {boolean} true if the node is considered to be captured by the marquee + * @param context the current input mode context + * @param rectangle the box describing the marquee's bounds + * @returns true if the node is considered to be captured by the marquee */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Determines visibility by checking for an intersection with the {@link yfiles.styles.BevelNodeStyleRenderer#layout}. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {yfiles.geometry.Rect} rectangle The current clip - * @returns {boolean} Whether the {@link yfiles.styles.BevelNodeStyleRenderer#layout} is visible in the clip. + * @param context The context. + * @param rectangle The current clip + * @returns Whether the {@link #layout} is visible in the clip. */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -69136,21 +69128,20 @@ declare namespace system{ * This style uses the {@link yfiles.styles.BevelNodeStyleRenderer} to visualize a node. *

    * @see yfiles.styles.BevelNodeStyleRenderer - * @class yfiles.styles.BevelNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface BevelNodeStyle extends Object,yfiles.styles.INodeStyle{} export class BevelNodeStyle { /** * Creates a new instance using the provided renderer to share. - * @param {yfiles.styles.BevelNodeStyleRenderer} renderer - * @constructor + * @param renderer */ constructor(renderer:yfiles.styles.BevelNodeStyleRenderer); /** * Creates a new instance using the provided renderer to share. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.BevelNodeStyleRenderer} options.renderer + * @param options.renderer * @param {yfiles.view.Color} options.color The base color to use. *

    * This option sets the {@link yfiles.styles.BevelNodeStyle#color} property on the created object. @@ -69167,7 +69158,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.BevelNodeStyle#radius} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.BevelNodeStyleRenderer,color?:yfiles.view.Color,drawShadow?:boolean,inset?:number,radius?:number}); /** @@ -69189,12 +69179,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.BevelNodeStyle#radius} property on the created object. *

    - * @constructor */ constructor(options?:{color?:yfiles.view.Color,drawShadow?:boolean,inset?:number,radius?:number}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -69240,7 +69229,7 @@ declare namespace system{ } /** * A style renderer implementation that can be used together with {@link yfiles.styles.ImageNodeStyle} instances. - * @class yfiles.styles.ImageNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -69268,8 +69257,8 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -69277,15 +69266,15 @@ declare namespace system{ *

    * This implementation simply sets the {@link yfiles.styles.ImageNodeStyleRenderer#layout}'s bounds to the scratch variable and returns. *

    - * @param {yfiles.view.ICanvasContext} context the context to calculate the bounds for - * @returns {yfiles.geometry.Rect} the bounds or null to indicate an unbound area + * @param context the context to calculate the bounds for + * @returns the bounds or null to indicate an unbound area */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.ImageNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -69296,63 +69285,63 @@ declare namespace system{ * instead subclasses should ensure that in the {@link yfiles.styles.ImageNodeStyleRenderer#lookup} method call they should call {@link yfiles.styles.ImageNodeStyleRenderer#configure} * only if needed, i.e. if they decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Get the style's fallback image. - * @returns {string} + * @returns * @protected */ getFallbackImage():string; /** * Configures the style and node parameters, calls {@link yfiles.styles.ImageNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * Get the image that is currently used to render the style. - * @returns {string} + * @returns * @protected */ getImage():string; /** * Tries to use the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} to perform the intersection calculation, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.ImageNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * Tries to use the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} to create the outline shape path, otherwise reverts to default (rectangular) behavior. - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Gets the value that determines whether the aspect ratio of the image should be preserved. - * @returns {boolean} false + * @returns false * @protected */ getPreserveAspectRatio():boolean; /** * Configures the {@link yfiles.styles.ImageNodeStyleRenderer#style} and {@link yfiles.styles.ImageNodeStyleRenderer#node} properties, calls {@link yfiles.styles.ImageNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#isInside * @see yfiles.styles.ImageNodeStyleRenderer#getIntersection */ @@ -69364,46 +69353,46 @@ declare namespace system{ * subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.ImageNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.ImageNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#createVisual * @see yfiles.styles.ImageNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * Tries to use {@link yfiles.styles.ImageNodeStyle#normalizedOutline} to perform the hit test analysis, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.input.IInputModeContext} context the context the hit test is performed in - * @param {yfiles.geometry.Point} location the coordinates in world coordinate system - * @returns {boolean} whether something has been hit + * @param context the context the hit test is performed in + * @param location the coordinates in world coordinate system + * @returns whether something has been hit */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * Tries to use the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} to perform the marquee intersection analysis, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * Tries to use the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} to perform the contains test, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Determines visibility by checking for an intersection with the {@link yfiles.styles.ImageNodeStyleRenderer#layout}. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {yfiles.geometry.Rect} rectangle The current clip - * @returns {boolean} Whether the {@link yfiles.styles.ImageNodeStyleRenderer#layout} is visible in the clip. + * @param context The context. + * @param rectangle The current clip + * @returns Whether the {@link #layout} is visible in the clip. */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -69416,15 +69405,15 @@ declare namespace system{ * This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.ImageNodeStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -69462,30 +69451,28 @@ declare namespace system{ *

    * This style can be used together with {@link yfiles.styles.ImageNodeStyleRenderer} instances. *

    - * @class yfiles.styles.ImageNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface ImageNodeStyle extends Object,yfiles.styles.INodeStyle{} export class ImageNodeStyle { /** * Creates a new instance that uses the specified image and a custom renderer instance. - * @param {string} image The image. - * @param {string} [fallbackImage=null] The fallback image. - * @param {yfiles.styles.ImageNodeStyleRenderer} [renderer=null] The renderer for this instance - * @constructor + * @param image The image. + * @param [fallbackImage=null] The fallback image. + * @param [renderer=null] The renderer for this instance */ constructor(image:string,fallbackImage?:string,renderer?:yfiles.styles.ImageNodeStyleRenderer); /** * Creates a new instance that uses the specified image and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.image The image. - * @param {string} [options.fallbackImage=null] The fallback image. - * @param {yfiles.styles.ImageNodeStyleRenderer} [options.renderer=null] The renderer for this instance + * @param options.image The image. + * @param [options.fallbackImage=null] The fallback image. + * @param [options.renderer=null] The renderer for this instance * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of the image that will be displayed. *

    * This option sets the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} property on the created object. *

    - * @constructor */ constructor(options:{image:string,fallbackImage?:string,renderer?:yfiles.styles.ImageNodeStyleRenderer,normalizedOutline?:yfiles.geometry.GeneralPath}); /** @@ -69500,7 +69487,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} property on the created object. *

    - * @constructor */ constructor(options?:{fallbackImage?:string,image?:string,normalizedOutline?:yfiles.geometry.GeneralPath}); /** @@ -69508,7 +69494,7 @@ declare namespace system{ *

    * If clients need to have a deep copy of this instance, they need to manually clone and reassign the {@link yfiles.styles.ImageNodeStyle#image} to the clone. *

    - * @returns {Object} A shallow copy of this instance. + * @returns A shallow copy of this instance. */ clone():Object; /** @@ -69556,21 +69542,20 @@ declare namespace system{ * This style uses the {@link yfiles.styles.PanelNodeStyleRenderer} to visualize a node. *

    * @see yfiles.styles.PanelNodeStyleRenderer - * @class yfiles.styles.PanelNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface PanelNodeStyle extends Object,yfiles.styles.INodeStyle{} export class PanelNodeStyle { /** * Creates a new instance using the provided renderer to share. - * @param {yfiles.styles.PanelNodeStyleRenderer} renderer - * @constructor + * @param renderer */ constructor(renderer:yfiles.styles.PanelNodeStyleRenderer); /** * Creates a new instance using the provided renderer to share. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.PanelNodeStyleRenderer} options.renderer + * @param options.renderer * @param {yfiles.view.Color} options.color The base color to use. *

    * This option sets the {@link yfiles.styles.PanelNodeStyle#color} property on the created object. @@ -69583,7 +69568,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.PanelNodeStyle#labelInsetsColor} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.PanelNodeStyleRenderer,color?:yfiles.view.Color,insets?:yfiles.geometry.Insets,labelInsetsColor?:yfiles.view.Color}); /** @@ -69601,12 +69585,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.PanelNodeStyle#labelInsetsColor} property on the created object. *

    - * @constructor */ constructor(options?:{color?:yfiles.view.Color,insets?:yfiles.geometry.Insets,labelInsetsColor?:yfiles.view.Color}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -69655,7 +69638,7 @@ declare namespace system{ * A {@link yfiles.styles.INodeStyle} {@link yfiles.styles.INodeStyleRenderer renderer} implementation that draws a simple floating panel with a slight gradient, a thin * border and a simple drop shadow. * @see yfiles.styles.PanelNodeStyle - * @class yfiles.styles.PanelNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -69669,7 +69652,6 @@ declare namespace system{ export class PanelNodeStyleRenderer { /** * The style that it currently assigned to this renderer instance. - * @constructor */ constructor(); /** @@ -69687,27 +69669,27 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * Determines whether to draw the drop shadow. - * @returns {boolean} true, always. + * @returns true, always. * @protected */ drawShadow():boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.PanelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -69718,17 +69700,17 @@ declare namespace system{ * instead subclasses should ensure that in the {@link yfiles.styles.PanelNodeStyleRenderer#lookup} method call they should call {@link yfiles.styles.PanelNodeStyleRenderer#configure} * only if needed, i.e. if they decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Configures the style and node parameters, calls {@link yfiles.styles.PanelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; @@ -69737,29 +69719,29 @@ declare namespace system{ *

    * This implementation returns the intersection for the {@link yfiles.styles.PanelNodeStyleRenderer#layout}. *

    - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} True if an intersection was actually found + * @param inner + * @param outer + * @returns True if an intersection was actually found */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.PanelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * Returns the outline of the shape using the node's {@link yfiles.styles.PanelNodeStyleRenderer#layout}. - * @returns {yfiles.geometry.GeneralPath} The outline of the bounds of the node. + * @returns The outline of the bounds of the node. */ getOutline():yfiles.geometry.GeneralPath; /** * Configures the {@link yfiles.styles.PanelNodeStyleRenderer#style} and {@link yfiles.styles.PanelNodeStyleRenderer#node} properties, calls {@link yfiles.styles.PanelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#isInside * @see yfiles.styles.PanelNodeStyleRenderer#getIntersection */ @@ -69771,17 +69753,17 @@ declare namespace system{ * subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.PanelNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.PanelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#createVisual * @see yfiles.styles.PanelNodeStyleRenderer#updateVisual */ @@ -69792,9 +69774,9 @@ declare namespace system{ * This implementation uses the {@link yfiles.styles.PanelNodeStyleRenderer#layout} to determine whether the node has been hit. The check is delegated to {@link yfiles.geometry.Rect#containsWithEps} * using {@link yfiles.view.ICanvasContext#hitTestRadius} as the last argument. *

    - * @param {yfiles.input.IInputModeContext} context the context the hit test is performed in - * @param {yfiles.geometry.Point} location the coordinates in world coordinate system - * @returns {boolean} whether something has been hit + * @param context the context the hit test is performed in + * @param location the coordinates in world coordinate system + * @returns whether something has been hit */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** @@ -69802,9 +69784,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.styles.PanelNodeStyleRenderer#layout} to determine whether the node is in the box. *

    - * @param {yfiles.input.IInputModeContext} context the current input mode context - * @param {yfiles.geometry.Rect} rectangle the box describing the marquee's bounds - * @returns {boolean} true if the node is considered to be captured by the marquee + * @param context the current input mode context + * @param rectangle the box describing the marquee's bounds + * @returns true if the node is considered to be captured by the marquee */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -69812,28 +69794,28 @@ declare namespace system{ *

    * This implementation checks for containment in the {@link yfiles.styles.PanelNodeStyleRenderer#layout}. *

    - * @param {yfiles.geometry.Point} location - * @returns {boolean} True if the point lies within the geometry of the rendering. + * @param location + * @returns True if the point lies within the geometry of the rendering. */ isInside(location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -69871,7 +69853,7 @@ declare namespace system{ * In this case it might be more appropriate to implement a drop shadow implementation using canvas drawing and displaying * the canvas content using an image element with canvas.toDataURL. *

    - * @class yfiles.styles.ShadowNodeStyleDecorator + * @class * @implements {yfiles.styles.INodeStyle} */ export interface ShadowNodeStyleDecorator extends Object,yfiles.styles.INodeStyle{} @@ -69882,8 +69864,7 @@ declare namespace system{ * The provided instance is used by reference, so subsequent changes to the style will affect the appearance of this * style. *

    - * @param {yfiles.styles.INodeStyle} wrapped The style to wrap. - * @constructor + * @param wrapped The style to wrap. */ constructor(wrapped:yfiles.styles.INodeStyle); /** @@ -69898,12 +69879,11 @@ declare namespace system{ * This option sets the {@link yfiles.styles.ShadowNodeStyleDecorator#wrapped} property on the created object. *

    * @see yfiles.styles.ShadowNodeStyleDecorator#wrapped - * @constructor */ constructor(options?:{wrapped?:yfiles.styles.INodeStyle}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -69928,21 +69908,20 @@ declare namespace system{ * This style uses the {@link yfiles.styles.ShinyPlateNodeStyleRenderer} to visualize a node. *

    * @see yfiles.styles.ShinyPlateNodeStyleRenderer - * @class yfiles.styles.ShinyPlateNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface ShinyPlateNodeStyle extends Object,yfiles.styles.INodeStyle{} export class ShinyPlateNodeStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.ShinyPlateNodeStyleRenderer} renderer - * @constructor + * @param renderer */ constructor(renderer:yfiles.styles.ShinyPlateNodeStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.ShinyPlateNodeStyleRenderer} options.renderer + * @param options.renderer * @param {yfiles.view.Fill} options.fill The background brush for this style. *

    * This option sets the {@link yfiles.styles.ShinyPlateNodeStyle#fill} property on the created object. @@ -69963,7 +69942,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ShinyPlateNodeStyle#radius} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.ShinyPlateNodeStyleRenderer,fill?:yfiles.view.Fill,drawShadow?:boolean,insets?:yfiles.geometry.Insets,stroke?:yfiles.view.Stroke,radius?:number}); /** @@ -69989,12 +69967,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ShinyPlateNodeStyle#radius} property on the created object. *

    - * @constructor */ constructor(options?:{fill?:yfiles.view.Fill,drawShadow?:boolean,insets?:yfiles.geometry.Insets,stroke?:yfiles.view.Stroke,radius?:number}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -70057,7 +70034,7 @@ declare namespace system{ * A {@link yfiles.styles.INodeStyle} {@link yfiles.styles.INodeStyleRenderer renderer} implementation that draws a simple floating shinyPlate with a slight gradient, a * thin border and a simple drop shadow. * @see yfiles.styles.ShinyPlateNodeStyle - * @class yfiles.styles.ShinyPlateNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -70085,27 +70062,27 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * Determines whether to draw the drop shadow. - * @returns {boolean} {@link yfiles.styles.ShinyPlateNodeStyle#drawShadow}. + * @returns {@link #drawShadow}. * @protected */ drawShadow():boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -70118,45 +70095,45 @@ declare namespace system{ * call {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} only if needed, i.e. if they decide to return this or an * instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Configures the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} and {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} properties, calls {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#isInside * @see yfiles.styles.ShinyPlateNodeStyleRenderer#getIntersection */ @@ -70169,26 +70146,26 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.ShinyPlateNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#createVisual * @see yfiles.styles.ShinyPlateNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** @@ -70196,35 +70173,35 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#layout} to determine whether the node is in the box. *

    - * @param {yfiles.input.IInputModeContext} context the current input mode context - * @param {yfiles.geometry.Rect} rectangle the box describing the marquee's bounds - * @returns {boolean} true if the node is considered to be captured by the marquee + * @param context the current input mode context + * @param rectangle the box describing the marquee's bounds + * @returns true if the node is considered to be captured by the marquee */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -70267,310 +70244,11 @@ declare namespace system{ radius:number; static $class:yfiles.lang.Class; } - /** - * A {@link yfiles.styles.INodeStyle} for {@link yfiles.graph.ITable tables}. - *

    - * This implementations stores the table instance and therefore, its instances cannot be shared among different table - * instances. - *

    - * @class yfiles.styles.TableNodeStyle - * @implements {yfiles.styles.INodeStyle} - * @implements {yfiles.lang.IPropertyObservable} - */ - export interface TableNodeStyle extends Object,yfiles.styles.INodeStyle,yfiles.lang.IPropertyObservable{} - export class TableNodeStyle { - /** - * Constructor with a custom renderer implementation that uses table as backing table model. - * @param {yfiles.graph.ITable} table The table instance that defines the tabular structure. - * @param {yfiles.styles.TableNodeStyleRenderer} [renderer=null] Custom renderer instance for this style. - * @constructor - */ - constructor(table:yfiles.graph.ITable,renderer?:yfiles.styles.TableNodeStyleRenderer); - /** - * Constructor with a custom renderer implementation that uses table as backing table model. - * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ITable} options.table The table instance that defines the tabular structure. - * @param {yfiles.styles.TableNodeStyleRenderer} [options.renderer=null] Custom renderer instance for this style. - * @param {yfiles.styles.INodeStyle} options.backgroundStyle The style that is used to draw the background of the table - *

    - * This option sets the {@link yfiles.styles.TableNodeStyle#backgroundStyle} property on the created object. - *

    - * @param {yfiles.styles.TableRenderingOrder} options.tableRenderingOrder The order in which rows and columns are rendered. - *

    - * This option sets the {@link yfiles.styles.TableNodeStyle#tableRenderingOrder} property on the created object. - *

    - * @constructor - */ - constructor(options:{table:yfiles.graph.ITable,renderer?:yfiles.styles.TableNodeStyleRenderer,backgroundStyle?:yfiles.styles.INodeStyle,tableRenderingOrder?:yfiles.styles.TableRenderingOrder}); - /** - * Default constructor that creates an empty table. - * @param {Object} [options=null] The parameters to pass. - * @param {yfiles.styles.INodeStyle} options.backgroundStyle The style that is used to draw the background of the table - *

    - * This option sets the {@link yfiles.styles.TableNodeStyle#backgroundStyle} property on the created object. - *

    - * @param {yfiles.graph.ITable} options.table The {@link yfiles.graph.ITable} instance that defines the tabular structure. - *

    - * This option sets the {@link yfiles.styles.TableNodeStyle#table} property on the created object. - *

    - * @param {yfiles.styles.TableRenderingOrder} options.tableRenderingOrder The order in which rows and columns are rendered. - *

    - * This option sets the {@link yfiles.styles.TableNodeStyle#tableRenderingOrder} property on the created object. - *

    - * @constructor - */ - constructor(options?:{backgroundStyle?:yfiles.styles.INodeStyle,table?:yfiles.graph.ITable,tableRenderingOrder?:yfiles.styles.TableRenderingOrder}); - /** - * - * @returns {Object} - */ - clone():Object; - /** - * Create a copy of the background style when this style instance is cloned - * @param {yfiles.styles.INodeStyle} style The original background node style - * @returns {yfiles.styles.INodeStyle} This implementation always returns the original style instance. - * @protected - */ - copyBackgroundStyle(style:yfiles.styles.INodeStyle):yfiles.styles.INodeStyle; - /** - * Create a copy of the table when this style instance is cloned - * @param {yfiles.graph.ITable} table The original table instance - * @returns {yfiles.graph.ITable} This implementation always tries to {@link yfiles.lang.ICloneable#clone} clone the original table instance, if possible, - * otherwise it returns table unchanged. - * @protected - */ - copyTable(table:yfiles.graph.ITable):yfiles.graph.ITable; - /** - * Raises the {@link yfiles.styles.TableNodeStyle#addPropertyChangedListener PropertyChanged} event. - *

    - * Called when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. - *

    - * @param {yfiles.lang.PropertyChangedEventArgs} evt The {@link yfiles.lang.PropertyChangedEventArgs} instance containing the event data. - * @protected - */ - onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; - /** - * Gets or sets the order in which rows and columns are rendered. - * @default 0 - * @type {yfiles.styles.TableRenderingOrder} - */ - tableRenderingOrder:yfiles.styles.TableRenderingOrder; - /** - * Gets or sets the style that is used to draw the background of the table - * @default 'TableNodeStyle.defaultBackgroundStyle' - * @type {yfiles.styles.INodeStyle} - */ - backgroundStyle:yfiles.styles.INodeStyle; - /** - * Adds the given listener for the PropertyChanged event that occurs when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. - * @see yfiles.styles.TableNodeStyle#removePropertyChangedListener - */ - addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Removes the given listener for the PropertyChanged event that occurs when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. - * @see yfiles.styles.TableNodeStyle#addPropertyChangedListener - */ - removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.graph.ITable} instance that defines the tabular structure. - * @type {yfiles.graph.ITable} - */ - table:yfiles.graph.ITable; - /** - * - * @type {yfiles.styles.INodeStyleRenderer} - */ - renderer:yfiles.styles.INodeStyleRenderer; - static $class:yfiles.lang.Class; - } - /** - * Default renderer implementation that can be used for {@link yfiles.styles.TableNodeStyle} instances. - * @class yfiles.styles.TableNodeStyleRenderer - * @implements {yfiles.styles.INodeStyleRenderer} - * @implements {yfiles.styles.IShapeGeometry} - * @implements {yfiles.view.IBoundsProvider} - * @implements {yfiles.view.IVisibilityTestable} - * @implements {yfiles.input.IMarqueeTestable} - * @implements {yfiles.input.IHitTestable} - * @implements {yfiles.graph.ILookup} - * @implements {yfiles.view.IVisualCreator} - */ - export interface TableNodeStyleRenderer extends Object,yfiles.styles.INodeStyleRenderer,yfiles.styles.IShapeGeometry,yfiles.view.IBoundsProvider,yfiles.view.IVisibilityTestable,yfiles.input.IMarqueeTestable,yfiles.input.IHitTestable,yfiles.graph.ILookup,yfiles.view.IVisualCreator{} - export class TableNodeStyleRenderer { - /** - * Prepares this instance for subsequent calls after the style and node have been initialized. - *

    - * Upon invocation the {@link yfiles.styles.TableNodeStyleRenderer#style} and {@link yfiles.styles.TableNodeStyleRenderer#node} properties have been populated by the {@link yfiles.styles.TableNodeStyleRenderer#getVisualCreator}, - * {@link yfiles.styles.TableNodeStyleRenderer#getBoundsProvider}, {@link yfiles.styles.TableNodeStyleRenderer#getHitTestable}, or {@link yfiles.styles.TableNodeStyleRenderer#getMarqueeTestable} - * methods. - *

    - *

    - * This is an empty implementation. Subclasses might have to override this method. - *

    - * @protected - */ - configure():void; - /** - * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} - */ - createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; - /** - * Get the {@link yfiles.styles.INodeStyle background style} that is currently used by this renderer. - *

    - * This implementation retrieves the {@link yfiles.styles.TableNodeStyle#backgroundStyle} from the owning style - *

    - * @returns {yfiles.styles.INodeStyle} The {@link yfiles.styles.INodeStyle background style} that is currently used by this renderer. - * @protected - */ - getBackgroundStyle():yfiles.styles.INodeStyle; - /** - * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} - */ - getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IBoundsProvider} - */ - getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.graph.ILookup} - */ - getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.input.IHitTestable} - */ - getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; - /** - * - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} - */ - getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.input.IMarqueeTestable} - */ - getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; - /** - * - * @returns {yfiles.geometry.GeneralPath} - */ - getOutline():yfiles.geometry.GeneralPath; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.styles.IShapeGeometry} - */ - getShapeGeometry(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.styles.IShapeGeometry; - /** - * Gets the table object that should be used for rendering. - *

    - * This implementation delegates to the Table provided by the {@link yfiles.styles.TableNodeStyle#table} property. - *

    - * @returns {yfiles.graph.ITable} The table that should be used for the rendering process. - * @protected - */ - getTable():yfiles.graph.ITable; - /** - * Get the {@link yfiles.styles.TableRenderingOrder} that is currently used by this renderer. - *

    - * This implementation retrieves the {@link yfiles.styles.TableRenderingOrder} from the owning style - *

    - * @returns {yfiles.styles.TableRenderingOrder} The {@link yfiles.styles.TableRenderingOrder} that is currently used by this renderer. - * @protected - */ - getTableRenderingOrder():yfiles.styles.TableRenderingOrder; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IVisibilityTestable} - */ - getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IVisualCreator} - */ - getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; - /** - * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} - */ - isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; - /** - * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} - */ - isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; - /** - * - * @param {yfiles.geometry.Point} location - * @returns {boolean} - */ - isInside(location:yfiles.geometry.Point):boolean; - /** - * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} - */ - isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; - /** - * - * @param {yfiles.lang.Class} type - * @returns {Object} - */ - lookup(type:yfiles.lang.Class):Object; - /** - * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} - */ - updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; - /** - * Gets or sets the currently configured style. - * @protected - * @type {yfiles.styles.TableNodeStyle} - */ - style:yfiles.styles.TableNodeStyle; - /** - * Gets or sets the currently configured node. - * @protected - * @type {yfiles.graph.INode} - */ - node:yfiles.graph.INode; - static $class:yfiles.lang.Class; - } /** * Base class for stripe styles that use a SVG snippet as template for the visualization of {@link yfiles.graph.IStripe}s. * @see yfiles.styles.TemplateStripeStyle * @see yfiles.styles.StringTemplateStripeStyle - * @class yfiles.styles.TemplateStripeStyleBase + * @class * @implements {yfiles.styles.IStripeStyle} * @implements {yfiles.lang.IPropertyObservable} * @implements {yfiles.lang.ICloneable} @@ -70579,28 +70257,26 @@ declare namespace system{ export class TemplateStripeStyleBase { /** * Constructs a new instance using the provided renderer. - * @param {yfiles.styles.TemplateStripeStyleRenderer} renderer + * @param renderer * @protected - * @constructor */ constructor(renderer:yfiles.styles.TemplateStripeStyleRenderer); /** * Constructs a new instance of this style with default values. * @protected - * @constructor */ constructor(); /** * Performs a shallow clone of this instance, except for the value of {@link yfiles.styles.TemplateStripeStyleBase#styleTag} which is cloned, too, if it can be cloned. - * @returns {Object} A clone of this instance. + * @returns A clone of this instance. */ clone():Object; /** * Factory method that is called by the {@link yfiles.styles.TemplateStripeStyleRenderer} to create the visual that will be used * for the display of the stripe. - * @param {yfiles.view.IRenderContext} context The context for which the visual should be created. - * @param {yfiles.graph.IStripe} stripe The stripe that will be rendered. - * @returns {yfiles.view.SvgVisual} The readily styled visual. + * @param context The context for which the visual should be created. + * @param stripe The stripe that will be rendered. + * @returns The readily styled visual. */ createTemplate(context:yfiles.view.IRenderContext,stripe:yfiles.graph.IStripe):yfiles.view.SvgVisual; /** @@ -70615,19 +70291,19 @@ declare namespace system{ /** * Raises the {@link yfiles.styles.TemplateStripeStyleBase#addPropertyChangedListener PropertyChanged} * event. - * @param {yfiles.lang.PropertyChangedEventArgs} evt The {@link yfiles.lang.PropertyChangedEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; /** * Adds the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.styles.TemplateStripeStyleBase#removePropertyChangedListener */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.styles.TemplateStripeStyleBase#addPropertyChangedListener */ removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -70674,61 +70350,31 @@ declare namespace system{ *
  • Demo: Control Styles Demo, Demo.yFiles.Graph.ControlStyles
  • *
  • Demo: OrgChart Demo, Demo.yFiles.Graph.OrgChart
  • * - * @class yfiles.styles.TemplateStripeStyle + * @class * @extends {yfiles.styles.TemplateStripeStyleBase} */ export interface TemplateStripeStyle extends yfiles.styles.TemplateStripeStyleBase{} export class TemplateStripeStyle { /** * Creates a new instance using the given resource key and a custom renderer instance. - * @param {string} styleResourceKey The key of the style resource that will be used for the component. - * @param {yfiles.styles.TemplateStripeStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param styleResourceKey The key of the style resource that will be used for the component. + * @param renderer The custom renderer for this style instance. */ constructor(styleResourceKey:string,renderer:yfiles.styles.TemplateStripeStyleRenderer); - /** - * Creates a new instance using the given resource key and a custom renderer instance. - * @param {Object} options The parameters to pass. - * @param {string} options.styleResourceKey The key of the style resource that will be used for the component. - * @param {yfiles.styles.TemplateStripeStyleRenderer} options.renderer The custom renderer for this style instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. - *

    - * @constructor - */ - constructor(options:{styleResourceKey:string,renderer:yfiles.styles.TemplateStripeStyleRenderer,styleTag?:Object}); /** * Creates a new instance using the given resource key and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. - * @param {string} styleResourceKey The key of the style resource that will be used for the component. - * @constructor + * @param styleResourceKey The key of the style resource that will be used for the component. */ constructor(styleResourceKey:string); - /** - * Creates a new instance using the given resource key and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. - * @param {Object} options The parameters to pass. - * @param {string} options.styleResourceKey The key of the style resource that will be used for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. - *

    - * @constructor - */ - constructor(options:{styleResourceKey:string,styleTag?:Object}); /** * Creates a new instance with no style resource key and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. - *

    * @param {string} options.styleResourceKey The {@link string} that will be used to look up the template that is applied to the component. *

    * This option sets the {@link yfiles.styles.TemplateStripeStyle#styleResourceKey} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,styleResourceKey?:string}); + constructor(options?:{styleResourceKey?:string}); /** * Gets or sets the {@link string} that will be used to look up the template that is applied to the component. * @default null @@ -70748,61 +70394,42 @@ declare namespace system{ * in order to avoid immediate validation of the result. The resulting SVG elements are automatically created in the SVG * namespace before they are added to the DOM. *

    - * @class yfiles.styles.StringTemplateStripeStyle + * @class * @extends {yfiles.styles.TemplateStripeStyleBase} */ export interface StringTemplateStripeStyle extends yfiles.styles.TemplateStripeStyleBase{} export class StringTemplateStripeStyle { /** * Creates a new instance using the given SVG template and a custom renderer instance. - * @param {string} svgContent The SVG snippet that will be used as a template for the component. - * @param {yfiles.styles.TemplateStripeStyleRenderer} renderer The custom renderer for this instance. - * @constructor + * @param svgContent The SVG snippet that will be used as a template for the component. + * @param renderer The custom renderer for this instance. */ constructor(svgContent:string,renderer:yfiles.styles.TemplateStripeStyleRenderer); /** * Creates a new instance using the given SVG template and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet that will be used as a template for the component. - * @param {yfiles.styles.TemplateStripeStyleRenderer} options.renderer The custom renderer for this instance. + * @param options.svgContent The SVG snippet that will be used as a template for the component. + * @param options.renderer The custom renderer for this instance. * @param {Object} options.styleTag The tag that is associated with this style instance. *

    * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. *

    - * @constructor */ constructor(options:{svgContent:string,renderer:yfiles.styles.TemplateStripeStyleRenderer,styleTag?:Object}); /** * Creates a new instance using the given SVG template and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. - * @param {string} svgContent The SVG snippet that will be used as a template for the component. - * @constructor + * @param svgContent The SVG snippet that will be used as a template for the component. */ constructor(svgContent:string); - /** - * Creates a new instance using the given SVG template and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. - * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet that will be used as a template for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. - *

    - * @constructor - */ - constructor(options:{svgContent:string,styleTag?:Object}); /** * Creates a new instance with no SVG template and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. - *

    * @param {string} options.svgContent The SVG content that is the template for the stripe visualization. *

    * This option sets the {@link yfiles.styles.StringTemplateStripeStyle#svgContent} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,svgContent?:string}); + constructor(options?:{svgContent?:string}); /** * Gets or sets the SVG content that is the template for the stripe visualization. * @default null @@ -70815,7 +70442,7 @@ declare namespace system{ * An implementation of the {@link yfiles.styles.IStripeStyleRenderer} interface that can render {@link yfiles.styles.TemplateStripeStyle} * instances. * @see yfiles.styles.TemplateStripeStyle - * @class yfiles.styles.TemplateStripeStyleRenderer + * @class * @implements {yfiles.styles.IStripeStyleRenderer} * @implements {yfiles.graph.ILookup} * @implements {yfiles.view.IVisualCreator} @@ -70836,8 +70463,8 @@ declare namespace system{ configure():void; /** * Creates the visual by delegating to CreateControl and then initializing the control with the context. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @returns {yfiles.view.Visual} The control that is used for rendering the stripe. + * @param context The context for the creation. + * @returns The control that is used for rendering the stripe. */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -70849,24 +70476,24 @@ declare namespace system{ * call {@link yfiles.styles.TemplateStripeStyleRenderer#configure} only if needed, i.e. if they decide to return this or an * instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to query the context for. The value will be stored in the {@link yfiles.styles.TemplateStripeStyleRenderer#stripe} property. - * @param {yfiles.styles.IStripeStyle} style The style to associate with the stripe. The value will be stored in the {@link yfiles.styles.TemplateStripeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param stripe The stripe to query the context for. The value will be stored in the {@link #stripe} property. + * @param style The style to associate with the stripe. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateStripeStyleRenderer#lookup */ getContext(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):yfiles.graph.ILookup; /** * Gets the context by delegating to {@link yfiles.styles.TemplateStripeStyleBase#contextLookup}. - * @param {yfiles.styles.TemplateStripeStyleBase} style - * @returns {yfiles.graph.IContextLookup} + * @param style + * @returns * @protected */ getContextLookup(style:yfiles.styles.TemplateStripeStyleBase):yfiles.graph.IContextLookup; /** * Configures the style and stripe parameters, calls {@link yfiles.styles.TemplateStripeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.IStripe} stripe The stripe to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.TemplateStripeStyleRenderer#stripe} property. - * @param {yfiles.styles.IStripeStyle} style The style to associate with the stripe. The value will be stored in the {@link yfiles.styles.TemplateStripeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param stripe The stripe to retrieve the {@link } for. The value will be stored in the {@link #stripe} property. + * @param style The style to associate with the stripe. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateStripeStyleRenderer#createVisual * @see yfiles.styles.TemplateStripeStyleRenderer#updateVisual */ @@ -70877,15 +70504,15 @@ declare namespace system{ * Delegates to the lookup returned by GetContextLookup(StripeControlStripeStyle), first. Last, it returns this class if it * implements the queried type. *

    - * @param {yfiles.lang.Class} type The type to query an instance for. - * @returns {Object} The implementation or null. + * @param type The type to query an instance for. + * @returns The implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Updates the component correspondingly. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @param {yfiles.view.Visual} oldVisual The currently rendered visual. - * @returns {yfiles.view.Visual} The control that is used for rendering the stripe. + * @param context The context for the creation. + * @param oldVisual The currently rendered visual. + * @returns The control that is used for rendering the stripe. */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -70910,6 +70537,302 @@ declare namespace system{ layout:yfiles.geometry.IRectangle; static $class:yfiles.lang.Class; } + /** + * A {@link yfiles.styles.INodeStyle} for {@link yfiles.graph.ITable tables}. + *

    + * This implementations stores the table instance and therefore, its instances cannot be shared among different table + * instances. + *

    + * @class + * @implements {yfiles.styles.INodeStyle} + * @implements {yfiles.lang.IPropertyObservable} + */ + export interface TableNodeStyle extends Object,yfiles.styles.INodeStyle,yfiles.lang.IPropertyObservable{} + export class TableNodeStyle { + /** + * Constructor with a custom renderer implementation that uses table as backing table model. + * @param table The table instance that defines the tabular structure. + * @param [renderer=null] Custom renderer instance for this style. + */ + constructor(table:yfiles.graph.ITable,renderer?:yfiles.styles.TableNodeStyleRenderer); + /** + * Constructor with a custom renderer implementation that uses table as backing table model. + * @param {Object} options The parameters to pass. + * @param options.table The table instance that defines the tabular structure. + * @param [options.renderer=null] Custom renderer instance for this style. + * @param {yfiles.styles.INodeStyle} options.backgroundStyle The style that is used to draw the background of the table + *

    + * This option sets the {@link yfiles.styles.TableNodeStyle#backgroundStyle} property on the created object. + *

    + * @param {yfiles.styles.TableRenderingOrder} options.tableRenderingOrder The order in which rows and columns are rendered. + *

    + * This option sets the {@link yfiles.styles.TableNodeStyle#tableRenderingOrder} property on the created object. + *

    + */ + constructor(options:{table:yfiles.graph.ITable,renderer?:yfiles.styles.TableNodeStyleRenderer,backgroundStyle?:yfiles.styles.INodeStyle,tableRenderingOrder?:yfiles.styles.TableRenderingOrder}); + /** + * Default constructor that creates an empty table. + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.styles.INodeStyle} options.backgroundStyle The style that is used to draw the background of the table + *

    + * This option sets the {@link yfiles.styles.TableNodeStyle#backgroundStyle} property on the created object. + *

    + * @param {yfiles.graph.ITable} options.table The {@link yfiles.graph.ITable} instance that defines the tabular structure. + *

    + * This option sets the {@link yfiles.styles.TableNodeStyle#table} property on the created object. + *

    + * @param {yfiles.styles.TableRenderingOrder} options.tableRenderingOrder The order in which rows and columns are rendered. + *

    + * This option sets the {@link yfiles.styles.TableNodeStyle#tableRenderingOrder} property on the created object. + *

    + */ + constructor(options?:{backgroundStyle?:yfiles.styles.INodeStyle,table?:yfiles.graph.ITable,tableRenderingOrder?:yfiles.styles.TableRenderingOrder}); + /** + * + * @returns + */ + clone():Object; + /** + * Create a copy of the background style when this style instance is cloned + * @param style The original background node style + * @returns This implementation always returns the original style instance. + * @protected + */ + copyBackgroundStyle(style:yfiles.styles.INodeStyle):yfiles.styles.INodeStyle; + /** + * Create a copy of the table when this style instance is cloned + * @param table The original table instance + * @returns This implementation always tries to {@link #clone} clone the original table instance, if possible, + * otherwise it returns table unchanged. + * @protected + */ + copyTable(table:yfiles.graph.ITable):yfiles.graph.ITable; + /** + * Raises the {@link yfiles.styles.TableNodeStyle#addPropertyChangedListener PropertyChanged} event. + *

    + * Called when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. + *

    + * @param evt The {@link } instance containing the event data. + * @protected + */ + onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; + /** + * Gets or sets the order in which rows and columns are rendered. + * @default yfiles.styles.TableRenderingOrder.COLUMNS_FIRST + * @type {yfiles.styles.TableRenderingOrder} + */ + tableRenderingOrder:yfiles.styles.TableRenderingOrder; + /** + * Gets or sets the style that is used to draw the background of the table + * @default 'TableNodeStyle.defaultBackgroundStyle' + * @type {yfiles.styles.INodeStyle} + */ + backgroundStyle:yfiles.styles.INodeStyle; + /** + * Adds the given listener for the PropertyChanged event that occurs when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. + * @param listener The listener to add. + * @see yfiles.styles.TableNodeStyle#removePropertyChangedListener + */ + addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Removes the given listener for the PropertyChanged event that occurs when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. + * @param listener The listener to remove. + * @see yfiles.styles.TableNodeStyle#addPropertyChangedListener + */ + removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.graph.ITable} instance that defines the tabular structure. + * @type {yfiles.graph.ITable} + */ + table:yfiles.graph.ITable; + /** + * + * @type {yfiles.styles.INodeStyleRenderer} + */ + renderer:yfiles.styles.INodeStyleRenderer; + static $class:yfiles.lang.Class; + } + /** + * Default renderer implementation that can be used for {@link yfiles.styles.TableNodeStyle} instances. + * @class + * @implements {yfiles.styles.INodeStyleRenderer} + * @implements {yfiles.styles.IShapeGeometry} + * @implements {yfiles.view.IBoundsProvider} + * @implements {yfiles.view.IVisibilityTestable} + * @implements {yfiles.input.IMarqueeTestable} + * @implements {yfiles.input.IHitTestable} + * @implements {yfiles.graph.ILookup} + * @implements {yfiles.view.IVisualCreator} + */ + export interface TableNodeStyleRenderer extends Object,yfiles.styles.INodeStyleRenderer,yfiles.styles.IShapeGeometry,yfiles.view.IBoundsProvider,yfiles.view.IVisibilityTestable,yfiles.input.IMarqueeTestable,yfiles.input.IHitTestable,yfiles.graph.ILookup,yfiles.view.IVisualCreator{} + export class TableNodeStyleRenderer { + /** + * Prepares this instance for subsequent calls after the style and node have been initialized. + *

    + * Upon invocation the {@link yfiles.styles.TableNodeStyleRenderer#style} and {@link yfiles.styles.TableNodeStyleRenderer#node} properties have been populated by the {@link yfiles.styles.TableNodeStyleRenderer#getVisualCreator}, + * {@link yfiles.styles.TableNodeStyleRenderer#getBoundsProvider}, {@link yfiles.styles.TableNodeStyleRenderer#getHitTestable}, or {@link yfiles.styles.TableNodeStyleRenderer#getMarqueeTestable} + * methods. + *

    + *

    + * This is an empty implementation. Subclasses might have to override this method. + *

    + * @protected + */ + configure():void; + /** + * + * @param context + * @returns + */ + createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; + /** + * Get the {@link yfiles.styles.INodeStyle background style} that is currently used by this renderer. + *

    + * This implementation retrieves the {@link yfiles.styles.TableNodeStyle#backgroundStyle} from the owning style + *

    + * @returns The {@link background style} that is currently used by this renderer. + * @protected + */ + getBackgroundStyle():yfiles.styles.INodeStyle; + /** + * + * @param context + * @returns + */ + getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; + /** + * + * @param node + * @param style + * @returns + */ + getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; + /** + * + * @param node + * @param style + * @returns + */ + getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; + /** + * + * @param node + * @param style + * @returns + */ + getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; + /** + * + * @param inner + * @param outer + * @returns + */ + getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; + /** + * + * @param node + * @param style + * @returns + */ + getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; + /** + * + * @returns + */ + getOutline():yfiles.geometry.GeneralPath; + /** + * + * @param node + * @param style + * @returns + */ + getShapeGeometry(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.styles.IShapeGeometry; + /** + * Gets the table object that should be used for rendering. + *

    + * This implementation delegates to the Table provided by the {@link yfiles.styles.TableNodeStyle#table} property. + *

    + * @returns The table that should be used for the rendering process. + * @protected + */ + getTable():yfiles.graph.ITable; + /** + * Get the {@link yfiles.styles.TableRenderingOrder} that is currently used by this renderer. + *

    + * This implementation retrieves the {@link yfiles.styles.TableRenderingOrder} from the owning style + *

    + * @returns The {@link } that is currently used by this renderer. + * @protected + */ + getTableRenderingOrder():yfiles.styles.TableRenderingOrder; + /** + * + * @param node + * @param style + * @returns + */ + getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; + /** + * + * @param node + * @param style + * @returns + */ + getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; + /** + * + * @param context + * @param location + * @returns + */ + isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; + /** + * + * @param context + * @param rectangle + * @returns + */ + isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; + /** + * + * @param location + * @returns + */ + isInside(location:yfiles.geometry.Point):boolean; + /** + * + * @param context + * @param rectangle + * @returns + */ + isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; + /** + * + * @param type + * @returns + */ + lookup(type:yfiles.lang.Class):Object; + /** + * + * @param context + * @param oldVisual + * @returns + */ + updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; + /** + * Gets or sets the currently configured style. + * @protected + * @type {yfiles.styles.TableNodeStyle} + */ + style:yfiles.styles.TableNodeStyle; + /** + * Gets or sets the currently configured node. + * @protected + * @type {yfiles.graph.INode} + */ + node:yfiles.graph.INode; + static $class:yfiles.lang.Class; + } /** * The context of a TemplateBinding. This interface exposes properties of a graph element onto which a TemplateBinding can * be bound. @@ -70985,11 +70908,41 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; + /** + * Enhances the context of a TemplateBinding ({@link yfiles.styles.ITemplateStyleBindingContext}) for labels. This interface + * exposes additional properties of a label onto which a TemplateBinding can be bound. + * @interface + * @implements {yfiles.lang.IPropertyObservable} + */ + export interface ILabelTemplateStyleBindingContext extends Object,yfiles.lang.IPropertyObservable{ + /** + * Gets or sets the label text property that is populated using the {@link yfiles.graph.ILabel}'s {@link yfiles.graph.ILabel#text} property. + * @abstract + * @type {string} + */ + labelText:string; + /** + * Gets a value indicating whether this instance has been flipped so that it points upwards. + * @abstract + * @type {boolean} + */ + isFlipped:boolean; + /** + * Gets a value indicating whether this instance is currently rendered upside down. + * @abstract + * @type {boolean} + */ + isUpsideDown:boolean; + } + var ILabelTemplateStyleBindingContext:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; /** * Base class for label styles that use a SVG snippet as template for the visualization of {@link yfiles.graph.ILabel}s. * @see yfiles.styles.TemplateLabelStyle * @see yfiles.styles.StringTemplateLabelStyle - * @class yfiles.styles.TemplateLabelStyleBase + * @class * @implements {yfiles.styles.ILabelStyle} * @implements {yfiles.lang.IPropertyObservable} * @implements {yfiles.lang.ICloneable} @@ -70998,34 +70951,32 @@ declare namespace system{ export class TemplateLabelStyleBase { /** * Constructs a new instance using the provided renderer. - * @param {yfiles.styles.TemplateLabelStyleRenderer} renderer - * @constructor + * @param renderer */ constructor(renderer:yfiles.styles.TemplateLabelStyleRenderer); /** * Constructs a new instance of this style with default values. * @protected - * @constructor */ constructor(); /** * Performs a shallow clone of this instance, except for the value of {@link yfiles.styles.TemplateLabelStyleBase#styleTag} which is cloned, too, if it can be cloned. - * @returns {Object} A clone of this instance. + * @returns A clone of this instance. */ clone():Object; /** * Factory method that is called by the {@link yfiles.styles.TemplateLabelStyleRenderer} to create the visual that will be used for * the display of the label. - * @param {yfiles.view.IRenderContext} context The context for which the visual should be created. - * @param {yfiles.graph.ILabel} label The label that will be rendered. - * @returns {yfiles.view.SvgVisual} The readily styled visual. + * @param context The context for which the visual should be created. + * @param label The label that will be rendered. + * @returns The readily styled visual. */ createTemplate(context:yfiles.view.IRenderContext,label:yfiles.graph.ILabel):yfiles.view.SvgVisual; /** * Convenience method that determines the preferred size of the label if this style was applied. - * @param {yfiles.view.IRenderContext} context The context for which the size should be calculated. - * @param {yfiles.graph.ILabel} label The label to determine the preferred size of. - * @returns {yfiles.geometry.Size} The preferred size. + * @param context The context for which the size should be calculated. + * @param label The label to determine the preferred size of. + * @returns The preferred size. */ getPreferredSize(context:yfiles.view.IRenderContext,label:yfiles.graph.ILabel):yfiles.geometry.Size; /** @@ -71039,19 +70990,19 @@ declare namespace system{ static loadAllTemplates():void; /** * Raises the {@link yfiles.styles.TemplateLabelStyleBase#addPropertyChangedListener PropertyChanged} event. - * @param {yfiles.lang.PropertyChangedEventArgs} evt The {@link yfiles.lang.PropertyChangedEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; /** * Adds the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.styles.TemplateLabelStyleBase#removePropertyChangedListener */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.styles.TemplateLabelStyleBase#addPropertyChangedListener */ removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -71139,28 +71090,26 @@ declare namespace system{ *
  • itemFocused: Whether the element has the focus
  • *
  • itemHighlighted: Whether the element is highlighted
  • *
  • styleTag: The tag associated with the element's style instance
  • + *
  • labelText: The label text property that is populated using the {@link yfiles.graph.ILabel}'s {@link yfiles.graph.ILabel#text} property
  • + *
  • isFlipped: Whether the element has been flipped
  • + *
  • isUpsideDown: Whether the element is currently rendered upside down
  • * - * @class yfiles.styles.TemplateLabelStyle + * @class * @extends {yfiles.styles.TemplateLabelStyleBase} */ export interface TemplateLabelStyle extends yfiles.styles.TemplateLabelStyleBase{} export class TemplateLabelStyle { /** * Creates a new instance using the given render template id and a custom renderer instance. - * @param {string} renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplateLabelStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderTemplateId The id of the SVG snippet that will be used for the component. + * @param renderer The custom renderer for this style instance. */ constructor(renderTemplateId:string,renderer:yfiles.styles.TemplateLabelStyleRenderer); /** * Creates a new instance using the given render template id and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplateLabelStyleRenderer} options.renderer The custom renderer for this style instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the SVG snippet that will be used for the component. + * @param options.renderer The custom renderer for this style instance. * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71173,23 +71122,17 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#preferredSize} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplateLabelStyleRenderer,styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); + constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplateLabelStyleRenderer,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); /** * Creates a new instance using the given render template id. - * @param {string} renderTemplateId The id of the render template that will be used for the component. - * @constructor + * @param renderTemplateId The id of the render template that will be used for the component. */ constructor(renderTemplateId:string); /** * Creates a new instance using the given render template id. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the render template that will be used for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the render template that will be used for the component. * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71202,16 +71145,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#preferredSize} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); + constructor(options:{renderTemplateId:string,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); /** * Creates a new instance with no render template id and {@link yfiles.styles.TemplateLabelStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71228,9 +71166,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateLabelStyle#styleResourceKey} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,styleResourceKey?:string}); + constructor(options?:{autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,styleResourceKey?:string}); /** * Gets or sets the {@link string} that will be used to look up the template that is applied to the component. *

    @@ -71270,26 +71207,24 @@ declare namespace system{ *

  • itemFocused: Whether the element has the focus
  • *
  • itemHighlighted: Whether the element is highlighted
  • *
  • styleTag: The tag associated with the element's style instance
  • + *
  • labelText: The label text property that is populated using the {@link yfiles.graph.ILabel}'s {@link yfiles.graph.ILabel#text} property
  • + *
  • isFlipped: Whether this instance has been flipped so that it points upwards
  • + *
  • isUpsideDown: Whether this instance is currently rendered upside down
  • * - * @class yfiles.styles.StringTemplateLabelStyle + * @class * @extends {yfiles.styles.TemplateLabelStyleBase} */ export interface StringTemplateLabelStyle extends yfiles.styles.TemplateLabelStyleBase{} export class StringTemplateLabelStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.TemplateLabelStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderer The custom renderer for this style instance. */ constructor(renderer:yfiles.styles.TemplateLabelStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.TemplateLabelStyleRenderer} options.renderer The custom renderer for this style instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    + * @param options.renderer The custom renderer for this style instance. * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71306,23 +71241,17 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.StringTemplateLabelStyle#svgContent} property on the created object. *

    - * @constructor */ - constructor(options:{renderer:yfiles.styles.TemplateLabelStyleRenderer,styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,svgContent?:string}); + constructor(options:{renderer:yfiles.styles.TemplateLabelStyleRenderer,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,svgContent?:string}); /** * Initializes a new instance of this class and sets the given string as its {@link yfiles.styles.StringTemplateLabelStyle#svgContent}. - * @param {string} svgContent The SVG snippet to use as template. - * @constructor + * @param svgContent The SVG snippet to use as template. */ constructor(svgContent:string); /** * Initializes a new instance of this class and sets the given string as its {@link yfiles.styles.StringTemplateLabelStyle#svgContent}. * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet to use as template. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    + * @param options.svgContent The SVG snippet to use as template. * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71335,16 +71264,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#preferredSize} property on the created object. *

    - * @constructor */ - constructor(options:{svgContent:string,styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); + constructor(options:{svgContent:string,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); /** * Initializes a new instance of this class. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71361,9 +71285,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.StringTemplateLabelStyle#svgContent} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,svgContent?:string}); + constructor(options?:{autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,svgContent?:string}); /** * Gets or sets the SVG content that is the template for the label visualization. * @default null @@ -71377,7 +71300,7 @@ declare namespace system{ * instances. * @see yfiles.styles.TemplateLabelStyle * @see yfiles.styles.StringTemplateLabelStyle - * @class yfiles.styles.TemplateLabelStyleRenderer + * @class * @implements {yfiles.styles.ILabelStyleRenderer} * @implements {yfiles.view.IVisualCreator} * @implements {yfiles.view.IBoundsProvider} @@ -71399,21 +71322,21 @@ declare namespace system{ /** * Creates the visual by delegating to {@link yfiles.styles.TemplateLabelStyleBase#createTemplate} and then initializing the * control with the context. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @returns {yfiles.view.Visual} The visual that is used for rendering the label. + * @param context The context for the creation. + * @returns The visual that is used for rendering the label. */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the {@link yfiles.styles.TemplateLabelStyleRenderer#style} and {@link yfiles.styles.TemplateLabelStyleRenderer#label} properties, calls {@link yfiles.styles.TemplateLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param label The label to retrieve the bounds provider for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#getBounds */ getBoundsProvider(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IBoundsProvider; @@ -71425,56 +71348,56 @@ declare namespace system{ * call {@link yfiles.styles.TemplateLabelStyleRenderer#configure} only if needed, i.e. if they decide to return this or an * instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.ILabel} label The label to query the context for. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param label The label to query the context for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#lookup */ getContext(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.graph.ILookup; /** * Configures the {@link yfiles.styles.TemplateLabelStyleRenderer#style} and {@link yfiles.styles.TemplateLabelStyleRenderer#label} properties, calls {@link yfiles.styles.TemplateLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query hit test with. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param label The label to query hit test with. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#isHit */ getHitTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IHitTestable; /** * Configures the {@link yfiles.styles.TemplateLabelStyleRenderer#style} and {@link yfiles.styles.TemplateLabelStyleRenderer#label} properties, calls {@link yfiles.styles.TemplateLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param label The label to query marquee intersection tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#isInBox */ getMarqueeTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IMarqueeTestable; /** * Gets the normalized outline by delegating to {@link yfiles.styles.TemplateLabelStyleBase#normalizedOutline}. - * @param {yfiles.styles.TemplateLabelStyleBase} style - * @returns {yfiles.geometry.GeneralPath} + * @param style + * @returns * @protected */ getNormalizedOutline(style:yfiles.styles.TemplateLabelStyleBase):yfiles.geometry.GeneralPath; /** * Calculates the preferred size for the given label and style. - * @param {yfiles.graph.ILabel} label The label instance. - * @param {yfiles.styles.ILabelStyle} style The style instance to apply. - * @returns {yfiles.geometry.Size} The preferred size for the given label and style. + * @param label The label instance. + * @param style The style instance to apply. + * @returns The preferred size for the given label and style. * @see yfiles.styles.TemplateLabelStyleRenderer#getPreferredSizeCore */ getPreferredSize(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; /** * Gets the size of the preferred for the current configuration using the provided context. - * @param {yfiles.view.IRenderContext} context The context. - * @returns {yfiles.geometry.Size} + * @param context The context. + * @returns * @protected */ getPreferredSizeCore(context:yfiles.view.IRenderContext):yfiles.geometry.Size; /** * Calculates the preferred size for the given label and style. - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.graph.ILabel} label The label instance. - * @param {yfiles.styles.ILabelStyle} style The style instance to apply. - * @returns {yfiles.geometry.Size} The preferred size for the given label and style. + * @param context + * @param label The label instance. + * @param style The style instance to apply. + * @returns The preferred size for the given label and style. * @see yfiles.styles.TemplateLabelStyleRenderer#getPreferredSizeCore */ getPreferredSizeWithContext(context:yfiles.view.IRenderContext,label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; @@ -71485,69 +71408,69 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.TemplateLabelStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.ILabel} label The label to query visibility tests. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param label The label to query visibility tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#isVisible */ getVisibilityTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisibilityTestable; /** * Configures the {@link yfiles.styles.TemplateLabelStyleRenderer#style} and {@link yfiles.styles.TemplateLabelStyleRenderer#label} properties, calls {@link yfiles.styles.TemplateLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param label The label to retrieve the {@link } for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#createVisual * @see yfiles.styles.TemplateLabelStyleRenderer#updateVisual */ getVisualCreator(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisualCreator; /** * Delegates to the {@link yfiles.styles.TemplateLabelStyleBase}'s {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property. - * @param {yfiles.styles.TemplateLabelStyleBase} style - * @returns {boolean} + * @param style + * @returns * @protected */ isAutoFlip(style:yfiles.styles.TemplateLabelStyleBase):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * Uses the {@link yfiles.graph.ILabel#layout layout} to determine whether the clip intersects. - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * Delegates to the {@link yfiles.styles.TemplateLabelStyleBase#contextLookup} of the {@link yfiles.styles.ILabelStyle}. - * @param {yfiles.lang.Class} type The type to query an instance for. - * @returns {Object} The implementation or null. + * @param type The type to query an instance for. + * @returns The implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Delegates to the {@link yfiles.styles.TemplateLabelStyleBase}'s {@link yfiles.styles.TemplateLabelStyleBase#contextLookup}. - * @param {yfiles.styles.TemplateLabelStyleBase} style The style to look up the context for. - * @param {yfiles.graph.ILabel} label The current label. - * @param {yfiles.lang.Class} type The type to look up. - * @returns {Object} The result from the context or null. + * @param style The style to look up the context for. + * @param label The current label. + * @param type The type to look up. + * @returns The result from the context or null. * @protected */ lookupContext(style:yfiles.styles.TemplateLabelStyleBase,label:yfiles.graph.ILabel,type:yfiles.lang.Class):Object; /** - * Updates the component correspondingly. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @param {yfiles.view.Visual} oldVisual The currently rendered visual. - * @returns {yfiles.view.Visual} The visual that is used for rendering the label. + * Updates the visual correspondingly. + * @param context The context for the creation. + * @param oldVisual The currently rendered visual. + * @returns The visual that is used for rendering the label. */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -71577,7 +71500,7 @@ declare namespace system{ * Base class for node styles that use a SVG snippet as template for the visualization of {@link yfiles.graph.INode}s. * @see yfiles.styles.TemplateNodeStyle * @see yfiles.styles.StringTemplateNodeStyle - * @class yfiles.styles.TemplateNodeStyleBase + * @class * @implements {yfiles.styles.INodeStyle} * @implements {yfiles.lang.IPropertyObservable} * @implements {yfiles.lang.ICloneable} @@ -71586,36 +71509,34 @@ declare namespace system{ export class TemplateNodeStyleBase { /** * Constructs a new instance using the provided renderer. - * @param {yfiles.styles.TemplateNodeStyleRenderer} renderer + * @param renderer * @protected - * @constructor */ constructor(renderer:yfiles.styles.TemplateNodeStyleRenderer); /** * Constructs a new instance of this style with default values. * @protected - * @constructor */ constructor(); /** * Performs a shallow clone of this instance, except for the value of {@link yfiles.styles.TemplateNodeStyleBase#styleTag} which is cloned, too, if it can be cloned. - * @returns {Object} A clone of this instance. + * @returns A clone of this instance. */ clone():Object; /** * Factory method that is called by the {@link yfiles.styles.TemplateNodeStyleRenderer} to create the visual that will be used for * the display of the node. - * @param {yfiles.view.IRenderContext} context The context for which the visual should be created. - * @param {yfiles.graph.INode} node The node that will be rendered. - * @returns {yfiles.view.SvgVisual} The readily styled visual. + * @param context The context for which the visual should be created. + * @param node The node that will be rendered. + * @returns The readily styled visual. */ createTemplate(context:yfiles.view.IRenderContext,node:yfiles.graph.INode):yfiles.view.SvgVisual; /** * Convenience method that determines the preferred size of the node if this style was applied. - * @param {yfiles.view.IRenderContext} context The context for which the size should be calculated. Can be obtained through - * {@link yfiles.view.CanvasComponent#createRenderContext}. - * @param {yfiles.graph.INode} node The node to determine the preferred size of. Can be a live node or an {@link yfiles.graph.SimpleNode}. - * @returns {yfiles.geometry.Size} The preferred size. + * @param context The context for which the size should be calculated. Can be obtained through + * {@link #createRenderContext}. + * @param node The node to determine the preferred size of. Can be a live node or an {@link }. + * @returns The preferred size. * @see yfiles.view.CanvasComponent#createRenderContext */ getPreferredSize(context:yfiles.view.IRenderContext,node:yfiles.graph.INode):yfiles.geometry.Size; @@ -71630,19 +71551,19 @@ declare namespace system{ static loadAllTemplates():void; /** * Raises the {@link yfiles.styles.TemplateNodeStyleBase#addPropertyChangedListener PropertyChanged} event. - * @param {yfiles.lang.PropertyChangedEventArgs} evt The {@link yfiles.lang.PropertyChangedEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; /** * Adds the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.styles.TemplateNodeStyleBase#removePropertyChangedListener */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.styles.TemplateNodeStyleBase#addPropertyChangedListener */ removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -71751,27 +71672,22 @@ declare namespace system{ *
  • Demo: OrgChart Demo, Demo.yFiles.Graph.OrgChart
  • *
  • Demo: Collapse Demo, Demo.yFiles.Graph.Collapse
  • * - * @class yfiles.styles.TemplateNodeStyle + * @class * @extends {yfiles.styles.TemplateNodeStyleBase} */ export interface TemplateNodeStyle extends yfiles.styles.TemplateNodeStyleBase{} export class TemplateNodeStyle { /** * Creates a new instance using the given render template id and a custom renderer instance. - * @param {string} renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplateNodeStyleRenderer} renderer The custom renderer for this instance. - * @constructor + * @param renderTemplateId The id of the SVG snippet that will be used for the component. + * @param renderer The custom renderer for this instance. */ constructor(renderTemplateId:string,renderer:yfiles.styles.TemplateNodeStyleRenderer); /** * Creates a new instance using the given render template id and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplateNodeStyleRenderer} options.renderer The custom renderer for this instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the SVG snippet that will be used for the component. + * @param options.renderer The custom renderer for this instance. * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71784,23 +71700,17 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#normalizedOutline} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplateNodeStyleRenderer,styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); + constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplateNodeStyleRenderer,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); /** * Creates a new instance using the given render template id and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. - * @param {string} renderTemplateId The id of the SVG snippet that will be used for the component. - * @constructor + * @param renderTemplateId The id of the SVG snippet that will be used for the component. */ constructor(renderTemplateId:string); /** * Creates a new instance using the given render template id and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the SVG snippet that will be used for the component. * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71813,16 +71723,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#normalizedOutline} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); + constructor(options:{renderTemplateId:string,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); /** * Creates a new instance with no render template id key and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71839,9 +71744,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateNodeStyle#styleResourceKey} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath,styleResourceKey?:string}); + constructor(options?:{insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath,styleResourceKey?:string}); /** * Gets or sets the {@link string} that will be used to look up the template that is applied to the component. *

    @@ -71882,27 +71786,22 @@ declare namespace system{ *

  • itemHighlighted: Whether the element is highlighted
  • *
  • styleTag: The tag associated with the element's style instance
  • * - * @class yfiles.styles.StringTemplateNodeStyle + * @class * @extends {yfiles.styles.TemplateNodeStyleBase} */ export interface StringTemplateNodeStyle extends yfiles.styles.TemplateNodeStyleBase{} export class StringTemplateNodeStyle { /** * Creates a new instance using the given SVG template and a custom renderer instance. - * @param {string} svgContent The SVG snippet that will be used as a template for the component. - * @param {yfiles.styles.TemplateNodeStyleRenderer} renderer The custom renderer for this instance. - * @constructor + * @param svgContent The SVG snippet that will be used as a template for the component. + * @param renderer The custom renderer for this instance. */ constructor(svgContent:string,renderer:yfiles.styles.TemplateNodeStyleRenderer); /** * Creates a new instance using the given SVG template and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet that will be used as a template for the component. - * @param {yfiles.styles.TemplateNodeStyleRenderer} options.renderer The custom renderer for this instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    + * @param options.svgContent The SVG snippet that will be used as a template for the component. + * @param options.renderer The custom renderer for this instance. * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71915,23 +71814,17 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#normalizedOutline} property on the created object. *

    - * @constructor */ - constructor(options:{svgContent:string,renderer:yfiles.styles.TemplateNodeStyleRenderer,styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); + constructor(options:{svgContent:string,renderer:yfiles.styles.TemplateNodeStyleRenderer,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); /** * Creates a new instance using the given SVG template and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. - * @param {string} svgContent The SVG snippet that will be used as a template for the component. - * @constructor + * @param svgContent The SVG snippet that will be used as a template for the component. */ constructor(svgContent:string); /** * Creates a new instance using the given SVG template and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet that will be used as a template for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    + * @param options.svgContent The SVG snippet that will be used as a template for the component. * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71944,16 +71837,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#normalizedOutline} property on the created object. *

    - * @constructor */ - constructor(options:{svgContent:string,styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); + constructor(options:{svgContent:string,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); /** * Creates a new instance with no SVG template and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71970,9 +71858,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.StringTemplateNodeStyle#svgContent} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath,svgContent?:string}); + constructor(options?:{insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath,svgContent?:string}); /** * Gets or sets the SVG content that is the template for the node visualization. * @default null @@ -71986,7 +71873,7 @@ declare namespace system{ * instances. * @see yfiles.styles.TemplateNodeStyle * @see yfiles.styles.StringTemplateNodeStyle - * @class yfiles.styles.TemplateNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -72015,8 +71902,8 @@ declare namespace system{ /** * Creates the visual by delegating to {@link yfiles.styles.TemplateNodeStyleBase#createTemplate} and then initializing the control * with the context. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @returns {yfiles.view.Visual} The visual that is used for rendering the node. + * @param context The context for the creation. + * @returns The visual that is used for rendering the node. */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -72024,8 +71911,8 @@ declare namespace system{ *

    * This implementation simply sets the {@link yfiles.styles.TemplateNodeStyleRenderer#layout}'s bounds to the scratch variable and returns. *

    - * @param {yfiles.view.ICanvasContext} context the context to calculate the bounds for - * @returns {yfiles.geometry.Rect} the bounds or null to indicate an unbound area + * @param context the context to calculate the bounds for + * @returns the bounds or null to indicate an unbound area */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** @@ -72034,9 +71921,9 @@ declare namespace system{ * If {@link yfiles.styles.TemplateNodeStyleBase#contextLookup} provides an implementation of the {@link yfiles.view.IBoundsProvider} interface than this instance will be returned, * otherwise the default (rectangular) behavior will be used. *

    - * @param {yfiles.graph.INode} node The node to query the provider for. - * @param {yfiles.styles.INodeStyle} style The style whose provider is queried. - * @returns {yfiles.view.IBoundsProvider} An implementation that can calculate visual bounds. + * @param node The node to query the provider for. + * @param style The style whose provider is queried. + * @returns An implementation that can calculate visual bounds. */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; /** @@ -72048,16 +71935,16 @@ declare namespace system{ * {@link yfiles.styles.TemplateNodeStyleRenderer#configure} only if needed, i.e. if they decide to return this or an instance that * depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Gets the context by delegating to {@link yfiles.styles.TemplateNodeStyleBase#contextLookup}. - * @param {yfiles.styles.TemplateNodeStyleBase} style - * @returns {yfiles.graph.IContextLookup} + * @param style + * @returns * @protected */ getContextLookup(style:yfiles.styles.TemplateNodeStyleBase):yfiles.graph.IContextLookup; @@ -72067,25 +71954,25 @@ declare namespace system{ * If {@link yfiles.styles.TemplateNodeStyleBase#contextLookup} provides an implementation of the {@link yfiles.input.IHitTestable} interface than this instance will be returned, otherwise * the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} will be used to perform the hit testing. *

    - * @param {yfiles.graph.INode} node The node to query the tester for. - * @param {yfiles.styles.INodeStyle} style The style whose tester is queried. - * @returns {yfiles.input.IHitTestable} An implementation that can perform the hit testing. + * @param node The node to query the tester for. + * @param style The style whose tester is queried. + * @returns An implementation that can perform the hit testing. * @see yfiles.styles.TemplateNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * Gets the insets by delegating to {@link yfiles.styles.TemplateNodeStyleBase#insets}. - * @param {yfiles.styles.TemplateNodeStyleBase} style - * @returns {yfiles.geometry.Insets} + * @param style + * @returns * @protected */ getInsets(style:yfiles.styles.TemplateNodeStyleBase):yfiles.geometry.Insets; /** * Tries to use the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} to perform the intersection calculation, otherwise reverts to default (rectangular) * behavior. - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** @@ -72095,52 +71982,52 @@ declare namespace system{ * otherwise the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} will be used to determine the marquee intersection test with the visual representation of * the node. *

    - * @param {yfiles.graph.INode} node The node to query the tester for. - * @param {yfiles.styles.INodeStyle} style The style whose tester is queried. - * @returns {yfiles.input.IMarqueeTestable} An implementation that can test for marquee intersections. + * @param node The node to query the tester for. + * @param style The style whose tester is queried. + * @returns An implementation that can test for marquee intersections. * @see yfiles.styles.TemplateNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * Gets the minimum size by delegating to {@link yfiles.styles.TemplateNodeStyleBase#minimumSize}. - * @param {yfiles.styles.TemplateNodeStyleBase} style - * @returns {yfiles.geometry.Size} + * @param style + * @returns * @protected */ getMinimumSize(style:yfiles.styles.TemplateNodeStyleBase):yfiles.geometry.Size; /** * Gets the normalized outline by delegating to {@link yfiles.styles.TemplateNodeStyleBase#normalizedOutline}. - * @param {yfiles.styles.TemplateNodeStyleBase} style - * @returns {yfiles.geometry.GeneralPath} + * @param style + * @returns * @protected */ getNormalizedOutline(style:yfiles.styles.TemplateNodeStyleBase):yfiles.geometry.GeneralPath; /** * Tries to use the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} to create the outline shape path, otherwise reverts to default (rectangular) behavior. - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Calculates the preferred size for the given node and style in the provided context. - * @param {yfiles.view.IRenderContext} context The context for which the preferred size should be calculated. - * @param {yfiles.graph.INode} node The node instance. - * @param {yfiles.styles.INodeStyle} style The style instance to apply. - * @returns {yfiles.geometry.Size} The preferred size for the given label and style. + * @param context The context for which the preferred size should be calculated. + * @param node The node instance. + * @param style The style instance to apply. + * @returns The preferred size for the given label and style. * @see yfiles.styles.TemplateNodeStyleRenderer#getPreferredSizeCore */ getPreferredSize(context:yfiles.view.IRenderContext,node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.geometry.Size; /** * Calculates the preferred size for the given node and style. - * @param {yfiles.graph.INode} node The node instance. - * @param {yfiles.styles.INodeStyle} style The style instance to apply. - * @returns {yfiles.geometry.Size} The preferred size for the given label and style. + * @param node The node instance. + * @param style The style instance to apply. + * @returns The preferred size for the given label and style. * @see yfiles.styles.TemplateNodeStyleRenderer#getPreferredSizeCore */ getPreferredSize(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.geometry.Size; /** * Calculates the preferred size given the current state of the renderer for the given context. - * @param {yfiles.view.IRenderContext} context The render context for which the preferred size should be calculated. - * @returns {yfiles.geometry.Size} The size as suggested by this renderer. + * @param context The render context for which the preferred size should be calculated. + * @returns The size as suggested by this renderer. * @protected */ getPreferredSizeCore(context:yfiles.view.IRenderContext):yfiles.geometry.Size; @@ -72150,9 +72037,9 @@ declare namespace system{ * If {@link yfiles.styles.TemplateNodeStyleBase#contextLookup} provides an implementation of the {@link yfiles.styles.IShapeGeometry} interface than this instance will be returned, * otherwise the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} will be used to determine the outline of the visual representation of a node. *

    - * @param {yfiles.graph.INode} node The node to query the geometry for. - * @param {yfiles.styles.INodeStyle} style The style for which the geometry is queried. - * @returns {yfiles.styles.IShapeGeometry} An implementation that describes the outline geometry of the shape. + * @param node The node to query the geometry for. + * @param style The style for which the geometry is queried. + * @returns An implementation that describes the outline geometry of the shape. * @see yfiles.styles.TemplateNodeStyleRenderer#isInside * @see yfiles.styles.TemplateNodeStyleRenderer#getOutline */ @@ -72165,47 +72052,47 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.TemplateNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.TemplateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateNodeStyleRenderer#createVisual * @see yfiles.styles.TemplateNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * Tries to use the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} to perform the hit test analysis, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.input.IInputModeContext} context the context the hit test is performed in - * @param {yfiles.geometry.Point} location the hit point in world coordinates - * @returns {boolean} whether something has been hit + * @param context the context the hit test is performed in + * @param location the hit point in world coordinates + * @returns whether something has been hit */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * Tries to use the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} to perform the marquee intersection analysis, otherwise reverts to default (rectangular) * behavior. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * Tries to use the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} to perform the contains test, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Determines visibility by checking for an intersection with the {@link yfiles.styles.TemplateNodeStyleRenderer#layout}. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {yfiles.geometry.Rect} rectangle The current clip - * @returns {boolean} Whether the {@link yfiles.styles.TemplateNodeStyleRenderer#layout} is visible in the clip. + * @param context The context. + * @param rectangle The current clip + * @returns Whether the {@link #layout} is visible in the clip. */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -72215,15 +72102,15 @@ declare namespace system{ * or {@link yfiles.input.INodeSizeConstraintProvider} implementations if asked for. Last, it returns this class if it implements * the queried type. *

    - * @param {yfiles.lang.Class} type The type to query an instance for. - * @returns {Object} The implementation or null. + * @param type The type to query an instance for. + * @returns The implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Updates the component correspondingly. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @param {yfiles.view.Visual} oldVisual The currently rendered visual. - * @returns {yfiles.view.Visual} The visual that is used for rendering the node. + * @param context The context for the creation. + * @param oldVisual The currently rendered visual. + * @returns The visual that is used for rendering the node. */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -72252,7 +72139,7 @@ declare namespace system{ * Base class for port styles that use a SVG snippet as template for the visualization of {@link yfiles.graph.IPort}s. * @see yfiles.styles.TemplatePortStyle * @see yfiles.styles.TemplatePortStyle - * @class yfiles.styles.TemplatePortStyleBase + * @class * @implements {yfiles.styles.IPortStyle} * @implements {yfiles.lang.IPropertyObservable} * @implements {yfiles.lang.ICloneable} @@ -72261,35 +72148,33 @@ declare namespace system{ export class TemplatePortStyleBase { /** * Constructs a new instance using the provided renderer. - * @param {yfiles.styles.TemplatePortStyleRenderer} renderer + * @param renderer * @protected - * @constructor */ constructor(renderer:yfiles.styles.TemplatePortStyleRenderer); /** * Constructs a new instance of this style with default values. * @protected - * @constructor */ constructor(); /** * Performs a shallow clone of this instance, except for the value of {@link yfiles.styles.TemplatePortStyleBase#styleTag} which is cloned, too, if it can be cloned. - * @returns {Object} A clone of this instance. + * @returns A clone of this instance. */ clone():Object; /** * Factory method that is called by the {@link yfiles.styles.TemplatePortStyleRenderer} to create the visual that will be used for * the display of the port. - * @param {yfiles.view.IRenderContext} context The context for which the visual should be created. - * @param {yfiles.graph.IPort} port The port that will be rendered. - * @returns {yfiles.view.SvgVisual} The readily styled visual. + * @param context The context for which the visual should be created. + * @param port The port that will be rendered. + * @returns The readily styled visual. */ createTemplate(context:yfiles.view.IRenderContext,port:yfiles.graph.IPort):yfiles.view.SvgVisual; /** * Convenience method that determines the preferred {@link yfiles.styles.TemplatePortStyleBase#renderSize} of the port if this style was applied. - * @param {yfiles.view.IRenderContext} context The context for which the size should be calculated. - * @param {yfiles.graph.IPort} port The port to determine the preferred size of. - * @returns {yfiles.geometry.Size} The preferred size. + * @param context The context for which the size should be calculated. + * @param port The port to determine the preferred size of. + * @returns The preferred size. */ getPreferredSize(context:yfiles.view.IRenderContext,port:yfiles.graph.IPort):yfiles.geometry.Size; /** @@ -72303,19 +72188,19 @@ declare namespace system{ static loadAllTemplates():void; /** * Raises the {@link yfiles.styles.TemplatePortStyleBase#addPropertyChangedListener PropertyChanged} event. - * @param {yfiles.lang.PropertyChangedEventArgs} evt The {@link yfiles.lang.PropertyChangedEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; /** * Adds the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.styles.TemplatePortStyleBase#removePropertyChangedListener */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.styles.TemplatePortStyleBase#addPropertyChangedListener */ removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -72403,27 +72288,22 @@ declare namespace system{ *
  • itemHighlighted: Whether the element is highlighted
  • *
  • styleTag: The tag associated with the element's style instance
  • * - * @class yfiles.styles.TemplatePortStyle + * @class * @extends {yfiles.styles.TemplatePortStyleBase} */ export interface TemplatePortStyle extends yfiles.styles.TemplatePortStyleBase{} export class TemplatePortStyle { /** * Creates a new instance using the given render template id and a custom renderer instance. - * @param {string} renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplatePortStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderTemplateId The id of the SVG snippet that will be used for the component. + * @param renderer The custom renderer for this style instance. */ constructor(renderTemplateId:string,renderer:yfiles.styles.TemplatePortStyleRenderer); /** * Creates a new instance using the given render template id and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplatePortStyleRenderer} options.renderer The custom renderer for this style instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the SVG snippet that will be used for the component. + * @param options.renderer The custom renderer for this style instance. * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72432,25 +72312,19 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#renderSize} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplatePortStyleRenderer,styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); + constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplatePortStyleRenderer,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); /** * Creates a new instance using the given resource key and a custom renderer instance.{@link yfiles.styles.TemplatePortStyleRenderer} * as renderer. - * @param {string} renderTemplateId The id of the SVG snippet that will be used for the component. - * @constructor + * @param renderTemplateId The id of the SVG snippet that will be used for the component. */ constructor(renderTemplateId:string); /** * Creates a new instance using the given resource key and a custom renderer instance.{@link yfiles.styles.TemplatePortStyleRenderer} * as renderer. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the SVG snippet that will be used for the component. * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72459,16 +72333,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#renderSize} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); + constructor(options:{renderTemplateId:string,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); /** * Creates a new instance with no render template id and {@link yfiles.styles.TemplatePortStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72481,9 +72350,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplatePortStyle#styleResourceKey} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size,styleResourceKey?:string}); + constructor(options?:{normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size,styleResourceKey?:string}); /** * Gets or sets the {@link string} that will be used to look up the template that is applied to the component. *

    @@ -72500,7 +72368,7 @@ declare namespace system{ * instances. * @see yfiles.styles.TemplatePortStyle * @see yfiles.styles.StringTemplatePortStyle - * @class yfiles.styles.TemplatePortStyleRenderer + * @class * @implements {yfiles.styles.IPortStyleRenderer} * @implements {yfiles.view.IBoundsProvider} * @implements {yfiles.view.IVisibilityTestable} @@ -72526,21 +72394,21 @@ declare namespace system{ /** * Creates the visual by delegating to {@link yfiles.styles.TemplatePortStyleBase#createTemplate} and then initializing the visual * with the context. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @returns {yfiles.view.Visual} The visual that is used for rendering the port. + * @param context The context for the creation. + * @returns The visual that is used for rendering the port. */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and port parameters, calls {@link yfiles.styles.TemplatePortStyleRenderer#configure} and returns this. - * @param {yfiles.graph.IPort} port The port to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param port The port to retrieve the bounds provider for. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#getBounds */ getBoundsProvider(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IBoundsProvider; @@ -72553,54 +72421,54 @@ declare namespace system{ * {@link yfiles.styles.TemplatePortStyleRenderer#configure} only if needed, i.e. if they decide to return this or an instance that * depends on a correctly configured this. *

    - * @param {yfiles.graph.IPort} port The port to query the context for. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param port The port to query the context for. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#lookup */ getContext(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.graph.ILookup; /** * Configures the style and port parameters, calls {@link yfiles.styles.TemplatePortStyleRenderer#configure} and returns this. - * @param {yfiles.graph.IPort} port The port to query hit test with. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param port The port to query hit test with. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#isHit */ getHitTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.input.IHitTestable; /** * Configures the style and port parameters, calls {@link yfiles.styles.TemplatePortStyleRenderer#configure} and returns this. - * @param {yfiles.graph.IPort} port The port to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param port The port to query marquee intersection tests. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#isInBox */ getMarqueeTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.input.IMarqueeTestable; /** * Gets the normalized outline by delegating to {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline}. - * @param {yfiles.styles.TemplatePortStyleBase} style - * @returns {yfiles.geometry.GeneralPath} + * @param style + * @returns * @protected */ getNormalizedOutline(style:yfiles.styles.TemplatePortStyleBase):yfiles.geometry.GeneralPath; /** * Calculates the preferred size for the given port and style. - * @param {yfiles.view.IRenderContext} context The render context which can be null. - * @param {yfiles.graph.IPort} port The port instance. - * @param {yfiles.styles.TemplatePortStyleBase} style The style instance to apply. - * @returns {yfiles.geometry.Size} The preferred size for the given port and style. + * @param context The render context which can be null. + * @param port The port instance. + * @param style The style instance to apply. + * @returns The preferred size for the given port and style. * @see yfiles.styles.TemplatePortStyleRenderer#getPreferredSizeCore */ getPreferredSize(context:yfiles.view.IRenderContext,port:yfiles.graph.IPort,style:yfiles.styles.TemplatePortStyleBase):yfiles.geometry.Size; /** * Gets the preferred size for the current configuration. - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.geometry.Size} The preferred size. + * @param context + * @returns The preferred size. * @protected */ getPreferredSizeCore(context:yfiles.view.IRenderContext):yfiles.geometry.Size; /** * Gets the size of the rendering from the style. - * @returns {yfiles.geometry.Size} The {@link yfiles.styles.TemplatePortStyleBase#renderSize}. + * @returns The {@link #renderSize}. * @protected */ getRenderSize():yfiles.geometry.Size; @@ -72612,33 +72480,33 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.TemplatePortStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.IPort} port The port to query visibility tests. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param port The port to query visibility tests. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#isVisible */ getVisibilityTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and port parameters, calls {@link yfiles.styles.TemplatePortStyleRenderer#configure} and returns this. - * @param {yfiles.graph.IPort} port The port to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param port The port to retrieve the {@link } for. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#createVisual * @see yfiles.styles.TemplatePortStyleRenderer#updateVisual */ getVisualCreator(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IVisualCreator; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -72649,9 +72517,9 @@ declare namespace system{ * Subclasses may choose to override this behavior for improved performance but need to make sure to call {@link yfiles.styles.TemplatePortStyleRenderer#configure} if they depend on a configured * instance. *

    - * @param {yfiles.view.ICanvasContext} context the current canvas context - * @param {yfiles.geometry.Rect} rectangle the clip bounds - * @returns {boolean} true if the port may be painted within the clip bounds. + * @param context the current canvas context + * @param rectangle the clip bounds + * @returns true if the port may be painted within the clip bounds. * @see yfiles.styles.TemplatePortStyleRenderer#getVisibilityTestable */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; @@ -72665,24 +72533,24 @@ declare namespace system{ * This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.TemplatePortStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Delegates to the {@link yfiles.styles.TemplatePortStyleBase}'s {@link yfiles.styles.TemplatePortStyleBase#contextLookup}. - * @param {yfiles.styles.TemplatePortStyleBase} style - * @param {yfiles.graph.IPort} port - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param style + * @param port + * @param type + * @returns * @protected */ lookupContext(style:yfiles.styles.TemplatePortStyleBase,port:yfiles.graph.IPort,type:yfiles.lang.Class):Object; /** * Updates the component correspondingly. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @param {yfiles.view.Visual} oldVisual The currently rendered visual. - * @returns {yfiles.view.Visual} The visual that is used for rendering the port. + * @param context The context for the creation. + * @param oldVisual The currently rendered visual. + * @returns The visual that is used for rendering the port. */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -72735,25 +72603,20 @@ declare namespace system{ *
  • itemHighlighted: Whether the element is highlighted
  • *
  • styleTag: The tag associated with the element's style instance
  • * - * @class yfiles.styles.StringTemplatePortStyle + * @class * @extends {yfiles.styles.TemplatePortStyleBase} */ export interface StringTemplatePortStyle extends yfiles.styles.TemplatePortStyleBase{} export class StringTemplatePortStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.TemplatePortStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderer The custom renderer for this style instance. */ constructor(renderer:yfiles.styles.TemplatePortStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.TemplatePortStyleRenderer} options.renderer The custom renderer for this style instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    + * @param options.renderer The custom renderer for this style instance. * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72762,23 +72625,17 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#renderSize} property on the created object. *

    - * @constructor */ - constructor(options:{renderer:yfiles.styles.TemplatePortStyleRenderer,styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); + constructor(options:{renderer:yfiles.styles.TemplatePortStyleRenderer,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); /** * Initializes a new instance of this class and sets the given string as its {@link yfiles.styles.StringTemplatePortStyle#svgContent}. - * @param {string} svgContent The SVG snippet to use as template. - * @constructor + * @param svgContent The SVG snippet to use as template. */ constructor(svgContent:string); /** * Initializes a new instance of this class and sets the given string as its {@link yfiles.styles.StringTemplatePortStyle#svgContent}. * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet to use as template. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    + * @param options.svgContent The SVG snippet to use as template. * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72787,16 +72644,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#renderSize} property on the created object. *

    - * @constructor */ - constructor(options:{svgContent:string,styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); + constructor(options:{svgContent:string,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); /** * Creates a new instance using {@link yfiles.styles.TemplatePortStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72809,9 +72661,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.StringTemplatePortStyle#svgContent} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size,svgContent?:string}); + constructor(options?:{normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size,svgContent?:string}); /** * Gets or sets the SVG content that is the template for the port visualization. * @default null @@ -72820,106 +72671,6 @@ declare namespace system{ svgContent:string; static $class:yfiles.lang.Class; } - export enum TableRenderingOrder{ - /** - * Draw columns, then rows - */ - COLUMNS_FIRST, - /** - * Draw rows, then columns - */ - ROWS_FIRST - } - /** - * An abstract base class that makes it possible to easily implement a custom {@link yfiles.styles.IStripeStyle}. - *

    - * The only method that needs to be implemented by subclasses is {@link yfiles.styles.StripeStyleBase#createVisual}, however to - * improve rendering performance it is highly recommended to implement at least - * {@link yfiles.styles.StripeStyleBase#updateVisual}, too. - *

    - *

    - * This implementation differs from the straightforward {@link yfiles.styles.IStripeStyle} implementation in that there is no - * visible separation between the style and its - * {@link yfiles.styles.IStripeStyleRenderer}. Instead the renderer used by the base class is fixed and delegates all calls back to - * the style instance. - *

    - * @class yfiles.styles.StripeStyleBase - * @implements {yfiles.styles.IStripeStyle} - */ - export interface StripeStyleBase extends Object,yfiles.styles.IStripeStyle{} - export class StripeStyleBase { - /** - * Initializes a new instance of the {@link yfiles.styles.StripeStyleBase} class. - * @protected - * @constructor - */ - constructor(); - /** - * Creates a new object that is a copy of the current instance. - *

    - * Immutable subclasses should consider returning this. - *

    - * @returns {Object} A new object that is a copy of this instance using {@link Object#memberwiseClone}. - */ - clone():Object; - /** - * Callback that creates the visual. - *

    - * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been - * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. - *

    - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.graph.IStripe} stripe The stripe to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. - * @see yfiles.styles.StripeStyleBase#updateVisual - * @protected - * @abstract - */ - createVisual(context:yfiles.view.IRenderContext,stripe:yfiles.graph.IStripe):yfiles.view.Visual; - /** - * Performs the {@link yfiles.graph.ILookup#lookup} operation for the {@link yfiles.styles.IStripeStyleRenderer#getContext} that has been - * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. - *

    - * This implementation yields null for everything but: - *

    - *
      - *
    • {@link yfiles.view.IVisualCreator}
    • - *
    • {@link yfiles.graph.ILookup}
    • - *
    - *

    - * For these interfaces an implementation will be returned that delegates to the methods in this instance. - *

    - * @param {yfiles.graph.IStripe} stripe The stripe to use for the context lookup. - * @param {yfiles.lang.Class} type The type to query. - * @returns {Object} An implementation of the type or null. - * @protected - */ - lookup(stripe:yfiles.graph.IStripe,type:yfiles.lang.Class):Object; - /** - * Callback that updates the visual previously created by {@link yfiles.styles.StripeStyleBase#createVisual}. - *

    - * This method is called in response to a {@link yfiles.view.IVisualCreator#updateVisual} call to the instance that has been - * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.StripeStyleBase#createVisual} so subclasses - * should override to improve rendering performance. - *

    - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual The visual that has been created in the call to {@link yfiles.styles.StripeStyleBase#createVisual}. - * @param {yfiles.graph.IStripe} stripe The stripe to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. - * @see yfiles.styles.StripeStyleBase#createVisual - * @protected - */ - updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual,stripe:yfiles.graph.IStripe):yfiles.view.Visual; - /** - * Gets the renderer implementation for this instance. - *

    - * The private implementation will delegate all API calls back to this instance. - *

    - * @type {yfiles.styles.IStripeStyleRenderer} - */ - renderer:yfiles.styles.IStripeStyleRenderer; - static $class:yfiles.lang.Class; - } /** * Style implementation for {@link yfiles.graph.IStripe} instances in an {@link yfiles.graph.ITable}. *

    @@ -72968,9 +72719,9 @@ declare namespace system{ *

    * Implementations may return {@link yfiles.graph.ILookup#EMPTY} if they don't support this, but may not return null. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to provide a context instance for. - * @param {yfiles.styles.IStripeStyle} style The style to use for the context. - * @returns {yfiles.graph.ILookup} An non-null lookup implementation. + * @param stripe The stripe to provide a context instance for. + * @param style The style to use for the context. + * @returns An non-null lookup implementation. * @see yfiles.graph.ILookup#EMPTY * @see yfiles.graph.ILookup * @abstract @@ -72982,11 +72733,11 @@ declare namespace system{ *

    * This method may return a flyweight implementation, but never null. *

    - * @param {yfiles.graph.IStripe} stripe The nstripeode to provide an instance for - * @param {yfiles.styles.IStripeStyle} style The style to use for the creation of the visual - * @returns {yfiles.view.IVisualCreator} An implementation that may be used to subsequently create or update the visual for the stripe. Clients should not cache + * @param stripe The nstripeode to provide an instance for + * @param style The style to use for the creation of the visual + * @returns An implementation that may be used to subsequently create or update the visual for the stripe. Clients should not cache * this instance and must always call this method immediately before using the value returned. This enables the use of the - * flyweight design pattern for implementations. This method may not return null but should yield a {@link yfiles.view.VoidVisualCreator#INSTANCE void} implementation + * flyweight design pattern for implementations. This method may not return null but should yield a {@link #INSTANCE void} implementation * instead. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract @@ -73004,7 +72755,7 @@ declare namespace system{ * instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.graph.IStripe#style} property of an * {@link yfiles.graph.IStripe}. *

    - * @class yfiles.styles.VoidStripeStyle + * @class * @implements {yfiles.styles.IStripeStyle} * @final */ @@ -73012,16 +72763,16 @@ declare namespace system{ export class VoidStripeStyle { /** * Returns this. - * @returns {Object} this + * @returns this */ clone():Object; /** * The {@link yfiles.styles.VoidStripeStyle} singleton. * @const * @static - * @type {yfiles.styles.IStripeStyle} + * @type {yfiles.styles.VoidStripeStyle} */ - static INSTANCE:yfiles.styles.IStripeStyle; + static INSTANCE:yfiles.styles.VoidStripeStyle; /** * Yields the {@link yfiles.styles.VoidStripeStyleRenderer#INSTANCE VoidStripeStyleRenderer instance}. * @see yfiles.styles.IStripeStyle#renderer @@ -73037,7 +72788,7 @@ declare namespace system{ * this class instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.styles.IStripeStyle#renderer} property of an * {@link yfiles.styles.IStripeStyle}. *

    - * @class yfiles.styles.VoidStripeStyleRenderer + * @class * @implements {yfiles.styles.IStripeStyleRenderer} * @final */ @@ -73045,16 +72796,16 @@ declare namespace system{ export class VoidStripeStyleRenderer { /** * Yields the {@link yfiles.graph.ILookup#EMPTY} that will not yield anything. - * @param {yfiles.graph.IStripe} stripe - * @param {yfiles.styles.IStripeStyle} style - * @returns {yfiles.graph.ILookup} + * @param stripe + * @param style + * @returns */ getContext(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):yfiles.graph.ILookup; /** * Yields the {@link yfiles.view.VoidVisualCreator#INSTANCE} that will do nothing. - * @param {yfiles.graph.IStripe} stripe - * @param {yfiles.styles.IStripeStyle} style - * @returns {yfiles.view.IVisualCreator} + * @param stripe + * @param style + * @returns */ getVisualCreator(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):yfiles.view.IVisualCreator; /** @@ -73068,7 +72819,7 @@ declare namespace system{ } /** * A stripe style decorator that uses a node style instance to render the stripe. - * @class yfiles.styles.NodeStyleStripeStyleAdapter + * @class * @implements {yfiles.styles.IStripeStyle} */ export interface NodeStyleStripeStyleAdapter extends Object,yfiles.styles.IStripeStyle{} @@ -73079,8 +72830,7 @@ declare namespace system{ * Note that the styles will be stored by reference, thus modifying the style will directly affect the rendering of this * instance. *

    - * @param {yfiles.styles.INodeStyle} nodeStyle The node style to use for rendering the stripe. - * @constructor + * @param nodeStyle The node style to use for rendering the stripe. */ constructor(nodeStyle:yfiles.styles.INodeStyle); /** @@ -73094,12 +72844,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.NodeStyleStripeStyleAdapter#nodeStyle} property on the created object. *

    - * @constructor */ constructor(options?:{nodeStyle?:yfiles.styles.INodeStyle}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -73114,6 +72863,105 @@ declare namespace system{ nodeStyle:yfiles.styles.INodeStyle; static $class:yfiles.lang.Class; } + export enum TableRenderingOrder{ + /** + * Draw columns, then rows + */ + COLUMNS_FIRST, + /** + * Draw rows, then columns + */ + ROWS_FIRST + } + /** + * An abstract base class that makes it possible to easily implement a custom {@link yfiles.styles.IStripeStyle}. + *

    + * The only method that needs to be implemented by subclasses is {@link yfiles.styles.StripeStyleBase#createVisual}, however to + * improve rendering performance it is highly recommended to implement at least + * {@link yfiles.styles.StripeStyleBase#updateVisual}, too. + *

    + *

    + * This implementation differs from the straightforward {@link yfiles.styles.IStripeStyle} implementation in that there is no + * visible separation between the style and its + * {@link yfiles.styles.IStripeStyleRenderer}. Instead the renderer used by the base class is fixed and delegates all calls back to + * the style instance. + *

    + * @class + * @implements {yfiles.styles.IStripeStyle} + */ + export interface StripeStyleBase extends Object,yfiles.styles.IStripeStyle{} + export class StripeStyleBase { + /** + * Initializes a new instance of the {@link yfiles.styles.StripeStyleBase} class. + * @protected + */ + constructor(); + /** + * Creates a new object that is a copy of the current instance. + *

    + * Immutable subclasses should consider returning this. + *

    + * @returns A new object that is a copy of this instance using {@link #memberwiseClone}. + */ + clone():Object; + /** + * Callback that creates the visual. + *

    + * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been + * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. + *

    + * @param context + * @param stripe The stripe to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. + * @see yfiles.styles.StripeStyleBase#updateVisual + * @protected + * @abstract + */ + createVisual(context:yfiles.view.IRenderContext,stripe:yfiles.graph.IStripe):yfiles.view.Visual; + /** + * Performs the {@link yfiles.graph.ILookup#lookup} operation for the {@link yfiles.styles.IStripeStyleRenderer#getContext} that has been + * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. + *

    + * This implementation yields null for everything but: + *

    + *
      + *
    • {@link yfiles.view.IVisualCreator}
    • + *
    • {@link yfiles.graph.ILookup}
    • + *
    + *

    + * For these interfaces an implementation will be returned that delegates to the methods in this instance. + *

    + * @param stripe The stripe to use for the context lookup. + * @param type The type to query. + * @returns An implementation of the type or null. + * @protected + */ + lookup(stripe:yfiles.graph.IStripe,type:yfiles.lang.Class):Object; + /** + * Callback that updates the visual previously created by {@link yfiles.styles.StripeStyleBase#createVisual}. + *

    + * This method is called in response to a {@link yfiles.view.IVisualCreator#updateVisual} call to the instance that has been + * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.StripeStyleBase#createVisual} so subclasses + * should override to improve rendering performance. + *

    + * @param context + * @param oldVisual The visual that has been created in the call to {@link #createVisual}. + * @param stripe The stripe to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. + * @see yfiles.styles.StripeStyleBase#createVisual + * @protected + */ + updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual,stripe:yfiles.graph.IStripe):yfiles.view.Visual; + /** + * Gets the renderer implementation for this instance. + *

    + * The private implementation will delegate all API calls back to this instance. + *

    + * @type {yfiles.styles.IStripeStyleRenderer} + */ + renderer:yfiles.styles.IStripeStyleRenderer; + static $class:yfiles.lang.Class; + } }export namespace binding{ /** * This class is an adapter that populates a {@link yfiles.binding.GraphBuilderBase#graph} from custom business data. @@ -73141,7 +72989,7 @@ declare namespace system{ * The visual appearance of the graph constructed from the business objects can be configured using the {@link yfiles.graph.IGraph#nodeDefaults}, the {@link yfiles.graph.IGraph#groupNodeDefaults}, and the {@link yfiles.graph.IGraph#edgeDefaults} of * the {@link yfiles.graph.IGraph}. *

    - * @class yfiles.binding.AdjacentNodesGraphBuilder + * @class * @extends {yfiles.binding.GraphBuilderBase} */ export interface AdjacentNodesGraphBuilder extends yfiles.binding.GraphBuilderBase{} @@ -73151,8 +72999,7 @@ declare namespace system{ *

    * The graph will be {@link yfiles.graph.IGraph#clear cleared} and re-built from the data in {@link yfiles.binding.GraphBuilderBase#nodesSource} when {@link yfiles.binding.GraphBuilderBase#buildGraph} is called. *

    - * @param {yfiles.graph.IGraph} graph - * @constructor + * @param graph */ constructor(graph:yfiles.graph.IGraph); /** @@ -73160,20 +73007,20 @@ declare namespace system{ *

    * This class calls this method to create all new edges, and customers may override it to customize edge creation. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} source The source node of the edge. - * @param {yfiles.graph.INode} target The target node of the edge. - * @returns {yfiles.graph.IEdge} The created edge. + * @param graph The graph. + * @param source The source node of the edge. + * @param target The target node of the edge. + * @returns The created edge. * @protected */ createEdge(graph:yfiles.graph.IGraph,source:yfiles.graph.INode,target:yfiles.graph.INode):yfiles.graph.IEdge; /** * Updates an existing edge connecting the given nodes when {@link yfiles.binding.GraphBuilderBase#updateGraph} is called and the * edge should remain in the graph. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.IEdge} edge The edge to update. - * @param {yfiles.graph.INode} source The source node of the edge. - * @param {yfiles.graph.INode} target The target node of the edge. + * @param graph The graph. + * @param edge The edge to update. + * @param source The source node of the edge. + * @param target The target node of the edge. * @protected */ updateEdge(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,source:yfiles.graph.INode,target:yfiles.graph.INode):void; @@ -73233,7 +73080,7 @@ declare namespace system{ * The visual appearance of the graph constructed from the business objects can be configured using the {@link yfiles.graph.IGraph#nodeDefaults}, the {@link yfiles.graph.IGraph#groupNodeDefaults}, and the {@link yfiles.graph.IGraph#edgeDefaults} of * the {@link yfiles.graph.IGraph}. *

    - * @class yfiles.binding.GraphBuilder + * @class * @extends {yfiles.binding.GraphBuilderBase} */ export interface GraphBuilder extends yfiles.binding.GraphBuilderBase{} @@ -73244,8 +73091,7 @@ declare namespace system{ * The graph will be {@link yfiles.graph.IGraph#clear cleared} and re-built from the data in {@link yfiles.binding.GraphBuilderBase#nodesSource} and {@link yfiles.binding.GraphBuilder#edgesSource} when {@link yfiles.binding.GraphBuilderBase#buildGraph} is * called. *

    - * @param {yfiles.graph.IGraph} graph - * @constructor + * @param graph */ constructor(graph:yfiles.graph.IGraph); /** @@ -73253,19 +73099,19 @@ declare namespace system{ *

    * This class calls this method to create all new edges, and customers may override it to customize edge creation. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} source The source node of the edge. - * @param {yfiles.graph.INode} target The target node of the edge. - * @param {Object} labelData The optional label data of the edge if an {@link yfiles.binding.GraphBuilder#edgeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the edge. - * @returns {yfiles.graph.IEdge} The created edge. + * @param graph The graph. + * @param source The source node of the edge. + * @param target The target node of the edge. + * @param labelData The optional label data of the edge if an {@link #edgeLabelBinding} is specified. + * @param businessObject The business data associated with the edge. + * @returns The created edge. * @protected */ createEdge(graph:yfiles.graph.IGraph,source:yfiles.graph.INode,target:yfiles.graph.INode,labelData:Object,businessObject:Object):yfiles.graph.IEdge; /** * Retrieves the associated edge in the {@link yfiles.binding.GraphBuilderBase#graph} for a business object from the {@link yfiles.binding.GraphBuilder#edgesSource}. - * @param {Object} businessObject A business object from the {@link yfiles.binding.GraphBuilder#edgesSource} to get the edge for. - * @returns {yfiles.graph.IEdge} The edge associated with the business object or null for unknown objects. + * @param businessObject A business object from the {@link #edgesSource} to get the edge for. + * @returns The edge associated with the business object or null for unknown objects. * @see yfiles.binding.GraphBuilderBase#getBusinessObject * @see yfiles.binding.GraphBuilderBase#getNode * @see yfiles.binding.GraphBuilderBase#getGroup @@ -73274,10 +73120,10 @@ declare namespace system{ /** * Updates an existing edge when {@link yfiles.binding.GraphBuilderBase#updateGraph} is called and the edge should remain in the * graph. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.IEdge} edge The edge to update. - * @param {Object} labelData The optional label data of the edge if an {@link yfiles.binding.GraphBuilder#edgeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the edge. + * @param graph The graph. + * @param edge The edge to update. + * @param labelData The optional label data of the edge if an {@link #edgeLabelBinding} is specified. + * @param businessObject The business data associated with the edge. * @protected */ updateEdge(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,labelData:Object,businessObject:Object):void; @@ -73367,7 +73213,7 @@ declare namespace system{ * Customers should not create own implementations based on this class but use one of the ready-made adapters {@link yfiles.binding.GraphBuilder} * or {@link yfiles.binding.AdjacentNodesGraphBuilder}. *

    - * @class yfiles.binding.GraphBuilderBase + * @class */ export interface GraphBuilderBase extends Object{} export class GraphBuilderBase { @@ -73376,9 +73222,8 @@ declare namespace system{ *

    * The graph will be {@link yfiles.graph.IGraph#clear cleared} and re-built from the data in {@link yfiles.binding.GraphBuilderBase#nodesSource} when {@link yfiles.binding.GraphBuilderBase#buildGraph} is called. *

    - * @param {yfiles.graph.IGraph} graph + * @param graph * @protected - * @constructor */ constructor(graph:yfiles.graph.IGraph); /** @@ -73387,15 +73232,15 @@ declare namespace system{ * First, this method clears the graph, and then it adds new groups, nodes, and edges as specified by the business data and * bindings. *

    - * @returns {yfiles.graph.IGraph} The created graph. + * @returns The created graph. * @see yfiles.binding.GraphBuilderBase#updateGraph */ buildGraph():yfiles.graph.IGraph; /** * Creates a new group node and assigns the businessObjectparameter to the group node's {@link yfiles.graph.ITagOwner#tag Tag} property. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {Object} businessObject The business data associated with the group node. - * @returns {yfiles.graph.INode} The created node. + * @param graph The graph. + * @param businessObject The business data associated with the group node. + * @returns The created node. * @protected */ createGroupNode(graph:yfiles.graph.IGraph,businessObject:Object):yfiles.graph.INode; @@ -73404,35 +73249,35 @@ declare namespace system{ *

    * This class calls this method to create all new nodes, and customers may override it to customize node creation. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} parent The node's parent node. - * @param {yfiles.geometry.Point} location The location of the node. - * @param {Object} labelData The optional label data of the node if an {@link yfiles.binding.GraphBuilderBase#nodeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the node. - * @returns {yfiles.graph.INode} The created node. + * @param graph The graph. + * @param parent The node's parent node. + * @param location The location of the node. + * @param labelData The optional label data of the node if an {@link #nodeLabelBinding} is specified. + * @param businessObject The business data associated with the node. + * @returns The created node. * @protected */ createNode(graph:yfiles.graph.IGraph,parent:yfiles.graph.INode,location:yfiles.geometry.Point,labelData:Object,businessObject:Object):yfiles.graph.INode; /** * Retrieves the associated business object for a given {@link yfiles.graph.IModelItem graph item} from the {@link yfiles.binding.GraphBuilderBase#graph}. - * @param {yfiles.graph.IModelItem} item The item of the graph to get the business object for. - * @returns {Object} The business object associated with the graph item. + * @param item The item of the graph to get the business object for. + * @returns The business object associated with the graph item. * @see yfiles.binding.GraphBuilderBase#getNode * @see yfiles.binding.GraphBuilderBase#getGroup */ getBusinessObject(item:yfiles.graph.IModelItem):Object; /** * Retrieves the associated group node in the {@link yfiles.binding.GraphBuilderBase#graph} for a business object from the {@link yfiles.binding.GraphBuilderBase#groupsSource}. - * @param {Object} businessObject A business object from the {@link yfiles.binding.GraphBuilderBase#groupsSource} to get the group for. - * @returns {yfiles.graph.INode} The group associated with the business object or null for unknown objects. + * @param businessObject A business object from the {@link #groupsSource} to get the group for. + * @returns The group associated with the business object or null for unknown objects. * @see yfiles.binding.GraphBuilderBase#getBusinessObject * @see yfiles.binding.GraphBuilderBase#getNode */ getGroup(businessObject:Object):yfiles.graph.INode; /** * Retrieves the associated node in the {@link yfiles.binding.GraphBuilderBase#graph} for a business object from the {@link yfiles.binding.GraphBuilderBase#nodesSource}. - * @param {Object} businessObject A business object from the {@link yfiles.binding.GraphBuilderBase#nodesSource} to get the node for. - * @returns {yfiles.graph.INode} The node associated with the business object or null for unknown objects. + * @param businessObject A business object from the {@link #nodesSource} to get the node for. + * @returns The node associated with the business object or null for unknown objects. * @see yfiles.binding.GraphBuilderBase#getBusinessObject * @see yfiles.binding.GraphBuilderBase#getGroup */ @@ -73452,21 +73297,21 @@ declare namespace system{ *

    * This class calls this method to create all new groups, and customers may override it to customize group creation. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} groupNode The group node to update. - * @param {Object} businessObject The business data associated with the group node. + * @param graph The graph. + * @param groupNode The group node to update. + * @param businessObject The business data associated with the group node. * @protected */ updateGroupNode(graph:yfiles.graph.IGraph,groupNode:yfiles.graph.INode,businessObject:Object):void; /** * Updates an existing node when {@link yfiles.binding.GraphBuilderBase#updateGraph} is called and the node should remain in the * graph. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} node The node to update. - * @param {yfiles.graph.INode} parent The node's parent node. - * @param {yfiles.geometry.Point} location The location of the node. - * @param {Object} labelData The optional label data of the node if an {@link yfiles.binding.GraphBuilderBase#nodeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the node. + * @param graph The graph. + * @param node The node to update. + * @param parent The node's parent node. + * @param location The location of the node. + * @param labelData The optional label data of the node if an {@link #nodeLabelBinding} is specified. + * @param businessObject The business data associated with the node. * @protected */ updateNode(graph:yfiles.graph.IGraph,node:yfiles.graph.INode,parent:yfiles.graph.INode,location:yfiles.geometry.Point,labelData:Object,businessObject:Object):void; @@ -73638,7 +73483,7 @@ declare namespace system{ *

    * @see yfiles.binding.TreeBuilder#nodesSource * @see yfiles.binding.TreeBuilder#childBinding - * @class yfiles.binding.TreeBuilder + * @class */ export interface TreeBuilder extends Object{} export class TreeBuilder { @@ -73648,8 +73493,7 @@ declare namespace system{ * The graph will be {@link yfiles.graph.IGraph#clear cleared} and re-built from the data in {@link yfiles.binding.TreeBuilder#nodesSource} when {@link yfiles.binding.TreeBuilder#buildGraph} is called. The {@link yfiles.binding.TreeBuilder#childBinding} * needs to be set in order to actually create a tree. *

    - * @param {yfiles.graph.IGraph} graph - * @constructor + * @param graph */ constructor(graph:yfiles.graph.IGraph); /** @@ -73658,60 +73502,60 @@ declare namespace system{ * First, this method clears the graph, and then it adds new groups, nodes, and edges as specified by the business data and * bindings. *

    - * @returns {yfiles.graph.IGraph} The created graph. + * @returns The created graph. * @see yfiles.binding.TreeBuilder#updateGraph */ buildGraph():yfiles.graph.IGraph; /** * Creates an edge between the source and target node. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} source The source node of the edge. - * @param {yfiles.graph.INode} target The target node of the edge. - * @param {Object} labelData The optional label data of the edge if an {@link yfiles.binding.TreeBuilder#edgeLabelBinding} is specified. - * @returns {yfiles.graph.IEdge} The created edge. + * @param graph The graph. + * @param source The source node of the edge. + * @param target The target node of the edge. + * @param labelData The optional label data of the edge if an {@link #edgeLabelBinding} is specified. + * @returns The created edge. * @protected */ createEdge(graph:yfiles.graph.IGraph,source:yfiles.graph.INode,target:yfiles.graph.INode,labelData:Object):yfiles.graph.IEdge; /** * Creates a new group node and assigns the businessObjectparameter to the group node's {@link yfiles.graph.ITagOwner#tag Tag} property. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {Object} businessObject The business data associated with the group node. - * @returns {yfiles.graph.INode} The created node. + * @param graph The graph. + * @param businessObject The business data associated with the group node. + * @returns The created node. * @protected */ createGroupNode(graph:yfiles.graph.IGraph,businessObject:Object):yfiles.graph.INode; /** * Creates a node with the specified parent and assigns the businessObject parameter to the node's {@link yfiles.graph.ITagOwner#tag Tag} property. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} parent The node's parent node. - * @param {yfiles.geometry.Point} location The location of the node. - * @param {Object} labelData The optional label data of the node if an {@link yfiles.binding.TreeBuilder#nodeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the node. - * @returns {yfiles.graph.INode} The created node. + * @param graph The graph. + * @param parent The node's parent node. + * @param location The location of the node. + * @param labelData The optional label data of the node if an {@link #nodeLabelBinding} is specified. + * @param businessObject The business data associated with the node. + * @returns The created node. * @protected */ createNode(graph:yfiles.graph.IGraph,parent:yfiles.graph.INode,location:yfiles.geometry.Point,labelData:Object,businessObject:Object):yfiles.graph.INode; /** * Retrieves the associated business object for a given {@link yfiles.graph.INode node} from the {@link yfiles.binding.TreeBuilder#graph}. - * @param {yfiles.graph.IModelItem} item The node of the graph to get the business object for. - * @returns {Object} The business object associated with the graph element. + * @param item The node of the graph to get the business object for. + * @returns The business object associated with the graph element. * @see yfiles.binding.TreeBuilder#getNode */ getBusinessObject(item:yfiles.graph.IModelItem):Object; /** * Retrieves the associated node in the {@link yfiles.binding.TreeBuilder#graph} for a business object from the {@link yfiles.binding.TreeBuilder#nodesSource}. - * @param {Object} businessObject A business object from the {@link yfiles.binding.TreeBuilder#nodesSource} to get the node for. - * @returns {yfiles.graph.INode} The node associated with the business object or null for unknown objects. + * @param businessObject A business object from the {@link #nodesSource} to get the node for. + * @returns The node associated with the business object or null for unknown objects. * @see yfiles.binding.TreeBuilder#getBusinessObject */ getNode(businessObject:Object):yfiles.graph.INode; /** * Updates an edge with the given data. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.IEdge} edge The edge to update. - * @param {yfiles.graph.INode} source The edge's source node. - * @param {yfiles.graph.INode} target The edge's target node. - * @param {Object} labelData The business data associated with the edge. + * @param graph The graph. + * @param edge The edge to update. + * @param source The edge's source node. + * @param target The edge's target node. + * @param labelData The business data associated with the edge. * @protected */ updateEdge(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,source:yfiles.graph.INode,target:yfiles.graph.INode,labelData:Object):void; @@ -73730,20 +73574,20 @@ declare namespace system{ *

    * This class calls this method to create all new groups, and customers may override it to customize group creation. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} groupNode The group node to update. - * @param {Object} businessObject The business data associated with the group node. + * @param graph The graph. + * @param groupNode The group node to update. + * @param businessObject The business data associated with the group node. * @protected */ updateGroupNode(graph:yfiles.graph.IGraph,groupNode:yfiles.graph.INode,businessObject:Object):void; /** * Updates a node with the given data. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} node The node to update. - * @param {yfiles.graph.INode} parent The node's parent node. - * @param {yfiles.geometry.Point} location The location of the node. - * @param {Object} labelData The optional label data of the edge if an {@link yfiles.binding.TreeBuilder#nodeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the node. + * @param graph The graph. + * @param node The node to update. + * @param parent The node's parent node. + * @param location The location of the node. + * @param labelData The optional label data of the edge if an {@link #nodeLabelBinding} is specified. + * @param businessObject The business data associated with the node. * @protected */ updateNode(graph:yfiles.graph.IGraph,node:yfiles.graph.INode,parent:yfiles.graph.INode,location:yfiles.geometry.Point,labelData:Object,businessObject:Object):void; @@ -73977,7 +73821,7 @@ declare namespace system{ *

    * When handling a stop request, algorithms should ensure that the resulting graph is still in a consistent state. *

    - * @class yfiles.algorithms.AbortHandler + * @class */ export interface AbortHandler extends Object{} export class AbortHandler { @@ -73986,7 +73830,6 @@ declare namespace system{ * @see yfiles.algorithms.AbortHandler#stopDuration * @see yfiles.algorithms.AbortHandler#cancelDuration * @see yfiles.algorithms.AbortHandler#reset - * @constructor */ constructor(); /** @@ -73995,7 +73838,7 @@ declare namespace system{ * This method returns true if the algorithm should terminate gracefully and ensures that the processed graph remains in a * consistent state. *

    - * @returns {boolean} true, if the algorithm should terminate immediately, false otherwise + * @returns true, if the algorithm should terminate immediately, false otherwise * @throws {yfiles.algorithms.AlgorithmAbortedError} if the algorithm should terminate immediately * @see yfiles.algorithms.AbortHandler#stop */ @@ -74011,8 +73854,8 @@ declare namespace system{ * it is recommended to retrieve the given graph's attached handler once and only call the handler's {@link yfiles.algorithms.AbortHandler#check} * method repeatedly. *

    - * @param {yfiles.algorithms.Graph} graph - * @returns {boolean} true, if the algorithm should stop immediately while still providing some valid result, false otherwise + * @param graph + * @returns true, if the algorithm should stop immediately while still providing some valid result, false otherwise * @throws {yfiles.algorithms.AlgorithmAbortedError} if the algorithm should terminate immediately * @throws {Stubs.Exceptions.ArgumentError} if the given graph is null * @see yfiles.algorithms.AbortHandler#check @@ -74022,8 +73865,8 @@ declare namespace system{ static check(graph:yfiles.algorithms.Graph):boolean; /** * Attaches the {@link yfiles.algorithms.AbortHandler} instance of the given source graph to the target graph as well. - * @param {yfiles.algorithms.Graph} source the graph whose handler is attached to the target graph - * @param {yfiles.algorithms.Graph} target the graph to which the handler of the source graph is attached + * @param source the graph whose handler is attached to the target graph + * @param target the graph to which the handler of the source graph is attached * @throws {Stubs.Exceptions.ArgumentError} if the given source is null * @static */ @@ -74037,8 +73880,8 @@ declare namespace system{ *

    * This method should be called by client code prior to starting a graph algorithm that may be terminated early. *

    - * @param {yfiles.algorithms.Graph} graph the graph to which the handler will be attached - * @returns {yfiles.algorithms.AbortHandler} the {@link yfiles.algorithms.AbortHandler} instance for the given graph + * @param graph the graph to which the handler will be attached + * @returns the {@link } instance for the given graph * @throws {Stubs.Exceptions.ArgumentError} if the given graph is null. * @see yfiles.algorithms.AbortHandler#hasHandler * @static @@ -74051,8 +73894,8 @@ declare namespace system{ * the instance that will be returned. Otherwise, a non-functional instance is returned whose methods do nothing. Use {@link yfiles.algorithms.AbortHandler#hasHandler} * to check whether or not a handler has been already attached to the given graph. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {yfiles.algorithms.AbortHandler} an {@link yfiles.algorithms.AbortHandler} for the given graph or a non-functional instance if no handler has been previously + * @param graph the given graph + * @returns an {@link } for the given graph or a non-functional instance if no handler has been previously * created * @throws {Stubs.Exceptions.ArgumentError} if the given graph is null * @see yfiles.algorithms.AbortHandler#createForGraph @@ -74062,15 +73905,15 @@ declare namespace system{ static getFromGraph(graph:yfiles.algorithms.Graph):yfiles.algorithms.AbortHandler; /** * Determines whether or not an {@link yfiles.algorithms.AbortHandler} instance is attached to the given graph. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if a handler is attached to the given graph, false otherwise + * @param graph the given graph + * @returns true if a handler is attached to the given graph, false otherwise * @throws {Stubs.Exceptions.ArgumentError} if the given graph is null * @static */ static hasHandler(graph:yfiles.algorithms.Graph):boolean; /** * Removes any attached {@link yfiles.algorithms.AbortHandler} instance from the given graph. - * @param {yfiles.algorithms.Graph} graph the given graph + * @param graph the given graph * @throws {Stubs.Exceptions.ArgumentError} if the given graph is null. * @static */ @@ -74105,7 +73948,7 @@ declare namespace system{ stop():void; /** * Determines the remaining time (in milliseconds) until an algorithm that {@link yfiles.algorithms.AbortHandler#check checks} this handler is cancelled automatically. - * @returns {yfiles.lang.TimeSpan} the remaining time until the algorithm is cancelled automatically. + * @returns the remaining time until the algorithm is cancelled automatically. * @see yfiles.algorithms.AbortHandler#cancelDuration * @see yfiles.algorithms.AbortHandler#reset * @see yfiles.algorithms.AbortHandler#cancelDuration @@ -74117,7 +73960,7 @@ declare namespace system{ * If the {@link yfiles.algorithms.AbortHandler#stopDuration stop duration} is less than or equal to zero, -1 will be returned which means that the algorithm may run * unrestricted. *

    - * @returns {yfiles.lang.TimeSpan} the remaining time until the algorithm is stopped automatically or -1 if the algorithm may run unrestricted + * @returns the remaining time until the algorithm is stopped automatically or -1 if the algorithm may run unrestricted * @see yfiles.algorithms.AbortHandler#stopDuration * @see yfiles.algorithms.AbortHandler#reset * @see yfiles.algorithms.AbortHandler#stop @@ -74169,8 +74012,8 @@ declare namespace system{ * Gets whether or not methods {@link yfiles.algorithms.AbortHandler#check} or {@link yfiles.algorithms.AbortHandler#check} were called * after a stop or cancel event. *

    - * More precisely, it returns true if one of the check methods either threw an {@link yfiles.algorithms.AlgorithmAbortedError} or - * returned true to indicate that the calling algorithm should terminate gracefully. Otherwise, this method returns false. + * More precisely, it returns true if one of the check methods either threw an {@link yfiles.lang.Exception} or returned true to + * indicate that the calling algorithm should terminate gracefully. Otherwise, this method returns false. *

    * @see yfiles.algorithms.AbortHandler#check * @see yfiles.algorithms.AbortHandler#check @@ -74195,7 +74038,7 @@ declare namespace system{ * {@graph {"ann":{"s":[30,30],"d":0},"n":[[-35,-35,1,[[-25.34,-10.65,10.67,18.7,"0"]]],[-35,85,[[-25.34,109.35,10.67,18.7,"1"]]],[85,-35,[[94.66,-10.65,10.67,18.7,"1"]]],[85,85,[[94.66,109.35,10.67,18.7,"2"]]],[205,-35,[[214.66,-10.65,10.67,18.7,"3"]]],[205,85,[[214.66,109.35,10.67,18.7,"4"]]]],"e":[[4,3],[2,0],[0,1],[1,3],[2,3],[4,5]],"vp":[-35.0,-35.0,270.0,150.0]}} Example for a BFS run. The marked node is the core node from which BFS starts while node labels indicate the resulting * layers. *

    - * @class yfiles.algorithms.Bfs + * @class * @static */ export interface Bfs extends Object{} @@ -74211,13 +74054,13 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} coreNodes the list of core nodes - * @param {yfiles.algorithms.BfsDirection} direction one of the predefined direction specifiers - * @param {yfiles.algorithms.INodeMap} layerIDMap the {@link yfiles.algorithms.INodeMap} that will be filled during the BFS execution and holds the zero-based index of the BFS + * @param graph the given graph + * @param coreNodes the list of core nodes + * @param direction one of the predefined direction specifiers + * @param layerIDMap the {@link } that will be filled during the BFS execution and holds the zero-based index of the BFS * layer to which each node belongs or -1 if the node is not reachable - * @param {number} [maxLayers=0] the number of layers that will be returned or 0 if all layers are required - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @param [maxLayers=0] the number of layers that will be returned or 0 if all layers are required + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @throws {Stubs.Exceptions.ArgumentError} if the given direction is not supported * @static */ @@ -74233,13 +74076,13 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} coreNodes the list of core nodes from which the BFS starts - * @param {boolean} directed true if the graph should be considered directed, false otherwise - * @param {yfiles.algorithms.INodeMap} layerIDMap the {@link yfiles.algorithms.INodeMap} that will be filled during the BFS execution and holds the zero-based index of the BFS + * @param graph the given graph + * @param coreNodes the list of core nodes from which the BFS starts + * @param directed true if the graph should be considered directed, false otherwise + * @param layerIDMap the {@link } that will be filled during the BFS execution and holds the zero-based index of the BFS * layer to which each node belongs or -1 if the node is not reachable - * @param {number} [maxLayers=0] the number of layers that will be returned or 0 if all layers are required - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @param [maxLayers=0] the number of layers that will be returned or 0 if all layers are required + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @static */ static getLayers(graph:yfiles.algorithms.Graph,coreNodes:yfiles.algorithms.NodeList,directed:boolean,layerIDMap:yfiles.algorithms.INodeMap,maxLayers?:number):yfiles.algorithms.NodeList[]; @@ -74253,11 +74096,11 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} coreNodes the list of core nodes from which the BFS starts - * @param {yfiles.algorithms.INodeMap} layerIDMap the {@link yfiles.algorithms.INodeMap} that will be filled during the BFS execution and holds the zero-based index of the BFS + * @param graph the given graph + * @param coreNodes the list of core nodes from which the BFS starts + * @param layerIDMap the {@link } that will be filled during the BFS execution and holds the zero-based index of the BFS * layer to which each node belongs or -1 if the node is not reachable - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @static */ static getLayers(graph:yfiles.algorithms.Graph,coreNodes:yfiles.algorithms.NodeList,layerIDMap:yfiles.algorithms.INodeMap):yfiles.algorithms.NodeList[]; @@ -74271,12 +74114,12 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.IDataProvider} isCoreNode the {@link yfiles.algorithms.IDataProvider} that contains the nodes from which the BFS starts; core nodes are marked with a true + * @param graph the given graph + * @param isCoreNode the {@link } that contains the nodes from which the BFS starts; core nodes are marked with a true * value - * @param {yfiles.algorithms.INodeMap} layerIDMap the {@link yfiles.algorithms.INodeMap} that will be filled during the BFS execution and holds the zero-based index of the BFS + * @param layerIDMap the {@link } that will be filled during the BFS execution and holds the zero-based index of the BFS * layer to which each node belongs or -1 if the node is not reachable - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @static */ static getLayers(graph:yfiles.algorithms.Graph,isCoreNode:yfiles.algorithms.IDataProvider,layerIDMap:yfiles.algorithms.INodeMap):yfiles.algorithms.NodeList[]; @@ -74290,9 +74133,9 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} coreNodes the list of core nodes from which the BFS starts - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @param graph the given graph + * @param coreNodes the list of core nodes from which the BFS starts + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @static */ static getLayers(graph:yfiles.algorithms.Graph,coreNodes:yfiles.algorithms.NodeList):yfiles.algorithms.NodeList[]; @@ -74305,10 +74148,10 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.IDataProvider} isCoreNode the {@link yfiles.algorithms.IDataProvider} that contains the nodes from which the BFS starts; core nodes are marked with a true + * @param graph the given graph + * @param isCoreNode the {@link } that contains the nodes from which the BFS starts; core nodes are marked with a true * value - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @static */ static getLayers(graph:yfiles.algorithms.Graph,isCoreNode:yfiles.algorithms.IDataProvider):yfiles.algorithms.NodeList[]; @@ -74327,7 +74170,7 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[40,40],"d":0, "b":0},"styles":{"6":{"c":1, "b":0}},"n":[[365,205,6],[365,305,6],[365,405,6],[505,205],[505,305],[505,405]],"e":[[0,4],[0,3],[0,5],[1,4],[2,3],[2,5],[1,5]],"vp":[365.0,200.0,170.0,250.0]}} Example of a bipartite graph. Circular and rectangular nodes represent the two partitions. *

    - * @class yfiles.algorithms.Bipartitions + * @class * @static */ export interface Bipartitions extends Object{} @@ -74338,17 +74181,17 @@ declare namespace system{ * If the graph is bipartite, then for all nodes of the given graph either {@link yfiles.algorithms.Bipartitions#RED} or {@link yfiles.algorithms.Bipartitions#BLUE} * objects will be set in the given {@link yfiles.algorithms.INodeMap}, depending on the partition to which each node belongs. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.INodeMap} markMap the {@link yfiles.algorithms.INodeMap} that will be filled during the BFS execution and returns the partition (either {@link yfiles.algorithms.Bipartitions#RED} - * or {@link yfiles.algorithms.Bipartitions#BLUE}) to which each node belongs - * @returns {boolean} true if the graph is bipartite, false otherwise + * @param graph the given graph + * @param markMap the {@link } that will be filled during the BFS execution and returns the partition (either {@link #RED} + * or {@link #BLUE}) to which each node belongs + * @returns true if the graph is bipartite, false otherwise * @static */ static getBipartition(graph:yfiles.algorithms.Graph,markMap:yfiles.algorithms.INodeMap):boolean; /** * Determines whether or not the given graph is bipartite. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is bipartite, false otherwise + * @param graph the given graph + * @returns true if the graph is bipartite, false otherwise * @static */ static isBipartite(graph:yfiles.algorithms.Graph):boolean; @@ -74392,7 +74235,7 @@ declare namespace system{ * *
  • Weight centrality measures the weight associated with incoming, outgoing, or all edges of a node.
  • * - * @class yfiles.algorithms.Centrality + * @class * @static */ export interface Centrality extends Object{} @@ -74404,11 +74247,11 @@ declare namespace system{ * Therefore, a node with high closeness centrality has short distances to all other nodes of a graph. If the sum of the * shortest path distances is 0, the closeness of a node is set to {@link number#POSITIVE_INFINITY}. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} closeness the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param closeness the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (cost) or null if the edges are of equal cost + * @param directed true if the graph should be considered as directed, false otherwise + * @param edgeCosts the {@link } that returns a positive double value (cost) or null if the edges are of equal cost * @static */ static closenessCentrality(graph:yfiles.algorithms.Graph,closeness:yfiles.algorithms.INodeMap,directed:boolean,edgeCosts:yfiles.algorithms.IDataProvider):void; @@ -74418,11 +74261,11 @@ declare namespace system{ * Degree centrality is the number of the incoming, outgoing or overall edges incident to a node (measures incoming, outgoing and overall * degree). *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} centrality the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param centrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {boolean} considerInEdges true if the incoming edges should be considered, false otherwise - * @param {boolean} considerOutEdges true if the outgoing edges should be considered, false otherwise + * @param considerInEdges true if the incoming edges should be considered, false otherwise + * @param considerOutEdges true if the outgoing edges should be considered, false otherwise * @static */ static degreeCentrality(graph:yfiles.algorithms.Graph,centrality:yfiles.algorithms.INodeMap,considerInEdges:boolean,considerOutEdges:boolean):void; @@ -74432,11 +74275,11 @@ declare namespace system{ * Betweenness centrality is a measure for how often an edge lies on a shortest path between each pair of nodes in the graph. Removing a central * edge will cause many shortest paths to change. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IEdgeMap} centrality the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param centrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * edge - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (cost) or null if the edges are of equal cost; + * @param directed true if the graph should be considered as directed, false otherwise + * @param edgeCosts the {@link } that returns a positive double value (cost) or null if the edges are of equal cost; * for invalid input values the algorithm uses cost 1.0 * @static */ @@ -74447,11 +74290,11 @@ declare namespace system{ * Graph centrality is defined as the reciprocal of the maximum of all shortest path distances from a node to all other nodes in the graph. * Nodes with high graph centrality have short distances to all other nodes in the graph. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} centrality the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param centrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (cost) or null if the edges are of equal cost + * @param directed true if the graph should be considered as directed, false otherwise + * @param edgeCosts the {@link } that returns a positive double value (cost) or null if the edges are of equal cost * @static */ static graphCentrality(graph:yfiles.algorithms.Graph,centrality:yfiles.algorithms.INodeMap,directed:boolean,edgeCosts:yfiles.algorithms.IDataProvider):void; @@ -74461,11 +74304,11 @@ declare namespace system{ * Betweenness centrality is a measure for how often a node lies on a shortest path between each pair of nodes in the graph. Removing a central * edge will cause many shortest paths to change. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} centrality the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param centrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (cost) or null if the edges are of equal cost; + * @param directed true if the graph should be considered as directed, false otherwise + * @param edgeCosts the {@link } that returns a positive double value (cost) or null if the edges are of equal cost; * for invalid input values the algorithm uses cost 1.0 * @static */ @@ -74476,13 +74319,13 @@ declare namespace system{ * Betweenness centrality is a measure for how often a node/edge lies on a shortest path between each pair of nodes in the graph. Removing a * central node/edge will cause many shortest paths to change. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} nodeCentrality the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param nodeCentrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {yfiles.algorithms.IEdgeMap} edgeCentrality the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param edgeCentrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * edge - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (cost) or null if the edges are of equal cost; + * @param directed true if the graph should be considered as directed, false otherwise + * @param edgeCosts the {@link } that returns a positive double value (cost) or null if the edges are of equal cost; * for invalid input values the algorithm uses cost 1.0 * @static */ @@ -74490,16 +74333,16 @@ declare namespace system{ /** * Normalizes the double values of a given {@link yfiles.algorithms.IEdgeMap} by dividing each of them by the maximum of all values * (maximum norm). - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IEdgeMap} map the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns a double value from [0,1] interval + * @param graph the input graph + * @param map the {@link } that will be filled during the execution and returns a double value from [0,1] interval * @static */ static normalizeEdgeMap(graph:yfiles.algorithms.Graph,map:yfiles.algorithms.IEdgeMap):void; /** * Normalizes the double values of a given {@link yfiles.algorithms.INodeMap} by dividing each of them by the maximum of all values * (maximum norm). - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} map the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value from [0,1] interval + * @param graph the input graph + * @param map the {@link } that will be filled during the execution and returns a double value from [0,1] interval * @static */ static normalizeNodeMap(graph:yfiles.algorithms.Graph,map:yfiles.algorithms.INodeMap):void; @@ -74508,12 +74351,12 @@ declare namespace system{ *

    * Weight centrality measures the weight associated with incoming, outgoing, or all edges of a node. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} centrality the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param centrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {boolean} considerInEdges true if the incoming edges should be considered, false otherwise - * @param {boolean} considerOutEdges true if the outgoing edges should be considered, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeWeights the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (weight) or null if the edges are considered to + * @param considerInEdges true if the incoming edges should be considered, false otherwise + * @param considerOutEdges true if the outgoing edges should be considered, false otherwise + * @param edgeWeights the {@link } that returns a positive double value (weight) or null if the edges are considered to * have uniform weight of 1.0 * @static */ @@ -74538,7 +74381,7 @@ declare namespace system{ * {@graph {"ann":{"s":[30,30],"d":1, "c":1},"n":[[45,5],[105,65],[-15,65],[45,125],[185,65],[-95,65]],"e":[[0,1],[0,2],[1,3],[2,3],[1,4],[2,5]],"vp":[-95.0,5.0,310.0,150.0]}} Example of an acyclic directed graph (edge directions are considered) {@graph {"ann":{"s":[30,30],"d":1, "c":1},"n":[[305,185],[385,125],[345,285],[505,125],[545,225],[465,305]],"e":[[0,1],[1,3],[4,5,1],[5,2,1],[2,0,1],[0,4,1]],"vp":[305.0,125.0,270.0,210.0]}} Example of a graph containing a cycle. Marked * edges form a directed cycle. *

    - * @class yfiles.algorithms.Cycles + * @class * @static */ export interface Cycles extends Object{} @@ -74546,9 +74389,9 @@ declare namespace system{ /** * Returns an {@link yfiles.algorithms.EdgeList} that contains all the edges that are part of at least one directed or undirected * simple cycle. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {boolean} directed true if the graph should be considered directed, false otherwise - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} that contains all the edges that are part of at least one directed or undirected simple + * @param graph the input graph + * @param directed true if the graph should be considered directed, false otherwise + * @returns an {@link } that contains all the edges that are part of at least one directed or undirected simple * cycle * @static */ @@ -74561,9 +74404,9 @@ declare namespace system{ *

    * If the returned cycle is empty, no cycle has been found in the given graph. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {boolean} directed true if the graph should be considered directed, false otherwise - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the edges of a cycle or an empty {@link yfiles.algorithms.EdgeList} if the graph is + * @param graph the given graph + * @param directed true if the graph should be considered directed, false otherwise + * @returns an {@link } containing the edges of a cycle or an empty {@link } if the graph is * acyclic * @static */ @@ -74578,21 +74421,22 @@ declare namespace system{ *

    * The costs are assigned using a {@link yfiles.algorithms.IDataProvider} that holds a non-negative double value for each edge. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.IEdgeMap} cycleEdges the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns whether an edge is a detected cycle + * @param graph the given graph + * @param cycleEdges the {@link } that will be filled during the execution and returns whether an edge is a detected cycle * edge - * @param {yfiles.algorithms.IDataProvider} [costDP=null] the {@link yfiles.algorithms.IDataProvider} that holds the non-negative {@link number} reversal cost for each edge + * @param [costDP=null] the {@link } that holds the non-negative {@link } reversal cost for each edge * @static */ static findCycleEdges(graph:yfiles.algorithms.Graph,cycleEdges:yfiles.algorithms.IEdgeMap,costDP?:yfiles.algorithms.IDataProvider):void; /** * Marks the edges of a given graph whose removal or reversal would make the graph acyclic based on a depth first search. *

    - * The number of marked cycle edges is expected to be slightly greater than when using FindCycleEdges. The advantage of - * this method is that the result set is more stable when edges are added or removed over time. + * The number of marked cycle edges is expected to be slightly greater than when using + * {@link yfiles.algorithms.Cycles#findCycleEdges}. The advantage of this method is that the result set is more stable when edges + * are added or removed over time. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.IEdgeMap} cycleEdges the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns a boolean value indicating whether + * @param graph the given graph + * @param cycleEdges the {@link } that will be filled during the execution and returns a boolean value indicating whether * or not an edge is a detected cycle edge * @static */ @@ -74605,7 +74449,7 @@ declare namespace system{ * For each edge there exist two darts, one that represents the edge in its original direction (i.e., from source to * target) and one that represents its reverse. Each dart is associated with a {@link yfiles.algorithms.Dart#face face}. *

    - * @class yfiles.algorithms.Dart + * @class * @final */ export interface Dart extends Object{} @@ -74673,13 +74517,12 @@ declare namespace system{ * {@graph {"ann":{"s":[30,30],"d":1, "c":1},"styles" : {"6" : {"s" : "#000000", "d" : 1, "l" : [3] }, "7" : {"s" : "#000000", "d" : 1, "l" : [1,4] }, "8" : {"s" : "#000000", "d" : 1, "l" : [7] }},"n":[[145,-15,[[154.66,9.35,10.67,18.7,"1"]]],[65,65,[[74.66,89.35,10.67,18.7,"2"]]],[185,65,[[194.66,89.35,10.67,18.7,"8"]]],[45,225,[[54.66,249.35,10.67,18.7,"5"]]],[125,145,[[134.66,169.35,10.67,18.7,"7"]]],[65,145,[[74.66,169.35,10.67,18.7,"6"]]],[-35,225,[[-25.34,249.35,10.67,18.7,"4"]]],[5,145,[[14.66,169.35,10.67,18.7,"3"]]],[185,145,[[194.66,169.35,10.67,18.7,"9"]]]],"e":[[0,1],[1,7],[0,2],[7,3],[1,4],[1,5],[7,6],[2,1,6,[],[[118.33,72.85,35.34,18.7,"Cross"]]],[6,1,8,[-60,100,-60,100],[[-95.2,149.04,30.68,18.7,2.4492935982947064E-16,-1.0,"Back"]]],[0,3,7,[360,140],[[270.38,202.85,48.01,18.7,2.4492935982947064E-16,-1.0,"Forward"]]],[2,8]],"vp":[-96.0,-15.0,456.0,270.0]}} Example of a DFS traversal. Node labels indicate the order in which nodes are visited. Solid edges are the edges of the * DFS tree while dashed edges represent back, forward and cross edges. *

    - * @class yfiles.algorithms.Dfs + * @class */ export interface Dfs extends Object{} export class Dfs { /** * Creates a new {@link yfiles.algorithms.Dfs} instance with default settings. - * @constructor */ constructor(); /** @@ -74694,7 +74537,7 @@ declare namespace system{ *

    * By default, this method does nothing. It may be overridden to support custom implementations. *

    - * @param {yfiles.algorithms.Node} v the new root node + * @param v the new root node * @protected */ lookFurther(v:yfiles.algorithms.Node):void; @@ -74703,8 +74546,8 @@ declare namespace system{ *

    * By default, this method does nothing. It may be overridden to support custom implementations. *

    - * @param {yfiles.algorithms.Edge} edge the given edge - * @param {yfiles.algorithms.Node} node the node that has been reached via the given edge + * @param edge the given edge + * @param node the node that has been reached via the given edge * @protected */ postTraverse(edge:yfiles.algorithms.Edge,node:yfiles.algorithms.Node):void; @@ -74713,9 +74556,9 @@ declare namespace system{ *

    * By default, this method does nothing. It may be overridden to support custom implementations. *

    - * @param {yfiles.algorithms.Node} node the given node - * @param {number} dfsNumber the DFS number of the given node - * @param {number} compNumber the completion number of the given node + * @param node the given node + * @param dfsNumber the DFS number of the given node + * @param compNumber the completion number of the given node * @protected */ postVisit(node:yfiles.algorithms.Node,dfsNumber:number,compNumber:number):void; @@ -74724,9 +74567,9 @@ declare namespace system{ *

    * By default, this method does nothing. It may be overridden to support custom implementations. *

    - * @param {yfiles.algorithms.Edge} edge the given edge - * @param {yfiles.algorithms.Node} node the node to be visited next only if treeEdge == true - * @param {boolean} treeEdge true if the node will be visited, false otherwise + * @param edge the given edge + * @param node the node to be visited next only if treeEdge == true + * @param treeEdge true if the node will be visited, false otherwise * @protected */ preTraverse(edge:yfiles.algorithms.Edge,node:yfiles.algorithms.Node,treeEdge:boolean):void; @@ -74735,15 +74578,15 @@ declare namespace system{ *

    * By default, this method does nothing. It may be overridden to support custom implementations. *

    - * @param {yfiles.algorithms.Node} node the given node - * @param {number} dfsNumber the DFS number of the given node + * @param node the given node + * @param dfsNumber the DFS number of the given node * @protected */ preVisit(node:yfiles.algorithms.Node,dfsNumber:number):void; /** * Starts a depth first search from a given {@link yfiles.algorithms.Node} of the input graph. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} start the given start node + * @param graph the input graph + * @param start the given start node */ start(graph:yfiles.algorithms.Graph,start:yfiles.algorithms.Node):void; /** @@ -74751,7 +74594,7 @@ declare namespace system{ *

    * The first node of the graph will be visited first. *

    - * @param {yfiles.algorithms.Graph} graph the input graph + * @param graph the input graph */ start(graph:yfiles.algorithms.Graph):void; /** @@ -74813,23 +74656,22 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.DpKeyBase. + * @class * @template TValue */ export interface DpKeyBase extends Object{} export class DpKeyBase { /** * Initializes a new instance of the {@link yfiles.algorithms.DpKeyBase.} class. - * @param {yfiles.lang.Class} valueType The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); /** * Returns whether this key is equal to the specified other. - * @param {yfiles.algorithms.DpKeyBase.} other The other key to compare with this instance. - * @returns {boolean} true if the specified key is equal to this instance; otherwise, false. + * @param other The other key to compare with this instance. + * @returns true if the specified key is equal to this instance; otherwise, false. * @protected */ equalsCore(other:yfiles.algorithms.DpKeyBase):boolean; @@ -74852,7 +74694,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.EdgeDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74860,12 +74702,11 @@ declare namespace system{ export class EdgeDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.EdgeDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74875,7 +74716,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.GraphDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74883,12 +74724,11 @@ declare namespace system{ export class GraphDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.GraphDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74898,7 +74738,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.GraphObjectDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74906,12 +74746,11 @@ declare namespace system{ export class GraphObjectDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.GraphObjectDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74921,7 +74760,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.IEdgeLabelLayoutDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74929,12 +74768,11 @@ declare namespace system{ export class IEdgeLabelLayoutDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.IEdgeLabelLayoutDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74944,7 +74782,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.INodeLabelLayoutDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74952,12 +74790,11 @@ declare namespace system{ export class INodeLabelLayoutDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.INodeLabelLayoutDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74967,7 +74804,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.ILabelLayoutDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74975,12 +74812,11 @@ declare namespace system{ export class ILabelLayoutDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.ILabelLayoutDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74990,7 +74826,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.NodeDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74998,12 +74834,11 @@ declare namespace system{ export class NodeDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.NodeDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -75021,7 +74856,7 @@ declare namespace system{ * Important: Class Graph is the single authority for any structural changes to the graph data type. Specifically, this means that * there is no way to create or delete a node or an edge without using an actual Graph instance. *

    - * @class yfiles.algorithms.Edge + * @class * @extends {yfiles.algorithms.GraphObject} */ export interface Edge extends yfiles.algorithms.GraphObject{} @@ -75046,24 +74881,23 @@ declare namespace system{ *
  • after e2, if d2 == AFTER
  • *
  • before e2, if d2 == BEFORE.
  • * - * @param {yfiles.algorithms.Node} v The source node of the edge. - * @param {yfiles.algorithms.Edge} e1 An edge with source node v. - * @param {yfiles.algorithms.Node} w The target node of the edge. - * @param {yfiles.algorithms.Edge} e2 An edge with target node w. - * @param {yfiles.algorithms.GraphElementInsertion} d1 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @param {yfiles.algorithms.GraphElementInsertion} d2 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @param {yfiles.algorithms.Graph} g - * @constructor + * @param v The source node of the edge. + * @param e1 An edge with source node v. + * @param w The target node of the edge. + * @param e2 An edge with target node w. + * @param d1 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @param d2 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @param g */ constructor(g:yfiles.algorithms.Graph,v:yfiles.algorithms.Node,e1:yfiles.algorithms.Edge,w:yfiles.algorithms.Node,e2:yfiles.algorithms.Edge,d1:yfiles.algorithms.GraphElementInsertion,d2:yfiles.algorithms.GraphElementInsertion); /** * Creates a copy of this edge that will be inserted into the given graph connecting the given source and target nodes. - * @param {yfiles.algorithms.Graph} g The graph the created edge will belong to. - * @param {yfiles.algorithms.Node} v The source node of the created edge. - * @param {yfiles.algorithms.Node} w The target node of the created edge. - * @returns {yfiles.algorithms.Edge} The newly created Edge object. + * @param g The graph the created edge will belong to. + * @param v The source node of the created edge. + * @param w The target node of the created edge. + * @returns The newly created Edge object. */ createCopy(g:yfiles.algorithms.Graph,v:yfiles.algorithms.Node,w:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** @@ -75075,8 +74909,8 @@ declare namespace system{ *

    * Note that self-loops have the same node at both edge ends. *

    - * @param {yfiles.algorithms.Node} v - * @returns {yfiles.algorithms.Node} + * @param v + * @returns */ opposite(v:yfiles.algorithms.Node):yfiles.algorithms.Node; /** @@ -75170,7 +75004,7 @@ declare namespace system{ } /** * Specialized list implementation for instances of type {@link yfiles.algorithms.Edge}. - * @class yfiles.algorithms.EdgeList + * @class * @extends {yfiles.algorithms.YList} * @implements {yfiles.collections.IEnumerable.} */ @@ -75178,69 +75012,63 @@ declare namespace system{ export class EdgeList { /** * Creates a list that is initialized with an EdgeList. - * @param {yfiles.algorithms.EdgeList} edgeList - * @constructor + * @param edgeList */ constructor(edgeList:yfiles.algorithms.EdgeList); /** * Creates a list that is initialized with a single edge provided. - * @param {yfiles.algorithms.Edge} e - * @constructor + * @param e */ constructor(e:yfiles.algorithms.Edge); /** * Creates a list that is initialized with those edges from the given EdgeCursor object for which the given data provider * returns true upon calling its {@link yfiles.algorithms.IDataProvider#getBoolean getBool} method. - * @param {yfiles.algorithms.IEdgeCursor} ec An edge cursor providing edges that should be added to this list. - * @param {yfiles.algorithms.IDataProvider} predicate A data provider that acts as a inclusion predicate for each edge accessible by the given edge cursor. - * @constructor + * @param ec An edge cursor providing edges that should be added to this list. + * @param predicate A data provider that acts as a inclusion predicate for each edge accessible by the given edge cursor. */ constructor(ec:yfiles.algorithms.IEdgeCursor,predicate:yfiles.algorithms.IDataProvider); /** * Creates a list that is initialized with the edges provided by the given array of edges. - * @param {Array.} a - * @constructor + * @param a */ constructor(a:yfiles.algorithms.Edge[]); /** * Creates a list that is initialized with the edges provided by the given EdgeCursor object. - * @param {yfiles.algorithms.IEdgeCursor} c - * @constructor + * @param c */ constructor(c:yfiles.algorithms.IEdgeCursor); /** * Creates an empty edge list. - * @constructor */ constructor(); /** * Returns an edge cursor for this edge list. - * @returns {yfiles.algorithms.IEdgeCursor} An edge cursor granting access to the edges within this list. + * @returns An edge cursor granting access to the edges within this list. */ edges():yfiles.algorithms.IEdgeCursor; /** * Returns the first edge in this list, or null when the list is empty. - * @returns {yfiles.algorithms.Edge} The first edge in the list. + * @returns The first edge in the list. */ firstEdge():yfiles.algorithms.Edge; /** * Returns an enumerator for this collection. - * @returns {yfiles.collections.IEnumerator.} + * @returns */ getEnumerator():yfiles.collections.IEnumerator; /** * Returns the last edge in this list, or null when the list is empty. - * @returns {yfiles.algorithms.Edge} The last edge in the list. + * @returns The last edge in the list. */ lastEdge():yfiles.algorithms.Edge; /** * Removes the first edge from this list and returns it. - * @returns {yfiles.algorithms.Edge} The first edge from the list. + * @returns The first edge from the list. */ popEdge():yfiles.algorithms.Edge; /** * Returns an edge array containing all elements of this list in the canonical order. - * @returns {Array.} + * @returns */ toEdgeArray():yfiles.algorithms.Edge[]; static $class:yfiles.lang.Class; @@ -75413,6 +75241,2119 @@ declare namespace system{ */ AVERAGE } + /** + * This class represents a line in the 2D-dimensional affine space. + *

    + * The line is defined by the equation ax + by + c = 0 + *

    + * @class + */ + export interface AffineLine extends Object{} + export class AffineLine { + /** + * Creates an affine line which is defined by two points. + * @param p1 + * @param p2 + */ + constructor(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint); + /** + * Creates an affine line which is defined by a point and a vector. + * @param p1 + * @param v + */ + constructor(p1:yfiles.algorithms.YPoint,v:yfiles.algorithms.YVector); + /** + * Returns the crossing of two lines. + *

    + * If the lines are parallel, null is returned. + *

    + * @param l1 + * @param l2 + * @returns + * @static + */ + static getCrossing(l1:yfiles.algorithms.AffineLine,l2:yfiles.algorithms.AffineLine):yfiles.algorithms.YPoint; + /** + * Projects an point on the line in direction of the X-axis. + * @param p + * @returns + */ + getXProjection(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Projects an point on the line in direction of the Y-axis. + * @param p + * @returns + */ + getYProjection(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Gets a from ax+by+c = 0 + * @type {number} + */ + a:number; + /** + * Gets b from ax+by+c = 0 + * @type {number} + */ + b:number; + /** + * Gets c from ax+by+c = 0 + * @type {number} + */ + c:number; + static $class:yfiles.lang.Class; + } + /** + * The handle of a segment of a borderline. + * @class + */ + export interface BorderLineSegment extends Object{} + export class BorderLineSegment { + /** + * Returns the segment's value at the given position. + *

    + * Note: In case the position lies outside the segments range, the calculated value might be invalid. As the segment is not + * aware of any offsets the position also must not include any offsets. + *

    + * @param position the position the value is retrieved for. + * @returns the segment's value at the given position. + */ + getValueAt(position:number):number; + /** + * Returns the next segment or null if there is no such segment. + * @returns + */ + next():yfiles.algorithms.BorderLineSegment; + /** + * Returns the previous segment or null if there is no such segment. + * @returns + */ + prev():yfiles.algorithms.BorderLineSegment; + /** + * Gets the end of this segment. + * @type {number} + */ + end:number; + static $class:yfiles.lang.Class; + } + /** + * This class can be used to easily model an orthogonal border line or sky-line. + *

    + * It provides methods for measuring the distance between different BorderLine instances, merging multiple instances, + * modifying and efficiently moving them around. + *

    + * @class + */ + export interface BorderLine extends Object{} + export class BorderLine { + /** + * Creates a new BorderLine from a single segment. + * @param min the beginning of this borderline + * @param max the ending of this borderline + * @param valueAtMin the value of the segment at the beginning of this borderline + * @param valueAtMax the value of the segment at the ending of this borderline + */ + constructor(min:number,max:number,valueAtMin:number,valueAtMax:number); + /** + * Creates a new BorderLine from a single segment. + * @param min the beginning of this borderline + * @param max the ending of this borderline + * @param value the value of the segment + */ + constructor(min:number,max:number,value:number); + /** + * Creates a new BorderLine with the given value from -Double.MAX_VALUE to Double.MAX_VALUE. + * @param value the value of the segment + */ + constructor(value:number); + /** + * Adds the given offset to the segments' positions. + *

    + * This method has complexity O(1). + *

    + * @param delta the delta to add to the positions + */ + addOffset(delta:number):void; + /** + * Adds the given offset to the current values of the whole borderline. + *

    + * This method has complexity O(1). + *

    + * @param delta the delta to add to the values + */ + addValueOffset(delta:number):void; + /** + * Convenience method that copies the actual data from the given argument to this instance. + * @param other the argument to retrieve the values from + */ + adoptValues(other:yfiles.algorithms.BorderLine):void; + /** + * Creates a copy of this borderline. + *

    + * Optionally negates the values or offsets. + *

    + * @param negateValues whether the values are negated + * @param negateOffsets whether the offsets are negated + * @returns the copy of the borderline + */ + createCopy(negateValues:boolean,negateOffsets:boolean):yfiles.algorithms.BorderLine; + /** + * Merges this borderline with the given borderline using the "maximum" policy. + *

    + * That means the resulting borderline will have greater value of both borderline on each position. If you imagine each + * borderline as a the upper border of a plane, the resulting borderline will be the upper border of the merged planes. + *

    + * @param other the other borderline + * @returns a new borderline that is the result of the merge + */ + createMax(other:yfiles.algorithms.BorderLine):yfiles.algorithms.BorderLine; + /** + * Merges this borderline with the given borderline using the "minimum" policy. + *

    + * That means the resulting borderline will have smaller value of both borderline on each position. If you imagine each + * borderline as a the lower border of a plane, the resulting borderline will be the lower border of the merged planes. + *

    + * @param other the other borderline + * @returns a new borderline that is the result of the merge + */ + createMin(other:yfiles.algorithms.BorderLine):yfiles.algorithms.BorderLine; + /** + * Returns the first segment or null if there is no such segment. + * @returns + */ + firstSegment():yfiles.algorithms.BorderLineSegment; + /** + * Calculates the minimal distance between this borderline and the other one. + *

    + * The other one is treated as if the values were all greater. + *

    + * @param greater + * @returns + */ + getDistanceTo(greater:yfiles.algorithms.BorderLine):number; + /** + * Returns the maximum position of the given segment. + * @param s the segment + * @returns + */ + getMax(s:yfiles.algorithms.BorderLineSegment):number; + /** + * Calculates the maximum value in the interval from->to. + * @param from + * @param to + * @returns + */ + getMaxValue(from:number,to:number):number; + /** + * Returns the minimum position of the given segment. + * @param s the segment + * @returns + */ + getMin(s:yfiles.algorithms.BorderLineSegment):number; + /** + * Calculates the minimum value in the interval from->to. + * @param from + * @param to + * @returns + */ + getMinValue(from:number,to:number):number; + /** + * Returns the segment at the given position. + * @param pos the position + * @returns + */ + getSegmentAt(pos:number):yfiles.algorithms.BorderLineSegment; + /** + * Returns the slope of the given segment. + * @param s the segment + * @returns + */ + getSlope(s:yfiles.algorithms.BorderLineSegment):number; + /** + * Returns the value of the minimum of the given segment. + *

    + * If the segment's slope is 0, it's the value of the whole segment. In case the slope differs from 0, it's the value of + * the start of the slope. + *

    + * @param s the segment + * @returns + */ + getValue(s:yfiles.algorithms.BorderLineSegment):number; + /** + * Returns the value that is set on this borderline at the specified position. + *

    + * The position must lie within the range of the segment. + *

    + * @param segment The segment whose value shall be returned. + * @param pos the position where the value will be retrieved. + * @returns the value + * @throws {Stubs.Exceptions.ArgumentError} if pos is outside the segment's range. + */ + getValueAt(segment:yfiles.algorithms.BorderLineSegment,pos:number):number; + /** + * Returns the value that is set on this borderline at the specified position. + *

    + * The position must lie within the range of the segment that is stored in cell. + *

    + * @param cell The list cell containing the segment whose value shall be returned. + * @param pos the position + * @returns the value + * @throws {Stubs.Exceptions.ArgumentError} if pos is outside the segment's range that is stored in cell. + */ + getValueAt(cell:yfiles.algorithms.ListCell,pos:number):number; + /** + * Returns the value that is set on this borderline at the specified position. + * @param pos the position + * @returns the value + * @throws {Stubs.Exceptions.IndexOutOfRangeError} if the position is outside of the borderline. + */ + getValueAt(pos:number):number; + /** + * Grows this BorderLine horizontally, so that the {@link yfiles.algorithms.BorderLine#getValueAt values} of the BorderLine stay the same however their {@link yfiles.algorithms.BorderLine#getMin start} and {@link yfiles.algorithms.BorderLine#getMax end} + * points are moved in the direction of toMin and toMax. + *

    + * This is useful for scenarios where a BorderLine is needed that consists of an enlarged border. + *

    + *

    + * Note that this method normalizes the segments, i.e., it transforms each segment with slope != 0 to a segment with slope + * == 0. + *

    + * @param toMin the delta by which the border should be extended towards -Infinity + * @param toMax the delta by which the border should be extended towards +Infinity + * @param positive whether the BorderLine should be interpreted to point in positive direction. This influences the direction into which a + * segment's border is extended. + */ + grow(toMin:number,toMax:number,positive:boolean):void; + /** + * Returns the last segment or null if there is no such segment. + * @returns + */ + lastSegment():yfiles.algorithms.BorderLineSegment; + /** + * Merges this borderline with the given borderline using the "maximum" policy. + * @param other the other borderline + */ + mergeWithMax(other:yfiles.algorithms.BorderLine):void; + /** + * Merges this borderline with the given borderline using the "minimum" policy. + * @param other the other borderline + */ + mergeWithMin(other:yfiles.algorithms.BorderLine):void; + /** + * Returns the next segment or null if there is no such segment. + * @param s + * @returns + */ + next(s:yfiles.algorithms.BorderLineSegment):yfiles.algorithms.BorderLineSegment; + /** + * Returns the previous segment or null if there is no such segment. + * @param s + * @returns + */ + prev(s:yfiles.algorithms.BorderLineSegment):yfiles.algorithms.BorderLineSegment; + /** + * Assures that all values in the given interval are greater or equal than the given value. + * @param min the lower end of the interval + * @param max the upper end of the interval + * @param value the smallest possible value for the interval + */ + setMaxValue(min:number,max:number,value:number):void; + /** + * Assures that all values in the given interval are less or equal than the given value. + * @param min the lower end of the interval + * @param max the upper end of the interval + * @param value the greatest possible value for the interval + */ + setMinValue(min:number,max:number,value:number):void; + /** + * Sets a specific interval to a slope starting at a given value. + * @param min the left side of the interval. + * @param max the right side of the interval. + * @param value the value at min where the slope starts. + * @param slope the slope of the segment in the given interval. + * @throws {Stubs.Exceptions.ArgumentError} if min is greater than max. + */ + setSloped(min:number,max:number,value:number,slope:number):void; + /** + * Sets a specific interval described by min and max to a given value. + * @param min the left side of the interval. + * @param max the right side of the interval. + * @param value the value for the whole interval. + */ + setValue(min:number,max:number,value:number):void; + /** + * Gets the smallest position of this borderline + * @type {number} + */ + min:number; + /** + * Gets the greatest position of this borderline + * @type {number} + */ + max:number; + /** + * Gets the minimum value that is set on this borderline + * @type {number} + */ + minValue:number; + /** + * Gets the maximum value that is set on this borderline + * @type {number} + */ + maxValue:number; + static $class:yfiles.lang.Class; + } + /** + * This class provides useful geometric primitives and advanced geometric algorithms. + * @class + * @static + */ + export interface Geom extends Object{} + export class Geom { + /** + * Calculates the convex hull for a set of points. + * @param points a list of {@link } objects + * @returns a list of {@link } objects that constitute the convex hull of the given points. The list contains points + * in counter clockwise order around the hull. The first point is the one with the smallest x coordinate. If two such + * points exist then of these points the one with the smallest y coordinate is chosen as the first one. + * @static + */ + static calcConvexHull(points:yfiles.algorithms.YList):yfiles.algorithms.YList; + /** + * Calculates the intersection point of two affine lines. + *

    + * Each line is given by two points. + *

    + * @param p1 one point on the first line. + * @param p2 another point on the first line. + * @param p3 one point on the second line. + * @param p4 another point on the second line. + * @returns the intersection point of the specified lines or null if there is no intersection. + * @static + */ + static calcIntersection(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint,p3:yfiles.algorithms.YPoint,p4:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Calculates the intersection point of two affine lines. + *

    + * Each line is given by a point and a direction vector. + *

    + * @param p1 origin point of the first line. + * @param d1 direction vector of the first line. + * @param p2 origin point of the second line. + * @param d2 direction vector of the second line. + * @returns the intersection point of the specified lines or null if there is no intersection. + * @static + */ + static calcIntersection(p1:yfiles.algorithms.YPoint,d1:yfiles.algorithms.YVector,p2:yfiles.algorithms.YPoint,d2:yfiles.algorithms.YVector):yfiles.algorithms.YPoint; + /** + * Calculates the intersection point of two affine lines. + *

    + * Each line is given by the coordinates of two points. + *

    + * @param x1 x-coordinate of one point on the first line. + * @param y1 y-coordinate of one point on the first line. + * @param x2 x-coordinate of another point on the first line. + * @param y2 y-coordinate of another point on the first line. + * @param x3 x-coordinate of one point on the second line. + * @param y3 y-coordinate of one point on the second line. + * @param x4 x-coordinate of another point on the second line. + * @param y4 y-coordinate of another point on the second line. + * @returns the intersection point of the specified lines or null if there is no intersection. + * @static + */ + static calcIntersection(x1:number,y1:number,x2:number,y2:number,x3:number,y3:number,x4:number,y4:number):yfiles.algorithms.YPoint; + /** + * Intersects the pair of specified source Rectangle2D objects and puts the result into the specified destination Rectangle2D + * object. + *

    + * If one or both of the source rectangles have negative width or height, the resulting rectangle will be located at (0,0) + * with a width and height of -1. One of the source rectangles can also be the destination to avoid creating a third + * Rectangle2D object, but in this case the original points of this source rectangle will be overwritten by this method. + *

    + * @param r1 the first of a pair of Rectangle2D objects to be intersected with each other + * @param r2 the second of a pair of Rectangle2D objects to be intersected with each other + * @param dest the Rectangle2D that holds the results of the intersection of r1 and r2 + * @returns + * @static + */ + static calcIntersection(r1:yfiles.algorithms.Rectangle2D,r2:yfiles.algorithms.Rectangle2D,dest:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; + /** + * Unions the pair of source Rectangle2D objects and puts the result into the specified destination Rectangle2D object. + *

    + * If one of the source rectangles has negative width or height, it is excluded from the union. If both source rectangles + * have negative width or height, the destination rectangle will become a copy of r1. One of the source rectangles can also + * be the destination to avoid creating a third Rectangle2D object, but in this case the original points of this source + * rectangle will be overwritten by this method. If the destination is null, a new Rectangle2D is created. + *

    + * @param r1 the first of a pair of Rectangle2D objects to be combined with each other + * @param r2 the second of a pair of Rectangle2D objects to be combined with each other + * @param dest the Rectangle2D that holds the results of the union of r1 and r2 + * @returns + * @static + */ + static calcUnion(r1:yfiles.algorithms.Rectangle2D,r2:yfiles.algorithms.Rectangle2D,dest:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; + /** + * Returns true iff the given points are collinear, i.e. + *

    + * all three points lie on a common line. + *

    + *

    + * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) == 0} + *

    + * @param p + * @param q + * @param r + * @returns + * @static + */ + static collinear(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; + /** + * Determines the distance of the point p to the line segment [l1, l2]. + * @param pointX the x coordinate of p + * @param pointY the y coordinate of p + * @param lineX1 the x coordinate of l1 + * @param lineY1 the y coordinate of l1 + * @param lineX2 the x coordinate of l2 + * @param lineY2 the y coordinate of l2 + * @returns + * @static + */ + static distanceToLineSegment(pointX:number,pointY:number,lineX1:number,lineY1:number,lineX2:number,lineY2:number):number; + /** + * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) > 0} + * @param p + * @param q + * @param r + * @returns + * @static + */ + static leftTurn(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; + /** + * Returns whether the two lines defined by the given coordinates intersect or not. + * @param x1 + * @param y1 + * @param x2 + * @param y2 + * @param x3 + * @param y3 + * @param x4 + * @param y4 + * @returns + * @static + */ + static linesIntersect(x1:number,y1:number,x2:number,y2:number,x3:number,y3:number,x4:number,y4:number):boolean; + /** + * Same as {@link yfiles.algorithms.Geom#orientation} with double values as arguments. + * @param px + * @param py + * @param qx + * @param qy + * @param rx + * @param ry + * @returns + * @static + */ + static orientation(px:number,py:number,qx:number,qy:number,rx:number,ry:number):number; + /** + * Returns the orientation of point r relative to the directed line from point p to point q. + *

    + * The given tuple of points is said to have positive orientation if p and q are distinct and r lies to the left of the + * oriented line passing through p and q and oriented from p to q. + *

    + *

    + * The tuple is said to have negative orientation if p and q are distinct and r lies to the right of the line, and the + * tuple is said to have orientation zero if the three points are collinear. + *

    + * @param p + * @param q + * @param r + * @returns +1 in the case of positive orientation, -1 in the case of negative orientation and 0 in the case of zero orientation. + * @static + */ + static orientation(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):number; + /** + * Determines the projection of the point p onto the line segment [l1, l2]. + *

    + * The resulting point is + *

    + *
      + *
    • the orthogonal projection of p onto the line through l1 and l2, iff the projection lies on the line segment [l1, l2]
    • + *
    • the end point of the line segment [l1, l2] that is closest to p, otherwise
    • + *
    + * @param pointX the x coordinate of p + * @param pointY the y coordinate of p + * @param lineX1 the x coordinate of l1 + * @param lineY1 the y coordinate of l1 + * @param lineX2 the x coordinate of l2 + * @param lineY2 the y coordinate of l2 + * @returns + * @static + */ + static projection(pointX:number,pointY:number,lineX1:number,lineY1:number,lineX2:number,lineY2:number):yfiles.algorithms.YPoint; + /** + * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) < 0} + * @param p + * @param q + * @param r + * @returns + * @static + */ + static rightTurn(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; + /** + * Returns +1 if point d lies left of the directed circle through points a, b, and c, 0 if a,b,c and d are cocircular, and + * -1 otherwise. + * @param a + * @param b + * @param c + * @param d + * @returns + * @static + */ + static sideOfCircle(a:yfiles.algorithms.YPoint,b:yfiles.algorithms.YPoint,c:yfiles.algorithms.YPoint,d:yfiles.algorithms.YPoint):number; + /** + * Converts the given degree value from radian to angular + * @param angrad + * @returns + * @static + */ + static toDegrees(angrad:number):number; + /** + * Converts the given degree value from angular to radian. + * @param angdeg + * @returns + * @static + */ + static toRadians(angdeg:number):number; + static $class:yfiles.lang.Class; + } + /** + * This is an interface for a sequence of instances of LineSegment. + * @interface + * @implements {yfiles.algorithms.ICursor} + */ + export interface ILineSegmentCursor extends Object,yfiles.algorithms.ICursor{ + /** + * Gets the instance of LineSegment the cursor is currently pointing on. + * @abstract + * @type {yfiles.algorithms.LineSegment} + */ + lineSegment:yfiles.algorithms.LineSegment; + } + var ILineSegmentCursor:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This interface describes a 2-dimensional object which has a finite bounding box. + * @interface + */ + export interface IPlaneObject extends Object{ + /** + * Gets the smallest Rectangle which contains the object. + * @abstract + * @type {yfiles.algorithms.YRectangle} + */ + boundingBox:yfiles.algorithms.YRectangle; + } + var IPlaneObject:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This is an interface for a sequence of instances of YPoint. + * @interface + * @implements {yfiles.algorithms.ICursor} + */ + export interface IPointCursor extends Object,yfiles.algorithms.ICursor{ + /** + * Gets the instance of YPoint the cursor is currently pointing on. + * @abstract + * @type {yfiles.algorithms.YPoint} + */ + point:yfiles.algorithms.YPoint; + } + var IPointCursor:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Double-precision immutable insets representation. + * @class + * @implements {yfiles.lang.ICloneable} + */ + export interface Insets extends Object,yfiles.lang.ICloneable{} + export class Insets { + /** + * Creates a new instance with the given values + * @param top The new top inset value + * @param left The new left inset value + * @param bottom The new bottom inset value + * @param right The new right inset value + */ + constructor(top:number,left:number,bottom:number,right:number); + /** + * + * @returns + */ + clone():Object; + /** + * Creates a {@link yfiles.geometry.Insets} from a given {@link yfiles.algorithms.Insets}. + * @returns The {@link }. + */ + toInsets():yfiles.geometry.Insets; + /** + * The inset from the top. + * @const + * @type {number} + */ + top:number; + /** + * The inset from the left. + * @const + * @type {number} + */ + left:number; + /** + * The inset from the bottom. + * @const + * @type {number} + */ + bottom:number; + /** + * The inset from the right. + * @const + * @type {number} + */ + right:number; + static $class:yfiles.lang.Class; + } + /** + * An instance of this interface handles intersections found by the IntersectionAlgorithm, + * @interface + */ + export interface IIntersectionHandler extends Object{ + /** + * This method is called at every intersection. + * @param a + * @param b + * @abstract + */ + checkIntersection(a:Object,b:Object):void; + } + var IIntersectionHandler:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This class calculates the intersection of rectangles in the plane with the help of a sweep-line algorithm. + *

    + *
    The complexity is O(n log n + s) where n is the number of rectangles and s the number of intersections. + *

    + * @class + * @static + */ + export interface IntersectionAlgorithm extends Object{} + export class IntersectionAlgorithm { + /** + * Calculates the intersections of rectangles in the plane. + *

    + * Every found intersection is reported to an + * IntersectionHandler. Rectangles with negative size are completely ignored by this implementation (i.e. never generate + * intersections) + *

    + * @param objects a list of PlaneObject objects. + * @param iHandler intersections are reported to this class. + * @static + */ + static intersect(objects:yfiles.algorithms.YList,iHandler:yfiles.algorithms.IIntersectionHandler):void; + static $class:yfiles.lang.Class; + } + /** + * This class represents a line segment in the plane. + *

    + * A line segment is defined by its two end points. + *

    + * @class + * @implements {yfiles.algorithms.IPlaneObject} + */ + export interface LineSegment extends Object,yfiles.algorithms.IPlaneObject{} + export class LineSegment { + /** + * Returns a new LineSegment. + * @param p1 the first end point of the line segment. + * @param p2 the second end point of the line segment. + */ + constructor(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint); + /** + * Checks whether a line segment intersects a paraxial box. + *

    + * Implemented using the Cohen-Sutherland algorithm. + *

    + * @param boxX1 x-coordinate of the upper left corner of the box + * @param boxY1 y-coordinate of the upper left corner of the box + * @param boxX2 x-coordinate of the lower right corner of the box + * @param boxY2 y-coordinate of the lower right corner of the box + * @param sX1 x-coordinate of the first end point of the line segment + * @param sY1 y-coordinate of the first end point of the line segment + * @param sX2 x-coordinate of the second end point of the line segment + * @param sY2 y-coordinate of the second end point of the line segment + * @returns true if the line segment intersects the box, false otherwise. + * @static + */ + static boxIntersectsSegment(boxX1:number,boxY1:number,boxX2:number,boxY2:number,sX1:number,sY1:number,sX2:number,sY2:number):boolean; + /** + * Checks whether a line segment intersects a box. + *

    + * Implemented using the Cohen-Sutherland algorithm. + *

    + * @param box A rectangle + * @param x1 x-coordinate of the first end point of the line segment + * @param y1 y-coordinate of the first end point of the line segment + * @param x2 x-coordinate of the second end point of the line segment + * @param y2 y-coordinate of the second end point of the line segment + * @returns true if the line segment intersects the box, false otherwise. + * @static + */ + static boxIntersectsSegment(box:yfiles.algorithms.YRectangle,x1:number,y1:number,x2:number,y2:number):boolean; + /** + * Checks whether a line segment intersects a box. + * @param box A rectangle. + * @param s first end point of the line segment. + * @param t second end point of the line segment. + * @returns true if the line segments intersects the box, false otherwise. + * @static + */ + static boxIntersectsSegment(box:yfiles.algorithms.YRectangle,s:yfiles.algorithms.YPoint,t:yfiles.algorithms.YPoint):boolean; + /** + * Checks whether a given point lies on this line segment. + * @param point an arbitrary point. + * @returns true if the line segments intersects the box, false otherwise. + */ + contains(point:yfiles.algorithms.YPoint):boolean; + /** + * Returns intersection point between the two line segments, if there is one or null if the two line segments do not + * intersect. + * @param s1 first line segment + * @param s2 second line segment + * @returns + * @static + */ + static getIntersection(s1:yfiles.algorithms.LineSegment,s2:yfiles.algorithms.LineSegment):yfiles.algorithms.YPoint; + /** + * Checks whether the line segment intersects a point. + * @param p a point + * @returns true if the line segments intersects the given point, false otherwise. + */ + intersects(p:yfiles.algorithms.YPoint):boolean; + /** + * Checks whether the line segment intersects a box. + * @param box A rectangle. + * @returns true if the line segments intersects the box, false otherwise. + */ + intersects(box:yfiles.algorithms.YRectangle):boolean; + /** + * Determines if the given points define a horizontal line segment. + *

    + * This methods allows for y-coordinate differences of up to 1e-8. + *

    + * @param p1 + * @param p2 + * @returns true if the given points define a horizontal line segment; false otherwise. + * @static + */ + static isHorizontalSegment(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):boolean; + /** + * Returns if the projection on the X axis of the line segment covers a certain point on the X Axis. + * @param x + * @returns + */ + isInXIntervall(x:number):boolean; + /** + * Returns if the projection on the Y axis of the line segment covers a certain point on the Y Axis. + * @param y + * @returns + */ + isInYIntervall(y:number):boolean; + /** + * Determines if the given points define a vertical line segment. + *

    + * This methods allows for x-coordinate differences of up to 1e-8. + *

    + * @param p1 + * @param p2 + * @returns true if the given points define a vertical line segment; false otherwise. + * @static + */ + static isVerticalSegment(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):boolean; + /** + * Returns the length of the line segment, this is the value of the Euclidean norm. + * @returns an value > 0. + */ + length():number; + /** + * Returns the affine line defined by the end points of the line segment. + * @returns + */ + toAffineLine():yfiles.algorithms.AffineLine; + /** + * Returns the vector pointing from the first end point to the second end point of the line segment. + * @returns + */ + toYVector():yfiles.algorithms.YVector; + /** + * Gets if this segment is considered vertical, i.e. + *

    + * the x values of the end point differ less then 0.00000001 + *

    + * @type {boolean} + */ + isVertical:boolean; + /** + * Gets if the interval is horizontal. + * @type {boolean} + */ + isHorizontal:boolean; + /** + * Gets the first end point of the line segment. + * @type {yfiles.algorithms.YPoint} + */ + firstEndPoint:yfiles.algorithms.YPoint; + /** + * Gets the second end point of the line segment. + * @type {yfiles.algorithms.YPoint} + */ + secondEndPoint:yfiles.algorithms.YPoint; + /** + * Gets the y value of the line on x coordinate 0. + * @type {number} + */ + xOffset:number; + /** + * Gets the slope of the line segment. + * @type {number} + */ + slope:number; + /** + * Gets the smallest Rectangle which contains the object. + * @type {yfiles.algorithms.YRectangle} + */ + boundingBox:yfiles.algorithms.YRectangle; + /** + * Gets the distance from start to end point in x-coordinates. + * @type {number} + */ + deltaX:number; + /** + * Gets the distance from start to end point in y-coordinates. + * @type {number} + */ + deltaY:number; + static $class:yfiles.lang.Class; + } + /** + * Represents a two-dimensional point located at (x, y). + * @class + * @implements {yfiles.lang.ICloneable} + */ + export interface Point2D extends Object,yfiles.lang.ICloneable{} + export class Point2D { + /** + * Creates a new instance at the given location. + * @param x The x coordinate of the new point + * @param y The x coordinate of the new point + */ + constructor(x:number,y:number); + /** + * Creates a new instance that is located at (0, 0) + */ + constructor(); + /** + * Creates a new instance of this class that has the same values as this objects. + * @returns a new instance of this class that has the same values as this objects. + */ + clone():Object; + /** + * Calculates the distance between this points and another one, given as its coordinates. + * @param px The x coordinate of the second point. + * @param py The y coordinate of the second point. + * @returns the distance between this points and another one, given as its coordinates. + */ + distance(px:number,py:number):number; + /** + * Calculates the distance between this points and another one. + * @param p The second point. + * @returns the distance between this points and another one. + */ + distance(p:yfiles.algorithms.Point2D):number; + /** + * Calculates the distance between two points, given as their coordinates. + * @param x1 The x coordinate of the first point. + * @param y1 The y coordinate of the first point. + * @param x2 The x coordinate of the second point. + * @param y2 The y coordinate of the second point. + * @returns the distance between two points, given as their coordinates. + * @static + */ + static distance(x1:number,y1:number,x2:number,y2:number):number; + /** + * Calculates the squared distance between this points and another one, given as its coordinates. + * @param px The x coordinate of the second point. + * @param py The y coordinate of the second point. + * @returns the squared distance between this points and another one, given as its coordinates. + */ + distanceSq(px:number,py:number):number; + /** + * Calculates the squared distance between this points and another one. + * @param p The second point. + * @returns the squared distance between this points and another one. + */ + distanceSq(p:yfiles.algorithms.Point2D):number; + /** + * Calculates the squared distance between two points, given as their coordinates. + * @param x1 The x coordinate of the first point. + * @param y1 The y coordinate of the first point. + * @param x2 The x coordinate of the second point. + * @param y2 The y coordinate of the second point. + * @returns the squared distance between two points, given as their coordinates. + * @static + */ + static distanceSq(x1:number,y1:number,x2:number,y2:number):number; + /** + * Sets the location of this point to the given coordinates. + * @param x the new x coordinate + * @param y the new y coordinate + */ + setLocation(x:number,y:number):void; + /** + * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.Point2D}. + * @returns The {@link }. + */ + toPoint():yfiles.geometry.Point; + /** + * Sets the location of this point to the same values as for the given point. + * @type {yfiles.algorithms.Point2D} + */ + location:yfiles.algorithms.Point2D; + /** + * Gets the x coordinate of this point. + * @type {number} + */ + x:number; + /** + * Gets the y coordinate of this point. + * @type {number} + */ + y:number; + static $class:yfiles.lang.Class; + } + /** + * Represents a two-dimensional rectangle of size (width x height), located at the point (x, y). + * @class + * @implements {yfiles.lang.ICloneable} + */ + export interface Rectangle2D extends Object,yfiles.lang.ICloneable{} + export class Rectangle2D { + /** + * Creates a new rectangle of the specified size at the specified location. + * @param x the x-coordinate of the upper left corner of the created rectangle. + * @param y the y-coordinate of the upper left corner of the created rectangle. + * @param width the width of the created rectangle. + * @param height the height of the created rectangle. + */ + constructor(x:number,y:number,width:number,height:number); + /** + * Creates a new rectangle of size (0 x 0) at the location (0, 0). + */ + constructor(); + /** + * Adds a point, specified by its coordinates, to this rectangle. + *

    + * The rectangle will be grown if necessary. Note that for points that would lie on the right or bottom border of the + * rectangle, {@link yfiles.algorithms.Rectangle2D#contains} will still return false for the added point. + *

    + * @param px the x coordinate of the point to add + * @param py the y coordinate of the point to add + */ + add(px:number,py:number):void; + /** + * Adds a rectangle to this rectangle. + *

    + * The rectangle will be grown to the union of both rectangles + *

    + * @param r the rectangle to add + */ + add(r:yfiles.algorithms.Rectangle2D):void; + /** + * Creates a new instance of this class that has the same values as this objects. + * @returns a new instance of this class that has the same values as this objects. + */ + clone():Object; + /** + * Checks whether this rectangle completely contains the second specified rectangle. + * @param x the x coordinate of the second rectangle. + * @param y the y coordinate of the second rectangle. + * @param width the width coordinate of the second rectangle. + * @param height the height coordinate of the second rectangle. + * @returns true if this rectangle contains the second one + */ + contains(x:number,y:number,width:number,height:number):boolean; + /** + * Checks if the point specified by the given coordinates is contained in this rectangle. + * @param x the x-coordinate of the point. + * @param y the y-coordinate of the point. + * @returns true if the specified point is contained in this rectangle; false otherwise. + */ + contains(x:number,y:number):boolean; + /** + * Checks whether this rectangle completely contains the second specified rectangle. + * @param rect the rectangle to check for containment + * @returns true if this rectangle contains the second one + */ + contains(rect:yfiles.algorithms.Rectangle2D):boolean; + /** + * Calculates the intersection of this rectangle with the given rectangle and returns the result as new rectangle. + * @param r a rectangle to intersect with this rectangle. + * @returns a new rectangle that represents the calculated intersection. + */ + createIntersection(r:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; + /** + * Calculates the union of this rectangle with the given rectangle and returns the result as new rectangle. + * @param r a rectangle to union with this rectangle. + * @returns a new rectangle that represents the calculated union. + */ + createUnion(r:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; + /** + * Calculates the intersection of the first and second specified rectangle and sets the resulting location and size to the + * third rectangle. + * @param src1 the first rectangle to intersect. + * @param src2 the second rectangle to intersect. + * @param dst the rectangle to which the result is set. + * @static + */ + static intersect(src1:yfiles.algorithms.Rectangle2D,src2:yfiles.algorithms.Rectangle2D,dst:yfiles.algorithms.Rectangle2D):void; + /** + * Checks whether this rectangle and the second specified rectangle intersect. + * @param x the x coordinate of the second rectangle. + * @param y the y coordinate of the second rectangle. + * @param width the width coordinate of the second rectangle. + * @param height the height coordinate of the second rectangle. + * @returns true if both rectangles intersect + */ + intersects(x:number,y:number,width:number,height:number):boolean; + /** + * Checks whether this rectangle and the second specified rectangle intersect. + * @param rect the rectangle to check for intersection + * @returns true if both rectangles intersect + */ + intersects(rect:yfiles.algorithms.Rectangle2D):boolean; + /** + * Checks if the line segment specified by the given coordinates intersects this rectangle. + * @param x1 the x-coordinate of the first end point of the line. + * @param y1 the y-coordinate of the first end point of the line. + * @param x2 the x-coordinate of the other end point of the line. + * @param y2 the y-coordinate of the other end point of the line. + * @returns true if the specified line intersects this rectangle; false otherwise. + */ + intersectsLine(x1:number,y1:number,x2:number,y2:number):boolean; + /** + * Sets the outer bounds of this rectangle based on the specified location and size. + * @param x the new x-coordinate of the upper left corner. + * @param y the new y-coordinate of the upper left corner. + * @param width the new width. + * @param height the new height. + */ + setFrame(x:number,y:number,width:number,height:number):void; + /** + * Sets the outer bounds of this rectangle based on the specified new center and corner. + * @param centerX the x-coordinate of the new center of this rectangle. + * @param centerY the y-coordinate of the new center of this rectangle. + * @param cornerX the x-coordinate of any new corner of this rectangle. + * @param cornerY the y-coordinate of any new corner of this rectangle. + */ + setFrameFromCenter(centerX:number,centerY:number,cornerX:number,cornerY:number):void; + /** + * Sets the outer bounds of this rectangle based on the specified new center and corner. + * @param center the new center of this rectangle. + * @param corner any new corner of this rectangle. + */ + setFrameFromCenter(center:yfiles.algorithms.Point2D,corner:yfiles.algorithms.Point2D):void; + /** + * Sets the outer bounds of this rectangle based on the end points of one of its diagonals. + * @param x1 the x-coordinate of the first end point of a diagonal. + * @param y1 the y-coordinate of the first end point of a diagonal. + * @param x2 the x-coordinate of the other end point of a diagonal. + * @param y2 the y-coordinate of the other end point of a diagonal. + */ + setFrameFromDiagonal(x1:number,y1:number,x2:number,y2:number):void; + /** + * Sets the outer bounds of this rectangle based on the end points of one of its diagonals. + * @param p1 the first end point of a diagonal. + * @param p2 the other end point of a diagonal. + */ + setFrameFromDiagonal(p1:yfiles.algorithms.Point2D,p2:yfiles.algorithms.Point2D):void; + /** + * Sets the location and size of this rectangle to the specified values. + * @param x the new x-coordinate of the upper left corner. + * @param y the new y-coordinate of the upper left corner. + * @param width the new width. + * @param height the new height. + */ + setRect(x:number,y:number,width:number,height:number):void; + /** + * Creates a {@link yfiles.geometry.Rect} from a given {@link yfiles.algorithms.Rectangle2D}. + * @returns The {@link }. + */ + toRect():yfiles.geometry.Rect; + /** + * Calculates the union of the first and second specified rectangle and sets the resulting location and size to the third + * rectangle. + * @param src1 the first rectangle to union. + * @param src2 the second rectangle to union. + * @param dst the rectangle to which the result is set. + * @static + */ + static union(src1:yfiles.algorithms.Rectangle2D,src2:yfiles.algorithms.Rectangle2D,dst:yfiles.algorithms.Rectangle2D):void; + /** + * Gets or sets the outer bounds of this rectangle in double coordinates. + * @type {yfiles.algorithms.Rectangle2D} + */ + frame:yfiles.algorithms.Rectangle2D; + /** + * Sets the location and size of this rectangle to be similar to the specified rectangle. + * @type {yfiles.algorithms.Rectangle2D} + */ + rect:yfiles.algorithms.Rectangle2D; + /** + * Gets the x coordinate of the upper left corner. + * @type {number} + */ + x:number; + /** + * Gets the y coordinate of the upper left corner. + * @type {number} + */ + y:number; + /** + * Gets the width of this rectangle. + * @type {number} + */ + width:number; + /** + * Gets the height of this rectangle. + * @type {number} + */ + height:number; + /** + * Gets whether this instance is empty, i.e. + *

    + * covers no area. + *

    + * @type {boolean} + */ + empty:boolean; + /** + * Gets the smallest x coordinate of this rectangle. + * @type {number} + */ + minX:number; + /** + * Gets the smallest y coordinate of this rectangle. + * @type {number} + */ + minY:number; + /** + * Gets the largest x coordinate of this rectangle. + * @type {number} + */ + maxX:number; + /** + * Gets the largest y coordinate of this rectangle. + * @type {number} + */ + maxY:number; + /** + * Gets the x coordinate of the center point of this rectangle. + * @type {number} + */ + centerX:number; + /** + * Gets the y coordinate of the center point of this rectangle. + * @type {number} + */ + centerY:number; + /** + * Gets the bounds of this instance in double precision. + * @type {yfiles.algorithms.Rectangle2D} + */ + bounds2D:yfiles.algorithms.Rectangle2D; + static $class:yfiles.lang.Class; + } + /** + * This class provides algorithms for the triangulation of point sets in the plane. + * @class + * @static + */ + export interface Triangulator extends Object{} + export class Triangulator { + /** + * Computes a Delauney triangulation of the given points. + *

    + * A Delauney triangulation is a triangulation such that none of the given points is inside the circumcircle of any of the + * calculated triangles. + *

    + *

    + * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the + * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to + * construct all faces of the plane graph and to determine its outer face. + *

    + * @param result a graph whose nodes represent the points that need to be triangulated. + * @param pointData must provide the location (YPoint) for each node in the given graph. + * @param revMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information + * will be available. + * @returns an edge on the outer face of the result graph. + * @static + */ + static calcDelauneyTriangulation(result:yfiles.algorithms.Graph,pointData:yfiles.algorithms.IDataProvider,revMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; + /** + * Computes a triangulation of the given points. + *

    + * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the + * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to + * construct all faces of the plane graph and to determine its outer face. + *

    + * @param points the point set to be triangulated. The points must be provided as a YList of YPoints. + * @param result the resulting triangulation + * @param resultMap the node map that forms the link between a point and a node. + * @param reverseEdgeMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information + * will be available. + * @returns an edge on the outer face of the result graph. + * @static + */ + static triangulatePoints(points:yfiles.algorithms.YList,result:yfiles.algorithms.Graph,resultMap:yfiles.algorithms.INodeMap,reverseEdgeMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; + /** + * Computes a triangulation of the given points. + *

    + * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the + * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to + * construct all faces of the plane graph and to determine its outer face. + *

    + * @param result a graph whose nodes represent the points that need to be triangulated. + * @param pointData must provide the location (YPoint) for each node in the given graph. + * @param reverseEdgeMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information + * will be available. + * @returns an edge on the outer face of the result graph. + * @static + */ + static triangulatePoints(result:yfiles.algorithms.Graph,pointData:yfiles.algorithms.IDataProvider,reverseEdgeMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; + static $class:yfiles.lang.Class; + } + /** + * This class represents the size of an object. + *

    + * An instance of this class implements the immutable design pattern. + *

    + * @class + * @implements {yfiles.lang.IComparable} + */ + export interface YDimension extends Object,yfiles.lang.IComparable{} + export class YDimension { + /** + * Creates a new YDimension2D object for given size. + * @param width + * @param height + */ + constructor(width:number,height:number); + /** + * + * @param o + * @returns + */ + compareTo(o:Object):number; + /** + * Creates a {@link yfiles.geometry.Size} from a given {@link yfiles.algorithms.YDimension}. + * @returns The {@link }. + */ + toSize():yfiles.geometry.Size; + /** + * Gets the width of the dimension object. + * @type {number} + */ + width:number; + /** + * Gets the height of the dimension object. + * @type {number} + */ + height:number; + static $class:yfiles.lang.Class; + } + /** + * An oriented rectangle in 2D coordinate space with double precision coordinates. + *

    + * The rectangle's height extends from its {@link yfiles.algorithms.YOrientedRectangle#anchor anchor point} in the direction of its up + * vector ({@link yfiles.algorithms.YOrientedRectangle#upX ux}, {@link yfiles.algorithms.YOrientedRectangle#upY uy}). Its width extends from its {@link yfiles.algorithms.YOrientedRectangle#anchor anchor point} in + * direction (-uy, ux) (i.e. perpendicular to the up vector). This means that an oriented rectangle with anchor point (0, 0) width + * 100, height 10, and up vector (0, -1) is a paraxial rectangle with upper left corner (0, -10) and lower right corner + * (100, 0). + *

    + * @class + * @implements {yfiles.algorithms.IPlaneObject} + */ + export interface YOrientedRectangle extends Object,yfiles.algorithms.IPlaneObject{} + export class YOrientedRectangle { + /** + * Creates a new instance using the provided rectangle's values to initialize anchor, size, and up vector. + * @param rect the provided rectangle. + */ + constructor(rect:yfiles.algorithms.YOrientedRectangle); + /** + * Creates a new instance using the provided rectangle's values to initialize anchor and size. + *

    + * The oriented rectangle's up vector will be (0, -1). + *

    + * @param rect the provided rectangle. + */ + constructor(rect:yfiles.algorithms.YRectangle); + /** + * Creates a new instance using the provided values to initialize anchor, size, and up vector. + * @param anchorX The x coordinate of the anchor of the oriented rectangle. + * @param anchorY The y coordinate of the anchor of the oriented rectangle. + * @param width The width of the rectangle. + * @param height The height of the rectangle. + * @param upX The x component of the up vector. + * @param upY The y component of the up vector. + */ + constructor(anchorX:number,anchorY:number,width:number,height:number,upX:number,upY:number); + /** + * Creates a new instance using the provided values to initialize anchor and size. + *

    + * The oriented rectangle's up vector will be (0, -1). + *

    + * @param anchorX The x coordinate of the anchor of the oriented rectangle. + * @param anchorY The y coordinate of the anchor of the oriented rectangle. + * @param width The width of the rectangle. + * @param height The height of the rectangle. + */ + constructor(anchorX:number,anchorY:number,width:number,height:number); + /** + * Creates a new instance using the provided values to initialize anchor, size, and up vector. + * @param position The provider for the dynamic anchor of this instance. + * @param size The provider for the dynamic size of this instance. + * @param upVector The up vector. + */ + constructor(position:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,upVector:yfiles.algorithms.YVector); + /** + * Creates a new instance using the provided values to initialize the anchor and size. + *

    + * The oriented rectangle's up vector will be (0, -1). + *

    + * @param anchor The provider for the dynamic anchor of this instance. + * @param size The provider for the dynamic size of this instance. + */ + constructor(anchor:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension); + /** + * Copies the actual values from the given OrientedRectangle to this instance. + * @param other the OrientedRectangle to retrieve the values from + */ + adoptValues(other:yfiles.algorithms.YOrientedRectangle):void; + /** + * Determines the four corner points of an oriented rectangle. + * @param rect The rectangle to determine the bounds. + * @returns the array of corner points. + * @static + */ + static calcPoints(rect:yfiles.algorithms.YOrientedRectangle):yfiles.algorithms.YPoint[]; + /** + * Determines the coordinates of the four corners of an oriented rectangle. + * @param rect The rectangle to determine the bounds. + * @returns the array of coordinates of the corner points in which each even index has the x-coordinate and each odd index the + * y-coordinate + * @static + */ + static calcPointsInDouble(rect:yfiles.algorithms.YOrientedRectangle):number[]; + /** + * Determines whether or not the specified point lies inside this oriented rectangle. + * @param x the x-coordinate of the point to check. + * @param y the y-coordinate of the point to check. + * @param [closed=false] if true, all points on the border of the rectangle are considered to be contained. + * @returns true iff the specified point lies inside; false otherwise. + */ + contains(x:number,y:number,closed?:boolean):boolean; + /** + * Determines whether the given rectangle r1 contains rectangle r2, using an epsilon value. + * @param r1 The first rectangle. + * @param r2 The second rectangle. + * @param eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * or equal to that value, it will be considered a hit. + * @returns true iff the r1 contains r2. + * @static + */ + static contains(r1:yfiles.algorithms.YOrientedRectangle,r2:yfiles.algorithms.YOrientedRectangle,eps:number):boolean; + /** + * Determines whether the given oriented rectangle contains the provided point, using an epsilon value. + * @param rect The rectangle. + * @param p The point to test. + * @param eps fuzziness range. A positive value allows for fuzzy hit testing. If a point lies outside the given rectangle, but its + * distance is less than or equal to that value, it will be considered a hit. + * @returns true if the point lies inside the rectangle; false otherwise. + * @static + */ + static contains(rect:yfiles.algorithms.YOrientedRectangle,p:yfiles.algorithms.YPoint,eps:number):boolean; + /** + * Determines whether the given oriented rectangle contains the provided point, using an epsilon value. + * @param rect The rectangle. + * @param x x-coordinate of the point to test. + * @param y y-coordinate of the point to test. + * @param eps fuzziness range. A positive value allows for fuzzy hit testing. If a point lies outside the given rectangle, but its + * distance is less than or equal to that value, it will be considered a hit. + * @returns true if the point lies inside the rectangle; false otherwise. + * @static + */ + static contains(rect:yfiles.algorithms.YOrientedRectangle,x:number,y:number,eps:number):boolean; + /** + * Creates a new OrientedRectangle instance whose anchor point is moved by the specified distance values, but has the same + * width, height, and up vector as this rectangle. + * @param dx the distance to move the anchor point in x-direction. A positive value means "move" to the right, a negative value means + * "move" to the left. + * @param dy the distance to move the anchor point in y-direction. A positive value means "move" downwards, a negative value means + * "move" upwards. + * @returns a new OrientedRectangle instance whose anchor point is moved by the specified distance values. + */ + getMovedInstance(dx:number,dy:number):yfiles.algorithms.YOrientedRectangle; + /** + * Creates a new OrientedRectangle instance that has the specified width and height, but has the same anchor point and up + * vector as this rectangle. + * @param width the width of the new rectangle. + * @param height the height of the new rectangle. + * @returns a new OrientedRectangle instance that has the specified width and height. + */ + getResizedInstance(width:number,height:number):yfiles.algorithms.YOrientedRectangle; + /** + * Determines an intersection point of the specified oriented rectangle and the specified line segment. + *

    + * Note: there might be more than one intersection point. However this method only returns one intersection point or null + * if there is no intersection. + *

    + * @param rect + * @param line + * @param eps + * @returns an intersection point of the specified oriented rectangle and the specified line segment or null if the rectangle and + * the segment do not intersect. + * @static + */ + static intersectionPoint(rect:yfiles.algorithms.YOrientedRectangle,line:yfiles.algorithms.LineSegment,eps:number):yfiles.algorithms.YPoint; + /** + * Determines whether or not the specified oriented rectangle and the specified line segment intersect. + * @param rect + * @param line + * @param eps + * @returns true if the rectangle and the segment intersect and false otherwise. + * @static + */ + static intersects(rect:yfiles.algorithms.YOrientedRectangle,line:yfiles.algorithms.LineSegment,eps:number):boolean; + /** + * Determines whether a rectangle intersects an oriented rectangle, given an epsilon. + * @param orientedRectangle The oriented rectangle to test. + * @param rectangle The rectangle to test. + * @param eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * or equal to that value, it will be considered a hit. + * @returns Whether they have a non-empty intersection. + * @static + */ + static intersects(orientedRectangle:yfiles.algorithms.YOrientedRectangle,rectangle:yfiles.algorithms.YRectangle,eps:number):boolean; + /** + * Moves this rectangle by applying the offset to the anchor. + * @param dx The x offset to move the rectangle's position by. + * @param dy The y offset to move the rectangle's position by. + */ + moveBy(dx:number,dy:number):void; + /** + * Sets the anchor of this rectangle. + * @param x the new x-coordinate of the anchor point. + * @param y the new y-coordinate of the anchor point. + */ + setAnchor(x:number,y:number):void; + /** + * Sets the anchor of the OrientedRectangle so that the center of the rectangle coincides with the given coordinate pair. + * @param cx The x coordinate of the center. + * @param cy The y coordinate of the center. + */ + setCenter(cx:number,cy:number):void; + /** + * Sets the size of this rectangle. + * @param width the new width. + * @param height the new height. + */ + setSize(width:number,height:number):void; + /** + * Sets the components of the up vector to the new values. + * @param upX The x component of the normalized up vector. + * @param upY The y component of the normalized up vector. + */ + setUpVector(upX:number,upY:number):void; + /** + * Creates an immutable {@link yfiles.geometry.IOrientedRectangle} from a given {@link yfiles.algorithms.YOrientedRectangle}. + * @returns The {@link }. + */ + toImmutableOrientedRectangle():yfiles.geometry.IOrientedRectangle; + /** + * Gets whether this instance has negative width or height. + * @type {boolean} + */ + empty:boolean; + /** + * Gets or sets the anchor of this oriented rectangle. + * @type {yfiles.algorithms.YPoint} + */ + anchor:yfiles.algorithms.YPoint; + /** + * Gets the x-coordinate of this rectangle's anchor point. + * @type {number} + */ + anchorX:number; + /** + * Gets the y-coordinate of this rectangle's anchor point. + * @type {number} + */ + anchorY:number; + /** + * Gets or sets the size of this rectangle. + * @type {yfiles.algorithms.YDimension} + */ + size:yfiles.algorithms.YDimension; + /** + * Gets the width of this rectangle. + * @type {number} + */ + width:number; + /** + * Gets the height of this rectangle. + * @type {number} + */ + height:number; + /** + * Gets the x-component of this rectangle's up vector. + * @type {number} + */ + upX:number; + /** + * Gets the y-component of this rectangle's up vector. + * @type {number} + */ + upY:number; + /** + * Gets or sets the angle (measured in radians) of this rectangle. + *

    + * The angle of an oriented rectangle is the angle between the vector (0, -1) and the rectangle's up vector in counter + * clockwise order. An angle of 0 means the up vector points up in direction (0, -1). + *

    + * @type {number} + */ + angle:number; + /** + * Gets or sets the current center of the oriented rectangle. + * @type {yfiles.algorithms.YPoint} + */ + center:yfiles.algorithms.YPoint; + /** + * Calculates the paraxial bounding box of this oriented rectangle. + * @type {yfiles.algorithms.YRectangle} + */ + boundingBox:yfiles.algorithms.YRectangle; + static $class:yfiles.lang.Class; + } + /** + * This class represents a point in the plane with double coordinates. + *

    + * This class implements the immutable design pattern. + *

    + * @class + * @implements {yfiles.lang.IComparable} + * @final + */ + export interface YPoint extends Object,yfiles.lang.IComparable{} + export class YPoint { + /** + * Creates a new YPoint object for a given position. + * @param x the x coordinate of the point. + * @param y the y coordinate of the point. + */ + constructor(x:number,y:number); + /** + * Creates a new YPoint at location (0,0) + */ + constructor(); + /** + * Adds two points and returns the result. + * @param p1 an arbitrary instance of YPoint. + * @param p2 an arbitrary instance of YPoint. + * @returns + * @static + */ + static add(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Comparable implementation. + *

    + * YPoints are ordered by ascending x-coordinates. If the x-coordinates of two points equal, then these points are ordered + * by ascending y-coordinates. + *

    + * @param o + * @returns + */ + compareTo(o:Object):number; + /** + * Returns the euclidean distance between two points. + * @param x1 x-coordinate of first point + * @param y1 y-coordinate of first point + * @param x2 x-coordinate of second point + * @param y2 y-coordinate of second point + * @returns the euclidean distance between first and second point + * @static + */ + static distance(x1:number,y1:number,x2:number,y2:number):number; + /** + * Returns the euclidean distance between two points. + * @param p1 an arbitrary point + * @param p2 an arbitrary point + * @returns the Euclidean distance between p1 and p2. + * @static + */ + static distance(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):number; + /** + * Returns the euclidean distance between this point and a given point. + * @param x the x coordinate of an arbitrary point + * @param y the y coordinate of an arbitrary point + * @returns the Euclidean distance between this point and the point (x,y). + */ + distanceTo(x:number,y:number):number; + /** + * Returns the euclidean distance between this point and a given point. + * @param p an arbitrary point + * @returns the Euclidean distance between this point and p. + */ + distanceTo(p:yfiles.algorithms.YPoint):number; + /** + * Returns a point that geometrically lies in in the middle of the line formed by the given points. + * @param p1 an arbitrary instance of YPoint. + * @param p2 an arbitrary instance of YPoint. + * @returns + * @static + */ + static midPoint(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Returns the point, got by moving this point to another position. + * @param x the value which is added on the x-coordinate of the point. + * @param y the value which is added on the y-coordinate of the point. + * @returns a new instance of YPoint which is the result of the moving operation. + */ + moveBy(x:number,y:number):yfiles.algorithms.YPoint; + /** + * Subtracts two points (p1 - p2) and returns the result. + * @param p1 an arbitrary instance of YPoint. + * @param p2 an arbitrary instance of YPoint. + * @returns + * @static + */ + static subtract(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Returns a copy of the given point with exchanged x- and y-coordinates. + * @param p an arbitrary instance of YPoint. + * @returns + * @static + */ + static swap(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.YPoint}. + * @returns The {@link }. + */ + toPoint():yfiles.geometry.Point; + /** + * A YPoint constant with coordinates (0,0). + * @const + * @static + * @type {yfiles.algorithms.YPoint} + */ + static ORIGIN:yfiles.algorithms.YPoint; + /** + * Gets the x-coordinate of the point object. + * @type {number} + */ + x:number; + /** + * Gets the y-coordinate of the point object. + * @type {number} + */ + y:number; + static $class:yfiles.lang.Class; + } + /** + * This class represents an ordered list of points in the plane. + * @class + * @final + */ + export interface YPointPath extends Object{} + export class YPointPath { + /** + * Creates a new path from an array of points. + * @param path + */ + constructor(path:yfiles.algorithms.YPoint[]); + /** + * Creates a new path from a list of points. + * @param l a list of {@link } instances. + */ + constructor(l:yfiles.collections.IList); + /** + * Creates a new empty path. + */ + constructor(); + /** + * Calculate the (geometric) length of the path. + *

    + * The length of the path is the sum of lengths of all line segments making up the path. + *

    + * @returns the (geometric) length of the path + */ + calculateLength():number; + /** + * Create a point path with reverse ordering of the points. + * @returns + */ + createReverse():yfiles.algorithms.YPointPath; + /** + * Get the points in the path. + * @returns + */ + cursor():yfiles.algorithms.ICursor; + /** + * Returns a line segment in the path. + * @param i + * @returns + */ + getLineSegment(i:number):yfiles.algorithms.LineSegment; + /** + * Get the number of points in the path. + * @returns + */ + length():number; + /** + * Get the points in the path. + * @returns + */ + lineSegments():yfiles.algorithms.ILineSegmentCursor; + /** + * Get the points in the path. + * @returns + */ + points():yfiles.algorithms.IPointCursor; + /** + * Get the points in the list as array. + * @returns + */ + toArray():yfiles.algorithms.YPoint[]; + /** + * Get the points in the path as list. + * @returns a list of {@link } instances. + */ + toList():yfiles.collections.IList; + /** + * Defines a path with no points. + * @const + * @static + * @type {yfiles.algorithms.YPointPath} + */ + static EMPTY_PATH:yfiles.algorithms.YPointPath; + /** + * Gets the first point in the path. + * @type {yfiles.algorithms.YPoint} + */ + first:yfiles.algorithms.YPoint; + /** + * Gets the last point in the path. + * @type {yfiles.algorithms.YPoint} + */ + last:yfiles.algorithms.YPoint; + /** + * Gets the number of line segments in the path. + * @type {number} + */ + lineSegmentCount:number; + static $class:yfiles.lang.Class; + } + /** + * This class defines a rectangle and provides utility methods for it. + * @class + * @extends {yfiles.algorithms.YDimension} + * @implements {yfiles.algorithms.IPlaneObject} + */ + export interface YRectangle extends yfiles.algorithms.YDimension,yfiles.algorithms.IPlaneObject{} + export class YRectangle { + /** + * Creates a new rectangle with given upper left corner and size. + * @param x x-coordinate of upper left corner of the rectangle. + * @param y y-coordinate of upper left corner of the rectangle. + * @param width width of the rectangle. + * @param height height of the rectangle. + */ + constructor(x:number,y:number,width:number,height:number); + /** + * Creates a new rectangle with given upper left corner and size. + * @param pos upper left corner of the rectangle. + * @param size size of the rectangle. + */ + constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension); + /** + * Creates a new rectangle with upper left corner (0,0) and size (0,0). + */ + constructor(); + /** + * Checks whether or not this YRectangle contains the given rectangle. + * @param p + * @returns + */ + contains(p:yfiles.algorithms.YRectangle):boolean; + /** + * Checks whether or not this YRectangle contains the given point. + * @param p + * @returns + */ + contains(p:yfiles.algorithms.YPoint):boolean; + /** + * Checks whether or not this YRectangle contains the rectangle defined by the given frame. + * @param x + * @param y + * @param width + * @param height + * @returns + */ + contains(x:number,y:number,width:number,height:number):boolean; + /** + * Checks whether or not this YRectangle contains the given point. + * @param x the x-coordinate of the point to check. + * @param y the x-coordinate of the point to check. + * @returns true if the point lies inside the rectangle; false otherwise. + */ + contains(x:number,y:number):boolean; + /** + * Determines whether the specified rectangle contains the specified point. + * @param rx the x-coordinate of the upper left corner of the rectangle. + * @param ry the y-coordinate of the upper left corner of the rectangle. + * @param rw the width of the rectangle. + * @param rh the height of the rectangle. + * @param x the x-coordinate of the point to check. + * @param y the x-coordinate of the point to check. + * @param [closed=false] if true, all points on the border of the rectangle are considered to be contained. + * @returns true if the point lies inside the rectangle; false otherwise. + * @static + */ + static contains(rx:number,ry:number,rw:number,rh:number,x:number,y:number,closed?:boolean):boolean; + /** + * Returns the Euclidean distance to the passed rectangle. + *

    + * If they overlap, the distance is 0. + *

    + * @param other the second rectangle. + * @returns the distance to the given rectangle. + */ + getEuclideanDistance(other:yfiles.algorithms.YRectangle):number; + /** + * Returns the Manhattan distance to the passed rectangle. + *

    + * If they overlap the distance is 0. + *

    + * @param other the second rectangle. + * @returns the distance to the given rectangle. + */ + getManhattanDistance(other:yfiles.algorithms.YRectangle):number; + /** + * Returns whether or not the given rectangles intersect. + * @param r1 + * @param r2 + * @returns + * @static + */ + static intersects(r1:yfiles.algorithms.YRectangle,r2:yfiles.algorithms.YRectangle):boolean; + /** + * Creates a {@link yfiles.geometry.Rect} from a given {@link yfiles.algorithms.YRectangle}. + * @returns The {@link }. + */ + toRect():yfiles.geometry.Rect; + /** + * Gets x-coordinate of upper left corner. + * @type {number} + */ + x:number; + /** + * Gets y-coordinate of upper left corner. + * @type {number} + */ + y:number; + /** + * Gets coordinates of upper left corner. + * @type {yfiles.algorithms.YPoint} + */ + location:yfiles.algorithms.YPoint; + /** + * Gets this object. + * @type {yfiles.algorithms.YRectangle} + */ + boundingBox:yfiles.algorithms.YRectangle; + static $class:yfiles.lang.Class; + } + /** + * This class represents a vector in the 2-dimensional real vector space. + *

    + * This vector is an ordered 2 tuple and is defined by two doubles. + *

    + * @class + */ + export interface YVector extends Object{} + export class YVector { + /** + * Creates a new vector, whose direction is given by two points. + *

    + * The vector is defined by p1 - p2. + *

    + * @param p1 The first point. + * @param [p2=null] The second point. If no point is spcified, (0,0) is used instead. + */ + constructor(p1:yfiles.algorithms.YPoint,p2?:yfiles.algorithms.YPoint); + /** + * Creates a new vector which is a copy of another vector. + * @param v the vector, whose values are copied. + */ + constructor(v:yfiles.algorithms.YVector); + /** + * Creates a new vector, whose direction is given by two points. + *

    + * The vector is defined by (x1 - x2, y1 - y2). + *

    + * @param x1 the X-coordinate of the first point. + * @param y1 the Y-coordinate of the first point. + * @param x2 the X-coordinate of the second point. + * @param y2 the Y-coordinate of the second point. + */ + constructor(x1:number,y1:number,x2:number,y2:number); + /** + * Creates a new vector with given direction. + * @param dx the first coordinate + * @param dy the second coordinate + */ + constructor(dx:number,dy:number); + /** + * Adds a vector to this vector. + * @param v the vector to add. + */ + add(v:yfiles.algorithms.YVector):void; + /** + * Adds the vector to a point and returns the resulting point. + * @param p a point. + * @param v the vector to add to the point. + * @returns p+v + * @static + */ + static add(p:yfiles.algorithms.YPoint,v:yfiles.algorithms.YVector):yfiles.algorithms.YPoint; + /** + * Adds two vectors and returns the result. + * @param v first vector to sum. + * @param w second vector to sum. + * @returns v+w + * @static + */ + static add(v:yfiles.algorithms.YVector,w:yfiles.algorithms.YVector):yfiles.algorithms.YVector; + /** + * Returns the result of the addition of two angles between 0 and 2*Pi. + *

    + * The result is calculated modulo 2*Pi. + *

    + * @param a1 a value in [0,2Pi). + * @param a2 a value in [0,2Pi). + * @returns The sum of a1 and a2 modulo 2*Pi. + * @static + */ + static addAngle(a1:number,a2:number):number; + /** + * Returns the angle (measured in radians) between two vectors in clockwise order (with regards to screen coordinates) from + * v1 to v2. + *

    + * Screen coordinates mean positive x-direction is from left to right and positive y-direction is from top to bottom. + *

    + * @param v1 + * @param v2 + * @returns + * @static + */ + static angle(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):number; + /** + * Returns this vector with unit length. + * @param v + * @returns + * @static + */ + static getNormal(v:yfiles.algorithms.YVector):yfiles.algorithms.YVector; + /** + * Returns the length of the vector, this is the value of the euclidean norm. + * @returns a value > 0. + */ + length():number; + /** + * Assigns unit length to the vector. + *
    + */ + norm():void; + /** + * Returns the vector which is orthogonal to the given one and has unit length. + * @param v a vector. + * @returns a vector which is orthogonal to v with unit length. + * @static + */ + static orthoNormal(v:yfiles.algorithms.YVector):yfiles.algorithms.YVector; + /** + * Returns true if vector v1 is on the right side of v2. + * @param v1 + * @param v2 + * @returns + * @static + */ + static rightOf(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):boolean; + /** + * Returns a new YVector instance that is obtained by rotating this vector by the given angle (measured in radians) in + * clockwise direction (with regards to screen coordinates). + *

    + * Screen coordinates mean positive x-direction is from left to right and positive y-direction is from top to bottom. + *

    + * @param angle the angle of rotation in radians. + * @returns the rotated vector. + */ + rotate(angle:number):yfiles.algorithms.YVector; + /** + * Returns the value of the scalar product of two vectors. + * @param v1 the first vector. + * @param v2 the second vector. + * @returns v1.x * v2.x + v1.y * v2.y + * @static + */ + static scalarProduct(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):number; + /** + * Scales the vector by an factor. + * @param factor the scale factor, with which the length is multiplied. + */ + scale(factor:number):void; + /** + * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.YVector}. + * @returns The {@link }. + */ + toPoint():yfiles.geometry.Point; + /** + * Gets the first coordinate of the vector. + * @type {number} + */ + x:number; + /** + * Gets the second coordinate of the vector. + * @type {number} + */ + y:number; + static $class:yfiles.lang.Class; + } /** * This class implements a directed graph structure. *

    @@ -75447,7 +77388,7 @@ declare namespace system{ * Also, it serves as a factory to create so-called maps ({@link yfiles.algorithms.INodeMap}, * {@link yfiles.algorithms.IEdgeMap}) that can be utilized to bind arbitrary data to nodes and edges. *

    - * @class yfiles.algorithms.Graph + * @class */ export interface Graph extends Object{} export class Graph { @@ -75461,14 +77402,12 @@ declare namespace system{ *

    * The new Graph instance also inherits all graph listeners registered with the given graph. *

    - * @param {yfiles.algorithms.Graph} graph The graph to be (partially) copied. - * @param {yfiles.algorithms.ICursor} [subNodes=null] A cursor to iterate over the nodes that actually induce the subgraph to be copied. - * @constructor + * @param graph The graph to be (partially) copied. + * @param [subNodes=null] A cursor to iterate over the nodes that actually induce the subgraph to be copied. */ constructor(graph:yfiles.algorithms.Graph,subNodes?:yfiles.algorithms.ICursor); /** * Instantiates an empty Graph object. - * @constructor */ constructor(); /** @@ -75476,8 +77415,8 @@ declare namespace system{ *

    * If there is already a data provider registered with that key, then it will be overwritten with the new one. *

    - * @param {Object} providerKey - * @param {yfiles.algorithms.IDataProvider} data + * @param providerKey + * @param data */ addDataProvider(providerKey:Object,data:yfiles.algorithms.IDataProvider):void; /** @@ -75501,15 +77440,15 @@ declare namespace system{ *
  • after targetReference, if targetD == AFTER
  • *
  • before targetReference, if targetD == BEFORE.
  • * - * @param {yfiles.algorithms.Edge} e The edge to be changed. - * @param {yfiles.algorithms.Node} newSource The new source node. - * @param {yfiles.algorithms.Edge} sourceReference Reference edge for insertion at the new source node. - * @param {yfiles.algorithms.GraphElementInsertion} sourceD One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @param {yfiles.algorithms.Node} newTarget The new target node. - * @param {yfiles.algorithms.Edge} targetReference Reference edge for insertion at the new target node. - * @param {yfiles.algorithms.GraphElementInsertion} targetD One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. + * @param e The edge to be changed. + * @param newSource The new source node. + * @param sourceReference Reference edge for insertion at the new source node. + * @param sourceD One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @param newTarget The new target node. + * @param targetReference Reference edge for insertion at the new target node. + * @param targetD One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. */ changeEdge(e:yfiles.algorithms.Edge,newSource:yfiles.algorithms.Node,sourceReference:yfiles.algorithms.Edge,sourceD:yfiles.algorithms.GraphElementInsertion,newTarget:yfiles.algorithms.Node,targetReference:yfiles.algorithms.Edge,targetD:yfiles.algorithms.GraphElementInsertion):void; /** @@ -75532,13 +77471,13 @@ declare namespace system{ *
  • after e2, if d2 == AFTER
  • *
  • before e2, if d2 == BEFORE.
  • * - * @param {yfiles.algorithms.Edge} e The edge to be changed. - * @param {yfiles.algorithms.Edge} e1 Reference edge for insertion at a new source node. - * @param {yfiles.algorithms.Edge} e2 Reference edge for insertion at a new target node. - * @param {yfiles.algorithms.GraphElementInsertion} d1 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @param {yfiles.algorithms.GraphElementInsertion} d2 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. + * @param e The edge to be changed. + * @param e1 Reference edge for insertion at a new source node. + * @param e2 Reference edge for insertion at a new target node. + * @param d1 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @param d2 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. */ changeEdge(e:yfiles.algorithms.Edge,e1:yfiles.algorithms.Edge,e2:yfiles.algorithms.Edge,d1:yfiles.algorithms.GraphElementInsertion,d2:yfiles.algorithms.GraphElementInsertion):void; /** @@ -75547,9 +77486,9 @@ declare namespace system{ * The edge is appended to the lists of incoming and outgoing edges at the given source node and target node, * respectively. *

    - * @param {yfiles.algorithms.Edge} e The edge to be changed. - * @param {yfiles.algorithms.Node} newSource The new source node of the given edge. - * @param {yfiles.algorithms.Node} newTarget The new target node of the given edge. + * @param e The edge to be changed. + * @param newSource The new source node of the given edge. + * @param newTarget The new target node of the given edge. */ changeEdge(e:yfiles.algorithms.Edge,newSource:yfiles.algorithms.Node,newTarget:yfiles.algorithms.Node):void; /** @@ -75558,21 +77497,21 @@ declare namespace system{ clear():void; /** * Whether or not this graph contains the given edge. - * @param {yfiles.algorithms.Edge} e - * @returns {boolean} + * @param e + * @returns */ contains(e:yfiles.algorithms.Edge):boolean; /** * Whether or not this graph contains the given node. - * @param {yfiles.algorithms.Node} v - * @returns {boolean} + * @param v + * @returns */ contains(v:yfiles.algorithms.Node):boolean; /** * Returns whether or not this graph contains an edge that connects the given nodes. - * @param {yfiles.algorithms.Node} source The source node. - * @param {yfiles.algorithms.Node} target The target node. - * @returns {boolean} + * @param source The source node. + * @param target The target node. + * @returns * @see yfiles.algorithms.Node#getEdgeTo * @see yfiles.algorithms.Node#getEdgeFrom * @see yfiles.algorithms.Node#getEdge @@ -75583,7 +77522,7 @@ declare namespace system{ *

    * Invokes {@link yfiles.algorithms.Graph#Graph}. *

    - * @returns {yfiles.algorithms.Graph} The newly created Graph object. + * @returns The newly created Graph object. */ createCopy():yfiles.algorithms.Graph; /** @@ -75607,15 +77546,15 @@ declare namespace system{ *
  • after e2, if d2 == AFTER
  • *
  • before e2, if d2 == BEFORE.
  • * - * @param {yfiles.algorithms.Node} v The source node of the edge. - * @param {yfiles.algorithms.Edge} e1 An edge with source node v. - * @param {yfiles.algorithms.Node} w The target node of the edge. - * @param {yfiles.algorithms.Edge} e2 An edge with target node w. - * @param {yfiles.algorithms.GraphElementInsertion} d1 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @param {yfiles.algorithms.GraphElementInsertion} d2 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @returns {yfiles.algorithms.Edge} The newly created Edge object. + * @param v The source node of the edge. + * @param e1 An edge with source node v. + * @param w The target node of the edge. + * @param e2 An edge with target node w. + * @param d1 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @param d2 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @returns The newly created Edge object. */ createEdge(v:yfiles.algorithms.Node,e1:yfiles.algorithms.Edge,w:yfiles.algorithms.Node,e2:yfiles.algorithms.Edge,d1:yfiles.algorithms.GraphElementInsertion,d2:yfiles.algorithms.GraphElementInsertion):yfiles.algorithms.Edge; /** @@ -75626,9 +77565,9 @@ declare namespace system{ *

    * The edge is appended to the lists of incoming and outgoing edges at the source node and target node, respectively. *

    - * @param {yfiles.algorithms.Node} v The source node of the edge. - * @param {yfiles.algorithms.Node} w The target node of the edge. - * @returns {yfiles.algorithms.Edge} The newly created Edge object. + * @param v The source node of the edge. + * @param w The target node of the edge. + * @returns The newly created Edge object. */ createEdge(v:yfiles.algorithms.Node,w:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** @@ -75643,7 +77582,7 @@ declare namespace system{ *

    * In order to release the resources held by this map, {@link yfiles.algorithms.Graph#disposeEdgeMap} has to be called. *

    - * @returns {yfiles.algorithms.IEdgeMap} + * @returns */ createEdgeMap():yfiles.algorithms.IEdgeMap; /** @@ -75651,12 +77590,12 @@ declare namespace system{ *

    * Subclasses should override this method. *

    - * @returns {yfiles.algorithms.Graph} + * @returns */ createGraph():yfiles.algorithms.Graph; /** * Creates a new node in this graph and fires a corresponding notification event to inform registered listeners. - * @returns {yfiles.algorithms.Node} The newly created Node object. + * @returns The newly created Node object. */ createNode():yfiles.algorithms.Node; /** @@ -75671,7 +77610,7 @@ declare namespace system{ *

    * In order to release the resources held by this map, {@link yfiles.algorithms.Graph#disposeNodeMap} has to be called. *

    - * @returns {yfiles.algorithms.INodeMap} + * @returns */ createNodeMap():yfiles.algorithms.INodeMap; /** @@ -75684,7 +77623,7 @@ declare namespace system{ * Calling this method will destroy the edge map and associated resources can be freed. It is strongly recommended to * dispose of all edge maps that are not needed anymore using this method. *

    - * @param {yfiles.algorithms.IEdgeMap} map + * @param map */ disposeEdgeMap(map:yfiles.algorithms.IEdgeMap):void; /** @@ -75697,13 +77636,13 @@ declare namespace system{ * Calling this method will destroy the node map and associated resources can be freed. It is strongly recommended to * dispose of all node maps that are not needed anymore using this method. *

    - * @param {yfiles.algorithms.INodeMap} map + * @param map */ disposeNodeMap(map:yfiles.algorithms.INodeMap):void; /** * Low-level iteration support for adjacent edges. - * @param {yfiles.algorithms.Node} v - * @returns {yfiles.algorithms.Edge} + * @param v + * @returns * @protected * @static */ @@ -75714,28 +77653,28 @@ declare namespace system{ * The look-up domain of a returned data provider normally consists of either the nodes of the graph, or its edges, or * both. *

    - * @param {Object} providerKey - * @returns {yfiles.algorithms.IDataProvider} + * @param providerKey + * @returns */ getDataProvider(providerKey:Object):yfiles.algorithms.IDataProvider; /** * Returns an array containing all edges of this graph. - * @returns {Array.} + * @returns */ getEdgeArray():yfiles.algorithms.Edge[]; /** * Provides access to the edges of the graph. - * @returns {yfiles.algorithms.IEdgeCursor} An EdgeCursor to iterate over the edges in the graph. + * @returns An EdgeCursor to iterate over the edges in the graph. */ getEdgeCursor():yfiles.algorithms.IEdgeCursor; /** * Returns an array containing all nodes of this graph. - * @returns {Array.} + * @returns */ getNodeArray():yfiles.algorithms.Node[]; /** * Provides access to the nodes of the graph. - * @returns {yfiles.algorithms.INodeCursor} A NodeCursor to iterate over the nodes in the graph. + * @returns A NodeCursor to iterate over the nodes in the graph. */ getNodeCursor():yfiles.algorithms.INodeCursor; /** @@ -75753,7 +77692,7 @@ declare namespace system{ *

    * To reinsert a hidden node use {@link yfiles.algorithms.Graph#unhide}. *

    - * @param {yfiles.algorithms.Node} v + * @param v * @see yfiles.algorithms.Graph#hide * @see yfiles.algorithms.Graph#unhide */ @@ -75773,29 +77712,29 @@ declare namespace system{ *

    * To reinsert a hidden edge use {@link yfiles.algorithms.Graph#unhide}. *

    - * @param {yfiles.algorithms.Edge} e + * @param e * @see yfiles.algorithms.Graph#hide * @see yfiles.algorithms.Graph#unhide */ hide(e:yfiles.algorithms.Edge):void; /** * Moves the given edge to the first position within the sequence of edges in this graph. - * @param {yfiles.algorithms.Edge} e + * @param e */ moveToFirst(e:yfiles.algorithms.Edge):void; /** * Moves the given node to the first position within the sequence of nodes in this graph. - * @param {yfiles.algorithms.Node} v + * @param v */ moveToFirst(v:yfiles.algorithms.Node):void; /** * Moves the given edge to the last position within the sequence of edges in this graph. - * @param {yfiles.algorithms.Edge} e + * @param e */ moveToLast(e:yfiles.algorithms.Edge):void; /** * Moves the given node to the last position within the sequence of nodes in this graph. - * @param {yfiles.algorithms.Node} v + * @param v */ moveToLast(v:yfiles.algorithms.Node):void; /** @@ -75814,7 +77753,7 @@ declare namespace system{ * Note that reinserting an edge whose source/target is not in the graph (e.g., because it's currently hidden/removed) * causes an exception. Hence, in such cases, you first have to unhide/reinsert the corresponding endpoints. *

    - * @param {yfiles.algorithms.Edge} e The edge to be reinserted. + * @param e The edge to be reinserted. * @see yfiles.algorithms.Graph#removeEdge */ reInsertEdge(e:yfiles.algorithms.Edge):void; @@ -75825,13 +77764,13 @@ declare namespace system{ * The reinserted node is appended to the sequence of nodes in this graph, i.e., normally, its new position does not match * the position before its removal. *

    - * @param {yfiles.algorithms.Node} v The node to be reinserted. + * @param v The node to be reinserted. * @see yfiles.algorithms.Graph#removeNode */ reInsertNode(v:yfiles.algorithms.Node):void; /** * Removes the data provider that is registered using the given look-up key. - * @param {Object} providerKey + * @param providerKey */ removeDataProvider(providerKey:Object):void; /** @@ -75839,7 +77778,7 @@ declare namespace system{ *

    * The edge will be deselected before it gets removed. *

    - * @param {yfiles.algorithms.Edge} e The edge to be removed. + * @param e The edge to be removed. */ removeEdge(e:yfiles.algorithms.Edge):void; /** @@ -75851,7 +77790,7 @@ declare namespace system{ *

    * The node will be deselected before it gets removed. *

    - * @param {yfiles.algorithms.Node} v The node to be removed from this graph. + * @param v The node to be removed from this graph. */ removeNode(v:yfiles.algorithms.Node):void; /** @@ -75859,7 +77798,7 @@ declare namespace system{ *

    * This operation exchanges source and target node of the edge. *

    - * @param {yfiles.algorithms.Edge} e + * @param e */ reverseEdge(e:yfiles.algorithms.Edge):void; /** @@ -75869,8 +77808,8 @@ declare namespace system{ * order of the edges as returned by {@link yfiles.algorithms.Node#getOutEdgeCursor} and {@link yfiles.algorithms.Node#getInEdgeCursor} * respectively. *

    - * @param {yfiles.collections.IComparer.} inComparer The comparator used for the incoming edges at each node. - * @param {yfiles.collections.IComparer.} outComparer The comparator used for the outgoing edges at each node. + * @param inComparer The comparator used for the incoming edges at each node. + * @param outComparer The comparator used for the outgoing edges at each node. */ sortEdges(inComparer:yfiles.collections.IComparer,outComparer:yfiles.collections.IComparer):void; /** @@ -75879,7 +77818,7 @@ declare namespace system{ * If the given comparator is null, then the edges will not be sorted. This list determines the order of the edges as * returned by {@link yfiles.algorithms.Graph#getEdgeCursor}. *

    - * @param {yfiles.collections.IComparer.} comparer The comparator used for the edges. + * @param comparer The comparator used for the edges. */ sortEdges(comparer:yfiles.collections.IComparer):void; /** @@ -75888,7 +77827,7 @@ declare namespace system{ * If the given comparator is null, then the nodes will not be sorted. This list determines the order of the nodes as * returned by {@link yfiles.algorithms.Graph#getNodeCursor}. *

    - * @param {yfiles.collections.IComparer.} comparer The comparator used for the nodes. + * @param comparer The comparator used for the nodes. */ sortNodes(comparer:yfiles.collections.IComparer):void; /** @@ -75901,7 +77840,7 @@ declare namespace system{ * The only difference to a proper node reinsertion as performed by {@link yfiles.algorithms.Graph#reInsertNode} is that no event * will be emitted that signals the structural change (i.e. the node's reinsertion). *

    - * @param {yfiles.algorithms.Node} v + * @param v */ unhide(v:yfiles.algorithms.Node):void; /** @@ -75918,7 +77857,7 @@ declare namespace system{ * Note that unhiding an edge whose source/target is not in the graph (e.g., because it's currently hidden/removed) causes * an exception. Hence, in such cases, you first have to unhide/reinsert the corresponding endpoints. *

    - * @param {yfiles.algorithms.Edge} e + * @param e * @see yfiles.algorithms.Graph#hide * @see yfiles.algorithms.Graph#unhide */ @@ -76037,7 +77976,7 @@ declare namespace system{ *
  • Simple graph: A graph that contains no self-loops and parallel edges.
  • *
  • Planar graph: A graph that can be drawn on the plane without edge crossings.
  • * - * @class yfiles.algorithms.GraphChecker + * @class * @static */ export interface GraphChecker extends Object{} @@ -76047,8 +77986,8 @@ declare namespace system{ *

    * A graph is called acyclic if it contains no directed cycle. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is acyclic, false, otherwise + * @param graph the given graph + * @returns true if the graph is acyclic, false, otherwise * @static */ static isAcyclic(graph:yfiles.algorithms.Graph):boolean; @@ -76057,8 +77996,8 @@ declare namespace system{ *

    * A graph is called biconnected if it has no cut vertex or articulation point, i.e., no node whose removal disconnects the graph. *

    - * @param {yfiles.algorithms.Graph} graph the given undirected graph - * @returns {boolean} true if the graph is biconnected, false otherwise + * @param graph the given undirected graph + * @returns true if the graph is biconnected, false otherwise * @static */ static isBiconnected(graph:yfiles.algorithms.Graph):boolean; @@ -76068,8 +78007,8 @@ declare namespace system{ * A graph is called bipartite if its nodes can be partitioned into two sets such that each edge connects two nodes of different * sets. *

    - * @param {yfiles.algorithms.Graph} graph the given undirected graph - * @returns {boolean} true if the graph is bipartite, false otherwise + * @param graph the given undirected graph + * @returns true if the graph is bipartite, false otherwise * @static */ static isBipartite(graph:yfiles.algorithms.Graph):boolean; @@ -76078,8 +78017,8 @@ declare namespace system{ *

    * A graph is called connected if there exists an undirected path of edges between every pair of nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is connected, false otherwise + * @param graph the given graph + * @returns true if the graph is connected, false otherwise * @static */ static isConnected(graph:yfiles.algorithms.Graph):boolean; @@ -76088,8 +78027,8 @@ declare namespace system{ *

    * A graph is called cyclic if it contains a directed cycle. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is cyclic, false, otherwise + * @param graph the given graph + * @returns true if the graph is cyclic, false, otherwise * @static */ static isCyclic(graph:yfiles.algorithms.Graph):boolean; @@ -76098,8 +78037,8 @@ declare namespace system{ *

    * A graph is a forest if its connected components are trees. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is a forest, false otherwise + * @param graph the given graph + * @returns true if the graph is a forest, false otherwise * @static */ static isForest(graph:yfiles.algorithms.Graph):boolean; @@ -76109,30 +78048,30 @@ declare namespace system{ * More precisely, the method returns true if the graph contains no two distinct edges e1, e2 that connect the same pairs * of nodes in either direction. *

    - * @param {yfiles.algorithms.Graph} graph the given undirected graph - * @returns {boolean} true if the graph contains no multiple edges, false otherwise + * @param graph the given undirected graph + * @returns true if the graph contains no multiple edges, false otherwise * @static */ static isMultipleEdgeFree(graph:yfiles.algorithms.Graph):boolean; /** * Checks whether or not the given graph is a directed rooted tree where each node has a maximum of n children. - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {number} n - * @returns {boolean} true if the graph is a directed rooted tree where each node has at most n children, false otherwise + * @param graph the given graph + * @param n + * @returns true if the graph is a directed rooted tree where each node has at most n children, false otherwise * @static */ static isNaryTree(graph:yfiles.algorithms.Graph,n:number):boolean; /** * Checks whether or not the given directed graph is a directed rooted tree. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is a directed rooted tree, false otherwise + * @param graph the given graph + * @returns true if the graph is a directed rooted tree, false otherwise * @static */ static isRootedTree(graph:yfiles.algorithms.Graph):boolean; /** * Checks whether or not the given graph contains no self-loops. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph contains no self-loops, false otherwise + * @param graph the given graph + * @returns true if the graph contains no self-loops, false otherwise * @static */ static isSelfLoopFree(graph:yfiles.algorithms.Graph):boolean; @@ -76142,8 +78081,8 @@ declare namespace system{ * A graph is called simple if it contains no two distinct edges e1, e2 where * e1.source() == e2.source() && e1.target() == e2.target(). *

    - * @param {yfiles.algorithms.Graph} graph the given directed graph - * @returns {boolean} true if the graph is simple, false otherwise + * @param graph the given directed graph + * @returns true if the graph is simple, false otherwise * @static */ static isSimple(graph:yfiles.algorithms.Graph):boolean; @@ -76152,15 +78091,15 @@ declare namespace system{ *

    * A graph is called strongly connected if there exists a directed path between each pair of nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given directed graph - * @returns {boolean} true if the graph is strongly connected, false, otherwise + * @param graph the given directed graph + * @returns true if the graph is strongly connected, false, otherwise * @static */ static isStronglyConnected(graph:yfiles.algorithms.Graph):boolean; /** * Checks whether or not the given graph is an undirected tree. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is an undirected tree, false otherwise + * @param graph the given graph + * @returns true if the graph is an undirected tree, false otherwise * @static */ static isTree(graph:yfiles.algorithms.Graph):boolean; @@ -76182,7 +78121,7 @@ declare namespace system{ * remaining graph). * * - * @class yfiles.algorithms.GraphConnectivity + * @class * @static */ export interface GraphConnectivity extends Object{} @@ -76194,12 +78133,13 @@ declare namespace system{ * Articulation points are returned in the form of a {@link yfiles.algorithms.INodeMap} that returns for each node a boolean value * indicating whether or not it is an articulation point. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IEdgeMap} compNum the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns the zero-based index of the + * @param graph the input graph + * @param compNum the {@link } that will be filled during the execution and returns the zero-based index of the * biconnected component to which each edge belongs or -1 for self-loops - * @param {yfiles.algorithms.INodeMap} [aPoint=null] the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a boolean value indicating whether + * @param [aPoint=null] the {@link } that will be filled during the execution and returns a boolean value indicating whether * or not a given node is an articulation point - * @returns {number} the number of biconnected components + * @returns the number of biconnected components + * @see yfiles.algorithms.GraphConnectivity#biconnectedComponents * @see yfiles.algorithms.GraphConnectivity#biconnectedComponents * @static */ @@ -76210,8 +78150,8 @@ declare namespace system{ * The result is returned as an array of * {@link yfiles.algorithms.EdgeList}s each containing all edges that belong to the same biconnected component. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s each containing all edges that belong to the same biconnected component + * @param graph the input graph + * @returns an array of {@link }s each containing all edges that belong to the same biconnected component * @see yfiles.algorithms.GraphConnectivity#biconnectedComponents * @static */ @@ -76224,10 +78164,10 @@ declare namespace system{ *

    * The connected components of a graph are the maximal connected subgraphs of which the graph consists. *

    - * @param {yfiles.algorithms.INodeMap} compNum the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the zero-based index of the + * @param compNum the {@link } that will be filled during the execution and returns the zero-based index of the * connected component to which each node belongs - * @param {yfiles.algorithms.Graph} graph - * @returns {number} the number of connected components of the given graph + * @param graph + * @returns the number of connected components of the given graph * @static */ static connectedComponents(graph:yfiles.algorithms.Graph,compNum:yfiles.algorithms.INodeMap):number; @@ -76239,8 +78179,8 @@ declare namespace system{ *

    * The connected components of a graph are the maximal connected subgraphs of which the graph consists. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes that belong to the same connected component + * @param graph the input graph + * @returns an array of {@link }s each of which contains the nodes that belong to the same connected component * @static */ static connectedComponents(graph:yfiles.algorithms.Graph):yfiles.algorithms.NodeList[]; @@ -76263,10 +78203,10 @@ declare namespace system{ * Setting the maximum distance to 1 will only yield the direct neighbors of all start nodes. On the other hand, setting * the maximum distance to graph.N() or larger will yield all neighbors of all start nodes. *

    - * @param {yfiles.algorithms.Graph} graph - * @param {yfiles.algorithms.NodeList} startNodes - * @param {number} maxDistance - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} that contains all direct and indirect neighbors of a node + * @param graph + * @param startNodes + * @param maxDistance + * @returns a {@link } that contains all direct and indirect neighbors of a node * @static */ static getNeighbors(graph:yfiles.algorithms.Graph,startNodes:yfiles.algorithms.NodeList,maxDistance:number):yfiles.algorithms.NodeList; @@ -76289,10 +78229,10 @@ declare namespace system{ * Setting the maximum distance to 1 will only yield the direct predecessors of all start nodes. On the other hand, setting * the maximum distance to graph.N() or larger will yield all predecessors of all start nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} startNodes a {@link yfiles.algorithms.NodeList} containing the nodes from which the search starts - * @param {number} maxDistance an integer value that limits the distance between a start node and a returned node - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} that contains all direct and indirect predecessors of a node + * @param graph the given graph + * @param startNodes a {@link } containing the nodes from which the search starts + * @param maxDistance an integer value that limits the distance between a start node and a returned node + * @returns a {@link } that contains all direct and indirect predecessors of a node * @static */ static getPredecessors(graph:yfiles.algorithms.Graph,startNodes:yfiles.algorithms.NodeList,maxDistance:number):yfiles.algorithms.NodeList; @@ -76315,10 +78255,10 @@ declare namespace system{ * Setting the maximum distance to 1 will only yield the direct successors of all start nodes. On the other hand, setting * the maximum distance to graph.N() or larger will yield all successors of all start nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} startNodes a {@link yfiles.algorithms.NodeList} containing the nodes from which the search starts - * @param {number} maxDistance an integer value that limits the distance between a start node and a returned node - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} that contains all direct and indirect successors of a node + * @param graph the given graph + * @param startNodes a {@link } containing the nodes from which the search starts + * @param maxDistance an integer value that limits the distance between a start node and a returned node + * @returns a {@link } that contains all direct and indirect successors of a node * @static */ static getSuccessors(graph:yfiles.algorithms.Graph,startNodes:yfiles.algorithms.NodeList,maxDistance:number):yfiles.algorithms.NodeList; @@ -76327,8 +78267,8 @@ declare namespace system{ *

    * A graph is called biconnected if it has no cut vertex or articulation point, i.e., no node whose removal disconnects the graph. *

    - * @param {yfiles.algorithms.Graph} graph the given undirected graph - * @returns {boolean} true if the graph is biconnected, false otherwise + * @param graph the given undirected graph + * @returns true if the graph is biconnected, false otherwise * @static */ static isBiconnected(graph:yfiles.algorithms.Graph):boolean; @@ -76337,8 +78277,8 @@ declare namespace system{ *

    * A graph is called connected if there exists an undirected path of edges between every pair of nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is connected, false otherwise + * @param graph the given graph + * @returns true if the graph is connected, false otherwise * @static */ static isConnected(graph:yfiles.algorithms.Graph):boolean; @@ -76347,8 +78287,8 @@ declare namespace system{ *

    * A graph is called strongly connected if there exists a directed path between each pair of nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given directed graph - * @returns {boolean} true if the graph is strongly connected, false, otherwise + * @param graph the given directed graph + * @returns true if the graph is strongly connected, false, otherwise * @static */ static isStronglyConnected(graph:yfiles.algorithms.Graph):boolean; @@ -76357,8 +78297,8 @@ declare namespace system{ *

    * The given graph is considered to be undirected. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the edges added to the graph + * @param graph the input graph + * @returns an {@link } containing the edges added to the graph * @static */ static makeBiconnected(graph:yfiles.algorithms.Graph):yfiles.algorithms.EdgeList; @@ -76367,8 +78307,8 @@ declare namespace system{ *

    * The number of edges that will be added equals the number of separate components of the original graph minus 1. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the edges added to the graph + * @param graph the input graph + * @returns an {@link } containing the edges added to the graph * @static */ static makeConnected(graph:yfiles.algorithms.Graph):yfiles.algorithms.EdgeList; @@ -76378,12 +78318,12 @@ declare namespace system{ *

    * The result is based on a depth first search. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.Node} start the node from which the search starts - * @param {boolean} directed true if the edges should be traversed from source to target, false if edges can be traversed in both directions - * @param {Array.} [forbidden=null] an array that holds for each {@link yfiles.algorithms.Edge} a {@link boolean} value indicating whether or not an edge can be traversed; an edge + * @param graph the given graph + * @param start the node from which the search starts + * @param directed true if the edges should be traversed from source to target, false if edges can be traversed in both directions + * @param [forbidden=null] an array that holds for each {@link } a {@link } value indicating whether or not an edge can be traversed; an edge * e is marked as forbidden if forbidden[e.index()] == true - * @param {Array.} reached an array that will be filled during the execution and returns for each {@link yfiles.algorithms.Node} a {@link boolean} value based on whether + * @param reached an array that will be filled during the execution and returns for each {@link } a {@link } value based on whether * the node can be reached during the DFS; if a node v is reachable, then reached[v.index()] = true * @static */ @@ -76396,10 +78336,10 @@ declare namespace system{ *

    * The strongly connected components of a graph are the strongly connected subgraphs of which it consists. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} compNum the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the zero-based index of the + * @param graph the input graph + * @param compNum the {@link } that will be filled during the execution and returns the zero-based index of the * connected component to which each node belongs - * @returns {number} the number of strongly connected components of the given graph + * @returns the number of strongly connected components of the given graph * @see yfiles.algorithms.GraphConnectivity#stronglyConnectedComponents * @static */ @@ -76412,32 +78352,32 @@ declare namespace system{ *

    * The strongly connected components of a graph are the strongly connected subgraphs of which it consists. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {Array.} an array of - * {@link yfiles.algorithms.NodeList}s each of which contains the nodes that belong to the same strongly connected component + * @param graph the input graph + * @returns an array of + * {@link }s each of which contains the nodes that belong to the same strongly connected component * @see yfiles.algorithms.GraphConnectivity#stronglyConnectedComponents * @static */ static stronglyConnectedComponents(graph:yfiles.algorithms.Graph):yfiles.algorithms.NodeList[]; /** - * Transforms the return values of BiconnectedComponents to an array of {@link yfiles.algorithms.EdgeList}s, like it is returned by - * {@link yfiles.algorithms.GraphConnectivity#biconnectedComponents}. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IEdgeMap} compNum the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns the zero-based index of the + * Transforms the return values of {@link yfiles.algorithms.GraphConnectivity#biconnectedComponents} to an array of + * {@link yfiles.algorithms.EdgeList}s, like it is returned by {@link yfiles.algorithms.GraphConnectivity#biconnectedComponents}. + * @param graph the input graph + * @param compNum the {@link } that will be filled during the execution and returns the zero-based index of the * connected component to which each edge belongs - * @param {number} maxCompNum the maximum number of biconnected components - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s each containing all edges that belong to the same biconnected component + * @param maxCompNum the maximum number of biconnected components + * @returns an array of {@link }s each containing all edges that belong to the same biconnected component * @static */ static toEdgeListArray(graph:yfiles.algorithms.Graph,compNum:yfiles.algorithms.IEdgeMap,maxCompNum:number):yfiles.algorithms.EdgeList[]; /** * Transforms the return values of method {@link yfiles.algorithms.GraphConnectivity#connectedComponents} to an array of * {@link yfiles.algorithms.NodeList}s, like it is returned by {@link yfiles.algorithms.GraphConnectivity#connectedComponents}. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} compNum the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the zero-based index of the + * @param graph the input graph + * @param compNum the {@link } that will be filled during the execution and returns the zero-based index of the * connected component to which each node belongs - * @param {number} maxCompNum the maximum number of connected components - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes that belong to the same connected component + * @param maxCompNum the maximum number of connected components + * @returns an array of {@link }s each of which contains the nodes that belong to the same connected component * @static */ static toNodeListArray(graph:yfiles.algorithms.Graph,compNum:yfiles.algorithms.INodeMap,maxCompNum:number):yfiles.algorithms.NodeList[]; @@ -76448,7 +78388,7 @@ declare namespace system{ *

    * This type does not add public functionality to its base type. *

    - * @class yfiles.algorithms.GraphObject + * @class */ export interface GraphObject extends Object{} export class GraphObject { @@ -76491,7 +78431,7 @@ declare namespace system{ * @see yfiles.algorithms.Groups#hierarchicalClustering * @see yfiles.algorithms.Groups#hierarchicalClustering * @see yfiles.algorithms.Groups#hierarchicalClustering - * @class yfiles.algorithms.Dendrogram + * @class */ export interface Dendrogram extends Object{} export class Dendrogram { @@ -76500,8 +78440,8 @@ declare namespace system{ *

    * If the given node is a {@link yfiles.algorithms.Dendrogram#isLeaf leaf} node, the returned list will be empty. *

    - * @param {yfiles.algorithms.Node} parent the parent node for which to retrieve the child nodes - * @returns {yfiles.algorithms.NodeList} the list of child nodes of the given parent node + * @param parent the parent node for which to retrieve the child nodes + * @returns the list of child nodes of the given parent node */ getChildren(parent:yfiles.algorithms.Node):yfiles.algorithms.NodeList; /** @@ -76514,22 +78454,22 @@ declare namespace system{ * created by this merging. Then, the cluster nodes of u will be returned as two {@link yfiles.algorithms.NodeList}s where the * first contains nodes v1, v2 and the second v3, v4. *

    - * @param {yfiles.algorithms.Node} node the given dendrogram node - * @returns {Array.} an array of - * {@link yfiles.algorithms.NodeList}s that contain the nodes of the original graph that are associated with the given dendrogram + * @param node the given dendrogram node + * @returns an array of + * {@link }s that contain the nodes of the original graph that are associated with the given dendrogram * node */ getClusterNodes(node:yfiles.algorithms.Node):yfiles.algorithms.NodeList[]; /** * Returns the dissimilarity value associated with the given node of the dendrogram. - * @param {yfiles.algorithms.Node} node the given dendrogram node - * @returns {number} the dissimilarity value associated with the given dendrogram node + * @param node the given dendrogram node + * @returns the dissimilarity value associated with the given dendrogram node */ getDissimilarityValue(node:yfiles.algorithms.Node):number; /** * Returns the level of the given node of the dendrogram. - * @param {yfiles.algorithms.Node} node the given dendrogram node - * @returns {number} the level of the given dendrogram node + * @param node the given dendrogram node + * @returns the level of the given dendrogram node */ getLevel(node:yfiles.algorithms.Node):number; /** @@ -76537,15 +78477,15 @@ declare namespace system{ *

    * If the given level index is greater than the {@link yfiles.algorithms.Dendrogram#levelCount number of levels}, then this method will return null. *

    - * @param {number} level the given level index - * @returns {yfiles.algorithms.Node} the node of the dendrogram that belongs to the given level index or null if there exists no level with the given index. + * @param level the given level index + * @returns the node of the dendrogram that belongs to the given level index or null if there exists no level with the given index. * @throws {Stubs.Exceptions.ArgumentError} if the given level is negative or greater than the {@link yfiles.algorithms.Dendrogram#nodeCount node count} minus one. */ getNodeAtLevel(level:number):yfiles.algorithms.Node; /** * Returns the node of original graph that is mapped with the given leaf node of the dendrogram. - * @param {yfiles.algorithms.Node} node the given leaf node - * @returns {yfiles.algorithms.Node} the node of original graph that is mapped with the given leaf node or null if the given node is an inner dendrogram + * @param node the given leaf node + * @returns the node of original graph that is mapped with the given leaf node or null if the given node is an inner dendrogram * node */ getOriginalNode(node:yfiles.algorithms.Node):yfiles.algorithms.Node; @@ -76555,8 +78495,8 @@ declare namespace system{ * A leaf node has no further children and represents a node of the original graph. The original node can be retrieved via * {@link yfiles.algorithms.Dendrogram#getOriginalNode}. *

    - * @param {yfiles.algorithms.Node} node a dendrogram node - * @returns {boolean} true if the given node is a leaf node, false otherwise + * @param node a dendrogram node + * @returns true if the given node is a leaf node, false otherwise */ isLeaf(node:yfiles.algorithms.Node):boolean; /** @@ -76599,9 +78539,9 @@ declare namespace system{ * distances between two nodes have to be symmetric, i.e., the distance between node n1 and n2 is equal to the distance * between node n2 and n1. *

    - * @param {yfiles.algorithms.Node} n1 the first node - * @param {yfiles.algorithms.Node} n2 the second node - * @returns {number} the distance between the two given nodes + * @param n1 the first node + * @param n2 the second node + * @returns the distance between the two given nodes * @abstract */ getDistance(n1:yfiles.algorithms.Node,n2:yfiles.algorithms.Node):number; @@ -76625,7 +78565,7 @@ declare namespace system{ *
  • K-means clustering algorithm partitions the nodes of a graph into k-clusters based on their positions on the plane and a given distance metric.
  • *
  • Hierarchical clustering creates a hierarchy of clusters in a bottom-to-top approach based on some distance metric and linkage.
  • * - * @class yfiles.algorithms.Groups + * @class * @static */ export interface Groups extends Object{} @@ -76636,10 +78576,10 @@ declare namespace system{ * Nodes will be grouped such that the nodes within each group are biconnected. Nodes that belong to multiple biconnected * components will be assigned to exactly one of these components. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} groupIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param groupIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @returns {number} the resulting number of different groups + * @returns the resulting number of different groups * @static */ static biconnectedComponentGrouping(graph:yfiles.algorithms.Graph,groupIDs:yfiles.algorithms.INodeMap):number; @@ -76661,14 +78601,14 @@ declare namespace system{ * overall computation time. The upper bound on the number of groups is * graph.N(). Also, the number of returned groups is never smaller than the number of connected components of the graph. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {number} qualityTimeRatio a value between 0.0 (low quality, fast) and 1.0 (high quality, slow); the recommended value is 0.5 - * @param {number} minGroupCount the minimum number of groups that will be returned - * @param {number} maxGroupCount the maximum number of groups that will be returned - * @param {boolean} refine true if the algorithm refines the current grouping, false if the algorithm discards the current grouping - * @returns {number} the resulting number of different groups + * @param qualityTimeRatio a value between 0.0 (low quality, fast) and 1.0 (high quality, slow); the recommended value is 0.5 + * @param minGroupCount the minimum number of groups that will be returned + * @param maxGroupCount the maximum number of groups that will be returned + * @param refine true if the algorithm refines the current grouping, false if the algorithm discards the current grouping + * @returns the resulting number of different groups * @throws {Stubs.Exceptions.ArgumentError} if minGroupCount > maxGroupCount or minGroupCount > graph.N() or maxGroupCount <= 0 * @static */ @@ -76684,15 +78624,15 @@ declare namespace system{ * overall computation time. The upper bound on the number of groups is * graph.N(). Also, the number of returned groups is never smaller than the number of connected components of the graph. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {number} minGroupCount the minimum number of groups that will be returned - * @param {number} maxGroupCount the maximum number of groups that will be returned - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that holds a positive {@link number} cost or null if the edges of the graph are considered to be + * @param directed true if the graph should be considered as directed, false otherwise + * @param minGroupCount the minimum number of groups that will be returned + * @param maxGroupCount the maximum number of groups that will be returned + * @param edgeCosts the {@link } that holds a positive {@link } cost or null if the edges of the graph are considered to be * of equal cost - * @returns {number} the resulting number of different groups + * @returns the resulting number of different groups * @throws {Stubs.Exceptions.ArgumentError} if minGroupCount > maxGroupCount or minGroupCount > graph.N() or maxGroupCount <= 0 * @static */ @@ -76713,13 +78653,13 @@ declare namespace system{ *

    * The maximum number of clusters needs to be greater than zero and less than the number of the nodes of the graph. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {number} maxCluster the maximum number of clusters that determines where to cut the hierarchic tree into clusters - * @param {yfiles.algorithms.INodeMap} clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param maxCluster the maximum number of clusters that determines where to cut the hierarchic tree into clusters + * @param clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {yfiles.algorithms.INodeDistanceProvider} distances a given {@link yfiles.algorithms.INodeDistanceProvider} object that determines the distance between any two graph nodes - * @param {yfiles.algorithms.Linkage} linkage one of the predefined linkage values - * @returns {number} the resulting number of clusters + * @param distances a given {@link } object that determines the distance between any two graph nodes + * @param linkage one of the predefined linkage values + * @returns the resulting number of clusters * @throws {Stubs.Exceptions.ArgumentError} if an unknown linkage is given or if the maximum number of clusters is less than or equal to zero or greater than the * number of nodes of the graph * @static @@ -76738,13 +78678,13 @@ declare namespace system{ * The result will be given based on the given cut-off value that is used for cutting the hierarchical tree at a point such * that the dissimilarity values of the nodes that remain at the dendrogram are less than this value. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {yfiles.algorithms.INodeDistanceProvider} distances a given {@link yfiles.algorithms.INodeDistanceProvider} object that determines the distance between any two nodes - * @param {yfiles.algorithms.Linkage} linkage one of the predefined linkage values - * @param {number} cutOff the cut-off value that determines where to cut the hierarchic tree into clusters - * @returns {number} the resulting number of clusters + * @param distances a given {@link } object that determines the distance between any two nodes + * @param linkage one of the predefined linkage values + * @param cutOff the cut-off value that determines where to cut the hierarchic tree into clusters + * @returns the resulting number of clusters * @throws {Stubs.Exceptions.ArgumentError} if an unknown linkage is used * @static */ @@ -76762,10 +78702,10 @@ declare namespace system{ * as a binary tree structure. It can easily be traversed by starting from the {@link yfiles.algorithms.Dendrogram#root root node} and moving on to nodes of the next * level via method {@link yfiles.algorithms.Dendrogram#getChildren}. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeDistanceProvider} distances a given {@link yfiles.algorithms.INodeDistanceProvider} object that determines the distance between any two nodes - * @param {yfiles.algorithms.Linkage} linkage one of the predefined linkage values - * @returns {yfiles.algorithms.Dendrogram} a {@link yfiles.algorithms.Dendrogram} which represents the result of the clustering as a binary tree + * @param graph the input graph + * @param distances a given {@link } object that determines the distance between any two nodes + * @param linkage one of the predefined linkage values + * @returns a {@link } which represents the result of the clustering as a binary tree * @throws {Stubs.Exceptions.ArgumentError} if an unknown linkage is given * @static */ @@ -76780,15 +78720,15 @@ declare namespace system{ * The distance can be defined using diverse metrics as euclidean distance, euclidean-squared distance, manhattan distance * or chebychev distance. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {yfiles.algorithms.IDataProvider} nodePositions the {@link yfiles.algorithms.IDataProvider} that holds a {@link yfiles.algorithms.YPoint point} representing the current position of each node in the graph - * @param {yfiles.algorithms.DistanceMetric} distanceMetric one of the predefined distance metrics - * @param {number} k the number of clusters - * @param {number} [iterations=100] the maximum number of iterations performed by the algorithm for convergence - * @param {Array.} [centroids=null] the initial centroids - * @returns {number} the number of resulting (non-empty) clusters + * @param nodePositions the {@link } that holds a {@link point} representing the current position of each node in the graph + * @param distanceMetric one of the predefined distance metrics + * @param k the number of clusters + * @param [iterations=100] the maximum number of iterations performed by the algorithm for convergence + * @param [centroids=null] the initial centroids + * @returns the number of resulting (non-empty) clusters * @throws {Stubs.Exceptions.ArgumentError} if the given distance metric is not supported * @static */ @@ -76804,15 +78744,15 @@ declare namespace system{ * or chebychev distance. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.algorithms.Graph} options.graph the input graph - * @param {yfiles.algorithms.INodeMap} options.clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param options.graph the input graph + * @param options.clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {yfiles.algorithms.IDataProvider} options.nodePositions the {@link yfiles.algorithms.IDataProvider} that holds a {@link yfiles.algorithms.YPoint point} representing the current position of each node in the graph - * @param {yfiles.algorithms.DistanceMetric} options.distanceMetric one of the predefined distance metrics - * @param {number} options.k the number of clusters - * @param {number} [options.iterations=100] the maximum number of iterations performed by the algorithm for convergence - * @param {Array.} [options.centroids=null] the initial centroids - * @returns {number} the number of resulting (non-empty) clusters + * @param options.nodePositions the {@link } that holds a {@link point} representing the current position of each node in the graph + * @param options.distanceMetric one of the predefined distance metrics + * @param options.k the number of clusters + * @param [options.iterations=100] the maximum number of iterations performed by the algorithm for convergence + * @param [options.centroids=null] the initial centroids + * @returns the number of resulting (non-empty) clusters * @throws {Stubs.Exceptions.ArgumentError} if the given distance metric is not supported * @static */ @@ -76891,8 +78831,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @param {Object} value + * @param dataHolder + * @param value * @abstract */ set(dataHolder:Object,value:Object):void; @@ -76901,8 +78841,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @param {boolean} value + * @param dataHolder + * @param value * @abstract */ setBoolean(dataHolder:Object,value:boolean):void; @@ -76911,8 +78851,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @param {number} value + * @param dataHolder + * @param value * @abstract */ setInt(dataHolder:Object,value:number):void; @@ -76921,8 +78861,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @param {number} value + * @param dataHolder + * @param value * @abstract */ setNumber(dataHolder:Object,value:number):void; @@ -76960,8 +78900,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @returns {Object} + * @param dataHolder + * @returns * @abstract */ get(dataHolder:Object):Object; @@ -76970,8 +78910,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @returns {boolean} + * @param dataHolder + * @returns * @abstract */ getBoolean(dataHolder:Object):boolean; @@ -76980,8 +78920,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns * @abstract */ getInt(dataHolder:Object):number; @@ -76990,8 +78930,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns * @abstract */ getNumber(dataHolder:Object):number; @@ -77125,8 +79065,8 @@ declare namespace system{ export interface INodeSequencer extends Object{ /** * Returns a cursor that grants access to all nodes of the given graph in some order. - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.INodeCursor} a {@link yfiles.algorithms.INodeCursor} that grants access to all nodes of a graph + * @param graph the input graph + * @returns a {@link } that grants access to all nodes of a graph * @abstract */ nodes(graph:yfiles.algorithms.Graph):yfiles.algorithms.INodeCursor; @@ -77143,7 +79083,7 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[30,30],"d":0, "c":0},"styles":{"6":{"s":[35,35],"c":1, "f":"#FF0000", "b":0}},"n":[[425,305,6],[645,305],[425,525],[645,525,6],[485,365],[585,365,6],[485,465,6],[585,465]],"e":[[0,4],[0,1],[1,3],[3,2],[2,0],[4,6],[6,2],[6,7],[7,5],[5,4],[5,1],[7,3]],"vp":[425.0,305.0,250.0,250.0]}} Circular nodes represent one of the independent sets of the given graph *

    - * @class yfiles.algorithms.IndependentSets + * @class * @static */ export interface IndependentSets extends Object{} @@ -77153,8 +79093,8 @@ declare namespace system{ *

    * A greedy heuristic is applied which tries to find a large independent set. *

    - * @param {yfiles.algorithms.Graph} conflictGraph the input graph - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} containing an independent set of nodes + * @param conflictGraph the input graph + * @returns a {@link } containing an independent set of nodes * @see yfiles.algorithms.IndependentSets#getIndependentSet * @static */ @@ -77164,8 +79104,8 @@ declare namespace system{ *

    * The method iteratively calls method {@link yfiles.algorithms.IndependentSets#getIndependentSet}. *

    - * @param {yfiles.algorithms.Graph} conflictGraph the input graph - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains an independent set of nodes + * @param conflictGraph the input graph + * @returns an array of {@link }s each of which contains an independent set of nodes * @see yfiles.algorithms.IndependentSets#getIndependentSet * @static */ @@ -77177,7 +79117,7 @@ declare namespace system{ *

    * It may be used to perform fast access and remove operations on that type of list. *

    - * @class yfiles.algorithms.ListCell + * @class * @final */ export interface ListCell extends Object{} @@ -77187,7 +79127,7 @@ declare namespace system{ *

    * If there is no predecessor, then null is returned. *

    - * @returns {yfiles.algorithms.ListCell} + * @returns */ pred():yfiles.algorithms.ListCell; /** @@ -77195,7 +79135,7 @@ declare namespace system{ *

    * If there is no successor, then null is returned. *

    - * @returns {yfiles.algorithms.ListCell} + * @returns */ succ():yfiles.algorithms.ListCell; /** @@ -77228,7 +79168,7 @@ declare namespace system{ * flow of maximum value from s to t that has the minimum total cost. * * - * @class yfiles.algorithms.NetworkFlows + * @class * @static */ export interface NetworkFlows extends Object{} @@ -77248,12 +79188,12 @@ declare namespace system{ *

    * Edges may have infinite capacity, which is denoted by the value 0x7FFFFFFF. *

    - * @param {yfiles.algorithms.Graph} graph the given network - * @param {yfiles.algorithms.Node} source the source node of the network - * @param {yfiles.algorithms.Node} sink the sink node of the network - * @param {yfiles.algorithms.IDataProvider} eCapDP the {@link yfiles.algorithms.IEdgeMap} that returns the integer capacity of each edge or null if no bound is specified - * @param {yfiles.algorithms.IEdgeMap} flowEM the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with an integer flow for each edge - * @returns {number} the maximum flow value + * @param graph the given network + * @param source the source node of the network + * @param sink the sink node of the network + * @param eCapDP the {@link } that returns the integer capacity of each edge or null if no bound is specified + * @param flowEM the {@link } that will be filled during the execution with an integer flow for each edge + * @returns the maximum flow value * @see yfiles.algorithms.NetworkFlows#calcMaxFlowMinCut * @static */ @@ -77261,29 +79201,29 @@ declare namespace system{ /** * Solves a maximum flow problem using the preflow-push method but additionally marks all nodes that belong to the minimum * cut set that is associated with the source of the network. - * @param {yfiles.algorithms.Graph} graph the given network - * @param {yfiles.algorithms.Node} source the source node of the network - * @param {yfiles.algorithms.Node} sink the sink node of the network - * @param {yfiles.algorithms.IDataProvider} eCapDP the {@link yfiles.algorithms.IEdgeMap} that returns the integer capacity of each edge or null if no bound is specified - * @param {yfiles.algorithms.IEdgeMap} flowEM the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with an integer flow for each edge - * @param {yfiles.algorithms.INodeMap} sourceCutNM the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a boolean value indicating whether + * @param graph the given network + * @param source the source node of the network + * @param sink the sink node of the network + * @param eCapDP the {@link } that returns the integer capacity of each edge or null if no bound is specified + * @param flowEM the {@link } that will be filled during the execution with an integer flow for each edge + * @param sourceCutNM the {@link } that will be filled during the execution and returns a boolean value indicating whether * or not a node belongs to the cut set associated with the source of the network - * @returns {number} the maximum flow value + * @returns the maximum flow value * @see yfiles.algorithms.NetworkFlows#calcMaxFlow * @static */ static calcMaxFlowMinCut(graph:yfiles.algorithms.Graph,source:yfiles.algorithms.Node,sink:yfiles.algorithms.Node,eCapDP:yfiles.algorithms.IDataProvider,flowEM:yfiles.algorithms.IEdgeMap,sourceCutNM:yfiles.algorithms.INodeMap):number; /** * Solves a minimum cost maximum flow problem. - * @param {yfiles.algorithms.Graph} graph the given network - * @param {yfiles.algorithms.Node} s the source node of the network - * @param {yfiles.algorithms.Node} t the sink node of the network - * @param {yfiles.algorithms.IDataProvider} uCapDP the {@link yfiles.algorithms.IDataProvider} that returns the integer capacity of each edge or null if no bound is specified - * @param {yfiles.algorithms.IDataProvider} cost0DP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each edge - * @param {yfiles.algorithms.IEdgeMap} flowEM the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with an integer flow for each edge - * @param {yfiles.algorithms.INodeMap} dualsNM the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with an integer value (dual value) for each node + * @param graph the given network + * @param s the source node of the network + * @param t the sink node of the network + * @param uCapDP the {@link } that returns the integer capacity of each edge or null if no bound is specified + * @param cost0DP the {@link } that returns a double value (cost) for each edge + * @param flowEM the {@link } that will be filled during the execution with an integer flow for each edge + * @param dualsNM the {@link } that will be filled during the execution with an integer value (dual value) for each node * or null if no such values occur; dual values are also referred as potentials - * @returns {number} the total cost of the flow + * @returns the total cost of the flow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @static @@ -77302,18 +79242,18 @@ declare namespace system{ *

    * There are no restriction for the costs. In particular, they can also be negative. *

    - * @param {yfiles.algorithms.Graph} graph the given network - * @param {yfiles.algorithms.IDataProvider} lCapDP the {@link yfiles.algorithms.IDataProvider} that returns the integer lower bound for the capacity of each edge or null if no + * @param graph the given network + * @param lCapDP the {@link } that returns the integer lower bound for the capacity of each edge or null if no * bound is specified - * @param {yfiles.algorithms.IDataProvider} uCapDP the {@link yfiles.algorithms.IDataProvider} that returns the integer upper bound for the capacity of each edge or null if no + * @param uCapDP the {@link } that returns the integer upper bound for the capacity of each edge or null if no * bound is specified - * @param {yfiles.algorithms.IDataProvider} cost0DP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) of each edge - * @param {yfiles.algorithms.IDataProvider} supplyDP the {@link yfiles.algorithms.IDataProvider} that returns the supply/demand of each node; supply is denoted by a positive value, + * @param cost0DP the {@link } that returns a double value (cost) of each edge + * @param supplyDP the {@link } that returns the supply/demand of each node; supply is denoted by a positive value, * demand by a negative value - * @param {yfiles.algorithms.IEdgeMap} flowEM the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with an integer flow for each edge - * @param {yfiles.algorithms.INodeMap} dualsNM the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with an integer value (dual value) for each node + * @param flowEM the {@link } that will be filled during the execution with an integer flow for each edge + * @param dualsNM the {@link } that will be filled during the execution with an integer value (dual value) for each node * or null if no such values occur; dual values are also referred as potentials - * @returns {number} the total cost of the flow + * @returns the total cost of the flow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @static @@ -77321,15 +79261,15 @@ declare namespace system{ static minCostFlow(graph:yfiles.algorithms.Graph,lCapDP:yfiles.algorithms.IDataProvider,uCapDP:yfiles.algorithms.IDataProvider,cost0DP:yfiles.algorithms.IDataProvider,supplyDP:yfiles.algorithms.IDataProvider,flowEM:yfiles.algorithms.IEdgeMap,dualsNM:yfiles.algorithms.INodeMap):number; /** * Uses method {@link yfiles.algorithms.NetworkFlows#minCostFlow} to solve a minimum cost flow problem. - * @param {yfiles.algorithms.Graph} graph the given network - * @param {yfiles.algorithms.IDataProvider} uCapDP the {@link yfiles.algorithms.IDataProvider} that returns the integer capacity of each edge or null if no bound is specified - * @param {yfiles.algorithms.IDataProvider} cost0DP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each edge - * @param {yfiles.algorithms.IDataProvider} supplyDP the {@link yfiles.algorithms.IDataProvider} that returns the supply/demand of each node; supply is denoted by a positive value, + * @param graph the given network + * @param uCapDP the {@link } that returns the integer capacity of each edge or null if no bound is specified + * @param cost0DP the {@link } that returns a double value (cost) for each edge + * @param supplyDP the {@link } that returns the supply/demand of each node; supply is denoted by a positive value, * demand by a negative value - * @param {yfiles.algorithms.IEdgeMap} flowEM the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with an integer flow for each edge - * @param {yfiles.algorithms.INodeMap} dualsNM the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with an integer value (dual value) for each node + * @param flowEM the {@link } that will be filled during the execution with an integer flow for each edge + * @param dualsNM the {@link } that will be filled during the execution with an integer value (dual value) for each node * or null if no such values occur; dual values are also referred as potentials - * @returns {number} the total cost of the flow + * @returns the total cost of the flow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @static @@ -77345,10 +79285,9 @@ declare namespace system{ *

    *

    * Iteration over all three sets of edges is provided by means of bidirectional cursors that present a read-only view of - * the respective set - * ({@link yfiles.algorithms.Node#getEdgeCursor}, GetInEdgeCursor, GetOutEdgeCursor). Also supported is iteration over all nodes at - * opposite ends of either incoming edges or outgoing edges ({@link yfiles.algorithms.Node#getPredecessorCursor}, - * {@link yfiles.algorithms.Node#getSuccessorCursor}). + * the respective set ({@link yfiles.algorithms.Node#getEdgeCursor}, {@link yfiles.algorithms.Node#getInEdgeCursor}, + * {@link yfiles.algorithms.Node#getOutEdgeCursor}). Also supported is iteration over all nodes at opposite ends of either incoming + * edges or outgoing edges ({@link yfiles.algorithms.Node#getPredecessorCursor}, {@link yfiles.algorithms.Node#getSuccessorCursor}). *

    *

    * The number of overall edges at a node is called its degree ({@link yfiles.algorithms.Node#degree}), which is the sum of incoming and outgoing edges ({@link yfiles.algorithms.Node#inDegree}, {@link yfiles.algorithms.Node#outDegree}). @@ -77357,21 +79296,20 @@ declare namespace system{ * Important: Class Graph is the single authority for any structural changes to the graph data type. Specifically, this means that * there is no way to create or delete a node or an edge without using an actual Graph instance. *

    - * @class yfiles.algorithms.Node + * @class * @extends {yfiles.algorithms.GraphObject} */ export interface Node extends yfiles.algorithms.GraphObject{} export class Node { /** * Instantiates a new Node object that will be part of the given graph. - * @param {yfiles.algorithms.Graph} g The graph that the created node will belong to. - * @constructor + * @param g The graph that the created node will belong to. */ constructor(g:yfiles.algorithms.Graph); /** * Creates a copy of this node that will be inserted into the given graph. - * @param {yfiles.algorithms.Graph} g The graph that the created node will belong to. - * @returns {yfiles.algorithms.Node} The newly created Node object. + * @param g The graph that the created node will belong to. + * @returns The newly created Node object. */ createCopy(g:yfiles.algorithms.Graph):yfiles.algorithms.Node; /** @@ -77382,15 +79320,17 @@ declare namespace system{ *

    * Note that the first matching edge is returned, and that outgoing edges are tested prior to incoming edges. *

    - * @param {yfiles.algorithms.Node} opposite - * @returns {yfiles.algorithms.Edge} + * @param opposite + * @returns * @see yfiles.algorithms.Node#getEdgeFrom * @see yfiles.algorithms.Node#getEdgeTo */ getEdge(opposite:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** * Returns an edge cursor for all incoming and outgoing edges at this node. - * @returns {yfiles.algorithms.IEdgeCursor} + * @returns + * @see yfiles.algorithms.Node#getInEdgeCursor + * @see yfiles.algorithms.Node#getOutEdgeCursor */ getEdgeCursor():yfiles.algorithms.IEdgeCursor; /** @@ -77398,8 +79338,8 @@ declare namespace system{ *

    * Otherwise null is returned. *

    - * @param {yfiles.algorithms.Node} source - * @returns {yfiles.algorithms.Edge} + * @param source + * @returns * @see yfiles.algorithms.Node#getEdge * @see yfiles.algorithms.Node#getEdgeTo */ @@ -77409,8 +79349,8 @@ declare namespace system{ *

    * Otherwise null is returned. *

    - * @param {yfiles.algorithms.Node} target - * @returns {yfiles.algorithms.Edge} + * @param target + * @returns * @see yfiles.algorithms.Node#getEdge * @see yfiles.algorithms.Node#getEdgeFrom */ @@ -77419,10 +79359,10 @@ declare namespace system{ * Returns an edge cursor for incoming edges at this node. *

    * If an edge is specified, the cursor starts at the given edge, and the cyclic sequence order is the same as returned by - * GetInEdgeCursor. + * {@link yfiles.algorithms.Node#getInEdgeCursor}. *

    - * @param {yfiles.algorithms.Edge} [startEdge=null] The first edge being accessed by the returned cursor. - * @returns {yfiles.algorithms.IEdgeCursor} + * @param [startEdge=null] The first edge being accessed by the returned cursor. + * @returns * @see yfiles.algorithms.Node#getOutEdgeCursor */ getInEdgeCursor(startEdge?:yfiles.algorithms.Edge):yfiles.algorithms.IEdgeCursor; @@ -77431,7 +79371,7 @@ declare namespace system{ *

    * Neighbor nodes are those at the opposite ends of both incoming and outgoing edges. *

    - * @returns {yfiles.algorithms.INodeCursor} + * @returns * @see yfiles.algorithms.Node#getPredecessorCursor * @see yfiles.algorithms.Node#getSuccessorCursor */ @@ -77440,10 +79380,10 @@ declare namespace system{ * Returns an edge cursor for outgoing edges at this node. *

    * If an edge is specified, the cursor starts at the given edge, and the cyclic sequence order is the same as returned by - * GetOutEdgeCursor. + * {@link yfiles.algorithms.Node#getOutEdgeCursor}. *

    - * @param {yfiles.algorithms.Edge} [startEdge=null] The first edge being accessed by the returned cursor. - * @returns {yfiles.algorithms.IEdgeCursor} + * @param [startEdge=null] The first edge being accessed by the returned cursor. + * @returns * @see yfiles.algorithms.Node#getInEdgeCursor */ getOutEdgeCursor(startEdge?:yfiles.algorithms.Edge):yfiles.algorithms.IEdgeCursor; @@ -77452,7 +79392,7 @@ declare namespace system{ *

    * Predecessor nodes are those at the opposite ends of incoming edges. *

    - * @returns {yfiles.algorithms.INodeCursor} + * @returns * @see yfiles.algorithms.Node#getSuccessorCursor */ getPredecessorCursor():yfiles.algorithms.INodeCursor; @@ -77461,19 +79401,19 @@ declare namespace system{ *

    * Successor nodes are those at the opposite ends of outgoing edges. *

    - * @returns {yfiles.algorithms.INodeCursor} + * @returns * @see yfiles.algorithms.Node#getPredecessorCursor */ getSuccessorCursor():yfiles.algorithms.INodeCursor; /** * Sorts incoming edges at this node according to the given comparator. - * @param {yfiles.collections.IComparer.} c + * @param c * @see yfiles.algorithms.Node#sortOutEdges */ sortInEdges(c:yfiles.collections.IComparer):void; /** * Sorts outgoing edges at this node according to the given comparator. - * @param {yfiles.collections.IComparer.} c + * @param c * @see yfiles.algorithms.Node#sortInEdges */ sortOutEdges(c:yfiles.collections.IComparer):void; @@ -77627,7 +79567,7 @@ declare namespace system{ } /** * Specialized list implementation for instances of type {@link yfiles.algorithms.Node}. - * @class yfiles.algorithms.NodeList + * @class * @extends {yfiles.algorithms.YList} * @implements {yfiles.collections.IEnumerable.} */ @@ -77635,69 +79575,63 @@ declare namespace system{ export class NodeList { /** * Creates a list that is initialized with the entries of the given list. - * @param {yfiles.algorithms.NodeList} list the values are added to the new list - * @constructor + * @param list the values are added to the new list */ constructor(list:yfiles.algorithms.NodeList); /** * Creates a list that is initialized with a single node provided. - * @param {yfiles.algorithms.Node} v - * @constructor + * @param v */ constructor(v:yfiles.algorithms.Node); /** * Creates a list that is initialized with the nodes provided by the given array of nodes. - * @param {Array.} a - * @constructor + * @param a */ constructor(a:yfiles.algorithms.Node[]); /** * Creates a list that is initialized with those nodes from the given NodeCursor object for which the given data provider * returns true upon calling its {@link yfiles.algorithms.IDataProvider#getBoolean getBool} method. - * @param {yfiles.algorithms.INodeCursor} nc A node cursor providing nodes that should be added to this list. - * @param {yfiles.algorithms.IDataProvider} predicate A data provider that acts as a inclusion predicate for each node accessible by the given node cursor. - * @constructor + * @param nc A node cursor providing nodes that should be added to this list. + * @param predicate A data provider that acts as a inclusion predicate for each node accessible by the given node cursor. */ constructor(nc:yfiles.algorithms.INodeCursor,predicate:yfiles.algorithms.IDataProvider); /** * Creates a list that is initialized with the nodes provided by the given NodeCursor object. - * @param {yfiles.algorithms.INodeCursor} c - * @constructor + * @param c */ constructor(c:yfiles.algorithms.INodeCursor); /** * Creates an empty node list. - * @constructor */ constructor(); /** * Returns the first node in this list, or null when the list is empty. - * @returns {yfiles.algorithms.Node} The first node in the list. + * @returns The first node in the list. */ firstNode():yfiles.algorithms.Node; /** * Returns an enumerator for this collection. - * @returns {yfiles.collections.IEnumerator.} + * @returns */ getEnumerator():yfiles.collections.IEnumerator; /** * Returns the last node in this list, or null when the list is empty. - * @returns {yfiles.algorithms.Node} The last node in the list. + * @returns The last node in the list. */ lastNode():yfiles.algorithms.Node; /** * Returns a node cursor for this node list. - * @returns {yfiles.algorithms.INodeCursor} A node cursor granting access to the nodes within this list. + * @returns A node cursor granting access to the nodes within this list. */ nodes():yfiles.algorithms.INodeCursor; /** * Removes the first node from this list and returns it. - * @returns {yfiles.algorithms.Node} The first node from the list. + * @returns The first node from the list. */ popNode():yfiles.algorithms.Node; /** * Returns a node array containing all elements of this list in the canonical order. - * @returns {Array.} + * @returns */ toNodeArray():yfiles.algorithms.Node[]; static $class:yfiles.lang.Class; @@ -77715,7 +79649,7 @@ declare namespace system{ *
  • A DFS completion ordering of the nodes of a graph is a node ordering identical to the order of node completion events in a {@link yfiles.algorithms.Dfs depth first search}.
  • *
  • An st-ordering (v_1,v_2,....,v_n) of a biconnected graph is a node ordering which guarantees that:
  • * - * @class yfiles.algorithms.NodeOrders + * @class * @static */ export interface NodeOrders extends Object{} @@ -77725,8 +79659,8 @@ declare namespace system{ *

    * This ordering is a reversed topological ordering in case the input graph is acyclic. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {Array.} order an array of {@link number}s that returns for each {@link yfiles.algorithms.Node} v, its zero-based index within the calculated ordering, i.e., + * @param graph the input graph + * @param order an array of {@link }s that returns for each {@link } v, its zero-based index within the calculated ordering, i.e., * order[v.index()] == 5 means that v is the 6-th node within the ordering * @see yfiles.algorithms.NodeOrders#topological * @see yfiles.algorithms.NodeOrders#dfsCompletion @@ -77741,8 +79675,8 @@ declare namespace system{ *

    * This ordering is a reversed topological ordering in case the input graph is acyclic. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} containing the nodes of the graph in the order identical to the order of node completion + * @param graph the input graph + * @returns a {@link } containing the nodes of the graph in the order identical to the order of node completion * events in a depth first search * @see yfiles.algorithms.NodeOrders#topological * @see yfiles.algorithms.NodeOrders#dfsCompletion @@ -77758,10 +79692,11 @@ declare namespace system{ *
  • Source node s and sink node t are connected by an edge.
  • *
  • For each node v_i in the ordering other than s or t, there are neighbors v_j and v_k with j < i and k > i.
  • * - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {Array.} stOrder an array of {@link number}s that will be filled during the execution and returns for each {@link yfiles.algorithms.Node} v, its zero-based + * @param graph the input graph + * @param stOrder an array of {@link }s that will be filled during the execution and returns for each {@link } v, its zero-based * index within the calculated ordering, i.e., stOrder[v.index()] == 5 means that v is the 6-th node within the ordering - * @param {yfiles.algorithms.Edge} [stEdge=null] an {@link yfiles.algorithms.Edge} that connects source node s and sink node t + * @param [stEdge=null] an {@link } that connects source node s and sink node t + * @see yfiles.algorithms.NodeOrders#st * @see yfiles.algorithms.NodeOrders#st * @static */ @@ -77769,7 +79704,7 @@ declare namespace system{ /** * Assigns an st-ordering to the nodes of a biconnected graph. *

    - * Like St but the result is returned as a {@link yfiles.algorithms.NodeList}. + * Like {@link yfiles.algorithms.NodeOrders#st} but the result is returned as a {@link yfiles.algorithms.NodeList}. *

    *

    * An st-ordering (v_1,v_2,....,v_n) of a biconnected graph is a node ordering which guarantees that: @@ -77778,8 +79713,8 @@ declare namespace system{ *

  • Source node s and sink node t are connected by an edge.
  • *
  • For each node v_i in the ordering other than s or t, there are neighbors v_j and v_k with j < i and k > i.
  • * - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} containing the nodes of the graph in the order defined by the st-ordering + * @param graph the input graph + * @returns a {@link } containing the nodes of the graph in the order defined by the st-ordering * @see yfiles.algorithms.NodeOrders#st * @static */ @@ -77787,20 +79722,20 @@ declare namespace system{ /** * Converts an array-based result returned by a method of this class to a {@link yfiles.algorithms.NodeList} that contains all * nodes in the order provided by the given array. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {Array.} order an array of {@link number}s that will be filled during the execution and returns for each {@link yfiles.algorithms.Node} v, its zero-based + * @param graph the input graph + * @param order an array of {@link }s that will be filled during the execution and returns for each {@link } v, its zero-based * index within the calculated ordering, i.e., order[v.index()] == 5 means that v is the 6-th node within the ordering - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} containing the nodes of the graph in the order provided by the given array + * @returns a {@link } containing the nodes of the graph in the order provided by the given array * @static */ static toNodeList(graph:yfiles.algorithms.Graph,order:number[]):yfiles.algorithms.NodeList; /** * Copies an array-based result returned by a method of this class to a {@link yfiles.algorithms.INodeMap} that will provide values * of basic type int. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {Array.} order an array of {@link number}s that returns for each {@link yfiles.algorithms.Node} v, its zero-based index within the calculated ordering, i.e., + * @param graph the input graph + * @param order an array of {@link }s that returns for each {@link } v, its zero-based index within the calculated ordering, i.e., * order[v.index()] == 5 means that v is the 6-th node within the ordering - * @param {yfiles.algorithms.INodeMap} result the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with the zero-based index of each node within + * @param result the {@link } that will be filled during the execution with the zero-based index of each node within * the calculated ordering * @static */ @@ -77808,8 +79743,8 @@ declare namespace system{ /** * Copies a {@link yfiles.algorithms.NodeList}-based result returned by a method of this class to a {@link yfiles.algorithms.INodeMap} that * will provide values of basic type int. - * @param {yfiles.algorithms.NodeList} order a {@link yfiles.algorithms.NodeList} containing the nodes of the graph in the appropriate order - * @param {yfiles.algorithms.INodeMap} result the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with the zero-based index of each node within + * @param order a {@link } containing the nodes of the graph in the appropriate order + * @param result the {@link } that will be filled during the execution with the zero-based index of each node within * the calculated ordering * @static */ @@ -77820,18 +79755,18 @@ declare namespace system{ * A topological ordering of the nodes of a directed graph is a linear ordering of the nodes such that for each directed * edge (u,v), node u lies before v in the ordering. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {Array.} order an array of {@link number}s that will be filled during the execution and returns for each {@link yfiles.algorithms.Node} v, its zero-based + * @param graph the input graph + * @param order an array of {@link }s that will be filled during the execution and returns for each {@link } v, its zero-based * index within the calculated ordering, i.e., order[v.index()] == 5 means that v is the 6-th node within the ordering - * @returns {boolean} true if the graph is acyclic, false otherwise + * @returns true if the graph is acyclic, false otherwise * @see yfiles.algorithms.NodeOrders#topological * @static */ static topological(graph:yfiles.algorithms.Graph,order:number[]):boolean; /** * Returns a topological ordering of the nodes of a directed acyclic graph. - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} containing the nodes of the graph in the order they appear in the topological ordering + * @param graph the input graph + * @returns a {@link } containing the nodes of the graph in the order they appear in the topological ordering * @throws {Stubs.Exceptions.ArgumentError} if the graph is cyclic * @see yfiles.algorithms.NodeOrders#topological * @static @@ -77856,7 +79791,7 @@ declare namespace system{ * NP-hard for undirected graphs, but can be solved in linear time for directed acyclic graphs. * * - * @class yfiles.algorithms.Paths + * @class * @static */ export interface Paths extends Object{} @@ -77867,8 +79802,8 @@ declare namespace system{ * The returned node path has length path.size()+1, if the given path is not empty. Otherwise, the returned path will be * empty. The i-th node in the returned path will be either source or target node of the i-th edge in the given path. *

    - * @param {yfiles.algorithms.EdgeList} path the given {@link yfiles.algorithms.EdgeList path of edges} - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList path of nodes} from the given {@link yfiles.algorithms.EdgeList path of edges} + * @param path the given {@link path of edges} + * @returns a {@link path of nodes} from the given {@link path of edges} * @static */ static constructNodePath(path:yfiles.algorithms.EdgeList):yfiles.algorithms.NodeList; @@ -77880,9 +79815,9 @@ declare namespace system{ *

    * The internal nodes on directed chains all have in-degree 1 and out-degree 1. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {boolean} directed true if the chain should be considered as directed, false otherwise - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s each of which contains the edges (at least two) that make up a chain + * @param graph the input graph + * @param directed true if the chain should be considered as directed, false otherwise + * @returns an array of {@link }s each of which contains the edges (at least two) that make up a chain * @see yfiles.algorithms.Paths#constructNodePath * @static */ @@ -77890,31 +79825,31 @@ declare namespace system{ /** * A variant of {@link yfiles.algorithms.Paths#findAllPaths} which returns all simple directed or undirected paths between two * given nodes and, additionally, allows to specify a filter for the paths to be returned. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} startNode the given start node - * @param {yfiles.algorithms.Node} endNode the given end node - * @param {boolean} directed true if the path should be considered as directed, false otherwise - * @param {function(yfiles.algorithms.EdgeList): boolean} filter a predicate that accepts or rejects a found {@link yfiles.algorithms.EdgeList} and adds it to the result - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s each of which represents a path between the start and end node. + * @param graph the input graph + * @param startNode the given start node + * @param endNode the given end node + * @param directed true if the path should be considered as directed, false otherwise + * @param filter a predicate that accepts or rejects a found {@link } and adds it to the result + * @returns an array of {@link }s each of which represents a path between the start and end node. * @static */ static findAllPaths(graph:yfiles.algorithms.Graph,startNode:yfiles.algorithms.Node,endNode:yfiles.algorithms.Node,directed:boolean,filter:(obj:yfiles.algorithms.EdgeList)=>boolean):yfiles.algorithms.EdgeList[]; /** * Returns all simple directed or undirected paths that connect a start node with an end node. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} startNode the given start node - * @param {yfiles.algorithms.Node} endNode the given end node - * @param {boolean} directed true if the path should be considered as directed, false otherwise - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s each of which represents a path between the start and end node + * @param graph the input graph + * @param startNode the given start node + * @param endNode the given end node + * @param directed true if the path should be considered as directed, false otherwise + * @returns an array of {@link }s each of which represents a path between the start and end node * @static */ static findAllPaths(graph:yfiles.algorithms.Graph,startNode:yfiles.algorithms.Node,endNode:yfiles.algorithms.Node,directed:boolean):yfiles.algorithms.EdgeList[]; /** * Finds all edges that belong to a directed path from a start node to an end node. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} startNode the given start node - * @param {yfiles.algorithms.Node} endNode the given end node - * @param {yfiles.algorithms.IEdgeMap} pathEdges the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with a boolean value indicating whether or not + * @param graph the input graph + * @param startNode the given start node + * @param endNode the given end node + * @param pathEdges the {@link } that will be filled during the execution with a boolean value indicating whether or not * an edge belongs to a path connecting the two given nodes * @static */ @@ -77926,11 +79861,11 @@ declare namespace system{ *

    * The returned cursor only supports the operation {@link yfiles.algorithms.ICursor#ok}, {@link yfiles.algorithms.ICursor#current}, {@link yfiles.algorithms.ICursor#size} and {@link yfiles.algorithms.ICursor#next}. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} startNode the given start node - * @param {yfiles.algorithms.Node} endNode the given end node - * @param {boolean} directed true if the path should be considered as directed, false otherwise - * @returns {yfiles.algorithms.ICursor} a {@link yfiles.algorithms.ICursor} that calculates the next path in the sequence + * @param graph the input graph + * @param startNode the given start node + * @param endNode the given end node + * @param directed true if the path should be considered as directed, false otherwise + * @returns a {@link } that calculates the next path in the sequence * @static */ static findAllPathsCursor(graph:yfiles.algorithms.Graph,startNode:yfiles.algorithms.Node,endNode:yfiles.algorithms.Node,directed:boolean):yfiles.algorithms.ICursor; @@ -77940,20 +79875,20 @@ declare namespace system{ * All edges of the graph have an integral length associated with them. The longest path is defined as one of all directed * paths within the graph for which the edge lengths of all contained edges sum up to a maximum. *

    - * @param {yfiles.algorithms.Graph} graph a directed acyclic graph - * @param {yfiles.algorithms.IDataProvider} [edgeLength=null] the {@link yfiles.algorithms.IDataProvider} that returns the non-negative integer length of each edge - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the edges of the longest directed path + * @param graph a directed acyclic graph + * @param [edgeLength=null] the {@link } that returns the non-negative integer length of each edge + * @returns an {@link } containing the edges of the longest directed path * @static */ static findLongestPath(graph:yfiles.algorithms.Graph,edgeLength?:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList; /** * Calculates the longest path from a given node to all other node in a given directed acyclic graph. - * @param {yfiles.algorithms.Graph} graph a directed acyclic graph - * @param {yfiles.algorithms.Node} startNode the node for which the distances are calculated - * @param {yfiles.algorithms.IEdgeMap} dist the {@link yfiles.algorithms.IEdgeMap} that returns the distance (i.e. weight) of type double for each edge - * @param {yfiles.algorithms.INodeMap} maxDist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and holds the maximum distance between the given + * @param graph a directed acyclic graph + * @param startNode the node for which the distances are calculated + * @param dist the {@link } that returns the distance (i.e. weight) of type double for each edge + * @param maxDist the {@link } that will be filled during the execution and holds the maximum distance between the given * node and all other nodes - * @param {yfiles.algorithms.IEdgeMap} predicate the {@link yfiles.algorithms.IEdgeMap} that returns a boolean value indicating whether or not an edge should be considered + * @param predicate the {@link } that returns a boolean value indicating whether or not an edge should be considered * during the path search * @static */ @@ -77967,20 +79902,20 @@ declare namespace system{ * A heuristic is used for finding a path that is long. It is not guaranteed, though, that the returned path is actually * the longest path within the given graph, since that is a well known hard problem. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the edges of an undirected simple path + * @param graph the given graph + * @returns an {@link } containing the edges of an undirected simple path * @static */ static findLongPath(graph:yfiles.algorithms.Graph):yfiles.algorithms.EdgeList; /** * Returns whether or not a directed path from a start node to another node in an acyclic graph exists. - * @param {yfiles.algorithms.Graph} graph an acyclic graph which contains the two nodes - * @param {yfiles.algorithms.NodeList} topSort a {@link yfiles.algorithms.NodeList list} of nodes sorted in topological order - * @param {yfiles.algorithms.IEdgeMap} predicate the {@link yfiles.algorithms.IEdgeMap} that returns a boolean value indicating whether or not an edge should be considered + * @param graph an acyclic graph which contains the two nodes + * @param topSort a {@link list} of nodes sorted in topological order + * @param predicate the {@link } that returns a boolean value indicating whether or not an edge should be considered * during the path search - * @param {yfiles.algorithms.Node} startNode - * @param {yfiles.algorithms.Node} endNode - * @returns {boolean} true if a directed path from a start node to another node exists, false otherwise + * @param startNode + * @param endNode + * @returns true if a directed path from a start node to another node exists, false otherwise * @static */ static findPath(graph:yfiles.algorithms.Graph,topSort:yfiles.algorithms.NodeList,startNode:yfiles.algorithms.Node,endNode:yfiles.algorithms.Node,predicate:yfiles.algorithms.IEdgeMap):boolean; @@ -77991,11 +79926,11 @@ declare namespace system{ * The edges are returned in the order that they appear in the found path. If the returned path is empty, no path between * the given nodes was found. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} startNode the first node of the path - * @param {yfiles.algorithms.Node} endNode the last node of the path - * @param {boolean} directed true if the path should be directed, false otherwise - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the path edges between the start node and the end node + * @param graph the input graph + * @param startNode the first node of the path + * @param endNode the last node of the path + * @param directed true if the path should be directed, false otherwise + * @returns an {@link } containing the path edges between the start node and the end node * @static */ static findPath(graph:yfiles.algorithms.Graph,startNode:yfiles.algorithms.Node,endNode:yfiles.algorithms.Node,directed:boolean):yfiles.algorithms.EdgeList; @@ -78007,46 +79942,45 @@ declare namespace system{ * A planar embedding is represented by a {@link yfiles.algorithms.PlanarEmbedding#faces list of faces}. Each face is represented by a list of {@link yfiles.algorithms.Dart darts} which describe the * border of the face. *

    - * @class yfiles.algorithms.PlanarEmbedding + * @class * @final */ export interface PlanarEmbedding extends Object{} export class PlanarEmbedding { /** * Creates a new embedding for the specified planar graph. - * @param {yfiles.algorithms.Graph} graph a planar graph + * @param graph a planar graph * @throws {Stubs.Exceptions.ArgumentError} if the specified graph is not planar - * @constructor */ constructor(graph:yfiles.algorithms.Graph); /** * Returns the cyclic next dart of the given dart. - * @param {yfiles.algorithms.Dart} dart a dart - * @returns {yfiles.algorithms.Dart} the cyclic next dart of the given dart + * @param dart a dart + * @returns the cyclic next dart of the given dart */ getCyclicNext(dart:yfiles.algorithms.Dart):yfiles.algorithms.Dart; /** * Returns the cyclic previous dart of the given dart. - * @param {yfiles.algorithms.Dart} dart a dart - * @returns {yfiles.algorithms.Dart} the cyclic previous dart of the given dart + * @param dart a dart + * @returns the cyclic previous dart of the given dart */ getCyclicPrevious(dart:yfiles.algorithms.Dart):yfiles.algorithms.Dart; /** * Returns the two darts associated with the given edge. - * @param {yfiles.algorithms.Edge} edge an edge - * @returns {Array.} the two darts associated with the given edge + * @param edge an edge + * @returns the two darts associated with the given edge */ getDarts(edge:yfiles.algorithms.Edge):yfiles.algorithms.Dart[]; /** * Returns a {@link yfiles.collections.IList.} containing the (cyclic ordered) outgoing darts of the specified node. - * @param {yfiles.algorithms.Node} node a node - * @returns {yfiles.collections.IList.} a {@link yfiles.collections.IList.} containing the (cyclic ordered) outgoing darts + * @param node a node + * @returns a {@link } containing the (cyclic ordered) outgoing darts */ getOutgoingDarts(node:yfiles.algorithms.Node):yfiles.collections.IList; /** * Return whether or not the given graph is planar. - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {boolean} true if the given graph is planar, false otherwise + * @param graph the input graph + * @returns true if the given graph is planar, false otherwise * @static */ static isPlanar(graph:yfiles.algorithms.Graph):boolean; @@ -78079,7 +80013,7 @@ declare namespace system{ *
  • rank(v) - rank(w) >= length(v,w), for all (v,w) in E and,
  • *
  • the sum ∑(weight(v,w) * (rank(v) - rank(w))) over all (v,w) in E is minimized.
  • * - * @class yfiles.algorithms.RankAssignments + * @class * @static */ export interface RankAssignments extends Object{} @@ -78090,12 +80024,12 @@ declare namespace system{ *

    * Minimum edge length and weights should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph in which all the edges have directions, such that rank[source] < rank[target] and + * @param graph the input graph in which all the edges have directions, such that rank[source] < rank[target] and * rank[target] - rank[source] >= minlength[edge] - * @param {Array.} rank an array that will be filled with the ranking r of each node v such that rank[v.index] == r - * @param {Array.} minLength an array holding a non-negative value len of each edge e such that minLength[e.index] == len - * @param {number} [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) - * @returns {number} the number of layers + * @param rank an array that will be filled with the ranking r of each node v such that rank[v.index] == r + * @param minLength an array holding a non-negative value len of each edge e such that minLength[e.index] == len + * @param [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) + * @returns the number of layers * @see yfiles.algorithms.RankAssignments#simple * @static */ @@ -78111,31 +80045,33 @@ declare namespace system{ *

    * Minimum edge length and weights should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph in which all the edges have directions, such that rank[source] < rank[target] and + * @param graph the input graph in which all the edges have directions, such that rank[source] < rank[target] and * rank[target] - rank[source] >= minlength[edge] - * @param {yfiles.algorithms.INodeMap} rank the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the integer ranking of each node - * @param {yfiles.algorithms.IEdgeMap} minLength the {@link yfiles.algorithms.IEdgeMap} that returns an integer value (minimum/tight length) of each edge - * @param {number} [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) - * @returns {number} + * @param rank the {@link } that will be filled during the execution and returns the integer ranking of each node + * @param minLength the {@link } that returns an integer value (minimum/tight length) of each edge + * @param [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) + * @returns * @see yfiles.algorithms.RankAssignments#simple * @static */ static simple(graph:yfiles.algorithms.Graph,rank:yfiles.algorithms.INodeMap,minLength:yfiles.algorithms.IEdgeMap,maximalDuration?:number):number; /** - * Similar to Simplex but, additionally, it is possible to provide a valid initial tree solution for the problem. + * Similar to {@link yfiles.algorithms.RankAssignments#simplex} but, additionally, it is possible to provide a valid initial tree + * solution for the problem. *

    * Minimum edge length and weights should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.INodeMap} layer the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the zero-based ranking index for + * @param graph the given graph + * @param layer the {@link } that will be filled during the execution and returns the zero-based ranking index for * each node - * @param {yfiles.algorithms.IDataProvider} w the {@link yfiles.algorithms.IDataProvider} that returns an integer value (weight) of each edge - * @param {yfiles.algorithms.IDataProvider} minLength the {@link yfiles.algorithms.IDataProvider} that returns an integer value (minimum length) of each edge - * @param {yfiles.algorithms.IEdgeMap} tree the {@link yfiles.algorithms.IEdgeMap} that returns a boolean value indicating whether or not an edge is a tree edge - * @param {yfiles.algorithms.Node} _root the given root node of the tree solution - * @param {boolean} validRanking true if the argument layer contains a valid ranking, false otherwise - * @param {number} [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) - * @returns {number} the number of layers + * @param w the {@link } that returns an integer value (weight) of each edge + * @param minLength the {@link } that returns an integer value (minimum length) of each edge + * @param tree the {@link } that returns a boolean value indicating whether or not an edge is a tree edge + * @param _root the given root node of the tree solution + * @param validRanking true if the argument layer contains a valid ranking, false otherwise + * @param [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) + * @returns the number of layers + * @see yfiles.algorithms.RankAssignments#simplex * @see yfiles.algorithms.RankAssignments#simplex * @static */ @@ -78157,13 +80093,14 @@ declare namespace system{ *

    * Minimum edge length and weights should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.INodeMap} layer the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the zero-based ranking index for + * @param graph the given graph + * @param layer the {@link } that will be filled during the execution and returns the zero-based ranking index for * each node - * @param {yfiles.algorithms.IDataProvider} w the {@link yfiles.algorithms.IDataProvider} that returns an integer value (weight) of each edge - * @param {yfiles.algorithms.IDataProvider} minLength the {@link yfiles.algorithms.IDataProvider} that returns an integer value (minimum length) of each edge - * @param {number} [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) - * @returns {number} the number of layers + * @param w the {@link } that returns an integer value (weight) of each edge + * @param minLength the {@link } that returns an integer value (minimum length) of each edge + * @param [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) + * @returns the number of layers + * @see yfiles.algorithms.RankAssignments#simplex * @see yfiles.algorithms.RankAssignments#simplex * @static */ @@ -78186,7 +80123,7 @@ declare namespace system{ *
  • The all-pairs shortest path problem is the problem of finding shortest paths between every pair of * nodes such that the sum of the edge costs is minimized.
  • * - * @class yfiles.algorithms.ShortestPaths + * @class * @static */ export interface ShortestPaths extends Object{} @@ -78199,16 +80136,16 @@ declare namespace system{ *

    * This method yields the shortest distance from a given node s to all other nodes. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.} dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other * nodes. The distance from s to v is dist[v.index()]. If there is no path from s to v, then * dist[v.index()] == Double.POSITIVE_INFINITY. - * @param {Array.} [pred=null] an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param [pred=null] an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {boolean} true if the input graph is acyclic, false otherwise + * @returns true if the input graph is acyclic, false otherwise * @see yfiles.algorithms.ShortestPaths#acyclic * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath @@ -78223,14 +80160,14 @@ declare namespace system{ *

    * This method yields the shortest distance from a given node s to all other nodes. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @param {yfiles.algorithms.INodeMap} dist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (shortest distance) - * from node s to all other nodes or {@link number#POSITIVE_INFINITY} if no such paths exist - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @param dist the {@link } that will be filled during the execution and returns a double value (shortest distance) + * from node s to all other nodes or {@link #POSITIVE_INFINITY} if no such paths exist + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {boolean} true if the input graph is acyclic, false otherwise + * @returns true if the input graph is acyclic, false otherwise * @see yfiles.algorithms.ShortestPaths#acyclic * @static */ @@ -78241,13 +80178,13 @@ declare namespace system{ * If the given graph contains a negative-cost cycle, then false is returned and the values returned in dist are left * unspecified. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.>} dist an array of values that will be filled during the execution and returns the shortest path distances from all pairs of + * @param graph the input graph + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param dist an array of values that will be filled during the execution and returns the shortest path distances from all pairs of * nodes s and t in the graph. The distance from s to t is dist[s.index()][t.index()]. If there is no path from s to t, * then dist[s.index()][t.index()] == Double.POSITIVE_INFINITY. - * @returns {boolean} true if the given graph does not contain a negative-cost cycle, false otherwise + * @returns true if the given graph does not contain a negative-cost cycle, false otherwise * @static */ static allPairs(graph:yfiles.algorithms.Graph,directed:boolean,cost:number[],dist:number[][]):boolean; @@ -78261,15 +80198,15 @@ declare namespace system{ * other nodes. If, on the other hand, the given graph contains negative-cost cycles, this method will yield no reasonable * result which will be indicated by the return value false. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @param {yfiles.algorithms.INodeMap} dist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (shortest distance) - * from node s to all other nodes or {@link number#POSITIVE_INFINITY} if no such paths exist - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param graph the input graph + * @param s the source node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @param dist the {@link } that will be filled during the execution and returns a double value (shortest distance) + * from node s to all other nodes or {@link #POSITIVE_INFINITY} if no such paths exist + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {boolean} + * @returns * @see yfiles.algorithms.ShortestPaths#bellmanFord * @static */ @@ -78284,17 +80221,17 @@ declare namespace system{ * other nodes. If, on the other hand, the given graph contains negative-cost cycles, this method will yield no reasonable * result which will be indicated by the return value false. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.} dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other * nodes. The distance from s to v is dist[v.index()]. If there is no path from s to v, then * dist[v.index()] == Double.POSITIVE_INFINITY. - * @param {Array.} [pred=null] an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param [pred=null] an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {boolean} + * @returns * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @see yfiles.algorithms.ShortestPaths#bellmanFord @@ -78307,12 +80244,12 @@ declare namespace system{ *

    * If there is no path from node s to t, then an empty list is returned. *

    - * @param {yfiles.algorithms.Node} s the start node of the shortest path which must be the same start node that was specified when pred was calculated - * @param {yfiles.algorithms.Node} t the target node of the path - * @param {Array.} pred an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param s the start node of the shortest path which must be the same start node that was specified when pred was calculated + * @param t the target node of the path + * @param pred an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges on the shortest path from s to t in the correct order + * @returns a {@link list} containing the edges on the shortest path from s to t in the correct order * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @static */ @@ -78323,11 +80260,11 @@ declare namespace system{ *

    * If there is no path from node s to t, then an empty list is returned. *

    - * @param {yfiles.algorithms.Node} s the start node of the shortest path which must be the same start node that was specified when pred was calculated - * @param {yfiles.algorithms.Node} t the target node of the path - * @param {yfiles.algorithms.IDataProvider} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param s the start node of the shortest path which must be the same start node that was specified when pred was calculated + * @param t the target node of the path + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges on the shortest path from s to t in the correct order + * @returns a {@link list} containing the edges on the shortest path from s to t in the correct order * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @static */ @@ -78338,12 +80275,12 @@ declare namespace system{ *

    * If there is no path from node s to t, then an empty list is returned. *

    - * @param {yfiles.algorithms.Node} s the start node of the shortest path which must be the same start node that was specified when pred was calculated - * @param {yfiles.algorithms.Node} t the target node of the path - * @param {Array.} pred an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param s the start node of the shortest path which must be the same start node that was specified when pred was calculated + * @param t the target node of the path + * @param pred an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList list} containing the nodes on the shortest path from s to t in the correct order + * @returns a {@link list} containing the nodes on the shortest path from s to t in the correct order * @see yfiles.algorithms.ShortestPaths#constructNodePath * @static */ @@ -78354,11 +80291,11 @@ declare namespace system{ *

    * If there is no path from node s to t, then an empty list is returned. *

    - * @param {yfiles.algorithms.Node} s the start node of the shortest path which must be the same start node that was specified when pred was calculated - * @param {yfiles.algorithms.Node} t the target node of the path - * @param {yfiles.algorithms.IDataProvider} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param s the start node of the shortest path which must be the same start node that was specified when pred was calculated + * @param t the target node of the path + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList list} containing the nodes on the shortest path from s to t in the correct order + * @returns a {@link list} containing the nodes on the shortest path from s to t in the correct order * @see yfiles.algorithms.ShortestPaths#constructNodePath * @static */ @@ -78374,14 +80311,14 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.} dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other * nodes. The distance from s to v is dist[v.index()]. If there is no path from s to v, then * dist[v.index()] == Double.POSITIVE_INFINITY. - * @param {Array.} [pred=null] an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param [pred=null] an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. * @see yfiles.algorithms.ShortestPaths#constructNodePath @@ -78401,13 +80338,13 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @param {yfiles.algorithms.INodeMap} dist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (shortest distance) - * from node s to all other nodes or {@link number#POSITIVE_INFINITY} if no such paths exist - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @param dist the {@link } that will be filled during the execution and returns a double value (shortest distance) + * from node s to all other nodes or {@link #POSITIVE_INFINITY} if no such paths exist + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath @@ -78421,15 +80358,15 @@ declare namespace system{ *

    * This method assumes that each edge of the input graph has a cost of 1.0. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} start the start node - * @param {yfiles.algorithms.IDataProvider} targetMap the {@link yfiles.algorithms.IDataProvider} that returns a boolean value indicating whether or not a node belongs to the set of + * @param graph the input graph + * @param start the start node + * @param targetMap the {@link } that returns a boolean value indicating whether or not a node belongs to the set of * target nodes - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {number} maxLength the maximum edge length of the shortest paths - * @param {yfiles.algorithms.EdgeList} pathEdges a {@link yfiles.algorithms.EdgeList list} that will be filled during the execution and returns the edges on the shortest path from s to t in the correct + * @param directed true if the graph should be considered as directed, false otherwise + * @param maxLength the maximum edge length of the shortest paths + * @param pathEdges a {@link list} that will be filled during the execution and returns the edges on the shortest path from s to t in the correct * order - * @param {yfiles.algorithms.NodeList} pathNodes a {@link yfiles.algorithms.NodeList list} that will be filled during the execution and returns the nodes on the shortest path from s to t in the correct + * @param pathNodes a {@link list} that will be filled during the execution and returns the nodes on the shortest path from s to t in the correct * order * @static */ @@ -78439,11 +80376,11 @@ declare namespace system{ *

    * This method assumes that each edge of the input graph has a cost of 1.0. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} start the start node - * @param {yfiles.algorithms.Node} end the target node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IEdgeMap} pathMap the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns a boolean value indicating whether + * @param graph the input graph + * @param start the start node + * @param end the target node + * @param directed true if the graph should be considered as directed, false otherwise + * @param pathMap the {@link } that will be filled during the execution and returns a boolean value indicating whether * or not the edge belongs to a shortest path connecting the two nodes * @static */ @@ -78456,12 +80393,12 @@ declare namespace system{ *

    * The cost should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} costDP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for traversing each edge - * @param {yfiles.algorithms.Node} start the given start node - * @param {yfiles.algorithms.Node} end the given target node - * @param {number} k a non-negative integer value - * @returns {yfiles.algorithms.YList} a {@link yfiles.algorithms.YList list} of {@link yfiles.algorithms.EdgeList} objects each of which represents a path from start node to target node. The i-th + * @param graph the input graph + * @param costDP the {@link } that returns a double value (cost) for traversing each edge + * @param start the given start node + * @param end the given target node + * @param k a non-negative integer value + * @returns a {@link list} of {@link } objects each of which represents a path from start node to target node. The i-th * path in the list contains the i-th shortest path between the start and target node. * @static */ @@ -78475,41 +80412,41 @@ declare namespace system{ *

    * The cost should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} costDP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for traversing each edge - * @param {yfiles.algorithms.Node} start the given start node - * @param {yfiles.algorithms.Node} end the given target node - * @param {number} k a non-negative integer value - * @returns {yfiles.algorithms.ICursor} a {@link yfiles.algorithms.ICursor cursor} that calculates the next path in the sequence only when needed + * @param graph the input graph + * @param costDP the {@link } that returns a double value (cost) for traversing each edge + * @param start the given start node + * @param end the given target node + * @param k a non-negative integer value + * @returns a {@link cursor} that calculates the next path in the sequence only when needed * @static */ static kShortestPathsCursor(graph:yfiles.algorithms.Graph,costDP:yfiles.algorithms.IDataProvider,start:yfiles.algorithms.Node,end:yfiles.algorithms.Node,k:number):yfiles.algorithms.ICursor; /** * Returns two edge-disjoint paths in a non-negatively weighted directed graph, such that both paths connect nodes s and t * and have minimum total length. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} source the source node of the shortest pair - * @param {yfiles.algorithms.Node} target the target node of the shortest pair - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} costDP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for traversing each edge - * @returns {Array.} a two-dimensional array of {@link yfiles.algorithms.EdgeList}s holding the resulting edge-disjoint paths or null if no such + * @param graph the input graph + * @param source the source node of the shortest pair + * @param target the target node of the shortest pair + * @param directed true if the graph should be considered as directed, false otherwise + * @param costDP the {@link } that returns a double value (cost) for traversing each edge + * @returns a two-dimensional array of {@link }s holding the resulting edge-disjoint paths or null if no such * edge-disjoint paths exist * @static */ static shortestPair(graph:yfiles.algorithms.Graph,source:yfiles.algorithms.Node,target:yfiles.algorithms.Node,directed:boolean,costDP:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList[]; /** * This method solves the single-source shortest path problem for arbitrary graphs. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.} dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other * nodes. The distance from s to v is dist[v.index()]. If there is no path from s to v, then * dist[v.index()] == Double.POSITIVE_INFINITY. - * @param {Array.} [pred=null] an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param [pred=null] an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {boolean} true if the weighted graph does not contain a negative-cost cycle, false otherwise + * @returns true if the weighted graph does not contain a negative-cost cycle, false otherwise * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @see yfiles.algorithms.ShortestPaths#singleSource @@ -78518,15 +80455,15 @@ declare namespace system{ static singleSource(graph:yfiles.algorithms.Graph,s:yfiles.algorithms.Node,directed:boolean,cost:number[],dist:number[],pred?:yfiles.algorithms.Edge[]):boolean; /** * This method solves the single-source shortest path problem for arbitrary graphs. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @param {yfiles.algorithms.INodeMap} dist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (shortest distance) - * from node s to all other nodes or {@link number#POSITIVE_INFINITY} if no such paths exist - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param graph the input graph + * @param s the source node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @param dist the {@link } that will be filled during the execution and returns a double value (shortest distance) + * from node s to all other nodes or {@link #POSITIVE_INFINITY} if no such paths exist + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {boolean} true if the weighted graph does not contain a negative-cost cycle, false otherwise + * @returns true if the weighted graph does not contain a negative-cost cycle, false otherwise * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @see yfiles.algorithms.ShortestPaths#singleSource @@ -78545,15 +80482,15 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {yfiles.algorithms.Node} t the sink node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.} pred an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param graph the input graph + * @param s the source node + * @param t the sink node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param pred an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {number} the distance between sand t if a path between these two nodes exists or Double.POSITIVE_INFINITY otherwise + * @returns the distance between sand t if a path between these two nodes exists or Double.POSITIVE_INFINITY otherwise * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink @@ -78571,14 +80508,14 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {yfiles.algorithms.Node} t the sink node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param graph the input graph + * @param s the source node + * @param t the sink node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {number} a shortest {@link yfiles.algorithms.EdgeList path of edges} between source and sink + * @returns a shortest {@link path of edges} between source and sink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink @@ -78597,12 +80534,12 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {yfiles.algorithms.Node} t the sink node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @returns {yfiles.algorithms.EdgeList} a shortest {@link yfiles.algorithms.EdgeList path of edges} between source and sink + * @param graph the input graph + * @param s the source node + * @param t the sink node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @returns a shortest {@link path of edges} between source and sink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink @@ -78621,12 +80558,12 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {yfiles.algorithms.Node} t the sink node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @returns {yfiles.algorithms.EdgeList} a shortest {@link yfiles.algorithms.EdgeList path of edges} between source and sink + * @param graph the input graph + * @param s the source node + * @param t the sink node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @returns a shortest {@link path of edges} between source and sink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink @@ -78636,13 +80573,13 @@ declare namespace system{ /** * Solves the single-source shortest path problem for arbitrary graphs in which each edge has a uniform cost of * 1.0. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other * nodes. The distance from s to v is dist[v.index()]. If there is no path from s to v, then * dist[v.index()] == Double.POSITIVE_INFINITY. - * @param {Array.} [pred=null] an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param [pred=null] an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. * @see yfiles.algorithms.ShortestPaths#constructNodePath @@ -78651,14 +80588,15 @@ declare namespace system{ */ static uniform(graph:yfiles.algorithms.Graph,s:yfiles.algorithms.Node,directed:boolean,dist:number[],pred?:yfiles.algorithms.Edge[]):void; /** - * Like Uniform but uses {@link yfiles.algorithms.INodeMap}s instead of arrays. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.INodeMap} dist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (shortest distance) - * from node s to all other nodes or {@link number#POSITIVE_INFINITY} if no such paths exist - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * Like {@link yfiles.algorithms.ShortestPaths#uniform} but uses {@link yfiles.algorithms.INodeMap}s instead of arrays. + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param dist the {@link } that will be filled during the execution and returns a double value (shortest distance) + * from node s to all other nodes or {@link #POSITIVE_INFINITY} if no such paths exist + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists + * @see yfiles.algorithms.ShortestPaths#uniform * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @static @@ -78666,8 +80604,8 @@ declare namespace system{ static uniform(graph:yfiles.algorithms.Graph,s:yfiles.algorithms.Node,directed:boolean,dist:yfiles.algorithms.INodeMap,pred:yfiles.algorithms.INodeMap):void; /** * Convenience method that returns an array containing uniform edge costs of 1.0 for each edge of the given graph. - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {Array.} an array that contains uniform edge costs of value 1.0 (i.e., for each edge e: cost[e.index()] == 1.0) + * @param graph the input graph + * @returns an array that contains uniform edge costs of value 1.0 (i.e., for each edge e: cost[e.index()] == 1.0) * @static */ static uniformCost(graph:yfiles.algorithms.Graph):number[]; @@ -78675,15 +80613,15 @@ declare namespace system{ } /** * This class provides methods for efficiently sorting graph elements in graph structures. - * @class yfiles.algorithms.Sorting + * @class * @static */ export interface Sorting extends Object{} export class Sorting { /** * Sorts the nodes of a given graph by degree in ascending order. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {Array.} an array of {@link yfiles.algorithms.Node}s sorted by degree in ascending order + * @param graph the given graph + * @returns an array of {@link }s sorted by degree in ascending order * @static */ static sortNodesByDegree(graph:yfiles.algorithms.Graph):yfiles.algorithms.Node[]; @@ -78692,9 +80630,9 @@ declare namespace system{ *

    * The nodes are sorted in ascending order. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.IDataProvider} keys the {@link yfiles.algorithms.IDataProvider} that returns the keys based on which the nodes will be sorted - * @returns {Array.} an array of {@link yfiles.algorithms.Node}s sorted by an integer key in ascending order + * @param graph the given graph + * @param keys the {@link } that returns the keys based on which the nodes will be sorted + * @returns an array of {@link }s sorted by an integer key in ascending order * @static */ static sortNodesByIntKey(graph:yfiles.algorithms.Graph,keys:yfiles.algorithms.IDataProvider):yfiles.algorithms.Node[]; @@ -78712,16 +80650,16 @@ declare namespace system{ * that graph. * * - * @class yfiles.algorithms.SpanningTrees + * @class * @static */ export interface SpanningTrees extends Object{} export class SpanningTrees { /** * Returns the overall cost of a previously calculated minimum spanning tree. - * @param {yfiles.algorithms.EdgeList} treeEdges the given {@link yfiles.algorithms.EdgeList list} of edges that form a minimum spanning tree - * @param {yfiles.algorithms.IDataProvider} edgeCost the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each tree edge - * @returns {number} the overall cost of the tree edges + * @param treeEdges the given {@link list} of edges that form a minimum spanning tree + * @param edgeCost the {@link } that returns a double value (cost) for each tree edge + * @returns the overall cost of the tree edges * @static */ static cost(treeEdges:yfiles.algorithms.EdgeList,edgeCost:yfiles.algorithms.IDataProvider):number; @@ -78733,9 +80671,9 @@ declare namespace system{ *
      *
    • J.B. Kruskal. On the shortest spanning subtree of a graph and the traveling salesman problem. Proceedings of the American Mathematical Society, pages 48-50, 1956.
    • *
    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each edge - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges that form the minimum spanning tree + * @param graph the input graph + * @param cost the {@link } that returns a double value (cost) for each edge + * @returns a {@link list} containing the edges that form the minimum spanning tree * @static */ static kruskal(graph:yfiles.algorithms.Graph,cost:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList; @@ -78744,9 +80682,9 @@ declare namespace system{ *

    * Currently, the result is obtained by calling {@link yfiles.algorithms.SpanningTrees#prim}. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each edge - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges that form the minimum spanning tree + * @param graph the input graph + * @param cost the {@link } that returns a double value (cost) for each edge + * @returns a {@link list} containing the edges that form the minimum spanning tree * @static */ static minimum(graph:yfiles.algorithms.Graph,cost:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList; @@ -78758,16 +80696,16 @@ declare namespace system{ *
      *
    • R.C. Prim. Shortest connection networks and some generalizations. Bell System Technical Journal, 36:1389-1401, 1957.
    • *
    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each edge - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges that form the minimum spanning tree + * @param graph the input graph + * @param cost the {@link } that returns a double value (cost) for each edge + * @returns a {@link list} containing the edges that form the minimum spanning tree * @static */ static prim(graph:yfiles.algorithms.Graph,cost:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList; /** * Calculates a spanning tree for the given graph in which each edge has a uniform cost of 1.0. - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges that form the minimum spanning tree + * @param graph the input graph + * @returns a {@link list} containing the edges that form the minimum spanning tree * @static */ static uniform(graph:yfiles.algorithms.Graph):yfiles.algorithms.EdgeList; @@ -78788,7 +80726,7 @@ declare namespace system{ * from v to w in G of length 2 or more. * * - * @class yfiles.algorithms.Transitivity + * @class * @static */ export interface Transitivity extends Object{} @@ -78799,8 +80737,8 @@ declare namespace system{ * Given a G = (V,E) be a directed acyclic graph. The reflexive, transitive closure of G is a graph which contains edge (v,w) only if there exists a * path from v to w in G. *

    - * @param {yfiles.algorithms.Graph} graph the input graph to which this method will add transitive edges, if necessary - * @param {yfiles.algorithms.EdgeList} [addedEdges=null] a {@link yfiles.algorithms.EdgeList list} that will be filled during the execution and contains the edges that have been added to the graph by this method + * @param graph the input graph to which this method will add transitive edges, if necessary + * @param [addedEdges=null] a {@link list} that will be filled during the execution and contains the edges that have been added to the graph by this method * @static */ static transitiveClosure(graph:yfiles.algorithms.Graph,addedEdges?:yfiles.algorithms.EdgeList):void; @@ -78813,8 +80751,8 @@ declare namespace system{ * Given G = (V,E) be a directed acyclic graph. The transitive reduction of G is a graph which contains edge (v,w) only if there exists no path * from v to w in G of length 2 or more. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.EdgeList} [transitiveEdges=null] a {@link yfiles.algorithms.EdgeList list} that will be filled during the execution and contains all transitive edges of the given graph; removal of these + * @param graph the input graph + * @param [transitiveEdges=null] a {@link list} that will be filled during the execution and contains all transitive edges of the given graph; removal of these * edges will yield the transitive reduction of the graph * @static */ @@ -78852,7 +80790,7 @@ declare namespace system{ *
  • Eccentricity: The eccentricity of a tree node is the maximum distance to any other node.
  • *
  • Center node: The center of a tree is the set of nodes that have minimal eccentricity.
  • * - * @class yfiles.algorithms.Trees + * @class * @static */ export interface Trees extends Object{} @@ -78863,9 +80801,9 @@ declare namespace system{ *

    * A list of all reversed edges will be returned by this method. *

    - * @param {yfiles.algorithms.Graph} tree the given tree - * @param {yfiles.algorithms.Node} [root=null] the given root element - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the reversed edges + * @param tree the given tree + * @param [root=null] the given root element + * @returns an {@link } containing the reversed edges * @static */ static directTree(tree:yfiles.algorithms.Graph,root?:yfiles.algorithms.Node):yfiles.algorithms.EdgeList; @@ -78874,8 +80812,8 @@ declare namespace system{ *

    * The center node has the property of inducing a minimum depth tree when being used as the root of that tree. *

    - * @param {yfiles.algorithms.Graph} tree the given undirected tree - * @returns {yfiles.algorithms.Node} the center node of the given undirected tree + * @param tree the given undirected tree + * @returns the center node of the given undirected tree * @static */ static getCenterRoot(tree:yfiles.algorithms.Graph):yfiles.algorithms.Node; @@ -78885,9 +80823,9 @@ declare namespace system{ * A leaf node is a node with outdegree == 0 if the input is a directed rooted tree, and a node with * degree == 1, otherwise. *

    - * @param {yfiles.algorithms.Graph} tree the given tree - * @param {boolean} directedRootedTree true if the algorithm should consider the tree as directed, false otherwise - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} that contains all leaf nodes of the given tree + * @param tree the given tree + * @param directedRootedTree true if the algorithm should consider the tree as directed, false otherwise + * @returns a {@link } that contains all leaf nodes of the given tree * @static */ static getLeafNodes(tree:yfiles.algorithms.Graph,directedRootedTree:boolean):yfiles.algorithms.NodeList; @@ -78896,11 +80834,11 @@ declare namespace system{ *

    * It is not part of the given subset. *

    - * @param {yfiles.algorithms.Graph} tree the given directed rooted tree - * @param {yfiles.algorithms.Node} root the root of the tree - * @param {boolean} rootedDownward true if the tree is directed from the root to the leaves, false otherwise - * @param {yfiles.algorithms.NodeList} nodes the subset of nodes - * @returns {yfiles.algorithms.Node} the {@link yfiles.algorithms.Node nearest common ancestor} of the given subset of nodes + * @param tree the given directed rooted tree + * @param root the root of the tree + * @param rootedDownward true if the tree is directed from the root to the leaves, false otherwise + * @param nodes the subset of nodes + * @returns the {@link nearest common ancestor} of the given subset of nodes * @static */ static getNearestCommonAncestor(tree:yfiles.algorithms.Graph,root:yfiles.algorithms.Node,rootedDownward:boolean,nodes:yfiles.algorithms.NodeList):yfiles.algorithms.Node; @@ -78911,26 +80849,29 @@ declare namespace system{ *

    *
      *
    • If the input is a directed rooted tree or reversed directed rooted tree, it returns the corresponding root node.
    • - *
    • If the input is a tree, the method returns a maximum weight center node as defined in GetWeightedCenterNode.
    • + *
    • + * If the input is a tree, the method returns a maximum weight center node as defined in + * {@link yfiles.algorithms.Trees#getWeightedCenterNode}. + *
    • *
    • If the input is not a tree, a node with indegree == 0 (or outdegree == 0) is returned.
    • *
    - * @param {yfiles.algorithms.Graph} tree the given tree - * @returns {yfiles.algorithms.Node} a possible root for the given tree + * @param tree the given tree + * @returns a possible root for the given tree * @static */ static getRoot(tree:yfiles.algorithms.Graph):yfiles.algorithms.Node; /** * Returns the depths of each subtree of a rooted directed tree. - * @param {yfiles.algorithms.Graph} tree a rooted directed tree graph - * @param {yfiles.algorithms.INodeMap} subtreeDepthMap the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with the depth of the subtree rooted at each + * @param tree a rooted directed tree graph + * @param subtreeDepthMap the {@link } that will be filled during the execution with the depth of the subtree rooted at each * node * @static */ static getSubTreeDepths(tree:yfiles.algorithms.Graph,subtreeDepthMap:yfiles.algorithms.INodeMap):void; /** * Returns the size (number of nodes) of each subtree of a rooted directed tree. - * @param {yfiles.algorithms.Graph} tree a rooted directed tree graph - * @param {yfiles.algorithms.INodeMap} subtreeSizeMap the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with the size of the subtree rooted at each + * @param tree a rooted directed tree graph + * @param subtreeSizeMap the {@link } that will be filled during the execution with the size of the subtree rooted at each * node * @static */ @@ -78942,9 +80883,9 @@ declare namespace system{ * This method can also be applied to the result obtained by * {@link yfiles.algorithms.Trees#getUndirectedTreeNodes}. In this case, the subtrees are considered to be undirected. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {Array.} [treeNodes=null] an array of {@link yfiles.algorithms.NodeList}s previously calculated by {@link yfiles.algorithms.Trees#getTreeNodes} - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList} objects each containing edges that belong to a maximal subtree + * @param graph the given graph + * @param [treeNodes=null] an array of {@link }s previously calculated by {@link #getTreeNodes} + * @returns an array of {@link } objects each containing edges that belong to a maximal subtree * @static */ static getTreeEdges(graph:yfiles.algorithms.Graph,treeNodes?:yfiles.algorithms.NodeList[]):yfiles.algorithms.EdgeList[]; @@ -78955,8 +80896,8 @@ declare namespace system{ * For each list of tree nodes, the first node element is the root of a tree. On each such root, all outgoing edges connect * to nodes in the subtree and each in-degree of the root is at least two. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList} objects each containing nodes that belong to a maximal directed subtree + * @param graph the given graph + * @returns an array of {@link } objects each containing nodes that belong to a maximal directed subtree * @static */ static getTreeNodes(graph:yfiles.algorithms.Graph):yfiles.algorithms.NodeList[]; @@ -78966,8 +80907,8 @@ declare namespace system{ *

    * For each list of tree nodes, the first node is the only node of the subtree that may be incident to non-tree edges. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList} objects each containing nodes that belong to a maximal undirected subtree + * @param graph the given graph + * @returns an array of {@link } objects each containing nodes that belong to a maximal undirected subtree * @static */ static getUndirectedTreeNodes(graph:yfiles.algorithms.Graph):yfiles.algorithms.NodeList[]; @@ -78976,9 +80917,9 @@ declare namespace system{ *

    * The number of paths per node are stored in the given {@link yfiles.algorithms.INodeMap}. *

    - * @param {yfiles.algorithms.Graph} tree the given tree - * @param {yfiles.algorithms.INodeMap} [intWeight=null] the {@link yfiles.algorithms.INodeMap} that holds the number of paths per node - * @returns {yfiles.algorithms.Node} a {@link yfiles.algorithms.Node} used by the greatest number of all undirected paths + * @param tree the given tree + * @param [intWeight=null] the {@link } that holds the number of paths per node + * @returns a {@link } used by the greatest number of all undirected paths * @static */ static getWeightedCenterNode(tree:yfiles.algorithms.Graph,intWeight?:yfiles.algorithms.INodeMap):yfiles.algorithms.Node; @@ -78989,2633 +80930,47 @@ declare namespace system{ * directedRootedTree == true, each component has to be a directed rooted tree. Otherwise, each component has to be an * undirected tree. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {boolean} directedRootedTree true if the algorithm should check for directed rooted trees, false otherwise - * @returns {boolean} true if the given graph is a forest, false otherwise + * @param graph the given graph + * @param directedRootedTree true if the algorithm should check for directed rooted trees, false otherwise + * @returns true if the given graph is a forest, false otherwise * @static */ static isForest(graph:yfiles.algorithms.Graph,directedRootedTree:boolean):boolean; /** * Checks whether or not the given graph is a forest, that is, a graph whose connected components are directed rooted * trees. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the given graph is a forest, false otherwise + * @param graph the given graph + * @returns true if the given graph is a forest, false otherwise * @static */ static isForest(graph:yfiles.algorithms.Graph):boolean; /** * Checks whether or not the given graph is a directed rooted tree in which each node has a maximum of n children. - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {number} n the allowed maximum of children - * @returns {boolean} true if the given graph is a n-ary tree, false otherwise + * @param graph the given graph + * @param n the allowed maximum of children + * @returns true if the given graph is a n-ary tree, false otherwise * @static */ static isNaryTree(graph:yfiles.algorithms.Graph,n:number):boolean; /** * Checks whether or not the given graph is a directed rooted tree. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the given graph is a directed rooted tree, false otherwise + * @param graph the given graph + * @returns true if the given graph is a directed rooted tree, false otherwise * @static */ static isRootedTree(graph:yfiles.algorithms.Graph):boolean; /** * Checks whether or not the given graph is an undirected tree. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the given graph is an undirected tree, false otherwise + * @param graph the given graph + * @returns true if the given graph is an undirected tree, false otherwise * @static */ static isTree(graph:yfiles.algorithms.Graph):boolean; static $class:yfiles.lang.Class; } - /** - * An implementation of a doubly linked list that provides direct access to the cells that store the elements. - *

    - * The cells are represented by class {@link yfiles.algorithms.ListCell}. - *

    - *

    - * This class supports fast access and removal operations, specifically, it is possible to remove an element in constant - * time (i.e. O(1)) given a reference to its list cell. - *

    - *

    - * Class YList supports iteration over the elements either by using the list cells directly (methods {@link yfiles.algorithms.YList#firstCell}/{@link yfiles.algorithms.YList#lastCell} together with - * {@link yfiles.algorithms.YList#succCell}/{@link yfiles.algorithms.YList#predCell}, respectively) or by means of a cursor - * ({@link yfiles.algorithms.YList#cursor}). - *

    - *

    - * Furthermore, YList offers its own {@link yfiles.algorithms.YList#sort} method. Note that this class also provides all relevant - * methods to use the list like a stack data type. - *

    - *

    - * This implementation permits null as values. It implements the {@link yfiles.collections.IList.} interface but does not support the {@link yfiles.algorithms.YList#subList} - * method. The implementation of this method will throw an {@link Stubs.Exceptions.NotSupportedError} if invoked. The {@link yfiles.algorithms.YList#cursor} - * returned by instances of this class is not fail fast. - *

    - * @class yfiles.algorithms.YList - * @implements {yfiles.collections.IList.} - */ - export interface YList extends Object,yfiles.collections.IList{} - export class YList { - /** - * Creates a list that is initialized with the elements provided by the given array of objects. - * @param {Array.} a - * @constructor - */ - constructor(a:Object[]); - /** - * Creates a list that is initialized with those elements from the given YCursor object for which the given data provider - * returns true upon calling its {@link yfiles.algorithms.IDataProvider#getBoolean getBool} method. - * @param {yfiles.algorithms.ICursor} c A cursor providing objects that should be added to this list. - * @param {yfiles.algorithms.IDataProvider} predicate A data provider that acts as a inclusion predicate for each object accessible by the given cursor. - * @constructor - */ - constructor(c:yfiles.algorithms.ICursor,predicate:yfiles.algorithms.IDataProvider); - /** - * Creates a list that is initialized with the elements provided by the given Collection object. - * @param {yfiles.collections.IEnumerable.} c - * @constructor - */ - constructor(c:yfiles.collections.IEnumerable); - /** - * Creates a list that is initialized with the elements provided by the given YCursor object. - * @param {yfiles.algorithms.ICursor} c - * @constructor - */ - constructor(c:yfiles.algorithms.ICursor); - /** - * Creates an empty doubly linked list. - * @constructor - */ - constructor(); - /** - * Appends all elements provided by the given cursor to this list. - *

    - * The cursor will be moved from its given position to the end. - *

    - *

    - * Be aware that a statement like aList.append(aList.cursor()) results in an infinite recursion. - *

    - * @param {yfiles.algorithms.ICursor} c - */ - addAll(c:yfiles.algorithms.ICursor):void; - /** - * Appends all elements provided by the given collection to this list. - * @param {yfiles.collections.ICollection.} collection - * @returns {boolean} Whether there have been elements appended. - */ - addAll(collection:yfiles.collections.ICollection):boolean; - /** - * - * @param {number} index - * @param {yfiles.collections.ICollection.} c - * @returns {boolean} - */ - addAll(index:number,c:yfiles.collections.ICollection):boolean; - /** - * Inserts the given object at the head of this list. - * @param {Object} o - * @returns {yfiles.algorithms.ListCell} The newly created ListCell object that stores the given object. - */ - addFirst(o:Object):yfiles.algorithms.ListCell; - /** - * Adds a formerly removed ListCell object at the head of this list. - *

    - * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. - *

    - * @param {yfiles.algorithms.ListCell} cell A list cell which is not part of any list. - */ - addFirstCell(cell:yfiles.algorithms.ListCell):void; - /** - * Inserts the given object at the tail of this list. - * @param {Object} o - * @returns {yfiles.algorithms.ListCell} The newly created ListCell object that stores the given object. - */ - addLast(o:Object):yfiles.algorithms.ListCell; - /** - * Adds a formerly removed ListCell object at the tail of this list. - *

    - * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. - *

    - * @param {yfiles.algorithms.ListCell} cell A list cell which is not part of any list. - */ - addLastCell(cell:yfiles.algorithms.ListCell):void; - /** - * Removes all elements from this list. - */ - clear():void; - /** - * Whether or not this list contains all the elements in the given collection. - *

    - * Equality of elements is defined by the {@link Object#equals} method. - *

    - * @param {yfiles.collections.ICollection.} collection - * @returns {boolean} - */ - containsAll(collection:yfiles.collections.ICollection):boolean; - /** - * Copies the elements of this collection to an array, starting at the specified array index. - * @param {Array.} array The one-dimensional array that is the destination of the elements copied from this collection. - * @param {number} arrayIndex The zero-based index in array at which copying begins. - */ - copyTo(array:Object[],arrayIndex:number):void; - /** - * Returns a cursor for this list. - *

    - * All cursor operations are supported. This cursor implementation is not fail-fast and continues to work if this list is - * modified during the traversal as long as the current ListCell the cursor points at is this in this list or has been - * removed from this list but has not been added to another instance since then. - *

    - * @returns {yfiles.algorithms.ICursor} - */ - cursor():yfiles.algorithms.ICursor; - /** - * Returns the cyclic predecessor cell of the given list cell. - *

    - * The last cell is returned as the cyclic predecessor of the first list cell. - *

    - * @param {yfiles.algorithms.ListCell} c - * @returns {yfiles.algorithms.ListCell} - */ - cyclicPred(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Returns the cyclic successor cell of the given list cell. - *

    - * The first cell is returned as the cyclic successor of the last list cell. - *

    - * @param {yfiles.algorithms.ListCell} c - * @returns {yfiles.algorithms.ListCell} - */ - cyclicSucc(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Returns the i-th element of this list. - * @param {number} i - * @returns {Object} - */ - elementAt(i:number):Object; - /** - * Returns the {@link yfiles.algorithms.ListCell} where object o is stored. - *

    - * This operation returns null, if no such cell exists. Equality of elements is defined by the {@link Object#equals} method. The first - * element in the list that matches that criteria is returned. - *

    - * @param {Object} o - * @returns {yfiles.algorithms.ListCell} the ListCell that contains the element or null if no such ListCell was found - */ - findCell(o:Object):yfiles.algorithms.ListCell; - /** - * Gets the element at the specified index. - * @param {number} index The zero-based index of the element to get or set. - * @returns {Object} The element at the specified index. - * @see yfiles.algorithms.YList#set - */ - get(index:number):Object; - /** - * Gets the cell at the given index. - * @param {number} index the zero-based index of the cell in this list. - * @returns {yfiles.algorithms.ListCell} The cell. - * @throws {Stubs.Exceptions.IndexOutOfRangeError} if the index is negative or greater or equal than the {@link yfiles.algorithms.YList#size} - */ - getCell(index:number):yfiles.algorithms.ListCell; - /** - * Returns an enumerator that iterates through this collection. - * @returns {yfiles.collections.IEnumerator.} An {@link yfiles.collections.IEnumerator.} that can be used to iterate through this collection. - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * Returns the element stored in the given list cell. - * @param {yfiles.algorithms.ListCell} c - * @returns {Object} - */ - getInfo(c:yfiles.algorithms.ListCell):Object; - /** - * Whether or not this list contains the given element. - *

    - * Equality of elements is defined by the {@link Object#equals} method. - *

    - * @param {Object} o - * @returns {boolean} - */ - includes(o:Object):boolean; - /** - * Returns the zero-based index of the given element in this list. - *

    - * If the given element is not in the list, -1 is returned. - *

    - * @param {Object} obj - * @returns {number} - */ - indexOf(obj:Object):number; - /** - * - * @param {number} index - * @param {Object} element - */ - insert(index:number,element:Object):void; - /** - * Inserts the given object into this list with respect to a given reference list cell. - *

    - * The (newly created) list cell that stores the object is inserted right after the reference list cell refCell. - *

    - *

    - * If refCell == null, the given object is inserted at the head of the list. - *

    - * @param {Object} o The object to be inserted. - * @param {yfiles.algorithms.ListCell} refCell The list cell used to reference the position. - * @returns {yfiles.algorithms.ListCell} The newly created ListCell object that stores object o. - */ - insertAfter(o:Object,refCell:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Inserts the given object into this list with respect to a given reference list cell. - *

    - * The (newly created) list cell that stores the object is inserted right before the reference list cell refCell. - *

    - *

    - * If refCell == null, the given object is appended to the list. - *

    - * @param {Object} o The object to be inserted. - * @param {yfiles.algorithms.ListCell} refCell The list cell used to reference the position. - * @returns {yfiles.algorithms.ListCell} The newly created ListCell object that stores object o. - */ - insertBefore(o:Object,refCell:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Inserts a formerly removed ListCell object into this list with respect to a given reference list cell. - *

    - * The ListCell object is inserted right after the reference list cell refCell. - *

    - *

    - * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. - *

    - * @param {yfiles.algorithms.ListCell} cellToInsert A list cell which is not part of any list. - * @param {yfiles.algorithms.ListCell} refCell The list cell used to reference the position. - */ - insertCellAfter(cellToInsert:yfiles.algorithms.ListCell,refCell:yfiles.algorithms.ListCell):void; - /** - * Inserts a formerly removed ListCell object into this list with respect to a given reference list cell. - *

    - * The ListCell object is inserted right before the reference list cell refCell. - *

    - *

    - * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. - *

    - * @param {yfiles.algorithms.ListCell} cellToInsert A list cell which is not part of any list. - * @param {yfiles.algorithms.ListCell} refCell The list cell used to reference the position. - */ - insertCellBefore(cellToInsert:yfiles.algorithms.ListCell,refCell:yfiles.algorithms.ListCell):void; - /** - * Checks whether this list contains elements. - * @returns {boolean} - */ - isEmpty():boolean; - /** - * - * @param {Object} o - * @returns {number} - */ - lastIndexOf(o:Object):number; - /** - * Equivalent to {@link yfiles.algorithms.YList#firstObject}. - * @returns {Object} - */ - peek():Object; - /** - * Removes the first element from this list and returns it. - * @returns {Object} - */ - pop():Object; - /** - * Removes the last element from this list and returns it. - * @returns {Object} - */ - popLast():Object; - /** - * Returns the predecessor cell of the given list cell. - * @param {yfiles.algorithms.ListCell} c - * @returns {yfiles.algorithms.ListCell} - */ - predCell(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Equivalent to {@link yfiles.algorithms.YList#addFirst}. - * @param {Object} o - * @returns {yfiles.algorithms.ListCell} - */ - push(o:Object):yfiles.algorithms.ListCell; - /** - * Removes the given object from this list. - *

    - * Only the first element for which equality to o holds gets removed. - *

    - * @param {Object} o - * @returns {boolean} - */ - remove(o:Object):boolean; - /** - * Removes the given collection of objects from this list. - * @param {yfiles.collections.ICollection.} collection - * @returns {boolean} Whether there have been elements removed. - */ - removeAll(collection:yfiles.collections.ICollection):boolean; - /** - * - * @param {number} index - */ - removeAt(index:number):void; - /** - * Removes the element pointed to by the given YCursor object. - * @param {yfiles.algorithms.ICursor} c - * @returns {Object} The removed element. - */ - removeAtCursor(c:yfiles.algorithms.ICursor):Object; - /** - * Removes the given list cell, and hence the element stored in it, from this list. - * @param {yfiles.algorithms.ListCell} c - * @returns {Object} The element that is stored in the removed cell. - */ - removeCell(c:yfiles.algorithms.ListCell):Object; - /** - * Retains only those elements in this list which are contained in the given collection. - * @param {yfiles.collections.ICollection.} collection - * @returns {boolean} Whether there have been elements removed. - */ - retainAll(collection:yfiles.collections.ICollection):boolean; - /** - * Reverses the sequence of elements in this list. - */ - reverse():void; - /** - * Sets the element at the specified index. - * @param {number} index The zero-based index of the element to get or set. - * @param value The element at the specified index. - * @see yfiles.algorithms.YList#get - */ - set(index:number,value:Object):void; - /** - * Updates the element stored in the given list cell with the given object. - * @param {yfiles.algorithms.ListCell} c - * @param {Object} value - */ - setInfo(c:yfiles.algorithms.ListCell,value:Object):void; - /** - * Sorts the elements in this list according to the given comparator. - *

    - * NOTE: The elements will be assigned to different list cells by this method. - *

    - * @param {yfiles.collections.IComparer.} comparer - */ - sort(comparer:yfiles.collections.IComparer):void; - /** - * Sorts the elements in this list into ascending order, according to their natural ordering. - *

    - * All elements must implement the {@link yfiles.lang.IComparable} interface. Furthermore, all elements in this list must be - * mutually comparable (that is, e1.compareTo(e2) must not throw a ClassCastException for any elements e1 and e2 in this - * list). - *

    - *

    - * NOTE: The elements will be assigned to different list cells by this method. - *

    - */ - sort():void; - /** - * Transfers the contents of the given list to the end of this list. - *

    - * The given list will be empty after this operation. - *

    - *

    - * Note that this operation transfers the list cells of the given list to this list. No new list cells are created by this - * operation. - *

    - * @param {yfiles.algorithms.YList} list - */ - splice(list:yfiles.algorithms.YList):void; - /** - * - * @param {number} fromIndex - * @param {number} toIndex - * @returns {yfiles.collections.IList.} - */ - subList(fromIndex:number,toIndex:number):yfiles.collections.IList; - /** - * Returns the successor cell of the given list cell. - * @param {yfiles.algorithms.ListCell} c - * @returns {yfiles.algorithms.ListCell} - */ - succCell(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Returns an array representation of this list. - * @returns {Array.} - */ - toArray():Object[]; - /** - * Gets the number of elements in this list. - * @type {number} - */ - size:number; - /** - * Gets the first element of this list. - * @type {Object} - */ - firstObject:Object; - /** - * Gets the last element of this list. - * @type {Object} - */ - lastObject:Object; - /** - * Gets the first cell of this list. - * @type {yfiles.algorithms.ListCell} - */ - firstCell:yfiles.algorithms.ListCell; - /** - * Gets the last cell of this list. - * @type {yfiles.algorithms.ListCell} - */ - lastCell:yfiles.algorithms.ListCell; - static $class:yfiles.lang.Class; - } - /** - * This class represents a line in the 2D-dimensional affine space. - *

    - * The line is defined by the equation ax + by + c = 0 - *

    - * @class yfiles.algorithms.AffineLine - */ - export interface AffineLine extends Object{} - export class AffineLine { - /** - * Creates an affine line which is defined by two points. - * @param {yfiles.algorithms.YPoint} p1 - * @param {yfiles.algorithms.YPoint} p2 - * @constructor - */ - constructor(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint); - /** - * Creates an affine line which is defined by a point and a vector. - * @param {yfiles.algorithms.YPoint} p1 - * @param {yfiles.algorithms.YVector} v - * @constructor - */ - constructor(p1:yfiles.algorithms.YPoint,v:yfiles.algorithms.YVector); - /** - * Returns the crossing of two lines. - *

    - * If the lines are parallel, null is returned. - *

    - * @param {yfiles.algorithms.AffineLine} l1 - * @param {yfiles.algorithms.AffineLine} l2 - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static getCrossing(l1:yfiles.algorithms.AffineLine,l2:yfiles.algorithms.AffineLine):yfiles.algorithms.YPoint; - /** - * Projects an point on the line in direction of the X-axis. - * @param {yfiles.algorithms.YPoint} p - * @returns {yfiles.algorithms.YPoint} - */ - getXProjection(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Projects an point on the line in direction of the Y-axis. - * @param {yfiles.algorithms.YPoint} p - * @returns {yfiles.algorithms.YPoint} - */ - getYProjection(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Gets a from ax+by+c = 0 - * @type {number} - */ - a:number; - /** - * Gets b from ax+by+c = 0 - * @type {number} - */ - b:number; - /** - * Gets c from ax+by+c = 0 - * @type {number} - */ - c:number; - static $class:yfiles.lang.Class; - } - /** - * The handle of a segment of a borderline. - * @class yfiles.algorithms.BorderLineSegment - */ - export interface BorderLineSegment extends Object{} - export class BorderLineSegment { - /** - * Returns the segment's value at the given position. - *

    - * Note: In case the position lies outside the segments range, the calculated value might be invalid. As the segment is not - * aware of any offsets the position also must not include any offsets. - *

    - * @param {number} position the position the value is retrieved for. - * @returns {number} the segment's value at the given position. - */ - getValueAt(position:number):number; - /** - * Returns the next segment or null if there is no such segment. - * @returns {yfiles.algorithms.BorderLineSegment} - */ - next():yfiles.algorithms.BorderLineSegment; - /** - * Returns the previous segment or null if there is no such segment. - * @returns {yfiles.algorithms.BorderLineSegment} - */ - prev():yfiles.algorithms.BorderLineSegment; - /** - * Gets the end of this segment. - * @type {number} - */ - end:number; - static $class:yfiles.lang.Class; - } - /** - * This class can be used to easily model an orthogonal border line or sky-line. - *

    - * It provides methods for measuring the distance between different BorderLine instances, merging multiple instances, - * modifying and efficiently moving them around. - *

    - * @class yfiles.algorithms.BorderLine - */ - export interface BorderLine extends Object{} - export class BorderLine { - /** - * Creates a new BorderLine from a single segment. - * @param {number} min the beginning of this borderline - * @param {number} max the ending of this borderline - * @param {number} valueAtMin the value of the segment at the beginning of this borderline - * @param {number} valueAtMax the value of the segment at the ending of this borderline - * @constructor - */ - constructor(min:number,max:number,valueAtMin:number,valueAtMax:number); - /** - * Creates a new BorderLine from a single segment. - * @param {number} min the beginning of this borderline - * @param {number} max the ending of this borderline - * @param {number} value the value of the segment - * @constructor - */ - constructor(min:number,max:number,value:number); - /** - * Creates a new BorderLine with the given value from -Double.MAX_VALUE to Double.MAX_VALUE. - * @param {number} value the value of the segment - * @constructor - */ - constructor(value:number); - /** - * Adds the given offset to the segments' positions. - *

    - * This method has complexity O(1). - *

    - * @param {number} delta the delta to add to the positions - */ - addOffset(delta:number):void; - /** - * Adds the given offset to the current values of the whole borderline. - *

    - * This method has complexity O(1). - *

    - * @param {number} delta the delta to add to the values - */ - addValueOffset(delta:number):void; - /** - * Convenience method that copies the actual data from the given argument to this instance. - * @param {yfiles.algorithms.BorderLine} other the argument to retrieve the values from - */ - adoptValues(other:yfiles.algorithms.BorderLine):void; - /** - * Creates a copy of this borderline. - *

    - * Optionally negates the values or offsets. - *

    - * @param {boolean} negateValues whether the values are negated - * @param {boolean} negateOffsets whether the offsets are negated - * @returns {yfiles.algorithms.BorderLine} the copy of the borderline - */ - createCopy(negateValues:boolean,negateOffsets:boolean):yfiles.algorithms.BorderLine; - /** - * Merges this borderline with the given borderline using the "maximum" policy. - *

    - * That means the resulting borderline will have greater value of both borderline on each position. If you imagine each - * borderline as a the upper border of a plane, the resulting borderline will be the upper border of the merged planes. - *

    - * @param {yfiles.algorithms.BorderLine} other the other borderline - * @returns {yfiles.algorithms.BorderLine} a new borderline that is the result of the merge - */ - createMax(other:yfiles.algorithms.BorderLine):yfiles.algorithms.BorderLine; - /** - * Merges this borderline with the given borderline using the "minimum" policy. - *

    - * That means the resulting borderline will have smaller value of both borderline on each position. If you imagine each - * borderline as a the lower border of a plane, the resulting borderline will be the lower border of the merged planes. - *

    - * @param {yfiles.algorithms.BorderLine} other the other borderline - * @returns {yfiles.algorithms.BorderLine} a new borderline that is the result of the merge - */ - createMin(other:yfiles.algorithms.BorderLine):yfiles.algorithms.BorderLine; - /** - * Returns the first segment or null if there is no such segment. - * @returns {yfiles.algorithms.BorderLineSegment} - */ - firstSegment():yfiles.algorithms.BorderLineSegment; - /** - * Calculates the minimal distance between this borderline and the other one. - *

    - * The other one is treated as if the values were all greater. - *

    - * @param {yfiles.algorithms.BorderLine} greater - * @returns {number} - */ - getDistanceTo(greater:yfiles.algorithms.BorderLine):number; - /** - * Returns the maximum position of the given segment. - * @param {yfiles.algorithms.BorderLineSegment} s the segment - * @returns {number} - */ - getMax(s:yfiles.algorithms.BorderLineSegment):number; - /** - * Calculates the maximum value in the interval from->to. - * @param {number} from - * @param {number} to - * @returns {number} - */ - getMaxValue(from:number,to:number):number; - /** - * Returns the minimum position of the given segment. - * @param {yfiles.algorithms.BorderLineSegment} s the segment - * @returns {number} - */ - getMin(s:yfiles.algorithms.BorderLineSegment):number; - /** - * Calculates the minimum value in the interval from->to. - * @param {number} from - * @param {number} to - * @returns {number} - */ - getMinValue(from:number,to:number):number; - /** - * Returns the segment at the given position. - * @param {number} pos the position - * @returns {yfiles.algorithms.BorderLineSegment} - */ - getSegmentAt(pos:number):yfiles.algorithms.BorderLineSegment; - /** - * Returns the slope of the given segment. - * @param {yfiles.algorithms.BorderLineSegment} s the segment - * @returns {number} - */ - getSlope(s:yfiles.algorithms.BorderLineSegment):number; - /** - * Returns the value of the minimum of the given segment. - *

    - * If the segment's slope is 0, it's the value of the whole segment. In case the slope differs from 0, it's the value of - * the start of the slope. - *

    - * @param {yfiles.algorithms.BorderLineSegment} s the segment - * @returns {number} - */ - getValue(s:yfiles.algorithms.BorderLineSegment):number; - /** - * Returns the value that is set on this borderline at the specified position. - *

    - * The position must lie within the range of the segment. - *

    - * @param {yfiles.algorithms.BorderLineSegment} segment The segment whose value shall be returned. - * @param {number} pos the position where the value will be retrieved. - * @returns {number} the value - * @throws {Stubs.Exceptions.ArgumentError} if pos is outside the segment's range. - */ - getValueAt(segment:yfiles.algorithms.BorderLineSegment,pos:number):number; - /** - * Returns the value that is set on this borderline at the specified position. - *

    - * The position must lie within the range of the segment that is stored in cell. - *

    - * @param {yfiles.algorithms.ListCell} cell The list cell containing the segment whose value shall be returned. - * @param {number} pos the position - * @returns {number} the value - * @throws {Stubs.Exceptions.ArgumentError} if pos is outside the segment's range that is stored in cell. - */ - getValueAt(cell:yfiles.algorithms.ListCell,pos:number):number; - /** - * Returns the value that is set on this borderline at the specified position. - * @param {number} pos the position - * @returns {number} the value - * @throws {Stubs.Exceptions.IndexOutOfRangeError} if the position is outside of the borderline. - */ - getValueAt(pos:number):number; - /** - * Grows this BorderLine horizontally, so that the {@link yfiles.algorithms.BorderLine#getValueAt values} of the BorderLine stay the same however their {@link yfiles.algorithms.BorderLine#getMin start} and {@link yfiles.algorithms.BorderLine#getMax end} - * points are moved in the direction of toMin and toMax. - *

    - * This is useful for scenarios where a BorderLine is needed that consists of an enlarged border. - *

    - *

    - * Note that this method normalizes the segments, i.e., it transforms each segment with slope != 0 to a segment with slope - * == 0. - *

    - * @param {number} toMin the delta by which the border should be extended towards -Infinity - * @param {number} toMax the delta by which the border should be extended towards +Infinity - * @param {boolean} positive whether the BorderLine should be interpreted to point in positive direction. This influences the direction into which a - * segment's border is extended. - */ - grow(toMin:number,toMax:number,positive:boolean):void; - /** - * Returns the last segment or null if there is no such segment. - * @returns {yfiles.algorithms.BorderLineSegment} - */ - lastSegment():yfiles.algorithms.BorderLineSegment; - /** - * Merges this borderline with the given borderline using the "maximum" policy. - * @param {yfiles.algorithms.BorderLine} other the other borderline - */ - mergeWithMax(other:yfiles.algorithms.BorderLine):void; - /** - * Merges this borderline with the given borderline using the "minimum" policy. - * @param {yfiles.algorithms.BorderLine} other the other borderline - */ - mergeWithMin(other:yfiles.algorithms.BorderLine):void; - /** - * Returns the next segment or null if there is no such segment. - * @param {yfiles.algorithms.BorderLineSegment} s - * @returns {yfiles.algorithms.BorderLineSegment} - */ - next(s:yfiles.algorithms.BorderLineSegment):yfiles.algorithms.BorderLineSegment; - /** - * Returns the previous segment or null if there is no such segment. - * @param {yfiles.algorithms.BorderLineSegment} s - * @returns {yfiles.algorithms.BorderLineSegment} - */ - prev(s:yfiles.algorithms.BorderLineSegment):yfiles.algorithms.BorderLineSegment; - /** - * Assures that all values in the given interval are greater or equal than the given value. - * @param {number} min the lower end of the interval - * @param {number} max the upper end of the interval - * @param {number} value the smallest possible value for the interval - */ - setMaxValue(min:number,max:number,value:number):void; - /** - * Assures that all values in the given interval are less or equal than the given value. - * @param {number} min the lower end of the interval - * @param {number} max the upper end of the interval - * @param {number} value the greatest possible value for the interval - */ - setMinValue(min:number,max:number,value:number):void; - /** - * Sets a specific interval to a slope starting at a given value. - * @param {number} min the left side of the interval. - * @param {number} max the right side of the interval. - * @param {number} value the value at min where the slope starts. - * @param {number} slope the slope of the segment in the given interval. - * @throws {Stubs.Exceptions.ArgumentError} if min is greater than max. - */ - setSloped(min:number,max:number,value:number,slope:number):void; - /** - * Sets a specific interval described by min and max to a given value. - * @param {number} min the left side of the interval. - * @param {number} max the right side of the interval. - * @param {number} value the value for the whole interval. - */ - setValue(min:number,max:number,value:number):void; - /** - * Gets the smallest position of this borderline - * @type {number} - */ - min:number; - /** - * Gets the greatest position of this borderline - * @type {number} - */ - max:number; - /** - * Gets the minimum value that is set on this borderline - * @type {number} - */ - minValue:number; - /** - * Gets the maximum value that is set on this borderline - * @type {number} - */ - maxValue:number; - static $class:yfiles.lang.Class; - } - /** - * This class provides useful geometric primitives and advanced geometric algorithms. - * @class yfiles.algorithms.Geom - * @static - */ - export interface Geom extends Object{} - export class Geom { - /** - * Calculates the convex hull for a set of points. - * @param {yfiles.algorithms.YList} points a list of {@link yfiles.algorithms.YPoint} objects - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.algorithms.YPoint} objects that constitute the convex hull of the given points. The list contains points - * in counter clockwise order around the hull. The first point is the one with the smallest x coordinate. If two such - * points exist then of these points the one with the smallest y coordinate is chosen as the first one. - * @static - */ - static calcConvexHull(points:yfiles.algorithms.YList):yfiles.algorithms.YList; - /** - * Calculates the intersection point of two affine lines. - *

    - * Each line is given by two points. - *

    - * @param {yfiles.algorithms.YPoint} p1 one point on the first line. - * @param {yfiles.algorithms.YPoint} p2 another point on the first line. - * @param {yfiles.algorithms.YPoint} p3 one point on the second line. - * @param {yfiles.algorithms.YPoint} p4 another point on the second line. - * @returns {yfiles.algorithms.YPoint} the intersection point of the specified lines or null if there is no intersection. - * @static - */ - static calcIntersection(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint,p3:yfiles.algorithms.YPoint,p4:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Calculates the intersection point of two affine lines. - *

    - * Each line is given by a point and a direction vector. - *

    - * @param {yfiles.algorithms.YPoint} p1 origin point of the first line. - * @param {yfiles.algorithms.YVector} d1 direction vector of the first line. - * @param {yfiles.algorithms.YPoint} p2 origin point of the second line. - * @param {yfiles.algorithms.YVector} d2 direction vector of the second line. - * @returns {yfiles.algorithms.YPoint} the intersection point of the specified lines or null if there is no intersection. - * @static - */ - static calcIntersection(p1:yfiles.algorithms.YPoint,d1:yfiles.algorithms.YVector,p2:yfiles.algorithms.YPoint,d2:yfiles.algorithms.YVector):yfiles.algorithms.YPoint; - /** - * Calculates the intersection point of two affine lines. - *

    - * Each line is given by the coordinates of two points. - *

    - * @param {number} x1 x-coordinate of one point on the first line. - * @param {number} y1 y-coordinate of one point on the first line. - * @param {number} x2 x-coordinate of another point on the first line. - * @param {number} y2 y-coordinate of another point on the first line. - * @param {number} x3 x-coordinate of one point on the second line. - * @param {number} y3 y-coordinate of one point on the second line. - * @param {number} x4 x-coordinate of another point on the second line. - * @param {number} y4 y-coordinate of another point on the second line. - * @returns {yfiles.algorithms.YPoint} the intersection point of the specified lines or null if there is no intersection. - * @static - */ - static calcIntersection(x1:number,y1:number,x2:number,y2:number,x3:number,y3:number,x4:number,y4:number):yfiles.algorithms.YPoint; - /** - * Intersects the pair of specified source Rectangle2D objects and puts the result into the specified destination Rectangle2D - * object. - *

    - * If one or both of the source rectangles have negative width or height, the resulting rectangle will be located at (0,0) - * with a width and height of -1. One of the source rectangles can also be the destination to avoid creating a third - * Rectangle2D object, but in this case the original points of this source rectangle will be overwritten by this method. - *

    - * @param {yfiles.algorithms.Rectangle2D} r1 the first of a pair of Rectangle2D objects to be intersected with each other - * @param {yfiles.algorithms.Rectangle2D} r2 the second of a pair of Rectangle2D objects to be intersected with each other - * @param {yfiles.algorithms.Rectangle2D} dest the Rectangle2D that holds the results of the intersection of r1 and r2 - * @returns {yfiles.algorithms.Rectangle2D} - * @static - */ - static calcIntersection(r1:yfiles.algorithms.Rectangle2D,r2:yfiles.algorithms.Rectangle2D,dest:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; - /** - * Unions the pair of source Rectangle2D objects and puts the result into the specified destination Rectangle2D object. - *

    - * If one of the source rectangles has negative width or height, it is excluded from the union. If both source rectangles - * have negative width or height, the destination rectangle will become a copy of r1. One of the source rectangles can also - * be the destination to avoid creating a third Rectangle2D object, but in this case the original points of this source - * rectangle will be overwritten by this method. If the destination is null, a new Rectangle2D is created. - *

    - * @param {yfiles.algorithms.Rectangle2D} r1 the first of a pair of Rectangle2D objects to be combined with each other - * @param {yfiles.algorithms.Rectangle2D} r2 the second of a pair of Rectangle2D objects to be combined with each other - * @param {yfiles.algorithms.Rectangle2D} dest the Rectangle2D that holds the results of the union of r1 and r2 - * @returns {yfiles.algorithms.Rectangle2D} - * @static - */ - static calcUnion(r1:yfiles.algorithms.Rectangle2D,r2:yfiles.algorithms.Rectangle2D,dest:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; - /** - * Returns true iff the given points are collinear, i.e. - *

    - * all three points lie on a common line. - *

    - *

    - * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) == 0} - *

    - * @param {yfiles.algorithms.YPoint} p - * @param {yfiles.algorithms.YPoint} q - * @param {yfiles.algorithms.YPoint} r - * @returns {boolean} - * @static - */ - static collinear(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; - /** - * Determines the distance of the point p to the line segment [l1, l2]. - * @param {number} pointX the x coordinate of p - * @param {number} pointY the y coordinate of p - * @param {number} lineX1 the x coordinate of l1 - * @param {number} lineY1 the y coordinate of l1 - * @param {number} lineX2 the x coordinate of l2 - * @param {number} lineY2 the y coordinate of l2 - * @returns {number} - * @static - */ - static distanceToLineSegment(pointX:number,pointY:number,lineX1:number,lineY1:number,lineX2:number,lineY2:number):number; - /** - * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) > 0} - * @param {yfiles.algorithms.YPoint} p - * @param {yfiles.algorithms.YPoint} q - * @param {yfiles.algorithms.YPoint} r - * @returns {boolean} - * @static - */ - static leftTurn(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; - /** - * Returns whether the two lines defined by the given coordinates intersect or not. - * @param {number} x1 - * @param {number} y1 - * @param {number} x2 - * @param {number} y2 - * @param {number} x3 - * @param {number} y3 - * @param {number} x4 - * @param {number} y4 - * @returns {boolean} - * @static - */ - static linesIntersect(x1:number,y1:number,x2:number,y2:number,x3:number,y3:number,x4:number,y4:number):boolean; - /** - * Same as {@link yfiles.algorithms.Geom#orientation} with double values as arguments. - * @param {number} px - * @param {number} py - * @param {number} qx - * @param {number} qy - * @param {number} rx - * @param {number} ry - * @returns {number} - * @static - */ - static orientation(px:number,py:number,qx:number,qy:number,rx:number,ry:number):number; - /** - * Returns the orientation of point r relative to the directed line from point p to point q. - *

    - * The given tuple of points is said to have positive orientation if p and q are distinct and r lies to the left of the - * oriented line passing through p and q and oriented from p to q. - *

    - *

    - * The tuple is said to have negative orientation if p and q are distinct and r lies to the right of the line, and the - * tuple is said to have orientation zero if the three points are collinear. - *

    - * @param {yfiles.algorithms.YPoint} p - * @param {yfiles.algorithms.YPoint} q - * @param {yfiles.algorithms.YPoint} r - * @returns {number} +1 in the case of positive orientation, -1 in the case of negative orientation and 0 in the case of zero orientation. - * @static - */ - static orientation(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):number; - /** - * Determines the projection of the point p onto the line segment [l1, l2]. - *

    - * The resulting point is - *

    - *
      - *
    • the orthogonal projection of p onto the line through l1 and l2, iff the projection lies on the line segment [l1, l2]
    • - *
    • the end point of the line segment [l1, l2] that is closest to p, otherwise
    • - *
    - * @param {number} pointX the x coordinate of p - * @param {number} pointY the y coordinate of p - * @param {number} lineX1 the x coordinate of l1 - * @param {number} lineY1 the y coordinate of l1 - * @param {number} lineX2 the x coordinate of l2 - * @param {number} lineY2 the y coordinate of l2 - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static projection(pointX:number,pointY:number,lineX1:number,lineY1:number,lineX2:number,lineY2:number):yfiles.algorithms.YPoint; - /** - * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) < 0} - * @param {yfiles.algorithms.YPoint} p - * @param {yfiles.algorithms.YPoint} q - * @param {yfiles.algorithms.YPoint} r - * @returns {boolean} - * @static - */ - static rightTurn(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; - /** - * Returns +1 if point d lies left of the directed circle through points a, b, and c, 0 if a,b,c and d are cocircular, and - * -1 otherwise. - * @param {yfiles.algorithms.YPoint} a - * @param {yfiles.algorithms.YPoint} b - * @param {yfiles.algorithms.YPoint} c - * @param {yfiles.algorithms.YPoint} d - * @returns {number} - * @static - */ - static sideOfCircle(a:yfiles.algorithms.YPoint,b:yfiles.algorithms.YPoint,c:yfiles.algorithms.YPoint,d:yfiles.algorithms.YPoint):number; - /** - * Converts the given degree value from radian to angular - * @param {number} angrad - * @returns {number} - * @static - */ - static toDegrees(angrad:number):number; - /** - * Converts the given degree value from angular to radian. - * @param {number} angdeg - * @returns {number} - * @static - */ - static toRadians(angdeg:number):number; - static $class:yfiles.lang.Class; - } - /** - * This is an interface for a sequence of instances of LineSegment. - * @interface - * @implements {yfiles.algorithms.ICursor} - */ - export interface ILineSegmentCursor extends Object,yfiles.algorithms.ICursor{ - /** - * Gets the instance of LineSegment the cursor is currently pointing on. - * @abstract - * @type {yfiles.algorithms.LineSegment} - */ - lineSegment:yfiles.algorithms.LineSegment; - } - var ILineSegmentCursor:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This interface describes a 2-dimensional object which has a finite bounding box. - * @interface - */ - export interface IPlaneObject extends Object{ - /** - * Gets the smallest Rectangle which contains the object. - * @abstract - * @type {yfiles.algorithms.YRectangle} - */ - boundingBox:yfiles.algorithms.YRectangle; - } - var IPlaneObject:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This is an interface for a sequence of instances of YPoint. - * @interface - * @implements {yfiles.algorithms.ICursor} - */ - export interface IPointCursor extends Object,yfiles.algorithms.ICursor{ - /** - * Gets the instance of YPoint the cursor is currently pointing on. - * @abstract - * @type {yfiles.algorithms.YPoint} - */ - point:yfiles.algorithms.YPoint; - } - var IPointCursor:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Double-precision immutable insets representation. - * @class yfiles.algorithms.Insets - * @implements {yfiles.lang.ICloneable} - */ - export interface Insets extends Object,yfiles.lang.ICloneable{} - export class Insets { - /** - * Creates a new instance with the given values - * @param {number} top The new top inset value - * @param {number} left The new left inset value - * @param {number} bottom The new bottom inset value - * @param {number} right The new right inset value - * @constructor - */ - constructor(top:number,left:number,bottom:number,right:number); - /** - * - * @returns {Object} - */ - clone():Object; - /** - * Creates a {@link yfiles.geometry.Insets} from a given {@link yfiles.algorithms.Insets}. - * @returns {yfiles.geometry.Insets} The {@link yfiles.geometry.Insets}. - */ - toInsets():yfiles.geometry.Insets; - /** - * The inset from the top. - * @const - * @type {number} - */ - top:number; - /** - * The inset from the left. - * @const - * @type {number} - */ - left:number; - /** - * The inset from the bottom. - * @const - * @type {number} - */ - bottom:number; - /** - * The inset from the right. - * @const - * @type {number} - */ - right:number; - static $class:yfiles.lang.Class; - } - /** - * An instance of this interface handles intersections found by the IntersectionAlgorithm, - * @interface - */ - export interface IIntersectionHandler extends Object{ - /** - * This method is called at every intersection. - * @param {Object} a - * @param {Object} b - * @abstract - */ - checkIntersection(a:Object,b:Object):void; - } - var IIntersectionHandler:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This class calculates the intersection of rectangles in the plane with the help of a sweep-line algorithm. - *

    - *
    The complexity is O(n log n + s) where n is the number of rectangles and s the number of intersections. - *

    - * @class yfiles.algorithms.IntersectionAlgorithm - * @static - */ - export interface IntersectionAlgorithm extends Object{} - export class IntersectionAlgorithm { - /** - * Calculates the intersections of rectangles in the plane. - *

    - * Every found intersection is reported to an - * IntersectionHandler. Rectangles with negative size are completely ignored by this implementation (i.e. never generate - * intersections) - *

    - * @param {yfiles.algorithms.YList} objects a list of PlaneObject objects. - * @param {yfiles.algorithms.IIntersectionHandler} iHandler intersections are reported to this class. - * @static - */ - static intersect(objects:yfiles.algorithms.YList,iHandler:yfiles.algorithms.IIntersectionHandler):void; - static $class:yfiles.lang.Class; - } - /** - * This class represents a line segment in the plane. - *

    - * A line segment is defined by its two end points. - *

    - * @class yfiles.algorithms.LineSegment - * @implements {yfiles.algorithms.IPlaneObject} - */ - export interface LineSegment extends Object,yfiles.algorithms.IPlaneObject{} - export class LineSegment { - /** - * Returns a new LineSegment. - * @param {yfiles.algorithms.YPoint} p1 the first end point of the line segment. - * @param {yfiles.algorithms.YPoint} p2 the second end point of the line segment. - * @constructor - */ - constructor(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint); - /** - * Checks whether a line segment intersects a paraxial box. - *

    - * Implemented using the Cohen-Sutherland algorithm. - *

    - * @param {number} boxX1 x-coordinate of the upper left corner of the box - * @param {number} boxY1 y-coordinate of the upper left corner of the box - * @param {number} boxX2 x-coordinate of the lower right corner of the box - * @param {number} boxY2 y-coordinate of the lower right corner of the box - * @param {number} sX1 x-coordinate of the first end point of the line segment - * @param {number} sY1 y-coordinate of the first end point of the line segment - * @param {number} sX2 x-coordinate of the second end point of the line segment - * @param {number} sY2 y-coordinate of the second end point of the line segment - * @returns {boolean} true if the line segment intersects the box, false otherwise. - * @static - */ - static boxIntersectsSegment(boxX1:number,boxY1:number,boxX2:number,boxY2:number,sX1:number,sY1:number,sX2:number,sY2:number):boolean; - /** - * Checks whether a line segment intersects a box. - *

    - * Implemented using the Cohen-Sutherland algorithm. - *

    - * @param {yfiles.algorithms.YRectangle} box A rectangle - * @param {number} x1 x-coordinate of the first end point of the line segment - * @param {number} y1 y-coordinate of the first end point of the line segment - * @param {number} x2 x-coordinate of the second end point of the line segment - * @param {number} y2 y-coordinate of the second end point of the line segment - * @returns {boolean} true if the line segment intersects the box, false otherwise. - * @static - */ - static boxIntersectsSegment(box:yfiles.algorithms.YRectangle,x1:number,y1:number,x2:number,y2:number):boolean; - /** - * Checks whether a line segment intersects a box. - * @param {yfiles.algorithms.YRectangle} box A rectangle. - * @param {yfiles.algorithms.YPoint} s first end point of the line segment. - * @param {yfiles.algorithms.YPoint} t second end point of the line segment. - * @returns {boolean} true if the line segments intersects the box, false otherwise. - * @static - */ - static boxIntersectsSegment(box:yfiles.algorithms.YRectangle,s:yfiles.algorithms.YPoint,t:yfiles.algorithms.YPoint):boolean; - /** - * Checks whether a given point lies on this line segment. - * @param {yfiles.algorithms.YPoint} point an arbitrary point. - * @returns {boolean} true if the line segments intersects the box, false otherwise. - */ - contains(point:yfiles.algorithms.YPoint):boolean; - /** - * Returns intersection point between the two line segments, if there is one or null if the two line segments do not - * intersect. - * @param {yfiles.algorithms.LineSegment} s1 first line segment - * @param {yfiles.algorithms.LineSegment} s2 second line segment - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static getIntersection(s1:yfiles.algorithms.LineSegment,s2:yfiles.algorithms.LineSegment):yfiles.algorithms.YPoint; - /** - * Checks whether the line segment intersects a point. - * @param {yfiles.algorithms.YPoint} p a point - * @returns {boolean} true if the line segments intersects the given point, false otherwise. - */ - intersects(p:yfiles.algorithms.YPoint):boolean; - /** - * Checks whether the line segment intersects a box. - * @param {yfiles.algorithms.YRectangle} box A rectangle. - * @returns {boolean} true if the line segments intersects the box, false otherwise. - */ - intersects(box:yfiles.algorithms.YRectangle):boolean; - /** - * Determines if the given points define a horizontal line segment. - *

    - * This methods allows for y-coordinate differences of up to 1e-8. - *

    - * @param {yfiles.algorithms.YPoint} p1 - * @param {yfiles.algorithms.YPoint} p2 - * @returns {boolean} true if the given points define a horizontal line segment; false otherwise. - * @static - */ - static isHorizontalSegment(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):boolean; - /** - * Returns if the projection on the X axis of the line segment covers a certain point on the X Axis. - * @param {number} x - * @returns {boolean} - */ - isInXIntervall(x:number):boolean; - /** - * Returns if the projection on the Y axis of the line segment covers a certain point on the Y Axis. - * @param {number} y - * @returns {boolean} - */ - isInYIntervall(y:number):boolean; - /** - * Determines if the given points define a vertical line segment. - *

    - * This methods allows for x-coordinate differences of up to 1e-8. - *

    - * @param {yfiles.algorithms.YPoint} p1 - * @param {yfiles.algorithms.YPoint} p2 - * @returns {boolean} true if the given points define a vertical line segment; false otherwise. - * @static - */ - static isVerticalSegment(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):boolean; - /** - * Returns the length of the line segment, this is the value of the Euclidean norm. - * @returns {number} an value > 0. - */ - length():number; - /** - * Returns the affine line defined by the end points of the line segment. - * @returns {yfiles.algorithms.AffineLine} - */ - toAffineLine():yfiles.algorithms.AffineLine; - /** - * Returns the vector pointing from the first end point to the second end point of the line segment. - * @returns {yfiles.algorithms.YVector} - */ - toYVector():yfiles.algorithms.YVector; - /** - * Gets if this segment is considered vertical, i.e. - *

    - * the x values of the end point differ less then 0.00000001 - *

    - * @type {boolean} - */ - isVertical:boolean; - /** - * Gets if the interval is horizontal. - * @type {boolean} - */ - isHorizontal:boolean; - /** - * Gets the first end point of the line segment. - * @type {yfiles.algorithms.YPoint} - */ - firstEndPoint:yfiles.algorithms.YPoint; - /** - * Gets the second end point of the line segment. - * @type {yfiles.algorithms.YPoint} - */ - secondEndPoint:yfiles.algorithms.YPoint; - /** - * Gets the y value of the line on x coordinate 0. - * @type {number} - */ - xOffset:number; - /** - * Gets the slope of the line segment. - * @type {number} - */ - slope:number; - /** - * Gets the smallest Rectangle which contains the object. - * @type {yfiles.algorithms.YRectangle} - */ - boundingBox:yfiles.algorithms.YRectangle; - /** - * Gets the distance from start to end point in x-coordinates. - * @type {number} - */ - deltaX:number; - /** - * Gets the distance from start to end point in y-coordinates. - * @type {number} - */ - deltaY:number; - static $class:yfiles.lang.Class; - } - /** - * Represents a two-dimensional point located at (x, y). - * @class yfiles.algorithms.Point2D - * @implements {yfiles.lang.ICloneable} - */ - export interface Point2D extends Object,yfiles.lang.ICloneable{} - export class Point2D { - /** - * Creates a new instance at the given location. - * @param {number} x The x coordinate of the new point - * @param {number} y The x coordinate of the new point - * @constructor - */ - constructor(x:number,y:number); - /** - * Creates a new instance that is located at (0, 0) - * @constructor - */ - constructor(); - /** - * Creates a new instance of this class that has the same values as this objects. - * @returns {Object} a new instance of this class that has the same values as this objects. - */ - clone():Object; - /** - * Calculates the distance between this points and another one, given as its coordinates. - * @param {number} px The x coordinate of the second point. - * @param {number} py The y coordinate of the second point. - * @returns {number} the distance between this points and another one, given as its coordinates. - */ - distance(px:number,py:number):number; - /** - * Calculates the distance between this points and another one. - * @param {yfiles.algorithms.Point2D} p The second point. - * @returns {number} the distance between this points and another one. - */ - distance(p:yfiles.algorithms.Point2D):number; - /** - * Calculates the distance between two points, given as their coordinates. - * @param {number} x1 The x coordinate of the first point. - * @param {number} y1 The y coordinate of the first point. - * @param {number} x2 The x coordinate of the second point. - * @param {number} y2 The y coordinate of the second point. - * @returns {number} the distance between two points, given as their coordinates. - * @static - */ - static distance(x1:number,y1:number,x2:number,y2:number):number; - /** - * Calculates the squared distance between this points and another one, given as its coordinates. - * @param {number} px The x coordinate of the second point. - * @param {number} py The y coordinate of the second point. - * @returns {number} the squared distance between this points and another one, given as its coordinates. - */ - distanceSq(px:number,py:number):number; - /** - * Calculates the squared distance between this points and another one. - * @param {yfiles.algorithms.Point2D} p The second point. - * @returns {number} the squared distance between this points and another one. - */ - distanceSq(p:yfiles.algorithms.Point2D):number; - /** - * Calculates the squared distance between two points, given as their coordinates. - * @param {number} x1 The x coordinate of the first point. - * @param {number} y1 The y coordinate of the first point. - * @param {number} x2 The x coordinate of the second point. - * @param {number} y2 The y coordinate of the second point. - * @returns {number} the squared distance between two points, given as their coordinates. - * @static - */ - static distanceSq(x1:number,y1:number,x2:number,y2:number):number; - /** - * Sets the location of this point to the given coordinates. - * @param {number} x the new x coordinate - * @param {number} y the new y coordinate - */ - setLocation(x:number,y:number):void; - /** - * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.Point2D}. - * @returns {yfiles.geometry.Point} The {@link yfiles.geometry.Point}. - */ - toPoint():yfiles.geometry.Point; - /** - * Sets the location of this point to the same values as for the given point. - * @type {yfiles.algorithms.Point2D} - */ - location:yfiles.algorithms.Point2D; - /** - * Gets the x coordinate of this point. - * @type {number} - */ - x:number; - /** - * Gets the y coordinate of this point. - * @type {number} - */ - y:number; - static $class:yfiles.lang.Class; - } - /** - * Represents a two-dimensional rectangle of size (width x height), located at the point (x, y). - * @class yfiles.algorithms.Rectangle2D - * @implements {yfiles.lang.ICloneable} - */ - export interface Rectangle2D extends Object,yfiles.lang.ICloneable{} - export class Rectangle2D { - /** - * Creates a new rectangle of the specified size at the specified location. - * @param {number} x the x-coordinate of the upper left corner of the created rectangle. - * @param {number} y the y-coordinate of the upper left corner of the created rectangle. - * @param {number} width the width of the created rectangle. - * @param {number} height the height of the created rectangle. - * @constructor - */ - constructor(x:number,y:number,width:number,height:number); - /** - * Creates a new rectangle of size (0 x 0) at the location (0, 0). - * @constructor - */ - constructor(); - /** - * Adds a point, specified by its coordinates, to this rectangle. - *

    - * The rectangle will be grown if necessary. Note that for points that would lie on the right or bottom border of the - * rectangle, {@link yfiles.algorithms.Rectangle2D#contains} will still return false for the added point. - *

    - * @param {number} px the x coordinate of the point to add - * @param {number} py the y coordinate of the point to add - */ - add(px:number,py:number):void; - /** - * Adds a rectangle to this rectangle. - *

    - * The rectangle will be grown to the union of both rectangles - *

    - * @param {yfiles.algorithms.Rectangle2D} r the rectangle to add - */ - add(r:yfiles.algorithms.Rectangle2D):void; - /** - * Creates a new instance of this class that has the same values as this objects. - * @returns {Object} a new instance of this class that has the same values as this objects. - */ - clone():Object; - /** - * Checks whether this rectangle completely contains the second specified rectangle. - * @param {number} x the x coordinate of the second rectangle. - * @param {number} y the y coordinate of the second rectangle. - * @param {number} width the width coordinate of the second rectangle. - * @param {number} height the height coordinate of the second rectangle. - * @returns {boolean} true if this rectangle contains the second one - */ - contains(x:number,y:number,width:number,height:number):boolean; - /** - * Checks if the point specified by the given coordinates is contained in this rectangle. - * @param {number} x the x-coordinate of the point. - * @param {number} y the y-coordinate of the point. - * @returns {boolean} true if the specified point is contained in this rectangle; false otherwise. - */ - contains(x:number,y:number):boolean; - /** - * Checks whether this rectangle completely contains the second specified rectangle. - * @param {yfiles.algorithms.Rectangle2D} rect the rectangle to check for containment - * @returns {boolean} true if this rectangle contains the second one - */ - contains(rect:yfiles.algorithms.Rectangle2D):boolean; - /** - * Calculates the intersection of this rectangle with the given rectangle and returns the result as new rectangle. - * @param {yfiles.algorithms.Rectangle2D} r a rectangle to intersect with this rectangle. - * @returns {yfiles.algorithms.Rectangle2D} a new rectangle that represents the calculated intersection. - */ - createIntersection(r:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; - /** - * Calculates the union of this rectangle with the given rectangle and returns the result as new rectangle. - * @param {yfiles.algorithms.Rectangle2D} r a rectangle to union with this rectangle. - * @returns {yfiles.algorithms.Rectangle2D} a new rectangle that represents the calculated union. - */ - createUnion(r:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; - /** - * Calculates the intersection of the first and second specified rectangle and sets the resulting location and size to the - * third rectangle. - * @param {yfiles.algorithms.Rectangle2D} src1 the first rectangle to intersect. - * @param {yfiles.algorithms.Rectangle2D} src2 the second rectangle to intersect. - * @param {yfiles.algorithms.Rectangle2D} dst the rectangle to which the result is set. - * @static - */ - static intersect(src1:yfiles.algorithms.Rectangle2D,src2:yfiles.algorithms.Rectangle2D,dst:yfiles.algorithms.Rectangle2D):void; - /** - * Checks whether this rectangle and the second specified rectangle intersect. - * @param {number} x the x coordinate of the second rectangle. - * @param {number} y the y coordinate of the second rectangle. - * @param {number} width the width coordinate of the second rectangle. - * @param {number} height the height coordinate of the second rectangle. - * @returns {boolean} true if both rectangles intersect - */ - intersects(x:number,y:number,width:number,height:number):boolean; - /** - * Checks whether this rectangle and the second specified rectangle intersect. - * @param {yfiles.algorithms.Rectangle2D} rect the rectangle to check for intersection - * @returns {boolean} true if both rectangles intersect - */ - intersects(rect:yfiles.algorithms.Rectangle2D):boolean; - /** - * Checks if the line segment specified by the given coordinates intersects this rectangle. - * @param {number} x1 the x-coordinate of the first end point of the line. - * @param {number} y1 the y-coordinate of the first end point of the line. - * @param {number} x2 the x-coordinate of the other end point of the line. - * @param {number} y2 the y-coordinate of the other end point of the line. - * @returns {boolean} true if the specified line intersects this rectangle; false otherwise. - */ - intersectsLine(x1:number,y1:number,x2:number,y2:number):boolean; - /** - * Sets the outer bounds of this rectangle based on the specified location and size. - * @param {number} x the new x-coordinate of the upper left corner. - * @param {number} y the new y-coordinate of the upper left corner. - * @param {number} width the new width. - * @param {number} height the new height. - */ - setFrame(x:number,y:number,width:number,height:number):void; - /** - * Sets the outer bounds of this rectangle based on the specified new center and corner. - * @param {number} centerX the x-coordinate of the new center of this rectangle. - * @param {number} centerY the y-coordinate of the new center of this rectangle. - * @param {number} cornerX the x-coordinate of any new corner of this rectangle. - * @param {number} cornerY the y-coordinate of any new corner of this rectangle. - */ - setFrameFromCenter(centerX:number,centerY:number,cornerX:number,cornerY:number):void; - /** - * Sets the outer bounds of this rectangle based on the specified new center and corner. - * @param {yfiles.algorithms.Point2D} center the new center of this rectangle. - * @param {yfiles.algorithms.Point2D} corner any new corner of this rectangle. - */ - setFrameFromCenter(center:yfiles.algorithms.Point2D,corner:yfiles.algorithms.Point2D):void; - /** - * Sets the outer bounds of this rectangle based on the end points of one of its diagonals. - * @param {number} x1 the x-coordinate of the first end point of a diagonal. - * @param {number} y1 the y-coordinate of the first end point of a diagonal. - * @param {number} x2 the x-coordinate of the other end point of a diagonal. - * @param {number} y2 the y-coordinate of the other end point of a diagonal. - */ - setFrameFromDiagonal(x1:number,y1:number,x2:number,y2:number):void; - /** - * Sets the outer bounds of this rectangle based on the end points of one of its diagonals. - * @param {yfiles.algorithms.Point2D} p1 the first end point of a diagonal. - * @param {yfiles.algorithms.Point2D} p2 the other end point of a diagonal. - */ - setFrameFromDiagonal(p1:yfiles.algorithms.Point2D,p2:yfiles.algorithms.Point2D):void; - /** - * Sets the location and size of this rectangle to the specified values. - * @param {number} x the new x-coordinate of the upper left corner. - * @param {number} y the new y-coordinate of the upper left corner. - * @param {number} width the new width. - * @param {number} height the new height. - */ - setRect(x:number,y:number,width:number,height:number):void; - /** - * Creates a {@link yfiles.geometry.Rect} from a given {@link yfiles.algorithms.Rectangle2D}. - * @returns {yfiles.geometry.Rect} The {@link yfiles.geometry.Rect}. - */ - toRect():yfiles.geometry.Rect; - /** - * Calculates the union of the first and second specified rectangle and sets the resulting location and size to the third - * rectangle. - * @param {yfiles.algorithms.Rectangle2D} src1 the first rectangle to union. - * @param {yfiles.algorithms.Rectangle2D} src2 the second rectangle to union. - * @param {yfiles.algorithms.Rectangle2D} dst the rectangle to which the result is set. - * @static - */ - static union(src1:yfiles.algorithms.Rectangle2D,src2:yfiles.algorithms.Rectangle2D,dst:yfiles.algorithms.Rectangle2D):void; - /** - * Gets or sets the outer bounds of this rectangle in double coordinates. - * @type {yfiles.algorithms.Rectangle2D} - */ - frame:yfiles.algorithms.Rectangle2D; - /** - * Sets the location and size of this rectangle to be similar to the specified rectangle. - * @type {yfiles.algorithms.Rectangle2D} - */ - rect:yfiles.algorithms.Rectangle2D; - /** - * Gets the x coordinate of the upper left corner. - * @type {number} - */ - x:number; - /** - * Gets the y coordinate of the upper left corner. - * @type {number} - */ - y:number; - /** - * Gets the width of this rectangle. - * @type {number} - */ - width:number; - /** - * Gets the height of this rectangle. - * @type {number} - */ - height:number; - /** - * Gets whether this instance is empty, i.e. - *

    - * covers no area. - *

    - * @type {boolean} - */ - empty:boolean; - /** - * Gets the smallest x coordinate of this rectangle. - * @type {number} - */ - minX:number; - /** - * Gets the smallest y coordinate of this rectangle. - * @type {number} - */ - minY:number; - /** - * Gets the largest x coordinate of this rectangle. - * @type {number} - */ - maxX:number; - /** - * Gets the largest y coordinate of this rectangle. - * @type {number} - */ - maxY:number; - /** - * Gets the x coordinate of the center point of this rectangle. - * @type {number} - */ - centerX:number; - /** - * Gets the y coordinate of the center point of this rectangle. - * @type {number} - */ - centerY:number; - /** - * Gets the bounds of this instance in double precision. - * @type {yfiles.algorithms.Rectangle2D} - */ - bounds2D:yfiles.algorithms.Rectangle2D; - static $class:yfiles.lang.Class; - } - /** - * This class provides algorithms for the triangulation of point sets in the plane. - * @class yfiles.algorithms.Triangulator - * @static - */ - export interface Triangulator extends Object{} - export class Triangulator { - /** - * Computes a Delauney triangulation of the given points. - *

    - * A Delauney triangulation is a triangulation such that none of the given points is inside the circumcircle of any of the - * calculated triangles. - *

    - *

    - * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the - * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to - * construct all faces of the plane graph and to determine its outer face. - *

    - * @param {yfiles.algorithms.Graph} result a graph whose nodes represent the points that need to be triangulated. - * @param {yfiles.algorithms.IDataProvider} pointData must provide the location (YPoint) for each node in the given graph. - * @param {yfiles.algorithms.IEdgeMap} revMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information - * will be available. - * @returns {yfiles.algorithms.Edge} an edge on the outer face of the result graph. - * @static - */ - static calcDelauneyTriangulation(result:yfiles.algorithms.Graph,pointData:yfiles.algorithms.IDataProvider,revMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; - /** - * Computes a triangulation of the given points. - *

    - * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the - * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to - * construct all faces of the plane graph and to determine its outer face. - *

    - * @param {yfiles.algorithms.YList} points the point set to be triangulated. The points must be provided as a YList of YPoints. - * @param {yfiles.algorithms.Graph} result the resulting triangulation - * @param {yfiles.algorithms.INodeMap} resultMap the node map that forms the link between a point and a node. - * @param {yfiles.algorithms.IEdgeMap} reverseEdgeMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information - * will be available. - * @returns {yfiles.algorithms.Edge} an edge on the outer face of the result graph. - * @static - */ - static triangulatePoints(points:yfiles.algorithms.YList,result:yfiles.algorithms.Graph,resultMap:yfiles.algorithms.INodeMap,reverseEdgeMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; - /** - * Computes a triangulation of the given points. - *

    - * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the - * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to - * construct all faces of the plane graph and to determine its outer face. - *

    - * @param {yfiles.algorithms.Graph} result a graph whose nodes represent the points that need to be triangulated. - * @param {yfiles.algorithms.IDataProvider} pointData must provide the location (YPoint) for each node in the given graph. - * @param {yfiles.algorithms.IEdgeMap} reverseEdgeMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information - * will be available. - * @returns {yfiles.algorithms.Edge} an edge on the outer face of the result graph. - * @static - */ - static triangulatePoints(result:yfiles.algorithms.Graph,pointData:yfiles.algorithms.IDataProvider,reverseEdgeMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; - static $class:yfiles.lang.Class; - } - /** - * This class represents the size of an object. - *

    - * An instance of this class implements the immutable design pattern. - *

    - * @class yfiles.algorithms.YDimension - * @implements {yfiles.lang.IComparable} - */ - export interface YDimension extends Object,yfiles.lang.IComparable{} - export class YDimension { - /** - * Creates a new YDimension2D object for given size. - * @param {number} width - * @param {number} height - * @constructor - */ - constructor(width:number,height:number); - /** - * - * @param {Object} o - * @returns {number} - */ - compareTo(o:Object):number; - /** - * Creates a {@link yfiles.geometry.Size} from a given {@link yfiles.algorithms.YDimension}. - * @returns {yfiles.geometry.Size} The {@link yfiles.geometry.Size}. - */ - toSize():yfiles.geometry.Size; - /** - * Gets the width of the dimension object. - * @type {number} - */ - width:number; - /** - * Gets the height of the dimension object. - * @type {number} - */ - height:number; - static $class:yfiles.lang.Class; - } - /** - * An oriented rectangle in 2D coordinate space with double precision coordinates. - *

    - * The rectangle's height extends from its {@link yfiles.algorithms.YOrientedRectangle#anchor anchor point} in the direction of its up - * vector ({@link yfiles.algorithms.YOrientedRectangle#upX ux}, {@link yfiles.algorithms.YOrientedRectangle#upY uy}). Its width extends from its {@link yfiles.algorithms.YOrientedRectangle#anchor anchor point} in - * direction (-uy, ux) (i.e. perpendicular to the up vector). This means that an oriented rectangle with anchor point (0, 0) width - * 100, height 10, and up vector (0, -1) is a paraxial rectangle with upper left corner (0, -10) and lower right corner - * (100, 0). - *

    - * @class yfiles.algorithms.YOrientedRectangle - * @implements {yfiles.algorithms.IPlaneObject} - */ - export interface YOrientedRectangle extends Object,yfiles.algorithms.IPlaneObject{} - export class YOrientedRectangle { - /** - * Creates a new instance using the provided rectangle's values to initialize anchor, size, and up vector. - * @param {yfiles.algorithms.YOrientedRectangle} rect the provided rectangle. - * @constructor - */ - constructor(rect:yfiles.algorithms.YOrientedRectangle); - /** - * Creates a new instance using the provided rectangle's values to initialize anchor and size. - *

    - * The oriented rectangle's up vector will be (0, -1). - *

    - * @param {yfiles.algorithms.YRectangle} rect the provided rectangle. - * @constructor - */ - constructor(rect:yfiles.algorithms.YRectangle); - /** - * Creates a new instance using the provided values to initialize anchor, size, and up vector. - * @param {number} anchorX The x coordinate of the anchor of the oriented rectangle. - * @param {number} anchorY The y coordinate of the anchor of the oriented rectangle. - * @param {number} width The width of the rectangle. - * @param {number} height The height of the rectangle. - * @param {number} upX The x component of the up vector. - * @param {number} upY The y component of the up vector. - * @constructor - */ - constructor(anchorX:number,anchorY:number,width:number,height:number,upX:number,upY:number); - /** - * Creates a new instance using the provided values to initialize anchor and size. - *

    - * The oriented rectangle's up vector will be (0, -1). - *

    - * @param {number} anchorX The x coordinate of the anchor of the oriented rectangle. - * @param {number} anchorY The y coordinate of the anchor of the oriented rectangle. - * @param {number} width The width of the rectangle. - * @param {number} height The height of the rectangle. - * @constructor - */ - constructor(anchorX:number,anchorY:number,width:number,height:number); - /** - * Creates a new instance using the provided values to initialize anchor, size, and up vector. - * @param {yfiles.algorithms.YPoint} position The provider for the dynamic anchor of this instance. - * @param {yfiles.algorithms.YDimension} size The provider for the dynamic size of this instance. - * @param {yfiles.algorithms.YVector} upVector The up vector. - * @constructor - */ - constructor(position:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,upVector:yfiles.algorithms.YVector); - /** - * Creates a new instance using the provided values to initialize the anchor and size. - *

    - * The oriented rectangle's up vector will be (0, -1). - *

    - * @param {yfiles.algorithms.YPoint} anchor The provider for the dynamic anchor of this instance. - * @param {yfiles.algorithms.YDimension} size The provider for the dynamic size of this instance. - * @constructor - */ - constructor(anchor:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension); - /** - * Copies the actual values from the given OrientedRectangle to this instance. - * @param {yfiles.algorithms.YOrientedRectangle} other the OrientedRectangle to retrieve the values from - */ - adoptValues(other:yfiles.algorithms.YOrientedRectangle):void; - /** - * Determines the four corner points of an oriented rectangle. - * @param {yfiles.algorithms.YOrientedRectangle} rect The rectangle to determine the bounds. - * @returns {Array.} the array of corner points. - * @static - */ - static calcPoints(rect:yfiles.algorithms.YOrientedRectangle):yfiles.algorithms.YPoint[]; - /** - * Determines the coordinates of the four corners of an oriented rectangle. - * @param {yfiles.algorithms.YOrientedRectangle} rect The rectangle to determine the bounds. - * @returns {Array.} the array of coordinates of the corner points in which each even index has the x-coordinate and each odd index the - * y-coordinate - * @static - */ - static calcPointsInDouble(rect:yfiles.algorithms.YOrientedRectangle):number[]; - /** - * Determines whether or not the specified point lies inside this oriented rectangle. - * @param {number} x the x-coordinate of the point to check. - * @param {number} y the y-coordinate of the point to check. - * @param {boolean} [closed=false] if true, all points on the border of the rectangle are considered to be contained. - * @returns {boolean} true iff the specified point lies inside; false otherwise. - */ - contains(x:number,y:number,closed?:boolean):boolean; - /** - * Determines whether the given rectangle r1 contains rectangle r2, using an epsilon value. - * @param {yfiles.algorithms.YOrientedRectangle} r1 The first rectangle. - * @param {yfiles.algorithms.YOrientedRectangle} r2 The second rectangle. - * @param {number} eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than - * or equal to that value, it will be considered a hit. - * @returns {boolean} true iff the r1 contains r2. - * @static - */ - static contains(r1:yfiles.algorithms.YOrientedRectangle,r2:yfiles.algorithms.YOrientedRectangle,eps:number):boolean; - /** - * Determines whether the given oriented rectangle contains the provided point, using an epsilon value. - * @param {yfiles.algorithms.YOrientedRectangle} rect The rectangle. - * @param {yfiles.algorithms.YPoint} p The point to test. - * @param {number} eps fuzziness range. A positive value allows for fuzzy hit testing. If a point lies outside the given rectangle, but its - * distance is less than or equal to that value, it will be considered a hit. - * @returns {boolean} true if the point lies inside the rectangle; false otherwise. - * @static - */ - static contains(rect:yfiles.algorithms.YOrientedRectangle,p:yfiles.algorithms.YPoint,eps:number):boolean; - /** - * Determines whether the given oriented rectangle contains the provided point, using an epsilon value. - * @param {yfiles.algorithms.YOrientedRectangle} rect The rectangle. - * @param {number} x x-coordinate of the point to test. - * @param {number} y y-coordinate of the point to test. - * @param {number} eps fuzziness range. A positive value allows for fuzzy hit testing. If a point lies outside the given rectangle, but its - * distance is less than or equal to that value, it will be considered a hit. - * @returns {boolean} true if the point lies inside the rectangle; false otherwise. - * @static - */ - static contains(rect:yfiles.algorithms.YOrientedRectangle,x:number,y:number,eps:number):boolean; - /** - * Creates a new OrientedRectangle instance whose anchor point is moved by the specified distance values, but has the same - * width, height, and up vector as this rectangle. - * @param {number} dx the distance to move the anchor point in x-direction. A positive value means "move" to the right, a negative value means - * "move" to the left. - * @param {number} dy the distance to move the anchor point in y-direction. A positive value means "move" downwards, a negative value means - * "move" upwards. - * @returns {yfiles.algorithms.YOrientedRectangle} a new OrientedRectangle instance whose anchor point is moved by the specified distance values. - */ - getMovedInstance(dx:number,dy:number):yfiles.algorithms.YOrientedRectangle; - /** - * Creates a new OrientedRectangle instance that has the specified width and height, but has the same anchor point and up - * vector as this rectangle. - * @param {number} width the width of the new rectangle. - * @param {number} height the height of the new rectangle. - * @returns {yfiles.algorithms.YOrientedRectangle} a new OrientedRectangle instance that has the specified width and height. - */ - getResizedInstance(width:number,height:number):yfiles.algorithms.YOrientedRectangle; - /** - * Determines an intersection point of the specified oriented rectangle and the specified line segment. - *

    - * Note: there might be more than one intersection point. However this method only returns one intersection point or null - * if there is no intersection. - *

    - * @param {yfiles.algorithms.YOrientedRectangle} rect - * @param {yfiles.algorithms.LineSegment} line - * @param {number} eps - * @returns {yfiles.algorithms.YPoint} an intersection point of the specified oriented rectangle and the specified line segment or null if the rectangle and - * the segment do not intersect. - * @static - */ - static intersectionPoint(rect:yfiles.algorithms.YOrientedRectangle,line:yfiles.algorithms.LineSegment,eps:number):yfiles.algorithms.YPoint; - /** - * Determines whether or not the specified oriented rectangle and the specified line segment intersect. - * @param {yfiles.algorithms.YOrientedRectangle} rect - * @param {yfiles.algorithms.LineSegment} line - * @param {number} eps - * @returns {boolean} true if the rectangle and the segment intersect and false otherwise. - * @static - */ - static intersects(rect:yfiles.algorithms.YOrientedRectangle,line:yfiles.algorithms.LineSegment,eps:number):boolean; - /** - * Determines whether a rectangle intersects an oriented rectangle, given an epsilon. - * @param {yfiles.algorithms.YOrientedRectangle} orientedRectangle The oriented rectangle to test. - * @param {yfiles.algorithms.YRectangle} rectangle The rectangle to test. - * @param {number} eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than - * or equal to that value, it will be considered a hit. - * @returns {boolean} Whether they have a non-empty intersection. - * @static - */ - static intersects(orientedRectangle:yfiles.algorithms.YOrientedRectangle,rectangle:yfiles.algorithms.YRectangle,eps:number):boolean; - /** - * Moves this rectangle by applying the offset to the anchor. - * @param {number} dx The x offset to move the rectangle's position by. - * @param {number} dy The y offset to move the rectangle's position by. - */ - moveBy(dx:number,dy:number):void; - /** - * Sets the anchor of this rectangle. - * @param {number} x the new x-coordinate of the anchor point. - * @param {number} y the new y-coordinate of the anchor point. - */ - setAnchor(x:number,y:number):void; - /** - * Sets the anchor of the OrientedRectangle so that the center of the rectangle coincides with the given coordinate pair. - * @param {number} cx The x coordinate of the center. - * @param {number} cy The y coordinate of the center. - */ - setCenter(cx:number,cy:number):void; - /** - * Sets the size of this rectangle. - * @param {number} width the new width. - * @param {number} height the new height. - */ - setSize(width:number,height:number):void; - /** - * Sets the components of the up vector to the new values. - * @param {number} upX The x component of the normalized up vector. - * @param {number} upY The y component of the normalized up vector. - */ - setUpVector(upX:number,upY:number):void; - /** - * Creates an immutable {@link yfiles.geometry.IOrientedRectangle} from a given {@link yfiles.algorithms.YOrientedRectangle}. - * @returns {yfiles.geometry.IOrientedRectangle} The {@link yfiles.geometry.IOrientedRectangle}. - */ - toImmutableOrientedRectangle():yfiles.geometry.IOrientedRectangle; - /** - * Gets whether this instance has negative width or height. - * @type {boolean} - */ - empty:boolean; - /** - * Gets or sets the anchor of this oriented rectangle. - * @type {yfiles.algorithms.YPoint} - */ - anchor:yfiles.algorithms.YPoint; - /** - * Gets the x-coordinate of this rectangle's anchor point. - * @type {number} - */ - anchorX:number; - /** - * Gets the y-coordinate of this rectangle's anchor point. - * @type {number} - */ - anchorY:number; - /** - * Gets or sets the size of this rectangle. - * @type {yfiles.algorithms.YDimension} - */ - size:yfiles.algorithms.YDimension; - /** - * Gets the width of this rectangle. - * @type {number} - */ - width:number; - /** - * Gets the height of this rectangle. - * @type {number} - */ - height:number; - /** - * Gets the x-component of this rectangle's up vector. - * @type {number} - */ - upX:number; - /** - * Gets the y-component of this rectangle's up vector. - * @type {number} - */ - upY:number; - /** - * Gets or sets the angle (measured in radians) of this rectangle. - *

    - * The angle of an oriented rectangle is the angle between the vector (0, -1) and the rectangle's up vector in counter - * clockwise order. An angle of 0 means the up vector points up in direction (0, -1). - *

    - * @type {number} - */ - angle:number; - /** - * Gets or sets the current center of the oriented rectangle. - * @type {yfiles.algorithms.YPoint} - */ - center:yfiles.algorithms.YPoint; - /** - * Calculates the paraxial bounding box of this oriented rectangle. - * @type {yfiles.algorithms.YRectangle} - */ - boundingBox:yfiles.algorithms.YRectangle; - static $class:yfiles.lang.Class; - } - /** - * This class represents a point in the plane with double coordinates. - *

    - * This class implements the immutable design pattern. - *

    - * @class yfiles.algorithms.YPoint - * @implements {yfiles.lang.IComparable} - * @final - */ - export interface YPoint extends Object,yfiles.lang.IComparable{} - export class YPoint { - /** - * Creates a new YPoint object for a given position. - * @param {number} x the x coordinate of the point. - * @param {number} y the y coordinate of the point. - * @constructor - */ - constructor(x:number,y:number); - /** - * Creates a new YPoint at location (0,0) - * @constructor - */ - constructor(); - /** - * Adds two points and returns the result. - * @param {yfiles.algorithms.YPoint} p1 an arbitrary instance of YPoint. - * @param {yfiles.algorithms.YPoint} p2 an arbitrary instance of YPoint. - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static add(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Comparable implementation. - *

    - * YPoints are ordered by ascending x-coordinates. If the x-coordinates of two points equal, then these points are ordered - * by ascending y-coordinates. - *

    - * @param {Object} o - * @returns {number} - */ - compareTo(o:Object):number; - /** - * Returns the euclidean distance between two points. - * @param {number} x1 x-coordinate of first point - * @param {number} y1 y-coordinate of first point - * @param {number} x2 x-coordinate of second point - * @param {number} y2 y-coordinate of second point - * @returns {number} the euclidean distance between first and second point - * @static - */ - static distance(x1:number,y1:number,x2:number,y2:number):number; - /** - * Returns the euclidean distance between two points. - * @param {yfiles.algorithms.YPoint} p1 an arbitrary point - * @param {yfiles.algorithms.YPoint} p2 an arbitrary point - * @returns {number} the Euclidean distance between p1 and p2. - * @static - */ - static distance(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):number; - /** - * Returns the euclidean distance between this point and a given point. - * @param {number} x the x coordinate of an arbitrary point - * @param {number} y the y coordinate of an arbitrary point - * @returns {number} the Euclidean distance between this point and the point (x,y). - */ - distanceTo(x:number,y:number):number; - /** - * Returns the euclidean distance between this point and a given point. - * @param {yfiles.algorithms.YPoint} p an arbitrary point - * @returns {number} the Euclidean distance between this point and p. - */ - distanceTo(p:yfiles.algorithms.YPoint):number; - /** - * Returns a point that geometrically lies in in the middle of the line formed by the given points. - * @param {yfiles.algorithms.YPoint} p1 an arbitrary instance of YPoint. - * @param {yfiles.algorithms.YPoint} p2 an arbitrary instance of YPoint. - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static midPoint(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Returns the point, got by moving this point to another position. - * @param {number} x the value which is added on the x-coordinate of the point. - * @param {number} y the value which is added on the y-coordinate of the point. - * @returns {yfiles.algorithms.YPoint} a new instance of YPoint which is the result of the moving operation. - */ - moveBy(x:number,y:number):yfiles.algorithms.YPoint; - /** - * Subtracts two points (p1 - p2) and returns the result. - * @param {yfiles.algorithms.YPoint} p1 an arbitrary instance of YPoint. - * @param {yfiles.algorithms.YPoint} p2 an arbitrary instance of YPoint. - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static subtract(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Returns a copy of the given point with exchanged x- and y-coordinates. - * @param {yfiles.algorithms.YPoint} p an arbitrary instance of YPoint. - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static swap(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.YPoint}. - * @returns {yfiles.geometry.Point} The {@link yfiles.geometry.Point}. - */ - toPoint():yfiles.geometry.Point; - /** - * A YPoint constant with coordinates (0,0). - * @const - * @static - * @type {yfiles.algorithms.YPoint} - */ - static ORIGIN:yfiles.algorithms.YPoint; - /** - * Gets the x-coordinate of the point object. - * @type {number} - */ - x:number; - /** - * Gets the y-coordinate of the point object. - * @type {number} - */ - y:number; - static $class:yfiles.lang.Class; - } - /** - * This class represents an ordered list of points in the plane. - * @class yfiles.algorithms.YPointPath - * @final - */ - export interface YPointPath extends Object{} - export class YPointPath { - /** - * Creates a new path from an array of points. - * @param {Array.} path - * @constructor - */ - constructor(path:yfiles.algorithms.YPoint[]); - /** - * Creates a new path from a list of points. - * @param {yfiles.collections.IList.} l a list of {@link yfiles.algorithms.YPoint} instances. - * @constructor - */ - constructor(l:yfiles.collections.IList); - /** - * Creates a new empty path. - * @constructor - */ - constructor(); - /** - * Calculate the (geometric) length of the path. - *

    - * The length of the path is the sum of lengths of all line segments making up the path. - *

    - * @returns {number} the (geometric) length of the path - */ - calculateLength():number; - /** - * Create a point path with reverse ordering of the points. - * @returns {yfiles.algorithms.YPointPath} - */ - createReverse():yfiles.algorithms.YPointPath; - /** - * Get the points in the path. - * @returns {yfiles.algorithms.ICursor} - */ - cursor():yfiles.algorithms.ICursor; - /** - * Returns a line segment in the path. - * @param {number} i - * @returns {yfiles.algorithms.LineSegment} - */ - getLineSegment(i:number):yfiles.algorithms.LineSegment; - /** - * Get the number of points in the path. - * @returns {number} - */ - length():number; - /** - * Get the points in the path. - * @returns {yfiles.algorithms.ILineSegmentCursor} - */ - lineSegments():yfiles.algorithms.ILineSegmentCursor; - /** - * Get the points in the path. - * @returns {yfiles.algorithms.IPointCursor} - */ - points():yfiles.algorithms.IPointCursor; - /** - * Get the points in the list as array. - * @returns {Array.} - */ - toArray():yfiles.algorithms.YPoint[]; - /** - * Get the points in the path as list. - * @returns {yfiles.collections.IList.} a list of {@link yfiles.algorithms.YPoint} instances. - */ - toList():yfiles.collections.IList; - /** - * Defines a path with no points. - * @const - * @static - * @type {yfiles.algorithms.YPointPath} - */ - static EMPTY_PATH:yfiles.algorithms.YPointPath; - /** - * Gets the first point in the path. - * @type {yfiles.algorithms.YPoint} - */ - first:yfiles.algorithms.YPoint; - /** - * Gets the last point in the path. - * @type {yfiles.algorithms.YPoint} - */ - last:yfiles.algorithms.YPoint; - /** - * Gets the number of line segments in the path. - * @type {number} - */ - lineSegmentCount:number; - static $class:yfiles.lang.Class; - } - /** - * This class defines a rectangle and provides utility methods for it. - * @class yfiles.algorithms.YRectangle - * @extends {yfiles.algorithms.YDimension} - * @implements {yfiles.algorithms.IPlaneObject} - */ - export interface YRectangle extends yfiles.algorithms.YDimension,yfiles.algorithms.IPlaneObject{} - export class YRectangle { - /** - * Creates a new rectangle with given upper left corner and size. - * @param {number} x x-coordinate of upper left corner of the rectangle. - * @param {number} y y-coordinate of upper left corner of the rectangle. - * @param {number} width width of the rectangle. - * @param {number} height height of the rectangle. - * @constructor - */ - constructor(x:number,y:number,width:number,height:number); - /** - * Creates a new rectangle with given upper left corner and size. - * @param {yfiles.algorithms.YPoint} pos upper left corner of the rectangle. - * @param {yfiles.algorithms.YDimension} size size of the rectangle. - * @constructor - */ - constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension); - /** - * Creates a new rectangle with upper left corner (0,0) and size (0,0). - * @constructor - */ - constructor(); - /** - * Checks whether or not this YRectangle contains the given rectangle. - * @param {yfiles.algorithms.YRectangle} p - * @returns {boolean} - */ - contains(p:yfiles.algorithms.YRectangle):boolean; - /** - * Checks whether or not this YRectangle contains the given point. - * @param {yfiles.algorithms.YPoint} p - * @returns {boolean} - */ - contains(p:yfiles.algorithms.YPoint):boolean; - /** - * Checks whether or not this YRectangle contains the rectangle defined by the given frame. - * @param {number} x - * @param {number} y - * @param {number} width - * @param {number} height - * @returns {boolean} - */ - contains(x:number,y:number,width:number,height:number):boolean; - /** - * Checks whether or not this YRectangle contains the given point. - * @param {number} x the x-coordinate of the point to check. - * @param {number} y the x-coordinate of the point to check. - * @returns {boolean} true if the point lies inside the rectangle; false otherwise. - */ - contains(x:number,y:number):boolean; - /** - * Determines whether the specified rectangle contains the specified point. - * @param {number} rx the x-coordinate of the upper left corner of the rectangle. - * @param {number} ry the y-coordinate of the upper left corner of the rectangle. - * @param {number} rw the width of the rectangle. - * @param {number} rh the height of the rectangle. - * @param {number} x the x-coordinate of the point to check. - * @param {number} y the x-coordinate of the point to check. - * @param {boolean} [closed=false] if true, all points on the border of the rectangle are considered to be contained. - * @returns {boolean} true if the point lies inside the rectangle; false otherwise. - * @static - */ - static contains(rx:number,ry:number,rw:number,rh:number,x:number,y:number,closed?:boolean):boolean; - /** - * Returns the Euclidean distance to the passed rectangle. - *

    - * If they overlap, the distance is 0. - *

    - * @param {yfiles.algorithms.YRectangle} other the second rectangle. - * @returns {number} the distance to the given rectangle. - */ - getEuclideanDistance(other:yfiles.algorithms.YRectangle):number; - /** - * Returns the Manhattan distance to the passed rectangle. - *

    - * If they overlap the distance is 0. - *

    - * @param {yfiles.algorithms.YRectangle} other the second rectangle. - * @returns {number} the distance to the given rectangle. - */ - getManhattanDistance(other:yfiles.algorithms.YRectangle):number; - /** - * Returns whether or not the given rectangles intersect. - * @param {yfiles.algorithms.YRectangle} r1 - * @param {yfiles.algorithms.YRectangle} r2 - * @returns {boolean} - * @static - */ - static intersects(r1:yfiles.algorithms.YRectangle,r2:yfiles.algorithms.YRectangle):boolean; - /** - * Creates a {@link yfiles.geometry.Rect} from a given {@link yfiles.algorithms.YRectangle}. - * @returns {yfiles.geometry.Rect} The {@link yfiles.geometry.Rect}. - */ - toRect():yfiles.geometry.Rect; - /** - * Gets x-coordinate of upper left corner. - * @type {number} - */ - x:number; - /** - * Gets y-coordinate of upper left corner. - * @type {number} - */ - y:number; - /** - * Gets coordinates of upper left corner. - * @type {yfiles.algorithms.YPoint} - */ - location:yfiles.algorithms.YPoint; - /** - * Gets this object. - * @type {yfiles.algorithms.YRectangle} - */ - boundingBox:yfiles.algorithms.YRectangle; - static $class:yfiles.lang.Class; - } - /** - * This class represents a vector in the 2-dimensional real vector space. - *

    - * This vector is an ordered 2 tuple and is defined by two doubles. - *

    - * @class yfiles.algorithms.YVector - */ - export interface YVector extends Object{} - export class YVector { - /** - * Creates a new vector, whose direction is given by two points. - *

    - * The vector is defined by p1 - p2. - *

    - * @param {yfiles.algorithms.YPoint} p1 The first point. - * @param {yfiles.algorithms.YPoint} [p2=null] The second point. If no point is spcified, (0,0) is used instead. - * @constructor - */ - constructor(p1:yfiles.algorithms.YPoint,p2?:yfiles.algorithms.YPoint); - /** - * Creates a new vector which is a copy of another vector. - * @param {yfiles.algorithms.YVector} v the vector, whose values are copied. - * @constructor - */ - constructor(v:yfiles.algorithms.YVector); - /** - * Creates a new vector, whose direction is given by two points. - *

    - * The vector is defined by (x1 - x2, y1 - y2). - *

    - * @param {number} x1 the X-coordinate of the first point. - * @param {number} y1 the Y-coordinate of the first point. - * @param {number} x2 the X-coordinate of the second point. - * @param {number} y2 the Y-coordinate of the second point. - * @constructor - */ - constructor(x1:number,y1:number,x2:number,y2:number); - /** - * Creates a new vector with given direction. - * @param {number} dx the first coordinate - * @param {number} dy the second coordinate - * @constructor - */ - constructor(dx:number,dy:number); - /** - * Adds a vector to this vector. - * @param {yfiles.algorithms.YVector} v the vector to add. - */ - add(v:yfiles.algorithms.YVector):void; - /** - * Adds the vector to a point and returns the resulting point. - * @param {yfiles.algorithms.YPoint} p a point. - * @param {yfiles.algorithms.YVector} v the vector to add to the point. - * @returns {yfiles.algorithms.YPoint} p+v - * @static - */ - static add(p:yfiles.algorithms.YPoint,v:yfiles.algorithms.YVector):yfiles.algorithms.YPoint; - /** - * Adds two vectors and returns the result. - * @param {yfiles.algorithms.YVector} v first vector to sum. - * @param {yfiles.algorithms.YVector} w second vector to sum. - * @returns {yfiles.algorithms.YVector} v+w - * @static - */ - static add(v:yfiles.algorithms.YVector,w:yfiles.algorithms.YVector):yfiles.algorithms.YVector; - /** - * Returns the result of the addition of two angles between 0 and 2*Pi. - *

    - * The result is calculated modulo 2*Pi. - *

    - * @param {number} a1 a value in [0,2Pi). - * @param {number} a2 a value in [0,2Pi). - * @returns {number} The sum of a1 and a2 modulo 2*Pi. - * @static - */ - static addAngle(a1:number,a2:number):number; - /** - * Returns the angle (measured in radians) between two vectors in clockwise order (with regards to screen coordinates) from - * v1 to v2. - *

    - * Screen coordinates mean positive x-direction is from left to right and positive y-direction is from top to bottom. - *

    - * @param {yfiles.algorithms.YVector} v1 - * @param {yfiles.algorithms.YVector} v2 - * @returns {number} - * @static - */ - static angle(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):number; - /** - * Returns this vector with unit length. - * @param {yfiles.algorithms.YVector} v - * @returns {yfiles.algorithms.YVector} - * @static - */ - static getNormal(v:yfiles.algorithms.YVector):yfiles.algorithms.YVector; - /** - * Returns the length of the vector, this is the value of the euclidean norm. - * @returns {number} a value > 0. - */ - length():number; - /** - * Assigns unit length to the vector. - *
    - */ - norm():void; - /** - * Returns the vector which is orthogonal to the given one and has unit length. - * @param {yfiles.algorithms.YVector} v a vector. - * @returns {yfiles.algorithms.YVector} a vector which is orthogonal to v with unit length. - * @static - */ - static orthoNormal(v:yfiles.algorithms.YVector):yfiles.algorithms.YVector; - /** - * Returns true if vector v1 is on the right side of v2. - * @param {yfiles.algorithms.YVector} v1 - * @param {yfiles.algorithms.YVector} v2 - * @returns {boolean} - * @static - */ - static rightOf(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):boolean; - /** - * Returns a new YVector instance that is obtained by rotating this vector by the given angle (measured in radians) in - * clockwise direction (with regards to screen coordinates). - *

    - * Screen coordinates mean positive x-direction is from left to right and positive y-direction is from top to bottom. - *

    - * @param {number} angle the angle of rotation in radians. - * @returns {yfiles.algorithms.YVector} the rotated vector. - */ - rotate(angle:number):yfiles.algorithms.YVector; - /** - * Returns the value of the scalar product of two vectors. - * @param {yfiles.algorithms.YVector} v1 the first vector. - * @param {yfiles.algorithms.YVector} v2 the second vector. - * @returns {number} v1.x * v2.x + v1.y * v2.y - * @static - */ - static scalarProduct(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):number; - /** - * Scales the vector by an factor. - * @param {number} factor the scale factor, with which the length is multiplied. - */ - scale(factor:number):void; - /** - * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.YVector}. - * @returns {yfiles.geometry.Point} The {@link yfiles.geometry.Point}. - */ - toPoint():yfiles.geometry.Point; - /** - * Gets the first coordinate of the vector. - * @type {number} - */ - x:number; - /** - * Gets the second coordinate of the vector. - * @type {number} - */ - y:number; - static $class:yfiles.lang.Class; - } /** * This class provides access to some Comparator instances that are commonly used in yFiles. - * @class yfiles.algorithms.Comparers + * @class * @static */ export interface Comparers extends Object{} @@ -81629,9 +80984,9 @@ declare namespace system{ *

    * Warning: This method does not handle NaN! If you need NaN-safe comparison, use {@link yfiles.lang.Object_Interface#compare} instead. *

    - * @param {number} d1 the first number to compare. - * @param {number} d2 the second number to compare. - * @returns {number} a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the + * @param d1 the first number to compare. + * @param d2 the second number to compare. + * @returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the * second. * @see yfiles.collections.IComparer.#compare * @static @@ -81639,7 +80994,7 @@ declare namespace system{ static compare(d1:number,d2:number):number; /** * Returns a {@link yfiles.collections.IComparer.} that compares to Objects of type Comparable. - * @returns {yfiles.collections.IComparer.} + * @returns * @static */ static createComparableComparer():yfiles.collections.IComparer; @@ -81649,8 +81004,8 @@ declare namespace system{ * Two objects are compared by comparing the {@link yfiles.lang.IComparable} instances the given data provider returns for each of * these objects. *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return a {@link yfiles.lang.IComparable} for each object that is being compared by this comparator. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares arbitrary objects. + * @param dp a data provider that must return a {@link } for each object that is being compared by this comparator. + * @returns a {@link } that compares arbitrary objects. * @static */ static createComparableDataComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81659,8 +81014,8 @@ declare namespace system{ *

    * Two objects are compared by comparing the int value the given data provider returns for each of these objects. *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return an int value for each object that is being compared by this comparator. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares arbitrary objects. + * @param dp a data provider that must return an int value for each object that is being compared by this comparator. + * @returns a {@link } that compares arbitrary objects. * @static */ static createIntDataComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81670,8 +81025,8 @@ declare namespace system{ * Two edges are compared by comparing their source nodes. Each source node e.source() in turn is compared by the int value * provided by the given data provider: dp.getInt(e.source()). *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return an int value for the source node of each edge being compared. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares edges. + * @param dp a data provider that must return an int value for the source node of each edge being compared. + * @returns a {@link } that compares edges. * @static */ static createIntDataSourceComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81681,8 +81036,8 @@ declare namespace system{ * Two edges are compared by comparing their target nodes. Each target node e.target() in turn is compared by the int value * provided by the given data provider: dp.getInt(e.target()). *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return an int value for the target node of each edge being compared. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares edges. + * @param dp a data provider that must return an int value for the target node of each edge being compared. + * @returns a {@link } that compares edges. * @static */ static createIntDataTargetComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81691,8 +81046,8 @@ declare namespace system{ *

    * Two objects are compared by comparing the double value the given data provider returns for each of these objects. *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return a double value for each object that is being compared by this comparator. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares arbitrary objects. + * @param dp a data provider that must return a double value for each object that is being compared by this comparator. + * @returns a {@link } that compares arbitrary objects. * @static */ static createNumberDataComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81702,8 +81057,8 @@ declare namespace system{ * Two edges are compared by comparing their source nodes. Each source node e.source() in turn is compared by the double * value provided by the given data provider: dp.getDouble(e.source()). *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return a double value for the source node of each edge being compared. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares edges. + * @param dp a data provider that must return a double value for the source node of each edge being compared. + * @returns a {@link } that compares edges. * @static */ static createNumberDataSourceComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81713,8 +81068,8 @@ declare namespace system{ * Two edges are compared by comparing their target nodes. Each target node e.target() in turn is compared by the double * value provided by the given data provider: dp.getDouble(e.target()). *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return a double value for the target node of each edge being compared. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares edges. + * @param dp a data provider that must return a double value for the target node of each edge being compared. + * @returns a {@link } that compares edges. * @static */ static createNumberDataTargetComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81722,16 +81077,16 @@ declare namespace system{ } /** * Provides utility methods for working with {@link yfiles.algorithms.ICursor cursors}. - * @class yfiles.algorithms.Cursors + * @class * @static */ export interface Cursors extends Object{} export class Cursors { /** * Creates a new cursor that provides a logical view on the concatenation of the two given cursors. - * @param {yfiles.algorithms.ICursor} c1 - first concatenation argument - * @param {yfiles.algorithms.ICursor} c2 - second concatenation argument - * @returns {yfiles.algorithms.ICursor} + * @param c1 - first concatenation argument + * @param c2 - second concatenation argument + * @returns * @static */ static concatenate(c1:yfiles.algorithms.ICursor,c2:yfiles.algorithms.ICursor):yfiles.algorithms.ICursor; @@ -81744,8 +81099,8 @@ declare namespace system{ * Note that the returned cursor does not support the {@link yfiles.algorithms.ICursor#prev prev} and {@link yfiles.algorithms.ICursor#toLast toLast} operations. *

    * Type parameter T. - * @param {yfiles.collections.ICollection.} c The collection. - * @returns {yfiles.algorithms.ICursor} The cursor view of the given collection. + * @param c The collection. + * @returns The cursor view of the given collection. * @template T * @static */ @@ -81757,8 +81112,8 @@ declare namespace system{ * {@link yfiles.algorithms.IEdgeCursor#cyclicPrev}. *

    * Type parameter T. - * @param {yfiles.collections.ICollection.} c The collection. - * @returns {yfiles.algorithms.IEdgeCursor} an {@link yfiles.algorithms.IEdgeCursor} view of the given collection. + * @param c The collection. + * @returns an {@link } view of the given collection. * @template T * @static */ @@ -81770,17 +81125,17 @@ declare namespace system{ * {@link yfiles.algorithms.INodeCursor#cyclicPrev}. *

    * Type parameter T. - * @param {yfiles.collections.ICollection.} c The collection. - * @returns {yfiles.algorithms.INodeCursor} an {@link yfiles.algorithms.INodeCursor} view of the given collection. + * @param c The collection. + * @returns an {@link } view of the given collection. * @template T * @static */ static createNodeCursor(c:yfiles.collections.ICollection):yfiles.algorithms.INodeCursor; /** * Creates or fills an array with the values provided by the cursor - * @param {yfiles.algorithms.ICursor} cursor the cursor - * @param {Array.} dest the array to fill with the values or null if the method should create the array itself - * @returns {Array.} dest or a newly created array filled with the values from cursor + * @param cursor the cursor + * @param dest the array to fill with the values or null if the method should create the array itself + * @returns dest or a newly created array filled with the values from cursor * @static */ static toArray(cursor:yfiles.algorithms.ICursor,dest:Object[]):Object[]; @@ -81789,7 +81144,7 @@ declare namespace system{ /** * An abstract adapter class for providing data. *

    - * The data provision methods in this class throw a {@link Stubs.Exceptions.NotSupportedError} and {@link yfiles.algorithms.DataProviderAdapter#defined} + * The data provision methods in this class throw a {@link yfiles.lang.Exception} and {@link yfiles.algorithms.DataProviderAdapter#defined} * always returns false. *

    *

    @@ -81798,7 +81153,7 @@ declare namespace system{ *

    * Extend this class to provide either typed or untyped data for a certain lookup domain. *

    - * @class yfiles.algorithms.DataProviderAdapter + * @class * @implements {yfiles.algorithms.IDataProvider} */ export interface DataProviderAdapter extends Object,yfiles.algorithms.IDataProvider{} @@ -81809,35 +81164,35 @@ declare namespace system{ * Subclasses should override this method to make clear for which data holders there is a value accessible via this data * provider. *

    - * @param {Object} dataHolder - * @returns {boolean} false. + * @param dataHolder + * @returns false. */ defined(dataHolder:Object):boolean; /** * Subclasses may override this method to provide access to object values. - * @param {Object} dataHolder - * @returns {Object} + * @param dataHolder + * @returns * @throws {Stubs.Exceptions.NotSupportedError} unless overwritten. */ get(dataHolder:Object):Object; /** * Subclasses may override this method to provide access to boolean values. - * @param {Object} dataHolder - * @returns {boolean} + * @param dataHolder + * @returns * @throws {Stubs.Exceptions.NotSupportedError} unless overwritten. */ getBoolean(dataHolder:Object):boolean; /** * Subclasses may override this method to provide access to integer values. - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns * @throws {Stubs.Exceptions.NotSupportedError} unless overwritten. */ getInt(dataHolder:Object):number; /** * Subclasses may override this method to provide access to double values. - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns * @throws {Stubs.Exceptions.NotSupportedError} unless overwritten. */ getNumber(dataHolder:Object):number; @@ -81845,15 +81200,15 @@ declare namespace system{ } /** * This class provides convenience and transformation services for DataProviders. - * @class yfiles.algorithms.DataProviders + * @class * @static */ export interface DataProviders extends Object{} export class DataProviders { /** * Returns a DataProvider that returns the given value for each key. - * @param {Object} data constant Object data returned by the created data provider. - * @returns {yfiles.algorithms.IDataProvider} a data provider view of a single value. + * @param data constant Object data returned by the created data provider. + * @returns a data provider view of a single value. * @static */ static createConstantDataProvider(data:Object):yfiles.algorithms.IDataProvider; @@ -81862,8 +81217,8 @@ declare namespace system{ *

    * The Object value data[edge.index()] will be returned by the data provider upon the method call get(edge). *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each edge of a static graph + * @returns a data provider view of the given array * @static */ static createEdgeDataProvider(data:Object[]):yfiles.algorithms.IDataProvider; @@ -81881,11 +81236,11 @@ declare namespace system{ *

    * The Object value objectData[edge.index()] will be returned by the data provider upon the method call get(edge). *

    - * @param {Array.} doubleData double data for each edge of a static graph - * @param {Array.} intData int data for each edge of a static graph - * @param {Array.} boolData boolean data for each edge of a static graph - * @param {Array.} objectData Object data for each edge of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given arrays + * @param doubleData double data for each edge of a static graph + * @param intData int data for each edge of a static graph + * @param boolData boolean data for each edge of a static graph + * @param objectData Object data for each edge of a static graph + * @returns a data provider view of the given arrays * @static */ static createEdgeDataProviderForArrays(doubleData:number[],intData:number[],boolData:boolean[],objectData:Object[]):yfiles.algorithms.IDataProvider; @@ -81894,8 +81249,8 @@ declare namespace system{ *

    * The boolean value data[edge.index()] will be returned by the data provider upon the method call getBool(edge). *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each edge of a static graph + * @returns a data provider view of the given array * @static */ static createEdgeDataProviderForBoolean(data:boolean[]):yfiles.algorithms.IDataProvider; @@ -81904,8 +81259,8 @@ declare namespace system{ *

    * The int value data[edge.index()] will be returned by the data provider upon the method call getInt(edge). *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each edge of a static graph + * @returns a data provider view of the given array * @static */ static createEdgeDataProviderForInt(data:number[]):yfiles.algorithms.IDataProvider; @@ -81914,15 +81269,15 @@ declare namespace system{ *

    * The double value data[edge.index()] will be returned by the data provider upon the method call getDouble(edge). *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each edge of a static graph + * @returns a data provider view of the given array * @static */ static createEdgeDataProviderForNumber(data:number[]):yfiles.algorithms.IDataProvider; /** * Returns a DataProvider that returns the negated boolean values provided by another data provider. - * @param {yfiles.algorithms.IDataProvider} data - * @returns {yfiles.algorithms.IDataProvider} + * @param data + * @returns * @static */ static createNegatedDataProvider(data:yfiles.algorithms.IDataProvider):yfiles.algorithms.IDataProvider; @@ -81931,8 +81286,8 @@ declare namespace system{ *

    * The Object value data[node.index()] will be returned by the data provider upon the method call get(node). *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each node of a static graph + * @returns a data provider view of the given array * @static */ static createNodeDataProvider(data:Object[]):yfiles.algorithms.IDataProvider; @@ -81941,8 +81296,8 @@ declare namespace system{ *

    * The boolean value data[node.index()] will be returned by the data provider upon the method call getBool(node). *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each node of a static graph + * @returns a data provider view of the given array * @static */ static createNodeDataProviderForBoolean(data:boolean[]):yfiles.algorithms.IDataProvider; @@ -81951,8 +81306,8 @@ declare namespace system{ *

    * The int value data[node.index()] will be returned by the data provider upon the method call getInt(node). *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each node of a static graph + * @returns a data provider view of the given array * @static */ static createNodeDataProviderForInt(data:number[]):yfiles.algorithms.IDataProvider; @@ -81961,8 +81316,8 @@ declare namespace system{ *

    * The double value data[node.index()] will be returned by the data provider upon the method call getDouble(node). *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each node of a static graph + * @returns a data provider view of the given array * @static */ static createNodeDataProviderForNumber(data:number[]):yfiles.algorithms.IDataProvider; @@ -81980,25 +81335,25 @@ declare namespace system{ *

    * The Object value objectData[node.index()] will be returned by the data provider upon the method call get(node). *

    - * @param {Array.} doubleData double data for each node of a static graph - * @param {Array.} intData int data for each node of a static graph - * @param {Array.} boolData boolean data for each node of a static graph - * @param {Array.} objectData Object data for each node of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given arrays + * @param doubleData double data for each node of a static graph + * @param intData int data for each node of a static graph + * @param boolData boolean data for each node of a static graph + * @param objectData Object data for each node of a static graph + * @returns a data provider view of the given arrays * @static */ static createNodeDataProviderWithArrays(doubleData:number[],intData:number[],boolData:boolean[],objectData:Object[]):yfiles.algorithms.IDataProvider; /** * Returns a DataProvider for edges that return the data provider values bound to their source nodes. - * @param {yfiles.algorithms.IDataProvider} nodeData - * @returns {yfiles.algorithms.IDataProvider} + * @param nodeData + * @returns * @static */ static createSourceDataProvider(nodeData:yfiles.algorithms.IDataProvider):yfiles.algorithms.IDataProvider; /** * Returns a DataProvider for edges that return the data provider values bound to their target nodes. - * @param {yfiles.algorithms.IDataProvider} nodeData - * @returns {yfiles.algorithms.IDataProvider} + * @param nodeData + * @returns * @static */ static createTargetDataProvider(nodeData:yfiles.algorithms.IDataProvider):yfiles.algorithms.IDataProvider; @@ -82017,7 +81372,7 @@ declare namespace system{ * by default prevent the graph instance from firing events, other code might cease to work correctly. Use this class for * short term removal of nodes and edges, only. *

    - * @class yfiles.algorithms.GraphPartitionManager + * @class */ export interface GraphPartitionManager extends Object{} export class GraphPartitionManager { @@ -82026,14 +81381,13 @@ declare namespace system{ *

    * All non-static hiding and unhiding methods will refer to the given graph. *

    - * @param {yfiles.algorithms.Graph} graph - * @param {yfiles.algorithms.IDataProvider} partitionId - * @constructor + * @param graph + * @param partitionId */ constructor(graph:yfiles.algorithms.Graph,partitionId:yfiles.algorithms.IDataProvider); /** * Assures that only nodes are visible in the graph that are associated with the given partitionId. - * @param {Object} partitionId the partitionId for the nodes that will be made visible + * @param partitionId the partitionId for the nodes that will be made visible */ displayPartition(partitionId:Object):void; /** @@ -82041,7 +81395,7 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.NodeList} nl + * @param nl */ hide(nl:yfiles.algorithms.NodeList):void; /** @@ -82049,7 +81403,7 @@ declare namespace system{ *

    * The hidden edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.EdgeList} el + * @param el */ hide(el:yfiles.algorithms.EdgeList):void; /** @@ -82057,7 +81411,7 @@ declare namespace system{ *

    * The hidden edge will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.Edge} e + * @param e */ hide(e:yfiles.algorithms.Edge):void; /** @@ -82065,7 +81419,7 @@ declare namespace system{ *

    * The hidden elements will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.Node} v + * @param v */ hide(v:yfiles.algorithms.Node):void; /** @@ -82080,7 +81434,7 @@ declare namespace system{ *

    * The hidden edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.IEdgeCursor} ec + * @param ec */ hideEdgeCursor(ec:yfiles.algorithms.IEdgeCursor):void; /** @@ -82095,7 +81449,7 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.ICursor} cursor + * @param cursor */ hideItemCursor(cursor:yfiles.algorithms.ICursor):void; /** @@ -82111,12 +81465,12 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.INodeCursor} nc + * @param nc */ hideNodeCursor(nc:yfiles.algorithms.INodeCursor):void; /** * Hides nodes and adjacent edges that have the given partitionId associated. - * @param {Object} partitionId the id + * @param partitionId the id */ hidePartition(partitionId:Object):void; /** @@ -82131,7 +81485,7 @@ declare namespace system{ *

    * This method must also be called whenever the content of the given DataProvider changes. *

    - * @param {yfiles.algorithms.IDataProvider} partitionId the data provider that holds the partitionIds for all elements. + * @param partitionId the data provider that holds the partitionIds for all elements. */ initPartitions(partitionId:yfiles.algorithms.IDataProvider):void; /** @@ -82145,13 +81499,13 @@ declare namespace system{ simplifyGraph():void; /** * This method will be called whenever the partition manager is requested to unhide the given node from the graph. - * @param {yfiles.algorithms.Node} v + * @param v * @protected */ unhide(v:yfiles.algorithms.Node):void; /** * This method will be called whenever the partition manager is requested to unhide the given edge from the graph. - * @param {yfiles.algorithms.Edge} e + * @param e * @protected */ unhide(e:yfiles.algorithms.Edge):void; @@ -82172,7 +81526,7 @@ declare namespace system{ unhideNodes():void; /** * Unhides nodes that have the given partitionId associated. - * @param {Object} partitionId the id + * @param partitionId the id */ unhidePartition(partitionId:Object):void; /** @@ -82202,7 +81556,7 @@ declare namespace system{ * by default prevent the graph instance from firing events, other code might cease to work correctly. Use this class for * short term removal of nodes and edges, only. *

    - * @class yfiles.algorithms.LayoutGraphHider + * @class */ export interface LayoutGraphHider extends Object{} export class LayoutGraphHider { @@ -82211,18 +81565,17 @@ declare namespace system{ *

    * All non-static hiding and unhiding methods will refer to the given graph. *

    - * @param {yfiles.algorithms.Graph} g - * @constructor + * @param g */ constructor(g:yfiles.algorithms.Graph); /** * The edges that are currently hidden - * @returns {yfiles.algorithms.IEdgeCursor} a cursor of the currently hidden edges + * @returns a cursor of the currently hidden edges */ getHiddenEdgeCursor():yfiles.algorithms.IEdgeCursor; /** * The nodes that are currently hidden - * @returns {yfiles.algorithms.INodeCursor} a cursor of the currently hidden nodes + * @returns a cursor of the currently hidden nodes */ getHiddenNodeCursor():yfiles.algorithms.INodeCursor; /** @@ -82230,7 +81583,7 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.NodeList} nl + * @param nl */ hide(nl:yfiles.algorithms.NodeList):void; /** @@ -82238,7 +81591,7 @@ declare namespace system{ *

    * The hidden edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.EdgeList} el + * @param el */ hide(el:yfiles.algorithms.EdgeList):void; /** @@ -82246,7 +81599,7 @@ declare namespace system{ *

    * The hidden edge will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.Edge} e + * @param e */ hide(e:yfiles.algorithms.Edge):void; /** @@ -82254,7 +81607,7 @@ declare namespace system{ *

    * The hidden elements will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.Node} v + * @param v */ hide(v:yfiles.algorithms.Node):void; /** @@ -82269,7 +81622,7 @@ declare namespace system{ *

    * The hidden edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.IEdgeCursor} ec + * @param ec */ hideEdgeCursor(ec:yfiles.algorithms.IEdgeCursor):void; /** @@ -82284,7 +81637,7 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.ICursor} cursor + * @param cursor */ hideItemCursor(cursor:yfiles.algorithms.ICursor):void; /** @@ -82300,7 +81653,7 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.INodeCursor} nc + * @param nc */ hideNodeCursor(nc:yfiles.algorithms.INodeCursor):void; /** @@ -82316,8 +81669,8 @@ declare namespace system{ * The induced subgraph defined by the given edges consists of the given edges and all nodes that are solely connected to * the rest of the graph by the given edges. *

    - * @param {yfiles.algorithms.Graph} graph - * @param {yfiles.algorithms.IEdgeCursor} ec + * @param graph + * @param ec * @static */ static hideSubgraph(graph:yfiles.algorithms.Graph,ec:yfiles.algorithms.IEdgeCursor):void; @@ -82332,13 +81685,13 @@ declare namespace system{ simplifyGraph():void; /** * This method will be called whenever the hider is requested to unhide the given node from the graph. - * @param {yfiles.algorithms.Node} v + * @param v * @protected */ unhide(v:yfiles.algorithms.Node):void; /** * This method will be called whenever the hider is requested to unhide the given edge from the graph. - * @param {yfiles.algorithms.Edge} e + * @param e * @protected */ unhide(e:yfiles.algorithms.Edge):void; @@ -82355,7 +81708,7 @@ declare namespace system{ * Note that unhiding an edge whose source/target is not in the graph (e.g., because it's currently hidden/removed) causes * an exception. Hence, in such cases, you first have to unhide/reinsert the corresponding endpoints. *

    - * @param {yfiles.algorithms.Edge} e the edge that will be unhidden + * @param e the edge that will be unhidden */ unhideEdge(e:yfiles.algorithms.Edge):void; /** @@ -82367,7 +81720,7 @@ declare namespace system{ * Note that unhiding an edge whose source/target is not in the graph (e.g., because it's currently hidden/removed) causes * an exception. Hence, in such cases, you first have to unhide/reinsert the corresponding endpoints. *

    - * @param {yfiles.algorithms.EdgeList} edges the edges that will be unhidden + * @param edges the edges that will be unhidden */ unhideEdges(edges:yfiles.algorithms.EdgeList):void; /** @@ -82379,8 +81732,8 @@ declare namespace system{ *

    * Also updates {@link yfiles.algorithms.LayoutGraphHider#hiddenNodes} and {@link yfiles.algorithms.LayoutGraphHider#hiddenEdges}. *

    - * @param {yfiles.algorithms.Node} v the node that will be unhidden - * @param {boolean} unhideAdjacentEdges whether of not to unhide previously hidden edges connected at v whose other end point is not hidden, i.e. it is part of + * @param v the node that will be unhidden + * @param unhideAdjacentEdges whether of not to unhide previously hidden edges connected at v whose other end point is not hidden, i.e. it is part of * the graph. */ unhideNode(v:yfiles.algorithms.Node,unhideAdjacentEdges:boolean):void; @@ -82389,8 +81742,8 @@ declare namespace system{ *

    * Also updates {@link yfiles.algorithms.LayoutGraphHider#hiddenNodes} and {@link yfiles.algorithms.LayoutGraphHider#hiddenEdges}. *

    - * @param {yfiles.algorithms.NodeList} nodes the nodes that will be unhidden - * @param {boolean} unhideAdjacentEdges whether of not to unhide previously hidden edges connected at the given nodes whose other end point is not hidden, i.e. + * @param nodes the nodes that will be unhidden + * @param unhideAdjacentEdges whether of not to unhide previously hidden edges connected at the given nodes whose other end point is not hidden, i.e. * it is part of the graph. */ unhideNodes(nodes:yfiles.algorithms.NodeList,unhideAdjacentEdges:boolean):void; @@ -82411,8 +81764,8 @@ declare namespace system{ * Parts of the subgraph that are already contained in the given graph will not be unhidden and pose no problem to this * method. *

    - * @param {yfiles.algorithms.Graph} graph - * @param {yfiles.algorithms.IEdgeCursor} ec + * @param graph + * @param ec * @static */ static unhideSubgraph(graph:yfiles.algorithms.Graph,ec:yfiles.algorithms.IEdgeCursor):void; @@ -82446,7 +81799,7 @@ declare namespace system{ /** * This class provides convenience and transformation services for Node- and EdgeMaps and other layout-related collection * types. - * @class yfiles.algorithms.Maps + * @class * @static */ export interface Maps extends Object{} @@ -82457,8 +81810,8 @@ declare namespace system{ * Accessing basic value types is solved by storing the corresponding wrapper types Double, Integer and Boolean within the * given Map. *

    - * @param {yfiles.collections.IMap.} map - * @returns {yfiles.algorithms.IDataMap} + * @param map + * @returns * @static */ static createDataMap(map:yfiles.collections.IMap):yfiles.algorithms.IDataMap; @@ -82468,8 +81821,8 @@ declare namespace system{ * Accessing basic value types is solved by storing the corresponding wrapper types Double, Integer and Boolean within the * given Map. *

    - * @param {yfiles.collections.IMap.} map - * @returns {yfiles.algorithms.IEdgeMap} + * @param map + * @returns * @static */ static createEdgeMap(map:yfiles.collections.IMap):yfiles.algorithms.IEdgeMap; @@ -82478,7 +81831,7 @@ declare namespace system{ *

    * The preconditions specified in java.util.HashMap apply for the keys and values of this map. *

    - * @returns {yfiles.algorithms.IDataMap} + * @returns * @static */ static createHashedDataMap():yfiles.algorithms.IDataMap; @@ -82487,7 +81840,7 @@ declare namespace system{ *

    * The preconditions specified in java.util.HashMap apply for the keys and values of this map. *

    - * @returns {yfiles.algorithms.IEdgeMap} + * @returns * @static */ static createHashedEdgeMap():yfiles.algorithms.IEdgeMap; @@ -82496,7 +81849,7 @@ declare namespace system{ *

    * The preconditions specified in java.util.HashMap apply for the keys and values of this map. *

    - * @returns {yfiles.algorithms.INodeMap} + * @returns * @static */ static createHashedNodeMap():yfiles.algorithms.INodeMap; @@ -82504,8 +81857,8 @@ declare namespace system{ * Factory method that creates a {@link yfiles.collections.IMap.} that is a special hash map implementation mainly used by the layout algorithms. * Type parameter K. * Type parameter V. - * @param {yfiles.collections.ICollection.>} [entries=null] The items to optionally populate the set with initially. - * @returns {yfiles.collections.IMap.} A new instance. + * @param [entries=null] The items to optionally populate the set with initially. + * @returns A new instance. * @template K,V * @static */ @@ -82514,8 +81867,8 @@ declare namespace system{ * Factory method that creates an {@link yfiles.collections.ICollection.} implementation with set semantics that is a special hash map based implementation mainly * used by the layout algorithms. * Type parameter T. - * @param {yfiles.collections.IEnumerable.} [items=null] The items to optionally populate the set with initially. - * @returns {yfiles.collections.ICollection.} A new instance. + * @param [items=null] The items to optionally populate the set with initially. + * @returns A new instance. * @template T * @static */ @@ -82526,10 +81879,10 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataProvider} backingProvider - * @param {yfiles.algorithms.IDataAcceptor} backingAcceptor - * @param {number} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingProvider + * @param backingAcceptor + * @param defaultValue + * @returns * @static */ static createHighPerformanceDoubleMap(backingProvider:yfiles.algorithms.IDataProvider,backingAcceptor:yfiles.algorithms.IDataAcceptor,defaultValue:number):yfiles.algorithms.INodeMap; @@ -82539,9 +81892,9 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataMap} backingMap - * @param {number} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingMap + * @param defaultValue + * @returns * @static */ static createHighPerformanceDoubleMap(backingMap:yfiles.algorithms.IDataMap,defaultValue:number):yfiles.algorithms.INodeMap; @@ -82551,10 +81904,10 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataProvider} backingProvider - * @param {yfiles.algorithms.IDataAcceptor} backingAcceptor - * @param {number} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingProvider + * @param backingAcceptor + * @param defaultValue + * @returns * @static */ static createHighPerformanceIntMap(backingProvider:yfiles.algorithms.IDataProvider,backingAcceptor:yfiles.algorithms.IDataAcceptor,defaultValue:number):yfiles.algorithms.INodeMap; @@ -82564,9 +81917,9 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataMap} backingMap - * @param {number} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingMap + * @param defaultValue + * @returns * @static */ static createHighPerformanceIntMap(backingMap:yfiles.algorithms.IDataMap,defaultValue:number):yfiles.algorithms.INodeMap; @@ -82576,10 +81929,10 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataProvider} backingProvider - * @param {yfiles.algorithms.IDataAcceptor} backingAcceptor - * @param {Object} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingProvider + * @param backingAcceptor + * @param defaultValue + * @returns * @static */ static createHighPerformanceMap(backingProvider:yfiles.algorithms.IDataProvider,backingAcceptor:yfiles.algorithms.IDataAcceptor,defaultValue:Object):yfiles.algorithms.INodeMap; @@ -82589,9 +81942,9 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataMap} backingMap - * @param {Object} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingMap + * @param defaultValue + * @returns * @static */ static createHighPerformanceMap(backingMap:yfiles.algorithms.IDataMap,defaultValue:Object):yfiles.algorithms.INodeMap; @@ -82604,8 +81957,8 @@ declare namespace system{ *

    * Warning! The indices of the accessed edges must not change during the use of this EdgeMap. *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IEdgeMap} a EdgeMap view of the given array + * @param data array data for each edge of a static graph + * @returns a EdgeMap view of the given array * @static */ static createIndexEdgeMap(data:Object[]):yfiles.algorithms.IEdgeMap; @@ -82618,8 +81971,8 @@ declare namespace system{ *

    * Warning! The indices of the accessed edges must not change during the use of this EdgeMap. *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IEdgeMap} a EdgeMap view of the given array + * @param data array data for each edge of a static graph + * @returns a EdgeMap view of the given array * @static */ static createIndexEdgeMapForBoolean(data:boolean[]):yfiles.algorithms.IEdgeMap; @@ -82632,8 +81985,8 @@ declare namespace system{ *

    * Warning! The indices of the accessed edges must not change during the use of this EdgeMap. *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IEdgeMap} a EdgeMap view of the given array + * @param data array data for each edge of a static graph + * @returns a EdgeMap view of the given array * @static */ static createIndexEdgeMapForInt(data:number[]):yfiles.algorithms.IEdgeMap; @@ -82646,8 +81999,8 @@ declare namespace system{ *

    * Warning! The indices of the accessed edges must not change during the use of this EdgeMap. *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IEdgeMap} a EdgeMap view of the given array + * @param data array data for each edge of a static graph + * @returns a EdgeMap view of the given array * @static */ static createIndexEdgeMapForNumber(data:number[]):yfiles.algorithms.IEdgeMap; @@ -82672,11 +82025,11 @@ declare namespace system{ *

    * Warning! The indices of the accessed edges must not change during the use of this EdgeMap. *

    - * @param {Array.} doubleData double data for each edge of a static graph - * @param {Array.} intData int data for each edge of a static graph - * @param {Array.} boolData boolean data for each edge of a static graph - * @param {Array.} objectData Object data for each edge of a static graph - * @returns {yfiles.algorithms.IEdgeMap} a EdgeMap view of the given arrays + * @param doubleData double data for each edge of a static graph + * @param intData int data for each edge of a static graph + * @param boolData boolean data for each edge of a static graph + * @param objectData Object data for each edge of a static graph + * @returns a EdgeMap view of the given arrays * @static */ static createIndexEdgeMapFromArrays(doubleData:number[],intData:number[],boolData:boolean[],objectData:Object[]):yfiles.algorithms.IEdgeMap; @@ -82686,8 +82039,8 @@ declare namespace system{ * The Object value data[node.index()] will be accessed by the NodeMap upon the method calls get(node) and set(node,value). * Warning! The indices of the accessed nodes must not change during the use of this NodeMap. *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.INodeMap} a NodeMap view of the given array + * @param data array data for each node of a static graph + * @returns a NodeMap view of the given array * @static */ static createIndexNodeMap(data:Object[]):yfiles.algorithms.INodeMap; @@ -82697,8 +82050,8 @@ declare namespace system{ * The boolean value data[node.index()] will be accessed by the NodeMap upon the method calls getBool(node) and * setBool(node,value). *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.INodeMap} a NodeMap view of the given array + * @param data array data for each node of a static graph + * @returns a NodeMap view of the given array * @static */ static createIndexNodeMapForBoolean(data:boolean[]):yfiles.algorithms.INodeMap; @@ -82708,8 +82061,8 @@ declare namespace system{ * The int value data[node.index()] will be accessed by the NodeMap upon the method calls getInt(node) and * setInt(node,value). Warning! The indices of the accessed nodes must not change during the use of this NodeMap. *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.INodeMap} a NodeMap view of the given array + * @param data array data for each node of a static graph + * @returns a NodeMap view of the given array * @static */ static createIndexNodeMapForInt(data:number[]):yfiles.algorithms.INodeMap; @@ -82722,8 +82075,8 @@ declare namespace system{ *

    * Warning! The indices of the accessed nodes must not change during the use of this NodeMap. *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.INodeMap} a NodeMap view of the given array + * @param data array data for each node of a static graph + * @returns a NodeMap view of the given array * @static */ static createIndexNodeMapForNumber(data:number[]):yfiles.algorithms.INodeMap; @@ -82748,11 +82101,11 @@ declare namespace system{ *

    * Warning! The indices of the accessed nodes must not change during the use of this NodeMap. *

    - * @param {Array.} doubleData double data for each node of a static graph - * @param {Array.} intData int data for each node of a static graph - * @param {Array.} boolData boolean data for each node of a static graph - * @param {Array.} objectData Object data for each node of a static graph - * @returns {yfiles.algorithms.INodeMap} a NodeMap view of the given arrays + * @param doubleData double data for each node of a static graph + * @param intData int data for each node of a static graph + * @param boolData boolean data for each node of a static graph + * @param objectData Object data for each node of a static graph + * @returns a NodeMap view of the given arrays * @static */ static createIndexNodeMapFromArrays(doubleData:number[],intData:number[],boolData:boolean[],objectData:Object[]):yfiles.algorithms.INodeMap; @@ -82762,1717 +82115,452 @@ declare namespace system{ * Accessing basic value types is solved by storing the corresponding wrapper types Double, Integer and Boolean within the * given Map. *

    - * @param {yfiles.collections.IMap.} map - * @returns {yfiles.algorithms.INodeMap} + * @param map + * @returns * @static */ static createNodeMap(map:yfiles.collections.IMap):yfiles.algorithms.INodeMap; static $class:yfiles.lang.Class; } - }export namespace layout{ /** - * This class represents a column of a {@link yfiles.layout.PartitionGrid partition grid} structure. + * An implementation of a doubly linked list that provides direct access to the cells that store the elements. *

    - * The results of the calculation of the geometry of the column will be placed into the instances of this class after the - * layout. + * The cells are represented by class {@link yfiles.algorithms.ListCell}. *

    - * @see yfiles.layout.PartitionGrid - * @class yfiles.layout.ColumnDescriptor - * @implements {yfiles.lang.IComparable} + *

    + * This class supports fast access and removal operations, specifically, it is possible to remove an element in constant + * time (i.e. O(1)) given a reference to its list cell. + *

    + *

    + * Class YList supports iteration over the elements either by using the list cells directly (methods {@link yfiles.algorithms.YList#firstCell}/{@link yfiles.algorithms.YList#lastCell} together with + * {@link yfiles.algorithms.YList#succCell}/{@link yfiles.algorithms.YList#predCell}, respectively) or by means of a cursor + * ({@link yfiles.algorithms.YList#cursor}). + *

    + *

    + * Furthermore, YList offers its own {@link yfiles.algorithms.YList#sort} method. Note that this class also provides all relevant + * methods to use the list like a stack data type. + *

    + *

    + * This implementation permits null as values. It implements the {@link yfiles.collections.IList.} interface but does not support the {@link yfiles.algorithms.YList#subList} + * method. The implementation of this method will throw an {@link yfiles.lang.Exception} if invoked. The {@link yfiles.algorithms.YList#cursor} + * returned by instances of this class is not fail fast. + *

    + * @class + * @implements {yfiles.collections.IList.} */ - export interface ColumnDescriptor extends Object,yfiles.lang.IComparable{} - export class ColumnDescriptor { + export interface YList extends Object,yfiles.collections.IList{} + export class YList { /** - * Compares this {@link yfiles.layout.ColumnDescriptor} instance with a given other {@link yfiles.layout.ColumnDescriptor} instance based - * on the indices of the two instances. - * @param {Object} o the {@link yfiles.layout.ColumnDescriptor} to compare to - * @returns {number} -1, 0 or 1 if this {@link yfiles.layout.ColumnDescriptor} is less than, equal to, or greater than the given other - * {@link yfiles.layout.ColumnDescriptor} + * Creates a list that is initialized with the elements provided by the given array of objects. + * @param a */ - compareTo(o:Object):number; + constructor(a:Object[]); /** - * Gets the index of the column within the {@link yfiles.layout.PartitionGrid partition grid}. - * @type {number} + * Creates a list that is initialized with those elements from the given YCursor object for which the given data provider + * returns true upon calling its {@link yfiles.algorithms.IDataProvider#getBoolean getBool} method. + * @param c A cursor providing objects that should be added to this list. + * @param predicate A data provider that acts as a inclusion predicate for each object accessible by the given cursor. */ - index:number; + constructor(c:yfiles.algorithms.ICursor,predicate:yfiles.algorithms.IDataProvider); /** - * Gets or sets the minimum width of the column. - *

    - * The minimum width is defined to be at least 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the minimum width is negative - * @type {number} + * Creates a list that is initialized with the elements provided by the given Collection object. + * @param c */ - minimumWidth:number; + constructor(c:yfiles.collections.IEnumerable); /** - * Gets or sets the left column inset in which no element will lie in the resulting layout. - *

    - * The column inset must be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the left inset is negative - * @type {number} + * Creates a list that is initialized with the elements provided by the given YCursor object. + * @param c */ - leftInset:number; + constructor(c:yfiles.algorithms.ICursor); /** - * Gets or sets the right column inset in which no element will lie in the resulting layout. - *

    - * The column inset must be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the right inset is negative - * @type {number} - */ - rightInset:number; - /** - * Gets or sets the computed width of the column after the layout has been calculated. - *

    - * The computed width needs to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the computed width is negative - * @type {number} - */ - computedWidth:number; - /** - * Gets or sets the original width of the column. - *

    - * The original width should be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the original width is negative - * @type {number} - */ - originalWidth:number; - /** - * Gets or sets the original position (smallest x-coordinate) of the column. - * @type {number} - */ - originalPosition:number; - /** - * Gets or sets the computed position (smallest x-coordinate) of the column after the layout has been calculated. - * @type {number} - */ - computedPosition:number; - /** - * Gets or sets the tightness factor of this column. - *

    - * This value must lie within the interval [0,1]. - *

    - *

    - * The larger the value, the more the column will be forced to obtain its minimum width: - *

    - *
      - *
    • a value of 0.0d will disable the compression of the column.
    • - *
    • a value of 1.0d will try to force the column to obtain its specified {@link yfiles.layout.ColumnDescriptor#minimumWidth minimum width}.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if the tightness value is outside the interval [0,1] - * @type {number} - */ - tightness:number; - /** - * Gets or sets whether the index of the column is fixed or it should be chosen automatically in order to minimize edge - * lengths. - *

    - * For all columns where this property is enabled, the relative ordering given by the indices is preserved. The remaining - * columns may be sorted again so that the overall edge lengths are minimized. - *

    - * @type {boolean} - */ - indexFixed:boolean; - static $class:yfiles.lang.Class; - } - /** - * This class represents a single partition cell, i.e., a pair consisting of a row and a column. - * @class yfiles.layout.PartitionCellIdEntry - * @implements {yfiles.lang.IComparable} - * @final - */ - export interface PartitionCellIdEntry extends Object,yfiles.lang.IComparable{} - export class PartitionCellIdEntry { - /** - * Compares this {@link yfiles.layout.PartitionCellIdEntry} instance with a given other {@link yfiles.layout.PartitionCellIdEntry} - * instance. - *

    - * The comparison is based on the indices of the {@link yfiles.layout.PartitionCellIdEntry#row rows} and {@link yfiles.layout.PartitionCellIdEntry#column columns} of the two pairs. A {@link yfiles.layout.PartitionCellIdEntry} is - * considered to be smaller than another pair if its {@link yfiles.layout.RowDescriptor#index row index} is smaller than the row index of the other pair. If the row - * indices are equal, the {@link yfiles.layout.PartitionCellIdEntry} with the smaller {@link yfiles.layout.ColumnDescriptor#index column index} is said to be smaller. Hence, - * two {@link yfiles.layout.PartitionCellIdEntry} instances are equal, if the row and column indices are equal. - *

    - * @param {Object} o the {@link yfiles.layout.PartitionCellIdEntry} to be compared - * @returns {number} -1, 0 or 1 if this {@link yfiles.layout.PartitionCellIdEntry} is smaller than, equal to, or greater than the given other {@link yfiles.layout.PartitionCellIdEntry} - * instance - */ - compareTo(o:Object):number; - /** - * Gets the {@link yfiles.layout.RowDescriptor} associated with this {@link yfiles.layout.PartitionCellId partition cell}. - * @type {yfiles.layout.RowDescriptor} - */ - row:yfiles.layout.RowDescriptor; - /** - * Gets the {@link yfiles.layout.ColumnDescriptor} associated with this {@link yfiles.layout.PartitionCellId partition cell}. - * @type {yfiles.layout.ColumnDescriptor} - */ - column:yfiles.layout.ColumnDescriptor; - static $class:yfiles.lang.Class; - } - /** - * {@link yfiles.layout.PartitionCellId} represents an identifier for partition cells of a {@link yfiles.layout.PartitionGrid partition grid} structure. - * @see yfiles.layout.PartitionGrid - * @class yfiles.layout.PartitionCellId - */ - export interface PartitionCellId extends Object{} - export class PartitionCellId { - /** - * Gets a {@link yfiles.collections.ICollection. collection} of elements of type {@link yfiles.layout.PartitionCellIdEntry}. - *

    - * Each pair consists of a {@link yfiles.layout.ColumnDescriptor column} and a {@link yfiles.layout.RowDescriptor row} defining a single {@link yfiles.layout.PartitionCellId partition cell}. - *

    - * @type {yfiles.collections.IEnumerable.} - */ - cells:yfiles.collections.IEnumerable; - /** - * Gets whether or not this {@link yfiles.layout.PartitionCellId} represents a multi-cell, i.e., a cell spanning multiple - * rows/columns. - *

    - * This means that it was created using {@link yfiles.layout.PartitionGrid#createCellSpanId}, - * {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createColumnSpanId} - * or {@link yfiles.layout.PartitionGrid#createRowSpanId}. - *

    - * @type {boolean} - */ - isSpanning:boolean; - /** - * Gets the first {@link yfiles.layout.RowDescriptor row} associated with this {@link yfiles.layout.PartitionCellId partition cell} identifier. - * @type {yfiles.layout.RowDescriptor} - */ - row:yfiles.layout.RowDescriptor; - /** - * Gets the first {@link yfiles.layout.ColumnDescriptor column} associated with this {@link yfiles.layout.PartitionCellId partition cell} identifier. - * @type {yfiles.layout.ColumnDescriptor} - */ - column:yfiles.layout.ColumnDescriptor; - static $class:yfiles.lang.Class; - } - /** - * This class represents a partition grid that partitions the drawing area into rectangular partition cells. - *

    - * Such a structure allows, for example, to model vertical/horizontal swimlanes which are often used in flow diagrams to - * separate logical units. - *

    - *

    - * The grid consists of rows and columns that are created using the corresponding constructors of this class or methods {@link yfiles.layout.PartitionGrid#addRow} - * and {@link yfiles.layout.PartitionGrid#addColumn}. The {@link yfiles.layout.PartitionGrid} object has to be registered with the graph - * using the {@link yfiles.algorithms.IDataProvider} key {@link yfiles.layout.PartitionGrid#PARTITION_GRID_DP_KEY}. - *

    - *

    - * Each node can be assigned to a {@link yfiles.layout.PartitionCellId} which represents a set of partition cells. The mapping has - * to be registered with the graph using {@link yfiles.algorithms.IDataProvider} key - * {@link yfiles.layout.PartitionGrid#PARTITION_CELL_ID_DP_KEY}. Simple partition cell identifiers which represent a single - * partition cell, i.e., a row/column pair, can be created using method {@link yfiles.layout.PartitionGrid#createCellId} or - * {@link yfiles.layout.PartitionGrid#createCellId}. - *

    - *

    - * Nodes can also be mapped to a partition cell identifier that represents a multi-cell, i.e., a cell spanning multiple - * columns and rows. Please note, however, that multi-cells are not allowed to overlap each other. This means that the user - * has to ensure that each partition cell (row/column pair) is associated with at most one partition cell identifier. The - * multi-cell identifier can be created using methods {@link yfiles.layout.PartitionGrid#createCellSpanId}, - * {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createCellSpanId}, - * {@link yfiles.layout.PartitionGrid#createColumnSpanId}, and {@link yfiles.layout.PartitionGrid#createRowSpanId}. - *

    - *

    - * {@graph {"ann":{"s":[60,30],"d":1, "lblB" : 1, "lblFont" : "16px sans-serif"},"n":[[265,290,230,142,2,[[265,313.6,230,23.6,5,"Column 0"]]],[311.5,386.5,[[336.16,410.85,10.67,18.7]]],[411.5,346.5,[[436.16,370.85,10.67,18.7]]],[505,289,299,144,2,[[505,312.6,299,23.6,5,"Column 1"]]],[631.5,366.5,[[656.16,390.85,10.67,18.7]]],[731.5,326.5,[[756.16,350.85,10.67,18.7]]],[531.5,326.5,[[556.16,350.85,10.67,18.7]]],[819,290,250,140,2,[[819,313.6,250,23.6,5,"Column 2"]]],[831.5,326.5,[[856.16,350.85,10.67,18.7]]],[265,449,230,123,2],[411.5,466.5,[[436.16,490.85,10.67,18.7]]],[411.5,526.5,[[436.16,550.85,10.67,18.7]]],[505,449,299,123,2],[819,449,250,123,2],[931.5,466.5,[[956.16,490.85,10.67,18.7]]],[505,589,299,104,2],[819,589,250,104,2],[531.5,606.5,[[552.83,630.85,17.35,18.7]]],[265,589,230,104,2],[411.5,606.5,[[432.83,630.85,17.35,18.7]]],[831.5,606.5,[[852.83,630.85,17.35,18.7]]],[105,348.2,150,23.6,2,[[105,371.8,150,23.6,5,"Row 0"]]],[105,488.2,150,23.6,2,[[105,511.8,150,23.6,5,"Row 1"]]],[105,628.2,150,23.6,2,[[105,651.8,150,23.6,5,"Row 2"]]]],"e":[[1,2,30,-10,-30,-0,[381.5,391.5,381.5,361.5]],[1,4,30,-0,-30,10,[581.5,401.5,581.5,391.5]],[2,4,30,7.5,-30,-0,[481.5,369,481.5,381.5]],[4,5,30,-0,-30,7.5,[701.5,381.5,701.5,349]],[2,6,30,-7.5,-30,-0,[481.5,354,481.5,341.5]],[6,4,30,7.5,-30,-10,[601.5,349,601.5,371.5]],[6,5,30,-7.5,-30,-7.5,[621.5,334,621.5,341.5,681.5,341.5,681.5,334]],[5,8,30,-0,-30,-0],[8,14,30,-0,-30,-7.5,[901.5,341.5,901.5,474]],[10,14,30,-0,-30,7.5,[881.5,481.5,881.5,489]],[1,17,30,10,-30,10,[381.5,411.5,381.5,661.5,481.5,661.5,481.5,631.5]],[11,17,30,-0,-30,-10,[481.5,541.5,481.5,611.5]],[19,17,30,-0,-30,-0],[17,20,30,-0,-30,-0]],"vp":[105.0,289.0,964.0,404.0]}} Sample output of a layout algorithm with a partition grid - *

    - * @class yfiles.layout.PartitionGrid - */ - export interface PartitionGrid extends Object{} - export class PartitionGrid { - /** - * Creates an instance of {@link yfiles.layout.PartitionGrid} with the given number of rows and columns as well as with given - * insets and minimum sizes. - * @param {number} rowCount the number of rows - * @param {number} columnCount the number of columns - * @param {number} rowInsets the top and bottom insets of the rows - * @param {number} columnInsets the left and right insets of the columns - * @param {number} minRowSize the minimum row height - * @param {number} minColumnSize the minimum column width - * @constructor - */ - constructor(rowCount:number,columnCount:number,rowInsets:number,columnInsets:number,minRowSize:number,minColumnSize:number); - /** - * Creates an instance of {@link yfiles.layout.PartitionGrid} with the given number of rows and columns. - * @param {number} rowCount the number of rows - * @param {number} columnCount the number of columns - * @constructor - */ - constructor(rowCount:number,columnCount:number); - /** - * Creates a new empty instance of {@link yfiles.layout.PartitionGrid}. - * @constructor + * Creates an empty doubly linked list. */ constructor(); /** - * Adds a new {@link yfiles.layout.ColumnDescriptor column} to the {@link yfiles.layout.PartitionGrid} instance. + * Appends all elements provided by the given cursor to this list. *

    - * The index of the column (as returned by {@link yfiles.layout.ColumnDescriptor#index}) is equal to the size of the list returned by {@link yfiles.layout.PartitionGrid#columns}. + * The cursor will be moved from its given position to the end. *

    - * @returns {yfiles.layout.ColumnDescriptor} a new {@link yfiles.layout.ColumnDescriptor} instance - */ - addColumn():yfiles.layout.ColumnDescriptor; - /** - * Adds a new {@link yfiles.layout.RowDescriptor row} to the {@link yfiles.layout.PartitionGrid} instance. - *

    - * The index of the row (as returned by {@link yfiles.layout.RowDescriptor#index}) is equal to the size of the list returned by {@link yfiles.layout.PartitionGrid#rows}. - *

    - * @returns {yfiles.layout.RowDescriptor} a new {@link yfiles.layout.RowDescriptor} instance - */ - addRow():yfiles.layout.RowDescriptor; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents the cell defined by the given column and row index. - * @param {number} rowIndex the row index of the row defining the cell - * @param {number} columnIndex the column index of the column defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - * @throws {Stubs.Exceptions.ArgumentError} if the given column/row index is not valid - */ - createCellId(rowIndex:number,columnIndex:number):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents the cell defined by the given {@link yfiles.layout.ColumnDescriptor column} and {@link yfiles.layout.RowDescriptor row}. - * @param {yfiles.layout.RowDescriptor} rd the row defining the cell - * @param {yfiles.layout.ColumnDescriptor} cd the column defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - * @throws {Stubs.Exceptions.ArgumentError} if the given column/row is null - */ - createCellId(rd:yfiles.layout.RowDescriptor,cd:yfiles.layout.ColumnDescriptor):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. - *

    - * The partition cell identifier represents all cells defined by a row between fromRow and toRow (both including) and a - * column between fromRow and toCol (both including). - *

    - *

    - * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the - * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not - * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be - * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered - * during the layout. - *

    - * @param {yfiles.layout.RowDescriptor} fromRow the topmost row defining the cell - * @param {yfiles.layout.ColumnDescriptor} fromCol the leftmost column defining the cell - * @param {yfiles.layout.RowDescriptor} toRow the bottommost row defining the cell - * @param {yfiles.layout.ColumnDescriptor} toCol the rightmost column defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - */ - createCellSpanId(fromRow:yfiles.layout.RowDescriptor,fromCol:yfiles.layout.ColumnDescriptor,toRow:yfiles.layout.RowDescriptor,toCol:yfiles.layout.ColumnDescriptor):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. - *

    - * The partition cell identifier represents all cells defined by a row with index between fromRowIndex and toRowIndex (both - * including) and a column with index between fromColIndex and toColIndex (both including). - *

    - *

    - * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the - * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not - * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be - * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered - * during the layout. - *

    - * @param {number} fromRowIndex the row index of the topmost row defining the cell - * @param {number} fromColIndex the column index of the leftmost column defining the cell - * @param {number} toRowIndex the row index of the bottommost row defining the cell - * @param {number} toColIndex the column index of the rightmost column defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - */ - createCellSpanId(fromRowIndex:number,fromColIndex:number,toRowIndex:number,toColIndex:number):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. - *

    - * The partition cell identifier represents all cells spanned by the columns of columnList and rows of rowList. - *

    - *

    - * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the - * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not - * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be - * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered - * during the layout. - *

    - * @param {yfiles.collections.ICollection.} rowList the {@link yfiles.layout.RowDescriptor rows} defining the cell - * @param {yfiles.collections.ICollection.} columnList the {@link yfiles.layout.ColumnDescriptor columns} defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - */ - createCellSpanId(rowList:yfiles.collections.ICollection,columnList:yfiles.collections.ICollection):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a cell spanning a whole column. - *

    - * A group node mapped to such a partition cell identifier represents the column, i.e., its enclosing boundary corresponds - * to that of the column. The boundary does not depend on the partition cells associated with the group's descendants. - * Hence, each non-group descendant has to be manually assigned to one of the partition cells. Furthermore, edges incident - * to such a group node are not considered during the layout. - *

    - * @param {number} columnIndex the column index of the column defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - */ - createColumnSpanId(columnIndex:number):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a cell spanning a whole row. - *

    - * A group node mapped to such a partition cell identifier represents the row, i.e., its enclosing boundary corresponds to - * that of the row. The boundary does not depend on the partition cells associated with the group's descendants. Hence, - * each non-group descendant has to be manually assigned to one of the partition cells. Furthermore, edges incident to such - * a group node are not considered during the layout. - *

    - * @param {number} rowIndex the row index of the row defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - */ - createRowSpanId(rowIndex:number):yfiles.layout.PartitionCellId; - /** - * Finalizes the orientation changes and is called at the end of the {@link yfiles.layout.OrientationLayout} stage. - *

    - * Points are transferred to their final positions through {@link yfiles.layout.OrientationLayout#completeTransform}. - *

    - * @param {yfiles.layout.OrientationLayout} orientationLayouter an {@link yfiles.layout.OrientationLayout} instance - * @see yfiles.layout.OrientationLayout - */ - finalizeOrientationChange(orientationLayouter:yfiles.layout.OrientationLayout):void; - /** - * Returns the {@link yfiles.layout.ColumnDescriptor column} with the given index. - * @param {number} index the index of the column to be returned - * @returns {yfiles.layout.ColumnDescriptor} the {@link yfiles.layout.ColumnDescriptor column} with the given index or null if no such column exists - */ - getColumn(index:number):yfiles.layout.ColumnDescriptor; - /** - * Returns the {@link yfiles.layout.PartitionGrid} instance associated with the given graph. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {yfiles.layout.PartitionGrid} the {@link yfiles.layout.PartitionGrid} of the graph or null if the graph has no associated partition grid - * @static - */ - static getPartitionGrid(graph:yfiles.algorithms.Graph):yfiles.layout.PartitionGrid; - /** - * Returns the {@link yfiles.layout.RowDescriptor row} with the given index. - * @param {number} index the index of the row to be returned - * @returns {yfiles.layout.RowDescriptor} the {@link yfiles.layout.RowDescriptor row} with the given index or null if no such row exists - */ - getRow(index:number):yfiles.layout.RowDescriptor; - static hasAtLeastTwoNonEmptyRows(graph:yfiles.algorithms.Graph):boolean; - /** - * Prepares for the orientation changes and is called at the beginning of the {@link yfiles.layout.OrientationLayout} stage. - *

    - * Original points are transferred to their temporary positions through {@link yfiles.layout.OrientationLayout#prepareTransform}. - *

    - * @param {yfiles.layout.OrientationLayout} orientationLayouter an {@link yfiles.layout.OrientationLayout} instance - * @see yfiles.layout.OrientationLayout - */ - prepareOrientationChange(orientationLayouter:yfiles.layout.OrientationLayout):void; - /** - * Data provider key for storing the partition grid structure - *

    - * If the {@link yfiles.algorithms.IDataProvider} contains a partition grid structure, this structure will be considered during - * layout (provided that the layout algorithm supports such constraints). - *

    - * @const - * @static - * @type {yfiles.algorithms.GraphDpKey.} - */ - static PARTITION_GRID_DP_KEY:yfiles.algorithms.GraphDpKey; - /** - * Data provider key for storing a set of partition cells for each node - *

    - * Each node is placed inside the columns/rows defined by the corresponding {@link yfiles.layout.PartitionCellId} identifier. - * Instances can be shared among multiple nodes, but don't have to be shared. - *

    - * @see yfiles.layout.PartitionCellId - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static PARTITION_CELL_ID_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets whether or not the order of the columns should be chosen automatically to minimize edge lengths. - *

    - * For all columns where {@link yfiles.layout.ColumnDescriptor#indexFixed} is set to - * true, the relative ordering given by the indices is preserved. The remaining columns may be sorted again so that the - * overall edge lengths are minimized. - *

    - * @type {boolean} - */ - optimizeColumnOrder:boolean; - /** - * Gets or sets whether or not the order of the rows should be chosen automatically to minimize edge lengths. - *

    - * For all rows where {@link yfiles.layout.RowDescriptor#indexFixed} is set to - * true, the relative ordering given by the indices is preserved. The remaining rows may be sorted again so that the - * overall edge lengths are minimized. - *

    - * @type {boolean} - */ - optimizeRowOrder:boolean; - /** - * Gets the list of rows of the {@link yfiles.layout.PartitionGrid partition grid}. - * @type {yfiles.algorithms.YList} - */ - rows:yfiles.algorithms.YList; - /** - * Gets the columns of the {@link yfiles.layout.PartitionGrid partition grid}. - * @type {yfiles.algorithms.YList} - */ - columns:yfiles.algorithms.YList; - static $class:yfiles.lang.Class; - } - /** - * This class represents a row of a {@link yfiles.layout.PartitionGrid partition grid} structure. - *

    - * The results of the calculation of the geometry of the row will be placed into the instances of this class after the - * layout. - *

    - * @see yfiles.layout.PartitionGrid - * @class yfiles.layout.RowDescriptor - * @implements {yfiles.lang.IComparable} - */ - export interface RowDescriptor extends Object,yfiles.lang.IComparable{} - export class RowDescriptor { - /** - * Compares this {@link yfiles.layout.RowDescriptor} instance with a given other {@link yfiles.layout.RowDescriptor} instance based on the - * indices of the two instances. - * @param {Object} o the {@link yfiles.layout.RowDescriptor} to compare to - * @returns {number} -1, 0 or 1 if this {@link yfiles.layout.RowDescriptor} is less than, equal to, or greater than the given other - * {@link yfiles.layout.RowDescriptor} - */ - compareTo(o:Object):number; - /** - * Gets the index of the row within the {@link yfiles.layout.PartitionGrid partition grid}. - * @type {number} - */ - index:number; - /** - * Gets or sets the minimum height of the row. - *

    - * The minimum height is defined to be at least 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the minimum height is negative - * @type {number} - */ - minimumHeight:number; - /** - * Gets or sets the top inset in which no element will lie in the resulting layout. - *

    - * The inset value needs to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given top inset is negative - * @type {number} - */ - topInset:number; - /** - * Gets or sets the bottom inset in which no element will lie in the resulting layout. - *

    - * The inset value needs to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given bottom inset is negative - * @type {number} - */ - bottomInset:number; - /** - * Gets or sets the computed height of the row after the layout has been calculated. - *

    - * The computed height needs to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the computed height is negative - * @type {number} - */ - computedHeight:number; - /** - * Gets or sets the original position (smallest y-coordinate) of the row. - * @type {number} - */ - originalPosition:number; - /** - * Gets or sets the original height of the row. - *

    - * The original height needs to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the original height is negative - * @type {number} - */ - originalHeight:number; - /** - * Gets or sets the computed position (smallest y-coordinate) of the row after the layout has been calculated. - * @type {number} - */ - computedPosition:number; - /** - * Gets or sets the tightness factor of this row. - *

    - * This value must lie within the interval [0,1]. - *

    - *

    - * The larger the value, the more the row will be forced to obtain its minimum height: - *

    - *
      - *
    • a value of 0.0d will disable the compression of the row.
    • - *
    • a value of 1.0d will try to force the row to obtain its specified {@link yfiles.layout.RowDescriptor#minimumHeight minimum height}.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if the tightness value is outside the interval [0,1] - * @type {number} - */ - tightness:number; - /** - * Gets or sets whether the index of the row is fixed or it should be chosen automatically in order to minimize edge - * lengths. - *

    - * For all rows where this property is enabled, the relative ordering given by the indices is preserved. The remaining rows - * may be sorted again so that the overall edge lengths are minimized. - *

    - * @type {boolean} - */ - indexFixed:boolean; - static $class:yfiles.lang.Class; - } - export enum InterEdgeRoutingStyle{ - /** - * An inter-edge routing style based on which the edge layout of inter-edges will be adopted from the - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle - */ - ADOPT, - /** - * An inter-edge routing style based on which inter-edges are routed in an orthogonal style. - * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle - * @see yfiles.layout.FixGroupLayoutStage#interEdgeRouter - */ - ORTHOGONAL, - /** - * An inter-edge routing style based on which inter-edges are routed as straight lines. - * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle - * @see yfiles.layout.FixGroupLayoutStage#interEdgeRouter - */ - STRAIGHTLINE - } - /** - * This interface defines {@link yfiles.algorithms.IDataProvider} keys for those layout algorithms that can handle hierarchically - * grouped graphs. - *

    - * There are two groups of {@link yfiles.algorithms.IDataProvider} keys. {@link yfiles.algorithms.IDataProvider}s registered with - * {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY}, {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY} and {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY} - * define the relationship of nodes within the hierarchy. A parent node is defined for each node in the graph. This parent - * is the containing group node. For top-level nodes, this parent is null. - *

    - *

    - * {@link yfiles.layout.GroupingKeys#GROUP_NODE_INSETS_DP_KEY} and {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY} are used for - * registering - * {@link yfiles.algorithms.IDataProvider}s that add layout information to group nodes such as the insets and the minimum size - * respectively. - *

    - * @see yfiles.layout.GroupingSupport - * @class yfiles.layout.GroupingKeys - * @static - */ - export interface GroupingKeys extends Object{} - export class GroupingKeys { - /** - * Data provider key for assigning a unique ID for each node. - *

    - * The IDs of the nodes need to differ based on {@link Object#hashCode} and {@link Object#equals}. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static NODE_ID_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for describing the hierarchy of nodes in the graph. - * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static PARENT_NODE_ID_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for distinguishing normal nodes from group nodes. - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static GROUP_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for assigning insets for group nodes. - *

    - * Insets reserve space around the contents of a group node. Labels and other visual decorations may be placed inside this - * space. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static GROUP_NODE_INSETS_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for assigning minimum sizes for group nodes. - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static MINIMUM_NODE_SIZE_DP_KEY:yfiles.algorithms.NodeDpKey; - static $class:yfiles.lang.Class; - } - /** - * This class provides convenient and efficient access to the hierarchic graph structure. - *

    - * The grouping information is provided through {@link yfiles.algorithms.IDataProvider}s registered with the graph with keys - * {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY}, {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY} and - * {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY}. It describes the hierarchy as a tree where a group node is the parent of the - * nodes that it contains. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[444,-37.38,62,82.38,2,[[444,-15,62,22.38,"9"]]],[460,0,[[469.66,24.35,10.67,18.7,"5"]]],[536,0,[[545.66,24.35,10.67,18.7,"6"]]],[384,0,[[393.66,24.35,10.67,18.7,"4"]]],[596,-10,50,50,2,[[596,12.38,50,22.38,"7"]]],[140,-74.75,214,134.75,2,[[140,-52.38,214,22.38,"10"]]],[156,0,[[165.66,24.35,10.67,18.7,"1"]]],[216,-37.38,122,82.38,2,[[216,-15,122,22.38,"8"]]],[232,0,[[241.66,24.35,10.67,18.7,"2"]]],[292,0,[[301.66,24.35,10.67,18.7,"3"]]]],"e":[],"vp":[140.0,-75.0,506.0,135.0]}} This is an example graph that contains group nodes. {@graph {"ann":{"s":[30,30],"d":1},"n":[[34.5,70,42,52.38,2,[[34.5,92.38,42,22.38,"10"]]],[200,162.38,42,52.38,2,[[200,184.75,42,22.38,"9"]]],[150,277.13,[[159.66,301.48,10.67,18.7,"4"]]],[179.25,0,[[160.9,22.7,66.7,18.7,"Virtual Root"]]],[0,277.13,[[9.66,301.48,10.67,18.7,"1"]]],[206,277.13,[[215.66,301.48,10.67,18.7,"5"]]],[69,162.38,42,52.38,2,[[69,184.75,42,22.38,"8"]]],[50,277.13,[[59.66,301.48,10.67,18.7,"2"]]],[100,277.13,[[109.66,301.48,10.67,18.7,"3"]]],[312,254.75,42,52.38,2,[[312,277.13,42,22.38,"7"]]],[262,277.13,[[271.66,301.48,10.67,18.7,"6"]]]],"e":[[3,0,[194.25,50,55.5,50]],[3,2,[194.25,50,165,50]],[3,1,[194.25,50,221,50]],[0,4,[55.5,142.38,15,142.38]],[1,5],[0,6,[55.5,142.38,90,142.38]],[6,7,[90,234.75,65,234.75]],[6,8,[90,234.75,115,234.75]],[3,9,[194.25,50,333,50]],[3,10,[194.25,50,277,50]]],"vp":[0.0,0.0,354.0,308.0]}} The hierarchy tree of the grouped graph reveals the relationship - * among the nodes. The corresponding nodes have the same labels as in the grouped graph. Group nodes are considered as the - * parents of their content which can consist of group nodes and/or normal nodes. Top-level nodes are children of a - * {@link yfiles.layout.GroupingSupport#root virtual root}. Leaf nodes can either be normal nodes or empty groups. - *

    - * @class yfiles.layout.GroupingSupport - */ - export interface GroupingSupport extends Object{} - export class GroupingSupport { - /** - * Creates a new {@link yfiles.layout.GroupingSupport} instance that represents the hierarchy of the graph. - *

    - * The hierarchy information is cached during the constructor call. Later modifications to the graph are not considered and - * may lead to errors when using this {@link yfiles.layout.GroupingSupport} instance. - *

    - * @param {yfiles.algorithms.Graph} graph the graph instance from which the hierarchy information is obtained - * @constructor - */ - constructor(graph:yfiles.algorithms.Graph); - /** - * Creates a {@link yfiles.algorithms.INodeMap} to store hierarchy information for each node. - *

    - * This method is called in {@link yfiles.layout.GroupingSupport#init} and may be overridden to customize how the {@link yfiles.algorithms.INodeMap} - * is created. - *

    - * @param {yfiles.algorithms.Graph} graph the current graph - * @returns {yfiles.algorithms.INodeMap} the new instance of {@link yfiles.algorithms.INodeMap} - * @see yfiles.layout.GroupingSupport#init - * @see yfiles.layout.GroupingSupport#disposeInfoMap - * @protected - */ - createInfoMap(graph:yfiles.algorithms.Graph):yfiles.algorithms.INodeMap; - /** - * Disposes of all internal data structures held by this {@link yfiles.layout.GroupingSupport instance}. - *

    - * {@link yfiles.layout.GroupingSupport} should be disposed of when it is not needed anymore, or if the state of the graph changes - * (e.g. new nodes are added). - *

    - */ - dispose():void; - /** - * Disposes of the {@link yfiles.algorithms.INodeMap} created to store hierarchy information for each node. - *

    - * This method is called in {@link yfiles.layout.GroupingSupport#dispose} and may be overridden to revert changes from - * {@link yfiles.layout.GroupingSupport#createInfoMap}. - *

    - * @param {yfiles.algorithms.Graph} graph the current graph - * @param {yfiles.algorithms.INodeMap} infoMap the {@link yfiles.algorithms.INodeMap} which contains the hierarchy information for each node - * @see yfiles.layout.GroupingSupport#dispose - * @see yfiles.layout.GroupingSupport#createInfoMap - * @protected - */ - disposeInfoMap(graph:yfiles.algorithms.Graph,infoMap:yfiles.algorithms.INodeMap):void; - /** - * Returns the direct children of the given group node. - *

    - * If the {@link yfiles.layout.GroupingSupport#root virtual root of the hierarchy tree} is passed, all top-level nodes are returned. - *

    - * @param {yfiles.algorithms.Node} parent the group node - * @returns {yfiles.algorithms.NodeList} a set of child nodes of the given parent node - * @see yfiles.layout.GroupingSupport#root - * @see yfiles.layout.GroupingSupport#getParent - * @see yfiles.layout.GroupingSupport#getDescendants - */ - getChildren(parent:yfiles.algorithms.Node):yfiles.algorithms.NodeList; - /** - * Returns all descendants of the given group node. - *

    - * All nodes in the subtree rooted at this group node are collected recursively. - *

    - *

    - * If the {@link yfiles.layout.GroupingSupport#root virtual root of the hierarchy tree} is passed, all nodes in the graph are returned. - *

    - * @param {yfiles.algorithms.Node} parent the group node - * @returns {yfiles.algorithms.NodeList} a set of nodes that belong to a subtree of the hierarchy tree rooted at the given parent - * @see yfiles.layout.GroupingSupport#root - * @see yfiles.layout.GroupingSupport#getParent - * @see yfiles.layout.GroupingSupport#getChildren - */ - getDescendants(parent:yfiles.algorithms.Node):yfiles.algorithms.NodeList; - /** - * Returns all edges crossing the bounds of the given group node such that their targets are inside the group node while - * their sources lie outside the group node. - * @param {yfiles.algorithms.Node} group the group node whose bounds are crossed - * @returns {yfiles.algorithms.EdgeList} a set of edges that cross the bounds of the group node starting outside the group node - * @see yfiles.layout.GroupingSupport#getEdgesGoingOut - * @see yfiles.layout.GroupingSupport#isNormalEdge - */ - getEdgesGoingIn(group:yfiles.algorithms.Node):yfiles.algorithms.EdgeList; - /** - * Returns all edges crossing the bounds of the given group node such that their sources are inside the group node while - * their targets lie outside the group node. - * @param {yfiles.algorithms.Node} group the group node whose bounds are crossed - * @returns {yfiles.algorithms.EdgeList} a set of edges that cross the bounds of the group node starting inside the group node - * @see yfiles.layout.GroupingSupport#getEdgesGoingIn - * @see yfiles.layout.GroupingSupport#isNormalEdge - */ - getEdgesGoingOut(group:yfiles.algorithms.Node):yfiles.algorithms.EdgeList; - /** - * Returns the nearest common ancestor of the given nodes in the hierarchy structure. - *

    - * The nearest common ancestor is the local root of the smallest subtree in the hierarchy tree that contains both nodes. - * This group is the first node that contains these two nodes. If no such node exists, the {@link yfiles.layout.GroupingSupport#root virtual root} is returned. - *

    - *

    - * Common ancestors in special cases: - *

    - *
      - *
    • node1 == node2: the parent of node1/node2
    • - *
    • node1 is parent of node2: the parent of node1
    • - *
    • node2 is parent of node1: the parent of node2
    • - *
    - * @param {yfiles.algorithms.Node} node1 one of the two nodes whose common ancestor is determined - * @param {yfiles.algorithms.Node} node2 one of the two nodes whose common ancestor is determined - * @returns {yfiles.algorithms.Node} the nearest common ancestor node or {@link yfiles.layout.GroupingSupport#root} - */ - getNearestCommonAncestor(node1:yfiles.algorithms.Node,node2:yfiles.algorithms.Node):yfiles.algorithms.Node; - /** - * Returns the parent for the given node. - *

    - * The parent is the containing group node. - *

    - * @param {yfiles.algorithms.Node} node the node for which the parent is determined - * @returns {yfiles.algorithms.Node} the parent of the given node or null for a top-level node - * @throws {Stubs.Exceptions.ArgumentError} if the given node is null - * @see yfiles.layout.GroupingSupport#getChildren - * @see yfiles.layout.GroupingSupport#getDescendants - * @see yfiles.layout.GroupingSupport#getNearestCommonAncestor - */ - getParent(node:yfiles.algorithms.Node):yfiles.algorithms.Node; - /** - * Returns an immediate child of the group node that represents the given node. - *

    - * If this node is already a child of the group node, the group node will be its representative. In case the node is - * located further down in the hierarchy, the child of the group node, which is also an ancestor of the node, is used. - * There is no representative if the node is not a descendant of the group. - *

    - * @param {yfiles.algorithms.Node} node the node for which a representative is searched - * @param {yfiles.algorithms.Node} group the group node to which the representative should belong - * @returns {yfiles.algorithms.Node} the representative or null if the node is not a descendant of the group - * @throws {Stubs.Exceptions.ArgumentError} if the given node is null - */ - getRepresentative(node:yfiles.algorithms.Node,group:yfiles.algorithms.Node):yfiles.algorithms.Node; - /** - * Determines whether or not the given node is a group node with children. - *

    - * Normal nodes never have children. - *

    - * @param {yfiles.algorithms.Node} node the potential parent - * @returns {boolean} true if the given node has children, false otherwise - * @see yfiles.layout.GroupingSupport#getChildren - * @see yfiles.layout.GroupingSupport#isGroupNode - */ - hasChildren(node:yfiles.algorithms.Node):boolean; - /** - * Initializes internal data structures. - *

    - * This method is called from {@link yfiles.layout.GroupingSupport} and retrieves the state of the hierarchic graph at the moment - * of invocation. It may be overridden to append additional information used for group handling. - *

    - * @see yfiles.layout.GroupingSupport#dispose - * @protected - */ - init():void; - /** - * Returns whether or not the given graph is flat. - *

    - * A graph is considered to be flat if there exist no group nodes or there exist group nodes but none of them has children. - *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {boolean} true if there are no groups or only empty groups in the graph, false otherwise - * @see yfiles.layout.GroupingSupport#isGrouped - * @static - */ - static isFlat(graph:yfiles.algorithms.Graph):boolean; - /** - * Returns whether or not the given graph is grouped. - *

    - * A graph is considered to be grouped if there are {@link yfiles.algorithms.IDataProvider}s registered with the graph with keys - * {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY}, {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY} and - * {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY}. - *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {boolean} true if the graph contains hierarchic information, false otherwise - * @see yfiles.layout.GroupingSupport#isFlat - * @static - */ - static isGrouped(graph:yfiles.algorithms.Graph):boolean; - /** - * Determines whether or not the given node is a group node. - *

    - * While group nodes may have children, normal nodes never have children. - *

    - * @param {yfiles.algorithms.Node} node the potential group node - * @returns {boolean} true if the given node is a group node, false otherwise - * @see yfiles.layout.GroupingSupport#hasChildren - */ - isGroupNode(node:yfiles.algorithms.Node):boolean; - /** - * Determines whether or not the given edge is a normal edge as opposed to an edge that crosses any group node bounds. - *

    - * Source and target of a normal edge are part of the same hierarchy level and share the same parent node. - *

    - * @param {yfiles.algorithms.Edge} edge the edge to check - * @returns {boolean} true if the given edge is normal, false otherwise - * @see yfiles.layout.GroupingSupport#getEdgesGoingIn - * @see yfiles.layout.GroupingSupport#getEdgesGoingOut - */ - isNormalEdge(edge:yfiles.algorithms.Edge):boolean; - /** - * Gets the {@link yfiles.algorithms.Graph} instance for which this {@link yfiles.layout.GroupingSupport} object provides hierarchy - * information. - * @type {yfiles.algorithms.Graph} - */ - graph:yfiles.algorithms.Graph; - /** - * Gets a {@link yfiles.algorithms.Node} instance associated with the virtual root of the hierarchy tree. - *

    - * This instance can be given to the {@link yfiles.layout.GroupingSupport#getChildren} to obtain the nodes of the top level of the - * hierarchy. - *

    - * @see yfiles.layout.GroupingSupport#getChildren - * @type {yfiles.algorithms.Node} - */ - root:yfiles.algorithms.Node; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.layout.ILayoutStage layout stage} that hides the group nodes of hierarchically grouped graphs. - *

    - * This stage removes all group nodes and adjacent edges from the graph before passing it to the - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. After the core layout algorithm has arranged the graph, the hidden elements will be reinserted. - *

    - *

    - * This stage is used by layout algorithms that cannot handle grouped graphs (e.g. {@link yfiles.circular.CircularLayout}). - *

    - * @class yfiles.layout.HideGroupsStage - * @extends {yfiles.layout.LayoutStageBase} - */ - export interface HideGroupsStage extends yfiles.layout.LayoutStageBase{} - export class HideGroupsStage { - /** - * Creates an instance of {@link yfiles.layout.HideGroupsStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor - */ - constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); - /** - * Hides the group nodes and their incident edges of the input graph. - *

    - * Furthermore, this method removes all grouping-related {@link yfiles.algorithms.IDataProvider}s from the input graph. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY - * @see yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY - * @see yfiles.layout.GroupingKeys#GROUP_DP_KEY - * @see yfiles.layout.HideGroupsStage#unhideGroupNodes - */ - hideGroupNodes(graph:yfiles.layout.LayoutGraph):void; - /** - * Un-hides the group nodes and their incident edges of the input graph that were previously hidden using method - * {@link yfiles.layout.HideGroupsStage#hideGroupNodes}. - *

    - * Furthermore, this method restores all previously removed grouping related - * {@link yfiles.algorithms.IDataProvider}s on the input graph. - *

    - * @param {yfiles.layout.LayoutGraph} graph the given graph - * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY - * @see yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY - * @see yfiles.layout.GroupingKeys#GROUP_DP_KEY - * @see yfiles.layout.HideGroupsStage#hideGroupNodes - */ - unhideGroupNodes(graph:yfiles.layout.LayoutGraph):void; - /** - * Gets or sets whether or not empty group nodes, i.e., group nodes without children, will be hidden by this stage. - * @type {boolean} - */ - hidingEmptyGroupNodes:boolean; - /** - * Gets or sets the {@link yfiles.layout.IGroupBoundsCalculator} instance for calculating the sizes of group nodes. - *

    - * For every group which is in its open state, the {@link yfiles.layout.IGroupBoundsCalculator} will be asked to calculate the - * bounds for the group's child nodes. The resulting size will be used during the ongoing layout calculation. - *

    - * @type {yfiles.layout.IGroupBoundsCalculator} - */ - groupBoundsCalculator:yfiles.layout.IGroupBoundsCalculator; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.layout.IGroupBoundsCalculator} is responsible for calculating the bounds of a group node during a layout - * process. - * @interface - */ - export interface IGroupBoundsCalculator extends Object{ - /** - * Calculates the bounds of the given group node that contains the given list of child nodes. - *

    - * This method is called during the layout process. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} groupNode the group node whose bounds will be calculated - * @param {yfiles.algorithms.NodeList} children a {@link yfiles.algorithms.NodeList} containing the nodes that reside inside the group node - * @returns {yfiles.algorithms.Rectangle2D} a {@link yfiles.algorithms.Rectangle2D} instance that describes the bounds of the group node - * @abstract - */ - calculateBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList):yfiles.algorithms.Rectangle2D; - } - var IGroupBoundsCalculator:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This {@link yfiles.layout.IGroupBoundsCalculator} calculates the bounds of group nodes and allows to specify custom insets for - * each group node. - *

    - * {@link yfiles.algorithms.Insets Insets} are provided by a {@link yfiles.algorithms.IDataProvider} that must have been registered with the graph using the - * specified {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} prior to the invocation of the layout algorithm. - *

    - * @class yfiles.layout.InsetsGroupBoundsCalculator - * @implements {yfiles.layout.IGroupBoundsCalculator} - */ - export interface InsetsGroupBoundsCalculator extends Object,yfiles.layout.IGroupBoundsCalculator{} - export class InsetsGroupBoundsCalculator { - /** - * Constructs an instance of {@link yfiles.layout.InsetsGroupBoundsCalculator} using the given {@link yfiles.algorithms.IDataProvider} key - * as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey group node insets key} and the given insets as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets}. - * @param {Object} [groupNodeInsetsDPKey=null] the {@link yfiles.algorithms.IDataProvider} key to use as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} - * @param {yfiles.algorithms.Insets} [defaultInsets=null] the insets to use as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets} - * @constructor - */ - constructor(groupNodeInsetsDPKey?:Object,defaultInsets?:yfiles.algorithms.Insets); - /** - * Constructs an instance of {@link yfiles.layout.InsetsGroupBoundsCalculator} using the given {@link yfiles.algorithms.IDataProvider} key - * as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey group node insets key} and the given insets as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets}. - * @param {Object} options The parameters to pass. - * @param {Object} [options.groupNodeInsetsDPKey=null] the {@link yfiles.algorithms.IDataProvider} key to use as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} - * @param {yfiles.algorithms.Insets} [options.defaultInsets=null] the insets to use as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets} - * @constructor - */ - constructor(options:{groupNodeInsetsDPKey?:Object,defaultInsets?:yfiles.algorithms.Insets}); - /** - * Calculates the bounds of the given group node and enlarges the bounds by the insets associated with the group node. - *

    - * The {@link yfiles.algorithms.Insets insets} associated with the group node will be retrieved from a {@link yfiles.algorithms.IDataProvider} registered with the - * graph with the current {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key}. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} groupNode the group node whose bounds will be calculated - * @param {yfiles.algorithms.NodeList} children a {@link yfiles.algorithms.NodeList} containing the nodes that reside inside the group node - * @returns {yfiles.algorithms.Rectangle2D} a {@link yfiles.algorithms.Rectangle2D} instance that describes the bounds of the group node - */ - calculateBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList):yfiles.algorithms.Rectangle2D; - /** - * Enlarges the given graph bounds by the insets associated with the given group node. - *

    - * The {@link yfiles.algorithms.Insets insets} associated with the group node will be retrieved from a {@link yfiles.algorithms.IDataProvider} registered with the - * graph with the current {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key}. - *

    - *

    - * This method is called while {@link yfiles.layout.InsetsGroupBoundsCalculator#calculateBounds calculating the group bounds} to realize the support for custom insets. It may be overridden - * to change the way specific insets influence the group node bounds. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} groupNode the group node whose bounds should be enlarged - * @param {yfiles.algorithms.NodeList} children the list of nodes that the given group node contains - * @param {yfiles.algorithms.Rectangle2D} bounds a {@link yfiles.algorithms.Rectangle2D} instance representing the bounds of the given group node - * @returns {yfiles.algorithms.Rectangle2D} a {@link yfiles.algorithms.Rectangle2D} instance representing the enlarged bounds of the given group node - */ - createEnlargedBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList,bounds:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; - /** - * Gets or sets whether or not the labels of nodes contained in a group are considered while calculating the bounds of the - * group node. - * @type {boolean} - */ - considerNodeLabels:boolean; - /** - * Gets or sets whether or not the labels of edges contained in a group are considered while calculating the bounds of the - * group node. - * @type {boolean} - */ - considerEdgeLabels:boolean; - /** - * Gets or sets whether or not the calculation of the bounds of a group node considers the {@link yfiles.layout.NodeHalo NodeHalos} associated with the - * group's child nodes. - * @type {boolean} - */ - considerNodeHalos:boolean; - /** - * Gets or sets the default insets that will be used if the {@link yfiles.algorithms.IDataProvider} registered with the {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} - * does not contain a mapping for a specific node. - * @type {yfiles.algorithms.Insets} - */ - defaultInsets:yfiles.algorithms.Insets; - /** - * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used to access the insets for the group - * nodes. - *

    - * The {@link yfiles.algorithms.IDataProvider} registered with this key must provide a mapping from each group node to a {@link yfiles.algorithms.Insets} - * (or {@link yfiles.algorithms.Insets}) instance. - *

    - * @type {Object} - */ - groupNodeInsetsDpKey:Object; - static $class:yfiles.lang.Class; - } - /** - * A special {@link yfiles.layout.ComponentLayout} implementation that allows to lay out isolated subgraphs within a group as - * separate components. - *

    - * {@link yfiles.orthogonal.OrthogonalLayout OrthogonalLayout} uses this layout stage to arrange components. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":0},"n":[[-5,16,210,336.38,2],[10,110,1],[10,35,1],[85,35,1],[160,35,1],[160,110,1],[10,285],[85,285],[85,210]],"e":[[1,2,0,-15,0,15],[2,3,15,0,-15,0],[3,4,15,0,-15,0],[4,5,0,15,0,-15],[5,1,-15,0,15,0],[6,8,0,-15,-15,0,[25,225]],[8,7,0,15,0,-15],[7,6,-15,0,15,0]],"vp":[-5.0,16.0,210.0,337.0]}} Example of a hierarchically grouped graph with two components that are laid out by {@link yfiles.orthogonal.OrthogonalLayout OrthogonalLayout} as separate - * components. - *

    - * @class yfiles.layout.IsolatedGroupComponentLayout - * @extends {yfiles.layout.ComponentLayout} - */ - export interface IsolatedGroupComponentLayout extends yfiles.layout.ComponentLayout{} - export class IsolatedGroupComponentLayout { - /** - * Creates an instance of {@link yfiles.layout.IsolatedGroupComponentLayout} with the given layout algorithm as - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] the core layout algorithm that will be invoked for each component of the graph - * @constructor - */ - constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); - /** - * Determines the nodes that belong to the same graph component. - *

    - * Unlike - * {@link yfiles.layout.ComponentLayout}, this implementation additionally identifies isolated subgraphs within a group as separate - * components. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.INodeMap} compNumber the {@link yfiles.algorithms.INodeMap} that will be filled by the layout algorithm, such that it contains the zero-based index - * of the component number to which each node belongs - * @returns {number} the number of separate components - * @protected - */ - findIsolatedGraphComponents(graph:yfiles.layout.LayoutGraph,compNumber:yfiles.algorithms.INodeMap):number; - static $class:yfiles.lang.Class; - } - /** - * This {@link yfiles.layout.IGroupBoundsCalculator} allows custom insets for group nodes and guarantees that their provided - * minimum sizes will be maintained. - *

    - * As a subclass of {@link yfiles.layout.InsetsGroupBoundsCalculator}, this class supports custom insets for each group node. - * Furthermore, it guarantees that a desired minimum size is maintained. The minimum sizes are provided by a {@link yfiles.algorithms.IDataProvider} - * registered with the graph using the specified {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum node size key}. - *

    - * @class yfiles.layout.MinimumSizeGroupBoundsCalculator - * @extends {yfiles.layout.InsetsGroupBoundsCalculator} - */ - export interface MinimumSizeGroupBoundsCalculator extends yfiles.layout.InsetsGroupBoundsCalculator{} - export class MinimumSizeGroupBoundsCalculator { - /** - * Creates a new instance of {@link yfiles.layout.MinimumSizeGroupBoundsCalculator} with the given key as {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum node size key}. - * @param {Object} minSizeDataProviderKey the {@link yfiles.algorithms.IDataProvider} key to use as {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum size key} - * @constructor - */ - constructor(minSizeDataProviderKey:Object); - /** - * Creates a new instance of {@link yfiles.layout.MinimumSizeGroupBoundsCalculator} with default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets how the nodes are resized horizontally if the calculated width is smaller than the preferred minimum width - * of a group node. - *

    - * The alignment is defined to be a value between 0 and 1, such that: - *

    - *
      - *
    • A value of 0 means that the nodes grow to the right while the left border remains unchanged.
    • - *
    • A value of 1 means that the nodes grow to the left while the right border remains unchanged.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if the given value does not lie within [0,1] - * @type {number} - */ - xAlignment:number; - /** - * Gets or sets how the nodes are resized vertically if the calculated height is smaller than the preferred minimum height - * of a group node. - *

    - * The alignment is defined to be a value between 0 and 1, such that: - *

    - *
      - *
    • A value of 0 means that the nodes grow downwards while the top border remains unchanged.
    • - *
    • A value of 1 means that the nodes grow upwards while the bottom border remains unchanged.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if the given value does not lie within [0,1] - * @type {number} - */ - yAlignment:number; - /** - * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used to access the minimum sizes for the - * group nodes. - *

    - * The {@link yfiles.algorithms.IDataProvider} registered with this key must provide a mapping from each group node to a {@link yfiles.algorithms.YDimension} - * object defining the minimum width and height of the group node. - *

    - * @see yfiles.layout.MinimumSizeGroupBoundsCalculator#defaultMinimumNodeSize - * @type {Object} - */ - minimumNodeSizeDpKey:Object; - /** - * Gets or sets the default minimum size (width and height) for group nodes. - *

    - * The default minimum size is used if the {@link yfiles.algorithms.IDataProvider} registered with the {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum size key} does not - * contain a mapping for a group node. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given {@link yfiles.algorithms.YDimension} is null - * @see yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey - * @type {yfiles.algorithms.YDimension} - */ - defaultMinimumNodeSize:yfiles.algorithms.YDimension; - static $class:yfiles.lang.Class; - } - /** - * This layout algorithm recursively traverses a hierarchically organized graph in a bottom-up fashion and applies a - * specified layout algorithm to the contents (direct children) of each group node. - *

    - * Layout Style The way a graph is arranged depends on the {@link yfiles.layout.ILayoutAlgorithm layout algorithms} which are applied to the different group nodes. {@link yfiles.layout.RecursiveGroupLayout} - * is able to produce different layout styles for the content of each group node. - *

    - *

    - * This layout algorithm can be either applied if a {@link yfiles.layout.ILayoutAlgorithm layout algorithm} cannot handle grouped graphs by itself or if the - * content of (some) group nodes should be arranged differently. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"styles":{"6":{"c":1}},"n":[[-17.5,755,335,340,2],[166.25,770],[247.5,840],[85,840],[172.5,910],[272.5,910],[72.5,910],[272.5,980],[222.5,910],[97.5,980],[47.5,980],[-2.5,910],[147.5,980],[122.5,1050],[172.5,1050],[197.5,980],[-2.5,980],[-2.5,1050],[929.97,593,673.03,664,2],[1028.43,230.79,493.13,238.42,2],[1451.74,249.79,54.83,54.83],[1043.43,336.11,54.83,54.83],[1376.74,346.07],[1143.26,334.82],[1223.95,267.93,37.09,37.09],[1223.95,335.02,37.09,37.09],[1223.95,402.12,37.09,37.09],[1306.05,338.57],[351.41,46.3,547.17,607.39,2],[392.91,738,464.18,374,2],[600.69,849.79,44.43,44.43],[803.73,927.82,38.37,38.37],[600.69,1024.79,44.43,44.43],[707.91,932],[707.91,1032],[507.91,757],[503.73,852.82,38.37,38.37],[407.91,857],[1329,1038,6],[1269,795,6],[1472,612,6],[1411,1025,6],[1427,744,6],[1355,779,6],[1157,888,6],[1108,838,6],[1230,723,6],[1351,946,6],[1185,810,6],[1387,847,6],[1185,956,6],[1221,1212,6],[1311,715,6],[962,988,6],[1558,700,6],[1053,639,6],[1264,993,6],[1509,1121,6],[1143,742,6],[1453,871,6],[1248,1077,6],[1430,943,6],[1093,947,6],[1173,1025,6],[1249.93,858.93,83.14,83.14,6],[406.42,266.45,6],[535.29,224.58,6],[407.4,568.81,54.23,54.23,6],[366.41,92.7,54.23,54.23,6],[464.05,443.83,6],[450.74,65.3,54.23,54.23,6],[464.05,224.58,6],[592.93,401.96,6],[714.87,571.77,41.35,41.35,6],[842.24,530.39,41.35,41.35,6],[793.59,463.42,41.35,41.35,6],[793.59,597.35,41.35,41.35,6],[614.94,334.2,6],[535.29,443.83,6],[714.87,489,41.35,41.35,6],[406.42,401.96,6],[592.93,266.45,6],[384.4,334.2,6],[595.06,86,54.23,54.23,6],[668.28,135.99,54.23,54.23,6],[720.4,207.72,54.23,54.23,6],[745.32,292.81,54.23,54.23,6]],"e":[[1,2],[1,3],[3,4],[2,5],[3,6],[5,7],[2,8],[6,9],[6,10],[3,11],[4,12],[12,13],[12,14],[4,15],[11,16],[16,17],[0,19,0,-170,0,-119.21,[150,0,1275,0]],[21,22,27.41,13.71,-15,7.5,[1108.26,377.23,1158.26,454.21,1336.05,454.21,1361.74,368.57]],[22,20,15,-0,-27.41,18.28,[1416.74,361.07,1436.74,295.48]],[21,23,27.41,-13.71,-15,-0],[23,20,15,-11.25,-27.41,-18.28,[1183.26,338.57,1208.95,252.93,1391.74,252.93,1436.74,258.93]],[23,24,15,-3.75,-18.55,-0,[1183.26,346.07,1208.95,286.48]],[24,20,18.55,-9.27,-27.41,-0],[23,25,15,3.75,-18.55,-0],[23,26,15,11.25,-18.55,-0,[1183.26,361.07,1208.95,420.66]],[25,27,18.55,-0,-15,-0],[24,27,18.55,9.27,-15,-10,[1271.05,295.75,1291.05,343.57]],[26,27,18.55,-0,-15,10,[1271.05,420.66,1291.05,363.57]],[27,22,15,-0,-15,-7.5],[29,28,0,-187,0,303.7],[31,30,0,-19.18,22.21,0,[822.91,872]],[31,32,0,19.18,0,22.21,[822.91,1097,622.91,1097]],[2,32],[32,30,0,-22.21,0,22.21],[31,33,-19.18,0,15,0],[33,32,-15,0,12.5,-22.21,[635.41,947]],[33,34,0,15,0,-15],[34,32,-15,0,22.21,0],[34,31,15,0,-12.5,19.18,[810.41,1047]],[35,30,15,0,0,-22.21,[622.91,772]],[35,36,0,15,0,-19.18],[32,36,-22.21,-12.5,0,19.18,[522.91,1034.5]],[36,30,19.18,0,-22.21,0],[36,37,-19.18,0,15,0],[32,37,-22.21,0,0,15,[422.91,1047]],[37,35,0,-15,-15,0,[422.91,772]],[42,40],[42,54],[41,57],[58,55],[60,51],[62,53],[64,38],[64,39],[64,41,[1330.6,964.06,1337.99,974.52,1346.6,984.13,1356.64,992.4]],[64,42,[1301.28,892.93,1380.34,828.69,1390.42,819.61,1400.14,810]],[64,43],[64,44],[64,45],[64,46,[1257.8,823.49,1254.58,812.63,1252.57,801.6]],[64,47],[64,48],[64,49],[64,50],[64,52,[1313.2,816.82,1315.29,805.72]],[64,56],[64,58,[1227.75,807.43,1218.48,798.12,1198.26,783.57]],[64,59,[1401.91,896.21,1413.4,895.03]],[64,60,[1249.83,992.24,1246.96,1005.02,1247.3,1018.2]],[64,61],[64,62],[64,63],[40,19],[69,67],[65,71],[66,71],[71,70],[71,69],[71,68],[72,21],[73,74],[75,74],[73,76],[74,76],[77,72],[77,71],[71,78],[78,72],[78,69],[72,79],[79,75],[79,73],[69,80],[72,80],[66,81],[81,77],[65,82],[82,81],[82,80],[82,77],[83,81],[84,81],[85,81],[86,81],[51,33]],"vp":[-18.0,0.0,1621.0,1257.0]}}Concept - *

    - *

    - * {@link yfiles.layout.RecursiveGroupLayout} uses a hierarchy tree representation of the grouped graph in which the content nodes - * are the children of their containing group node. That way, it can traverse the tree recursively while arranging only the - * direct children of each group node. The layout algorithm starts by arranging the leaves in the hierarchy tree, then - * works its way up to the root computing the layout for each group node in the tree. - *

    - *

    - * All nodes other than the direct children are temporarily hidden. The layout algorithm performs two steps for each group - * node. - *

    - *
      - *
    1. - * It arranges the direct children using either the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} or a special layout algorithm retrieved from a {@link yfiles.algorithms.IDataProvider} - * registered with - * {@link yfiles.layout.RecursiveGroupLayout#GROUP_NODE_LAYOUT_DP_KEY}. The content of group nodes among the children is already - * arranged at this time and will be ignored. These group nodes are handled like normal nodes with a size that encloses the - * content. - *
    2. - *
    3. - * Then {@link yfiles.layout.RecursiveGroupLayout} computes the final size of the group node using an implementation of - * {@link yfiles.layout.IGroupBoundsCalculator}. Customized {@link yfiles.layout.IGroupBoundsCalculator}s can be specified using - * {@link yfiles.layout.RecursiveGroupLayout#groupBoundsCalculator}. Aside from the resulting layout, this size is used in the following iteration. - *
    4. - *
    - *

    - * After a layout is applied to all group nodes, the layout algorithm computes routes for the edges whose source node is - * located at a different hierarchy level than its target node. The edge routing algorithm for these so-called inter-edges - * can be {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter customized}. - *

    - *

    - * Note that {@link yfiles.layout.RecursiveGroupLayout} can run without a - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. In this case no layout is calculated, instead the group node bounds are merely adjusted to fit - * their respective contents. - *

    - *

    - * Features There are two alternatives for applying different layout styles to the contents of group nodes: - *

    - *
      - *
    1. - * Mapping each group node to a corresponding {@link yfiles.layout.ILayoutAlgorithm layout algorithm} by registering a {@link yfiles.algorithms.IDataProvider} with key - * {@link yfiles.layout.RecursiveGroupLayout#GROUP_NODE_LAYOUT_DP_KEY}. The content of the hierarchy root is arranged with the - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - *
    2. - *
    3. Using {@link yfiles.layout.LayoutMultiplexer} as {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}.
    4. - *
    - *

    - * Since {@link yfiles.layout.RecursiveGroupLayout} delegates the actual arrangement of the graph to other layout algorithms, it - * will support the same features as the currently used layout algorithm. - *

    - *

    - * The improvement of the routing of inter-edges is based on the {@link yfiles.layout.RecursiveGroupLayout#autoAssignPortCandidates insertion} of {@link yfiles.layout.PortCandidate}s or the {@link yfiles.layout.RecursiveGroupLayout#replacePortConstraints conversion} - * of {@link yfiles.layout.PortConstraint}s into {@link yfiles.layout.PortCandidate}s. Hence, they only work well if the applied layout - * algorithm supports {@link yfiles.layout.PortCandidate}s. - *

    - *

    - * This algorithm also provides a {@link yfiles.layout.RecursiveGroupLayout#fromSketchMode From Sketch mode} that should be activated if the applied layout algorithm runs in From - * Sketch mode, too. Otherwise, the initial coordinates may not be considered correctly. - *

    - * @class yfiles.layout.RecursiveGroupLayout - * @extends {yfiles.layout.LayoutStageBase} - */ - export interface RecursiveGroupLayout extends yfiles.layout.LayoutStageBase{} - export class RecursiveGroupLayout { - /** - * Creates a new instance of {@link yfiles.layout.RecursiveGroupLayout} with default settings using the given {@link yfiles.layout.ILayoutAlgorithm layout algorithm} and - * {@link yfiles.layout.IGroupBoundsCalculator} implementation. - * @param {yfiles.layout.ILayoutAlgorithm} core the layout algorithm that is applied in each step of the recursion - * @param {yfiles.layout.IGroupBoundsCalculator} gbc the {@link yfiles.layout.IGroupBoundsCalculator} for calculating group sizes - * @constructor - */ - constructor(core:yfiles.layout.ILayoutAlgorithm,gbc:yfiles.layout.IGroupBoundsCalculator); - /** - * Creates a new instance of {@link yfiles.layout.RecursiveGroupLayout} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The layout algorithm that is applied in each recursion step. - * @constructor - */ - constructor(core?:yfiles.layout.ILayoutAlgorithm); - /** - * Reroutes the given inter-edges using the current {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter edge routing algorithm}. - *

    - * This method is called after calculating the overall layout when the positions of all nodes and normal edges are fixed. - *

    - *

    - * If no {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter inter-edge router} is specified, this method resets the path of all inter-edges that don't connect to the proper - * location within the group. This may happen for inter-edges without - * {@link yfiles.layout.PortCandidate}s or if the applied layout algorithm doesn't support such constraints. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.EdgeList} interEdges the edges which traverse the boundary of a group node - * @see yfiles.layout.RecursiveGroupLayout#autoAssignPortCandidates - * @see yfiles.layout.RecursiveGroupLayout#replacePortConstraints - * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter - * @protected - */ - routeInterEdges(graph:yfiles.layout.LayoutGraph,interEdges:yfiles.algorithms.EdgeList):void; - /** - * Data provider key for arranging the content of each group node with an individual layout algorithm. - *

    - * The specified layouter instance is applied to the content of the group node. To arrange the top level elements the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} - * is used. - *

    - * @see yfiles.layout.RecursiveGroupLayout#NULL_LAYOUT - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static GROUP_NODE_LAYOUT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for assigning source split ids to edges connecting to group nodes. - *

    - * The edges will be aligned with edges that connect to the same group node and have the same split id at their source - * (preferably) or target. - *

    - * @see yfiles.layout.RecursiveGroupLayout#TARGET_SPLIT_ID_DP_KEY - * @see yfiles.hierarchic.HierarchicLayout - * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static SOURCE_SPLIT_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Data provider key for assigning target split ids to edges connecting to group nodes. - *

    - * The edges will be aligned with edges that connect to the same group node and have the same split id at their source or - * target (preferably). - *

    - * @see yfiles.layout.RecursiveGroupLayout#SOURCE_SPLIT_ID_DP_KEY - * @see yfiles.hierarchic.HierarchicLayout - * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static TARGET_SPLIT_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * A constant that represents a {@link yfiles.layout.ILayoutAlgorithm} implementation that does nothing. - *

    - * This implementation can be assigned to group nodes to keep their content unchanged. The layout algorithm will still - * calculate the sizes of the group nodes. - *

    - * @const - * @static - * @type {yfiles.layout.ILayoutAlgorithm} - */ - static NULL_LAYOUT:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets whether or not to consider the initial coordinates of the graph elements. - *

    - * When using the initial coordinates, {@link yfiles.layout.RecursiveGroupLayout} sets the coordinates of the nodes to their - * initial position before the corresponding {@link yfiles.layout.ILayoutAlgorithm layout algorithm} is called. - *

    - * @type {boolean} - */ - fromSketchMode:boolean; - /** - * Gets or sets whether or not temporary {@link yfiles.layout.PortCandidate}s are inserted to improve the routing of inter-edges. - *

    - * If enabled, {@link yfiles.layout.RecursiveGroupLayout} will insert {@link yfiles.layout.PortCandidate}s for all inter-edges that cross a - * group node border. Those {@link yfiles.layout.PortCandidate}s are located at the relative position of the real source/target - * node. Inter-edges that connect to such {@link yfiles.layout.PortCandidate}s will be routed when the layout of the containing - * group node is calculated and will not be {@link yfiles.layout.RecursiveGroupLayout#routeInterEdges rerouted} later. This may produce more suitable edge routes but cannot prevent - * edges from crossing nodes. - *

    - *

    - * Without temporary or user specified {@link yfiles.layout.PortCandidate}s, inter-edges will always end at the border/center of - * the corresponding group node. Thus, they are rerouted afterwards using an {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter edge routing algorithm}. - *

    - * @see yfiles.layout.RecursiveGroupLayout#routeInterEdges - * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter - * @see yfiles.layout.PortCandidate - * @type {boolean} - */ - autoAssignPortCandidates:boolean; - /** - * Gets or sets whether or not {@link yfiles.layout.PortConstraint}s of inter-edges are temporarily replaced by - * {@link yfiles.layout.PortCandidate}s. - *

    - * If disabled, inter-edges will always end at the border/center of the corresponding group node, even if those edges have - * port constraints. Thus, they are {@link yfiles.layout.RecursiveGroupLayout#routeInterEdges rerouted} later without considering the constraint. Enabling this settings may produce - * more suitable edge routes but cannot prevent edges from crossing nodes. - *

    - *

    - * Port candidates are automatically redirected to their original location. Hence, enabling this option may produce more - * suitable edge routes if the layout algorithm applied to the content of a group node can handle port candidates. - *

    - * @see yfiles.layout.RecursiveGroupLayout#routeInterEdges - * @see yfiles.layout.PortCandidate - * @type {boolean} - */ - replacePortConstraints:boolean; - /** - * Gets or sets whether empty group nodes are handled like group nodes with content or like normal nodes. - *

    - * If they are handled like other group nodes, {@link yfiles.layout.RecursiveGroupLayout} will resize them according to their - * (non-existing) content. This results in small empty group nodes. Handled like normal nodes, empty group nodes will keep - * their initial size. - *

    - * @type {boolean} - */ - considerEmptyGroups:boolean; - /** - * Gets or sets the current edge routing algorithm for handling inter-edges. - *

    - * During layout, edges that connect from outside a group node to the content inside (inter-edges) are temporarily - * connected to the group node itself. Hence, these edges have to be routed after restoring the original graph structure - * using this edge routing algorithm. - *

    - *

    - * It is required that a suitable {@link yfiles.layout.RecursiveGroupLayout#interEdgesDpKey selection key} is specified. The same selection key must be used for setting the sphere of - * action for the edge router. - *

    - * @see yfiles.layout.RecursiveGroupLayout#interEdgesDpKey - * @type {yfiles.layout.ILayoutAlgorithm} - */ - interEdgeRouter:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the key for marking the inter-edges to be routed. - *

    - * The key should be used by the specified {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter inter-edge routing algorithm} to obtain the edges to be routed. This layouter - * automatically marks these edges and registers the {@link yfiles.algorithms.IDataProvider} using the specified key. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified key is null - * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter - * @type {Object} - */ - interEdgesDpKey:Object; - /** - * Gets or sets a {@link yfiles.layout.IGroupBoundsCalculator} which computes the sizes of all group nodes. - *

    - * This {@link yfiles.layout.IGroupBoundsCalculator} is used each time after calculating the layout for a content graph. - *

    - * @type {yfiles.layout.IGroupBoundsCalculator} - */ - groupBoundsCalculator:yfiles.layout.IGroupBoundsCalculator; - static $class:yfiles.lang.Class; - } - export enum OperationType{ - /** - * Operation specifier defining that the graph will be mirrored at the x-axis. - * @see yfiles.layout.GraphTransformer#operation - */ - MIRROR_X_AXIS, - /** - * Operation specifier defining that the graph will be mirrored at the y-axis. - * @see yfiles.layout.GraphTransformer#operation - */ - MIRROR_Y_AXIS, - /** - * Operation specifier defining that the graph will be rotated. - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.GraphTransformer#rotationAngle - * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled - */ - ROTATE, - /** - * Operation specifier defining that the graph will be scaled. - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.GraphTransformer#scaleFactor - * @see yfiles.layout.GraphTransformer#setScaleFactors - * @see yfiles.layout.GraphTransformer#scaleNodeSize - */ - SCALE, - /** - * Operation specifier defining that the graph will be translated. - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.GraphTransformer#translateX - * @see yfiles.layout.GraphTransformer#translateY - */ - TRANSLATE - } - /** - * This layout algorithm applies geometric transformations to (sub-)graphs. - *

    - * Layout Style There are several ways to transform the graph that include mirroring, rotating, scaling and translating. {@graph {"ann":{"s":[30,30],"d":1},"n":[[-15,235],[-15,360],[-15,110],[235,485],[110,485],[360,485],[-15,485],[485,235],[485,360],[235,-15],[110,-15],[360,-15],[485,110],[-15,-15],[485,485],[485,-15],[235,235,1],[146.61,146.61,1],[146.61,323.39,1],[58.22,235,1],[323.39,323.39,1],[235,411.78,1],[323.39,146.61,1],[235,58.22,1],[411.78,235,1]],"e":[[1,0],[0,2],[4,3],[3,5],[1,6],[6,4],[7,8],[9,10],[11,9],[12,7],[2,13],[13,10],[8,14],[14,5],[11,15],[12,15],[16,17],[16,18],[19,17],[19,18],[20,16],[18,21],[21,20],[22,16],[23,22],[23,17],[20,24],[22,24],[17,0],[19,1],[23,2],[18,3],[4,19],[5,21],[20,7],[21,8],[9,22],[10,23],[24,11],[24,12]],"vp":[-15.0,-15.0,530.0,530.0]}} - *

    - *

    - * The highlighted subgraph is rotated by 45 degrees - *

    - *

    - * Features - *

    - *

    - * The layout can be {@link yfiles.layout.OperationType#SCALE scaled} with independent factors for the horizontal and vertical scaling. Optionally, the sizes of - * nodes can be scaled, too. - *

    - *

    - * The layout can be mirrored either on the {@link yfiles.layout.OperationType#MIRROR_X_AXIS x-axis} or the {@link yfiles.layout.OperationType#MIRROR_Y_AXIS y-axis}. - *

    - *

    - * A {@link yfiles.layout.OperationType#ROTATE rotation} can be specified. Instead of {@link yfiles.layout.GraphTransformer#rotationAngle defining} a rotation angle the angle can be {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled determined automatically} to fit - * specific bounds. - *

    - *

    - * The coordinates in the layout can be {@link yfiles.layout.OperationType#TRANSLATE translated} by a specific vector. - *

    - *

    - * To only apply previously mentioned transformations to a subgraph, the {@link yfiles.layout.SubgraphLayout} needs to be {@link yfiles.layout.MultiStageLayout#subgraphLayoutEnabled enabled}. - * Then the nodes in the subgraph must be marked in a {@link yfiles.algorithms.IDataProvider} registered with the according {@link yfiles.layout.SubgraphLayout#affectedNodesDpKey key}. - *

    - * @class yfiles.layout.GraphTransformer - * @extends {yfiles.layout.MultiStageLayout} - * @implements {yfiles.layout.ILayoutStage} - */ - export interface GraphTransformer extends yfiles.layout.MultiStageLayout,yfiles.layout.ILayoutStage{} - export class GraphTransformer { - /** - * Creates a new instance of {@link yfiles.layout.GraphTransformer} with default settings. - * @constructor - */ - constructor(); - /** - * Rotates the given graph so its resulting bounding box fits best to the given bounds. - * @param {yfiles.layout.LayoutGraph} graph the graph that is rotated - * @param {number} width the width of the preferred layout bounds - * @param {number} height the height of the preferred layout bounds - * @returns {number} the rotation angle - * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled - * @static - */ - static applyBestFitRotationAngle(graph:yfiles.layout.LayoutGraph,width:number,height:number):number; - /** - * Returns the rotation angle for the graph that will result in a layout that fits best to the given bounds. - * @param {yfiles.layout.LayoutGraph} graph the graph that is rotated - * @param {number} width the width of the preferred layout bounds - * @param {number} height the height of the preferred layout bounds - * @returns {number} the rotation angle - * @see yfiles.layout.GraphTransformer#applyBestFitRotationAngle - * @static - */ - static findBestFitRotationAngle(graph:yfiles.layout.LayoutGraph,width:number,height:number):number; - /** - * Specifies the preferred size of the layout. - *

    - * If performing a {@link yfiles.layout.OperationType#ROTATE rotation} and this rotation should be - * {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled automatically fitted}, then the given preferred size defines the aspect ratio that will be used for fitting the layout - * rotation. - *

    - *

    - * The preferred width and height need to be non-negative. - *

    - * @param {number} width the preferred width of the layout - * @param {number} height the preferred height of the layout - * @throws {Stubs.Exceptions.ArgumentError} if the specified width or height is negative - * @see yfiles.layout.GraphTransformer#preferredWidth - * @see yfiles.layout.GraphTransformer#preferredHeight - * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#ROTATE - */ - preferredLayoutSize(width:number,height:number):void; - /** - * Fits the given graph into the specified rectangular bounds. - *

    - * If the bounding box fits in the given bounds, nothing is done. Otherwise, the graph is scaled and optionally moved to - * fit. - *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to modify - * @param {number} x the upper left x-coordinate of the bounds - * @param {number} y the upper left y-coordinate of the bounds - * @param {number} w the width of the bounds - * @param {number} h the height of the bounds - * @static - */ - static setMaximalBounds(graph:yfiles.layout.LayoutGraph,x:number,y:number,w:number,h:number):void; - /** - * Specifies the horizontal and vertical scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. *

    - * Only positive scaling factors are allowed. + * Be aware that a statement like aList.append(aList.cursor()) results in an infinite recursion. *

    - * @param {number} xFactor the horizontal scaling factor - * @param {number} yFactor the vertical scaling factor - * @throws {Stubs.Exceptions.ArgumentError} if one the specified scaling factors is negative or 0 - * @see yfiles.layout.GraphTransformer#scaleFactorX - * @see yfiles.layout.GraphTransformer#scaleFactorY - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#SCALE + * @param c */ - setScaleFactors(xFactor:number,yFactor:number):void; + addAll(c:yfiles.algorithms.ICursor):void; /** - * Translates the layout coordinates by the given vector. - * @param {yfiles.layout.LayoutGraph} graph the graph that is translated - * @param {number} dx the horizontal distance the given graph is moved - * @param {number} dy the vertical distance the given graph is moved - * @see yfiles.layout.OperationType#TRANSLATE - * @see yfiles.layout.GraphTransformer#operation - * @static + * Appends all elements provided by the given collection to this list. + * @param collection + * @returns Whether there have been elements appended. */ - static translate(graph:yfiles.layout.LayoutGraph,dx:number,dy:number):void; + addAll(collection:yfiles.collections.ICollection):boolean; /** * - * @type {yfiles.layout.ILayoutAlgorithm} + * @param index + * @param c + * @returns */ - coreLayout:yfiles.layout.ILayoutAlgorithm; + addAll(index:number,c:yfiles.collections.ICollection):boolean; /** - * Gets or sets the transformation operation. - * @throws {Stubs.Exceptions.ArgumentError} if the specified operation is unknown - * @type {yfiles.layout.OperationType} + * Inserts the given object at the head of this list. + * @param o + * @returns The newly created ListCell object that stores the given object. */ - operation:yfiles.layout.OperationType; + addFirst(o:Object):yfiles.algorithms.ListCell; /** - * Gets or sets the angle of rotation. + * Adds a formerly removed ListCell object at the head of this list. *

    - * The angle must be given in degrees. + * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. *

    - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#ROTATE + * @param cell A list cell which is not part of any list. + */ + addFirstCell(cell:yfiles.algorithms.ListCell):void; + /** + * Inserts the given object at the tail of this list. + * @param o + * @returns The newly created ListCell object that stores the given object. + */ + addLast(o:Object):yfiles.algorithms.ListCell; + /** + * Adds a formerly removed ListCell object at the tail of this list. + *

    + * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. + *

    + * @param cell A list cell which is not part of any list. + */ + addLastCell(cell:yfiles.algorithms.ListCell):void; + /** + * Removes all elements from this list. + */ + clear():void; + /** + * Whether or not this list contains all the elements in the given collection. + *

    + * Equality of elements is defined by the {@link Object#equals} method. + *

    + * @param collection + * @returns + */ + containsAll(collection:yfiles.collections.ICollection):boolean; + /** + * Copies the elements of this collection to an array, starting at the specified array index. + * @param array The one-dimensional array that is the destination of the elements copied from this collection. + * @param arrayIndex The zero-based index in array at which copying begins. + */ + copyTo(array:Object[],arrayIndex:number):void; + /** + * Returns a cursor for this list. + *

    + * All cursor operations are supported. This cursor implementation is not fail-fast and continues to work if this list is + * modified during the traversal as long as the current ListCell the cursor points at is this in this list or has been + * removed from this list but has not been added to another instance since then. + *

    + * @returns + */ + cursor():yfiles.algorithms.ICursor; + /** + * Returns the cyclic predecessor cell of the given list cell. + *

    + * The last cell is returned as the cyclic predecessor of the first list cell. + *

    + * @param c + * @returns + */ + cyclicPred(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Returns the cyclic successor cell of the given list cell. + *

    + * The first cell is returned as the cyclic successor of the last list cell. + *

    + * @param c + * @returns + */ + cyclicSucc(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Returns the i-th element of this list. + * @param i + * @returns + */ + elementAt(i:number):Object; + /** + * Returns the {@link yfiles.algorithms.ListCell} where object o is stored. + *

    + * This operation returns null, if no such cell exists. Equality of elements is defined by the {@link Object#equals} method. The first + * element in the list that matches that criteria is returned. + *

    + * @param o + * @returns the ListCell that contains the element or null if no such ListCell was found + */ + findCell(o:Object):yfiles.algorithms.ListCell; + /** + * Gets the element at the specified index. + * @param index The zero-based index of the element to get or set. + * @returns The element at the specified index. + * @see yfiles.algorithms.YList#set + */ + get(index:number):Object; + /** + * Gets the cell at the given index. + * @param index the zero-based index of the cell in this list. + * @returns The cell. + * @throws {Stubs.Exceptions.IndexOutOfRangeError} if the index is negative or greater or equal than the {@link yfiles.algorithms.YList#size} + */ + getCell(index:number):yfiles.algorithms.ListCell; + /** + * Returns an enumerator that iterates through this collection. + * @returns An {@link } that can be used to iterate through this collection. + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * Returns the element stored in the given list cell. + * @param c + * @returns + */ + getInfo(c:yfiles.algorithms.ListCell):Object; + /** + * Whether or not this list contains the given element. + *

    + * Equality of elements is defined by the {@link Object#equals} method. + *

    + * @param o + * @returns + */ + includes(o:Object):boolean; + /** + * Returns the zero-based index of the given element in this list. + *

    + * If the given element is not in the list, -1 is returned. + *

    + * @param obj + * @returns + */ + indexOf(obj:Object):number; + /** + * + * @param index + * @param element + */ + insert(index:number,element:Object):void; + /** + * Inserts the given object into this list with respect to a given reference list cell. + *

    + * The (newly created) list cell that stores the object is inserted right after the reference list cell refCell. + *

    + *

    + * If refCell == null, the given object is inserted at the head of the list. + *

    + * @param o The object to be inserted. + * @param refCell The list cell used to reference the position. + * @returns The newly created ListCell object that stores object o. + */ + insertAfter(o:Object,refCell:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Inserts the given object into this list with respect to a given reference list cell. + *

    + * The (newly created) list cell that stores the object is inserted right before the reference list cell refCell. + *

    + *

    + * If refCell == null, the given object is appended to the list. + *

    + * @param o The object to be inserted. + * @param refCell The list cell used to reference the position. + * @returns The newly created ListCell object that stores object o. + */ + insertBefore(o:Object,refCell:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Inserts a formerly removed ListCell object into this list with respect to a given reference list cell. + *

    + * The ListCell object is inserted right after the reference list cell refCell. + *

    + *

    + * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. + *

    + * @param cellToInsert A list cell which is not part of any list. + * @param refCell The list cell used to reference the position. + */ + insertCellAfter(cellToInsert:yfiles.algorithms.ListCell,refCell:yfiles.algorithms.ListCell):void; + /** + * Inserts a formerly removed ListCell object into this list with respect to a given reference list cell. + *

    + * The ListCell object is inserted right before the reference list cell refCell. + *

    + *

    + * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. + *

    + * @param cellToInsert A list cell which is not part of any list. + * @param refCell The list cell used to reference the position. + */ + insertCellBefore(cellToInsert:yfiles.algorithms.ListCell,refCell:yfiles.algorithms.ListCell):void; + /** + * Checks whether this list contains elements. + * @returns + */ + isEmpty():boolean; + /** + * + * @param o + * @returns + */ + lastIndexOf(o:Object):number; + /** + * Equivalent to {@link yfiles.algorithms.YList#firstObject}. + * @returns + */ + peek():Object; + /** + * Removes the first element from this list and returns it. + * @returns + */ + pop():Object; + /** + * Removes the last element from this list and returns it. + * @returns + */ + popLast():Object; + /** + * Returns the predecessor cell of the given list cell. + * @param c + * @returns + */ + predCell(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Equivalent to {@link yfiles.algorithms.YList#addFirst}. + * @param o + * @returns + */ + push(o:Object):yfiles.algorithms.ListCell; + /** + * Removes the given object from this list. + *

    + * Only the first element for which equality to o holds gets removed. + *

    + * @param o + * @returns + */ + remove(o:Object):boolean; + /** + * Removes the given collection of objects from this list. + * @param collection + * @returns Whether there have been elements removed. + */ + removeAll(collection:yfiles.collections.ICollection):boolean; + /** + * + * @param index + */ + removeAt(index:number):void; + /** + * Removes the element pointed to by the given YCursor object. + * @param c + * @returns The removed element. + */ + removeAtCursor(c:yfiles.algorithms.ICursor):Object; + /** + * Removes the given list cell, and hence the element stored in it, from this list. + * @param c + * @returns The element that is stored in the removed cell. + */ + removeCell(c:yfiles.algorithms.ListCell):Object; + /** + * Retains only those elements in this list which are contained in the given collection. + * @param collection + * @returns Whether there have been elements removed. + */ + retainAll(collection:yfiles.collections.ICollection):boolean; + /** + * Reverses the sequence of elements in this list. + */ + reverse():void; + /** + * Sets the element at the specified index. + * @param index The zero-based index of the element to get or set. + * @param value The element at the specified index. + * @see yfiles.algorithms.YList#get + */ + set(index:number,value:Object):void; + /** + * Updates the element stored in the given list cell with the given object. + * @param c + * @param value + */ + setInfo(c:yfiles.algorithms.ListCell,value:Object):void; + /** + * Sorts the elements in this list according to the given comparator. + *

    + * NOTE: The elements will be assigned to different list cells by this method. + *

    + * @param comparer + */ + sort(comparer:yfiles.collections.IComparer):void; + /** + * Sorts the elements in this list into ascending order, according to their natural ordering. + *

    + * All elements must implement the {@link yfiles.lang.IComparable} interface. Furthermore, all elements in this list must be + * mutually comparable (that is, e1.compareTo(e2) must not throw a ClassCastException for any elements e1 and e2 in this + * list). + *

    + *

    + * NOTE: The elements will be assigned to different list cells by this method. + *

    + */ + sort():void; + /** + * Transfers the contents of the given list to the end of this list. + *

    + * The given list will be empty after this operation. + *

    + *

    + * Note that this operation transfers the list cells of the given list to this list. No new list cells are created by this + * operation. + *

    + * @param list + */ + splice(list:yfiles.algorithms.YList):void; + /** + * + * @param fromIndex + * @param toIndex + * @returns + */ + subList(fromIndex:number,toIndex:number):yfiles.collections.IList; + /** + * Returns the successor cell of the given list cell. + * @param c + * @returns + */ + succCell(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Returns an array representation of this list. + * @returns + */ + toArray():Object[]; + /** + * Gets the number of elements in this list. * @type {number} */ - rotationAngle:number; + size:number; /** - * Gets or sets whether or not to automatically choose the best fitting rotation angle. - *

    - * The angle will be chosen such that the bounding box after the rotation fits best to the {@link yfiles.layout.GraphTransformer#preferredLayoutSize preferred aspect ratio}. - *

    - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#ROTATE - * @type {boolean} + * Gets the first element of this list. + * @type {Object} */ - bestFitRotationEnabled:boolean; + firstObject:Object; /** - * Gets or sets the preferred height of the layout. - *

    - * This value will be used for {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled fitting the rotation} to preferred bounds. - *

    - *

    - * The preferred height needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified height is negative - * @see yfiles.layout.GraphTransformer#preferredWidth - * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#ROTATE - * @type {number} + * Gets the last element of this list. + * @type {Object} */ - preferredHeight:number; + lastObject:Object; /** - * Gets or sets the preferred width of the layout. - *

    - * This value will be used for {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled fitting the rotation} to preferred bounds. - *

    - *

    - * The preferred width needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified width is negative - * @see yfiles.layout.GraphTransformer#preferredHeight - * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#ROTATE - * @type {number} + * Gets the first cell of this list. + * @type {yfiles.algorithms.ListCell} */ - preferredWidth:number; + firstCell:yfiles.algorithms.ListCell; /** - * Gets or sets whether or not to also scale node sizes when performing the {@link yfiles.layout.OperationType#SCALE scale operation}. - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#SCALE - * @type {boolean} + * Gets the last cell of this list. + * @type {yfiles.algorithms.ListCell} */ - scaleNodeSize:boolean; - /** - * Sets the uniform scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. - *

    - * This factor applies vertical and horizontal. - *

    - *

    - * Only positive scaling factors are allowed. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 - * @see yfiles.layout.GraphTransformer#scaleFactorX - * @see yfiles.layout.GraphTransformer#scaleFactorY - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#SCALE - * @type {number} - */ - scaleFactor:number; - /** - * Gets or sets the vertical scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. - *

    - * Only positive scaling factors are allowed. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 - * @see yfiles.layout.GraphTransformer#scaleFactorX - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#SCALE - * @type {number} - */ - scaleFactorY:number; - /** - * Gets or sets the horizontal scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. - *

    - * Only positive scaling factors are allowed. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 - * @see yfiles.layout.GraphTransformer#scaleFactorY - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#SCALE - * @type {number} - */ - scaleFactorX:number; - /** - * Gets or sets the horizontal translation distance. - *

    - * A positive value means the graph is moved to the right while, a negative value means the graph is moved to the left. - *

    - * @see yfiles.layout.GraphTransformer#translateY - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#TRANSLATE - * @type {number} - */ - translateX:number; - /** - * Gets or sets the vertical translation distance. - *

    - * A positive value means the graph is moved downwards, while a negative value means the graph is moved upwards. - *

    - * @see yfiles.layout.GraphTransformer#translateX - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#TRANSLATE - * @type {number} - */ - translateY:number; + lastCell:yfiles.algorithms.ListCell; static $class:yfiles.lang.Class; } + }export namespace layout{ /** * {@link yfiles.layout.BendConverter} replaces edge bends with dummy nodes for the {@link yfiles.layout.BendConverter#coreLayout core layout algorithm}. *

    @@ -84487,27 +82575,24 @@ declare namespace system{ * When the dummy elements have been inserted, edge information about {@link yfiles.layout.BendConverter#adoptPortConstraints port constraints}, {@link yfiles.layout.BendConverter#adoptEdgeGroups edge groups} and {@link yfiles.layout.BendConverter#adoptAffectedEdges selection state} can * be adopted from the original edges. That way, the {@link yfiles.layout.BendConverter#coreLayout core layout algorithm} can access the mentioned information. *

    - * @class yfiles.layout.BendConverter + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface BendConverter extends Object,yfiles.layout.ILayoutStage{} export class BendConverter { /** * Creates a new {@link yfiles.layout.BendConverter} instance with the given size as the width and height for the dummy nodes. - * @param {number} size the size for the dummy nodes + * @param size the size for the dummy nodes * @throws {Stubs.Exceptions.ArgumentError} if the given size is negative - * @constructor */ constructor(size:number); /** * Creates a new instance of {@link yfiles.layout.BendConverter} with the given {@link yfiles.layout.BendConverter#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} core the core layout algorithm - * @constructor + * @param core the core layout algorithm */ constructor(core:yfiles.layout.ILayoutAlgorithm); /** * Creates a new {@link yfiles.layout.BendConverter} instance with default settings. - * @constructor */ constructor(); /** @@ -84519,9 +82604,9 @@ declare namespace system{ *

    * The current implementation does nothing. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the edge whose bends were replaced by the given dummy nodes - * @param {yfiles.algorithms.NodeList} dummyNodes the dummy nodes representing the bends of the edge + * @param graph the input graph + * @param edge the edge whose bends were replaced by the given dummy nodes + * @param dummyNodes the dummy nodes representing the bends of the edge * @protected */ addedPathForEdge(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,dummyNodes:yfiles.algorithms.NodeList):void; @@ -84531,7 +82616,7 @@ declare namespace system{ * After the {@link yfiles.layout.BendConverter#coreLayout core layout algorithm} has finished, the edges between the dummy nodes are reconnected and the dummy nodes are * replaced by bends again. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -84549,7 +82634,7 @@ declare namespace system{ * {@link yfiles.layout.BendConverter#coreLayout core layout algorithm}. It may be overridden to extend the edge-specific information that should be adopted by the dummy * edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @see yfiles.layout.BendConverter#restore * @see yfiles.layout.BendConverter#adoptAffectedEdges * @see yfiles.layout.BendConverter#adoptPortConstraints @@ -84563,7 +82648,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.BendConverter#applyLayout} after invoking the {@link yfiles.layout.BendConverter#coreLayout core layout algorithm}. It may be * overridden to clean up all additional information added in {@link yfiles.layout.BendConverter#prepare}. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph arranged by the {@link yfiles.layout.BendConverter#coreLayout core layout algorithm} + * @param graph the graph arranged by the {@link #coreLayout core layout algorithm} * @see yfiles.layout.BendConverter#prepare * @see yfiles.layout.BendConverter#adoptAffectedEdges * @see yfiles.layout.BendConverter#adoptPortConstraints @@ -84633,15 +82718,14 @@ declare namespace system{ * associated graph layout. This comes in handy if an application has its own graph and only provides a graph interface * adapter to the yFiles graph layout machinery. *

    - * @class yfiles.layout.BufferedLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface BufferedLayout extends yfiles.layout.LayoutStageBase{} export class BufferedLayout { /** * Creates a new {@link yfiles.layout.BufferedLayout} instance using the given {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] the core layout routine - * @constructor + * @param [coreLayouter=null] the core layout routine */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); static $class:yfiles.lang.Class; @@ -84690,15 +82774,14 @@ declare namespace system{ * IDs to the nodes. *

    * @see yfiles.layout.MultiStageLayout - * @class yfiles.layout.ComponentLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface ComponentLayout extends yfiles.layout.LayoutStageBase{} export class ComponentLayout { /** * Creates a new {@link yfiles.layout.ComponentLayout} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algortihm. - * @constructor + * @param [coreLayouter=null] The core layout algortihm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -84708,14 +82791,16 @@ declare namespace system{ * the graph's components such that their bounding boxes do not overlap. Subclasses may want to override this method to * introduce custom component arrangement styles. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {Array.} nodes the nodes of the components; the i-th list contains the nodes of the i-th component - * @param {Array.} edges the edges of the components; the i-th list contains the edges of the i-th component - * @param {Array.} bbox the bounds of the components; the i-th rectangle describes the bounding box of the i-th component - * @param {Array.} boxes the extended bounds of the components; the i-th rectangle describes the bounding box of the i-th component extended by + * @param graph the input graph + * @param nodes the nodes of the components; the i-th list contains the nodes of the i-th component + * @param edges the edges of the components; the i-th list contains the edges of the i-th component + * @param bbox the bounds of the components; the i-th rectangle describes the bounding box of the i-th component + * @param boxes the extended bounds of the components; the i-th rectangle describes the bounding box of the i-th component extended by * the spacing between components. The method arranges these boxes in such a way that they do not overlap. Then, the i-th * graph component must be placed inside the i-th box * @see yfiles.layout.ComponentLayout#arrangeFields + * @see yfiles.layout.LayoutGraphUtilities#arrangeRectangleRows + * @see yfiles.layout.LayoutGraphUtilities#arrangeRectangleMultiRows * @protected */ arrangeComponents(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.NodeList[],edges:yfiles.algorithms.EdgeList[],bbox:yfiles.algorithms.YRectangle[],boxes:yfiles.algorithms.Rectangle2D[]):void; @@ -84729,15 +82814,15 @@ declare namespace system{ * {@link yfiles.layout.ComponentArrangementStyles#PACKED_COMPACT_CIRCLE}. It may be overridden to adjust the component arrangement * strategy of the mentioned styles. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {Array.} nodes the nodes of the components; the i-th list contains the nodes of the i-th component - * @param {Array.} edges the edges of the components; the i-th list contains the edges of the i-th component - * @param {Array.} bbox the bounds of the components; the i-th rectangle describes the bounding box of the i-th component - * @param {Array.} boxes the extended bounds of the components; the i-th rectangle describes the bounding box of the i-th component - * @param {boolean} circular true if the arrangement should be circular, false if it should be rectangular - * @param {boolean} fill true if it is allowed to place components in empty spaces inside other + * @param graph the input graph + * @param nodes the nodes of the components; the i-th list contains the nodes of the i-th component + * @param edges the edges of the components; the i-th list contains the edges of the i-th component + * @param bbox the bounds of the components; the i-th rectangle describes the bounding box of the i-th component + * @param boxes the extended bounds of the components; the i-th rectangle describes the bounding box of the i-th component + * @param circular true if the arrangement should be circular, false if it should be rectangular + * @param fill true if it is allowed to place components in empty spaces inside other * components, false otherwise - * @param {boolean} fromSketch true if the initial coordinates should be considered, false otherwise + * @param fromSketch true if the initial coordinates should be considered, false otherwise * @protected */ arrangeFields(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.NodeList[],edges:yfiles.algorithms.EdgeList[],bbox:yfiles.algorithms.YRectangle[],boxes:yfiles.algorithms.Rectangle2D[],circular:boolean,fill:boolean,fromSketch:boolean):void; @@ -84748,8 +82833,8 @@ declare namespace system{ * {@link yfiles.layout.ComponentLayout#considerLabels}, the returned bounding box will also include node and edge labels. It may be overridden to extend the bounds to reserve * space for other elements. *

    - * @param {yfiles.layout.LayoutGraph} graph the subgraph containing the nodes and edges of a component - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the component + * @param graph the subgraph containing the nodes and edges of a component + * @returns the bounding box of the component * @see yfiles.layout.ComponentLayout#considerLabels * @protected */ @@ -84766,9 +82851,9 @@ declare namespace system{ * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. However, most of the layout algorithms cannot handle disconnected graphs. Also, edges between * custom components will be ignored. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.INodeMap} compNumber a map that will be filled with the zero-based index of the component to which the node belongs - * @returns {number} the number of connected components of this graph + * @param graph the input graph + * @param compNumber a map that will be filled with the zero-based index of the component to which the node belongs + * @returns the number of connected components of this graph * @see yfiles.algorithms.GraphConnectivity#connectedComponents * @protected */ @@ -84779,11 +82864,11 @@ declare namespace system{ * This method is called by {@link yfiles.layout.ComponentLayout#arrangeComponents} and {@link yfiles.layout.ComponentLayout#arrangeFields} * to move the components to overlap-free positions. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.NodeList} nodes the nodes in the moving subgraph - * @param {yfiles.algorithms.EdgeList} edges the edges in the moving subgraph - * @param {yfiles.algorithms.YPoint} origin the new origin of the graph - * @param {yfiles.algorithms.YRectangle} rectangle the current bounds of the subgraph + * @param graph the input graph + * @param nodes the nodes in the moving subgraph + * @param edges the edges in the moving subgraph + * @param origin the new origin of the graph + * @param rectangle the current bounds of the subgraph * @protected */ setOrigin(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.NodeList,edges:yfiles.algorithms.EdgeList,origin:yfiles.algorithms.YPoint,rectangle:yfiles.algorithms.YRectangle):void; @@ -84887,7 +82972,7 @@ declare namespace system{ * Note that the pipeline only works when all {@link yfiles.layout.ILayoutStage}s call their core layout algorithm which is the * next {@link yfiles.layout.ILayoutStage} in the pipeline. *

    - * @class yfiles.layout.CompositeLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface CompositeLayoutStage extends yfiles.layout.LayoutStageBase{} @@ -84897,14 +82982,12 @@ declare namespace system{ *

    * The inner {@link yfiles.layout.ILayoutStage} will be wrapped by the outer {@link yfiles.layout.ILayoutStage}. *

    - * @param {yfiles.layout.ILayoutStage} outerStage the wrapping {@link yfiles.layout.ILayoutStage} - * @param {yfiles.layout.ILayoutStage} innerStage the wrapped {@link yfiles.layout.ILayoutStage} - * @constructor + * @param outerStage the wrapping {@link } + * @param innerStage the wrapped {@link } */ constructor(outerStage:yfiles.layout.ILayoutStage,innerStage:yfiles.layout.ILayoutStage); /** * Creates a new {@link yfiles.layout.CompositeLayoutStage} instance with an empty pipeline. - * @constructor */ constructor(); /** @@ -84914,7 +82997,7 @@ declare namespace system{ * pre-processing code will be executed after the already added {@link yfiles.layout.ILayoutStage}s' pre-processing code, while its * post-processing code will be executed before the post-processing code of all the other {@link yfiles.layout.ILayoutStage}s. *

    - * @param {yfiles.layout.ILayoutStage} stage the stage to append + * @param stage the stage to append */ appendStage(stage:yfiles.layout.ILayoutStage):void; /** @@ -84924,7 +83007,7 @@ declare namespace system{ * code will be executed before the already added {@link yfiles.layout.ILayoutStage}s' pre-processing code, while its * post-processing code will be executed after the post-processing code of all the other {@link yfiles.layout.ILayoutStage}s. *

    - * @param {yfiles.layout.ILayoutStage} stage the stage to prepend + * @param stage the stage to prepend */ prependStage(stage:yfiles.layout.ILayoutStage):void; /** @@ -84960,15 +83043,14 @@ declare namespace system{ * original graph. The original graph will stay unchanged until this method is called. *

    * @see yfiles.layout.BufferedLayout - * @class yfiles.layout.CopiedLayoutGraph + * @class * @extends {yfiles.layout.LayoutGraph} */ export interface CopiedLayoutGraph extends yfiles.layout.LayoutGraph{} export class CopiedLayoutGraph { /** * Creates a new {@link yfiles.layout.CopiedLayoutGraph} instance which is a copy of the given graph. - * @param {yfiles.layout.LayoutGraph} graph the original graph - * @constructor + * @param graph the original graph */ constructor(graph:yfiles.layout.LayoutGraph); /** @@ -84988,8 +83070,8 @@ declare namespace system{ *

    * This method can be used for keeping the {@link yfiles.layout.CopiedLayoutGraph} in sync with the original graph. *

    - * @param {Object} originalEdge the original edge - * @returns {yfiles.algorithms.Edge} the copy of the original edge + * @param originalEdge the original edge + * @returns the copy of the original edge */ createCopiedEdge(originalEdge:Object):yfiles.algorithms.Edge; /** @@ -85004,32 +83086,32 @@ declare namespace system{ *

    * This method can be used for keeping the {@link yfiles.layout.CopiedLayoutGraph} in sync with the original graph. *

    - * @param {Object} originalNode the original node - * @returns {yfiles.algorithms.Node} the copy of the original node + * @param originalNode the original node + * @returns the copy of the original node */ createCopiedNode(originalNode:Object):yfiles.algorithms.Node; /** * Returns the copied edge that corresponds to the given original edge. - * @param {Object} originalEdge an edge of the original graph whose copy resides in this graph - * @returns {yfiles.algorithms.Edge} an edge in this graph that is the copy of the given original edge + * @param originalEdge an edge of the original graph whose copy resides in this graph + * @returns an edge in this graph that is the copy of the given original edge */ getCopiedEdge(originalEdge:Object):yfiles.algorithms.Edge; /** * Returns the copied node that corresponds to the given original node. - * @param {Object} originalNode a node of the original graph whose copy resides in this graph - * @returns {yfiles.algorithms.Node} a node in this graph that is the copy of the given original node + * @param originalNode a node of the original graph whose copy resides in this graph + * @returns a node in this graph that is the copy of the given original node */ getCopiedNode(originalNode:Object):yfiles.algorithms.Node; /** * Returns the original edge that corresponds to the given copied edge. - * @param {yfiles.algorithms.Edge} copiedEdge the edge in this graph that is a copy of the returned edge - * @returns {Object} the edge in the original graph whose copy is the given edge + * @param copiedEdge the edge in this graph that is a copy of the returned edge + * @returns the edge in the original graph whose copy is the given edge */ getOriginalEdge(copiedEdge:yfiles.algorithms.Edge):Object; /** * Returns the original node that corresponds to the given copied node. - * @param {yfiles.algorithms.Node} copiedNode the node in this graph that is a copy of the returned node - * @returns {Object} the node in the original graph whose copy is the given node + * @param copiedNode the node in this graph that is a copy of the returned node + * @returns the node in the original graph whose copy is the given node */ getOriginalNode(copiedNode:yfiles.algorithms.Node):Object; /** @@ -85079,15 +83161,14 @@ declare namespace system{ * sub-set of edges can be changed. Use a {@link yfiles.algorithms.IDataProvider} registered with the specified {@link yfiles.layout.CurveFittingLayoutStage#affectedEdgesDpKey selection key} to * mark edges which should be part of the considered sub-set. *

    - * @class yfiles.layout.CurveFittingLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface CurveFittingLayoutStage extends yfiles.layout.LayoutStageBase{} export class CurveFittingLayoutStage { /** * Creates a new {@link yfiles.layout.CurveFittingLayoutStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** @@ -85141,27 +83222,24 @@ declare namespace system{ /** * {@link yfiles.layout.DefaultLayoutGraph} is a default implementation of {@link yfiles.layout.LayoutGraph} which holds the complete * layout information about the graph and its elements. - * @class yfiles.layout.DefaultLayoutGraph + * @class * @extends {yfiles.layout.LayoutGraph} */ export interface DefaultLayoutGraph extends yfiles.layout.LayoutGraph{} export class DefaultLayoutGraph { /** * Creates a new {@link yfiles.layout.DefaultLayoutGraph} instance which is a copy of the given subgraph. - * @param {yfiles.layout.LayoutGraph} graph the original graph - * @param {yfiles.algorithms.ICursor} nodeSubset the nodes that induce a subgraph of the original graph - * @constructor + * @param graph the original graph + * @param nodeSubset the nodes that induce a subgraph of the original graph */ constructor(graph:yfiles.layout.LayoutGraph,nodeSubset:yfiles.algorithms.ICursor); /** * Creates a new {@link yfiles.layout.DefaultLayoutGraph} instance which is a copy of the given graph. - * @param {yfiles.layout.LayoutGraph} argGraph the original graph - * @constructor + * @param argGraph the original graph */ constructor(argGraph:yfiles.layout.LayoutGraph); /** * Creates a new {@link yfiles.layout.DefaultLayoutGraph} instance with default settings. - * @constructor */ constructor(); /** @@ -85170,7 +83248,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.DefaultLayoutGraph#getLayout} if there is no layout information assigned to an * edge, yet. It may be overridden to create custom {@link yfiles.layout.IEdgeLayout}s. *

    - * @returns {yfiles.layout.IEdgeLayout} the layout of an edge + * @returns the layout of an edge * @protected */ createEdgeLayout():yfiles.layout.IEdgeLayout; @@ -85180,7 +83258,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.DefaultLayoutGraph#getLayout} if there is no layout information assigned to a * node, yet. It may be overridden to create custom {@link yfiles.layout.INodeLayout}s. *

    - * @returns {yfiles.layout.INodeLayout} the layout of a node + * @returns the layout of a node * @protected */ createNodeLayout():yfiles.layout.INodeLayout; @@ -85189,8 +83267,8 @@ declare namespace system{ *

    * The layout information consists of the location, size and orientation of the label. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {Array.} layout the layout information for the labels of the edge + * @param edge the edge + * @param layout the layout information for the labels of the edge */ setLabelLayout(edge:yfiles.algorithms.Edge,layout:yfiles.layout.IEdgeLabelLayout[]):void; /** @@ -85198,8 +83276,8 @@ declare namespace system{ *

    * The layout information consists of the location, size and orientation of the label. *

    - * @param {yfiles.algorithms.Node} node the node - * @param {Array.} layout the layout information for the labels of the node + * @param node the node + * @param layout the layout information for the labels of the node */ setLabelLayout(node:yfiles.algorithms.Node,layout:yfiles.layout.INodeLabelLayout[]):void; /** @@ -85207,8 +83285,8 @@ declare namespace system{ *

    * The layout information consists of the location, size and orientation of the label. *

    - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.layout.INodeLabelLayout} layout the layout information for the label of the node + * @param node the node + * @param layout the layout information for the label of the node */ setLabelLayout(node:yfiles.algorithms.Node,layout:yfiles.layout.INodeLabelLayout):void; /** @@ -85216,8 +83294,8 @@ declare namespace system{ *

    * The layout information consists of the locations of the control and end points of the edge. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.layout.IEdgeLayout} layout the layout information for the edge + * @param edge the edge + * @param layout the layout information for the edge */ setLayout(edge:yfiles.algorithms.Edge,layout:yfiles.layout.IEdgeLayout):void; /** @@ -85225,8 +83303,8 @@ declare namespace system{ *

    * The layout information consists of the location and size of the node. *

    - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.layout.INodeLayout} layout the layout information for the node + * @param node the node + * @param layout the layout information for the node */ setLayout(node:yfiles.algorithms.Node,layout:yfiles.layout.INodeLayout):void; /** @@ -85255,15 +83333,15 @@ declare namespace system{ } /** * {@link yfiles.layout.Direction} provides four main directions and some methods to work with them. - * @class yfiles.layout.Direction + * @class * @final */ export interface Direction extends Object{} export class Direction { /** * Returns the direction encoded as an integer value. - * @returns {number} 0 for direction {@link yfiles.layout.Direction#UP}, 1 for {@link yfiles.layout.Direction#RIGHT}, 2 for {@link yfiles.layout.Direction#DOWN}, and - * 3 for {@link yfiles.layout.Direction#LEFT} + * @returns 0 for direction {@link #UP}, 1 for {@link #RIGHT}, 2 for {@link #DOWN}, and + * 3 for {@link #LEFT} */ getDirection():number; /** @@ -85349,7 +83427,7 @@ declare namespace system{ * Furthermore, there's the possibility to mask out arbitrary edge label candidates. This can either be done by specifying * predefined candidate masks or combining several label positions with a logical or-operation to a user-defined mask. *

    - * @class yfiles.layout.DiscreteEdgeLabelLayoutModel + * @class * @implements {yfiles.layout.IEdgeLabelLayoutModel} */ export interface DiscreteEdgeLabelLayoutModel extends Object,yfiles.layout.IEdgeLabelLayoutModel{} @@ -85359,22 +83437,20 @@ declare namespace system{ *

    * The candidates mask can either describe multiple or single valid positions. *

    - * @param {yfiles.layout.DiscreteEdgeLabelPositions} candidateMask the position mask that defines the allowed positions for an edge label - * @constructor + * @param candidateMask the position mask that defines the allowed positions for an edge label */ constructor(candidateMask:yfiles.layout.DiscreteEdgeLabelPositions); /** * Creates a new instance of {@link yfiles.layout.DiscreteEdgeLabelLayoutModel} with default settings. - * @constructor */ constructor(); /** * - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @returns {Object} + * @param labelBounds + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @returns */ createModelParameter(labelBounds:yfiles.algorithms.YOrientedRectangle,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout):Object; /** @@ -85383,29 +83459,29 @@ declare namespace system{ * This model parameter can be passed to {@link yfiles.layout.DiscreteEdgeLabelLayoutModel#getLabelPlacement} to determine the * label's position. *

    - * @param {number} position one of the valid positions - * @returns {Object} a model parameter that encodes the specified position + * @param position one of the valid positions + * @returns a model parameter that encodes the specified position * @throws {Stubs.Exceptions.ArgumentError} if the specified position is unknown * @static */ static createPositionParameter(position:number):Object; /** * - * @param {yfiles.layout.IEdgeLabelLayout} label - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @returns {yfiles.algorithms.YList} + * @param label + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @returns */ getLabelCandidates(label:yfiles.layout.IEdgeLabelLayout,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * - * @param {yfiles.algorithms.YDimension} labelSize - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @param {Object} param - * @returns {yfiles.algorithms.YOrientedRectangle} + * @param labelSize + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @param param + * @returns */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout,param:Object):yfiles.algorithms.YOrientedRectangle; /** @@ -85414,19 +83490,19 @@ declare namespace system{ * This method is called by {@link yfiles.layout.DiscreteEdgeLabelLayoutModel#getLabelPlacement} and {@link yfiles.layout.DiscreteEdgeLabelLayoutModel#getLabelCandidates} * to retrieve a valid position. *

    - * @param {yfiles.algorithms.YDimension} labelSize the size of the label that should be placed - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @param {yfiles.layout.DiscreteEdgeLabelPositions} position the label position that is valid in this model - * @returns {yfiles.algorithms.YOrientedRectangle} the oriented box of the label + * @param labelSize the size of the label that should be placed + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @param position the label position that is valid in this model + * @returns the oriented box of the label * @protected */ getLabelPlacementForPosition(labelSize:yfiles.algorithms.YDimension,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout,position:yfiles.layout.DiscreteEdgeLabelPositions):yfiles.algorithms.YOrientedRectangle; /** * Returns the position specifier that is encoded by the given model parameter. - * @param {Object} parameter the model parameter - * @returns {number} the position specifier + * @param parameter the model parameter + * @returns the position specifier * @throws {Stubs.Exceptions.ArgumentError} if the specified model parameter is not valid for this model * @static */ @@ -85436,8 +83512,8 @@ declare namespace system{ *

    * If the model parameter describes a position that is accepted by the candidate mask, this is a valid parameter. *

    - * @param {Object} parameter the model parameter - * @returns {boolean} true if the label position described by the given model parameter is allowed, false otherwise + * @param parameter the model parameter + * @returns true if the label position described by the given model parameter is allowed, false otherwise */ isParameterValid(parameter:Object):boolean; /** @@ -85516,7 +83592,7 @@ declare namespace system{ * Furthermore, there's the possibility to mask out arbitrary node label candidates. This can either be done by specifying * predefined candidate masks or a combination of valid positions of this model using a logical or-operation. *

    - * @class yfiles.layout.DiscreteNodeLabelLayoutModel + * @class * @implements {yfiles.layout.INodeLabelLayoutModel} */ export interface DiscreteNodeLabelLayoutModel extends Object,yfiles.layout.INodeLabelLayoutModel{} @@ -85526,36 +83602,34 @@ declare namespace system{ *

    * The specified mask can also describe a single position. *

    - * @param {yfiles.layout.DiscreteNodeLabelPositions} candidateMask the position mask that defines the allowed positions for a node label - * @param {number} [inset=4.0] the inset value that defines the internal label distance to the node's border - * @constructor + * @param candidateMask the position mask that defines the allowed positions for a node label + * @param [inset=4.0] the inset value that defines the internal label distance to the node's border */ constructor(candidateMask:yfiles.layout.DiscreteNodeLabelPositions,inset?:number); /** * Creates a new instance of {@link yfiles.layout.DiscreteNodeLabelLayoutModel} with default settings. - * @constructor */ constructor(); /** * - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds - * @param {yfiles.layout.INodeLayout} nodeLayout - * @returns {Object} + * @param labelBounds + * @param nodeLayout + * @returns */ createModelParameter(labelBounds:yfiles.algorithms.YOrientedRectangle,nodeLayout:yfiles.layout.INodeLayout):Object; /** * - * @param {yfiles.layout.INodeLabelLayout} labelLayout - * @param {yfiles.layout.INodeLayout} nodeLayout - * @returns {yfiles.algorithms.YList} + * @param labelLayout + * @param nodeLayout + * @returns */ getLabelCandidates(labelLayout:yfiles.layout.INodeLabelLayout,nodeLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * - * @param {yfiles.algorithms.YDimension} labelSize - * @param {yfiles.layout.INodeLayout} nodeLayout - * @param {Object} parameter - * @returns {yfiles.algorithms.YOrientedRectangle} + * @param labelSize + * @param nodeLayout + * @param parameter + * @returns */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,nodeLayout:yfiles.layout.INodeLayout,parameter:Object):yfiles.algorithms.YOrientedRectangle; /** @@ -85564,10 +83638,10 @@ declare namespace system{ * This method is called by {@link yfiles.layout.DiscreteNodeLabelLayoutModel#getLabelPlacement} and {@link yfiles.layout.DiscreteNodeLabelLayoutModel#getLabelCandidates} * to retrieve a valid position. *

    - * @param {yfiles.algorithms.YDimension} labelSize the size of the label that should be placed - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @param {yfiles.layout.DiscreteNodeLabelPositions} position the label position that is valid in this model - * @returns {yfiles.algorithms.YOrientedRectangle} the oriented box of the label + * @param labelSize the size of the label that should be placed + * @param nodeLayout the layout of the node to which the label belongs + * @param position the label position that is valid in this model + * @returns the oriented box of the label * @protected */ getLabelPlacementForPosition(labelSize:yfiles.algorithms.YDimension,nodeLayout:yfiles.layout.INodeLayout,position:yfiles.layout.DiscreteNodeLabelPositions):yfiles.algorithms.YOrientedRectangle; @@ -85576,8 +83650,8 @@ declare namespace system{ *

    * If the model parameter describes a position that is accepted by the candidate mask, this is a valid parameter. *

    - * @param {Object} parameter the model parameter - * @returns {boolean} true if the label position described by the given model parameter is allowed, false otherwise + * @param parameter the model parameter + * @returns true if the label position described by the given model parameter is allowed, false otherwise */ isParameterValid(parameter:Object):boolean; /** @@ -85625,19 +83699,17 @@ declare namespace system{ *

    * @see yfiles.layout.EdgeBundling * @see yfiles.layout.EdgeBundling#EDGE_BUNDLE_DESCRIPTOR_DP_KEY - * @class yfiles.layout.EdgeBundleDescriptor + * @class */ export interface EdgeBundleDescriptor extends Object{} export class EdgeBundleDescriptor { /** * Creates a new {@link yfiles.layout.EdgeBundleDescriptor} representing a copy of the given other descriptor instance. - * @param {yfiles.layout.EdgeBundleDescriptor} descriptor the descriptor to copy - * @constructor + * @param descriptor the descriptor to copy */ constructor(descriptor:yfiles.layout.EdgeBundleDescriptor); /** * Creates a new {@link yfiles.layout.EdgeBundleDescriptor} with default settings. - * @constructor */ constructor(); /** @@ -85649,7 +83721,7 @@ declare namespace system{ *

    *

    * If the direction of some edges is taken into consideration while the direction of some others (adjacent to the same - * node) is ignored, the undirected edges are also bundled separately. This is done to distinguished them from the incoming + * node) is ignored, the undirected edges are also bundled separately. This is done to distinguish them from the incoming * and outgoing edges of the particular node. *

    * @type {boolean} @@ -85695,21 +83767,19 @@ declare namespace system{ *

    * @see yfiles.layout.EdgeBundleDescriptor * @see yfiles.circular.CircularLayout#edgeBundling - * @class yfiles.layout.EdgeBundling + * @class */ export interface EdgeBundling extends Object{} export class EdgeBundling { /** * Creates a new {@link yfiles.layout.EdgeBundling} instance with the given {@link yfiles.layout.EdgeBundling#bundlingStrength bundling strength} and {@link yfiles.layout.EdgeBundling#bundlingQuality bundling quality}. - * @param {number} bundlingStrength the bundling strength from the interval [0,1] - * @param {number} bundlingQuality the bundling quality from the interval [0,1] + * @param bundlingStrength the bundling strength from the interval [0,1] + * @param bundlingQuality the bundling quality from the interval [0,1] * @throws {Stubs.Exceptions.ArgumentError} if the given bundling strength or quality is not within [0,1] - * @constructor */ constructor(bundlingStrength:number,bundlingQuality:number); /** * Creates a new {@link yfiles.layout.EdgeBundling} instance with default settings. - * @constructor */ constructor(); /** @@ -85767,7 +83837,7 @@ declare namespace system{ } /** * An {@link yfiles.layout.EdgeLabelCandidate} describes one valid placement for an edge label considering the label model. - * @class yfiles.layout.EdgeLabelCandidate + * @class * @extends {yfiles.layout.LabelCandidate} */ export interface EdgeLabelCandidate extends yfiles.layout.LabelCandidate{} @@ -85775,21 +83845,19 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.layout.EdgeLabelCandidate} described by location, size, model parameter and internal * flag. - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate - * @param {yfiles.algorithms.YDimension} size the size of the candidate - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.IEdgeLabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param pos the location of the upper left corner of the candidate + * @param size the size of the candidate + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.IEdgeLabelLayout,internal?:boolean); /** * Creates a new instance of {@link yfiles.layout.EdgeLabelCandidate} described by its box, model parameter and internal flag. - * @param {yfiles.algorithms.YOrientedRectangle} labelBox the box that specifies the candidate's size and position - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.IEdgeLabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param labelBox the box that specifies the candidate's size and position + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(labelBox:yfiles.algorithms.YOrientedRectangle,param:Object,owner:yfiles.layout.IEdgeLabelLayout,internal?:boolean); static $class:yfiles.lang.Class; @@ -85809,14 +83877,13 @@ declare namespace system{ * descriptors (combinations of the same setting, e.g., source or target for the {@link yfiles.layout.PreferredPlacementDescriptor#placeAlongEdge}), {@link yfiles.layout.EdgeLabelOrientationSupport#preProcessLabel} * removes combinations and replaces the original descriptor with a non-ambiguous one during the layout calculation. *

    - * @class yfiles.layout.EdgeLabelOrientationSupport + * @class */ export interface EdgeLabelOrientationSupport extends Object{} export class EdgeLabelOrientationSupport { /** * Creates a new {@link yfiles.layout.EdgeLabelOrientationSupport} instance. * @see yfiles.layout.OrientationLayout#considerEdgeLabels - * @constructor */ constructor(); /** @@ -85824,17 +83891,17 @@ declare namespace system{ *

    * The created descriptor will be one without any combinations of settings, e.g., source or target for the {@link yfiles.layout.PreferredPlacementDescriptor#placeAlongEdge}. *

    - * @param {yfiles.layout.PreferredPlacementDescriptor} ambiguous an ambiguous {@link yfiles.layout.PreferredPlacementDescriptor} - * @returns {yfiles.layout.PreferredPlacementDescriptor} a non-ambiguous version of the given ambiguous {@link yfiles.layout.PreferredPlacementDescriptor} + * @param ambiguous an ambiguous {@link } + * @returns a non-ambiguous version of the given ambiguous {@link } * @protected */ createNonAmbiguous(ambiguous:yfiles.layout.PreferredPlacementDescriptor):yfiles.layout.PreferredPlacementDescriptor; /** * Calculates the up vector of an edge label considering the preferred placement of the label as well as the direction of * the edge segment the label is attached to. - * @param {yfiles.layout.PreferredPlacementDescriptor} descriptor the data describing the preferred label orientation - * @param {yfiles.layout.Direction} segmentDirection the direction the edge segment is pointing to - * @returns {yfiles.algorithms.YVector} the up vector for the edge label that considers the preferred placement of the label as well as the direction of the + * @param descriptor the data describing the preferred label orientation + * @param segmentDirection the direction the edge segment is pointing to + * @returns the up vector for the edge label that considers the preferred placement of the label as well as the direction of the * edge segment the label is attached to * @static */ @@ -85845,25 +83912,25 @@ declare namespace system{ * The up vector starts in the lower-left corner of the label and points up. If the label is paraxial it is (0, -1). The * right vector starts at the same point and points right. In a paraxial label it is (1, 0). *

    - * @param {number} rightVectorAngle the angle in radians the right vector is rotated by - * @returns {yfiles.algorithms.YVector} the up vector for a label whose right vector is rotated clockwise by the given angle + * @param rightVectorAngle the angle in radians the right vector is rotated by + * @returns the up vector for a label whose right vector is rotated clockwise by the given angle * @static */ static getLabelUpVector(rightVectorAngle:number):yfiles.algorithms.YVector; /** * Transforms a direction of the layout to the oriented layout direction. - * @param {yfiles.layout.Direction} direction direction in the layout - * @param {yfiles.layout.LayoutOrientation} orientation the orientation of the layout - * @param {yfiles.layout.MirrorModes} mirrorMask the mask to determine whether or not the orientation is mirrored - * @returns {yfiles.layout.Direction} the direction in the oriented layout + * @param direction direction in the layout + * @param orientation the orientation of the layout + * @param mirrorMask the mask to determine whether or not the orientation is mirrored + * @returns the direction in the oriented layout * @static */ static getOrientedDirection(direction:yfiles.layout.Direction,orientation:yfiles.layout.LayoutOrientation,mirrorMask:yfiles.layout.MirrorModes):yfiles.layout.Direction; /** * Returns whether or not the orientation is mirrored. - * @param {yfiles.layout.LayoutOrientation} orientation the orientation of the layout - * @param {yfiles.layout.MirrorModes} mirrorMask the mask to determine whether or not the orientation is mirrored - * @returns {boolean} true if the orientation is mirrored, false otherwise + * @param orientation the orientation of the layout + * @param mirrorMask the mask to determine whether or not the orientation is mirrored + * @returns true if the orientation is mirrored, false otherwise * @static */ static isOrientationMirrored(orientation:yfiles.layout.LayoutOrientation,mirrorMask:yfiles.layout.MirrorModes):boolean; @@ -85877,7 +83944,7 @@ declare namespace system{ * Algorithms that are executed after this call and before {@link yfiles.layout.EdgeLabelOrientationSupport#resetAmbiguousLabelDescriptors} * will handle port labels like normal source or target labels. *

    - * @param {yfiles.layout.LabelLayoutData} portLabel an edge label that had a {@link yfiles.layout.LabelPlacements#AT_SOURCE_PORT} or {@link yfiles.layout.LabelPlacements#AT_TARGET_PORT} + * @param portLabel an edge label that had a {@link #AT_SOURCE_PORT} or {@link #AT_TARGET_PORT} * placement preference * @throws {Stubs.Exceptions.InvalidOperationError} if {@link yfiles.layout.EdgeLabelOrientationSupport#replaceAmbiguousLabelDescriptors} was never called for the graph containing * the given label. @@ -85895,8 +83962,8 @@ declare namespace system{ * This method is called by the core layout algorithm with the integrated edge labeling for each edge label after the * location of the label is determined. *

    - * @param {yfiles.algorithms.Graph} graph the graph to get the orientation information from - * @param {yfiles.layout.LabelLayoutData} label the information about the edge label whose location is determined + * @param graph the graph to get the orientation information from + * @param label the information about the edge label whose location is determined */ postProcessLabel(graph:yfiles.algorithms.Graph,label:yfiles.layout.LabelLayoutData):void; /** @@ -85913,9 +83980,9 @@ declare namespace system{ * layout algorithm uses the geometry of labels. It should be called as soon as the direction of the segment the label * belongs to is determined. *

    - * @param {yfiles.algorithms.Graph} graph the graph to get the orientation information from - * @param {yfiles.layout.LabelLayoutData} label the information about the edge label whose segment direction is determined - * @param {yfiles.layout.Direction} segmentDirection the direction of the segment the edge label belongs to + * @param graph the graph to get the orientation information from + * @param label the information about the edge label whose segment direction is determined + * @param segmentDirection the direction of the segment the edge label belongs to */ preProcessLabel(graph:yfiles.algorithms.Graph,label:yfiles.layout.LabelLayoutData,segmentDirection:yfiles.layout.Direction):void; /** @@ -85929,7 +83996,7 @@ declare namespace system{ * This method should be called by a layout algorithm at the beginning of the layout calculation to assure that the label's * placement is handled consistently. *

    - * @param {yfiles.algorithms.Graph} graph the input graph + * @param graph the input graph */ replaceAmbiguousLabelDescriptors(graph:yfiles.algorithms.Graph):void; /** @@ -85939,14 +84006,14 @@ declare namespace system{ * This method should be called by a layout algorithm at the end of the layout calculation to assure that the original * state of the graph is not corrupted. *

    - * @param {yfiles.algorithms.Graph} graph the input graph + * @param graph the input graph */ resetAmbiguousLabelDescriptors(graph:yfiles.algorithms.Graph):void; /** * Calculates and sets the up vector of an edge label considering the preferred placement of the label as well as the * direction of the edge segment the label is attached to. - * @param {yfiles.layout.LabelLayoutData} label the data that describes the label orientation and is used for setting the new up vector - * @param {yfiles.layout.Direction} segmentDirection the direction the edge segment is pointing to + * @param label the data that describes the label orientation and is used for setting the new up vector + * @param segmentDirection the direction the edge segment is pointing to * @see yfiles.layout.EdgeLabelOrientationSupport#getEdgeLabelUpVector * @static */ @@ -85960,15 +84027,14 @@ declare namespace system{ * The absolute coordinates of the {@link yfiles.layout.FixNodeLayoutStage#calculateFixPoint fix point} are the same before and after invoking the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. However, the * relative coordinates of the nodes are altered by the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. *

    - * @class yfiles.layout.FixNodeLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface FixNodeLayoutStage extends yfiles.layout.LayoutStageBase{} export class FixNodeLayoutStage { /** * Creates a new {@link yfiles.layout.FixNodeLayoutStage} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -85980,9 +84046,9 @@ declare namespace system{ * This method is called by {@link yfiles.layout.FixNodeLayoutStage#calculateFixPoint} and may be overridden to customize the size * of the bounds. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph associated with the specified nodes - * @param {yfiles.algorithms.NodeList} fixed the list of nodes for which to determine the bounding box - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the specified nodes + * @param graph the graph associated with the specified nodes + * @param fixed the list of nodes for which to determine the bounding box + * @returns the bounding box of the specified nodes * @see yfiles.layout.FixNodeLayoutStage#includingEdges * @see yfiles.layout.FixNodeLayoutStage#includingLabels * @see yfiles.layout.FixNodeLayoutStage#calculateFixPoint @@ -86000,9 +84066,9 @@ declare namespace system{ * coordinates before and after invoking the * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It may be overridden to introduce a custom policy for retrieving the fix point. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph associated with the specified nodes - * @param {yfiles.algorithms.NodeList} fixed the list of nodes for which a fix point has to be determined - * @returns {yfiles.algorithms.YPoint} the fix point for the specified nodes in the specified graph + * @param graph the graph associated with the specified nodes + * @param fixed the list of nodes for which a fix point has to be determined + * @returns the fix point for the specified nodes in the specified graph * @see yfiles.layout.FixNodeLayoutStage#fixPointPolicy * @see yfiles.layout.FixNodeLayoutStage#calculateBounds * @see yfiles.layout.FixNodeLayoutStage#calculateFixPoint @@ -86019,8 +84085,8 @@ declare namespace system{ * {@link yfiles.layout.FixNodeLayoutStage#calculateFixPoint}. It may be overridden to introduce a custom policy for retrieving the * fix point. *

    - * @param {yfiles.algorithms.Rectangle2D} bounds the rectangle for which to determine the fix point - * @returns {yfiles.algorithms.YPoint} the fix point of the specified rectangle or null if nothing should be fixed + * @param bounds the rectangle for which to determine the fix point + * @returns the fix point of the specified rectangle or null if nothing should be fixed * @throws {Stubs.Exceptions.ArgumentError} if the current fix point policy is invalid * @see yfiles.layout.FixNodeLayoutStage#fixPointPolicy * @protected @@ -86066,15 +84132,14 @@ declare namespace system{ * after applying the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. Therefore, it either replaces the source/target port by the original port or * adds the original port to the edge path calculated by the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} (see method {@link yfiles.layout.FixPortLocationStage#keepCalculatedPorts}). *

    - * @class yfiles.layout.FixPortLocationStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface FixPortLocationStage extends yfiles.layout.LayoutStageBase{} export class FixPortLocationStage { /** * Creates a new {@link yfiles.layout.FixPortLocationStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -86099,22 +84164,20 @@ declare namespace system{ *

    * @see yfiles.layout.FreeEdgeLabelLayoutModelParameter#setPoint * @see yfiles.layout.FreeEdgeLabelLayoutModelParameter#angle - * @class yfiles.layout.FreeEdgeLabelLayoutModelParameter + * @class */ export interface FreeEdgeLabelLayoutModelParameter extends Object{} export class FreeEdgeLabelLayoutModelParameter { /** * Creates a new instance of {@link yfiles.layout.FreeEdgeLabelLayoutModelParameter} with the given radius, angle and rotation * angle. - * @param {number} radius the distance of the label from the source node of the underlying edge - * @param {number} theta the angle in radians between the first segment of the underlying edge and the imaginary line to the center of the label - * @param {number} [angle=0] the rotation angle of the label - * @constructor + * @param radius the distance of the label from the source node of the underlying edge + * @param theta the angle in radians between the first segment of the underlying edge and the imaginary line to the center of the label + * @param [angle=0] the rotation angle of the label */ constructor(radius:number,theta:number,angle?:number); /** * Creates a new instance of {@link yfiles.layout.FreeEdgeLabelLayoutModelParameter} with radius 50 and angle 0. - * @constructor */ constructor(); /** @@ -86124,8 +84187,8 @@ declare namespace system{ * y-coordinate corresponds to the angle between the first segment of the underlying edge and the imaginary line to the * center of the label. *

    - * @param {number} radius the distance to the source point - * @param {number} theta the location on the radius + * @param radius the distance to the source point + * @param theta the location on the radius */ setPoint(radius:number,theta:number):void; /** @@ -86147,14 +84210,13 @@ declare namespace system{ } /** * {@link yfiles.layout.FreeEdgeLabelLayoutModel} allows placing edge labels at any location. - * @class yfiles.layout.FreeEdgeLabelLayoutModel + * @class * @implements {yfiles.layout.IEdgeLabelLayoutModel} */ export interface FreeEdgeLabelLayoutModel extends Object,yfiles.layout.IEdgeLabelLayoutModel{} export class FreeEdgeLabelLayoutModel { /** * Creates a new instance of {@link yfiles.layout.FreeEdgeLabelLayoutModel}. - * @constructor */ constructor(); /** @@ -86166,32 +84228,32 @@ declare namespace system{ * This parameter can be passed to {@link yfiles.layout.FreeEdgeLabelLayoutModel#getLabelPlacement} to retrieve the current label * box. *

    - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds the oriented box of the label the parameter represents - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @returns {Object} the model parameter representing the given label location + * @param labelBounds the oriented box of the label the parameter represents + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @returns the model parameter representing the given label location * @throws {Stubs.Exceptions.ArgumentError} if one or more of the given bounds' values are invalid, i.e., NaN * @see yfiles.layout.FreeEdgeLabelLayoutModel#getLabelPlacement */ createModelParameter(labelBounds:yfiles.algorithms.YOrientedRectangle,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout):Object; /** * Returns the {@link yfiles.layout.EdgeLabelCandidate} that describes the current label position. - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the label for which candidates should be generated - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.layout.EdgeLabelCandidate} instances + * @param labelLayout the label for which candidates should be generated + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @returns a list of {@link } instances */ getLabelCandidates(labelLayout:yfiles.layout.IEdgeLabelLayout,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * - * @param {yfiles.algorithms.YDimension} labelSize - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @param {Object} param - * @returns {yfiles.algorithms.YOrientedRectangle} + * @param labelSize + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @param param + * @returns */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout,param:Object):yfiles.algorithms.YOrientedRectangle; /** @@ -86216,15 +84278,14 @@ declare namespace system{ * the upper-left corner of the node. *

    * @see yfiles.layout.FreeNodeLabelLayoutModelParameter#setPoint - * @class yfiles.layout.FreeNodeLabelLayoutModelParameter + * @class */ export interface FreeNodeLabelLayoutModelParameter extends Object{} export class FreeNodeLabelLayoutModelParameter { /** * Creates a new instance of {@link yfiles.layout.FreeNodeLabelLayoutModelParameter} with the given offset. - * @param {number} dx the horizontal offset - * @param {number} dy the vertical offset - * @constructor + * @param dx the horizontal offset + * @param dy the vertical offset */ constructor(dx:number,dy:number); /** @@ -86232,13 +84293,12 @@ declare namespace system{ *

    * It has no offset, i.e., the upper-left corners of both node label and node are at the same location. *

    - * @constructor */ constructor(); /** * Specifies the offset of the label's center to the upper-left corner of the node. - * @param {number} dx the horizontal offset - * @param {number} dy the vertical offset + * @param dx the horizontal offset + * @param dy the vertical offset */ setPoint(dx:number,dy:number):void; /** @@ -86254,14 +84314,13 @@ declare namespace system{ * The location of the label does not need to satisfy any constraints. The {@link yfiles.layout.FreeNodeLabelLayoutModel#createModelParameter model parameter} describes a fixed offset between * the upper-left corner of the node and the center of the label. *

    - * @class yfiles.layout.FreeNodeLabelLayoutModel + * @class * @implements {yfiles.layout.INodeLabelLayoutModel} */ export interface FreeNodeLabelLayoutModel extends Object,yfiles.layout.INodeLabelLayoutModel{} export class FreeNodeLabelLayoutModel { /** * Returns a new instance of {@link yfiles.layout.FreeNodeLabelLayoutModel}. - * @constructor */ constructor(); /** @@ -86273,26 +84332,26 @@ declare namespace system{ * This parameter can be passed to {@link yfiles.layout.FreeNodeLabelLayoutModel#getLabelPlacement} to retrieve the current label * box. *

    - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds the bounds of the label the parameter represents - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @returns {Object} the model parameter + * @param labelBounds the bounds of the label the parameter represents + * @param nodeLayout the layout of the node to which the label belongs + * @returns the model parameter * @throws {Stubs.Exceptions.ArgumentError} if one or more of the given bounds' values are invalid, i.e., NaN * @see yfiles.layout.FreeNodeLabelLayoutModel#getLabelPlacement */ createModelParameter(labelBounds:yfiles.algorithms.YOrientedRectangle,nodeLayout:yfiles.layout.INodeLayout):Object; /** * Returns the {@link yfiles.layout.NodeLabelCandidate} that describes the current label position. - * @param {yfiles.layout.INodeLabelLayout} labelLayout the label for which candidates should be generated - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.layout.NodeLabelCandidate} instances + * @param labelLayout the label for which candidates should be generated + * @param nodeLayout the layout of the node to which the label belongs + * @returns a list of {@link } instances */ getLabelCandidates(labelLayout:yfiles.layout.INodeLabelLayout,nodeLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * - * @param {yfiles.algorithms.YDimension} labelSize - * @param {yfiles.layout.INodeLayout} nodeLayout - * @param {Object} param - * @returns {yfiles.algorithms.YOrientedRectangle} + * @param labelSize + * @param nodeLayout + * @param param + * @returns */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,nodeLayout:yfiles.layout.INodeLayout,param:Object):yfiles.algorithms.YOrientedRectangle; /** @@ -87187,14 +85246,13 @@ declare namespace system{ * The {@link yfiles.layout.GraphLayoutLineWrapper} can be used on an existing graph layout or on the result of the * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. *

    - * @class yfiles.layout.GraphLayoutLineWrapper + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface GraphLayoutLineWrapper extends yfiles.layout.LayoutStageBase{} export class GraphLayoutLineWrapper { /** * Creates a new {@link yfiles.layout.GraphLayoutLineWrapper} instance with default settings. - * @constructor */ constructor(); /** @@ -87274,6 +85332,1411 @@ declare namespace system{ fixedWidth:number; static $class:yfiles.lang.Class; } + /** + * This class represents a column of a {@link yfiles.layout.PartitionGrid partition grid} structure. + *

    + * The results of the calculation of the geometry of the column will be placed into the instances of this class after the + * layout. + *

    + * @see yfiles.layout.PartitionGrid + * @class + * @implements {yfiles.lang.IComparable} + */ + export interface ColumnDescriptor extends Object,yfiles.lang.IComparable{} + export class ColumnDescriptor { + /** + * Compares this {@link yfiles.layout.ColumnDescriptor} instance with a given other {@link yfiles.layout.ColumnDescriptor} instance based + * on the indices of the two instances. + * @param o the {@link } to compare to + * @returns -1, 0 or 1 if this {@link } is less than, equal to, or greater than the given other + * {@link } + */ + compareTo(o:Object):number; + /** + * Gets the index of the column within the {@link yfiles.layout.PartitionGrid partition grid}. + * @type {number} + */ + index:number; + /** + * Gets or sets the minimum width of the column. + *

    + * The minimum width is defined to be at least 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the minimum width is negative + * @type {number} + */ + minimumWidth:number; + /** + * Gets or sets the left column inset in which no element will lie in the resulting layout. + *

    + * The column inset must be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the left inset is negative + * @type {number} + */ + leftInset:number; + /** + * Gets or sets the right column inset in which no element will lie in the resulting layout. + *

    + * The column inset must be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the right inset is negative + * @type {number} + */ + rightInset:number; + /** + * Gets or sets the computed width of the column after the layout has been calculated. + *

    + * The computed width needs to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the computed width is negative + * @type {number} + */ + computedWidth:number; + /** + * Gets or sets the original width of the column. + *

    + * The original width should be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the original width is negative + * @type {number} + */ + originalWidth:number; + /** + * Gets or sets the original position (smallest x-coordinate) of the column. + * @type {number} + */ + originalPosition:number; + /** + * Gets or sets the computed position (smallest x-coordinate) of the column after the layout has been calculated. + * @type {number} + */ + computedPosition:number; + /** + * Gets or sets the tightness factor of this column. + *

    + * This value must lie within the interval [0,1]. + *

    + *

    + * The larger the value, the more the column will be forced to obtain its minimum width: + *

    + *
      + *
    • a value of 0.0d will disable the compression of the column.
    • + *
    • a value of 1.0d will try to force the column to obtain its specified {@link yfiles.layout.ColumnDescriptor#minimumWidth minimum width}.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if the tightness value is outside the interval [0,1] + * @type {number} + */ + tightness:number; + /** + * Gets or sets whether the index of the column is fixed or it should be chosen automatically in order to minimize edge + * lengths. + *

    + * For all columns where this property is enabled, the relative ordering given by the indices is preserved. The remaining + * columns may be sorted again so that the overall edge lengths are minimized. + *

    + * @type {boolean} + */ + indexFixed:boolean; + static $class:yfiles.lang.Class; + } + /** + * This class represents a single partition cell, i.e., a pair consisting of a row and a column. + * @class + * @implements {yfiles.lang.IComparable} + * @final + */ + export interface PartitionCellIdEntry extends Object,yfiles.lang.IComparable{} + export class PartitionCellIdEntry { + /** + * Compares this {@link yfiles.layout.PartitionCellIdEntry} instance with a given other {@link yfiles.layout.PartitionCellIdEntry} + * instance. + *

    + * The comparison is based on the indices of the {@link yfiles.layout.PartitionCellIdEntry#row rows} and {@link yfiles.layout.PartitionCellIdEntry#column columns} of the two pairs. A {@link yfiles.layout.PartitionCellIdEntry} is + * considered to be smaller than another pair if its {@link yfiles.layout.RowDescriptor#index row index} is smaller than the row index of the other pair. If the row + * indices are equal, the {@link yfiles.layout.PartitionCellIdEntry} with the smaller {@link yfiles.layout.ColumnDescriptor#index column index} is said to be smaller. Hence, + * two {@link yfiles.layout.PartitionCellIdEntry} instances are equal, if the row and column indices are equal. + *

    + * @param o the {@link } to be compared + * @returns -1, 0 or 1 if this {@link } is smaller than, equal to, or greater than the given other {@link } + * instance + */ + compareTo(o:Object):number; + /** + * Gets the {@link yfiles.layout.RowDescriptor} associated with this {@link yfiles.layout.PartitionCellId partition cell}. + * @type {yfiles.layout.RowDescriptor} + */ + row:yfiles.layout.RowDescriptor; + /** + * Gets the {@link yfiles.layout.ColumnDescriptor} associated with this {@link yfiles.layout.PartitionCellId partition cell}. + * @type {yfiles.layout.ColumnDescriptor} + */ + column:yfiles.layout.ColumnDescriptor; + static $class:yfiles.lang.Class; + } + /** + * {@link yfiles.layout.PartitionCellId} represents an identifier for partition cells of a {@link yfiles.layout.PartitionGrid partition grid} structure. + * @see yfiles.layout.PartitionGrid + * @class + */ + export interface PartitionCellId extends Object{} + export class PartitionCellId { + /** + * Gets a {@link yfiles.collections.ICollection. collection} of elements of type {@link yfiles.layout.PartitionCellIdEntry}. + *

    + * Each pair consists of a {@link yfiles.layout.ColumnDescriptor column} and a {@link yfiles.layout.RowDescriptor row} defining a single {@link yfiles.layout.PartitionCellId partition cell}. + *

    + * @type {yfiles.collections.IEnumerable.} + */ + cells:yfiles.collections.IEnumerable; + /** + * Gets whether or not this {@link yfiles.layout.PartitionCellId} represents a multi-cell, i.e., a cell spanning multiple + * rows/columns. + *

    + * This means that it was created using {@link yfiles.layout.PartitionGrid#createCellSpanId}, + * {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createColumnSpanId} + * or {@link yfiles.layout.PartitionGrid#createRowSpanId}. + *

    + * @type {boolean} + */ + isSpanning:boolean; + /** + * Gets the first {@link yfiles.layout.RowDescriptor row} associated with this {@link yfiles.layout.PartitionCellId partition cell} identifier. + * @type {yfiles.layout.RowDescriptor} + */ + row:yfiles.layout.RowDescriptor; + /** + * Gets the first {@link yfiles.layout.ColumnDescriptor column} associated with this {@link yfiles.layout.PartitionCellId partition cell} identifier. + * @type {yfiles.layout.ColumnDescriptor} + */ + column:yfiles.layout.ColumnDescriptor; + static $class:yfiles.lang.Class; + } + /** + * This class represents a partition grid that partitions the drawing area into rectangular partition cells. + *

    + * Such a structure allows, for example, to model vertical/horizontal swimlanes which are often used in flow diagrams to + * separate logical units. + *

    + *

    + * The grid consists of rows and columns that are created using the corresponding constructors of this class or methods {@link yfiles.layout.PartitionGrid#addRow} + * and {@link yfiles.layout.PartitionGrid#addColumn}. The {@link yfiles.layout.PartitionGrid} object has to be registered with the graph + * using the {@link yfiles.algorithms.IDataProvider} key {@link yfiles.layout.PartitionGrid#PARTITION_GRID_DP_KEY}. + *

    + *

    + * Each node can be assigned to a {@link yfiles.layout.PartitionCellId} which represents a set of partition cells. The mapping has + * to be registered with the graph using {@link yfiles.algorithms.IDataProvider} key + * {@link yfiles.layout.PartitionGrid#PARTITION_CELL_ID_DP_KEY}. Simple partition cell identifiers which represent a single + * partition cell, i.e., a row/column pair, can be created using method {@link yfiles.layout.PartitionGrid#createCellId} or + * {@link yfiles.layout.PartitionGrid#createCellId}. + *

    + *

    + * Nodes can also be mapped to a partition cell identifier that represents a multi-cell, i.e., a cell spanning multiple + * columns and rows. Please note, however, that multi-cells are not allowed to overlap each other. This means that the user + * has to ensure that each partition cell (row/column pair) is associated with at most one partition cell identifier. The + * multi-cell identifier can be created using methods {@link yfiles.layout.PartitionGrid#createCellSpanId}, + * {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createCellSpanId}, + * {@link yfiles.layout.PartitionGrid#createColumnSpanId}, and {@link yfiles.layout.PartitionGrid#createRowSpanId}. + *

    + *

    + * {@graph {"ann":{"s":[60,30],"d":1, "lblB" : 1, "lblFont" : "16px sans-serif"},"n":[[265,290,230,142,2,[[265,313.6,230,23.6,5,"Column 0"]]],[311.5,386.5,[[336.16,410.85,10.67,18.7]]],[411.5,346.5,[[436.16,370.85,10.67,18.7]]],[505,289,299,144,2,[[505,312.6,299,23.6,5,"Column 1"]]],[631.5,366.5,[[656.16,390.85,10.67,18.7]]],[731.5,326.5,[[756.16,350.85,10.67,18.7]]],[531.5,326.5,[[556.16,350.85,10.67,18.7]]],[819,290,250,140,2,[[819,313.6,250,23.6,5,"Column 2"]]],[831.5,326.5,[[856.16,350.85,10.67,18.7]]],[265,449,230,123,2],[411.5,466.5,[[436.16,490.85,10.67,18.7]]],[411.5,526.5,[[436.16,550.85,10.67,18.7]]],[505,449,299,123,2],[819,449,250,123,2],[931.5,466.5,[[956.16,490.85,10.67,18.7]]],[505,589,299,104,2],[819,589,250,104,2],[531.5,606.5,[[552.83,630.85,17.35,18.7]]],[265,589,230,104,2],[411.5,606.5,[[432.83,630.85,17.35,18.7]]],[831.5,606.5,[[852.83,630.85,17.35,18.7]]],[105,348.2,150,23.6,2,[[105,371.8,150,23.6,5,"Row 0"]]],[105,488.2,150,23.6,2,[[105,511.8,150,23.6,5,"Row 1"]]],[105,628.2,150,23.6,2,[[105,651.8,150,23.6,5,"Row 2"]]]],"e":[[1,2,30,-10,-30,-0,[381.5,391.5,381.5,361.5]],[1,4,30,-0,-30,10,[581.5,401.5,581.5,391.5]],[2,4,30,7.5,-30,-0,[481.5,369,481.5,381.5]],[4,5,30,-0,-30,7.5,[701.5,381.5,701.5,349]],[2,6,30,-7.5,-30,-0,[481.5,354,481.5,341.5]],[6,4,30,7.5,-30,-10,[601.5,349,601.5,371.5]],[6,5,30,-7.5,-30,-7.5,[621.5,334,621.5,341.5,681.5,341.5,681.5,334]],[5,8,30,-0,-30,-0],[8,14,30,-0,-30,-7.5,[901.5,341.5,901.5,474]],[10,14,30,-0,-30,7.5,[881.5,481.5,881.5,489]],[1,17,30,10,-30,10,[381.5,411.5,381.5,661.5,481.5,661.5,481.5,631.5]],[11,17,30,-0,-30,-10,[481.5,541.5,481.5,611.5]],[19,17,30,-0,-30,-0],[17,20,30,-0,-30,-0]],"vp":[105.0,289.0,964.0,404.0]}} Sample output of a layout algorithm with a partition grid + *

    + * @class + */ + export interface PartitionGrid extends Object{} + export class PartitionGrid { + /** + * Creates an instance of {@link yfiles.layout.PartitionGrid} with the given number of rows and columns as well as with given + * insets and minimum sizes. + * @param rowCount the number of rows + * @param columnCount the number of columns + * @param rowInsets the top and bottom insets of the rows + * @param columnInsets the left and right insets of the columns + * @param minRowSize the minimum row height + * @param minColumnSize the minimum column width + */ + constructor(rowCount:number,columnCount:number,rowInsets:number,columnInsets:number,minRowSize:number,minColumnSize:number); + /** + * Creates an instance of {@link yfiles.layout.PartitionGrid} with the given number of rows and columns. + * @param rowCount the number of rows + * @param columnCount the number of columns + */ + constructor(rowCount:number,columnCount:number); + /** + * Creates a new empty instance of {@link yfiles.layout.PartitionGrid}. + */ + constructor(); + /** + * Adds a new {@link yfiles.layout.ColumnDescriptor column} to the {@link yfiles.layout.PartitionGrid} instance. + *

    + * The index of the column (as returned by {@link yfiles.layout.ColumnDescriptor#index}) is equal to the size of the list returned by {@link yfiles.layout.PartitionGrid#columns}. + *

    + * @returns a new {@link } instance + */ + addColumn():yfiles.layout.ColumnDescriptor; + /** + * Adds a new {@link yfiles.layout.RowDescriptor row} to the {@link yfiles.layout.PartitionGrid} instance. + *

    + * The index of the row (as returned by {@link yfiles.layout.RowDescriptor#index}) is equal to the size of the list returned by {@link yfiles.layout.PartitionGrid#rows}. + *

    + * @returns a new {@link } instance + */ + addRow():yfiles.layout.RowDescriptor; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents the cell defined by the given column and row index. + * @param rowIndex the row index of the row defining the cell + * @param columnIndex the column index of the column defining the cell + * @returns a {@link } instance + * @throws {Stubs.Exceptions.ArgumentError} if the given column/row index is not valid + */ + createCellId(rowIndex:number,columnIndex:number):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents the cell defined by the given {@link yfiles.layout.ColumnDescriptor column} and {@link yfiles.layout.RowDescriptor row}. + * @param rd the row defining the cell + * @param cd the column defining the cell + * @returns a {@link } instance + * @throws {Stubs.Exceptions.ArgumentError} if the given column/row is null + */ + createCellId(rd:yfiles.layout.RowDescriptor,cd:yfiles.layout.ColumnDescriptor):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. + *

    + * The partition cell identifier represents all cells defined by a row between fromRow and toRow (both including) and a + * column between fromRow and toCol (both including). + *

    + *

    + * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the + * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not + * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be + * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered + * during the layout. + *

    + * @param fromRow the topmost row defining the cell + * @param fromCol the leftmost column defining the cell + * @param toRow the bottommost row defining the cell + * @param toCol the rightmost column defining the cell + * @returns a {@link } instance + */ + createCellSpanId(fromRow:yfiles.layout.RowDescriptor,fromCol:yfiles.layout.ColumnDescriptor,toRow:yfiles.layout.RowDescriptor,toCol:yfiles.layout.ColumnDescriptor):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. + *

    + * The partition cell identifier represents all cells defined by a row with index between fromRowIndex and toRowIndex (both + * including) and a column with index between fromColIndex and toColIndex (both including). + *

    + *

    + * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the + * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not + * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be + * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered + * during the layout. + *

    + * @param fromRowIndex the row index of the topmost row defining the cell + * @param fromColIndex the column index of the leftmost column defining the cell + * @param toRowIndex the row index of the bottommost row defining the cell + * @param toColIndex the column index of the rightmost column defining the cell + * @returns a {@link } instance + */ + createCellSpanId(fromRowIndex:number,fromColIndex:number,toRowIndex:number,toColIndex:number):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. + *

    + * The partition cell identifier represents all cells spanned by the columns of columnList and rows of rowList. + *

    + *

    + * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the + * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not + * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be + * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered + * during the layout. + *

    + * @param rowList the {@link rows} defining the cell + * @param columnList the {@link columns} defining the cell + * @returns a {@link } instance + */ + createCellSpanId(rowList:yfiles.collections.ICollection,columnList:yfiles.collections.ICollection):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a cell spanning a whole column. + *

    + * A group node mapped to such a partition cell identifier represents the column, i.e., its enclosing boundary corresponds + * to that of the column. The boundary does not depend on the partition cells associated with the group's descendants. + * Hence, each non-group descendant has to be manually assigned to one of the partition cells. Furthermore, edges incident + * to such a group node are not considered during the layout. + *

    + * @param columnIndex the column index of the column defining the cell + * @returns a {@link } instance + */ + createColumnSpanId(columnIndex:number):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a cell spanning a whole row. + *

    + * A group node mapped to such a partition cell identifier represents the row, i.e., its enclosing boundary corresponds to + * that of the row. The boundary does not depend on the partition cells associated with the group's descendants. Hence, + * each non-group descendant has to be manually assigned to one of the partition cells. Furthermore, edges incident to such + * a group node are not considered during the layout. + *

    + * @param rowIndex the row index of the row defining the cell + * @returns a {@link } instance + */ + createRowSpanId(rowIndex:number):yfiles.layout.PartitionCellId; + /** + * Finalizes the orientation changes and is called at the end of the {@link yfiles.layout.OrientationLayout} stage. + *

    + * Points are transferred to their final positions through {@link yfiles.layout.OrientationLayout#completeTransform}. + *

    + * @param orientationLayouter an {@link } instance + * @see yfiles.layout.OrientationLayout + */ + finalizeOrientationChange(orientationLayouter:yfiles.layout.OrientationLayout):void; + /** + * Returns the {@link yfiles.layout.ColumnDescriptor column} with the given index. + * @param index the index of the column to be returned + * @returns the {@link column} with the given index or null if no such column exists + */ + getColumn(index:number):yfiles.layout.ColumnDescriptor; + /** + * Returns the {@link yfiles.layout.PartitionGrid} instance associated with the given graph. + * @param graph the given graph + * @returns the {@link } of the graph or null if the graph has no associated partition grid + * @static + */ + static getPartitionGrid(graph:yfiles.algorithms.Graph):yfiles.layout.PartitionGrid; + /** + * Returns the {@link yfiles.layout.RowDescriptor row} with the given index. + * @param index the index of the row to be returned + * @returns the {@link row} with the given index or null if no such row exists + */ + getRow(index:number):yfiles.layout.RowDescriptor; + static hasAtLeastTwoNonEmptyRows(graph:yfiles.algorithms.Graph):boolean; + /** + * Prepares for the orientation changes and is called at the beginning of the {@link yfiles.layout.OrientationLayout} stage. + *

    + * Original points are transferred to their temporary positions through {@link yfiles.layout.OrientationLayout#prepareTransform}. + *

    + * @param orientationLayouter an {@link } instance + * @see yfiles.layout.OrientationLayout + */ + prepareOrientationChange(orientationLayouter:yfiles.layout.OrientationLayout):void; + /** + * Data provider key for storing the partition grid structure + *

    + * If the {@link yfiles.algorithms.IDataProvider} contains a partition grid structure, this structure will be considered during + * layout (provided that the layout algorithm supports such constraints). + *

    + * @const + * @static + * @type {yfiles.algorithms.GraphDpKey.} + */ + static PARTITION_GRID_DP_KEY:yfiles.algorithms.GraphDpKey; + /** + * Data provider key for storing a set of partition cells for each node + *

    + * Each node is placed inside the columns/rows defined by the corresponding {@link yfiles.layout.PartitionCellId} identifier. + * Instances can be shared among multiple nodes, but don't have to be shared. + *

    + * @see yfiles.layout.PartitionCellId + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static PARTITION_CELL_ID_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets whether or not the order of the columns should be chosen automatically to minimize edge lengths. + *

    + * For all columns where {@link yfiles.layout.ColumnDescriptor#indexFixed} is set to + * true, the relative ordering given by the indices is preserved. The remaining columns may be sorted again so that the + * overall edge lengths are minimized. + *

    + * @type {boolean} + */ + optimizeColumnOrder:boolean; + /** + * Gets or sets whether or not the order of the rows should be chosen automatically to minimize edge lengths. + *

    + * For all rows where {@link yfiles.layout.RowDescriptor#indexFixed} is set to + * true, the relative ordering given by the indices is preserved. The remaining rows may be sorted again so that the + * overall edge lengths are minimized. + *

    + * @type {boolean} + */ + optimizeRowOrder:boolean; + /** + * Gets the list of rows of the {@link yfiles.layout.PartitionGrid partition grid}. + * @type {yfiles.algorithms.YList} + */ + rows:yfiles.algorithms.YList; + /** + * Gets the columns of the {@link yfiles.layout.PartitionGrid partition grid}. + * @type {yfiles.algorithms.YList} + */ + columns:yfiles.algorithms.YList; + static $class:yfiles.lang.Class; + } + /** + * This class represents a row of a {@link yfiles.layout.PartitionGrid partition grid} structure. + *

    + * The results of the calculation of the geometry of the row will be placed into the instances of this class after the + * layout. + *

    + * @see yfiles.layout.PartitionGrid + * @class + * @implements {yfiles.lang.IComparable} + */ + export interface RowDescriptor extends Object,yfiles.lang.IComparable{} + export class RowDescriptor { + /** + * Compares this {@link yfiles.layout.RowDescriptor} instance with a given other {@link yfiles.layout.RowDescriptor} instance based on the + * indices of the two instances. + * @param o the {@link } to compare to + * @returns -1, 0 or 1 if this {@link } is less than, equal to, or greater than the given other + * {@link } + */ + compareTo(o:Object):number; + /** + * Gets the index of the row within the {@link yfiles.layout.PartitionGrid partition grid}. + * @type {number} + */ + index:number; + /** + * Gets or sets the minimum height of the row. + *

    + * The minimum height is defined to be at least 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the minimum height is negative + * @type {number} + */ + minimumHeight:number; + /** + * Gets or sets the top inset in which no element will lie in the resulting layout. + *

    + * The inset value needs to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given top inset is negative + * @type {number} + */ + topInset:number; + /** + * Gets or sets the bottom inset in which no element will lie in the resulting layout. + *

    + * The inset value needs to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given bottom inset is negative + * @type {number} + */ + bottomInset:number; + /** + * Gets or sets the computed height of the row after the layout has been calculated. + *

    + * The computed height needs to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the computed height is negative + * @type {number} + */ + computedHeight:number; + /** + * Gets or sets the original position (smallest y-coordinate) of the row. + * @type {number} + */ + originalPosition:number; + /** + * Gets or sets the original height of the row. + *

    + * The original height needs to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the original height is negative + * @type {number} + */ + originalHeight:number; + /** + * Gets or sets the computed position (smallest y-coordinate) of the row after the layout has been calculated. + * @type {number} + */ + computedPosition:number; + /** + * Gets or sets the tightness factor of this row. + *

    + * This value must lie within the interval [0,1]. + *

    + *

    + * The larger the value, the more the row will be forced to obtain its minimum height: + *

    + *
      + *
    • a value of 0.0d will disable the compression of the row.
    • + *
    • a value of 1.0d will try to force the row to obtain its specified {@link yfiles.layout.RowDescriptor#minimumHeight minimum height}.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if the tightness value is outside the interval [0,1] + * @type {number} + */ + tightness:number; + /** + * Gets or sets whether the index of the row is fixed or it should be chosen automatically in order to minimize edge + * lengths. + *

    + * For all rows where this property is enabled, the relative ordering given by the indices is preserved. The remaining rows + * may be sorted again so that the overall edge lengths are minimized. + *

    + * @type {boolean} + */ + indexFixed:boolean; + static $class:yfiles.lang.Class; + } + export enum InterEdgeRoutingStyle{ + /** + * An inter-edge routing style based on which the edge layout of inter-edges will be adopted from the + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle + */ + ADOPT, + /** + * An inter-edge routing style based on which inter-edges are routed in an orthogonal style. + * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle + * @see yfiles.layout.FixGroupLayoutStage#interEdgeRouter + */ + ORTHOGONAL, + /** + * An inter-edge routing style based on which inter-edges are routed as straight lines. + * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle + * @see yfiles.layout.FixGroupLayoutStage#interEdgeRouter + */ + STRAIGHTLINE + } + /** + * This interface defines {@link yfiles.algorithms.IDataProvider} keys for those layout algorithms that can handle hierarchically + * grouped graphs. + *

    + * There are two groups of {@link yfiles.algorithms.IDataProvider} keys. {@link yfiles.algorithms.IDataProvider}s registered with + * {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY}, {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY} and {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY} + * define the relationship of nodes within the hierarchy. A parent node is defined for each node in the graph. This parent + * is the containing group node. For top-level nodes, this parent is null. + *

    + *

    + * {@link yfiles.layout.GroupingKeys#GROUP_NODE_INSETS_DP_KEY} and {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY} are used for + * registering + * {@link yfiles.algorithms.IDataProvider}s that add layout information to group nodes such as the insets and the minimum size + * respectively. + *

    + * @see yfiles.layout.GroupingSupport + * @class + * @static + */ + export interface GroupingKeys extends Object{} + export class GroupingKeys { + /** + * Data provider key for assigning a unique ID for each node + *

    + * The IDs of the nodes need to differ based on {@link Object#hashCode} and {@link Object#equals}. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static NODE_ID_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for describing the hierarchy of nodes in the graph + * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static PARENT_NODE_ID_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for distinguishing normal nodes from group nodes + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static GROUP_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for assigning insets for group nodes + *

    + * Insets reserve space around the contents of a group node. Labels and other visual decorations may be placed inside this + * space. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static GROUP_NODE_INSETS_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for assigning minimum sizes for group nodes + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static MINIMUM_NODE_SIZE_DP_KEY:yfiles.algorithms.NodeDpKey; + static $class:yfiles.lang.Class; + } + /** + * This class provides convenient and efficient access to the hierarchic graph structure. + *

    + * The grouping information is provided through {@link yfiles.algorithms.IDataProvider}s registered with the graph with keys + * {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY}, {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY} and + * {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY}. It describes the hierarchy as a tree where a group node is the parent of the + * nodes that it contains. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[444,-37.38,62,82.38,2,[[444,-15,62,22.38,"9"]]],[460,0,[[469.66,24.35,10.67,18.7,"5"]]],[536,0,[[545.66,24.35,10.67,18.7,"6"]]],[384,0,[[393.66,24.35,10.67,18.7,"4"]]],[596,-10,50,50,2,[[596,12.38,50,22.38,"7"]]],[140,-74.75,214,134.75,2,[[140,-52.38,214,22.38,"10"]]],[156,0,[[165.66,24.35,10.67,18.7,"1"]]],[216,-37.38,122,82.38,2,[[216,-15,122,22.38,"8"]]],[232,0,[[241.66,24.35,10.67,18.7,"2"]]],[292,0,[[301.66,24.35,10.67,18.7,"3"]]]],"e":[],"vp":[140.0,-75.0,506.0,135.0]}} This is an example graph that contains group nodes. {@graph {"ann":{"s":[30,30],"d":1},"n":[[34.5,70,42,52.38,2,[[34.5,92.38,42,22.38,"10"]]],[200,162.38,42,52.38,2,[[200,184.75,42,22.38,"9"]]],[150,277.13,[[159.66,301.48,10.67,18.7,"4"]]],[179.25,0,[[160.9,22.7,66.7,18.7,"Virtual Root"]]],[0,277.13,[[9.66,301.48,10.67,18.7,"1"]]],[206,277.13,[[215.66,301.48,10.67,18.7,"5"]]],[69,162.38,42,52.38,2,[[69,184.75,42,22.38,"8"]]],[50,277.13,[[59.66,301.48,10.67,18.7,"2"]]],[100,277.13,[[109.66,301.48,10.67,18.7,"3"]]],[312,254.75,42,52.38,2,[[312,277.13,42,22.38,"7"]]],[262,277.13,[[271.66,301.48,10.67,18.7,"6"]]]],"e":[[3,0,[194.25,50,55.5,50]],[3,2,[194.25,50,165,50]],[3,1,[194.25,50,221,50]],[0,4,[55.5,142.38,15,142.38]],[1,5],[0,6,[55.5,142.38,90,142.38]],[6,7,[90,234.75,65,234.75]],[6,8,[90,234.75,115,234.75]],[3,9,[194.25,50,333,50]],[3,10,[194.25,50,277,50]]],"vp":[0.0,0.0,354.0,308.0]}} The hierarchy tree of the grouped graph reveals the relationship + * among the nodes. The corresponding nodes have the same labels as in the grouped graph. Group nodes are considered as the + * parents of their content which can consist of group nodes and/or normal nodes. Top-level nodes are children of a + * {@link yfiles.layout.GroupingSupport#root virtual root}. Leaf nodes can either be normal nodes or empty groups. + *

    + * @class + */ + export interface GroupingSupport extends Object{} + export class GroupingSupport { + /** + * Creates a new {@link yfiles.layout.GroupingSupport} instance that represents the hierarchy of the graph. + *

    + * The hierarchy information is cached during the constructor call. Later modifications to the graph are not considered and + * may lead to errors when using this {@link yfiles.layout.GroupingSupport} instance. + *

    + * @param graph the graph instance from which the hierarchy information is obtained + */ + constructor(graph:yfiles.algorithms.Graph); + /** + * Creates a {@link yfiles.algorithms.INodeMap} to store hierarchy information for each node. + *

    + * This method is called in {@link yfiles.layout.GroupingSupport#init} and may be overridden to customize how the {@link yfiles.algorithms.INodeMap} + * is created. + *

    + * @param graph the current graph + * @returns the new instance of {@link } + * @see yfiles.layout.GroupingSupport#init + * @see yfiles.layout.GroupingSupport#disposeInfoMap + * @protected + */ + createInfoMap(graph:yfiles.algorithms.Graph):yfiles.algorithms.INodeMap; + /** + * Disposes of all internal data structures held by this {@link yfiles.layout.GroupingSupport instance}. + *

    + * {@link yfiles.layout.GroupingSupport} should be disposed of when it is not needed anymore, or if the state of the graph changes + * (e.g. new nodes are added). + *

    + */ + dispose():void; + /** + * Disposes of the {@link yfiles.algorithms.INodeMap} created to store hierarchy information for each node. + *

    + * This method is called in {@link yfiles.layout.GroupingSupport#dispose} and may be overridden to revert changes from + * {@link yfiles.layout.GroupingSupport#createInfoMap}. + *

    + * @param graph the current graph + * @param infoMap the {@link } which contains the hierarchy information for each node + * @see yfiles.layout.GroupingSupport#dispose + * @see yfiles.layout.GroupingSupport#createInfoMap + * @protected + */ + disposeInfoMap(graph:yfiles.algorithms.Graph,infoMap:yfiles.algorithms.INodeMap):void; + /** + * Returns the direct children of the given group node. + *

    + * If the {@link yfiles.layout.GroupingSupport#root virtual root of the hierarchy tree} is passed, all top-level nodes are returned. + *

    + * @param parent the group node + * @returns a set of child nodes of the given parent node + * @see yfiles.layout.GroupingSupport#root + * @see yfiles.layout.GroupingSupport#getParent + * @see yfiles.layout.GroupingSupport#getDescendants + */ + getChildren(parent:yfiles.algorithms.Node):yfiles.algorithms.NodeList; + /** + * Returns all descendants of the given group node. + *

    + * All nodes in the subtree rooted at this group node are collected recursively. + *

    + *

    + * If the {@link yfiles.layout.GroupingSupport#root virtual root of the hierarchy tree} is passed, all nodes in the graph are returned. + *

    + * @param parent the group node + * @returns a set of nodes that belong to a subtree of the hierarchy tree rooted at the given parent + * @see yfiles.layout.GroupingSupport#root + * @see yfiles.layout.GroupingSupport#getParent + * @see yfiles.layout.GroupingSupport#getChildren + */ + getDescendants(parent:yfiles.algorithms.Node):yfiles.algorithms.NodeList; + /** + * Returns all edges crossing the bounds of the given group node such that their targets are inside the group node while + * their sources lie outside the group node. + * @param group the group node whose bounds are crossed + * @returns a set of edges that cross the bounds of the group node starting outside the group node + * @see yfiles.layout.GroupingSupport#getEdgesGoingOut + * @see yfiles.layout.GroupingSupport#isNormalEdge + */ + getEdgesGoingIn(group:yfiles.algorithms.Node):yfiles.algorithms.EdgeList; + /** + * Returns all edges crossing the bounds of the given group node such that their sources are inside the group node while + * their targets lie outside the group node. + * @param group the group node whose bounds are crossed + * @returns a set of edges that cross the bounds of the group node starting inside the group node + * @see yfiles.layout.GroupingSupport#getEdgesGoingIn + * @see yfiles.layout.GroupingSupport#isNormalEdge + */ + getEdgesGoingOut(group:yfiles.algorithms.Node):yfiles.algorithms.EdgeList; + /** + * Returns the nearest common ancestor of the given nodes in the hierarchy structure. + *

    + * The nearest common ancestor is the local root of the smallest subtree in the hierarchy tree that contains both nodes. + * This group is the first node that contains these two nodes. If no such node exists, the {@link yfiles.layout.GroupingSupport#root virtual root} is returned. + *

    + *

    + * Common ancestors in special cases: + *

    + *
      + *
    • node1 == node2: the parent of node1/node2
    • + *
    • node1 is parent of node2: the parent of node1
    • + *
    • node2 is parent of node1: the parent of node2
    • + *
    + * @param node1 one of the two nodes whose common ancestor is determined + * @param node2 one of the two nodes whose common ancestor is determined + * @returns the nearest common ancestor node or {@link #root} + */ + getNearestCommonAncestor(node1:yfiles.algorithms.Node,node2:yfiles.algorithms.Node):yfiles.algorithms.Node; + /** + * Returns the parent for the given node. + *

    + * The parent is the containing group node. + *

    + * @param node the node for which the parent is determined + * @returns the parent of the given node or null for a top-level node + * @throws {Stubs.Exceptions.ArgumentError} if the given node is null + * @see yfiles.layout.GroupingSupport#getChildren + * @see yfiles.layout.GroupingSupport#getDescendants + * @see yfiles.layout.GroupingSupport#getNearestCommonAncestor + */ + getParent(node:yfiles.algorithms.Node):yfiles.algorithms.Node; + /** + * Returns an immediate child of the group node that represents the given node. + *

    + * If this node is already a child of the group node, the group node will be its representative. In case the node is + * located further down in the hierarchy, the child of the group node, which is also an ancestor of the node, is used. + * There is no representative if the node is not a descendant of the group. + *

    + * @param node the node for which a representative is searched + * @param group the group node to which the representative should belong + * @returns the representative or null if the node is not a descendant of the group + * @throws {Stubs.Exceptions.ArgumentError} if the given node is null + */ + getRepresentative(node:yfiles.algorithms.Node,group:yfiles.algorithms.Node):yfiles.algorithms.Node; + /** + * Determines whether or not the given node is a group node with children. + *

    + * Normal nodes never have children. + *

    + * @param node the potential parent + * @returns true if the given node has children, false otherwise + * @see yfiles.layout.GroupingSupport#getChildren + * @see yfiles.layout.GroupingSupport#isGroupNode + */ + hasChildren(node:yfiles.algorithms.Node):boolean; + /** + * Initializes internal data structures. + *

    + * This method is called from {@link yfiles.layout.GroupingSupport} and retrieves the state of the hierarchic graph at the moment + * of invocation. It may be overridden to append additional information used for group handling. + *

    + * @see yfiles.layout.GroupingSupport#dispose + * @protected + */ + init():void; + /** + * Returns whether or not the given graph is flat. + *

    + * A graph is considered to be flat if there exist no group nodes or there exist group nodes but none of them has children. + *

    + * @param graph the input graph + * @returns true if there are no groups or only empty groups in the graph, false otherwise + * @see yfiles.layout.GroupingSupport#isGrouped + * @static + */ + static isFlat(graph:yfiles.algorithms.Graph):boolean; + /** + * Returns whether or not the given graph is grouped. + *

    + * A graph is considered to be grouped if there are {@link yfiles.algorithms.IDataProvider}s registered with the graph with keys + * {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY}, {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY} and + * {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY}. + *

    + * @param graph the input graph + * @returns true if the graph contains hierarchic information, false otherwise + * @see yfiles.layout.GroupingSupport#isFlat + * @static + */ + static isGrouped(graph:yfiles.algorithms.Graph):boolean; + /** + * Determines whether or not the given node is a group node. + *

    + * While group nodes may have children, normal nodes never have children. + *

    + * @param node the potential group node + * @returns true if the given node is a group node, false otherwise + * @see yfiles.layout.GroupingSupport#hasChildren + */ + isGroupNode(node:yfiles.algorithms.Node):boolean; + /** + * Determines whether or not the given edge is a normal edge as opposed to an edge that crosses any group node bounds. + *

    + * Source and target of a normal edge are part of the same hierarchy level and share the same parent node. + *

    + * @param edge the edge to check + * @returns true if the given edge is normal, false otherwise + * @see yfiles.layout.GroupingSupport#getEdgesGoingIn + * @see yfiles.layout.GroupingSupport#getEdgesGoingOut + */ + isNormalEdge(edge:yfiles.algorithms.Edge):boolean; + /** + * Gets the {@link yfiles.algorithms.Graph} instance for which this {@link yfiles.layout.GroupingSupport} object provides hierarchy + * information. + * @type {yfiles.algorithms.Graph} + */ + graph:yfiles.algorithms.Graph; + /** + * Gets a {@link yfiles.algorithms.Node} instance associated with the virtual root of the hierarchy tree. + *

    + * This instance can be given to the {@link yfiles.layout.GroupingSupport#getChildren} to obtain the nodes of the top level of the + * hierarchy. + *

    + * @see yfiles.layout.GroupingSupport#getChildren + * @type {yfiles.algorithms.Node} + */ + root:yfiles.algorithms.Node; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.layout.ILayoutStage layout stage} that hides the group nodes of hierarchically grouped graphs. + *

    + * This stage removes all group nodes and adjacent edges from the graph before passing it to the + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. After the core layout algorithm has arranged the graph, the hidden elements will be reinserted. + *

    + *

    + * This stage is used by layout algorithms that cannot handle grouped graphs (e.g. {@link yfiles.circular.CircularLayout}). + *

    + * @class + * @extends {yfiles.layout.LayoutStageBase} + */ + export interface HideGroupsStage extends yfiles.layout.LayoutStageBase{} + export class HideGroupsStage { + /** + * Creates an instance of {@link yfiles.layout.HideGroupsStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + * @param [coreLayouter=null] The core layout algorithm. + */ + constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); + /** + * Hides the group nodes and their incident edges of the input graph. + *

    + * Furthermore, this method removes all grouping-related {@link yfiles.algorithms.IDataProvider}s from the input graph. + *

    + * @param graph the input graph + * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY + * @see yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY + * @see yfiles.layout.GroupingKeys#GROUP_DP_KEY + * @see yfiles.layout.HideGroupsStage#unhideGroupNodes + */ + hideGroupNodes(graph:yfiles.layout.LayoutGraph):void; + /** + * Un-hides the group nodes and their incident edges of the input graph that were previously hidden using method + * {@link yfiles.layout.HideGroupsStage#hideGroupNodes}. + *

    + * Furthermore, this method restores all previously removed grouping related + * {@link yfiles.algorithms.IDataProvider}s on the input graph. + *

    + * @param graph the given graph + * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY + * @see yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY + * @see yfiles.layout.GroupingKeys#GROUP_DP_KEY + * @see yfiles.layout.HideGroupsStage#hideGroupNodes + */ + unhideGroupNodes(graph:yfiles.layout.LayoutGraph):void; + /** + * Gets or sets whether or not empty group nodes, i.e., group nodes without children, will be hidden by this stage. + * @type {boolean} + */ + hidingEmptyGroupNodes:boolean; + /** + * Gets or sets the {@link yfiles.layout.IGroupBoundsCalculator} instance for calculating the sizes of group nodes. + *

    + * For every group which is in its open state, the {@link yfiles.layout.IGroupBoundsCalculator} will be asked to calculate the + * bounds for the group's child nodes. The resulting size will be used during the ongoing layout calculation. + *

    + * @type {yfiles.layout.IGroupBoundsCalculator} + */ + groupBoundsCalculator:yfiles.layout.IGroupBoundsCalculator; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.layout.IGroupBoundsCalculator} is responsible for calculating the bounds of a group node during a layout + * process. + * @interface + */ + export interface IGroupBoundsCalculator extends Object{ + /** + * Calculates the bounds of the given group node that contains the given list of child nodes. + *

    + * This method is called during the layout process. + *

    + * @param graph the input graph + * @param groupNode the group node whose bounds will be calculated + * @param children a {@link } containing the nodes that reside inside the group node + * @returns a {@link } instance that describes the bounds of the group node + * @abstract + */ + calculateBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList):yfiles.algorithms.Rectangle2D; + } + var IGroupBoundsCalculator:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This {@link yfiles.layout.IGroupBoundsCalculator} calculates the bounds of group nodes and allows to specify custom insets for + * each group node. + *

    + * {@link yfiles.algorithms.Insets Insets} are provided by a {@link yfiles.algorithms.IDataProvider} that must have been registered with the graph using the + * specified {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} prior to the invocation of the layout algorithm. + *

    + * @class + * @implements {yfiles.layout.IGroupBoundsCalculator} + */ + export interface InsetsGroupBoundsCalculator extends Object,yfiles.layout.IGroupBoundsCalculator{} + export class InsetsGroupBoundsCalculator { + /** + * Constructs an instance of {@link yfiles.layout.InsetsGroupBoundsCalculator} using the given {@link yfiles.algorithms.IDataProvider} key + * as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey group node insets key} and the given insets as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets}. + * @param [groupNodeInsetsDPKey=null] the {@link } key to use as {@link #groupNodeInsetsDpKey insets key} + * @param [defaultInsets=null] the insets to use as {@link #defaultInsets default insets} + */ + constructor(groupNodeInsetsDPKey?:Object,defaultInsets?:yfiles.algorithms.Insets); + /** + * Constructs an instance of {@link yfiles.layout.InsetsGroupBoundsCalculator} using the given {@link yfiles.algorithms.IDataProvider} key + * as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey group node insets key} and the given insets as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets}. + * @param {Object} options The parameters to pass. + * @param [options.groupNodeInsetsDPKey=null] the {@link } key to use as {@link #groupNodeInsetsDpKey insets key} + * @param [options.defaultInsets=null] the insets to use as {@link #defaultInsets default insets} + */ + constructor(options:{groupNodeInsetsDPKey?:Object,defaultInsets?:yfiles.algorithms.Insets}); + /** + * Calculates the bounds of the given group node and enlarges the bounds by the insets associated with the group node. + *

    + * The {@link yfiles.algorithms.Insets insets} associated with the group node will be retrieved from a {@link yfiles.algorithms.IDataProvider} registered with the + * graph with the current {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key}. + *

    + * @param graph the input graph + * @param groupNode the group node whose bounds will be calculated + * @param children a {@link } containing the nodes that reside inside the group node + * @returns a {@link } instance that describes the bounds of the group node + */ + calculateBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList):yfiles.algorithms.Rectangle2D; + /** + * Enlarges the given graph bounds by the insets associated with the given group node. + *

    + * The {@link yfiles.algorithms.Insets insets} associated with the group node will be retrieved from a {@link yfiles.algorithms.IDataProvider} registered with the + * graph with the current {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key}. + *

    + *

    + * This method is called while {@link yfiles.layout.InsetsGroupBoundsCalculator#calculateBounds calculating the group bounds} to realize the support for custom insets. It may be overridden + * to change the way specific insets influence the group node bounds. + *

    + * @param graph the input graph + * @param groupNode the group node whose bounds should be enlarged + * @param children the list of nodes that the given group node contains + * @param bounds a {@link } instance representing the bounds of the given group node + * @returns a {@link } instance representing the enlarged bounds of the given group node + */ + createEnlargedBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList,bounds:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; + /** + * Gets or sets whether or not the labels of nodes contained in a group are considered while calculating the bounds of the + * group node. + * @type {boolean} + */ + considerNodeLabels:boolean; + /** + * Gets or sets whether or not the labels of edges contained in a group are considered while calculating the bounds of the + * group node. + * @type {boolean} + */ + considerEdgeLabels:boolean; + /** + * Gets or sets whether or not the calculation of the bounds of a group node considers the {@link yfiles.layout.NodeHalo NodeHalos} associated with the + * group's child nodes. + * @type {boolean} + */ + considerNodeHalos:boolean; + /** + * Gets or sets the default insets that will be used if the {@link yfiles.algorithms.IDataProvider} registered with the {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} + * does not contain a mapping for a specific node. + * @type {yfiles.algorithms.Insets} + */ + defaultInsets:yfiles.algorithms.Insets; + /** + * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used to access the insets for the group + * nodes. + *

    + * The {@link yfiles.algorithms.IDataProvider} registered with this key must provide a mapping from each group node to a {@link yfiles.algorithms.Insets} + * (or {@link yfiles.algorithms.Insets}) instance. + *

    + * @type {Object} + */ + groupNodeInsetsDpKey:Object; + static $class:yfiles.lang.Class; + } + /** + * A special {@link yfiles.layout.ComponentLayout} implementation that allows to lay out isolated subgraphs within a group as + * separate components. + *

    + * {@link yfiles.orthogonal.OrthogonalLayout OrthogonalLayout} uses this layout stage to arrange components. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":0},"n":[[-5,16,210,336.38,2],[10,110,1],[10,35,1],[85,35,1],[160,35,1],[160,110,1],[10,285],[85,285],[85,210]],"e":[[1,2,0,-15,0,15],[2,3,15,0,-15,0],[3,4,15,0,-15,0],[4,5,0,15,0,-15],[5,1,-15,0,15,0],[6,8,0,-15,-15,0,[25,225]],[8,7,0,15,0,-15],[7,6,-15,0,15,0]],"vp":[-5.0,16.0,210.0,337.0]}} Example of a hierarchically grouped graph with two components that are laid out by {@link yfiles.orthogonal.OrthogonalLayout OrthogonalLayout} as separate + * components. + *

    + * @class + * @extends {yfiles.layout.ComponentLayout} + */ + export interface IsolatedGroupComponentLayout extends yfiles.layout.ComponentLayout{} + export class IsolatedGroupComponentLayout { + /** + * Creates an instance of {@link yfiles.layout.IsolatedGroupComponentLayout} with the given layout algorithm as + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + * @param [coreLayouter=null] the core layout algorithm that will be invoked for each component of the graph + */ + constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); + /** + * Determines the nodes that belong to the same graph component. + *

    + * Unlike + * {@link yfiles.layout.ComponentLayout}, this implementation additionally identifies isolated subgraphs within a group as separate + * components. + *

    + * @param graph the input graph + * @param compNumber the {@link } that will be filled by the layout algorithm, such that it contains the zero-based index + * of the component number to which each node belongs + * @returns the number of separate components + * @protected + */ + findIsolatedGraphComponents(graph:yfiles.layout.LayoutGraph,compNumber:yfiles.algorithms.INodeMap):number; + static $class:yfiles.lang.Class; + } + /** + * This {@link yfiles.layout.IGroupBoundsCalculator} allows custom insets for group nodes and guarantees that their provided + * minimum sizes will be maintained. + *

    + * As a subclass of {@link yfiles.layout.InsetsGroupBoundsCalculator}, this class supports custom insets for each group node. + * Furthermore, it guarantees that a desired minimum size is maintained. The minimum sizes are provided by a {@link yfiles.algorithms.IDataProvider} + * registered with the graph using the specified {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum node size key}. + *

    + * @class + * @extends {yfiles.layout.InsetsGroupBoundsCalculator} + */ + export interface MinimumSizeGroupBoundsCalculator extends yfiles.layout.InsetsGroupBoundsCalculator{} + export class MinimumSizeGroupBoundsCalculator { + /** + * Creates a new instance of {@link yfiles.layout.MinimumSizeGroupBoundsCalculator} with the given key as {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum node size key}. + * @param minSizeDataProviderKey the {@link } key to use as {@link #minimumNodeSizeDpKey minimum size key} + */ + constructor(minSizeDataProviderKey:Object); + /** + * Creates a new instance of {@link yfiles.layout.MinimumSizeGroupBoundsCalculator} with default settings. + */ + constructor(); + /** + * Gets or sets how the nodes are resized horizontally if the calculated width is smaller than the preferred minimum width + * of a group node. + *

    + * The alignment is defined to be a value between 0 and 1, such that: + *

    + *
      + *
    • A value of 0 means that the nodes grow to the right while the left border remains unchanged.
    • + *
    • A value of 1 means that the nodes grow to the left while the right border remains unchanged.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if the given value does not lie within [0,1] + * @type {number} + */ + xAlignment:number; + /** + * Gets or sets how the nodes are resized vertically if the calculated height is smaller than the preferred minimum height + * of a group node. + *

    + * The alignment is defined to be a value between 0 and 1, such that: + *

    + *
      + *
    • A value of 0 means that the nodes grow downwards while the top border remains unchanged.
    • + *
    • A value of 1 means that the nodes grow upwards while the bottom border remains unchanged.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if the given value does not lie within [0,1] + * @type {number} + */ + yAlignment:number; + /** + * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used to access the minimum sizes for the + * group nodes. + *

    + * The {@link yfiles.algorithms.IDataProvider} registered with this key must provide a mapping from each group node to a {@link yfiles.algorithms.YDimension} + * object defining the minimum width and height of the group node. + *

    + * @see yfiles.layout.MinimumSizeGroupBoundsCalculator#defaultMinimumNodeSize + * @type {Object} + */ + minimumNodeSizeDpKey:Object; + /** + * Gets or sets the default minimum size (width and height) for group nodes. + *

    + * The default minimum size is used if the {@link yfiles.algorithms.IDataProvider} registered with the {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum size key} does not + * contain a mapping for a group node. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given {@link yfiles.algorithms.YDimension} is null + * @see yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey + * @type {yfiles.algorithms.YDimension} + */ + defaultMinimumNodeSize:yfiles.algorithms.YDimension; + static $class:yfiles.lang.Class; + } + /** + * This layout algorithm recursively traverses a hierarchically organized graph in a bottom-up fashion and applies a + * specified layout algorithm to the contents (direct children) of each group node. + *

    + * Layout Style The way a graph is arranged depends on the {@link yfiles.layout.ILayoutAlgorithm layout algorithms} which are applied to the different group nodes. {@link yfiles.layout.RecursiveGroupLayout} + * is able to produce different layout styles for the content of each group node. + *

    + *

    + * This layout algorithm can be either applied if a {@link yfiles.layout.ILayoutAlgorithm layout algorithm} cannot handle grouped graphs by itself or if the + * content of (some) group nodes should be arranged differently. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"styles":{"6":{"c":1}},"n":[[-17.5,755,335,340,2],[166.25,770],[247.5,840],[85,840],[172.5,910],[272.5,910],[72.5,910],[272.5,980],[222.5,910],[97.5,980],[47.5,980],[-2.5,910],[147.5,980],[122.5,1050],[172.5,1050],[197.5,980],[-2.5,980],[-2.5,1050],[929.97,593,673.03,664,2],[1028.43,230.79,493.13,238.42,2],[1451.74,249.79,54.83,54.83],[1043.43,336.11,54.83,54.83],[1376.74,346.07],[1143.26,334.82],[1223.95,267.93,37.09,37.09],[1223.95,335.02,37.09,37.09],[1223.95,402.12,37.09,37.09],[1306.05,338.57],[351.41,46.3,547.17,607.39,2],[392.91,738,464.18,374,2],[600.69,849.79,44.43,44.43],[803.73,927.82,38.37,38.37],[600.69,1024.79,44.43,44.43],[707.91,932],[707.91,1032],[507.91,757],[503.73,852.82,38.37,38.37],[407.91,857],[1329,1038,6],[1269,795,6],[1472,612,6],[1411,1025,6],[1427,744,6],[1355,779,6],[1157,888,6],[1108,838,6],[1230,723,6],[1351,946,6],[1185,810,6],[1387,847,6],[1185,956,6],[1221,1212,6],[1311,715,6],[962,988,6],[1558,700,6],[1053,639,6],[1264,993,6],[1509,1121,6],[1143,742,6],[1453,871,6],[1248,1077,6],[1430,943,6],[1093,947,6],[1173,1025,6],[1249.93,858.93,83.14,83.14,6],[406.42,266.45,6],[535.29,224.58,6],[407.4,568.81,54.23,54.23,6],[366.41,92.7,54.23,54.23,6],[464.05,443.83,6],[450.74,65.3,54.23,54.23,6],[464.05,224.58,6],[592.93,401.96,6],[714.87,571.77,41.35,41.35,6],[842.24,530.39,41.35,41.35,6],[793.59,463.42,41.35,41.35,6],[793.59,597.35,41.35,41.35,6],[614.94,334.2,6],[535.29,443.83,6],[714.87,489,41.35,41.35,6],[406.42,401.96,6],[592.93,266.45,6],[384.4,334.2,6],[595.06,86,54.23,54.23,6],[668.28,135.99,54.23,54.23,6],[720.4,207.72,54.23,54.23,6],[745.32,292.81,54.23,54.23,6]],"e":[[1,2],[1,3],[3,4],[2,5],[3,6],[5,7],[2,8],[6,9],[6,10],[3,11],[4,12],[12,13],[12,14],[4,15],[11,16],[16,17],[0,19,0,-170,0,-119.21,[150,0,1275,0]],[21,22,27.41,13.71,-15,7.5,[1108.26,377.23,1158.26,454.21,1336.05,454.21,1361.74,368.57]],[22,20,15,-0,-27.41,18.28,[1416.74,361.07,1436.74,295.48]],[21,23,27.41,-13.71,-15,-0],[23,20,15,-11.25,-27.41,-18.28,[1183.26,338.57,1208.95,252.93,1391.74,252.93,1436.74,258.93]],[23,24,15,-3.75,-18.55,-0,[1183.26,346.07,1208.95,286.48]],[24,20,18.55,-9.27,-27.41,-0],[23,25,15,3.75,-18.55,-0],[23,26,15,11.25,-18.55,-0,[1183.26,361.07,1208.95,420.66]],[25,27,18.55,-0,-15,-0],[24,27,18.55,9.27,-15,-10,[1271.05,295.75,1291.05,343.57]],[26,27,18.55,-0,-15,10,[1271.05,420.66,1291.05,363.57]],[27,22,15,-0,-15,-7.5],[29,28,0,-187,0,303.7],[31,30,0,-19.18,22.21,0,[822.91,872]],[31,32,0,19.18,0,22.21,[822.91,1097,622.91,1097]],[2,32],[32,30,0,-22.21,0,22.21],[31,33,-19.18,0,15,0],[33,32,-15,0,12.5,-22.21,[635.41,947]],[33,34,0,15,0,-15],[34,32,-15,0,22.21,0],[34,31,15,0,-12.5,19.18,[810.41,1047]],[35,30,15,0,0,-22.21,[622.91,772]],[35,36,0,15,0,-19.18],[32,36,-22.21,-12.5,0,19.18,[522.91,1034.5]],[36,30,19.18,0,-22.21,0],[36,37,-19.18,0,15,0],[32,37,-22.21,0,0,15,[422.91,1047]],[37,35,0,-15,-15,0,[422.91,772]],[42,40],[42,54],[41,57],[58,55],[60,51],[62,53],[64,38],[64,39],[64,41,[1330.6,964.06,1337.99,974.52,1346.6,984.13,1356.64,992.4]],[64,42,[1301.28,892.93,1380.34,828.69,1390.42,819.61,1400.14,810]],[64,43],[64,44],[64,45],[64,46,[1257.8,823.49,1254.58,812.63,1252.57,801.6]],[64,47],[64,48],[64,49],[64,50],[64,52,[1313.2,816.82,1315.29,805.72]],[64,56],[64,58,[1227.75,807.43,1218.48,798.12,1198.26,783.57]],[64,59,[1401.91,896.21,1413.4,895.03]],[64,60,[1249.83,992.24,1246.96,1005.02,1247.3,1018.2]],[64,61],[64,62],[64,63],[40,19],[69,67],[65,71],[66,71],[71,70],[71,69],[71,68],[72,21],[73,74],[75,74],[73,76],[74,76],[77,72],[77,71],[71,78],[78,72],[78,69],[72,79],[79,75],[79,73],[69,80],[72,80],[66,81],[81,77],[65,82],[82,81],[82,80],[82,77],[83,81],[84,81],[85,81],[86,81],[51,33]],"vp":[-18.0,0.0,1621.0,1257.0]}}Concept + *

    + *

    + * {@link yfiles.layout.RecursiveGroupLayout} uses a hierarchy tree representation of the grouped graph in which the content nodes + * are the children of their containing group node. That way, it can traverse the tree recursively while arranging only the + * direct children of each group node. The layout algorithm starts by arranging the leaves in the hierarchy tree, then + * works its way up to the root computing the layout for each group node in the tree. + *

    + *

    + * All nodes other than the direct children are temporarily hidden. The layout algorithm performs two steps for each group + * node. + *

    + *
      + *
    1. + * It arranges the direct children using either the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} or a special layout algorithm retrieved from a {@link yfiles.algorithms.IDataProvider} + * registered with + * {@link yfiles.layout.RecursiveGroupLayout#GROUP_NODE_LAYOUT_DP_KEY}. The content of group nodes among the children is already + * arranged at this time and will be ignored. These group nodes are handled like normal nodes with a size that encloses the + * content. + *
    2. + *
    3. + * Then {@link yfiles.layout.RecursiveGroupLayout} computes the final size of the group node using an implementation of + * {@link yfiles.layout.IGroupBoundsCalculator}. Customized {@link yfiles.layout.IGroupBoundsCalculator}s can be specified using + * {@link yfiles.layout.RecursiveGroupLayout#groupBoundsCalculator}. Aside from the resulting layout, this size is used in the following iteration. + *
    4. + *
    + *

    + * After a layout is applied to all group nodes, the layout algorithm computes routes for the edges whose source node is + * located at a different hierarchy level than its target node. The edge routing algorithm for these so-called inter-edges + * can be {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter customized}. + *

    + *

    + * Note that {@link yfiles.layout.RecursiveGroupLayout} can run without a + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. In this case no layout is calculated, instead the group node bounds are merely adjusted to fit + * their respective contents. + *

    + *

    + * Features There are two alternatives for applying different layout styles to the contents of group nodes: + *

    + *
      + *
    1. + * Mapping each group node to a corresponding {@link yfiles.layout.ILayoutAlgorithm layout algorithm} by registering a {@link yfiles.algorithms.IDataProvider} with key + * {@link yfiles.layout.RecursiveGroupLayout#GROUP_NODE_LAYOUT_DP_KEY}. The content of the hierarchy root is arranged with the + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + *
    2. + *
    3. Using {@link yfiles.layout.LayoutMultiplexer} as {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}.
    4. + *
    + *

    + * Since {@link yfiles.layout.RecursiveGroupLayout} delegates the actual arrangement of the graph to other layout algorithms, it + * will support the same features as the currently used layout algorithm. + *

    + *

    + * The improvement of the routing of inter-edges is based on the {@link yfiles.layout.RecursiveGroupLayout#autoAssignPortCandidates insertion} of {@link yfiles.layout.PortCandidate}s or the {@link yfiles.layout.RecursiveGroupLayout#replacePortConstraints conversion} + * of {@link yfiles.layout.PortConstraint}s into {@link yfiles.layout.PortCandidate}s. Hence, they only work well if the applied layout + * algorithm supports {@link yfiles.layout.PortCandidate}s. + *

    + *

    + * This algorithm also provides a {@link yfiles.layout.RecursiveGroupLayout#fromSketchMode From Sketch mode} that should be activated if the applied layout algorithm runs in From + * Sketch mode, too. Otherwise, the initial coordinates may not be considered correctly. + *

    + * @class + * @extends {yfiles.layout.LayoutStageBase} + */ + export interface RecursiveGroupLayout extends yfiles.layout.LayoutStageBase{} + export class RecursiveGroupLayout { + /** + * Creates a new instance of {@link yfiles.layout.RecursiveGroupLayout} with default settings using the given {@link yfiles.layout.ILayoutAlgorithm layout algorithm} and + * {@link yfiles.layout.IGroupBoundsCalculator} implementation. + * @param core the layout algorithm that is applied in each step of the recursion + * @param gbc the {@link } for calculating group sizes + */ + constructor(core:yfiles.layout.ILayoutAlgorithm,gbc:yfiles.layout.IGroupBoundsCalculator); + /** + * Creates a new instance of {@link yfiles.layout.RecursiveGroupLayout} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + * @param [core=null] The layout algorithm that is applied in each recursion step. + */ + constructor(core?:yfiles.layout.ILayoutAlgorithm); + /** + * Reroutes the given inter-edges using the current {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter edge routing algorithm}. + *

    + * This method is called after calculating the overall layout when the positions of all nodes and normal edges are fixed. + *

    + *

    + * If no {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter inter-edge router} is specified, this method {@link yfiles.layout.LayoutGraphUtilities#resetPath resets the path} of all inter-edges that don't connect to the proper + * location within the group. This may happen for inter-edges without + * {@link yfiles.layout.PortCandidate}s or if the applied layout algorithm doesn't support such constraints. + *

    + * @param graph the input graph + * @param interEdges the edges which traverse the boundary of a group node + * @see yfiles.layout.RecursiveGroupLayout#autoAssignPortCandidates + * @see yfiles.layout.RecursiveGroupLayout#replacePortConstraints + * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter + * @protected + */ + routeInterEdges(graph:yfiles.layout.LayoutGraph,interEdges:yfiles.algorithms.EdgeList):void; + /** + * Data provider key for arranging the content of each group node with an individual layout algorithm + *

    + * The specified layouter instance is applied to the content of the group node. To arrange the top level elements the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} + * is used. + *

    + * @see yfiles.layout.RecursiveGroupLayout#NULL_LAYOUT + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static GROUP_NODE_LAYOUT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for assigning source split ids to edges connecting to group nodes + *

    + * The edges will be aligned with edges that connect to the same group node and have the same split id at their source + * (preferably) or target. + *

    + * @see yfiles.layout.RecursiveGroupLayout#TARGET_SPLIT_ID_DP_KEY + * @see yfiles.hierarchic.HierarchicLayout + * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static SOURCE_SPLIT_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Data provider key for assigning target split ids to edges connecting to group nodes + *

    + * The edges will be aligned with edges that connect to the same group node and have the same split id at their source or + * target (preferably). + *

    + * @see yfiles.layout.RecursiveGroupLayout#SOURCE_SPLIT_ID_DP_KEY + * @see yfiles.hierarchic.HierarchicLayout + * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static TARGET_SPLIT_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * A constant that represents a {@link yfiles.layout.ILayoutAlgorithm} implementation that does nothing. + *

    + * This implementation can be assigned to group nodes to keep their content unchanged. The layout algorithm will still + * calculate the sizes of the group nodes. + *

    + * @const + * @static + * @type {yfiles.layout.ILayoutAlgorithm} + */ + static NULL_LAYOUT:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets whether or not to consider the initial coordinates of the graph elements. + *

    + * When using the initial coordinates, {@link yfiles.layout.RecursiveGroupLayout} sets the coordinates of the nodes to their + * initial position before the corresponding {@link yfiles.layout.ILayoutAlgorithm layout algorithm} is called. + *

    + * @type {boolean} + */ + fromSketchMode:boolean; + /** + * Gets or sets whether or not temporary {@link yfiles.layout.PortCandidate}s are inserted to improve the routing of inter-edges. + *

    + * If enabled, {@link yfiles.layout.RecursiveGroupLayout} will insert {@link yfiles.layout.PortCandidate}s for all inter-edges that cross a + * group node border. Those {@link yfiles.layout.PortCandidate}s are located at the relative position of the real source/target + * node. Inter-edges that connect to such {@link yfiles.layout.PortCandidate}s will be routed when the layout of the containing + * group node is calculated and will not be {@link yfiles.layout.RecursiveGroupLayout#routeInterEdges rerouted} later. This may produce more suitable edge routes but cannot prevent + * edges from crossing nodes. + *

    + *

    + * Without temporary or user specified {@link yfiles.layout.PortCandidate}s, inter-edges will always end at the border/center of + * the corresponding group node. Thus, they are rerouted afterwards using an {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter edge routing algorithm}. + *

    + * @see yfiles.layout.RecursiveGroupLayout#routeInterEdges + * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter + * @see yfiles.layout.PortCandidate + * @type {boolean} + */ + autoAssignPortCandidates:boolean; + /** + * Gets or sets whether or not {@link yfiles.layout.PortConstraint}s of inter-edges are temporarily replaced by + * {@link yfiles.layout.PortCandidate}s. + *

    + * If disabled, inter-edges will always end at the border/center of the corresponding group node, even if those edges have + * port constraints. Thus, they are {@link yfiles.layout.RecursiveGroupLayout#routeInterEdges rerouted} later without considering the constraint. Enabling this settings may produce + * more suitable edge routes but cannot prevent edges from crossing nodes. + *

    + *

    + * Port candidates are automatically redirected to their original location. Hence, enabling this option may produce more + * suitable edge routes if the layout algorithm applied to the content of a group node can handle port candidates. + *

    + * @see yfiles.layout.RecursiveGroupLayout#routeInterEdges + * @see yfiles.layout.PortCandidate + * @type {boolean} + */ + replacePortConstraints:boolean; + /** + * Gets or sets whether empty group nodes are handled like group nodes with content or like normal nodes. + *

    + * If they are handled like other group nodes, {@link yfiles.layout.RecursiveGroupLayout} will resize them according to their + * (non-existing) content. This results in small empty group nodes. Handled like normal nodes, empty group nodes will keep + * their initial size. + *

    + * @type {boolean} + */ + considerEmptyGroups:boolean; + /** + * Gets or sets the current edge routing algorithm for handling inter-edges. + *

    + * During layout, edges that connect from outside a group node to the content inside (inter-edges) are temporarily + * connected to the group node itself. Hence, these edges have to be routed after restoring the original graph structure + * using this edge routing algorithm. + *

    + *

    + * It is required that a suitable {@link yfiles.layout.RecursiveGroupLayout#interEdgesDpKey selection key} is specified. The same selection key must be used for setting the sphere of + * action for the edge router. + *

    + * @see yfiles.layout.RecursiveGroupLayout#interEdgesDpKey + * @type {yfiles.layout.ILayoutAlgorithm} + */ + interEdgeRouter:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the key for marking the inter-edges to be routed. + *

    + * The key should be used by the specified {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter inter-edge routing algorithm} to obtain the edges to be routed. This layouter + * automatically marks these edges and registers the {@link yfiles.algorithms.IDataProvider} using the specified key. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified key is null + * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter + * @type {Object} + */ + interEdgesDpKey:Object; + /** + * Gets or sets a {@link yfiles.layout.IGroupBoundsCalculator} which computes the sizes of all group nodes. + *

    + * This {@link yfiles.layout.IGroupBoundsCalculator} is used each time after calculating the layout for a content graph. + *

    + * @type {yfiles.layout.IGroupBoundsCalculator} + */ + groupBoundsCalculator:yfiles.layout.IGroupBoundsCalculator; + static $class:yfiles.lang.Class; + } /** * A {@link yfiles.layout.ILayoutStage} that temporarily removes all nodes and edges with NaN-coordinates. *

    @@ -87299,7 +86762,7 @@ declare namespace system{ * Since this stage only hides the invalid graph elements and doesn't apply any new coordinates, it is not defined where * those nodes and edges will be placed within the calculated layout. *

    - * @class yfiles.layout.HandleNaNCoordinatesStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface HandleNaNCoordinatesStage extends yfiles.layout.LayoutStageBase{} @@ -87362,11 +86825,11 @@ declare namespace system{ * A model parameter can be an arbitrary {@link Object}. However it must contain all information to allow restoring of the encoded * location with this {@link yfiles.layout.IEdgeLabelLayoutModel}. *

    - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds the oriented box of the label, encoding the label location for which the parameter should be created - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @returns {Object} the model parameter representing the given label location + * @param labelBounds the oriented box of the label, encoding the label location for which the parameter should be created + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @returns the model parameter representing the given label location * @see yfiles.layout.IEdgeLabelLayoutModel#getLabelPlacement * @abstract */ @@ -87377,22 +86840,22 @@ declare namespace system{ * In case the implementing {@link yfiles.layout.IEdgeLabelLayoutModel} allows every possible location, this method always returns * the current location as a {@link yfiles.layout.LabelCandidate}. *

    - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the label for which candidates should be generated - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.layout.EdgeLabelCandidate} instances + * @param labelLayout the label for which candidates should be generated + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @returns a list of {@link } instances * @abstract */ getLabelCandidates(labelLayout:yfiles.layout.IEdgeLabelLayout,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * Returns the oriented box of the label for the position encoded by the given model parameter. - * @param {yfiles.algorithms.YDimension} labelSize the width and height of the label - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @param {Object} parameter the model parameter that describes the abstract position of the label within this model - * @returns {yfiles.algorithms.YOrientedRectangle} the oriented bounds of the label + * @param labelSize the width and height of the label + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @param parameter the model parameter that describes the abstract position of the label within this model + * @returns the oriented bounds of the label * @abstract */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout,parameter:Object):yfiles.algorithms.YOrientedRectangle; @@ -87422,8 +86885,8 @@ declare namespace system{ export interface IEdgeLayout extends Object{ /** * Adds a control point to the end of the control point sequence. - * @param {number} x the absolute x-coordinate of the new control point - * @param {number} y the absolute y-coordinate of the new control point + * @param x the absolute x-coordinate of the new control point + * @param y the absolute y-coordinate of the new control point * @abstract */ addPoint(x:number,y:number):void; @@ -87441,8 +86904,8 @@ declare namespace system{ * The first control point in the sequence has index 0 and the last control point has index {@link yfiles.layout.IEdgeLayout#pointCount} * -1. *

    - * @param {number} index the position of the control point in the control point sequence - * @returns {yfiles.algorithms.YPoint} the absolute coordinates of the control point at the given index + * @param index the position of the control point in the control point sequence + * @returns the absolute coordinates of the control point at the given index * @see yfiles.layout.IEdgeLayout#setPoint * @abstract */ @@ -87452,7 +86915,7 @@ declare namespace system{ *

    * The source and target points are not included in the point count. *

    - * @returns {number} the number of control points + * @returns the number of control points * @abstract */ pointCount():number; @@ -87462,9 +86925,9 @@ declare namespace system{ * The first control point in the sequence has index 0 and the last control point has index {@link yfiles.layout.IEdgeLayout#pointCount} * -1. *

    - * @param {number} index the position of the changing control point in the sequence - * @param {number} x the new absolute x-coordinate of the control point at the given index - * @param {number} y the new absolute y-coordinate of the control point at the given index + * @param index the position of the changing control point in the sequence + * @param x the new absolute x-coordinate of the control point at the given index + * @param y the new absolute y-coordinate of the control point at the given index * @abstract */ setPoint(index:number,x:number,y:number):void; @@ -87520,12 +86983,12 @@ declare namespace system{ * Implementing classes use a point on the connecting edge segment (specified with an offset to the node's center) along * with a direction pointing to the node and calculate the intersection between this line and the node. *

    - * @param {yfiles.layout.INodeLayout} nodeLayout the layout information of the node - * @param {number} xOffset the x-coordinate of a point on the last line segment relative to the node's center - * @param {number} yOffset the y-coordinate of a point on the last line segment relative to the node's center - * @param {number} dx the x-component of the normalized direction vector indicating the direction of the segment pointing towards the node - * @param {number} dy the y-component of the normalized direction vector indicating the direction of the segment pointing towards the node - * @returns {yfiles.algorithms.YPoint} the intersection coordinates relative to the node's center or null if no such intersection was found + * @param nodeLayout the layout information of the node + * @param xOffset the x-coordinate of a point on the last line segment relative to the node's center + * @param yOffset the y-coordinate of a point on the last line segment relative to the node's center + * @param dx the x-component of the normalized direction vector indicating the direction of the segment pointing towards the node + * @param dy the y-component of the normalized direction vector indicating the direction of the segment pointing towards the node + * @returns the intersection coordinates relative to the node's center or null if no such intersection was found * @abstract */ calculateIntersectionPoint(nodeLayout:yfiles.layout.INodeLayout,xOffset:number,yOffset:number,dx:number,dy:number):yfiles.algorithms.YPoint; @@ -87537,7 +87000,7 @@ declare namespace system{ /** * Helper class that declares several keys for {@link yfiles.algorithms.IDataProvider} that provide * {@link yfiles.layout.IIntersectionCalculator}. - * @class yfiles.layout.IntersectionCalculatorKeys + * @class * @static */ export interface IntersectionCalculatorKeys extends Object{} @@ -87630,8 +87093,8 @@ declare namespace system{ * The given {@link yfiles.layout.ILabelLayout} has to be created with method {@link yfiles.layout.ILabelLayoutFactory#createLabelLayout} * or {@link yfiles.layout.ILabelLayoutFactory#createLabelLayout}. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the edge label layout that should be added to the given edge + * @param edge the edge + * @param labelLayout the edge label layout that should be added to the given edge * @throws {Stubs.Exceptions.ArgumentError} if the given label layout has already been added to the graph * @see yfiles.layout.ILabelLayoutFactory#createLabelLayout * @see yfiles.layout.ILabelLayoutFactory#createLabelLayout @@ -87644,8 +87107,8 @@ declare namespace system{ * The given label layout has to be created with method {@link yfiles.layout.ILabelLayoutFactory#createLabelLayout} or * {@link yfiles.layout.ILabelLayoutFactory#createLabelLayout}. *

    - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.layout.INodeLabelLayout} labelLayout the node label layout that should be added to the given node + * @param node the node + * @param labelLayout the node label layout that should be added to the given node * @throws {Stubs.Exceptions.ArgumentError} if the given label layout has already been added to the graph * @see yfiles.layout.ILabelLayoutFactory#createLabelLayout * @see yfiles.layout.ILabelLayoutFactory#createLabelLayout @@ -87654,22 +87117,22 @@ declare namespace system{ addLabelLayout(node:yfiles.algorithms.Node,labelLayout:yfiles.layout.INodeLabelLayout):void; /** * Creates a new {@link yfiles.layout.ILabelLayout} for the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the box specifying the size and location of the label - * @param {yfiles.layout.IEdgeLabelLayoutModel} model specifies the model of the created edge label - * @param {yfiles.layout.PreferredPlacementDescriptor} descriptor specifies the preferred placement descriptor of the created label. If this value is + * @param edge the edge + * @param orientedBox the box specifying the size and location of the label + * @param model specifies the model of the created edge label + * @param descriptor specifies the preferred placement descriptor of the created label. If this value is * null, the default descriptor is used - * @returns {yfiles.layout.IEdgeLabelLayout} a new edge label layout + * @returns a new edge label layout * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ createLabelLayout(edge:yfiles.algorithms.Edge,orientedBox:yfiles.algorithms.YOrientedRectangle,model:yfiles.layout.IEdgeLabelLayoutModel,descriptor:yfiles.layout.PreferredPlacementDescriptor):yfiles.layout.IEdgeLabelLayout; /** * Creates a new {@link yfiles.layout.ILabelLayout} for the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the box specifying the size and location of the label - * @param {yfiles.layout.INodeLabelLayoutModel} model specifies the model of the created node label - * @returns {yfiles.layout.INodeLabelLayout} a new node label layout + * @param node the node + * @param orientedBox the box specifying the size and location of the label + * @param model specifies the model of the created node label + * @returns a new node label layout * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ @@ -87680,9 +87143,9 @@ declare namespace system{ * This method should create a {@link yfiles.layout.ILabelLayout} with an {@link yfiles.layout.IEdgeLabelLayoutModel} that supports the * desired oriented label box exactly as given. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the box specifying the size and location of the label - * @returns {yfiles.layout.IEdgeLabelLayout} a new edge label layout + * @param edge the edge + * @param orientedBox the box specifying the size and location of the label + * @returns a new edge label layout * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ @@ -87693,25 +87156,25 @@ declare namespace system{ * This method should create a {@link yfiles.layout.ILabelLayout} with a {@link yfiles.layout.INodeLabelLayoutModel} that supports the * desired oriented label box exactly as given. *

    - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the box specifying the size and location of the label - * @returns {yfiles.layout.INodeLabelLayout} a new node label layout + * @param node the node + * @param orientedBox the box specifying the size and location of the label + * @returns a new node label layout * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ createLabelLayout(node:yfiles.algorithms.Node,orientedBox:yfiles.algorithms.YOrientedRectangle):yfiles.layout.INodeLabelLayout; /** * Removes the given {@link yfiles.layout.IEdgeLabelLayout} from the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the label layout that should be removed from the given edge + * @param edge the edge + * @param labelLayout the label layout that should be removed from the given edge * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ removeLabelLayout(edge:yfiles.algorithms.Edge,labelLayout:yfiles.layout.IEdgeLabelLayout):void; /** * Removes the given node label layout from the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.layout.INodeLabelLayout} labelLayout the label layout that should be removed from the given node + * @param node the node + * @param labelLayout the label layout that should be removed from the given node * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ @@ -87753,7 +87216,7 @@ declare namespace system{ *

    * The call to this routine will only succeed if the layout algorithm can handle the input graph. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @abstract */ applyLayout(graph:yfiles.layout.LayoutGraph):void; @@ -87764,7 +87227,7 @@ declare namespace system{ }; /** * Helper class that provides unique identifiers for some general purpose {@link yfiles.algorithms.IDataProvider data providers}. - * @class yfiles.layout.LayoutKeys + * @class * @static */ export interface LayoutKeys extends Object{} @@ -87903,9 +87366,9 @@ declare namespace system{ * A model parameter can be an arbitrary {@link Object}. However it must contain all information to allow restoring of the encoded * location with this {@link yfiles.layout.INodeLabelLayoutModel}. *

    - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds the box of the label, encoding the label location for which the parameter should be created - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @returns {Object} the model parameter representing the given label location + * @param labelBounds the box of the label, encoding the label location for which the parameter should be created + * @param nodeLayout the layout of the node to which the label belongs + * @returns the model parameter representing the given label location * @see yfiles.layout.INodeLabelLayoutModel#getLabelPlacement * @abstract */ @@ -87916,18 +87379,18 @@ declare namespace system{ * In case the implementing {@link yfiles.layout.INodeLabelLayoutModel} allows every possible location, this method always returns * the current location as a {@link yfiles.layout.LabelCandidate}. *

    - * @param {yfiles.layout.INodeLabelLayout} labelLayout the label for which candidates should be generated - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.layout.NodeLabelCandidate} instances + * @param labelLayout the label for which candidates should be generated + * @param nodeLayout the layout of the node to which the label belongs + * @returns a list of {@link } instances * @abstract */ getLabelCandidates(labelLayout:yfiles.layout.INodeLabelLayout,nodeLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * Returns the bounds of the label for the position encoded by the given model parameter. - * @param {yfiles.algorithms.YDimension} labelSize the width and height of the label - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @param {Object} param the model parameter that describes the abstract position of the label within this model - * @returns {yfiles.algorithms.YOrientedRectangle} the oriented box of the label + * @param labelSize the width and height of the label + * @param nodeLayout the layout of the node to which the label belongs + * @param param the model parameter that describes the abstract position of the label within this model + * @returns the oriented box of the label * @abstract */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,nodeLayout:yfiles.layout.INodeLayout,param:Object):yfiles.algorithms.YOrientedRectangle; @@ -87956,15 +87419,15 @@ declare namespace system{ export interface INodeLayout extends Object{ /** * Sets the coordinates of the upper-left corner of the node. - * @param {number} x the new x-coordinate of the node - * @param {number} y the new y-coordinate of the node + * @param x the new x-coordinate of the node + * @param y the new y-coordinate of the node * @abstract */ setLocation(x:number,y:number):void; /** * Sets the size of the node. - * @param {number} width the new width of the node - * @param {number} height the new height of the node + * @param width the new width of the node + * @param height the new height of the node * @abstract */ setSize(width:number,height:number):void; @@ -88019,9 +87482,9 @@ declare namespace system{ export interface IPartitionInterEdgeRouter extends Object{ /** * Routes inter-edges of the partitioned graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} partitionIDDP the partition ID for each node in the graph - * @param {yfiles.algorithms.IDataProvider} interEdgeDP the map that marks inter-edges + * @param graph the input graph + * @param partitionIDDP the partition ID for each node in the graph + * @param interEdgeDP the map that marks inter-edges * @abstract */ routeInterEdges(graph:yfiles.layout.LayoutGraph,partitionIDDP:yfiles.algorithms.IDataProvider,interEdgeDP:yfiles.algorithms.IDataProvider):void; @@ -88039,15 +87502,15 @@ declare namespace system{ var IPartitionInterEdgeRouter:{ /** * Routes inter-edges using {@link yfiles.router.ChannelEdgeRouter}. - * @param {yfiles.router.ChannelEdgeRouter} [router=null] The router instance to use for the edge routing. If not specified, a internal instance is used. - * @returns {yfiles.layout.IPartitionInterEdgeRouter} + * @param [router=null] The router instance to use for the edge routing. If not specified, a internal instance is used. + * @returns * @static */ createChannelInterEdgeRouter?(router?:yfiles.router.ChannelEdgeRouter):yfiles.layout.IPartitionInterEdgeRouter; /** * Routes inter-edges using {@link yfiles.router.EdgeRouter}. - * @param {yfiles.router.EdgeRouter} [router=null] The router instance to use for the edge routing. If not specified, a internal instance is used. - * @returns {yfiles.layout.IPartitionInterEdgeRouter} + * @param [router=null] The router instance to use for the edge routing. If not specified, a internal instance is used. + * @returns * @static */ createPolylineInterEdgeRouter?(router?:yfiles.router.EdgeRouter):yfiles.layout.IPartitionInterEdgeRouter; @@ -88077,8 +87540,8 @@ declare namespace system{ *

    * Profits need to have a value between 0 and 1. *

    - * @param {yfiles.layout.LabelCandidate} candidate the candidate - * @returns {number} the profit of the candidate + * @param candidate the candidate + * @returns the profit of the candidate * @abstract */ getProfit(candidate:yfiles.layout.LabelCandidate):number; @@ -88097,28 +87560,26 @@ declare namespace system{ * @see yfiles.layout.INodeLabelLayoutModel * @see yfiles.layout.IEdgeLabelLayoutModel * @see yfiles.labeling.GenericLabeling - * @class yfiles.layout.LabelCandidate + * @class * @implements {yfiles.algorithms.IPlaneObject} */ export interface LabelCandidate extends Object,yfiles.algorithms.IPlaneObject{} export class LabelCandidate { /** * Creates a new instance of {@link yfiles.layout.LabelCandidate} described by location, size, model parameter and internal flag. - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate - * @param {yfiles.algorithms.YDimension} size the size of the candidate - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.ILabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param pos the location of the upper left corner of the candidate + * @param size the size of the candidate + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.ILabelLayout,internal?:boolean); /** * Creates a new instance of {@link yfiles.layout.LabelCandidate} described by its box, model parameter and internal flag. - * @param {yfiles.algorithms.YOrientedRectangle} labelBox the box that specifies the candidate's size and position - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.ILabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param labelBox the box that specifies the candidate's size and position + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(labelBox:yfiles.algorithms.YOrientedRectangle,param:Object,owner:yfiles.layout.ILabelLayout,internal?:boolean); /** @@ -88277,14 +87738,13 @@ declare namespace system{ } /** * {@link yfiles.layout.LabelLayoutBase} is the default implementation of the {@link yfiles.layout.ILabelLayout} interface. - * @class yfiles.layout.LabelLayoutBase + * @class * @implements {yfiles.layout.ILabelLayout} */ export interface LabelLayoutBase extends Object,yfiles.layout.ILabelLayout{} export class LabelLayoutBase { /** * Creates a new {@link yfiles.layout.LabelLayoutBase} instance. - * @constructor */ constructor(); /** @@ -88326,32 +87786,30 @@ declare namespace system{ * edges of a {@link yfiles.layout.LayoutGraph}. The {@link yfiles.algorithms.IDataProvider DataProviders} must be registered with the input graph using one of the keys * defined in {@link yfiles.layout.LabelLayoutKeys}. *

    - * @class yfiles.layout.LabelLayoutData + * @class */ export interface LabelLayoutData extends Object{} export class LabelLayoutData { /** * Creates a new instance of {@link yfiles.layout.LabelLayoutData} for a label with the given width and height. - * @param {number} width the width of the label - * @param {number} height the height of the label - * @constructor + * @param width the width of the label + * @param height the height of the label */ constructor(width:number,height:number); /** * Creates a new instance of {@link yfiles.layout.LabelLayoutData} for a label with the given oriented box and preferred placement * descriptor. - * @param {yfiles.algorithms.YOrientedRectangle} bounds the box of the label - * @param {yfiles.layout.PreferredPlacementDescriptor} [preferredPlacement=null] a preferred placement descriptor + * @param bounds the box of the label + * @param [preferredPlacement=null] a preferred placement descriptor * @throws {Stubs.Exceptions.ArgumentError} if the specified descriptor is null * @see yfiles.layout.PreferredPlacementDescriptor * @see yfiles.layout.LabelLayoutData#preferredPlacementDescriptor - * @constructor */ constructor(bounds:yfiles.algorithms.YOrientedRectangle,preferredPlacement?:yfiles.layout.PreferredPlacementDescriptor); /** * Specifies the coordinates of the upper-left corner of the bounding box of the label. - * @param {number} x the new x-coordinate of the upper-left corner - * @param {number} y the new y-coordinate of the upper-left corner + * @param x the new x-coordinate of the upper-left corner + * @param y the new y-coordinate of the upper-left corner * @see yfiles.layout.LabelLayoutData#x * @see yfiles.layout.LabelLayoutData#y * @see yfiles.algorithms.YOrientedRectangle#boundingBox @@ -88359,8 +87817,8 @@ declare namespace system{ setLocation(x:number,y:number):void; /** * Specifies the width and height of the {@link yfiles.layout.LabelLayoutData#bounds oriented box} of this label. - * @param {number} width the width of the oriented box - * @param {number} height the height of the oriented box + * @param width the width of the oriented box + * @param height the height of the oriented box * @see yfiles.layout.LabelLayoutData#bounds */ setSize(width:number,height:number):void; @@ -88413,7 +87871,7 @@ declare namespace system{ * to automatically translate information provided by the standard label layout classes {@link yfiles.layout.IEdgeLabelLayout} and * {@link yfiles.layout.INodeLabelLayout} to layout data accessible through the keys defined below. *

    - * @class yfiles.layout.LabelLayoutKeys + * @class * @static */ export interface LabelLayoutKeys extends Object{} @@ -88475,14 +87933,13 @@ declare namespace system{ * by the label model. The best label layout results are achieved by choosing {@link yfiles.layout.FreeEdgeLabelLayoutModel} for * edge layouts and {@link yfiles.layout.FreeNodeLabelLayoutModel} for node layouts. *

    - * @class yfiles.layout.LabelLayoutTranslator + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface LabelLayoutTranslator extends Object,yfiles.layout.ILayoutStage{} export class LabelLayoutTranslator { /** * Creates a new {@link yfiles.layout.LabelLayoutTranslator} instance with default settings. - * @constructor */ constructor(); /** @@ -88491,7 +87948,7 @@ declare namespace system{ *

    * Afterwards, the calculated layout data will be written back to the original label layout. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -88572,71 +88029,68 @@ declare namespace system{ *

    * {@link yfiles.layout.ILayoutAlgorithm Layout algorithms} work on {@link yfiles.layout.LayoutGraph}s and arrange their nodes and edges. *

    - * @class yfiles.layout.LayoutGraph + * @class * @extends {yfiles.algorithms.Graph} */ export interface LayoutGraph extends yfiles.algorithms.Graph{} export class LayoutGraph { /** * Creates a new {@link yfiles.layout.LayoutGraph} which is a copy of the given subgraph. - * @param {yfiles.layout.LayoutGraph} graph the original graph - * @param {yfiles.algorithms.ICursor} nodeSubset the nodes that induce the subgraph - * @constructor + * @param graph the original graph + * @param nodeSubset the nodes that induce the subgraph */ constructor(graph:yfiles.layout.LayoutGraph,nodeSubset:yfiles.algorithms.ICursor); /** * Creates a new {@link yfiles.layout.LayoutGraph} which is a copy of the given subgraph. - * @param {yfiles.layout.LayoutGraph} subgraph the original subgraph - * @constructor + * @param subgraph the original subgraph */ constructor(subgraph:yfiles.layout.LayoutGraph); /** * Creates a new, empty {@link yfiles.layout.LayoutGraph} with default settings. - * @constructor */ constructor(); /** * Creates a new {@link yfiles.layout.ILabelLayoutFactory} for this {@link yfiles.layout.LayoutGraph} that can be used for copying layout * information of labels. - * @returns {yfiles.layout.ILabelLayoutFactory} the new {@link yfiles.layout.ILabelLayoutFactory} + * @returns the new {@link } * @protected * @abstract */ createLabelFactory():yfiles.layout.ILabelLayoutFactory; /** * Returns the rectangle describing the bounding box of the given node. - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.algorithms.YRectangle} the bounds of the node + * @param node the node + * @returns the bounds of the node * @see yfiles.layout.LayoutGraph#getLocation * @see yfiles.layout.LayoutGraph#getSize */ getBoundingBox(node:yfiles.algorithms.Node):yfiles.algorithms.YRectangle; /** * Returns the center coordinates of the given node. - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.algorithms.YPoint} the location of the node's center + * @param node the node + * @returns the location of the node's center * @see yfiles.layout.INodeLayout * @see yfiles.layout.LayoutGraph#setCenter */ getCenter(node:yfiles.algorithms.Node):yfiles.algorithms.YPoint; /** * Returns the x-coordinate of the given node's center. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the x-value of the node's center coordinate + * @param node the node + * @returns the x-value of the node's center coordinate * @see yfiles.layout.INodeLayout */ getCenterX(node:yfiles.algorithms.Node):number; /** * Returns the y-coordinate of the given node's center. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the y-value of the node's center coordinate + * @param node the node + * @returns the y-value of the node's center coordinate * @see yfiles.layout.INodeLayout */ getCenterY(node:yfiles.algorithms.Node):number; /** * Returns the height of the given node. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the height of the node + * @param node the node + * @returns the height of the node * @see yfiles.layout.INodeLayout#height */ getHeight(node:yfiles.algorithms.Node):number; @@ -88645,8 +88099,8 @@ declare namespace system{ *

    * The layout information consists of the location, size and orientation of the label. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {Array.} the layout information for the edge's labels + * @param edge the edge + * @returns the layout information for the edge's labels * @abstract */ getLabelLayout(edge:yfiles.algorithms.Edge):yfiles.layout.IEdgeLabelLayout[]; @@ -88655,8 +88109,8 @@ declare namespace system{ *

    * The layout information consists of the location, size and orientation of the label. *

    - * @param {yfiles.algorithms.Node} node the node - * @returns {Array.} the layout information for the node's labels + * @param node the node + * @returns the layout information for the node's labels * @abstract */ getLabelLayout(node:yfiles.algorithms.Node):yfiles.layout.INodeLabelLayout[]; @@ -88665,8 +88119,8 @@ declare namespace system{ *

    * The layout information consists of the locations of the control points and end points of the edge. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.layout.IEdgeLayout} the layout information for the edge + * @param edge the edge + * @returns the layout information for the edge * @abstract */ getLayout(edge:yfiles.algorithms.Edge):yfiles.layout.IEdgeLayout; @@ -88675,30 +88129,30 @@ declare namespace system{ *

    * The layout information consists of the location and size of the node. *

    - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.layout.INodeLayout} the layout information for the node + * @param node the node + * @returns the layout information for the node * @abstract */ getLayout(node:yfiles.algorithms.Node):yfiles.layout.INodeLayout; /** * Returns the coordinates of the given node's upper-left corner. - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.algorithms.YPoint} the location of the node's upper-left corner + * @param node the node + * @returns the location of the node's upper-left corner * @see yfiles.layout.INodeLayout#x * @see yfiles.layout.INodeLayout#y */ getLocation(node:yfiles.algorithms.Node):yfiles.algorithms.YPoint; /** * Returns the edge to which the given {@link yfiles.layout.IEdgeLabelLayout} belongs. - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the label's layout information - * @returns {yfiles.algorithms.Edge} the edge that owns the label + * @param labelLayout the label's layout information + * @returns the edge that owns the label * @abstract */ getOwnerEdge(labelLayout:yfiles.layout.IEdgeLabelLayout):yfiles.algorithms.Edge; /** * Returns the node to which the given {@link yfiles.layout.INodeLabelLayout} belongs. - * @param {yfiles.layout.INodeLabelLayout} labelLayout the label's layout information - * @returns {yfiles.algorithms.Node} the node that owns the label + * @param labelLayout the label's layout information + * @returns the node that owns the label * @abstract */ getOwnerNode(labelLayout:yfiles.layout.INodeLabelLayout):yfiles.algorithms.Node; @@ -88708,8 +88162,8 @@ declare namespace system{ * The path of an edge is the position of the source port, followed by the positions of the bends, followed by the position * of the target port. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPointPath} the path of the given edge + * @param edge the edge + * @returns the path of the given edge */ getPath(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPointPath; /** @@ -88718,36 +88172,36 @@ declare namespace system{ * The path of an edge is the position of the source port, followed by the positions of the bends, followed by the position * of the target port. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.algorithms.YPoint}s representing the path of the given edge + * @param edge the edge + * @returns a list of {@link }s representing the path of the given edge */ getPathList(edge:yfiles.algorithms.Edge):yfiles.algorithms.YList; /** * Returns the control points of an edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.algorithms.YPoint}s representing the sequence of control points of the edge + * @param edge the edge + * @returns a list of {@link }s representing the sequence of control points of the edge * @see yfiles.layout.IEdgeLayout */ getPointList(edge:yfiles.algorithms.Edge):yfiles.algorithms.YList; /** * Returns the control points of an edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPointPath} a {@link yfiles.algorithms.YPointPath} representing the sequence of control points of the edge + * @param edge the edge + * @returns a {@link } representing the sequence of control points of the edge * @see yfiles.layout.IEdgeLayout */ getPoints(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPointPath; /** * Returns the size of the given node. - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.algorithms.YDimension} the size of the node + * @param node the node + * @returns the size of the node * @see yfiles.layout.INodeLayout#width * @see yfiles.layout.INodeLayout#height */ getSize(node:yfiles.algorithms.Node):yfiles.algorithms.YDimension; /** * Returns the absolute coordinates of the source point of the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPoint} the absolute source point coordinates of the edge + * @param edge the edge + * @returns the absolute source point coordinates of the edge */ getSourcePointAbs(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; /** @@ -88755,15 +88209,15 @@ declare namespace system{ *

    * The coordinates are interpreted relative to the center of the source node. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPoint} the relative source point coordinates of the edge + * @param edge the edge + * @returns the relative source point coordinates of the edge * @see yfiles.layout.IEdgeLayout#sourcePoint */ getSourcePointRel(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; /** * Returns the absolute coordinates of the target point of the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPoint} the absolute target point coordinates of the edge + * @param edge the edge + * @returns the absolute target point coordinates of the edge */ getTargetPointAbs(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; /** @@ -88771,76 +88225,76 @@ declare namespace system{ *

    * The coordinates are interpreted relative to the center of the target node. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPoint} the relative target point coordinates of the edge + * @param edge the edge + * @returns the relative target point coordinates of the edge * @see yfiles.layout.IEdgeLayout#targetPoint */ getTargetPointRel(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; /** * Returns the width of the given node. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the width of the node + * @param node the node + * @returns the width of the node * @see yfiles.layout.INodeLayout#width */ getWidth(node:yfiles.algorithms.Node):number; /** * Returns the x-coordinate of the given node's upper-left corner. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the x-value of the node's upper-left corner + * @param node the node + * @returns the x-value of the node's upper-left corner * @see yfiles.layout.INodeLayout#x */ getX(node:yfiles.algorithms.Node):number; /** * Returns the y-coordinate of the given node's upper-left corner. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the y-value of the node's upper-left corner + * @param node the node + * @returns the y-value of the node's upper-left corner * @see yfiles.layout.INodeLayout#y */ getY(node:yfiles.algorithms.Node):number; /** * Moves the upper-left corner of a node by a given vector. - * @param {yfiles.algorithms.Node} node the node - * @param {number} dx the x-component of the vector - * @param {number} dy the y-component of the vector + * @param node the node + * @param dx the x-component of the vector + * @param dy the y-component of the vector */ moveBy(node:yfiles.algorithms.Node,dx:number,dy:number):void; /** * Specifies the center coordinates of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {number} x the new x-coordinate of the node's center - * @param {number} y the new y-coordinate of the node's center + * @param node the node + * @param x the new x-coordinate of the node's center + * @param y the new y-coordinate of the node's center * @see yfiles.layout.INodeLayout */ setCenter(node:yfiles.algorithms.Node,x:number,y:number):void; /** * Specifies the center coordinates of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.YPoint} position the new location of the node's center + * @param node the node + * @param position the new location of the node's center * @see yfiles.layout.INodeLayout * @see yfiles.layout.LayoutGraph#setCenter */ setCenter(node:yfiles.algorithms.Node,position:yfiles.algorithms.YPoint):void; /** * Specifies the two end points of the given edge in absolute coordinates. - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YPoint} source the port on the source side of the edge - * @param {yfiles.algorithms.YPoint} target the port on the target side of the edge + * @param edge the edge + * @param source the port on the source side of the edge + * @param target the port on the target side of the edge * @see yfiles.layout.LayoutGraph#setSourcePointAbs * @see yfiles.layout.LayoutGraph#setTargetPointAbs */ setEndPointsAbs(edge:yfiles.algorithms.Edge,source:yfiles.algorithms.YPoint,target:yfiles.algorithms.YPoint):void; /** * Specifies the coordinates of the upper-left corner of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {number} x the new x-coordinate of the upper-left corner - * @param {number} y the new y-coordinate of the upper-left corner + * @param node the node + * @param x the new x-coordinate of the upper-left corner + * @param y the new y-coordinate of the upper-left corner * @see yfiles.layout.INodeLayout#setLocation */ setLocation(node:yfiles.algorithms.Node,x:number,y:number):void; /** * Specifies the coordinates of the upper-left corner of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.YPoint} position the new location of the upper-left corner + * @param node the node + * @param position the new location of the upper-left corner * @see yfiles.layout.INodeLayout#setLocation * @see yfiles.layout.LayoutGraph#setLocation */ @@ -88854,8 +88308,8 @@ declare namespace system{ *

    * Both source and target port are expected to be given in absolute coordinates. *

    - * @param {yfiles.algorithms.Edge} edge an edge in the graph - * @param {yfiles.algorithms.YList} path the list of {@link yfiles.algorithms.YPoint}s representing the new path sequence of the edge + * @param edge an edge in the graph + * @param path the list of {@link }s representing the new path sequence of the edge */ setPath(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList):void; /** @@ -88867,8 +88321,8 @@ declare namespace system{ *

    * Both source and target port are expected to be given in absolute coordinates. *

    - * @param {yfiles.algorithms.Edge} edge an edge in the graph - * @param {yfiles.algorithms.YPointPath} path the new path sequence of the edge + * @param edge an edge in the graph + * @param path the new path sequence of the edge */ setPath(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YPointPath):void; /** @@ -88876,8 +88330,8 @@ declare namespace system{ *

    * The source and target points of the edge will not be modified. *

    - * @param {yfiles.algorithms.Edge} edge an edge in the graph - * @param {yfiles.algorithms.YList} points the list of {@link yfiles.algorithms.YPoint}s representing the new sequence of control points + * @param edge an edge in the graph + * @param points the list of {@link }s representing the new sequence of control points */ setPoints(edge:yfiles.algorithms.Edge,points:yfiles.algorithms.YList):void; /** @@ -88885,30 +88339,30 @@ declare namespace system{ *

    * The source and target points of the edge will not be modified. *

    - * @param {yfiles.algorithms.Edge} edge an edge in the graph - * @param {yfiles.algorithms.YPointPath} points the new sequence of control points + * @param edge an edge in the graph + * @param points the new sequence of control points */ setPoints(edge:yfiles.algorithms.Edge,points:yfiles.algorithms.YPointPath):void; /** * Specifies the width and height of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {number} width the new width of the node - * @param {number} height the new height of the node + * @param node the node + * @param width the new width of the node + * @param height the new height of the node * @see yfiles.layout.INodeLayout#setSize */ setSize(node:yfiles.algorithms.Node,width:number,height:number):void; /** * Specifies the size of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.YDimension} size the new size of the node + * @param node the node + * @param size the new size of the node * @see yfiles.layout.LayoutGraph#setSize * @see yfiles.layout.INodeLayout#setSize */ setSize(node:yfiles.algorithms.Node,size:yfiles.algorithms.YDimension):void; /** * Specifies the absolute coordinates of the source point of the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YPoint} point the new absolute source point coordinates of the edge + * @param edge the edge + * @param point the new absolute source point coordinates of the edge */ setSourcePointAbs(edge:yfiles.algorithms.Edge,point:yfiles.algorithms.YPoint):void; /** @@ -88916,15 +88370,15 @@ declare namespace system{ *

    * The coordinates are interpreted relative to the center of the source node. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YPoint} point the new relative source point coordinates of the edge + * @param edge the edge + * @param point the new relative source point coordinates of the edge * @see yfiles.layout.IEdgeLayout#sourcePoint */ setSourcePointRel(edge:yfiles.algorithms.Edge,point:yfiles.algorithms.YPoint):void; /** * Specifies the absolute coordinates of the target point of the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YPoint} point the new absolute target point coordinates of the edge + * @param edge the edge + * @param point the new absolute target point coordinates of the edge */ setTargetPointAbs(edge:yfiles.algorithms.Edge,point:yfiles.algorithms.YPoint):void; /** @@ -88932,8 +88386,8 @@ declare namespace system{ *

    * The coordinates are interpreted relative to the center of the target node. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YPoint} point the new relative target point coordinates of the edge + * @param edge the edge + * @param point the new relative target point coordinates of the edge * @see yfiles.layout.IEdgeLayout#targetPoint */ setTargetPointRel(edge:yfiles.algorithms.Edge,point:yfiles.algorithms.YPoint):void; @@ -88948,7 +88402,7 @@ declare namespace system{ * The {@link yfiles.layout.LayoutGraphUtilities} provides several helper and utility functions for {@link yfiles.layout.LayoutGraph} and * the {@link yfiles.layout.ILayoutAlgorithm layout algorithms}. * @see yfiles.layout.LayoutGraph - * @class yfiles.layout.LayoutGraphUtilities + * @class * @static */ export interface LayoutGraphUtilities extends Object{} @@ -88966,16 +88420,16 @@ declare namespace system{ * vertical or horizontal coordinate axis do not overlap. For example, after vertically distributing nodes, (n1.y + n1.height) <= n2.y * for two consecutively placed nodes n1 and n2. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the specified nodes - * @param {yfiles.algorithms.NodeList} nodes the subset of the specified graph's nodes that is arranged - * @param {yfiles.algorithms.Node} referenceNode if null, the common coordinate for aligning the specified nodes is calculated as the the vertical minimum (top-aligned), + * @param graph the graph that contains the specified nodes + * @param nodes the subset of the specified graph's nodes that is arranged + * @param referenceNode if null, the common coordinate for aligning the specified nodes is calculated as the the vertical minimum (top-aligned), * the vertical center, the vertical maximum (bottom-aligned), the horizontal minimum (left-aligned), the horizontal * center, or the horizontal maximum (right-aligned) of the bounds of the specified nodes; otherwise the appropriate * coordinate of the given reference node's bounds is used as common coordinate for aligning the specified nodes. The - * reference node is ignored when {@link yfiles.layout.NodeAlignment#DISTRIBUTED distributing} nodes. - * @param {boolean} vertical true if nodes should be aligned (or distributed) according to their y-coordinates; otherwise nodes are aligned (or + * reference node is ignored when {@link #DISTRIBUTED distributing} nodes. + * @param vertical true if nodes should be aligned (or distributed) according to their y-coordinates; otherwise nodes are aligned (or * distributed) according to their x-coordinates. - * @param {yfiles.layout.NodeAlignment} mode one of the valid alignment modes + * @param mode one of the valid alignment modes * @static */ static alignNodeLayouts(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.NodeList,referenceNode:yfiles.algorithms.Node,vertical:boolean,mode:yfiles.layout.NodeAlignment):void; @@ -88985,10 +88439,10 @@ declare namespace system{ *

    * The aspect ratio must be greater than 0. *

    - * @param {Array.} rectangles the rectangles whose coordinates will be modified - * @param {yfiles.algorithms.Rectangle2D} finalRect the exact dimension will be placed in this rectangle - * @param {number} aspectRatio the preferred aspect ratio of the grid - * @returns {yfiles.algorithms.YDimension} the dimension of the grid + * @param rectangles the rectangles whose coordinates will be modified + * @param finalRect the exact dimension will be placed in this rectangle + * @param aspectRatio the preferred aspect ratio of the grid + * @returns the dimension of the grid * @throws {Stubs.Exceptions.ArgumentError} if the given aspect ratio is less than or equal to zero * @static */ @@ -89004,15 +88458,15 @@ declare namespace system{ *

    * The preferred width and height should be greater than 0, otherwise the nodes are not arranged. *

    - * @param {Array.} rectangles the rectangles to arrange (coordinates will be assigned) - * @param {yfiles.algorithms.Rectangle2D} finalRect the exact resulting dimension will be stored in this rectangle - * @param {number} preferredWidth the preferred width of the result rectangle - * @param {number} preferredHeight the preferred height of the result rectangle - * @param {boolean} compaction true if the algorithm tries to always minimize the resulting dimension, whilst respecting the given constraints, false + * @param rectangles the rectangles to arrange (coordinates will be assigned) + * @param finalRect the exact resulting dimension will be stored in this rectangle + * @param preferredWidth the preferred width of the result rectangle + * @param preferredHeight the preferred height of the result rectangle + * @param compaction true if the algorithm tries to always minimize the resulting dimension, whilst respecting the given constraints, false * otherwise - * @param {yfiles.layout.MultiRowConstraint} constraintMode the width or height constraints to consider - * @param {yfiles.layout.RowAlignment} [alignment=yfiles.layout.RowAlignment.LEADING] the alignment inside a row - * @returns {number} the number of rows used + * @param constraintMode the width or height constraints to consider + * @param [alignment=yfiles.layout.RowAlignment.LEADING] the alignment inside a row + * @returns the number of rows used * @see yfiles.layout.LayoutGraphUtilities#arrangeRectangleMultiRows * @static */ @@ -89026,20 +88480,20 @@ declare namespace system{ *

    * The aspect ratio must be greater than 0. *

    - * @param {Array.} rectangles the rectangles whose coordinates will be modified - * @param {yfiles.algorithms.Rectangle2D} finalRect the exact dimension of the resulting rectangle - * @param {number} aspectRatio the preferred aspect ratio of the resulting rectangle - * @param {yfiles.layout.RowAlignment} [alignment=yfiles.layout.RowAlignment.LEADING] one of the valid row alignments - * @returns {number} the number of used rows + * @param rectangles the rectangles whose coordinates will be modified + * @param finalRect the exact dimension of the resulting rectangle + * @param aspectRatio the preferred aspect ratio of the resulting rectangle + * @param [alignment=yfiles.layout.RowAlignment.LEADING] one of the valid row alignments + * @returns the number of used rows * @throws {Stubs.Exceptions.ArgumentError} if the aspect ratio is 0 or less * @static */ static arrangeRectangleRows(rectangles:yfiles.algorithms.Rectangle2D[],finalRect:yfiles.algorithms.Rectangle2D,aspectRatio:number,alignment?:yfiles.layout.RowAlignment):number; /** * Applies the reversed layout of the first edge to the second edge. - * @param {yfiles.layout.LayoutGraph} graph the graph to which both edges belong - * @param {yfiles.algorithms.Edge} edge1 the edge which adopts the points - * @param {yfiles.algorithms.Edge} edge2 the template + * @param graph the graph to which both edges belong + * @param edge1 the edge which adopts the points + * @param edge2 the template * @static */ static assignReverseLayout(graph:yfiles.layout.LayoutGraph,edge1:yfiles.algorithms.Edge,edge2:yfiles.algorithms.Edge):void; @@ -89048,8 +88502,8 @@ declare namespace system{ *

    * That means, it rotates the rectangle by 180 degrees without changing the rectangle's center. *

    - * @param {yfiles.algorithms.YOrientedRectangle} rect the given rectangle - * @returns {boolean} true if the given rectangle was flipped, false otherwise + * @param rect the given rectangle + * @returns true if the given rectangle was flipped, false otherwise * @static */ static autoFlipBox(rect:yfiles.algorithms.YOrientedRectangle):boolean; @@ -89058,8 +88512,8 @@ declare namespace system{ *

    * On a clipped edge, the source and target port will be located at the border of the corresponding node. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge to clip + * @param graph the graph to which the edge belongs + * @param edge the edge to clip * @static */ static clipEdgeOnBounds(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; @@ -89068,9 +88522,9 @@ declare namespace system{ *

    * On the clipped edge, the source and target port will be located at the border of the corresponding node. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the clipped edge - * @returns {yfiles.algorithms.YPointPath} the clipped path of the edge + * @param graph the graph to which the edge belongs + * @param edge the clipped edge + * @returns the clipped path of the edge * @static */ static clipEdgePathOnBounds(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):yfiles.algorithms.YPointPath; @@ -89080,11 +88534,11 @@ declare namespace system{ * On the clipped edge, the source and target port will be located inside the node with an inset to the border of the * corresponding node. *

    - * @param {yfiles.layout.IEdgeLayout} edge the clipped edge - * @param {yfiles.layout.INodeLayout} source the source of the edge - * @param {yfiles.layout.INodeLayout} target the target of the edge - * @param {number} [inset=0.0] the inset of the node - * @returns {yfiles.algorithms.YPointPath} the clipped path of the edge + * @param edge the clipped edge + * @param source the source of the edge + * @param target the target of the edge + * @param [inset=0.0] the inset of the node + * @returns the clipped path of the edge * @static */ static clipEdgePathOnBounds(edge:yfiles.layout.IEdgeLayout,source:yfiles.layout.INodeLayout,target:yfiles.layout.INodeLayout,inset?:number):yfiles.algorithms.YPointPath; @@ -89093,17 +88547,17 @@ declare namespace system{ *

    * On a clipped edge, the source and target port will be located at the border of the corresponding node. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph + * @param graph the graph * @see yfiles.layout.LayoutGraphUtilities#clipEdgeOnBounds * @static */ static clipEdgesOnBounds(graph:yfiles.layout.LayoutGraph):void; /** * Returns the path of a given edge path clipped on the given bounding boxes of the source and target node. - * @param {yfiles.algorithms.YPointPath} path the path that will be clipped - * @param {yfiles.algorithms.YRectangle} sourceBox the box of the source node that the given path should be clipped at - * @param {yfiles.algorithms.YRectangle} targetBox the box of the target node that the given path should be clipped at - * @returns {yfiles.algorithms.YPointPath} the path clipped on the given nodes boxes + * @param path the path that will be clipped + * @param sourceBox the box of the source node that the given path should be clipped at + * @param targetBox the box of the target node that the given path should be clipped at + * @returns the path clipped on the given nodes boxes * @static */ static clipPathOnBounds(path:yfiles.algorithms.YPointPath,sourceBox:yfiles.algorithms.YRectangle,targetBox:yfiles.algorithms.YRectangle):yfiles.algorithms.YPointPath; @@ -89112,17 +88566,17 @@ declare namespace system{ *

    * The method only considers edges that are marked in the given {@link yfiles.algorithms.IDataProvider}. *

    - * @param {yfiles.layout.LayoutGraph} graph the underlying graph - * @param {yfiles.algorithms.IDataProvider} considerEdges the edges to consider - * @returns {yfiles.layout.EdgeFlow} one of the predefined flow directions + * @param graph the underlying graph + * @param considerEdges the edges to consider + * @returns one of the predefined flow directions * @static */ static determineEdgeFlowDirection(graph:yfiles.layout.LayoutGraph,considerEdges:yfiles.algorithms.IDataProvider):yfiles.layout.EdgeFlow; /** * Returns a {@link string} representation of the path of the given edge. - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {string} the {@link string} that contains all control points of the edge + * @param graph the graph to which the edge belongs + * @param edge the edge + * @returns the {@link } that contains all control points of the edge * @static */ static edgeLayoutString(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):string; @@ -89132,9 +88586,9 @@ declare namespace system{ * In this case, the bounding box is the smallest paraxial rectangle which contains the control points as well as the * absolute coordinates of the source and target point of the edge. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the edge - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the edge + * @param graph the graph that contains the edge + * @param edge the edge + * @returns the bounding box of the edge * @see yfiles.layout.LayoutGraph#getSourcePointAbs * @see yfiles.layout.LayoutGraph#getTargetPointAbs * @see yfiles.layout.LayoutGraph#getLayout @@ -89147,9 +88601,9 @@ declare namespace system{ * In this case, the bounding box is the smallest paraxial rectangle which contains the given node. It is identical to the * node's bounds. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the node - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the node + * @param graph the graph that contains the node + * @param node the node + * @returns the bounding box of the node * @see yfiles.layout.LayoutGraph#getLayout * @static */ @@ -89162,13 +88616,13 @@ declare namespace system{ * as well as the source and target points of all edges. If node or edge labels should be included, it also contains their * boxes. {@link yfiles.layout.NodeHalo}s can also extend the bounding box if desired. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the given nodes and edges - * @param {yfiles.algorithms.INodeCursor} nodes the nodes to include in the bounding box - * @param {yfiles.algorithms.IEdgeCursor} edges the edges to include in the bounding box - * @param {boolean} includeNodeLabels true if labels of nodes should be included, false otherwise - * @param {boolean} includeEdgeLabels true if labels of edges should be included, false otherwise - * @param {boolean} [includeHalos=false] true if {@link yfiles.layout.NodeHalo}s should be included, false otherwise - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the given nodes and edges + * @param graph the graph that contains the given nodes and edges + * @param nodes the nodes to include in the bounding box + * @param edges the edges to include in the bounding box + * @param includeNodeLabels true if labels of nodes should be included, false otherwise + * @param includeEdgeLabels true if labels of edges should be included, false otherwise + * @param [includeHalos=false] true if {@link }s should be included, false otherwise + * @returns the bounding box of the given nodes and edges * @static */ static getBoundingBox(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.INodeCursor,edges:yfiles.algorithms.IEdgeCursor,includeNodeLabels:boolean,includeEdgeLabels:boolean,includeHalos?:boolean):yfiles.algorithms.Rectangle2D; @@ -89179,11 +88633,11 @@ declare namespace system{ * In this case, the bounding box is the smallest paraxial rectangle which contains the given nodes and the control points * as well as the source and target points of all edges. If labels should be included, it also contains their boxes. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the given nodes and edges - * @param {yfiles.algorithms.INodeCursor} nodes the nodes to include in the bounding box - * @param {yfiles.algorithms.IEdgeCursor} edges the edges to include in the bounding box - * @param {boolean} includeLabels true if labels of nodes and edges should be included, false otherwise - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the given nodes and edges + * @param graph the graph that contains the given nodes and edges + * @param nodes the nodes to include in the bounding box + * @param edges the edges to include in the bounding box + * @param includeLabels true if labels of nodes and edges should be included, false otherwise + * @returns the bounding box of the given nodes and edges * @see yfiles.layout.LayoutGraphUtilities#getBoundingBox * @static */ @@ -89194,10 +88648,10 @@ declare namespace system{ * In this case, the bounding box is the smallest paraxial rectangle which contains the given nodes and the control points * as well as the source and target points of all edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the nodes and edges - * @param {yfiles.algorithms.INodeCursor} nodes the nodes to include in the bounding box - * @param {yfiles.algorithms.IEdgeCursor} edges the edges to include in the bounding box - * @returns {yfiles.algorithms.Rectangle2D} the bounding box containing the given nodes and edges + * @param graph the graph that contains the nodes and edges + * @param nodes the nodes to include in the bounding box + * @param edges the edges to include in the bounding box + * @returns the bounding box containing the given nodes and edges * @see yfiles.layout.LayoutGraphUtilities#getBoundingBoxOfEdges * @see yfiles.layout.LayoutGraphUtilities#getBoundingBoxOfNodes * @static @@ -89209,9 +88663,9 @@ declare namespace system{ * In this case, the bounding box is the smallest paraxial rectangle which contains the control points as well as the * absolute coordinates of the source and target points of all given edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the edges - * @param {yfiles.algorithms.IEdgeCursor} edges the edges to include in the bounding box - * @returns {yfiles.algorithms.Rectangle2D} the bounding box containing the given edges + * @param graph the graph that contains the edges + * @param edges the edges to include in the bounding box + * @returns the bounding box containing the given edges * @see yfiles.layout.LayoutGraph#getSourcePointAbs * @see yfiles.layout.LayoutGraph#getTargetPointAbs * @see yfiles.layout.LayoutGraph#getLayout @@ -89223,17 +88677,17 @@ declare namespace system{ *

    * In this case, the bounding box is the smallest paraxial rectangle which contains the given nodes. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the nodes - * @param {yfiles.algorithms.INodeCursor} nodes the nodes to include in the bounding box - * @returns {yfiles.algorithms.Rectangle2D} the bounding box containing the given nodes + * @param graph the graph that contains the nodes + * @param nodes the nodes to include in the bounding box + * @returns the bounding box containing the given nodes * @see yfiles.layout.LayoutGraph#getLayout * @static */ static getBoundingBoxOfNodes(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.INodeCursor):yfiles.algorithms.Rectangle2D; /** * Returns the {@link yfiles.layout.ILabelLayoutFactory} for the given graph. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @returns {yfiles.layout.ILabelLayoutFactory} the label factory of the graph + * @param graph the graph + * @returns the label factory of the graph * @static */ static getLabelFactory(graph:yfiles.layout.LayoutGraph):yfiles.layout.ILabelLayoutFactory; @@ -89244,13 +88698,13 @@ declare namespace system{ * The parameter describes the abstract position of the label within the specified model. The parameter must have been * generated by that model. *

    - * @param {yfiles.layout.IEdgeLabelLayoutModel} model the {@link yfiles.layout.IEdgeLabelLayoutModel} used for placing the label - * @param {yfiles.algorithms.YDimension} labelSize the size of the label that should be placed - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the edge's source node - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the edge's target node - * @param {Object} param the model parameter - * @returns {yfiles.algorithms.YPoint} the upper-left corner of the label's bounding box + * @param model the {@link } used for placing the label + * @param labelSize the size of the label that should be placed + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the edge's source node + * @param targetLayout the layout of the edge's target node + * @param param the model parameter + * @returns the upper-left corner of the label's bounding box * @see yfiles.layout.IEdgeLabelLayoutModel#getLabelPlacement * @see yfiles.algorithms.YOrientedRectangle#boundingBox * @static @@ -89263,11 +88717,11 @@ declare namespace system{ * The parameter describes the abstract position of the label within the specified model. The parameter must have been * generated by that model. *

    - * @param {yfiles.layout.INodeLabelLayoutModel} model the {@link yfiles.layout.INodeLabelLayoutModel} used for placing the label - * @param {yfiles.algorithms.YDimension} labelSize the size of the label - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @param {Object} param the model parameter - * @returns {yfiles.algorithms.YPoint} the upper-left corner of the label's bounding box + * @param model the {@link } used for placing the label + * @param labelSize the size of the label + * @param nodeLayout the layout of the node to which the label belongs + * @param param the model parameter + * @returns the upper-left corner of the label's bounding box * @see yfiles.layout.INodeLabelLayoutModel#getLabelPlacement * @see yfiles.algorithms.YOrientedRectangle#boundingBox * @static @@ -89275,17 +88729,17 @@ declare namespace system{ static getLabelPlacement(model:yfiles.layout.INodeLabelLayoutModel,labelSize:yfiles.algorithms.YDimension,nodeLayout:yfiles.layout.INodeLayout,param:Object):yfiles.algorithms.YPoint; /** * Returns the distance between the centers of the two given nodes. - * @param {yfiles.layout.LayoutGraph} graph the graph to which the nodes belong - * @param {yfiles.algorithms.Node} node1 the first node - * @param {yfiles.algorithms.Node} node2 the second node - * @returns {number} the distance between the nodes' centers + * @param graph the graph to which the nodes belong + * @param node1 the first node + * @param node2 the second node + * @returns the distance between the nodes' centers * @static */ static getNodeDistance(graph:yfiles.layout.LayoutGraph,node1:yfiles.algorithms.Node,node2:yfiles.algorithms.Node):number; /** * Returns a {@link string} representation of all node positions in the graph. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @returns {string} the {@link string} containing all node locations + * @param graph the graph + * @returns the {@link } containing all node locations * @see yfiles.layout.LayoutGraph#getLocation * @static */ @@ -89295,9 +88749,9 @@ declare namespace system{ *

    * The path starts at the source point, traverses through all control points and ends at the target point. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {number} the length of the edge's path + * @param graph the graph to which the edge belongs + * @param edge the edge + * @returns the length of the edge's path * @static */ static getPathLength(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):number; @@ -89311,11 +88765,11 @@ declare namespace system{ *

    * The nodes can be enlarged by a halo to check if the edge keeps some distance to the nodes. *

    - * @param {yfiles.layout.IEdgeLayout} edge the edge - * @param {yfiles.layout.INodeLayout} source the source of the edge - * @param {yfiles.layout.INodeLayout} target the target of the edge - * @param {number} halo the halo for the nodes - * @returns {boolean} true if the edge is outside the nodes, false otherwise + * @param edge the edge + * @param source the source of the edge + * @param target the target of the edge + * @param halo the halo for the nodes + * @returns true if the edge is outside the nodes, false otherwise * @static */ static isEdgeOutsideNodes(edge:yfiles.layout.IEdgeLayout,source:yfiles.layout.INodeLayout,target:yfiles.layout.INodeLayout,halo:number):boolean; @@ -89325,9 +88779,9 @@ declare namespace system{ * The edge is outside the nodes if its control points as well as the source and target point are not inside the nodes' * bounding boxes. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {boolean} true if the edge is outside the nodes, false otherwise + * @param graph the graph to which the edge belongs + * @param edge the edge + * @returns true if the edge is outside the nodes, false otherwise * @static */ static isEdgeOutsideNodes(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):boolean; @@ -89336,9 +88790,9 @@ declare namespace system{ *

    * The method only considers edges marked in the given {@link yfiles.algorithms.IDataProvider}. *

    - * @param {yfiles.layout.LayoutGraph} graph the underlying graph - * @param {yfiles.algorithms.IDataProvider} considerEdges the edges to consider - * @returns {boolean} true if most of the edges in the graph are routed octilinear, false otherwise + * @param graph the underlying graph + * @param considerEdges the edges to consider + * @returns true if most of the edges in the graph are routed octilinear, false otherwise * @static */ static isUsingOctilinearEdgeRoutes(graph:yfiles.layout.LayoutGraph,considerEdges:yfiles.algorithms.IDataProvider):boolean; @@ -89347,108 +88801,108 @@ declare namespace system{ *

    * The method only considers edges marked in the given {@link yfiles.algorithms.IDataProvider}. *

    - * @param {yfiles.layout.LayoutGraph} graph the underlying graph - * @param {yfiles.algorithms.IDataProvider} considerEdges the edges to consider - * @returns {boolean} true if most of the edges in the graph are routed orthogonally, false otherwise + * @param graph the underlying graph + * @param considerEdges the edges to consider + * @returns true if most of the edges in the graph are routed orthogonally, false otherwise * @static */ static isUsingOrthogonalEdgeRoutes(graph:yfiles.layout.LayoutGraph,considerEdges:yfiles.algorithms.IDataProvider):boolean; /** * Moves all control points of the given edge by the vector (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Edge} edge the edge - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph + * @param edge the edge + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveEdge(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,dx:number,dy:number):void; /** * Moves the control points of all edges accessible through the given {@link yfiles.algorithms.IEdgeCursor} by the vector (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.IEdgeCursor} edges the edges to be moved - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph + * @param edges the edges to be moved + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveEdges(graph:yfiles.layout.LayoutGraph,edges:yfiles.algorithms.IEdgeCursor,dx:number,dy:number):void; /** * Moves the given node by the vector (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Node} node the node - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph + * @param node the node + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveNode(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,dx:number,dy:number):void; /** * Moves all nodes accessible through the given {@link yfiles.algorithms.INodeCursor} by the vector (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.INodeCursor} nodes the nodes to be moved - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph + * @param nodes the nodes to be moved + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveNodes(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.INodeCursor,dx:number,dy:number):void; /** * Moves the subgraph induced by the nodes accessible through the given {@link yfiles.algorithms.INodeCursor} by the vector * (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the subgraph - * @param {yfiles.algorithms.INodeCursor} nodes the nodes that induce the subgraph - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph that contains the subgraph + * @param nodes the nodes that induce the subgraph + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveSubgraph(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.INodeCursor,dx:number,dy:number):void; /** * Moves the subgraph induced by the edges accessible through the given {@link yfiles.algorithms.IEdgeCursor} by the vector * (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the subgraph - * @param {yfiles.algorithms.IEdgeCursor} edges the edges that induce the subgraph - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph that contains the subgraph + * @param edges the edges that induce the subgraph + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveSubgraphOfEdges(graph:yfiles.layout.LayoutGraph,edges:yfiles.algorithms.IEdgeCursor,dx:number,dy:number):void; /** * Checks whether or not the path of the given edge intersects the interior of a given rectangular area. - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.Rectangle2D} rect the rectangular area to check for intersection - * @returns {boolean} true if the edge path intersects with the given rectangle, false otherwise + * @param graph the graph to which the edge belongs + * @param edge the edge + * @param rect the rectangular area to check for intersection + * @returns true if the edge path intersects with the given rectangle, false otherwise * @static */ static pathIntersectsRect(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,rect:yfiles.algorithms.Rectangle2D):boolean; /** * Removes successive bends that have the same coordinates from the given edge. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Edge} edge the edge + * @param graph the graph + * @param edge the edge * @static */ static removeDuplicateBends(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; /** * Removes successive bends that have the same coordinates from all edges in the graph. - * @param {yfiles.layout.LayoutGraph} graph the graph + * @param graph the graph * @static */ static removeDuplicateBends(graph:yfiles.layout.LayoutGraph):void; /** * Assigns a trivial path which has no control points to the specified edge. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Edge} edge the edge - * @param {boolean} [resetPorts=true] true if the ports of the edge should be set to the center of the corresponding nodes, false otherwise + * @param graph the graph + * @param edge the edge + * @param [resetPorts=true] true if the ports of the edge should be set to the center of the corresponding nodes, false otherwise * @static */ static resetPath(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,resetPorts?:boolean):void; /** * Assigns a trivial path which has no control points to all edges in the specified graph. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {boolean} [resetPorts=true] true if the ports of the edges should be set to the center of the corresponding nodes, false otherwise + * @param graph the graph + * @param [resetPorts=true] true if the ports of the edges should be set to the center of the corresponding nodes, false otherwise * @static */ static resetPaths(graph:yfiles.layout.LayoutGraph,resetPorts?:boolean):void; /** * Sets the ports of all edges in the graph to the center of the nodes. - * @param {yfiles.layout.LayoutGraph} graph the graph + * @param graph the graph * @see yfiles.layout.LayoutGraph#setSourcePointRel * @see yfiles.layout.LayoutGraph#setTargetPointRel * @static @@ -89459,20 +88913,20 @@ declare namespace system{ *

    * The order of the control points is reversed and source and target point are swapped. *

    - * @param {yfiles.layout.IEdgeLayout} el the layout information of an edge + * @param el the layout information of an edge * @static */ static reverseEdgeLayout(el:yfiles.layout.IEdgeLayout):void; /** * Rounds the locations of the control points and ports of the given edge to integer values. - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge whose values are rounded + * @param graph the graph to which the edge belongs + * @param edge the edge whose values are rounded * @static */ static roundEdgeLayout(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; /** * Rounds coordinates and sizes in the layout of an entire graph to integer values. - * @param {yfiles.layout.LayoutGraph} graph the graph + * @param graph the graph * @see yfiles.layout.LayoutGraphUtilities#roundNodeLayout * @see yfiles.layout.LayoutGraphUtilities#roundEdgeLayout * @static @@ -89480,8 +88934,8 @@ declare namespace system{ static roundLayout(graph:yfiles.layout.LayoutGraph):void; /** * Rounds the location and size of the given node to integer values. - * @param {yfiles.layout.LayoutGraph} graph the graph to which the node belongs - * @param {yfiles.algorithms.Node} node the node whose values are rounded + * @param graph the graph to which the node belongs + * @param node the node whose values are rounded * @static */ static roundNodeLayout(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; @@ -89494,14 +88948,14 @@ declare namespace system{ * The position of the leading edge may be adjusted if there is an odd number of parallel edges. It will be moved from the * center to achieve a more symmetric port assignment. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Edge} leadingEdge the leading edge - * @param {yfiles.algorithms.EdgeList} edges the list of edges that will be aligned with the leading edge - * @param {number} lineDistance the distance between two edges - * @param {boolean} [adjustLeadingEdge=false] true if the leading edge should be adjusted if the size of list is odd, false otherwise - * @param {boolean} [joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise - * @param {number} [absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined - * @param {number} [relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined + * @param graph the graph + * @param leadingEdge the leading edge + * @param edges the list of edges that will be aligned with the leading edge + * @param lineDistance the distance between two edges + * @param [adjustLeadingEdge=false] true if the leading edge should be adjusted if the size of list is odd, false otherwise + * @param [joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise + * @param [absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined + * @param [relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined * @static */ static routeEdgesParallel(graph:yfiles.layout.LayoutGraph,leadingEdge:yfiles.algorithms.Edge,edges:yfiles.algorithms.EdgeList,lineDistance:number,adjustLeadingEdge?:boolean,joinEnds?:boolean,absJoinDistance?:number,relJoinDistance?:number):void; @@ -89515,14 +88969,14 @@ declare namespace system{ * center to achieve a more symmetric port assignment. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.layout.LayoutGraph} options.graph the graph - * @param {yfiles.algorithms.Edge} options.leadingEdge the leading edge - * @param {yfiles.algorithms.EdgeList} options.edges the list of edges that will be aligned with the leading edge - * @param {number} options.lineDistance the distance between two edges - * @param {boolean} [options.adjustLeadingEdge=false] true if the leading edge should be adjusted if the size of list is odd, false otherwise - * @param {boolean} [options.joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise - * @param {number} [options.absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined - * @param {number} [options.relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined + * @param options.graph the graph + * @param options.leadingEdge the leading edge + * @param options.edges the list of edges that will be aligned with the leading edge + * @param options.lineDistance the distance between two edges + * @param [options.adjustLeadingEdge=false] true if the leading edge should be adjusted if the size of list is odd, false otherwise + * @param [options.joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise + * @param [options.absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined + * @param [options.relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined * @static */ static routeEdgesParallel(options:{graph:yfiles.layout.LayoutGraph,leadingEdge:yfiles.algorithms.Edge,edges:yfiles.algorithms.EdgeList,lineDistance:number,adjustLeadingEdge?:boolean,joinEnds?:boolean,absJoinDistance?:number,relJoinDistance?:number}):void; @@ -89531,13 +88985,13 @@ declare namespace system{ *

    * The second edge gets a path that is parallel to the path of the first (leading) edge. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Edge} leadingEdge the leading edge - * @param {yfiles.algorithms.Edge} edge the edge to be adjusted - * @param {number} lineDistance the distance between the two edges - * @param {boolean} [joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise - * @param {number} [absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined - * @param {number} [relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined + * @param graph the graph + * @param leadingEdge the leading edge + * @param edge the edge to be adjusted + * @param lineDistance the distance between the two edges + * @param [joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise + * @param [absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined + * @param [relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined * @static */ static routeEdgesParallel(graph:yfiles.layout.LayoutGraph,leadingEdge:yfiles.algorithms.Edge,edge:yfiles.algorithms.Edge,lineDistance:number,joinEnds?:boolean,absJoinDistance?:number,relJoinDistance?:number):void; @@ -89547,13 +89001,13 @@ declare namespace system{ * The second edge gets a path that is parallel to the path of the first (leading) edge. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.layout.LayoutGraph} options.graph the graph - * @param {yfiles.algorithms.Edge} options.leadingEdge the leading edge - * @param {yfiles.algorithms.Edge} options.edge the edge to be adjusted - * @param {number} options.lineDistance the distance between the two edges - * @param {boolean} [options.joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise - * @param {number} [options.absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined - * @param {number} [options.relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined + * @param options.graph the graph + * @param options.leadingEdge the leading edge + * @param options.edge the edge to be adjusted + * @param options.lineDistance the distance between the two edges + * @param [options.joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise + * @param [options.absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined + * @param [options.relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined * @static */ static routeEdgesParallel(options:{graph:yfiles.layout.LayoutGraph,leadingEdge:yfiles.algorithms.Edge,edge:yfiles.algorithms.Edge,lineDistance:number,joinEnds?:boolean,absJoinDistance?:number,relJoinDistance?:number}):void; @@ -89563,8 +89017,8 @@ declare namespace system{ * For a self-loop edge, source and target are identical. The path of the self-loop will start at the top of the node, go * around the upper-left corner and end at the left side of the node. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the self-loop + * @param graph the graph to which the edge belongs + * @param edge the self-loop * @static */ static routeSelfLoop(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; @@ -89588,14 +89042,13 @@ declare namespace system{ * as the core layout algorithm of {@link yfiles.layout.ComponentLayout}) or for the contents of group nodes (when used as the core * layout algorithm of {@link yfiles.layout.RecursiveGroupLayout}). *

    - * @class yfiles.layout.LayoutMultiplexer + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface LayoutMultiplexer extends yfiles.layout.LayoutStageBase{} export class LayoutMultiplexer { /** * Creates a new instance of {@link yfiles.layout.LayoutMultiplexer}. - * @constructor */ constructor(); /** @@ -89610,8 +89063,8 @@ declare namespace system{ * This method is called in {@link yfiles.layout.LayoutMultiplexer#applyLayout} and may be overridden to implement a different way * of selecting the {@link yfiles.layout.ILayoutAlgorithm layout algorithms}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.layout.ILayoutAlgorithm} the according layout algorithm + * @param graph the input graph + * @returns the according layout algorithm * @protected */ getCoreLayout(graph:yfiles.layout.LayoutGraph):yfiles.layout.ILayoutAlgorithm; @@ -89635,20 +89088,19 @@ declare namespace system{ * need to be considered anymore. *

    * @see yfiles.layout.MultiStageLayout - * @class yfiles.layout.LayoutStageBase + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface LayoutStageBase extends Object,yfiles.layout.ILayoutStage{} export class LayoutStageBase { /** * Creates a new {@link yfiles.layout.ILayoutStage} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** * - * @param {yfiles.layout.LayoutGraph} graph + * @param graph * @abstract */ applyLayout(graph:yfiles.layout.LayoutGraph):void; @@ -89658,7 +89110,7 @@ declare namespace system{ * Overriding classes may call this method during {@link yfiles.layout.ILayoutAlgorithm#applyLayout} to delegate arranging the * graph to the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. They can add pre- and post-processing code before and after this call. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @protected */ applyLayoutCore(graph:yfiles.layout.LayoutGraph):void; @@ -89679,7 +89131,7 @@ declare namespace system{ * This {@link yfiles.layout.ILayoutStage} is especially useful to prevent that the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} has to handle zero-sized * nodes or nodes with negative sizes. *

    - * @class yfiles.layout.MinimumNodeSizeStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface MinimumNodeSizeStage extends yfiles.layout.LayoutStageBase{} @@ -89687,10 +89139,9 @@ declare namespace system{ /** * Creates a new {@link yfiles.layout.MinimumNodeSizeStage} instance using the given {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} along with a specific * minimum width and height for the nodes. - * @param {yfiles.layout.ILayoutAlgorithm} coreLayouter the core layout routine - * @param {number} minWidth the minimum width of nodes that should be enforced - * @param {number} minHeight the minimum height of nodes that should be enforced - * @constructor + * @param coreLayouter the core layout routine + * @param minWidth the minimum width of nodes that should be enforced + * @param minHeight the minimum height of nodes that should be enforced */ constructor(coreLayouter:yfiles.layout.ILayoutAlgorithm,minWidth:number,minHeight:number); /** @@ -89698,8 +89149,7 @@ declare namespace system{ *

    * The nodes will be enlarged to be at least 1 wide and 1 high. *

    - * @param {yfiles.layout.ILayoutAlgorithm} coreLayouter the core routine - * @constructor + * @param coreLayouter the core routine */ constructor(coreLayouter:yfiles.layout.ILayoutAlgorithm); static $class:yfiles.lang.Class; @@ -89750,14 +89200,13 @@ declare namespace system{ * In order to take effect, a stage that is not already activated by default needs to be activated using the corresponding * method, e.g., {@link yfiles.layout.MultiStageLayout#hideGroupsStageEnabled}. Vice versa, a stage can also be deactivated, if necessary. *

    - * @class yfiles.layout.MultiStageLayout + * @class * @implements {yfiles.layout.ILayoutAlgorithm} */ export interface MultiStageLayout extends Object,yfiles.layout.ILayoutAlgorithm{} export class MultiStageLayout { /** * Creates a new {@link yfiles.layout.MultiStageLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -89767,7 +89216,7 @@ declare namespace system{ * prepended {@link yfiles.layout.ILayoutStage}s, all predefined stages, and all previously appended {@link yfiles.layout.ILayoutStage}s, * but just before the invocation of the {@link yfiles.layout.MultiStageLayout#applyLayoutCore layout algorithm}. *

    - * @param {yfiles.layout.ILayoutStage} stage the {@link yfiles.layout.ILayoutStage} instance to be added + * @param stage the {@link } instance to be added * @see yfiles.layout.MultiStageLayout#removeStage * @see yfiles.layout.MultiStageLayout#prependStage */ @@ -89777,7 +89226,7 @@ declare namespace system{ *

    * This method executes all activated {@link yfiles.layout.ILayoutStage}s in the layout pipeline as well as the {@link yfiles.layout.MultiStageLayout#applyLayoutCore layout algorithm}. *

    - * @param {yfiles.layout.LayoutGraph} layoutGraph the input graph + * @param layoutGraph the input graph * @see yfiles.layout.MultiStageLayout#appendStage * @see yfiles.layout.MultiStageLayout#prependStage * @see yfiles.layout.MultiStageLayout#applyLayoutCore @@ -89788,13 +89237,13 @@ declare namespace system{ *

    * This method should be implemented by subclasses in order to perform the layout routine of the layout algorithm. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @abstract */ applyLayoutCore(graph:yfiles.layout.LayoutGraph):void; /** * Checks the sizes of the nodes to be non-zero. - * @param {yfiles.layout.LayoutGraph} g The graph to check. + * @param g The graph to check. * @protected */ checkNodeSize(g:yfiles.layout.LayoutGraph):void; @@ -89810,7 +89259,7 @@ declare namespace system{ * all previously prepended {@link yfiles.layout.ILayoutStage}s, all predefined stages, and all appended * {@link yfiles.layout.ILayoutStage}s. *

    - * @param {yfiles.layout.ILayoutStage} stage the {@link yfiles.layout.ILayoutStage} instance to be added + * @param stage the {@link } instance to be added * @see yfiles.layout.MultiStageLayout#removeStage * @see yfiles.layout.MultiStageLayout#appendStage */ @@ -89821,7 +89270,7 @@ declare namespace system{ * This method can only remove {@link yfiles.layout.ILayoutStage}s that have been previously added using {@link yfiles.layout.MultiStageLayout#appendStage} * or {@link yfiles.layout.MultiStageLayout#prependStage}. Predefined {@link yfiles.layout.ILayoutStage}s can be deactivated separately. *

    - * @param {yfiles.layout.ILayoutStage} stage a {@link yfiles.layout.ILayoutStage} to be removed from the layout pipeline + * @param stage a {@link } to be removed from the layout pipeline * @see yfiles.layout.MultiStageLayout#prependStage * @see yfiles.layout.MultiStageLayout#appendStage * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled @@ -90006,7 +89455,7 @@ declare namespace system{ *
  • {@link yfiles.layout.RecursiveGroupLayout}
  • *
  • {@link yfiles.layout.ComponentLayout}
  • * - * @class yfiles.layout.NodeHalo + * @class * @final */ export interface NodeHalo extends Object{} @@ -90016,11 +89465,11 @@ declare namespace system{ *

    * The values must not be negative, {@link number#NaN} or {@link number#POSITIVE_INFINITY}. *

    - * @param {number} top the {@link yfiles.layout.NodeHalo} size at the top side of the node - * @param {number} left the {@link yfiles.layout.NodeHalo} size at the left side of the node - * @param {number} bottom the {@link yfiles.layout.NodeHalo} size at the bottom side of the node - * @param {number} right the {@link yfiles.layout.NodeHalo} size at the right side of the node - * @returns {yfiles.layout.NodeHalo} the newly created {@link yfiles.layout.NodeHalo} + * @param top the {@link } size at the top side of the node + * @param left the {@link } size at the left side of the node + * @param bottom the {@link } size at the bottom side of the node + * @param right the {@link } size at the right side of the node + * @returns the newly created {@link } * @throws {Stubs.Exceptions.ArgumentError} if one of the values is negative, {@link number#NaN} or {@link number#POSITIVE_INFINITY} * @static */ @@ -90030,8 +89479,8 @@ declare namespace system{ *

    * The value must not be negative, {@link number#NaN} or {@link number#POSITIVE_INFINITY}. *

    - * @param {number} value the halo size at each side of the node - * @returns {yfiles.layout.NodeHalo} the newly created {@link yfiles.layout.NodeHalo} + * @param value the halo size at each side of the node + * @returns the newly created {@link } * @throws {Stubs.Exceptions.ArgumentError} if the value is negative, {@link number#NaN} or {@link number#POSITIVE_INFINITY} * @static */ @@ -90041,9 +89490,9 @@ declare namespace system{ *

    * If no such {@link yfiles.layout.NodeHalo} is available, this method returns a {@link yfiles.layout.NodeHalo#ZERO_HALO}. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph containing the given node - * @param {yfiles.algorithms.Node} node the node whose {@link yfiles.layout.NodeHalo} will be determined - * @returns {yfiles.layout.NodeHalo} the {@link yfiles.layout.NodeHalo} of the given node if available, otherwise a {@link yfiles.layout.NodeHalo#ZERO_HALO} + * @param graph the graph containing the given node + * @param node the node whose {@link } will be determined + * @returns the {@link } of the given node if available, otherwise a {@link #ZERO_HALO} * @static */ static getHalo(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):yfiles.layout.NodeHalo; @@ -90055,9 +89504,9 @@ declare namespace system{ *

    * If the node does not have a {@link yfiles.layout.NodeHalo} assigned, this box has the same size as the node. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph containing the given node - * @param {yfiles.algorithms.Node} node the node whose {@link yfiles.layout.NodeHalo} will be determined - * @returns {yfiles.algorithms.YRectangle} a {@link yfiles.algorithms.YRectangle} instance with the bounds of the given node including its {@link yfiles.layout.NodeHalo} + * @param graph the graph containing the given node + * @param node the node whose {@link } will be determined + * @returns a {@link } instance with the bounds of the given node including its {@link } * @static */ static getHaloBox(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):yfiles.algorithms.YRectangle; @@ -90067,8 +89516,8 @@ declare namespace system{ * This method looks for a {@link yfiles.algorithms.IDataProvider} that has been registered with the given graph using * {@link yfiles.layout.NodeHalo#NODE_HALO_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {boolean} true if a {@link yfiles.algorithms.IDataProvider} has been registered with the according key, false otherwise + * @param graph the input graph + * @returns true if a {@link } has been registered with the according key, false otherwise * @static */ static hasHalos(graph:yfiles.layout.LayoutGraph):boolean; @@ -90114,7 +89563,7 @@ declare namespace system{ } /** * A {@link yfiles.layout.NodeLabelCandidate} describes one valid placement for a node label considering the label model. - * @class yfiles.layout.NodeLabelCandidate + * @class * @extends {yfiles.layout.LabelCandidate} */ export interface NodeLabelCandidate extends yfiles.layout.LabelCandidate{} @@ -90122,21 +89571,19 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.layout.NodeLabelCandidate} described by location, size, model parameter and internal * flag. - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate - * @param {yfiles.algorithms.YDimension} size the size of the candidate - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.INodeLabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param pos the location of the upper left corner of the candidate + * @param size the size of the candidate + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.INodeLabelLayout,internal?:boolean); /** * Creates a new instance of {@link yfiles.layout.NodeLabelCandidate} described by its box, model parameter and internal flag. - * @param {yfiles.algorithms.YOrientedRectangle} labelBox the box that specifies the candidate's size and position - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.INodeLabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param labelBox the box that specifies the candidate's size and position + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(labelBox:yfiles.algorithms.YOrientedRectangle,param:Object,owner:yfiles.layout.INodeLabelLayout,internal?:boolean); static $class:yfiles.lang.Class; @@ -90155,15 +89602,14 @@ declare namespace system{ * in the graph with a {@link yfiles.lang.IComparable} value using a {@link yfiles.algorithms.IDataProvider} registered with the key {@link yfiles.layout.NormalizeGraphElementOrderStage#NODE_COMPARABLE_DP_KEY} * or {@link yfiles.layout.NormalizeGraphElementOrderStage#EDGE_COMPARABLE_DP_KEY}, respectively. *

    - * @class yfiles.layout.NormalizeGraphElementOrderStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface NormalizeGraphElementOrderStage extends yfiles.layout.LayoutStageBase{} export class NormalizeGraphElementOrderStage { /** * Creates a new {@link yfiles.layout.NormalizeGraphElementOrderStage} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -90176,9 +89622,9 @@ declare namespace system{ * with keys {@link yfiles.layout.NormalizeGraphElementOrderStage#NODE_COMPARABLE_DP_KEY} and {@link yfiles.layout.NormalizeGraphElementOrderStage#EDGE_COMPARABLE_DP_KEY} * and used for several layout calculations. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataMap} comparableNodeMap the map that will be filled with comparable values for the nodes - * @param {yfiles.algorithms.IDataMap} comparableEdgeMap the map that will be filled with comparable values for the edges + * @param graph the input graph + * @param comparableNodeMap the map that will be filled with comparable values for the nodes + * @param comparableEdgeMap the map that will be filled with comparable values for the edges * @static */ static fillComparableMapFromGraph(graph:yfiles.algorithms.Graph,comparableNodeMap:yfiles.algorithms.IDataMap,comparableEdgeMap:yfiles.algorithms.IDataMap):void; @@ -90255,28 +89701,25 @@ declare namespace system{ * If no {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} is specified, {@link yfiles.layout.OrientationLayout} can work alone. It will just change the * orientation of the layout without arranging nodes and edges. *

    - * @class yfiles.layout.OrientationLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface OrientationLayout extends yfiles.layout.LayoutStageBase{} export class OrientationLayout { /** * Creates a new {@link yfiles.layout.OrientationLayout} instance using the given orientation. - * @param {yfiles.layout.LayoutOrientation} orientation the orientation specifier + * @param orientation the orientation specifier * @throws {Stubs.Exceptions.ArgumentError} if the specified orientation is unknown * @see yfiles.layout.OrientationLayout#orientation - * @constructor */ constructor(orientation:yfiles.layout.LayoutOrientation); /** * Creates a new {@link yfiles.layout.OrientationLayout} instance using the given {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} coreLayouter the core layout routine - * @constructor + * @param coreLayouter the core layout routine */ constructor(coreLayouter:yfiles.layout.ILayoutAlgorithm); /** * Creates a new {@link yfiles.layout.OrientationLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -90289,7 +89732,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.OrientationLayout#applyLayout} after invoking the * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It may be overridden to extend the orientation change to custom layout features. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @see yfiles.layout.OrientationLayout#prepareOrientationChange */ completeOrientationChange(graph:yfiles.layout.LayoutGraph):void; @@ -90298,8 +89741,8 @@ declare namespace system{ *

    * The point is transformed from {@link yfiles.layout.LayoutOrientation#TOP_TO_BOTTOM} orientation to the desired orientation. *

    - * @param {yfiles.algorithms.YPoint} point the calculated point - * @returns {yfiles.algorithms.YPoint} the transformed point + * @param point the calculated point + * @returns the transformed point * @see yfiles.layout.OrientationLayout#completeOrientationChange */ completeTransform(point:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; @@ -90308,8 +89751,8 @@ declare namespace system{ *

    * The transform will correspond to the currently set orientation. *

    - * @param {yfiles.algorithms.Insets} insets the original insets - * @returns {yfiles.algorithms.Insets} the oriented insets + * @param insets the original insets + * @returns the oriented insets * @see yfiles.layout.OrientationLayout#orientation */ createOrientedInsets(insets:yfiles.algorithms.Insets):yfiles.algorithms.Insets; @@ -90318,8 +89761,8 @@ declare namespace system{ *

    * The transform will correspond to the currently set orientation. *

    - * @param {yfiles.layout.NodeHalo} halo the original {@link yfiles.layout.NodeHalo} - * @returns {yfiles.layout.NodeHalo} the oriented {@link yfiles.layout.NodeHalo} + * @param halo the original {@link } + * @returns the oriented {@link } * @see yfiles.layout.OrientationLayout#orientation */ createOrientedNodeHalo(halo:yfiles.layout.NodeHalo):yfiles.layout.NodeHalo; @@ -90328,8 +89771,8 @@ declare namespace system{ *

    * The transform will correspond to the currently set orientation. *

    - * @param {yfiles.algorithms.YDimension} nodeSize the original node size - * @returns {yfiles.algorithms.YDimension} the oriented node size + * @param nodeSize the original node size + * @returns the oriented node size * @see yfiles.layout.OrientationLayout#orientation */ createOrientedNodeSize(nodeSize:yfiles.algorithms.YDimension):yfiles.algorithms.YDimension; @@ -90339,8 +89782,8 @@ declare namespace system{ *

    * Horizontal orientations get mirrored at the x-axis while vertical orientations are mirrored at the y-axis. *

    - * @param {yfiles.layout.LayoutOrientation} orientation the layout orientation for which to check the mirror state - * @returns {boolean} true if the layout algorithm will mirror the graph at the corresponding axis for the given layout orientation, false + * @param orientation the layout orientation for which to check the mirror state + * @returns true if the layout algorithm will mirror the graph at the corresponding axis for the given layout orientation, false * otherwise * @see yfiles.layout.OrientationLayout#orientation * @see yfiles.layout.OrientationLayout#mirrorMode @@ -90356,7 +89799,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.OrientationLayout#applyLayout} before invoking the * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It might be overridden to extend the preparations to custom layout features. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @see yfiles.layout.OrientationLayout#completeOrientationChange */ prepareOrientationChange(graph:yfiles.layout.LayoutGraph):void; @@ -90365,8 +89808,8 @@ declare namespace system{ *

    * The point is transformed so it matches the {@link yfiles.layout.LayoutOrientation#TOP_TO_BOTTOM} orientation. *

    - * @param {yfiles.algorithms.YPoint} point the original point - * @returns {yfiles.algorithms.YPoint} the transformed point + * @param point the original point + * @returns the transformed point * @see yfiles.layout.OrientationLayout#prepareOrientationChange */ prepareTransform(point:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; @@ -90376,9 +89819,9 @@ declare namespace system{ * This method is called by {@link yfiles.layout.OrientationLayout#prepareOrientationChange} and {@link yfiles.layout.OrientationLayout#completeOrientationChange} * to get the according point location. *

    - * @param {yfiles.algorithms.YPoint} point the original/calculated point - * @param {boolean} prepare true if this method is called during preparation, false if it is called during completion - * @returns {yfiles.algorithms.YPoint} the transformed point + * @param point the original/calculated point + * @param prepare true if this method is called during preparation, false if it is called during completion + * @returns the transformed point * @see yfiles.layout.OrientationLayout#prepareOrientationChange * @see yfiles.layout.OrientationLayout#completeOrientationChange * @see yfiles.layout.OrientationLayout#prepareTransform @@ -90447,7 +89890,7 @@ declare namespace system{ * @see yfiles.layout.IntersectionCalculatorKeys#SOURCE_INTERSECTION_CALCULATOR_DP_KEY * @see yfiles.layout.IntersectionCalculatorKeys#TARGET_INTERSECTION_CALCULATOR_DP_KEY * @see yfiles.layout.PortConstraint - * @class yfiles.layout.PortCalculator + * @class * @extends {yfiles.layout.LayoutStageBase} * @implements {yfiles.layout.ILayoutStage} */ @@ -90455,12 +89898,11 @@ declare namespace system{ export class PortCalculator { /** * Creates a new {@link yfiles.layout.PortCalculator} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @constructor */ constructor(); /** * Performs the actual port calculation on the specified graph instance. - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @protected */ calculatePorts(graph:yfiles.layout.LayoutGraph):void; @@ -90470,11 +89912,11 @@ declare namespace system{ * This implementation uses {@link yfiles.layout.PortCalculator#Eps} to add some tolerance to the comparison. It is called by {@link yfiles.layout.PortCalculator#calculatePorts} * and may be overridden to change the accuracy/tolerance of the comparison. *

    - * @param {number} x1 the x-coordinate of the first point - * @param {number} y1 the y-coordinate of the first point - * @param {number} x2 the x-coordinate of the second point - * @param {number} y2 the y-coordinate of the second point - * @returns {boolean} true if both points are considered equal, false otherwise + * @param x1 the x-coordinate of the first point + * @param y1 the y-coordinate of the first point + * @param x2 the x-coordinate of the second point + * @param y2 the y-coordinate of the second point + * @returns true if both points are considered equal, false otherwise * @see yfiles.layout.PortCalculator#calculatePorts * @see yfiles.layout.PortCalculator#Eps * @protected @@ -90547,42 +89989,42 @@ declare namespace system{ * them are {@link yfiles.hierarchic.HierarchicLayout}, {@link yfiles.router.EdgeRouter}, {@link yfiles.router.ChannelEdgeRouter} and * {@link yfiles.router.BusRouter}. *

    - * @class yfiles.layout.PortCandidate + * @class */ export interface PortCandidate extends Object{} export class PortCandidate { /** * Factory method that creates a fixed {@link yfiles.layout.PortCandidate} instance with the given cost of usage, direction and * offset values. - * @param {yfiles.layout.PortDirections} directionMask any combination of the default direction specifiers - * @param {number} xOffset the X-offset relative to the center of the node - * @param {number} yOffset the Y-offset relative to the center of the node - * @param {number} [cost=0.0] the penalty cost for using this {@link yfiles.layout.PortCandidate} instance - * @returns {yfiles.layout.PortCandidate} a new {@link yfiles.layout.PortCandidate} instance + * @param directionMask any combination of the default direction specifiers + * @param xOffset the X-offset relative to the center of the node + * @param yOffset the Y-offset relative to the center of the node + * @param [cost=0.0] the penalty cost for using this {@link } instance + * @returns a new {@link } instance * @static */ static createCandidate(xOffset:number,yOffset:number,directionMask:yfiles.layout.PortDirections,cost?:number):yfiles.layout.PortCandidate; /** * Factory method that creates a free {@link yfiles.layout.PortCandidate} instance with the given direction and cost of usage. - * @param {yfiles.layout.PortDirections} directionMask any combination of the default direction specifiers - * @param {number} cost the penalty cost for using this {@link yfiles.layout.PortCandidate} - * @returns {yfiles.layout.PortCandidate} a new {@link yfiles.layout.PortCandidate} instance + * @param directionMask any combination of the default direction specifiers + * @param cost the penalty cost for using this {@link } + * @returns a new {@link } instance * @static */ static createCandidate(directionMask:yfiles.layout.PortDirections,cost:number):yfiles.layout.PortCandidate; /** * Factory method that returns a free {@link yfiles.layout.PortCandidate} instance with zero cost of usage and the direction * specified by the {@link yfiles.layout.PortConstraint#side side} of the given {@link yfiles.layout.PortConstraint}. - * @param {yfiles.layout.PortConstraint} fromPortConstraint the {@link yfiles.layout.PortConstraint} whose {@link yfiles.layout.PortConstraint#side side} should be used as direction - * @returns {yfiles.layout.PortCandidate} a new {@link yfiles.layout.PortCandidate} instance + * @param fromPortConstraint the {@link } whose {@link #side side} should be used as direction + * @returns a new {@link } instance * @static */ static createCandidate(fromPortConstraint:yfiles.layout.PortConstraint):yfiles.layout.PortCandidate; /** * Factory method that creates a free {@link yfiles.layout.PortCandidate} instance with the given direction and zero cost of * usage. - * @param {yfiles.layout.PortDirections} directionMask any combination of the default direction specifiers - * @returns {yfiles.layout.PortCandidate} a new {@link yfiles.layout.PortCandidate} instance + * @param directionMask any combination of the default direction specifiers + * @returns a new {@link } instance * @static */ static createCandidate(directionMask:yfiles.layout.PortDirections):yfiles.layout.PortCandidate; @@ -90592,8 +90034,8 @@ declare namespace system{ * If the direction mask is not required to be calculated with respect to the actual {@link yfiles.layout.OrientationLayout#orientation layout orientation}, {@link yfiles.layout.PortCandidate#direction} should be used * instead. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation - * @returns {yfiles.layout.PortDirections} the direction of this {@link yfiles.layout.PortCandidate} with respect to the given layout orientation + * @param layoutOrientation + * @returns the direction of this {@link } with respect to the given layout orientation * @see yfiles.layout.PortCandidate#direction */ getDirectionForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation):yfiles.layout.PortDirections; @@ -90604,9 +90046,9 @@ declare namespace system{ * The X-offset encodes the horizontal distance of the port relative to the center of a node. If the {@link yfiles.layout.PortCandidate} * is not {@link yfiles.layout.PortCandidate#fixed fixed} (i.e., free), the X-offset is equal to zero. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation the layout orientation - * @param {yfiles.layout.MirrorModes} mirrorMask the mirror mask - * @returns {number} the X-offset of the port with respect to the given orientation and mirror mask + * @param layoutOrientation the layout orientation + * @param mirrorMask the mirror mask + * @returns the X-offset of the port with respect to the given orientation and mirror mask */ getXOffsetForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation,mirrorMask:yfiles.layout.MirrorModes):number; /** @@ -90616,8 +90058,8 @@ declare namespace system{ * The X-offset encodes the horizontal distance of the port relative to the center of a node. If the {@link yfiles.layout.PortCandidate} * is not {@link yfiles.layout.PortCandidate#fixed fixed} (i.e., free), the X-offset is equal to zero. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation the layout orientation - * @returns {number} the X-offset of the {@link yfiles.layout.PortCandidate} with respect to the given layout orientation + * @param layoutOrientation the layout orientation + * @returns the X-offset of the {@link } with respect to the given layout orientation */ getXOffsetForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation):number; /** @@ -90627,9 +90069,9 @@ declare namespace system{ * The Y-offset encodes the vertical distance of the port relative to the center of a node. If the {@link yfiles.layout.PortCandidate} * is not {@link yfiles.layout.PortCandidate#fixed fixed} (i.e., free), the Y-offset is equal to zero. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation the layout orientation - * @param {yfiles.layout.MirrorModes} mirrorMask the mirror mask - * @returns {number} the Y-offset of the {@link yfiles.layout.PortCandidate} with respect to the given orientation and mirror mask + * @param layoutOrientation the layout orientation + * @param mirrorMask the mirror mask + * @returns the Y-offset of the {@link } with respect to the given orientation and mirror mask */ getYOffsetForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation,mirrorMask:yfiles.layout.MirrorModes):number; /** @@ -90639,14 +90081,14 @@ declare namespace system{ * The Y-offset encodes the vertical distance of the port relative to the center of a node. If the {@link yfiles.layout.PortCandidate} * is not {@link yfiles.layout.PortCandidate#fixed fixed} (i.e., free), the Y-offset is equal to zero. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation the layout orientation - * @returns {number} the Y-offset of the {@link yfiles.layout.PortCandidate} with respect to the given layout orientation + * @param layoutOrientation the layout orientation + * @returns the Y-offset of the {@link } with respect to the given layout orientation */ getYOffsetForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation):number; /** * Returns whether or not this {@link yfiles.layout.PortCandidate} lies in the given direction. - * @param {yfiles.layout.PortDirections} directionMask one of the default direction specifiers - * @returns {boolean} true if this {@link yfiles.layout.PortCandidate} lies in the given direction, false otherwise + * @param directionMask one of the default direction specifiers + * @returns true if this {@link } lies in the given direction, false otherwise */ isInDirection(directionMask:yfiles.layout.PortDirections):boolean; /** @@ -90657,7 +90099,7 @@ declare namespace system{ *

    * If this {@link yfiles.layout.PortCandidate} is {@link yfiles.layout.PortCandidate#fixed fixed}, the resulting {@link yfiles.layout.PortConstraint} will be {@link yfiles.layout.PortConstraint#strong strong}. *

    - * @returns {yfiles.layout.PortConstraint} a {@link yfiles.layout.PortConstraint} that matches this {@link yfiles.layout.PortCandidate} + * @returns a {@link } that matches this {@link } */ toPortConstraint():yfiles.layout.PortConstraint; /** @@ -90670,19 +90112,19 @@ declare namespace system{ *

    * If this {@link yfiles.layout.PortCandidate} is {@link yfiles.layout.PortCandidate#fixed fixed}, the resulting {@link yfiles.layout.PortConstraint} will be {@link yfiles.layout.PortConstraint#strong strong}. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation - * @returns {yfiles.layout.PortConstraint} a {@link yfiles.layout.PortConstraint} that matches this {@link yfiles.layout.PortCandidate} with respect to the given orientation + * @param layoutOrientation + * @returns a {@link } that matches this {@link } with respect to the given orientation */ toPortConstraintForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation):yfiles.layout.PortConstraint; /** - * Data provider key for specifying source port candidates for each edge. + * Data provider key for specifying source port candidates for each edge * @const * @static * @type {yfiles.algorithms.EdgeDpKey.>} */ static SOURCE_PORT_CANDIDATE_COLLECTION_DP_KEY:yfiles.algorithms.EdgeDpKey>; /** - * Data provider key for specifying target port candidates for each edge. + * Data provider key for specifying target port candidates for each edge * @const * @static * @type {yfiles.algorithms.EdgeDpKey.>} @@ -90748,27 +90190,27 @@ declare namespace system{ export interface IPortCandidateMatcher extends Object{ /** * Returns the next best matching {@link yfiles.layout.IPortCandidateSetEntry} for the given parameters. - * @param {yfiles.algorithms.Edge} edge the edge for which to find a candidate - * @param {boolean} source true if the given edge connects to its source node, false otherwise - * @param {number} xOffset the preferred X-offset of the port relative to the center of the node - * @param {number} yOffset the preferred Y-offset of the port relative to the center of the node - * @param {yfiles.layout.PortDirections} directionMask any combination of default directions defined in {@link yfiles.layout.PortCandidate} - * @returns {yfiles.layout.IPortCandidateSetEntry} a matching {@link yfiles.layout.IPortCandidateSetEntry} instance + * @param edge the edge for which to find a candidate + * @param source true if the given edge connects to its source node, false otherwise + * @param xOffset the preferred X-offset of the port relative to the center of the node + * @param yOffset the preferred Y-offset of the port relative to the center of the node + * @param directionMask any combination of default directions defined in {@link } + * @returns a matching {@link } instance * @abstract */ findMatchingCandidate(edge:yfiles.algorithms.Edge,source:boolean,xOffset:number,yOffset:number,directionMask:yfiles.layout.PortDirections):yfiles.layout.IPortCandidateSetEntry; /** * Returns the next best matching {@link yfiles.layout.IPortCandidateSetEntry} for the given parameters. - * @param {yfiles.algorithms.Edge} edge the edge for which to find a candidate - * @param {boolean} source true if the given edge connects to its source node, false otherwise - * @param {yfiles.layout.PortDirections} directionMask any combination of default directions defined in {@link yfiles.layout.PortCandidate} - * @returns {yfiles.layout.IPortCandidateSetEntry} a matching {@link yfiles.layout.IPortCandidateSetEntry} instance + * @param edge the edge for which to find a candidate + * @param source true if the given edge connects to its source node, false otherwise + * @param directionMask any combination of default directions defined in {@link } + * @returns a matching {@link } instance * @abstract */ findMatchingCandidate(edge:yfiles.algorithms.Edge,source:boolean,directionMask:yfiles.layout.PortDirections):yfiles.layout.IPortCandidateSetEntry; /** * Returns the next best matching {@link yfiles.layout.IPortCandidateSetEntry}. - * @returns {yfiles.layout.IPortCandidateSetEntry} a matching {@link yfiles.layout.IPortCandidateSetEntry} instance + * @returns a matching {@link } instance * @abstract */ findMatchingCandidate():yfiles.layout.IPortCandidateSetEntry; @@ -90833,16 +90275,15 @@ declare namespace system{ * them are {@link yfiles.hierarchic.HierarchicLayout}, {@link yfiles.router.EdgeRouter}, {@link yfiles.router.ChannelEdgeRouter} and * {@link yfiles.router.BusRouter}. *

    - * @class yfiles.layout.PortCandidateSet + * @class */ export interface PortCandidateSet extends Object{} export class PortCandidateSet { /** * Creates a new empty {@link yfiles.layout.PortCandidateSet} instance. *

    - * Addition of {@link yfiles.layout.PortCandidate}s to this {@link yfiles.layout.PortCandidateSet set} can be performed using Add or {@link yfiles.layout.PortCandidateSet#add}. + * Addition of {@link yfiles.layout.PortCandidate}s to this {@link yfiles.layout.PortCandidateSet set} can be performed using {@link yfiles.layout.PortCandidateSet#add}. *

    - * @constructor */ constructor(); /** @@ -90854,8 +90295,8 @@ declare namespace system{ *

    * The capacity must be greater than zero. *

    - * @param {yfiles.layout.PortCandidate} p the {@link yfiles.layout.PortCandidate} to add - * @param {number} [connections=1] the capacity of the given port + * @param p the {@link } to add + * @param [connections=1] the capacity of the given port * @throws {Stubs.Exceptions.ArgumentError} if the given capacity is less than or equal to zero */ add(p:yfiles.layout.PortCandidate,connections?:number):void; @@ -90868,7 +90309,7 @@ declare namespace system{ *

    * This method may be overridden to support custom implementations of {@link yfiles.layout.IPortCandidateMatcher}. *

    - * @returns {yfiles.layout.IPortCandidateMatcher} a new {@link yfiles.layout.IPortCandidateMatcher} instance + * @returns a new {@link } instance */ createMatcher():yfiles.layout.IPortCandidateMatcher; /** @@ -90879,12 +90320,12 @@ declare namespace system{ *

    * This method may be overridden to customize the calculation of the cost of usage of an {@link yfiles.layout.IPortCandidateSetEntry entry}. *

    - * @param {yfiles.layout.IPortCandidateSetEntry} entry the entry for which the cost is computed - * @param {yfiles.algorithms.Edge} edge the edge that will connect to the {@link yfiles.layout.PortCandidate} associated with the entry - * @param {boolean} source true if the given edge connects to its source node, false otherwise - * @param {number} xOffset the preferred X-offset of the port relative to the center of the node - * @param {number} yOffset the preferred Y-offset of the port relative to the center of the node - * @returns {number} the penalty cost for the usage of the given {@link yfiles.layout.IPortCandidateSetEntry} + * @param entry the entry for which the cost is computed + * @param edge the edge that will connect to the {@link } associated with the entry + * @param source true if the given edge connects to its source node, false otherwise + * @param xOffset the preferred X-offset of the port relative to the center of the node + * @param yOffset the preferred Y-offset of the port relative to the center of the node + * @returns the penalty cost for the usage of the given {@link } */ getCost(entry:yfiles.layout.IPortCandidateSetEntry,edge:yfiles.algorithms.Edge,source:boolean,xOffset:number,yOffset:number):number; /** @@ -90895,19 +90336,19 @@ declare namespace system{ *

    * This method may be overridden to customize the calculation of the priority of {@link yfiles.layout.IPortCandidateSetEntry entries}. *

    - * @param {yfiles.layout.IPortCandidateSetEntry} entry the entry for which the cost is computed - * @param {yfiles.algorithms.Edge} edge the edge that will connect to the {@link yfiles.layout.PortCandidate} associated with the entry - * @param {boolean} source true if the given edge connects to its source node, false otherwise - * @returns {number} the priority of the given {@link yfiles.layout.IPortCandidateSetEntry} + * @param entry the entry for which the cost is computed + * @param edge the edge that will connect to the {@link } associated with the entry + * @param source true if the given edge connects to its source node, false otherwise + * @returns the priority of the given {@link } */ getPriority(entry:yfiles.layout.IPortCandidateSetEntry,edge:yfiles.algorithms.Edge,source:boolean):number; /** * Removes the given {@link yfiles.layout.IPortCandidateSetEntry entry} from the list of candidate entries. - * @param {yfiles.layout.IPortCandidateSetEntry} entry the entry to remove + * @param entry the entry to remove */ remove(entry:yfiles.layout.IPortCandidateSetEntry):void; /** - * Data provider key for specifying a port candidate set for each node. + * Data provider key for specifying a port candidate set for each node * @const * @static * @type {yfiles.algorithms.NodeDpKey.} @@ -90962,7 +90403,7 @@ declare namespace system{ * and {@link yfiles.router.BusRouter}. *

    * @see yfiles.layout.PortConstraintKeys - * @class yfiles.layout.PortConstraint + * @class */ export interface PortConstraint extends Object{} export class PortConstraint { @@ -90973,9 +90414,9 @@ declare namespace system{ * If the {@link yfiles.layout.PortConstraint} is strong, the layout or routing algorithm should use the port coordinates of this * constraint. *

    - * @param {yfiles.layout.PortSide} side one of the default side specifiers - * @param {boolean} [strong=false] true if this {@link yfiles.layout.PortConstraint} is strong, false otherwise - * @returns {yfiles.layout.PortConstraint} a new {@link yfiles.layout.PortConstraint} instance + * @param side one of the default side specifiers + * @param [strong=false] true if this {@link } is strong, false otherwise + * @returns a new {@link } instance * @throws {Stubs.Exceptions.ArgumentError} if an unknown side is given * @static */ @@ -90986,9 +90427,9 @@ declare namespace system{ * To retrieve the {@link yfiles.algorithms.IDataProvider} that holds information about source {@link yfiles.layout.PortConstraint}s, key {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY} * is used. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} e the edge - * @returns {yfiles.layout.PortConstraint} the source {@link yfiles.layout.PortConstraint} of the given edge or null if there is none + * @param graph the input graph + * @param e the edge + * @returns the source {@link } of the given edge or null if there is none * @static */ static getSPC(graph:yfiles.layout.LayoutGraph,e:yfiles.algorithms.Edge):yfiles.layout.PortConstraint; @@ -90998,9 +90439,9 @@ declare namespace system{ * To retrieve the {@link yfiles.algorithms.IDataProvider} that holds information about target {@link yfiles.layout.PortConstraint}s, key {@link yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY} * is used. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} e the edge - * @returns {yfiles.layout.PortConstraint} the target {@link yfiles.layout.PortConstraint} of the given edge or null if there is none + * @param graph the input graph + * @param e the edge + * @returns the target {@link } of the given edge or null if there is none * @static */ static getTPC(graph:yfiles.layout.LayoutGraph,e:yfiles.algorithms.Edge):yfiles.layout.PortConstraint; @@ -91011,9 +90452,9 @@ declare namespace system{ * {@link yfiles.layout.PortConstraint}s, keys {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY} and {@link yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY} * are used. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} e the edge - * @returns {boolean} true if the edge has source or target {@link yfiles.layout.PortConstraint}s, false otherwise + * @param graph the input graph + * @param e the edge + * @returns true if the edge has source or target {@link }s, false otherwise * @static */ static hasPC(graph:yfiles.layout.LayoutGraph,e:yfiles.algorithms.Edge):boolean; @@ -91023,9 +90464,9 @@ declare namespace system{ * To retrieve the {@link yfiles.algorithms.IDataProvider} that holds information about source {@link yfiles.layout.PortConstraint}s, key {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY} * is used. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} e the edge - * @returns {boolean} true if the edge has source {@link yfiles.layout.PortConstraint}s, false otherwise + * @param graph the input graph + * @param e the edge + * @returns true if the edge has source {@link }s, false otherwise * @static */ static hasSPC(graph:yfiles.layout.LayoutGraph,e:yfiles.algorithms.Edge):boolean; @@ -91035,9 +90476,9 @@ declare namespace system{ * To retrieve the {@link yfiles.algorithms.IDataProvider} that holds information about target {@link yfiles.layout.PortConstraint}s, key {@link yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY} * is used. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} e the edge - * @returns {boolean} true if the edge has target {@link yfiles.layout.PortConstraint}s, false otherwise + * @param graph the input graph + * @param e the edge + * @returns true if the edge has target {@link }s, false otherwise * @static */ static hasTPC(graph:yfiles.layout.LayoutGraph,e:yfiles.algorithms.Edge):boolean; @@ -91084,13 +90525,12 @@ declare namespace system{ /** * The {@link yfiles.layout.PortConstraintConfigurator} provides the possibility to create * {@link yfiles.layout.PortConstraint}s according to the initial connecting side of an edge. - * @class yfiles.layout.PortConstraintConfigurator + * @class */ export interface PortConstraintConfigurator extends Object{} export class PortConstraintConfigurator { /** * Creates a new {@link yfiles.layout.PortConstraintConfigurator} instance. - * @constructor */ constructor(); /** @@ -91098,29 +90538,29 @@ declare namespace system{ *

    * The side of the constraint is set up according to the current drawing of the edge within the given graph. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the edge - * @param {boolean} source true if a source {@link yfiles.layout.PortConstraint} for the given edge will be created, false for a target - * {@link yfiles.layout.PortConstraint} - * @param {boolean} strong true if a strong {@link yfiles.layout.PortConstraint} is created, false for a weak {@link yfiles.layout.PortConstraint} - * @returns {yfiles.layout.PortConstraint} the {@link yfiles.layout.PortConstraint} for the given edge whose side is retrieved from the initial drawing + * @param graph the input graph + * @param edge the edge + * @param source true if a source {@link } for the given edge will be created, false for a target + * {@link } + * @param strong true if a strong {@link } is created, false for a weak {@link } + * @returns the {@link } for the given edge whose side is retrieved from the initial drawing */ createPortConstraintFromSketch(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,source:boolean,strong:boolean):yfiles.layout.PortConstraint; /** * Creates {@link yfiles.layout.PortConstraint}s for some edges of the given graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IEdgeCursor} ec the {@link yfiles.algorithms.IEdgeCursor} that provides access to the edges for which to create {@link yfiles.layout.PortConstraint}s - * @param {yfiles.algorithms.IEdgeMap} spcMap the {@link yfiles.algorithms.IEdgeMap} that will be used for storing the source {@link yfiles.layout.PortConstraint}s of the edges - * @param {boolean} strongSP true if strong source {@link yfiles.layout.PortConstraint}s should be assigned, false otherwise - * @param {yfiles.algorithms.IEdgeMap} tpcMap the {@link yfiles.algorithms.IEdgeMap} that will be used for storing the target {@link yfiles.layout.PortConstraint}s of the edges - * @param {boolean} strongTP true if strong target {@link yfiles.layout.PortConstraint}s should be assigned, false otherwise + * @param graph the input graph + * @param ec the {@link } that provides access to the edges for which to create {@link }s + * @param spcMap the {@link } that will be used for storing the source {@link }s of the edges + * @param strongSP true if strong source {@link }s should be assigned, false otherwise + * @param tpcMap the {@link } that will be used for storing the target {@link }s of the edges + * @param strongTP true if strong target {@link }s should be assigned, false otherwise */ createPortConstraintsFromSketch(graph:yfiles.layout.LayoutGraph,ec:yfiles.algorithms.IEdgeCursor,spcMap:yfiles.algorithms.IEdgeMap,strongSP:boolean,tpcMap:yfiles.algorithms.IEdgeMap,strongTP:boolean):void; /** * Creates weak {@link yfiles.layout.PortConstraint}s for all edges of the given graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IEdgeMap} spcMap the {@link yfiles.algorithms.IEdgeMap} that will be used for storing the source {@link yfiles.layout.PortConstraint}s of the edges - * @param {yfiles.algorithms.IEdgeMap} tpcMap the {@link yfiles.algorithms.IEdgeMap} that will be used for storing the target {@link yfiles.layout.PortConstraint}s of the edges + * @param graph the input graph + * @param spcMap the {@link } that will be used for storing the source {@link }s of the edges + * @param tpcMap the {@link } that will be used for storing the target {@link }s of the edges */ createPortConstraintsFromSketch(graph:yfiles.layout.LayoutGraph,spcMap:yfiles.algorithms.IEdgeMap,tpcMap:yfiles.algorithms.IEdgeMap):void; static $class:yfiles.lang.Class; @@ -91138,7 +90578,7 @@ declare namespace system{ * Layout algorithms that support {@link yfiles.layout.PortConstraint}s or edge groups will access the * {@link yfiles.algorithms.IDataProvider}s using the provided keys. *

    - * @class yfiles.layout.PortConstraintKeys + * @class * @static */ export interface PortConstraintKeys extends Object{} @@ -91178,7 +90618,7 @@ declare namespace system{ */ static TARGET_GROUP_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for assigning port group ids to the edges' source. + * Data provider key for assigning port group ids to the edges' source *

    * All edges with the same port id at a node will share the same port location. However, they will be routed * independently. @@ -91189,7 +90629,7 @@ declare namespace system{ */ static SOURCE_PORT_GROUP_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for assigning port group ids to the edges' target. + * Data provider key for assigning port group ids to the edges' target *

    * All edges with the same port id at a node will share the same port location. However, they will be routed * independently. @@ -91232,30 +90672,28 @@ declare namespace system{ * A {@link yfiles.layout.PreferredPlacementDescriptor} must be set for each label and will be retrieved by the layout algorithms * calling {@link yfiles.layout.IEdgeLabelLayout#preferredPlacementDescriptor}. *

    - * @class yfiles.layout.PreferredPlacementDescriptor + * @class */ export interface PreferredPlacementDescriptor extends Object{} export class PreferredPlacementDescriptor { /** * Creates a new {@link yfiles.layout.PreferredPlacementDescriptor} instance that copies the given descriptor. - * @param {yfiles.layout.PreferredPlacementDescriptor} descriptor the {@link yfiles.layout.PreferredPlacementDescriptor} that is copied - * @constructor + * @param descriptor the {@link } that is copied */ constructor(descriptor:yfiles.layout.PreferredPlacementDescriptor); /** * Creates a new {@link yfiles.layout.PreferredPlacementDescriptor} instance with default settings. - * @constructor */ constructor(); /** * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.layout.PreferredPlacementDescriptor#isFrozen frozen}. - * @returns {Object} An instance of the same type as this instance. + * @returns An instance of the same type as this instance. */ clone():Object; /** * Makes this {@link yfiles.layout.PreferredPlacementDescriptor} instance immutable. *

    - * If this instance is immutable, all setter methods will throw an {@link Stubs.Exceptions.InvalidOperationError} when invoked. + * If this instance is immutable, all setter methods will throw an {@link yfiles.lang.Exception} when invoked. *

    * @see yfiles.layout.PreferredPlacementDescriptor#isFrozen */ @@ -91263,9 +90701,9 @@ declare namespace system{ /** * Returns whether or not this is an immutable instance of {@link yfiles.layout.PreferredPlacementDescriptor}. *

    - * If this instance is immutable, all setter methods will throw an {@link Stubs.Exceptions.InvalidOperationError} when invoked. + * If this instance is immutable, all setter methods will throw an {@link yfiles.lang.Exception} when invoked. *

    - * @returns {boolean} true if this instance is immutable, false otherwise + * @returns true if this instance is immutable, false otherwise * @see yfiles.layout.PreferredPlacementDescriptor#freeze */ isFrozen():boolean; @@ -91275,8 +90713,8 @@ declare namespace system{ * Descriptor instances returned by this method will use default values for all properties but {@link yfiles.layout.PreferredPlacementDescriptor#placeAlongEdge placement along edge} and * {@link yfiles.layout.PreferredPlacementDescriptor#sideOfEdge side of edge}. *

    - * @param {yfiles.layout.LabelPlacements} placement a combination of valid placements along the edge and valid sides of the edge - * @returns {yfiles.layout.PreferredPlacementDescriptor} an immutable descriptor instance for the specified placement + * @param placement a combination of valid placements along the edge and valid sides of the edge + * @returns an immutable descriptor instance for the specified placement * @see yfiles.layout.PreferredPlacementDescriptor#isFrozen * @see yfiles.layout.PreferredPlacementDescriptor#placeAlongEdge * @see yfiles.layout.PreferredPlacementDescriptor#sideOfEdge @@ -91471,14 +90909,13 @@ declare namespace system{ * A collinear bend forms a straight line with its preceding bend and its subsequent bend. The angle between the connecting * edge segments is either 0 or 180 degrees. *

    - * @class yfiles.layout.RemoveCollinearBendsStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface RemoveCollinearBendsStage extends yfiles.layout.LayoutStageBase{} export class RemoveCollinearBendsStage { /** * Creates a new {@link yfiles.layout.RemoveCollinearBendsStage} instance with default settings. - * @constructor */ constructor(); /** @@ -91510,16 +90947,15 @@ declare namespace system{ /** * {@link yfiles.layout.ReverseEdgesStage} selectively reverses edges in a graph, while keeping the layout and label positions of * the reversed edges as close to the pre-reversal layout and positions as possible. - * @class yfiles.layout.ReverseEdgesStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface ReverseEdgesStage extends yfiles.layout.LayoutStageBase{} export class ReverseEdgesStage { /** * Creates a new {@link yfiles.layout.ReverseEdgesStage} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. + * @param [coreLayouter=null] The core layout algorithm. * @see yfiles.layout.LayoutStageBase#coreLayout - * @constructor */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -91528,9 +90964,9 @@ declare namespace system{ *

    * Only edges in the graph component to which the specified node belongs will be marked. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the specified node belongs - * @param {yfiles.algorithms.Node} root the node to be considered the root of its tree component - * @param {yfiles.algorithms.IDataAcceptor} reversedEdges a {@link yfiles.algorithms.IDataAcceptor} to mark edges for reversal + * @param graph the graph to which the specified node belongs + * @param root the node to be considered the root of its tree component + * @param reversedEdges a {@link } to mark edges for reversal * @throws {Stubs.Exceptions.ArgumentError} if the specified root node is null or does not belong to the specified graph * @see yfiles.layout.ReverseEdgesStage#AFFECTED_EDGES_DP_KEY * @static @@ -91544,8 +90980,8 @@ declare namespace system{ * specified edge are adjusted to match the pre-reversal position as closely as possible. (Depending on a label's model it * might not always be possible to achieve an exact match.) *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the specified edge belongs - * @param {yfiles.algorithms.Edge} edge the edge to be reversed + * @param graph the graph to which the specified edge belongs + * @param edge the edge to be reversed * @see yfiles.layout.LayoutGraphUtilities#reverseEdgeLayout */ reverseEdge(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; @@ -91558,7 +90994,7 @@ declare namespace system{ *

    * Implementation detail: This method calls {@link yfiles.layout.ReverseEdgesStage#reverseEdge} in order to reverse a selected edge. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph in which to reverse edges. + * @param graph the graph in which to reverse edges. * @see yfiles.layout.ReverseEdgesStage#AFFECTED_EDGES_DP_KEY * @see yfiles.layout.ReverseEdgesStage#reverseEdge */ @@ -91615,15 +91051,14 @@ declare namespace system{ * can be used for marking those self-loops. *

    * @see yfiles.layout.MultiStageLayout - * @class yfiles.layout.SelfLoopRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface SelfLoopRouter extends yfiles.layout.LayoutStageBase{} export class SelfLoopRouter { /** * Creates a new {@link yfiles.layout.SelfLoopRouter} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -91635,7 +91070,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.SelfLoopRouter#applyLayout} after the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} has arranged the graph * and all self-loops have been reinserted into the graph. It may be overridden to introduce custom self-loop styles. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @protected */ layoutSelfLoops(graph:yfiles.layout.LayoutGraph):void; @@ -91712,24 +91147,23 @@ declare namespace system{ * One possible application would be to bundle several {@link yfiles.layout.ILayoutAlgorithm layout algorithms} and pass a single {@link yfiles.layout.ILayoutAlgorithm} * instance to a {@link yfiles.layout.BufferedLayout}. *

    - * @class yfiles.layout.SequentialLayout + * @class * @implements {yfiles.layout.ILayoutAlgorithm} */ export interface SequentialLayout extends Object,yfiles.layout.ILayoutAlgorithm{} export class SequentialLayout { /** * Creates a new {@link yfiles.layout.SequentialLayout} instance with an empty chain of {@link yfiles.layout.ILayoutAlgorithm layout algorithms}. - * @constructor */ constructor(); /** * Appends the given {@link yfiles.layout.ILayoutAlgorithm layout algorithm} to the end of the chain. - * @param {yfiles.layout.ILayoutAlgorithm} layouter the {@link yfiles.layout.ILayoutAlgorithm layout algorithm} to append + * @param layouter the {@link layout algorithm} to append */ appendLayout(layouter:yfiles.layout.ILayoutAlgorithm):void; /** * Appends the specified list of {@link yfiles.layout.ILayoutAlgorithm layout algorithms} to the end of the chain. - * @param {yfiles.collections.ICollection.} layouters the list of {@link yfiles.layout.ILayoutAlgorithm layout algorithms} to append + * @param layouters the list of {@link layout algorithms} to append */ appendLayouts(layouters:yfiles.collections.ICollection):void; /** @@ -91737,7 +91171,7 @@ declare namespace system{ *

    * The order of the layout algorithms is defined by the order in which they were appended. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -91762,20 +91196,19 @@ declare namespace system{ * The ranking of edge label positions depends on the locations described in the {@link yfiles.layout.PreferredPlacementDescriptor} * associated with an edge. *

    - * @class yfiles.layout.SimpleProfitModel + * @class * @implements {yfiles.layout.IProfitModel} */ export interface SimpleProfitModel extends Object,yfiles.layout.IProfitModel{} export class SimpleProfitModel { /** * Creates a new instance of {@link yfiles.layout.SimpleProfitModel}. - * @constructor */ constructor(); /** * - * @param {yfiles.layout.LabelCandidate} candidate - * @returns {number} + * @param candidate + * @returns */ getProfit(candidate:yfiles.layout.LabelCandidate):number; static $class:yfiles.lang.Class; @@ -91793,25 +91226,24 @@ declare namespace system{ * {@link yfiles.layout.SliderMode#CENTER} mode on the left, {@link yfiles.layout.SliderMode#SIDE} mode in the middle and {@link yfiles.layout.SliderMode#SINGLE_SIDE} * on the right *

    - * @class yfiles.layout.SliderEdgeLabelLayoutModel + * @class * @implements {yfiles.layout.IEdgeLabelLayoutModel} */ export interface SliderEdgeLabelLayoutModel extends Object,yfiles.layout.IEdgeLabelLayoutModel{} export class SliderEdgeLabelLayoutModel { /** * Creates a new instance of {@link yfiles.layout.SliderEdgeLabelLayoutModel} with the given mode. - * @param {yfiles.layout.SliderMode} mode the slider mode + * @param mode the slider mode * @see yfiles.layout.SliderEdgeLabelLayoutModel#mode - * @constructor */ constructor(mode:yfiles.layout.SliderMode); /** * - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @returns {Object} + * @param labelBounds + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @returns */ createModelParameter(labelBounds:yfiles.algorithms.YOrientedRectangle,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout):Object; /** @@ -91820,21 +91252,21 @@ declare namespace system{ * The number of candidates and their respective locations are computed depending on the geometries of both label and * edge. *

    - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the label for which candidates should be generated - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.layout.EdgeLabelCandidate} instances + * @param labelLayout the label for which candidates should be generated + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @returns a list of {@link } instances */ getLabelCandidates(labelLayout:yfiles.layout.IEdgeLabelLayout,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * - * @param {yfiles.algorithms.YDimension} labelSize - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @param {Object} para - * @returns {yfiles.algorithms.YOrientedRectangle} + * @param labelSize + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @param para + * @returns */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout,para:Object):yfiles.algorithms.YOrientedRectangle; /** @@ -91906,15 +91338,14 @@ declare namespace system{ * The nodes that induce this subgraph are marked using a {@link yfiles.algorithms.IDataProvider} registered with a {@link yfiles.layout.SubgraphLayout#affectedNodesDpKey specific key}. * They will be arranged by the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. *

    - * @class yfiles.layout.SubgraphLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface SubgraphLayout extends yfiles.layout.LayoutStageBase{} export class SubgraphLayout { /** * Creates a new {@link yfiles.layout.SubgraphLayout} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -91928,15 +91359,14 @@ declare namespace system{ } /** * A {@link yfiles.layout.SwimlaneRepresentative SwimlaneRepresentative} represents the position and arrangement mode for a swimlane. - * @class yfiles.layout.SwimlaneRepresentative + * @class */ export interface SwimlaneRepresentative extends Object{} export class SwimlaneRepresentative { /** * Creates a new {@link yfiles.layout.SwimlaneRepresentative} instance. - * @param {number} swimlanePos denotes the current position of the represented swimlane - * @param {boolean} allowRearrangement true if the represented swimlane may be {@link yfiles.layout.SwimlaneRepresentative#allowRearrangement rearranged}, false otherwise - * @constructor + * @param swimlanePos denotes the current position of the represented swimlane + * @param allowRearrangement true if the represented swimlane may be {@link #allowRearrangement rearranged}, false otherwise */ constructor(swimlanePos:number,allowRearrangement:boolean); /** @@ -91964,7 +91394,7 @@ declare namespace system{ *

    * It is used by {@link yfiles.hierarchic.HierarchicLayout} to arrange the nodes in lanes. *

    - * @class yfiles.layout.Swimlanes + * @class * @static */ export interface Swimlanes extends Object{} @@ -91978,10 +91408,10 @@ declare namespace system{ *
  • the number of swimlanes traversed by edges
  • *
  • the number of swimlanes spanned by {@link yfiles.layout.GroupingSupport#isGroupNode group nodes}
  • * - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} node2Swimlane the assignment of nodes to swimlanes - * @param {number} iterations the number of iterations performed by the heuristic. - * @param {yfiles.layout.SwimlanesMode} mode one of the valid swimlane ordering mode specifier + * @param graph the input graph + * @param node2Swimlane the assignment of nodes to swimlanes + * @param iterations the number of iterations performed by the heuristic. + * @param mode one of the valid swimlane ordering mode specifier * @see yfiles.layout.SwimlaneRepresentative * @see yfiles.layout.GroupingSupport * @static @@ -91996,8 +91426,8 @@ declare namespace system{ *
  • the number of swimlanes traversed by edges
  • *
  • the number of swimlanes spanned by {@link yfiles.layout.GroupingSupport#isGroupNode group nodes}
  • * - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} node2Swimlane the assignment of nodes to swimlanes + * @param graph the input graph + * @param node2Swimlane the assignment of nodes to swimlanes * @see yfiles.layout.SwimlaneRepresentative * @see yfiles.layout.GroupingSupport * @static @@ -92005,6 +91435,291 @@ declare namespace system{ static arrangeSwimlanes(graph:yfiles.algorithms.Graph,node2Swimlane:yfiles.algorithms.IDataProvider):void; static $class:yfiles.lang.Class; } + export enum OperationType{ + /** + * Operation specifier defining that the graph will be mirrored at the x-axis. + * @see yfiles.layout.GraphTransformer#operation + */ + MIRROR_X_AXIS, + /** + * Operation specifier defining that the graph will be mirrored at the y-axis. + * @see yfiles.layout.GraphTransformer#operation + */ + MIRROR_Y_AXIS, + /** + * Operation specifier defining that the graph will be rotated. + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.GraphTransformer#rotationAngle + * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled + */ + ROTATE, + /** + * Operation specifier defining that the graph will be scaled. + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.GraphTransformer#scaleFactor + * @see yfiles.layout.GraphTransformer#setScaleFactors + * @see yfiles.layout.GraphTransformer#scaleNodeSize + */ + SCALE, + /** + * Operation specifier defining that the graph will be translated. + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.GraphTransformer#translateX + * @see yfiles.layout.GraphTransformer#translateY + */ + TRANSLATE + } + /** + * This layout algorithm applies geometric transformations to (sub-)graphs. + *

    + * Layout Style There are several ways to transform the graph that include mirroring, rotating, scaling and translating. {@graph {"ann":{"s":[30,30],"d":1},"n":[[-15,235],[-15,360],[-15,110],[235,485],[110,485],[360,485],[-15,485],[485,235],[485,360],[235,-15],[110,-15],[360,-15],[485,110],[-15,-15],[485,485],[485,-15],[235,235,1],[146.61,146.61,1],[146.61,323.39,1],[58.22,235,1],[323.39,323.39,1],[235,411.78,1],[323.39,146.61,1],[235,58.22,1],[411.78,235,1]],"e":[[1,0],[0,2],[4,3],[3,5],[1,6],[6,4],[7,8],[9,10],[11,9],[12,7],[2,13],[13,10],[8,14],[14,5],[11,15],[12,15],[16,17],[16,18],[19,17],[19,18],[20,16],[18,21],[21,20],[22,16],[23,22],[23,17],[20,24],[22,24],[17,0],[19,1],[23,2],[18,3],[4,19],[5,21],[20,7],[21,8],[9,22],[10,23],[24,11],[24,12]],"vp":[-15.0,-15.0,530.0,530.0]}} + *

    + *

    + * The highlighted subgraph is rotated by 45 degrees + *

    + *

    + * Features + *

    + *

    + * The layout can be {@link yfiles.layout.OperationType#SCALE scaled} with independent factors for the horizontal and vertical scaling. Optionally, the sizes of + * nodes can be scaled, too. + *

    + *

    + * The layout can be mirrored either on the {@link yfiles.layout.OperationType#MIRROR_X_AXIS x-axis} or the {@link yfiles.layout.OperationType#MIRROR_Y_AXIS y-axis}. + *

    + *

    + * A {@link yfiles.layout.OperationType#ROTATE rotation} can be specified. Instead of {@link yfiles.layout.GraphTransformer#rotationAngle defining} a rotation angle the angle can be {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled determined automatically} to fit + * specific bounds. + *

    + *

    + * The coordinates in the layout can be {@link yfiles.layout.OperationType#TRANSLATE translated} by a specific vector. + *

    + *

    + * To only apply previously mentioned transformations to a subgraph, the {@link yfiles.layout.SubgraphLayout} needs to be {@link yfiles.layout.MultiStageLayout#subgraphLayoutEnabled enabled}. + * Then the nodes in the subgraph must be marked in a {@link yfiles.algorithms.IDataProvider} registered with the according {@link yfiles.layout.SubgraphLayout#affectedNodesDpKey key}. + *

    + * @class + * @extends {yfiles.layout.MultiStageLayout} + * @implements {yfiles.layout.ILayoutStage} + */ + export interface GraphTransformer extends yfiles.layout.MultiStageLayout,yfiles.layout.ILayoutStage{} + export class GraphTransformer { + /** + * Creates a new instance of {@link yfiles.layout.GraphTransformer} with default settings. + */ + constructor(); + /** + * Rotates the given graph so its resulting bounding box fits best to the given bounds. + * @param graph the graph that is rotated + * @param width the width of the preferred layout bounds + * @param height the height of the preferred layout bounds + * @returns the rotation angle + * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled + * @static + */ + static applyBestFitRotationAngle(graph:yfiles.layout.LayoutGraph,width:number,height:number):number; + /** + * Returns the rotation angle for the graph that will result in a layout that fits best to the given bounds. + * @param graph the graph that is rotated + * @param width the width of the preferred layout bounds + * @param height the height of the preferred layout bounds + * @returns the rotation angle + * @see yfiles.layout.GraphTransformer#applyBestFitRotationAngle + * @static + */ + static findBestFitRotationAngle(graph:yfiles.layout.LayoutGraph,width:number,height:number):number; + /** + * Specifies the preferred size of the layout. + *

    + * If performing a {@link yfiles.layout.OperationType#ROTATE rotation} and this rotation should be + * {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled automatically fitted}, then the given preferred size defines the aspect ratio that will be used for fitting the layout + * rotation. + *

    + *

    + * The preferred width and height need to be non-negative. + *

    + * @param width the preferred width of the layout + * @param height the preferred height of the layout + * @throws {Stubs.Exceptions.ArgumentError} if the specified width or height is negative + * @see yfiles.layout.GraphTransformer#preferredWidth + * @see yfiles.layout.GraphTransformer#preferredHeight + * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#ROTATE + */ + preferredLayoutSize(width:number,height:number):void; + /** + * Fits the given graph into the specified rectangular bounds. + *

    + * If the bounding box fits in the given bounds, nothing is done. Otherwise, the graph is scaled and optionally moved to + * fit. + *

    + * @param graph the graph to modify + * @param x the upper left x-coordinate of the bounds + * @param y the upper left y-coordinate of the bounds + * @param w the width of the bounds + * @param h the height of the bounds + * @static + */ + static setMaximalBounds(graph:yfiles.layout.LayoutGraph,x:number,y:number,w:number,h:number):void; + /** + * Specifies the horizontal and vertical scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. + *

    + * Only positive scaling factors are allowed. + *

    + * @param xFactor the horizontal scaling factor + * @param yFactor the vertical scaling factor + * @throws {Stubs.Exceptions.ArgumentError} if one the specified scaling factors is negative or 0 + * @see yfiles.layout.GraphTransformer#scaleFactorX + * @see yfiles.layout.GraphTransformer#scaleFactorY + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#SCALE + */ + setScaleFactors(xFactor:number,yFactor:number):void; + /** + * Translates the layout coordinates by the given vector. + * @param graph the graph that is translated + * @param dx the horizontal distance the given graph is moved + * @param dy the vertical distance the given graph is moved + * @see yfiles.layout.OperationType#TRANSLATE + * @see yfiles.layout.GraphTransformer#operation + * @static + */ + static translate(graph:yfiles.layout.LayoutGraph,dx:number,dy:number):void; + /** + * + * @type {yfiles.layout.ILayoutAlgorithm} + */ + coreLayout:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the transformation operation. + * @throws {Stubs.Exceptions.ArgumentError} if the specified operation is unknown + * @type {yfiles.layout.OperationType} + */ + operation:yfiles.layout.OperationType; + /** + * Gets or sets the angle of rotation. + *

    + * The angle must be given in degrees. + *

    + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#ROTATE + * @type {number} + */ + rotationAngle:number; + /** + * Gets or sets whether or not to automatically choose the best fitting rotation angle. + *

    + * The angle will be chosen such that the bounding box after the rotation fits best to the {@link yfiles.layout.GraphTransformer#preferredLayoutSize preferred aspect ratio}. + *

    + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#ROTATE + * @type {boolean} + */ + bestFitRotationEnabled:boolean; + /** + * Gets or sets the preferred height of the layout. + *

    + * This value will be used for {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled fitting the rotation} to preferred bounds. + *

    + *

    + * The preferred height needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified height is negative + * @see yfiles.layout.GraphTransformer#preferredWidth + * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#ROTATE + * @type {number} + */ + preferredHeight:number; + /** + * Gets or sets the preferred width of the layout. + *

    + * This value will be used for {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled fitting the rotation} to preferred bounds. + *

    + *

    + * The preferred width needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified width is negative + * @see yfiles.layout.GraphTransformer#preferredHeight + * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#ROTATE + * @type {number} + */ + preferredWidth:number; + /** + * Gets or sets whether or not to also scale node sizes when performing the {@link yfiles.layout.OperationType#SCALE scale operation}. + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#SCALE + * @type {boolean} + */ + scaleNodeSize:boolean; + /** + * Sets the uniform scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. + *

    + * This factor applies vertical and horizontal. + *

    + *

    + * Only positive scaling factors are allowed. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 + * @see yfiles.layout.GraphTransformer#scaleFactorX + * @see yfiles.layout.GraphTransformer#scaleFactorY + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#SCALE + * @type {number} + */ + scaleFactor:number; + /** + * Gets or sets the vertical scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. + *

    + * Only positive scaling factors are allowed. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 + * @see yfiles.layout.GraphTransformer#scaleFactorX + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#SCALE + * @type {number} + */ + scaleFactorY:number; + /** + * Gets or sets the horizontal scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. + *

    + * Only positive scaling factors are allowed. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 + * @see yfiles.layout.GraphTransformer#scaleFactorY + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#SCALE + * @type {number} + */ + scaleFactorX:number; + /** + * Gets or sets the horizontal translation distance. + *

    + * A positive value means the graph is moved to the right while, a negative value means the graph is moved to the left. + *

    + * @see yfiles.layout.GraphTransformer#translateY + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#TRANSLATE + * @type {number} + */ + translateX:number; + /** + * Gets or sets the vertical translation distance. + *

    + * A positive value means the graph is moved downwards, while a negative value means the graph is moved upwards. + *

    + * @see yfiles.layout.GraphTransformer#translateX + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#TRANSLATE + * @type {number} + */ + translateY:number; + static $class:yfiles.lang.Class; + } /** * A {@link yfiles.layout.ILayoutStage layout stage} that can handle fixed nodes in hierarchically grouped graphs. *

    @@ -92032,19 +91747,18 @@ declare namespace system{ * {@graph {"ann":{"s":[30,30],"d":1},"styles":{"6":{"c":1}},"n":[[759.46,-86.88,290.54,283.26,2],[982.99,109.5,6],[796.47,109.5,6],[854.11,-67.88,6],[925.35,-67.88,6],[1005,41.75,6],[925.35,151.37,6],[796.47,-26.01,6],[774.46,41.75,6],[982.99,-26.01,6],[854.11,151.37,6],[123.31,-231.69,216.69,224.72,2],[212.57,-132.33,6],[263.97,-67.88,6],[263.97,-196.77,6],[138.31,-168.09,6],[194.23,-51.97,6],[295,-132.33,6],[138.31,-96.56,6],[194.23,-212.69,6],[265,40.5,430,339,2],[465,234.5,45,30],[380,59.5,45,30],[465,284.5,45,30],[380,109.5,45,30],[465,84.5,45,30],[465,134.5,45,30],[550,209.5,45,30],[380,309.5,45,30],[550,259.5,45,30],[380,259.5,45,30],[465,334.5,45,30],[550,134.5,45,30],[635,134.5,45,30],[465,184.5,45,30],[280,184.5,60,30]],"e":[[9,4],[3,7],[8,7],[4,3],[2,8],[10,2],[6,10],[1,6],[5,1],[2,3],[2,9],[2,1],[5,9],[12,18],[12,13],[12,14],[12,15],[12,19],[12,17],[12,16],[30,21],[21,29],[21,27],[35,22],[30,23],[35,24],[24,26],[24,25],[26,32],[35,28],[35,30],[30,31],[30,34],[32,33],[33,2],[33,8],[33,7],[35,17]],"vp":[123.0,-232.0,927.0,612.0]}} Initial graph. Nodes inside groups have to remain at their relative positions. {@graph {"ann":{"s":[30,30],"d":1},"styles":{"6":{"c":1}},"n":[[754.73,68.37,290.54,283.26,2],[978.26,264.75,6],[791.74,264.75,6],[849.38,87.37,6],[920.62,87.37,6],[1000.27,197,6],[920.62,306.63,6],[791.74,129.25,6],[769.73,197,6],[978.26,129.25,6],[849.38,306.63,6],[-18.35,97.64,216.69,224.72,2],[70.92,197,6],[122.31,261.44,6],[122.31,132.56,6],[-3.35,161.24,6],[52.58,277.36,6],[153.35,197,6],[-3.35,232.76,6],[52.58,116.64,6],[265,40.5,430,339,2],[465,234.5,45,30],[380,59.5,45,30],[465,284.5,45,30],[380,109.5,45,30],[465,84.5,45,30],[465,134.5,45,30],[550,209.5,45,30],[380,309.5,45,30],[550,259.5,45,30],[380,259.5,45,30],[465,334.5,45,30],[550,134.5,45,30],[635,134.5,45,30],[465,184.5,45,30],[280,184.5,60,30]],"e":[[9,4],[3,7],[8,7],[4,3],[2,8],[10,2],[6,10],[1,6],[5,1],[2,3],[2,9],[2,1],[5,9],[12,18],[12,13],[12,14],[12,15],[12,19],[12,17],[12,16],[30,21],[21,29],[21,27],[35,22],[30,23],[35,24],[24,26],[24,25],[26,32],[35,28],[35,30],[30,31],[30,34],[32,33],[33,8,22.5,6,-2.49,-14.78,[782.24,155.5]],[33,7,22.5,-6,-15,-0.75],[33,2,0,15,-15,0,[657.5,279.75]],[35,17,-30,6.25,13.66,-6.25]],"vp":[-19.0,40.0,1065.0,340.0]}} Example after using {@link yfiles.layout.FixGroupLayoutStage} * with {@link yfiles.orthogonal.OrthogonalLayout}. Nodes inside groups did not change relative positions. *

    - * @class yfiles.layout.FixGroupLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface FixGroupLayoutStage extends yfiles.layout.LayoutStageBase{} export class FixGroupLayoutStage { /** * Creates a new instance of {@link yfiles.layout.FixGroupLayoutStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** - * Data provider key for selecting group nodes whose contents should keep their relative positions. + * Data provider key for selecting group nodes whose contents should keep their relative positions *

    * A group node is considered selected in this context, if the corresponding {@link yfiles.algorithms.IDataProvider} returns true for the * group node or any of its ancestor (group) nodes. @@ -92081,8 +91795,8 @@ declare namespace system{ *

    * Nodes that share a common partition ID are considered to belong to the same partition. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.INodeMap} partitionIDMap the map that is filled with the resulting partition IDs + * @param graph the input graph + * @param partitionIDMap the map that is filled with the resulting partition IDs * @abstract */ findPartitions(graph:yfiles.layout.LayoutGraph,partitionIDMap:yfiles.algorithms.INodeMap):void; @@ -92105,9 +91819,9 @@ declare namespace system{ *

    * Edges which connect nodes that belong to two different partitions are called inter-edges *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} partitionIDDP the partition ID for each node in the graph - * @param {yfiles.algorithms.IDataProvider} interEdgeDP the map which marks inter-edges + * @param graph the input graph + * @param partitionIDDP the partition ID for each node in the graph + * @param interEdgeDP the map which marks inter-edges * @abstract */ placePartitions(graph:yfiles.layout.LayoutGraph,partitionIDDP:yfiles.algorithms.IDataProvider,interEdgeDP:yfiles.algorithms.IDataProvider):void; @@ -92133,29 +91847,28 @@ declare namespace system{ * method {@link yfiles.layout.PartitionLayout#interEdgeRouter} * * - * @class yfiles.layout.PartitionLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface PartitionLayout extends yfiles.layout.LayoutStageBase{} export class PartitionLayout { /** * Creates a new {@link yfiles.layout.PartitionLayout} instance with default settings. - * @constructor */ constructor(); /** * Creates a {@link yfiles.layout.IPartitionPlacer} that uses {@link yfiles.layout.ComponentLayout} to place the partitions. - * @param {yfiles.layout.ComponentLayout} [componentLayout=null] An optional {@link yfiles.layout.ComponentLayout} to use. - * @returns {yfiles.layout.IPartitionPlacer} + * @param [componentLayout=null] An optional {@link } to use. + * @returns * @static */ static createComponentPartitionPlacer(componentLayout?:yfiles.layout.ComponentLayout):yfiles.layout.IPartitionPlacer; /** * Creates a {@link yfiles.layout.IPartitionFinder} that uses {@link yfiles.algorithms.Groups#edgeBetweennessClustering} as strategy for * finding graph partitions. - * @param {number} [minimumPartitionCount=0] The minimum number of partitions the result should have. - * @param {number} [maximumPartitionCount=0x7FFFFFFF] The maximum number of partitions the result should have. - * @returns {yfiles.layout.IPartitionFinder} + * @param [minimumPartitionCount=0] The minimum number of partitions the result should have. + * @param [maximumPartitionCount=0x7FFFFFFF] The maximum number of partitions the result should have. + * @returns * @static */ static createEdgeBetweennessPartitionFinder(minimumPartitionCount?:number,maximumPartitionCount?:number):yfiles.layout.IPartitionFinder; @@ -92163,9 +91876,9 @@ declare namespace system{ * Creates a {@link yfiles.layout.IPartitionFinder} that uses {@link yfiles.algorithms.Groups#edgeBetweennessClustering} as strategy for * finding graph partitions. * @param {Object} options The parameters to pass. - * @param {number} [options.minimumPartitionCount=0] The minimum number of partitions the result should have. - * @param {number} [options.maximumPartitionCount=0x7FFFFFFF] The maximum number of partitions the result should have. - * @returns {yfiles.layout.IPartitionFinder} + * @param [options.minimumPartitionCount=0] The minimum number of partitions the result should have. + * @param [options.maximumPartitionCount=0x7FFFFFFF] The maximum number of partitions the result should have. + * @returns * @static */ static createEdgeBetweennessPartitionFinder(options:{minimumPartitionCount?:number,maximumPartitionCount?:number}):yfiles.layout.IPartitionFinder; @@ -92211,15 +91924,14 @@ declare namespace system{ * @see yfiles.layout.PortCandidate * @see yfiles.layout.PortCandidateSet * @see yfiles.layout.PortPlacementStage#pathCorrection - * @class yfiles.layout.PortPlacementStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface PortPlacementStage extends yfiles.layout.LayoutStageBase{} export class PortPlacementStage { /** * Creates a new {@link yfiles.layout.PortPlacementStage} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -92238,7 +91950,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.ComponentLayout}. - * @class yfiles.layout.ComponentLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface ComponentLayoutData extends yfiles.layout.LayoutData{} @@ -92279,7 +91991,7 @@ declare namespace system{ * This is especially useful if several layouts are run at once, for example a general layout and a subsequent edge * routing. *

    - * @class yfiles.layout.CompositeLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface CompositeLayoutData extends yfiles.layout.LayoutData{} @@ -92304,7 +92016,7 @@ declare namespace system{ * Type parameter TItem: The type of the items that are mapped. * Type parameter TValue: The type of the values the items are mapped to. * Type parameter TContext: The type of the context passed to the {@link yfiles.layout.ContextItemMapping.#contextDelegate} - * @class yfiles.layout.ContextItemMapping. + * @class * @extends {yfiles.layout.ItemMapping.} * @template TItem,TValue,TContext */ @@ -92313,10 +92025,10 @@ declare namespace system{ constructor(); /** * Provides a mapper mapping the items to values. - * @param {yfiles.layout.LayoutGraphAdapter} adapter The graph adapter the mapper shall be provided for. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout using the mapper. - * @param {TContext} context The context object passed to the {@link yfiles.layout.ContextItemMapping.#contextDelegate}. - * @returns {yfiles.collections.IMapper.} A mapper mapping the items to values. + * @param adapter The graph adapter the mapper shall be provided for. + * @param layout The layout using the mapper. + * @param context The context object passed to the {@link #contextDelegate}. + * @returns A mapper mapping the items to values. */ provideMapperForContext(adapter:yfiles.layout.LayoutGraphAdapter,layout:yfiles.layout.ILayoutAlgorithm,context:TContext):yfiles.collections.IMapper; /** @@ -92336,7 +92048,7 @@ declare namespace system{ *

    * Type parameter TKey: The type of the keys. * Type parameter TValue: The type of the values. - * @class yfiles.layout.DataProviderAdapter. + * @class * @implements {yfiles.algorithms.IDataProvider} * @template TKey,TValue */ @@ -92344,33 +92056,32 @@ declare namespace system{ export class DataProviderAdapter { /** * Creates a new instance that adapts the provided mapper instance. - * @param {yfiles.lang.Class} keyType The type of the keys. - * @param {yfiles.collections.IMapper.} mapper The mapper to adapt. - * @constructor + * @param keyType The type of the keys. + * @param mapper The mapper to adapt. */ constructor(keyType:yfiles.lang.Class,mapper:yfiles.collections.IMapper); /** * - * @param {Object} dataHolder - * @returns {Object} + * @param dataHolder + * @returns */ get(dataHolder:Object):Object; /** * - * @param {Object} dataHolder - * @returns {boolean} + * @param dataHolder + * @returns */ getBoolean(dataHolder:Object):boolean; /** * - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns */ getInt(dataHolder:Object):number; /** * - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns */ getNumber(dataHolder:Object):number; static $class:yfiles.lang.Class; @@ -92380,7 +92091,7 @@ declare namespace system{ * Type parameter K: The type of the key for the mapper. * Type parameter V: The type of the value for the mapper. * @see yfiles.layout.DataProviderAdapter. - * @class yfiles.layout.DataMapAdapter. + * @class * @extends {yfiles.layout.DataProviderAdapter.} * @implements {yfiles.algorithms.IDataMap} * @template K,V @@ -92389,34 +92100,33 @@ declare namespace system{ export class DataMapAdapter { /** * Initializes a new instance of the {@link yfiles.layout.DataMapAdapter.} class. - * @param {yfiles.lang.Class} keyType1 The type of the key for the mapper. - * @param {yfiles.lang.Class} valueType The type of the value for the mapper. - * @param {yfiles.collections.IMapper.} mapper The mapper to adapt. - * @constructor + * @param keyType The type of the key for the mapper. + * @param valueType The type of the value for the mapper. + * @param mapper The mapper to adapt. */ - constructor(keyType1:yfiles.lang.Class,valueType:yfiles.lang.Class,mapper:yfiles.collections.IMapper); + constructor(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,mapper:yfiles.collections.IMapper); /** * - * @param {Object} dataHolder - * @param {Object} value + * @param dataHolder + * @param value */ set(dataHolder:Object,value:Object):void; /** * - * @param {Object} dataHolder - * @param {boolean} value + * @param dataHolder + * @param value */ setBoolean(dataHolder:Object,value:boolean):void; /** * - * @param {Object} dataHolder - * @param {number} value + * @param dataHolder + * @param value */ setInt(dataHolder:Object,value:number):void; /** * - * @param {Object} dataHolder - * @param {number} value + * @param dataHolder + * @param value */ setNumber(dataHolder:Object,value:number):void; static $class:yfiles.lang.Class; @@ -92427,7 +92137,7 @@ declare namespace system{ * This class supports {@link yfiles.layout.LayoutData} implementations and does not usually have to be used explicitly. *

    * Type parameter T: The type of the items in the collection. - * @class yfiles.layout.DpKeyItemCollection. + * @class * @extends {yfiles.layout.ItemCollection.} * @template T */ @@ -92452,7 +92162,7 @@ declare namespace system{ * {@link yfiles.algorithms.Graph}. Unless that conversion needs to be customized, or aforementioned classes cannot be used, this * class usually doesn't need to be used explicitly. *

    - * @class yfiles.layout.ExtendedEdgeLabelCandidate + * @class * @extends {yfiles.layout.EdgeLabelCandidate} */ export interface ExtendedEdgeLabelCandidate extends yfiles.layout.EdgeLabelCandidate{} @@ -92462,13 +92172,12 @@ declare namespace system{ *

    * Returns a new instance of ExtendedEdgeLabelCandidate. *

    - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate. - * @param {yfiles.algorithms.YDimension} size the size of the candidate. - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.IEdgeLabelLayout} owner the label associated to the candidate. - * @param {boolean} internal flag whether the candidate is allowed to overlap the layout of the edge. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param pos the location of the upper left corner of the candidate. + * @param size the size of the candidate. + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param internal flag whether the candidate is allowed to overlap the layout of the edge. + * @param descriptor the label candidate descriptor. */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.IEdgeLabelLayout,internal:boolean,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92476,12 +92185,11 @@ declare namespace system{ *

    * Returns a new instance of ExtendedEdgeLabelCandidate. *

    - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the label size and orientation - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.IEdgeLabelLayout} owner the label associated to the candidate. - * @param {boolean} internal flag whether the candidate is allowed to overlap the layout of the edge. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param orientedBox the label size and orientation + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param internal flag whether the candidate is allowed to overlap the layout of the edge. + * @param descriptor the label candidate descriptor. */ constructor(orientedBox:yfiles.algorithms.YOrientedRectangle,param:Object,owner:yfiles.layout.IEdgeLabelLayout,internal:boolean,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92489,12 +92197,11 @@ declare namespace system{ *

    * Returns a new instance of ExtendedEdgeLabelCandidate. *

    - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate. - * @param {yfiles.algorithms.YDimension} size the size of the candidate. - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.IEdgeLabelLayout} owner the label associated to the candidate. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param pos the location of the upper left corner of the candidate. + * @param size the size of the candidate. + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param descriptor the label candidate descriptor. */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.IEdgeLabelLayout,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92513,7 +92220,7 @@ declare namespace system{ * {@link yfiles.algorithms.Graph}. Unless that conversion needs to be customized, or aforementioned classes cannot be used, this * class usually doesn't need to be used explicitly. *

    - * @class yfiles.layout.ExtendedLabelCandidateProfitModel + * @class * @implements {yfiles.layout.IProfitModel} */ export interface ExtendedLabelCandidateProfitModel extends Object,yfiles.layout.IProfitModel{} @@ -92524,8 +92231,8 @@ declare namespace system{ * This implementation returns the profit for instances of {@link yfiles.layout.ExtendedNodeLabelCandidate} or 0.0 for other * {@link yfiles.layout.LabelCandidate}s. *

    - * @param {yfiles.layout.LabelCandidate} candidate a label candidate - * @returns {number} a value between 0 and 1. + * @param candidate a label candidate + * @returns a value between 0 and 1. */ getProfit(candidate:yfiles.layout.LabelCandidate):number; static $class:yfiles.lang.Class; @@ -92538,7 +92245,7 @@ declare namespace system{ * {@link yfiles.algorithms.Graph}. Unless that conversion needs to be customized, or aforementioned classes cannot be used, this * class usually doesn't need to be used explicitly. *

    - * @class yfiles.layout.ExtendedNodeLabelCandidate + * @class * @extends {yfiles.layout.NodeLabelCandidate} */ export interface ExtendedNodeLabelCandidate extends yfiles.layout.NodeLabelCandidate{} @@ -92548,13 +92255,12 @@ declare namespace system{ *

    * Returns a new instance of NodeLabelCandidate. *

    - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate. - * @param {yfiles.algorithms.YDimension} size the size of the candidate. - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.INodeLabelLayout} owner the label associated to the candidate. - * @param {boolean} internal flag whether the candidate is inside the node, or outside. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param pos the location of the upper left corner of the candidate. + * @param size the size of the candidate. + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param internal flag whether the candidate is inside the node, or outside. + * @param descriptor the label candidate descriptor. */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.INodeLabelLayout,internal:boolean,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92562,12 +92268,11 @@ declare namespace system{ *

    * Returns a new instance of NodeLabelCandidate. *

    - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the label size and orientation - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.INodeLabelLayout} owner the label associated to the candidate. - * @param {boolean} internal flag whether the candidate is inside the node, or outside. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param orientedBox the label size and orientation + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param internal flag whether the candidate is inside the node, or outside. + * @param descriptor the label candidate descriptor. */ constructor(orientedBox:yfiles.algorithms.YOrientedRectangle,param:Object,owner:yfiles.layout.INodeLabelLayout,internal:boolean,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92575,12 +92280,11 @@ declare namespace system{ *

    * Returns a new instance of ExtendedNodeLabelCandidate. *

    - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate. - * @param {yfiles.algorithms.YDimension} size the size of the candidate. - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.INodeLabelLayout} owner the label associated to the candidate. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param pos the location of the upper left corner of the candidate. + * @param size the size of the candidate. + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param descriptor the label candidate descriptor. */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.INodeLabelLayout,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92592,7 +92296,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.FixGroupLayoutStage}. - * @class yfiles.layout.FixGroupLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface FixGroupLayoutData extends yfiles.layout.LayoutData{} @@ -92620,7 +92324,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.FixNodeLayoutStage}. - * @class yfiles.layout.FixNodeLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface FixNodeLayoutData extends yfiles.layout.LayoutData{} @@ -92644,16 +92348,16 @@ declare namespace system{ * This class supports {@link yfiles.layout.LayoutData} implementations and does not usually have to be used explicitly. *

    * Type parameter TItem: The type of the items in the collection. - * @class yfiles.layout.ItemCollection. + * @class * @template TItem */ export interface ItemCollection extends Object{} export class ItemCollection { /** * Provides a mapper describing which elements are contained in this {@link yfiles.layout.ItemCollection.}. - * @param {yfiles.layout.LayoutGraphAdapter} adapter The graph adapter the mapper shall be provided for. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout using the item collection. - * @returns {yfiles.collections.IMapper.} + * @param adapter The graph adapter the mapper shall be provided for. + * @param layout The layout using the item collection. + * @returns */ provideMapper(adapter:yfiles.layout.LayoutGraphAdapter,layout:yfiles.layout.ILayoutAlgorithm):yfiles.collections.IMapper; /** @@ -92697,34 +92401,49 @@ declare namespace system{ * and {@link yfiles.layout.ItemMapping.#constant} should be set on each instance. *

    *

    - * This class supports {@link yfiles.layout.LayoutData} implementations and does not usually have to be used explicitly. + * This class supports {@link yfiles.layout.LayoutData} implementations and does not usually have to be instantiated by client code + * explicitly. Instances of this class are properties of concrete {@link yfiles.layout.LayoutData} implementations. *

    * Type parameter TItem: The type of the items that are mapped. * Type parameter TValue: The type of the values the items are mapped to. - * @class yfiles.layout.ItemMapping. + * @class * @template TItem,TValue */ export interface ItemMapping extends Object{} export class ItemMapping { /** * Provides a mapper mapping the items to values. - * @param {yfiles.layout.LayoutGraphAdapter} adapter The graph adapter the mapper shall be provided for. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout using the mapper. - * @returns {yfiles.collections.IMapper.} A mapper mapping the items to values. + *

    + * This implementation returns the {@link yfiles.layout.ItemMapping.#mapper} if one has been set, otherwise it will create a mapper from the {@link yfiles.layout.ItemMapping.#delegate} if one has been + * specified or uses a constant mapper if a {@link yfiles.layout.ItemMapping.#constant} has been specified. If none have been specified, null is returned. + *

    + * @param adapter The graph adapter the mapper shall be provided for. + * @param layout The layout using the mapper. + * @returns A mapper that maps items to values or null. */ provideMapper(adapter:yfiles.layout.LayoutGraphAdapter,layout:yfiles.layout.ILayoutAlgorithm):yfiles.collections.IMapper; /** * Gets or sets a delegate that implements the mapping. + *

    + * This value will be ignored if either {@link yfiles.layout.ItemMapping.#mapper} as also been set. It overrides values set to the {@link yfiles.layout.ItemMapping.#constant} property. + *

    * @type {function(TItem): TValue} */ delegate:(key:TItem)=>TValue; /** * Gets or sets an {@link yfiles.collections.IMapper.} that realizes the mapping. + *

    + * Getting this property will automatically create an instance. Values set will override the effect of any values set to + * the {@link yfiles.layout.ItemMapping.#constant} or {@link yfiles.layout.ItemMapping.#delegate} properties. + *

    * @type {yfiles.collections.IMapper.} */ mapper:yfiles.collections.IMapper; /** * Gets or sets a constant value all items are mapped to. + *

    + * This value will be ignored if either {@link yfiles.layout.ItemMapping.#mapper} or {@link yfiles.layout.ItemMapping.#delegate} have also been set. + *

    * @type {TValue} */ constant:TValue; @@ -92738,17 +92457,23 @@ declare namespace system{ * affect the complete layout are available on the specific layout class itself. *

    *

    - * The {@link yfiles.layout.LayoutExecutor} {@link yfiles.layout.LayoutData#apply applies} these configurations when {@link yfiles.layout.LayoutExecutor#start started}. + * The {@link yfiles.layout.LayoutExecutor} {@link yfiles.layout.LayoutData#apply applies} these configurations when {@link yfiles.layout.LayoutExecutor#start started}. So does + * {@link yfiles.layout.LayoutGraphAdapter#applyLayout}. *

    - * @class yfiles.layout.LayoutData + * @see yfiles.layout.LayoutExecutor#layoutData + * @see yfiles.layout.LayoutGraphAdapter#applyLayout + * @class */ export interface LayoutData extends Object{} export class LayoutData { /** * Applies this layout data to the specified layoutGraphAdapter. - * @param {yfiles.layout.LayoutGraphAdapter} layoutGraphAdapter The adapter to add the layout data to. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout that shall use this layout data. - * @param {yfiles.layout.CopiedLayoutGraph} layoutGraph The layout graph used for the layout calculation. + *

    + * This method should be called before a layout is executed. It will configure the adapter and graph for to the layout. + *

    + * @param layoutGraphAdapter The adapter to add the layout data to. + * @param layout The layout that shall use this layout data. + * @param layoutGraph The layout graph used for the layout calculation. * @abstract */ apply(layoutGraphAdapter:yfiles.layout.LayoutGraphAdapter,layout:yfiles.layout.ILayoutAlgorithm,layoutGraph:yfiles.layout.CopiedLayoutGraph):void; @@ -92764,16 +92489,15 @@ declare namespace system{ * can be used instead. *

    * @see yfiles.layout.LayoutGraphAdapter - * @class yfiles.layout.LayoutExecutor + * @class */ export interface LayoutExecutor extends Object{} export class LayoutExecutor { /** * Initializes a new instance of the {@link yfiles.layout.LayoutExecutor} class. - * @param {yfiles.view.GraphComponent} graphComponent The control which will be animated and provides the {@link yfiles.graph.IGraph} instance. - * @param {yfiles.graph.IGraph} graph The graph to layout. - * @param {yfiles.layout.ILayoutAlgorithm} layout The {@link yfiles.layout.ILayoutAlgorithm} to use. - * @constructor + * @param graphComponent The control which will be animated and provides the {@link } instance. + * @param graph The graph to layout. + * @param layout The {@link } to use. */ constructor(graphComponent:yfiles.view.GraphComponent,graph:yfiles.graph.IGraph,layout:yfiles.layout.ILayoutAlgorithm); /** @@ -92782,9 +92506,8 @@ declare namespace system{ * Use the {@link yfiles.layout.LayoutExecutor#start} method to actually execute the task. This will disable animation and content * rect updates. *

    - * @param {yfiles.view.GraphComponent} graphComponent The control which will be animated and provides the {@link yfiles.graph.IGraph} instance. - * @param {yfiles.layout.ILayoutAlgorithm} layout The {@link yfiles.layout.ILayoutAlgorithm} to use. - * @constructor + * @param graphComponent The control which will be animated and provides the {@link } instance. + * @param layout The {@link } to use. */ constructor(graphComponent:yfiles.view.GraphComponent,layout:yfiles.layout.ILayoutAlgorithm); /** @@ -92792,14 +92515,14 @@ declare namespace system{ *

    * This method is called upon first access to the {@link yfiles.layout.LayoutExecutor#abortHandler} property. *

    - * @returns {yfiles.algorithms.AbortHandler} A new {@link yfiles.algorithms.AbortHandler} instance to use during layout calculation. + * @returns A new {@link } instance to use during layout calculation. * @protected */ createAbortHandler():yfiles.algorithms.AbortHandler; /** * Factory method that creates the {@link yfiles.view.IAnimation} that will be used by this instance after the layout has been * calculated. - * @returns {yfiles.view.IAnimation} The animation to use after the layout. + * @returns The animation to use after the layout. * @see yfiles.layout.LayoutExecutor#duration * @see yfiles.layout.LayoutExecutor#animateViewport * @see yfiles.layout.LayoutExecutor#createMorphAnimation @@ -92809,14 +92532,14 @@ declare namespace system{ createAnimation():yfiles.view.IAnimation; /** * Factory method that creates the animation for the {@link yfiles.graph.IGraph}. - * @returns {yfiles.view.IAnimation} The animation instance. + * @returns The animation instance. * @see yfiles.layout.LayoutExecutor#createAnimation * @protected */ createMorphAnimation():yfiles.view.IAnimation; /** * Creates an animation that morphs the layout of all {@link yfiles.graph.ITable}s in the graph. - * @returns {yfiles.view.IAnimation} + * @returns * @see yfiles.view.TableAnimation * @see yfiles.layout.LayoutExecutor#configureTableLayout * @protected @@ -92827,14 +92550,14 @@ declare namespace system{ *

    * This method is called upon first access to the {@link yfiles.layout.LayoutExecutor#tableLayoutConfigurator} property. *

    - * @returns {yfiles.layout.TableLayoutConfigurator} A new instance of the {@link yfiles.layout.TableLayoutConfigurator} class. + * @returns A new instance of the {@link } class. * @protected */ createTableLayoutConfigurator():yfiles.layout.TableLayoutConfigurator; /** * Factory method that creates the animation for the {@link yfiles.view.CanvasComponent#viewport}. - * @param {yfiles.geometry.Rect} targetBounds The target bounds of the animation. - * @returns {yfiles.view.IAnimation} The animation instance. + * @param targetBounds The target bounds of the animation. + * @returns The animation instance. * @see yfiles.layout.LayoutExecutor#createAnimation * @protected */ @@ -92851,7 +92574,7 @@ declare namespace system{ * By default, the value is computed with {@link yfiles.layout.LayoutGraphUtilities#getBoundingBox} with labels and {@link yfiles.layout.LayoutExecutor#targetBoundsInsets} taken into * account. *

    - * @returns {yfiles.geometry.Rect} The desired content rectangle and the bounds for a viewport animation. + * @returns The desired content rectangle and the bounds for a viewport animation. * @protected */ getTargetBounds():yfiles.geometry.Rect; @@ -92879,10 +92602,10 @@ declare namespace system{ * performed. *

    *

    - * If this instance is already running, this method returns immedetaly without doing anything, return the previous + * If this instance is already running, this method returns immedetaly without doing anything and returns the previous * Promise. *

    - * @returns {Promise.} A Promise that will be fulfilled once the layout and optional animation is done. + * @returns A Promise that will be fulfilled once the layout and optional animation is done. * @see yfiles.layout.LayoutExecutor#execute */ start():Promise; @@ -92897,11 +92620,12 @@ declare namespace system{ * To just skip the animation but let the calculation finish normally, the {@link yfiles.layout.LayoutExecutor#duration} can be set to zero at any time before the * animation was started. *

    - * @returns {Promise.} + * @returns */ stop():Promise; /** - * Gets the {@link yfiles.algorithms.AbortHandler} that is used during the layout calculation. + * Gets the {@link yfiles.algorithms.AbortHandler} that is used during the layout calculation, unless another {@link yfiles.algorithms.AbortHandler} + * has been configured via {@link yfiles.layout.LayoutExecutor#layoutData} or by registering an {@link yfiles.collections.IMapper.} in the graph's {@link yfiles.graph.IGraph#mapperRegistry}. * @see yfiles.layout.LayoutExecutor#createAbortHandler * @type {yfiles.algorithms.AbortHandler} */ @@ -93084,17 +92808,16 @@ declare namespace system{ *

    * @see yfiles.layout.CopiedLayoutGraph * @see yfiles.layout.ILayoutAlgorithm - * @class yfiles.layout.LayoutGraphAdapter + * @class */ export interface LayoutGraphAdapter extends Object{} export class LayoutGraphAdapter { /** * Creates the adapter using a given {@link yfiles.graph.IGraph} and {@link yfiles.view.ISelectionModel.}. - * @param {yfiles.graph.IGraph} graph The graph to build an adapter for. - * @param {yfiles.view.ISelectionModel.} [selectionModel=null] The optional selection model to use by the {@link yfiles.layout.LayoutKeys#AFFECTED_NODES_DP_KEY} and {@link yfiles.layout.LayoutKeys#AFFECTED_EDGES_DP_KEY} - * {@link yfiles.algorithms.IDataProvider} instances that are automatically bound to this adapter. + * @param graph The graph to build an adapter for. + * @param [selectionModel=null] The optional selection model to use by the {@link #AFFECTED_NODES_DP_KEY} and {@link #AFFECTED_EDGES_DP_KEY} + * {@link } instances that are automatically bound to this adapter. * @throws {Stubs.Exceptions.ArgumentError} graph is null. - * @constructor */ constructor(graph:yfiles.graph.IGraph,selectionModel?:yfiles.view.ISelectionModel); /** @@ -93102,7 +92825,6 @@ declare namespace system{ *

    * Before this instance can be used for automatic layouts, you mus assign a value to the {@link yfiles.layout.LayoutGraphAdapter#adaptedGraph} property. *

    - * @constructor */ constructor(); /** @@ -93112,54 +92834,55 @@ declare namespace system{ *

    * Type parameter K: The type of the key to use. * Type parameter V: The type of the value to use. - * @param {yfiles.lang.Class} valueType The type of the value to use. - * @param {yfiles.lang.Class} keyType The type of the key to use. - * @param {Object} dataKey The look-up key to register the data provider with. - * @param {yfiles.collections.IMapper.} mapper The mapper wrapped as data provider. - * @returns {yfiles.algorithms.IDataProvider} + * @param valueType The type of the value to use. + * @param keyType The type of the key to use. + * @param dataKey The look-up key to register the data provider with. + * @param mapper The mapper wrapped as data provider. + * @returns * @template K,V */ addDataProvider(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,dataKey:Object,mapper:yfiles.collections.IMapper):yfiles.algorithms.IDataProvider; /** - * Convenience method that applies a {@link yfiles.layout.ILayoutAlgorithm layout algorithm} to an {@link yfiles.graph.IGraph}. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout algorithm to apply. - * @param {yfiles.layout.LayoutData} [layoutData=null] The layout data. + * Convenience method that applies a {@link yfiles.layout.ILayoutAlgorithm layout algorithm} to an {@link yfiles.graph.IGraph}, optionally applying some + * {@link yfiles.layout.LayoutData}. + * @param layout The layout algorithm to apply. + * @param [layoutData=null] The layout data. */ applyLayout(layout:yfiles.layout.ILayoutAlgorithm,layoutData?:yfiles.layout.LayoutData):void; /** * Static convenience method that applies a {@link yfiles.layout.ILayoutAlgorithm layout algorithm} to an {@link yfiles.graph.IGraph}. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout algorithm to apply. - * @param {yfiles.graph.IGraph} graph The graph to compute the layout on. - * @param {yfiles.layout.LayoutData} [layoutData=null] The layout data. + * @param layout The layout algorithm to apply. + * @param graph The graph to compute the layout on. + * @param [layoutData=null] The layout data. * @static */ static applyLayout(graph:yfiles.graph.IGraph,layout:yfiles.layout.ILayoutAlgorithm,layoutData?:yfiles.layout.LayoutData):void; /** * Creates a {@link yfiles.layout.CopiedLayoutGraph} for this instance. - * @returns {yfiles.layout.CopiedLayoutGraph} An instance whose {@link yfiles.layout.CopiedLayoutGraph#commitLayoutToOriginalGraph} will update this instance. + * @returns An instance whose {@link #commitLayoutToOriginalGraph} will update this instance. */ createCopiedLayoutGraph():yfiles.layout.CopiedLayoutGraph; /** * Creates the {@link yfiles.layout.EdgeLabelCandidate} for a given label and {@link yfiles.graph.ILabelModelParameter} combination. - * @param {yfiles.graph.ILabel} originalLabel The original label. - * @param {yfiles.graph.ILabel} dummyLabel The dummy label that describes the current laid out label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to create a candidate for. - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout The {@link yfiles.layout.IEdgeLabelLayout} of the label to pass to the candidate. - * @returns {yfiles.layout.EdgeLabelCandidate} A candidate to yield for the labeling algorithms or null. + * @param originalLabel The original label. + * @param dummyLabel The dummy label that describes the current laid out label. + * @param layoutParameter The parameter to create a candidate for. + * @param labelLayout The {@link } of the label to pass to the candidate. + * @returns A candidate to yield for the labeling algorithms or null. */ createEdgeLabelCandidate(originalLabel:yfiles.graph.ILabel,dummyLabel:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter,labelLayout:yfiles.layout.IEdgeLabelLayout):yfiles.layout.EdgeLabelCandidate; /** * Factory method that creates an {@link yfiles.layout.IEdgeLayout} implementation that wraps the given {@link yfiles.graph.IEdge} - * @param {yfiles.graph.IEdge} edge The edge to wrap. - * @returns {yfiles.layout.IEdgeLayout} A wrapper instance. + * @param edge The edge to wrap. + * @returns A wrapper instance. * @protected */ createEdgeLayout(edge:yfiles.graph.IEdge):yfiles.layout.IEdgeLayout; /** * Callback factory method that creates the {@link yfiles.layout.INodeLayout} for the given {@link yfiles.graph.IPort} that is used as a * dummy to represent the port at the {@link yfiles.graph.IEdge} that owns port. - * @param {yfiles.graph.IPort} port The port to create the layout for. - * @returns {yfiles.layout.INodeLayout} A suitable implementation of {@link yfiles.layout.INodeLayout} that uses the {@link yfiles.graph.IPort#location port's location} as the center of the node. + * @param port The port to create the layout for. + * @returns A suitable implementation of {@link } that uses the {@link #location port's location} as the center of the node. * @see yfiles.layout.LayoutGraphAdapter#edgePortNodeSize * @see yfiles.layout.LayoutGraphAdapter#hideEdgesAtEdges * @protected @@ -93167,49 +92890,49 @@ declare namespace system{ createEdgePortLayout(port:yfiles.graph.IPort):yfiles.layout.INodeLayout; /** * Creates a {@link yfiles.layout.NodeLabelCandidate} for a given label and {@link yfiles.graph.ILabelModelParameter} combination. - * @param {yfiles.graph.ILabel} originalLabel The original label. - * @param {yfiles.graph.ILabel} dummyLabel The dummy label that describes the current laid out label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to create a candidate for. - * @param {yfiles.layout.INodeLabelLayout} ownerLayout The {@link yfiles.layout.INodeLabelLayout} of the label to pass to the candidate. - * @returns {yfiles.layout.NodeLabelCandidate} A candidate to yield for the labeling algorithms or null. + * @param originalLabel The original label. + * @param dummyLabel The dummy label that describes the current laid out label. + * @param layoutParameter The parameter to create a candidate for. + * @param ownerLayout The {@link } of the label to pass to the candidate. + * @returns A candidate to yield for the labeling algorithms or null. */ createNodeLabelCandidate(originalLabel:yfiles.graph.ILabel,dummyLabel:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter,ownerLayout:yfiles.layout.INodeLabelLayout):yfiles.layout.NodeLabelCandidate; /** * Factory method that creates a {@link yfiles.layout.INodeLayout} implementation that wraps the given {@link yfiles.graph.INode} - * @param {yfiles.graph.INode} node The node to wrap. - * @returns {yfiles.layout.INodeLayout} A wrapper instance. + * @param node The node to wrap. + * @returns A wrapper instance. * @protected */ createNodeLayout(node:yfiles.graph.INode):yfiles.layout.INodeLayout; /** * - * @returns {yfiles.collections.IEnumerable.} + * @returns */ edgeObjects():yfiles.collections.IEnumerable; /** * - * @param {Object} dataKey - * @returns {yfiles.algorithms.IDataProvider} + * @param dataKey + * @returns */ getDataProvider(dataKey:Object):yfiles.algorithms.IDataProvider; /** * - * @param {Object} edge - * @returns {Array.} + * @param edge + * @returns */ getEdgeLabelLayout(edge:Object):yfiles.layout.IEdgeLabelLayout[]; /** * - * @param {Object} edge - * @returns {yfiles.layout.IEdgeLayout} + * @param edge + * @returns */ getEdgeLayout(edge:Object):yfiles.layout.IEdgeLayout; /** * Callback that retrieves the label candidate descriptor for the given label and parameter. - * @param {yfiles.graph.ILabel} originalLabel The original label to which a parameter will be applied. - * @param {yfiles.graph.ILabel} dummyLabel The dummy label to which the parameter will be applied. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to apply. - * @returns {yfiles.graph.ILabelCandidateDescriptor} A descriptor or null. + * @param originalLabel The original label to which a parameter will be applied. + * @param dummyLabel The dummy label to which the parameter will be applied. + * @param layoutParameter The parameter to apply. + * @returns A descriptor or null. * @see yfiles.layout.LayoutGraphAdapter#createNodeLabelCandidate * @see yfiles.layout.LayoutGraphAdapter#createEdgeLabelCandidate * @see yfiles.layout.LayoutGraphAdapter#getLabelCandidateDescriptorProvider @@ -93222,38 +92945,38 @@ declare namespace system{ * This implementation uses the {@link yfiles.graph.IGraph}'s {@link yfiles.graph.ILookup} to find an implementation of the * {@link yfiles.graph.ILabelCandidateDescriptorProvider}. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @returns {yfiles.graph.ILabelCandidateDescriptorProvider} The result of a {@link yfiles.graph.ILookup#lookup} query on graph for the {@link yfiles.graph.ILabelCandidateDescriptorProvider} type. + * @param graph The graph. + * @returns The result of a {@link #lookup} query on graph for the {@link } type. * @protected */ getLabelCandidateDescriptorProvider(graph:yfiles.graph.IGraph):yfiles.graph.ILabelCandidateDescriptorProvider; /** * - * @param {Object} node - * @returns {Array.} + * @param node + * @returns */ getNodeLabelLayout(node:Object):yfiles.layout.INodeLabelLayout[]; /** * - * @param {Object} o - * @returns {yfiles.layout.INodeLayout} + * @param o + * @returns */ getNodeLayout(o:Object):yfiles.layout.INodeLayout; /** * - * @param {Object} edgeObject - * @returns {Object} + * @param edgeObject + * @returns */ getSource(edgeObject:Object):Object; /** * - * @param {Object} edgeObject - * @returns {Object} + * @param edgeObject + * @returns */ getTarget(edgeObject:Object):Object; /** * - * @returns {yfiles.collections.IEnumerable.} + * @returns */ nodeObjects():yfiles.collections.IEnumerable; /** @@ -93262,8 +92985,8 @@ declare namespace system{ * This method is called only for ports which are owned by edges. These are represented by dummy nodes during the layout, * and newLocation is the position of the dummy node after the layout. *

    - * @param {yfiles.graph.IPort} port The edge port that should be placed. - * @param {yfiles.geometry.Point} newLocation The new location of the port as calculated by the layout algorithm. + * @param port The edge port that should be placed. + * @param newLocation The new location of the port as calculated by the layout algorithm. * @protected */ setEdgePortLocation(port:yfiles.graph.IPort,newLocation:yfiles.geometry.Point):void; @@ -93273,8 +92996,8 @@ declare namespace system{ * The default implementation calls {@link yfiles.graph.IGraph#setRelativePortLocation} with * newRelativeLocation. Depending on the port location model, the actual resulting port location may be different. *

    - * @param {yfiles.graph.IPort} port The port that should be placed. - * @param {yfiles.geometry.Point} newRelativeLocation The new coordinate offsets relative to the center of the node's {@link yfiles.graph.INode#layout}'s center. + * @param port The port that should be placed. + * @param newRelativeLocation The new coordinate offsets relative to the center of the node's {@link #layout}'s center. * @protected */ setRelativePortLocation(port:yfiles.graph.IPort,newRelativeLocation:yfiles.geometry.Point):void; @@ -93488,14 +93211,14 @@ declare namespace system{ /** * Specifies a {@link yfiles.layout.PartitionGrid} for a layout. *

    - * The {@link yfiles.layout.PartitionCellId} mapping has to be specified by either setting the {@link yfiles.layout.PartitionGridData#cellIds} property, or both the {@link yfiles.layout.PartitionGridData#rowIndices} and {@link yfiles.layout.PartitionGridData#columnIndices} - * properties. When {@link yfiles.layout.PartitionGridData#cellIds} is set, the {@link yfiles.layout.PartitionGridData#grid} property is expected to be set as well. Otherwise the size of the grid may be induced by - * the maximum row and column indices returned by {@link yfiles.layout.PartitionGridData#rowIndices} and {@link yfiles.layout.PartitionGridData#columnIndices}. + * The {@link yfiles.layout.PartitionCellId} mapping has to be specified by either setting the {@link yfiles.layout.PartitionGridData#cellIds} property, or either or both of the + * {@link yfiles.layout.PartitionGridData#rowIndices} and {@link yfiles.layout.PartitionGridData#columnIndices} properties. When {@link yfiles.layout.PartitionGridData#cellIds} is set, the {@link yfiles.layout.PartitionGridData#grid} property must be set as well. Otherwise the size of the grid may be induced by the + * maximum row and column indices returned by {@link yfiles.layout.PartitionGridData#rowIndices} and {@link yfiles.layout.PartitionGridData#columnIndices}. *

    *

    * Note that cell spanning is only supported using the {@link yfiles.layout.PartitionGridData#cellIds}. *

    - * @class yfiles.layout.PartitionGridData + * @class * @extends {yfiles.layout.LayoutData} */ export interface PartitionGridData extends yfiles.layout.LayoutData{} @@ -93526,7 +93249,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.PartitionLayout}. - * @class yfiles.layout.PartitionLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface PartitionLayoutData extends yfiles.layout.LayoutData{} @@ -93560,7 +93283,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.RecursiveGroupLayout}. - * @class yfiles.layout.RecursiveGroupLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface RecursiveGroupLayoutData extends yfiles.layout.LayoutData{} @@ -93638,7 +93361,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.ReverseEdgesStage}. - * @class yfiles.layout.ReverseEdgesStageData + * @class * @extends {yfiles.layout.LayoutData} */ export interface ReverseEdgesStageData extends yfiles.layout.LayoutData{} @@ -93687,7 +93410,7 @@ declare namespace system{ * This class supports {@link yfiles.layout.LayoutData} implementations and does not usually have to be used explicitly. *

    * Type parameter V: The type of the items in the collection. - * @class yfiles.layout.SingleItemCollection. + * @class * @extends {yfiles.layout.ItemCollection.} * @template V */ @@ -93709,14 +93432,14 @@ declare namespace system{ * a partition grid before the layout is calculated and {@link yfiles.layout.TableLayoutConfigurator#restore} the graph * afterwards. *

    - * @class yfiles.layout.TableLayoutConfigurator + * @class */ export interface TableLayoutConfigurator extends Object{} export class TableLayoutConfigurator { /** * Destroy all information that results from a previous {@link yfiles.layout.TableLayoutConfigurator#prepare} and a subsequent * layout - * @param {yfiles.graph.IGraph} graph + * @param graph */ cleanUp(graph:yfiles.graph.IGraph):void; /** @@ -93725,9 +93448,9 @@ declare namespace system{ * This method does not modify originalTable. You also need to call {@link yfiles.layout.TableLayoutConfigurator#cleanUp} * explicitly if you don't need the {@link yfiles.layout.TableLayoutConfigurator} anymore. *

    - * @param {yfiles.graph.ITable} originalTable The table - * @param {yfiles.geometry.Rect} nodeLayout The final layout of the node that owns the table - * @returns {Array.} The sizes of all leaf rows in originalTable, in their natural order. + * @param originalTable The table + * @param nodeLayout The final layout of the node that owns the table + * @returns The sizes of all leaf rows in originalTable, in their natural order. */ getColumnLayout(originalTable:yfiles.graph.ITable,nodeLayout:yfiles.geometry.Rect):number[]; /** @@ -93736,19 +93459,19 @@ declare namespace system{ * This method does not modify originalTable. You also need to call {@link yfiles.layout.TableLayoutConfigurator#cleanUp} * explicitly if you don't need the {@link yfiles.layout.TableLayoutConfigurator} anymore. *

    - * @param {yfiles.graph.ITable} originalTable The table - * @param {yfiles.geometry.Rect} nodeLayout The final layout of the node that owns the table - * @returns {Array.} The sizes of all leaf rows in originalTable, in their natural order. + * @param originalTable The table + * @param nodeLayout The final layout of the node that owns the table + * @returns The sizes of all leaf rows in originalTable, in their natural order. */ getRowLayout(originalTable:yfiles.graph.ITable,nodeLayout:yfiles.geometry.Rect):number[]; /** * Setup partition grid information from a graph that contains table structures - * @param {yfiles.graph.IGraph} graph + * @param graph */ prepare(graph:yfiles.graph.IGraph):void; /** * Write back all information from the partition grid - * @param {yfiles.graph.IGraph} graph + * @param graph */ restore(graph:yfiles.graph.IGraph):void; /** @@ -93818,7 +93541,7 @@ declare namespace system{ * @see yfiles.algorithms.SpanningTrees * @see yfiles.algorithms.Transitivity * @see yfiles.algorithms.Trees - * @class yfiles.layout.YGraphAdapter + * @class */ export interface YGraphAdapter extends Object{} export class YGraphAdapter { @@ -93827,8 +93550,7 @@ declare namespace system{ *

    * This will create a copy of the originalGraph that has the same structure and makes it available via the {@link yfiles.layout.YGraphAdapter#yGraph} property. *

    - * @param {yfiles.graph.IGraph} originalGraph The original graph whose structure will be copied. - * @constructor + * @param originalGraph The original graph whose structure will be copied. */ constructor(originalGraph:yfiles.graph.IGraph); /** @@ -93839,10 +93561,10 @@ declare namespace system{ *

    * Type parameter K: The type of the keys in the mapper. * Type parameter V: The type of the values in the mapper. - * @param {yfiles.lang.Class} valueType The type of the values in the mapper. - * @param {yfiles.lang.Class} keyType The type of the keys in the mapper. - * @param {yfiles.collections.IMapper.} mapper The mapper to direct requests to. - * @returns {yfiles.algorithms.IDataMap} An {@link yfiles.algorithms.IDataMap} that will delegate the functionality to the mapper. + * @param valueType The type of the values in the mapper. + * @param keyType The type of the keys in the mapper. + * @param mapper The mapper to direct requests to. + * @returns An {@link } that will delegate the functionality to the mapper. * @see yfiles.layout.YGraphAdapter#createDataProvider * @template K,V */ @@ -93855,10 +93577,10 @@ declare namespace system{ *

    * Type parameter K: The type of the keys in the mapper. * Type parameter V: The type of the values in the mapper. - * @param {yfiles.lang.Class} valueType The type of the values in the mapper. - * @param {yfiles.lang.Class} keyType The type of the keys in the mapper. - * @param {function(K): V} getter The mapper delegate to direct requests to. - * @returns {yfiles.algorithms.IDataProvider} A DataProvider that will delegate requests to the getter. + * @param valueType The type of the values in the mapper. + * @param keyType The type of the keys in the mapper. + * @param getter The mapper delegate to direct requests to. + * @returns A DataProvider that will delegate requests to the getter. * @template K,V */ createDataProvider(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,getter:(key:K)=>V):yfiles.algorithms.IDataProvider; @@ -93870,10 +93592,10 @@ declare namespace system{ *

    * Type parameter K: The type of the keys in the mapper. * Type parameter V: The type of the values in the mapper. - * @param {yfiles.lang.Class} valueType The type of the values in the mapper. - * @param {yfiles.lang.Class} keyType The type of the keys in the mapper. - * @param {yfiles.collections.IMapper.} mapper The mapper to direct requests to. - * @returns {yfiles.algorithms.IDataProvider} A DataProvider that will delegate requests to the mapper. + * @param valueType The type of the values in the mapper. + * @param keyType The type of the keys in the mapper. + * @param mapper The mapper to direct requests to. + * @returns A DataProvider that will delegate requests to the mapper. * @template K,V */ createDataProvider(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,mapper:yfiles.collections.IMapper):yfiles.algorithms.IDataProvider; @@ -93883,8 +93605,8 @@ declare namespace system{ * This method is useful where algorithms yield {@link yfiles.algorithms.EdgeList} instances as results and the result needs to be * interpreted in terms of the {@link yfiles.layout.YGraphAdapter#originalGraph}. *

    - * @param {yfiles.algorithms.EdgeList} edges The edge list. - * @returns {yfiles.collections.IListEnumerable.} An enumerable that contains the {@link yfiles.layout.YGraphAdapter#getOriginalEdge original} edges for the ones in the list. + * @param edges The edge list. + * @returns An enumerable that contains the {@link #getOriginalEdge original} edges for the ones in the list. */ createEdgeEnumerable(edges:yfiles.algorithms.EdgeList):yfiles.collections.IListEnumerable; /** @@ -93893,8 +93615,8 @@ declare namespace system{ * This method is useful where algorithms require {@link yfiles.algorithms.EdgeList} instances as input and those edges are * available as {@link yfiles.collections.IEnumerable.}s in the {@link yfiles.layout.YGraphAdapter#originalGraph}. *

    - * @param {yfiles.collections.IEnumerable.} edges The edges from the {@link yfiles.layout.YGraphAdapter#originalGraph}. - * @returns {yfiles.algorithms.EdgeList} An {@link yfiles.algorithms.EdgeList} that contains the {@link yfiles.layout.YGraphAdapter#getCopiedEdge copied} edges for the ones in the enumerable. + * @param edges The edges from the {@link #originalGraph}. + * @returns An {@link } that contains the {@link #getCopiedEdge copied} edges for the ones in the enumerable. */ createEdgeList(edges:yfiles.collections.IEnumerable):yfiles.algorithms.EdgeList; /** @@ -93905,8 +93627,8 @@ declare namespace system{ * corresponding dynamic callback that provides the values for the {@link yfiles.layout.YGraphAdapter#getOriginalEdge original edges}. *

    * Type parameter V: The type of the values in the mapper. - * @param {function(yfiles.graph.IEdge): V} getter The mapper delegate to direct read requests to. - * @returns {yfiles.algorithms.IEdgeMap} An {@link yfiles.algorithms.INodeMap} that will delegate reads to the getter. + * @param getter The mapper delegate to direct read requests to. + * @returns An {@link } that will delegate reads to the getter. * @template V */ createEdgeMap(getter:(key:yfiles.graph.IEdge)=>V):yfiles.algorithms.IEdgeMap; @@ -93917,8 +93639,8 @@ declare namespace system{ * corresponding {@link yfiles.collections.IMapper.} instances that provide and accept the values for the {@link yfiles.layout.YGraphAdapter#getOriginalEdge original edges}. *

    * Type parameter V: The type of the values in the mapper. - * @param {yfiles.collections.IMapper.} mapper The mapper to direct requests to. - * @returns {yfiles.algorithms.IEdgeMap} An {@link yfiles.algorithms.IEdgeMap} that will delegate reads and writes to the mapper. + * @param mapper The mapper to direct requests to. + * @returns An {@link } that will delegate reads and writes to the mapper. * @template V */ createEdgeMap(mapper:yfiles.collections.IMapper):yfiles.algorithms.IEdgeMap; @@ -93930,8 +93652,8 @@ declare namespace system{ * instances that use the {@link yfiles.layout.YGraphAdapter#getOriginalNode original nodes}. *

    * Type parameter T: The type of the values in the mapper. - * @param {yfiles.algorithms.INodeMap} nodeMap The map to direct requests to. - * @returns {yfiles.collections.IMapper.} A mapper that will delegate requests to the nodeMap. + * @param nodeMap The map to direct requests to. + * @returns A mapper that will delegate requests to the nodeMap. * @template T */ createEdgeMapper(nodeMap:yfiles.algorithms.INodeMap):yfiles.collections.IMapper; @@ -93943,8 +93665,8 @@ declare namespace system{ * {@link yfiles.collections.IMapper.} instances that use the {@link yfiles.layout.YGraphAdapter#getOriginalEdge original edges} and the {@link yfiles.layout.YGraphAdapter#getOriginalNode original nodes}. *

    * Type parameter T: The type of the values in the mapper. - * @param {yfiles.algorithms.IDataProvider} dataProvider The provider to direct requests to. - * @returns {yfiles.collections.IMapper.} A mapper that will delegate requests to the dataProvider. + * @param dataProvider The provider to direct requests to. + * @returns A mapper that will delegate requests to the dataProvider. * @template T */ createMapper(dataProvider:yfiles.algorithms.IDataProvider):yfiles.collections.IMapper; @@ -93954,8 +93676,8 @@ declare namespace system{ * This method is useful where algorithms yield {@link yfiles.algorithms.NodeList} instances as results and the result needs to be * interpreted in terms of the {@link yfiles.layout.YGraphAdapter#originalGraph}. *

    - * @param {yfiles.algorithms.NodeList} nodes The node list. - * @returns {yfiles.collections.IListEnumerable.} An enumerable that contains the {@link yfiles.layout.YGraphAdapter#getOriginalNode original} nodes for the ones in the list. + * @param nodes The node list. + * @returns An enumerable that contains the {@link #getOriginalNode original} nodes for the ones in the list. */ createNodeEnumerable(nodes:yfiles.algorithms.NodeList):yfiles.collections.IListEnumerable; /** @@ -93964,8 +93686,8 @@ declare namespace system{ * This method is useful where algorithms require {@link yfiles.algorithms.NodeList} instances as input and those nodes are * available as {@link yfiles.collections.IEnumerable.}s in the {@link yfiles.layout.YGraphAdapter#originalGraph}. *

    - * @param {yfiles.collections.IEnumerable.} nodes The nodes from the {@link yfiles.layout.YGraphAdapter#originalGraph}. - * @returns {yfiles.algorithms.NodeList} A {@link yfiles.algorithms.NodeList} that contains the {@link yfiles.layout.YGraphAdapter#getCopiedNode copied} nodes for the ones in the enumerable. + * @param nodes The nodes from the {@link #originalGraph}. + * @returns A {@link } that contains the {@link #getCopiedNode copied} nodes for the ones in the enumerable. */ createNodeList(nodes:yfiles.collections.IEnumerable):yfiles.algorithms.NodeList; /** @@ -93976,8 +93698,8 @@ declare namespace system{ * corresponding dynamic callback that provides the values for the {@link yfiles.layout.YGraphAdapter#getOriginalNode original nodes}. *

    * Type parameter V: The type of the values in the mapper. - * @param {function(yfiles.graph.INode): V} getter The mapper delegate to direct read requests to. - * @returns {yfiles.algorithms.INodeMap} An {@link yfiles.algorithms.INodeMap} that will delegate reads to the getter. + * @param getter The mapper delegate to direct read requests to. + * @returns An {@link } that will delegate reads to the getter. * @template V */ createNodeMap(getter:(key:yfiles.graph.INode)=>V):yfiles.algorithms.INodeMap; @@ -93988,8 +93710,8 @@ declare namespace system{ * corresponding {@link yfiles.collections.IMapper.} instances that provide and accept the values for the {@link yfiles.layout.YGraphAdapter#getOriginalNode original nodes}. *

    * Type parameter V: The type of the values in the mapper. - * @param {yfiles.collections.IMapper.} mapper The mapper to direct requests to. - * @returns {yfiles.algorithms.INodeMap} An {@link yfiles.algorithms.INodeMap} that will delegate reads and writes to the mapper. + * @param mapper The mapper to direct requests to. + * @returns An {@link } that will delegate reads and writes to the mapper. * @template V */ createNodeMap(mapper:yfiles.collections.IMapper):yfiles.algorithms.INodeMap; @@ -94001,33 +93723,33 @@ declare namespace system{ * {@link yfiles.collections.IMapper.} instances that use the {@link yfiles.layout.YGraphAdapter#getOriginalEdge original edges}. *

    * Type parameter T: The type of the values in the mapper. - * @param {yfiles.algorithms.IEdgeMap} edgeMap The map to direct requests to. - * @returns {yfiles.collections.IMapper.} A mapper that will delegate requests to the edgeMap. + * @param edgeMap The map to direct requests to. + * @returns A mapper that will delegate requests to the edgeMap. * @template T */ createNodeMapper(edgeMap:yfiles.algorithms.IEdgeMap):yfiles.collections.IMapper; /** * Yields the edge that has been created as a copy in {@link yfiles.layout.YGraphAdapter#yGraph} to represent the given edge. - * @param {yfiles.graph.IEdge} edge The edge for which the representation is returned. - * @returns {yfiles.algorithms.Edge} The edge that represents edge in {@link yfiles.layout.YGraphAdapter#yGraph}. + * @param edge The edge for which the representation is returned. + * @returns The edge that represents edge in {@link #yGraph}. */ getCopiedEdge(edge:yfiles.graph.IEdge):yfiles.algorithms.Edge; /** * Yields the node that has been created as a copy in {@link yfiles.layout.YGraphAdapter#yGraph} to represent the given node. - * @param {yfiles.graph.INode} node The node for which the representation is returned. - * @returns {yfiles.algorithms.Node} The node that represents node in {@link yfiles.layout.YGraphAdapter#yGraph}. + * @param node The node for which the representation is returned. + * @returns The node that represents node in {@link #yGraph}. */ getCopiedNode(node:yfiles.graph.INode):yfiles.algorithms.Node; /** * Yields the original edge from the {@link yfiles.layout.YGraphAdapter#originalGraph original IGraph} that the given edge has been created for. - * @param {yfiles.algorithms.Edge} edge The edge for which the original instance will be returned. - * @returns {yfiles.graph.IEdge} The original instance. + * @param edge The edge for which the original instance will be returned. + * @returns The original instance. */ getOriginalEdge(edge:yfiles.algorithms.Edge):yfiles.graph.IEdge; /** * Yields the original node from the {@link yfiles.layout.YGraphAdapter#originalGraph original IGraph} that the given node has been created for. - * @param {yfiles.algorithms.Node} node The node for which the original instance will be returned. - * @returns {yfiles.graph.INode} The original instance. + * @param node The node for which the original instance will be returned. + * @returns The original instance. */ getOriginalNode(node:yfiles.algorithms.Node):yfiles.graph.INode; /** @@ -94042,5929 +93764,6 @@ declare namespace system{ originalGraph:yfiles.graph.IGraph; static $class:yfiles.lang.Class; } - }export namespace labeling{ - export enum OptimizationStrategy{ - /** - * An optimization strategy aiming at a good balance between the available optimization options. - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - */ - BALANCED, - /** - * An optimization strategy that especially reduces overlaps between labels and nodes as well as labels and node halos. - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - */ - NODE_OVERLAP, - /** - * An optimization strategy that especially reduces overlaps between labels. - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - */ - LABEL_OVERLAP, - /** - * An optimization strategy that especially reduces overlaps between labels and edges. - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - */ - EDGE_OVERLAP, - /** - * An optimization strategy that mainly tries to satisfy the preferences described by a {@link yfiles.layout.PreferredPlacementDescriptor} - * associated with edge labels. - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - */ - PREFERRED_PLACEMENT, - /** - * Use no optimization strategy. - */ - NONE - } - /** - * A generic labeling algorithm for placing the labels of a graph. - *

    - * {@graph {"ann":{"s":[30,30],"d":1,"c":1,"lblFlip":1,"lblB":1},"n":[[249.44,602.63,[[212.75,626.98,32.69,18.7,"Node"]]],[306.92,686.94,[[270.24,711.29,32.69,18.7,"Node"]]],[481.7,787.85,[[515.7,812.2,32.69,18.7,"Node"]]],[219.36,505.12,[[182.67,529.47,32.69,18.7,"Node"]]],[386.71,750.57,[[350.02,774.92,32.69,18.7,"Node"]]],[885,353.19,[[883.66,405.89,32.69,18.7,"Node"]]],[840.72,261.25,[[839.38,257.25,32.69,18.7,"Node"]]],[583.46,112.72,[[582.11,108.72,32.69,18.7,"Node"]]],[249.44,305.56,[[212.75,329.91,32.69,18.7,"Node"]]],[682.94,135.42,[[681.6,131.42,32.69,18.7,"Node"]]],[481.7,120.34,[[480.35,116.34,32.69,18.7,"Node"]]],[771.32,186.45,[[769.97,182.45,32.69,18.7,"Node"]]],[219.36,403.07,[[182.67,427.42,32.69,18.7,"Node"]]],[306.92,221.25,[[270.24,245.6,32.69,18.7,"Node"]]],[386.71,157.62,[[385.36,153.62,32.69,18.7,"Node"]]]],"e":[[0,1,[],[[259.45,643.51,32.03,18.7,0.826238774315996,-0.5633200580636204,"Edge"]]],[3,0,[],[[221.61,542.21,32.03,18.7,0.9555728057861415,-0.294755174410902,"Edge"]]],[1,4,[],[[349.3,723.77,32.03,18.7,0.6234898018587343,-0.7818314824680294,"Edge"]]],[4,2,[],[[418.05,771.98,32.03,18.7,0.36534102436639637,-0.9308737486442037,"Edge"]]],[3,5,[],[[262.64,513.66,32.03,18.7,-0.2225209339563144,-0.9749279121818236,"Edge"]]],[2,5,[],[[534.29,789.82,32.03,18.7,-0.7330518718298267,-0.680172737770919,"Edge"]]],[4,5,[],[[427.6,744.91,32.03,18.7,-0.6234898018587336,-0.7818314824680299,"Edge"]]],[1,5,[],[[350.46,685.47,32.03,18.7,-0.5000000000000003,-0.8660254037844386,"Edge"]]],[0,5,[],[[298.89,624.2,32.03,18.7,-0.3653410243663947,-0.9308737486442044,"Edge"]]],[5,6,[],[[878.37,323.28,32.03,18.7,0.9009688679024184,-0.4338837391175598,"Edge"]]],[7,5,[],[[611.91,162.36,32.03,18.7,0.6234898018587336,-0.7818314824680299,"Edge"]]],[8,5,[],[[292.35,341.41,32.03,18.7,0.07473009358642455,-0.9972037971811801,"Edge"]]],[9,7,[],[[645.8,157.7,32.03,18.7,0.2225209339563144,-0.9749279121818236,"Edge"]]],[7,10,[],[[549.55,131.38,32.03,18.7,-0.07473009358642278,-0.9972037971811804,"Edge"]]],[10,5,[],[[515.14,167.59,32.03,18.7,0.5000000000000003,-0.8660254037844386,"Edge"]]],[6,11,[],[[796.42,239.83,32.03,18.7,0.7330518718298267,-0.680172737770919,"Edge"]]],[11,9,[],[[733.51,192.55,32.03,18.7,0.4999999999999995,-0.866025403784439,"Edge"]]],[8,12,[],[[267.76,373.25,32.03,18.7,-0.9555728057861401,-0.29475517441090626,"Edge"]]],[12,3,[],[[253.06,467.1,32.03,18.7,-1.0,-2.7257675990577433E-15,"Edge"]]],[12,5,[],[[265.18,415.76,32.03,18.7,-0.07473009358642366,-0.9972037971811802,"Edge"]]],[13,5,[],[[347.6,261.29,32.03,18.7,0.22252093395631525,-0.9749279121818234,"Edge"]]],[13,8,[],[[284.16,291.63,32.03,18.7,-0.826238774315993,-0.5633200580636247,"Edge"]]],[10,14,[],[[450.54,153.46,32.03,18.7,-0.3653410243663931,-0.930873748644205,"Edge"]]],[14,13,[],[[349.3,214.42,32.03,18.7,-0.6234898018587314,-0.7818314824680315,"Edge"]]],[14,5,[],[[424.24,201.56,32.03,18.7,0.36534102436639554,-0.930873748644204,"Edge"]]]],"vp":[182.0,90.0,735.0,728.0]}} Node labels and edge labels placed by the labeling algorithm - *

    - *

    - * This algorithm can switch between two internal implementations. By default, it generates high quality label placements - * even for difficult instances. This especially holds if the label models allow a large number of different - * {@link yfiles.layout.LabelCandidate}s, i.e., there is a high potential for optimizations. - *

    - *

    - * If the duration of the calculation is of utmost importance, the internal algorithm can be changed to a simpler - * implementation by setting {@link yfiles.labeling.GenericLabeling#maximumDuration} to 0. On the downside, the results will not be as good as the ones of the default mode. - *

    - *

    - * In default mode, this algorithm reduces the labeling problem to the maximum independent set (MIS) problem and solves the - * problem using simulated annealing. It is inspired by the article from Christensen, Marks and Shieber: A General - * Cartographic Labelling Algorithm. - *

    - *

    - * It is recommended to use {@link yfiles.layout.IEdgeLabelLayoutModel}s and - * {@link yfiles.layout.INodeLabelLayoutModel}s which allow free positioning of labels to achieve best results with this generic - * labeling algorithm. - *

    - *

    - * This algorithm works according to the general labeling concept defined by {@link yfiles.labeling.LabelingBase}. - *

    - * @see yfiles.labeling.LabelingBase - * @class yfiles.labeling.GenericLabeling - * @extends {yfiles.labeling.MISLabelingBase} - */ - export interface GenericLabeling extends yfiles.labeling.MISLabelingBase{} - export class GenericLabeling { - /** - * Creates a new instance of {@link yfiles.labeling.GenericLabeling} with default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets whether or not this algorithm behaves deterministically. - *

    - * If enabled, it produces the same results given the same input graph and settings. - *

    - * @type {boolean} - */ - deterministic:boolean; - /** - * Gets or sets the time limit for this algorithm in milliseconds. - *

    - * 0x7FFFFFFF denotes that there is no time limit. Values have to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given maximum duration is negative - * @type {number} - */ - maximumDuration:number; - static $class:yfiles.lang.Class; - } - /** - * An abstract base class for generic labeling algorithms which place labels of graphs. - *

    - * Labeling algorithms compute positions for labels in a given graph. The main goal is to place labels such that they do - * not overlap with other graph elements. Labeling algorithms do not modify positions of nodes and edges. - *

    - *

    - * Concept - *

    - *

    - * Generic labeling algorithms use the model associated with a label (i.e. {@link yfiles.layout.INodeLabelLayout#labelModel node label model} for nodes and {@link yfiles.layout.IEdgeLabelLayout#labelModel edge label model} - * for edges). The models are necessary to compute a set of {@link yfiles.layout.LabelCandidate}s, i.e., candidate positions for a - * label. Then, one best matching candidate from the set will be selected. This selection depends on several preferences, e.g., if {@link yfiles.labeling.LabelingBase#removeNodeOverlaps overlaps with nodes} - * are not allowed, candidates encoding overlapping positions will be ignored. - *

    - *

    - * After one {@link yfiles.layout.LabelCandidate} has been chosen, the label model's parameter is used for encoding the label - * position. Therefore, the result of a generic labeling algorithm is one model parameter per label. The parameter is {@link yfiles.layout.ILabelLayout#modelParameter stored with the label} - * and expresses the label position with respect to the underlying label model. - *

    - *

    - * Features - *

    - *

    - * This class provides a general frame, offering functionality which can be shared by other generic labeling algorithms. - *

    - *

    - * To only place labels or a subset of labels, the main labeling methods Label, {@link yfiles.labeling.LabelingBase#label} and {@link yfiles.labeling.LabelingBase#label} - * are offered. - *

    - *

    - * As this class represents an {@link yfiles.layout.LayoutStageBase}, it allows usage as a generic labeling stage. By combining it - * with a - * {@link yfiles.layout.LayoutStageBase#coreLayout core layouter}, the labeling will take place after the core layouter was executed - * ({@link yfiles.labeling.LabelingBase#applyLayout}). This is especially useful if the core layouter does not support label - * handling. - *

    - * @class yfiles.labeling.LabelingBase - * @extends {yfiles.layout.LayoutStageBase} - */ - export interface LabelingBase extends yfiles.layout.LayoutStageBase{} - export class LabelingBase { - /** - * Creates a new {@link yfiles.labeling.LabelingBase} instance with default settings. - * @constructor - */ - constructor(); - /** - * Returns the profit for placing a {@link yfiles.layout.LabelCandidate} with respect to the current {@link yfiles.labeling.LabelingBase#profitModel profit model}. - *

    - * Method {@link yfiles.layout.IProfitModel#getProfit} on the current profit model will be invoked to compute the actual profit - * value. - *

    - *

    - * The higher the profit (rank) of a candidate is, the more likely it will be chosen as actual position by the algorithm. - *

    - * @param {yfiles.layout.LabelCandidate} candidate a label candidate - * @returns {number} the profit value between 0 and 1 - */ - getProfit(candidate:yfiles.layout.LabelCandidate):number; - /** - * Places the labels of the input graph restricting the placement to labels contained in the given lists. - *

    - * The {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey selection} will not be considered; the given lists will define the selection of labels that are to be placed. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.YList} nodeLabels a list of {@link yfiles.layout.INodeLabelLayout}s defining the set of node labels that will be placed - * @param {yfiles.algorithms.YList} edgeLabels a list of {@link yfiles.layout.IEdgeLabelLayout}s defining the set of edge labels that will be placed - */ - label(graph:yfiles.layout.LayoutGraph,nodeLabels:yfiles.algorithms.YList,edgeLabels:yfiles.algorithms.YList):void; - /** - * Places the labels of the input graph using a {@link yfiles.algorithms.IDataProvider} registered to the input graph with the - * given key for determining which labels to place. - *

    - * Instead of considering the current {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey selection key}, the {@link yfiles.algorithms.IDataProvider} registered with the given key will - * be used for selecting labels. Invoking this method has the same effect as first {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey specifying the key} as selection key and - * then invoking Label. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {Object} [key=null] the {@link yfiles.algorithms.IDataProvider} key for label selection - */ - label(graph:yfiles.layout.LayoutGraph,key?:Object):void; - /** - * Data provider key for mapping models to edge/node labels - *

    - * The {@link yfiles.layout.INodeLabelLayoutModel}s and {@link yfiles.layout.IEdgeLabelLayoutModel}s linked to - * {@link yfiles.layout.INodeLabelLayout}s and {@link yfiles.layout.IEdgeLabelLayout}s by this {@link yfiles.algorithms.IDataProvider} are taken as - * replacement models. This means that the original model is internally replaced by another model when computing valid - * positions for the label. A model parameter that fits the calculated position of the replacement model best is set for - * the original label model. - *

    - * @const - * @static - * @type {yfiles.algorithms.ILabelLayoutDpKey.} - */ - static LABEL_MODEL_DP_KEY:yfiles.algorithms.ILabelLayoutDpKey; - /** - * Gets or sets the {@link yfiles.layout.IProfitModel} for ranking the {@link yfiles.layout.LabelCandidate}s for labels. - *

    - * The profit model is used when {@link yfiles.labeling.LabelingBase#getProfit calculating the profit} of a candidate. - *

    - *

    - * The higher the profit (rank) of a candidate is, the more likely it will be chosen as actual position by the algorithm. - *

    - * @see yfiles.layout.IProfitModel - * @see yfiles.layout.SimpleProfitModel - * @see yfiles.labeling.LabelingBase#getProfit - * @type {yfiles.layout.IProfitModel} - */ - profitModel:yfiles.layout.IProfitModel; - /** - * Gets or sets whether or not internal node labels are allowed to move. - *

    - * A node label is internal if the label's boundaries are completely within the node's boundaries. - *

    - * @type {boolean} - */ - moveInternalNodeLabels:boolean; - /** - * Gets or sets whether or not a post-processing step to reduce the number of label overlaps is applied. - * @type {boolean} - */ - reduceLabelOverlaps:boolean; - /** - * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with nodes are removed. - *

    - * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely - * that an overlapping candidate is finally chosen. - *

    - *

    - * The detection and removal of labels that overlap with nodes may increase the runtime of this algorithm. - *

    - * @type {boolean} - */ - removeNodeOverlaps:boolean; - /** - * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with edges are removed. - *

    - * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely - * that an overlapping candidate is finally chosen. - *

    - *

    - * The detection and removal of labels that overlap with edges may increase the runtime of this algorithm. - *

    - * @type {boolean} - */ - removeEdgeOverlaps:boolean; - /** - * Gets or sets whether or not labels assigned to nodes are placed. - * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey - * @type {boolean} - */ - placeNodeLabels:boolean; - /** - * Gets or sets whether or not labels assigned to edges are placed. - * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey - * @type {boolean} - */ - placeEdgeLabels:boolean; - /** - * Gets or sets the {@link yfiles.algorithms.IDataProvider} key to mark labels as selected for placement. - *

    - * If a {@link yfiles.algorithms.IDataProvider} is registered with this key, only the selected labels will be placed, while all - * other labels are considered fixed. - *

    - *

    - * The registered {@link yfiles.algorithms.IDataProvider} needs to map from {@link yfiles.layout.ILabelLayout} to {@link boolean} where true indicates - * that a label should be placed and false indicates that a label should be ignored. - *

    - * @type {Object} - */ - affectedLabelsDpKey:Object; - /** - * Gets or sets whether or not edge labels are automatically flipped if otherwise they would be upside-down. - * @type {boolean} - */ - autoFlipping:boolean; - /** - * Gets or sets whether or not edge labels may overlap with edges belonging to the same edge group as the label's edge. - *

    - * An edge group is a set of edges which share a common bus near the target or source node. They are defined using - * {@link yfiles.algorithms.IDataProvider}s registered with {@link yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY} and - * {@link yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY}. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - * @type {boolean} - */ - edgeGroupOverlapAllowed:boolean; - static $class:yfiles.lang.Class; - } - /** - * A base class for generic labeling algorithms which solve the labeling problem by reducing it to the maximum independent - * set (MIS) problem. - *

    - * Different optimization strategies are available; an optimization strategy defines which criteria the algorithm should - * try to optimize. For example, reducing the number of overlaps between labels and nodes may be considered more important - * than reducing the number of overlaps between labels and edges. - *

    - * @see yfiles.labeling.GenericLabeling - * @class yfiles.labeling.MISLabelingBase - * @extends {yfiles.labeling.LabelingBase} - */ - export interface MISLabelingBase extends yfiles.labeling.LabelingBase{} - export class MISLabelingBase { - /** - * Creates a new {@link yfiles.labeling.MISLabelingBase} instance with default settings. - * @constructor - */ - constructor(); - /** - * Returns a {@link yfiles.algorithms.INodeMap} which assigns a profit value to each node in the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. - *

    - * As the conflict graph's nodes represent {@link yfiles.layout.LabelCandidate}s, this mapping gives the profit value of label - * candidates. The assigned value is defined as the difference between the {@link yfiles.labeling.LabelingBase#getProfit profit induced by the profit model} and the - * candidate's {@link yfiles.layout.LabelCandidate#overlapPenalty overlap penalty}. - *

    - *

    - * The returned map is a mapping from each {@link yfiles.algorithms.Node} (representing a label candidate) in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} - * to a {@link number} representing the profit value of the candidate. - *

    - * @returns {yfiles.algorithms.INodeMap} a mapping from nodes (i.e. label candidates) to their profit value - */ - assignProfit():yfiles.algorithms.INodeMap; - /** - * Creates the edges in the conflict graph, i.e., one edge between two nodes if the corresponding - * {@link yfiles.layout.LabelCandidate}s intersect. - *

    - * The nodes of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph} represent - * {@link yfiles.layout.LabelCandidate}s. An edge between candidates signals that they overlap. A maximum independent set will be - * computed on the conflict graph to choose candidates such that no two candidates overlap. - *

    - *

    - * This method may be overridden to change the structure of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. Edges between two - * {@link yfiles.layout.LabelCandidate}s in the conflict graph signal that the two candidates should not be selected together. By - * overriding this method, arbitrary reasons for indicating that two label candidates should not be chosen at the same time - * can be modeled. - *

    - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @see yfiles.labeling.MISLabelingBase#nodesToBoxes - * @see yfiles.labeling.MISLabelingBase#boxesToNodes - * @see yfiles.labeling.MISLabelingBase#nodesToID - * @protected - */ - createEdges():void; - /** - * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and an {@link yfiles.algorithms.Edge} of the input graph has - * been found. - *

    - * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor - * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. - *

    - *

    - * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and edges. - *

    - * @param {yfiles.layout.LabelCandidate} labelCandidate the {@link yfiles.layout.LabelCandidate} overlapping with the given {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Edge} edge the {@link yfiles.algorithms.Edge} overlapping with the given {@link yfiles.layout.LabelCandidate} - * @param {yfiles.algorithms.LineSegment} eSegment the {@link yfiles.algorithms.LineSegment} of the given edge overlapping with the given candidate - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @see yfiles.labeling.MISLabelingBase#createEdges - */ - foundEdgeOverlap(labelCandidate:yfiles.layout.LabelCandidate,edge:yfiles.algorithms.Edge,eSegment:yfiles.algorithms.LineSegment):void; - /** - * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and a {@link yfiles.layout.NodeHalo} of the input graph has - * been found. - *

    - * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor - * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. - *

    - *

    - * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and node - * halos. - *

    - * @param {yfiles.layout.LabelCandidate} labelCandidate the {@link yfiles.layout.LabelCandidate} overlapping with a node halo - * @param {yfiles.algorithms.Node} node the {@link yfiles.algorithms.Node} whose {@link yfiles.layout.NodeHalo} is overlapping with the given label candidate - * @param {yfiles.algorithms.YRectangle} haloRect the bounding box of the {@link yfiles.layout.NodeHalo} overlapping with the given label candidate - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @see yfiles.labeling.MISLabelingBase#createEdges - */ - foundHaloOverlap(labelCandidate:yfiles.layout.LabelCandidate,node:yfiles.algorithms.Node,haloRect:yfiles.algorithms.YRectangle):void; - /** - * Indicates that an overlap between two {@link yfiles.layout.LabelCandidate}s has been found. - *

    - * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the - * {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor indicating how much the two candidates overlap. The factor influences the penalty - * assigned when both candidates are chosen, i.e., the penalty for the corresponding overlap. - *

    - *

    - * This method may be overridden to realize a custom strategy for reacting to overlaps among - * {@link yfiles.layout.LabelCandidate}s. - *

    - * @param {yfiles.layout.LabelCandidate} candidate1 the first overlapping {@link yfiles.layout.LabelCandidate} - * @param {yfiles.layout.LabelCandidate} candidate2 the second overlapping {@link yfiles.layout.LabelCandidate} - * @param {yfiles.algorithms.Edge} edge the {@link yfiles.algorithms.Edge} in {@link yfiles.labeling.MISLabelingBase#conflictGraph} representing the found overlap - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @see yfiles.labeling.MISLabelingBase#createEdges - */ - foundLabelOverlap(candidate1:yfiles.layout.LabelCandidate,candidate2:yfiles.layout.LabelCandidate,edge:yfiles.algorithms.Edge):void; - /** - * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and a {@link yfiles.algorithms.Node} of the input graph has - * been found. - *

    - * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor - * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. - *

    - *

    - * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and nodes. - *

    - * @param {yfiles.layout.LabelCandidate} labelCandidate the {@link yfiles.layout.LabelCandidate} overlapping with the given node - * @param {yfiles.algorithms.Node} node the {@link yfiles.algorithms.Node} overlapping with the given label candidate - * @param {yfiles.algorithms.YRectangle} nodeBox the bounding box of the given node - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @see yfiles.labeling.MISLabelingBase#createEdges - */ - foundNodeOverlap(labelCandidate:yfiles.layout.LabelCandidate,node:yfiles.algorithms.Node,nodeBox:yfiles.algorithms.YRectangle):void; - /** - * The input graph that will be labeled. - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - /** - * The conflict graph modeling - * {@link yfiles.layout.LabelCandidate}s as nodes and edges between them as conflicts, i.e., overlaps among candidates. - * @see yfiles.labeling.MISLabelingBase#createEdges - * @type {yfiles.algorithms.Graph} - */ - conflictGraph:yfiles.algorithms.Graph; - /** - * The mapping from each node in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} to the corresponding {@link yfiles.layout.LabelCandidate} - * instance. - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @type {yfiles.algorithms.INodeMap} - */ - nodesToBoxes:yfiles.algorithms.INodeMap; - /** - * The mapping from the {@link yfiles.layout.LabelCandidate}s to the corresponding nodes in the - * {@link yfiles.labeling.MISLabelingBase#conflictGraph}. - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @type {yfiles.collections.IMap.} - */ - boxesToNodes:yfiles.collections.IMap; - /** - * The mapping from nodes in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} to a corresponding integer value (ID). - *

    - * The ID denotes the actual label which a {@link yfiles.layout.LabelCandidate} (i.e. a node in the conflict graph) belongs to. - *

    - * @type {yfiles.algorithms.INodeMap} - */ - nodesToID:yfiles.algorithms.INodeMap; - /** - * Gets or sets the ratio between the internal profit (ip) and the profit computed using the specified {@link yfiles.labeling.LabelingBase#profitModel profit model} (sp). - *

    - * This ratio defines how to weight the two profit values (ip) and (sp). The overall ratio is then computed as - * ratio * sp + (1 - ratio) * ip. The profit of a {@link yfiles.layout.LabelCandidate} defines how likely it is that the candidate - * will be chosen as actual label position. - *

    - *

    - * The ratio is defined to be a value from the interval [0,1]. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given ratio is negative or larger than 1 - * @see yfiles.labeling.LabelingBase#profitModel - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - * @type {number} - */ - customProfitModelRatio:number; - /** - * Gets or sets the optimization strategy which defines the importance of criteria when optimizing labeling results. - *

    - * Depending on the strategy, criteria like label-node overlaps, label-label overlaps and others are more or less - * important. For example, if the number of overlaps between labels and nodes is the most important criterion for the - * result, strategy {@link yfiles.labeling.OptimizationStrategy#NODE_OVERLAP} should be chosen. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given strategy is unknown - * @type {yfiles.labeling.OptimizationStrategy} - */ - optimizationStrategy:yfiles.labeling.OptimizationStrategy; - /** - * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with nodes are removed. - *

    - * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely - * that an overlapping candidate is finally chosen. - *

    - *

    - * The detection and removal of labels that overlap with nodes may increase the runtime of this algorithm. - *

    - * @type {boolean} - */ - removeNodeOverlaps:boolean; - /** - * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with edges are removed. - *

    - * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely - * that an overlapping candidate is finally chosen. - *

    - *

    - * The detection and removal of labels that overlap with edges may increase the runtime of this algorithm. - *

    - * @type {boolean} - */ - removeEdgeOverlaps:boolean; - /** - * Gets or sets whether or not the number of ambiguous label placements is reduced by applying an additional optimization - * step. - *

    - * A label position is considered to be ambiguous if it might not be possible to identify to which graph element the label - * belongs. For example, an edge label placed in between two edges is ambiguous. - *

    - *

    - * Enabling this reduction step does not guarantee that no ambiguous placements are selected. The algorithm will try to - * avoid them if other good positions without ambiguity are available. Other aspects like {@link yfiles.layout.PreferredPlacementDescriptor preferred placement} for edge - * labels will still be more important than the reduction of ambiguity. - *

    - * @type {boolean} - */ - reduceAmbiguity:boolean; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.labeling.GenericLabeling}. - * @class yfiles.labeling.LabelingData - * @extends {yfiles.layout.LayoutData} - */ - export interface LabelingData extends yfiles.layout.LayoutData{} - export class LabelingData { - constructor(); - /** - * Gets or sets the collection of labels that shall be placed by the algorithm. - *

    - * Note that the {@link yfiles.layout.DpKeyItemCollection.#dpKey} has to be set to the key assigned to {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey}. - *

    - * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey - * @type {yfiles.layout.DpKeyItemCollection.} - */ - affectedLabels:yfiles.layout.DpKeyItemCollection; - /** - * Gets or sets the mapping from node labels to an {@link yfiles.layout.INodeLabelLayoutModel} used by the labeling algorithm - * instead of the original label model. - *

    - * If a label has no mapping, the original model is used as normal. - *

    - * @see yfiles.labeling.LabelingBase#LABEL_MODEL_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodeLabelModels:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from edge labels to an {@link yfiles.layout.IEdgeLabelLayoutModel} used by the labeling algorithm - * instead of the original label model. - *

    - * If a label has no mapping, the original model is used as normal. - *

    - * @see yfiles.labeling.LabelingBase#LABEL_MODEL_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - edgeLabelModels:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to an object representing their source edge group. - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - sourceGroupIds:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to an object representing their target edge group. - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - targetGroupIds:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. - * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodeHalos:yfiles.layout.ItemMapping; - /** - * Gets or sets the AbortHandler used during the layout. - * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY - * @type {yfiles.algorithms.AbortHandler} - */ - abortHandler:yfiles.algorithms.AbortHandler; - static $class:yfiles.lang.Class; - } - }export namespace partial{ - export enum EdgeRoutingStrategy{ - /** - * A routing strategy that produces orthogonal routes for partial edges and inter-edges. - *

    - * A route of an edge is called orthogonal if it only consists of vertical and horizontal segments. - *

    - *

    - * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. - *

    - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - */ - ORTHOGONAL, - /** - * A routing strategy that produces straight-line routes for partial edges and inter-edges. - *

    - * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. - *

    - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - */ - STRAIGHTLINE, - /** - * Automatically chooses a suitable routing strategy for partial edges and inter-edges by analyzing the routes of the fixed - * edges. If, for example, all fixed edges have orthogonal edge routes, inter-edges will be routed orthogonally, too. - *

    - * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. - *

    - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - */ - AUTOMATIC, - /** - * A routing strategy that produces organic routes for partial edges and inter-edges. - *

    - * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. - *

    - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - */ - ORGANIC, - /** - * A routing strategy that produces octilinear routes for partial edges and inter-edges. - *

    - * A route of an edge is called octilinear if the slope of each segment is a multiple of 45 degrees. - *

    - *

    - * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. - *

    - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - */ - OCTILINEAR - } - export enum ComponentAssignmentStrategy{ - /** - * A component assignment strategy that assigns each partial node to a separate subgraph component. - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - */ - SINGLE, - /** - * A component assignment strategy where the subgraph components correspond to the connected components of the graph - * induced by the partial elements. - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - */ - CONNECTED, - /** - * A component assignment strategy where the subgraph components correspond to the clusters computed by a clustering - * algorithm based on {@link yfiles.algorithms.Groups#edgeBetweennessClustering edge betweenness centrality}. - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - */ - CLUSTERING, - /** - * A component assignment strategy where the subgraph components are defined by the user. Two partial nodes are considered - * to be in the same component if the {@link yfiles.algorithms.IDataProvider} associated with key {@link yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY} - * returns the same object for both of them. - * @see yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - */ - CUSTOMIZED - } - export enum SubgraphPlacement{ - /** - * A positioning strategy which tries to place each subgraph component close to the barycenter of its graph neighbors. - * @see yfiles.partial.PartialLayout#subgraphPlacement - */ - BARYCENTER, - /** - * A positioning strategy which tries to place each subgraph component close to its original position. - * @see yfiles.partial.PartialLayout#subgraphPlacement - */ - FROM_SKETCH - } - export enum LayoutOrientation{ - /** - * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each - * predecessor of a node v is placed above v and each successor below v. - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - TOP_TO_BOTTOM, - /** - * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each - * predecessor of a node v is placed below v and each successor above v. - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - BOTTOM_TO_TOP, - /** - * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each - * predecessor of a node v is placed to the left of v and each successor to the right of v. - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - LEFT_TO_RIGHT, - /** - * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each - * predecessor of a node v is placed to the right of v and each successor to the left of v. - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - RIGHT_TO_LEFT, - /** - * Layout orientation specifier where the algorithm automatically detects the layout orientation. - *

    - * The algorithm analyzes the flow direction of fixed edges in the current drawing. If there is no common flow direction, - * the results are the same as for {@link yfiles.partial.LayoutOrientation#NONE}. Otherwise, the layout orientation is either - * {@link yfiles.partial.LayoutOrientation#TOP_TO_BOTTOM}, {@link yfiles.partial.LayoutOrientation#BOTTOM_TO_TOP}, {@link yfiles.partial.LayoutOrientation#LEFT_TO_RIGHT} - * or {@link yfiles.partial.LayoutOrientation#RIGHT_TO_LEFT}. - *

    - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - AUTO_DETECT, - /** - * Layout orientation specifier where the layout orientation is completely ignored. - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - NONE - } - /** - * This class represents a partial layout algorithm which changes the coordinates for a given set of graph elements (called - * partial elements) only. - *

    - * The location and size of the remaining elements (called fixed elements) is not allowed to be changed.Layout Style - *

    - *

    - * This partial layout algorithm offers a kind of generic partial layout support for other existing layout algorithms. - * Hence, its layout style heavily depends on the selected {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm} as well as the specified {@link yfiles.partial.PartialLayout#edgeRouter edge router} or - * {@link yfiles.partial.PartialLayout#edgeRoutingStrategy edge routing strategy}. - *

    - *

    - * The partial layout is suitable for applications where users may incrementally add new elements to an existing drawing. - * The added elements should be arranged so that they fit best possible into the given diagram without making any changes - * to the already existing layout. Hence, the so-called mental map of the existing drawing is preserved. - *

    - *

    - * {@graph {"ann":{"s":[60,30],"d":1},"n":[[49.74,127.62,295.26,342.38,2,[[49.74,150,295.26,22.38,"Group"]]],[270,425,[[291.33,449.35,17.35,18.7,"16"]]],[270,375,[[291.33,399.35,17.35,18.7,"18"]]],[200,375,[[221.33,399.35,17.35,18.7,"19"]]],[64.74,405.17,1,[[86.07,429.52,17.35,18.7,"13"]]],[200,265,[[221.33,289.35,17.35,18.7,"20"]]],[100,215,[[124.66,239.35,10.67,18.7,"2"]]],[100,165,[[124.66,189.35,10.67,18.7,"3"]]],[100,265,[[121.33,289.35,17.35,18.7,"22"]]],[-420.63,317.87,375.21,302.93,3,[[-420.63,340.25,375.21,22.38,"Group"]]],[-179.98,534.8,1,[[-155.31,559.15,10.67,18.7,"6"]]],[-163.42,363.25,1,[[-142.09,387.6,17.35,18.7,"12"]]],[-371.63,364.65,1,[[-346.96,389,10.67,18.7,"8"]]],[-333.29,532.76,1,[[-308.62,557.11,10.67,18.7,"9"]]],[-176.17,453.25,1,[[-154.84,477.6,17.35,18.7,"11"]]],[370,215,[[394.66,239.35,10.67,18.7,"1"]]],[370,165,[[394.66,189.35,10.67,18.7,"4"]]],[-130.4,215,1,[[-105.74,239.35,10.67,18.7,"5"]]],[-224.19,264.44,1,[[-199.52,288.79,10.67,18.7,"7"]]],[370,425,[[391.33,449.35,17.35,18.7,"10"]]],[370,265,[[391.33,289.35,17.35,18.7,"14"]]],[370,375,[[391.33,399.35,17.35,18.7,"15"]]],[270,505,[[291.33,529.35,17.35,18.7,"17"]]],[440,165,[[461.33,189.35,17.35,18.7,"21"]]]],"e":[[13,12,0,-15,0,15],[13,14],[10,13,-30,4,0,0],[14,11],[6,7,0,-15,0,15],[5,8,-30,0,30,0],[1,2,0,-15,0,15],[2,3,-30,0,30,0],[4,3],[15,6,-30,0,30,0],[15,16,0,-15,0,15],[7,16,30,0,-30,0],[6,17],[17,18],[18,12],[10,19],[15,20,0,15,0,-15],[19,21,0,-15,0,15],[21,20,0,-15,0,15],[19,1,-30,0,30,0],[1,22,0,15,0,-15],[20,5,-30,0,30,0],[16,23,30,0,-30,0],[11,4,-30,0,0,0]],"vp":[-421.0,127.0,921.0,494.0]}} The input graph where marked nodes denote the partial elements that were incrementally added to the existing diagram. {@graph {"ann":{"s":[60,30],"d":1},"n":[[67.37,127.62,260,342.38,2,[[67.37,150,260,22.38,"Group"]]],[252.37,425,[[273.7,449.35,17.35,18.7,"16"]]],[252.37,375,[[273.7,399.35,17.35,18.7,"18"]]],[182.37,375,[[203.7,399.35,17.35,18.7,"19"]]],[182.37,321,1,[[203.7,345.35,17.35,18.7,"13"]]],[182.37,265,[[203.7,289.35,17.35,18.7,"20"]]],[82.37,215,[[107.03,239.35,10.67,18.7,"2"]]],[82.37,165,[[107.03,189.35,10.67,18.7,"3"]]],[82.37,265,[[103.7,289.35,17.35,18.7,"22"]]],[-147.05,387.62,180,185.56,3,[[-147.05,410,180,22.38,"Group"]]],[-42.05,425,1,[[-17.38,449.35,10.67,18.7,"6"]]],[-42.05,474.19,1,[[-20.72,498.54,17.35,18.7,"12"]]],[-132.05,425,1,[[-107.38,449.35,10.67,18.7,"8"]]],[-132.05,474.19,1,[[-107.38,498.54,10.67,18.7,"9"]]],[-42.05,528.19,1,[[-20.72,552.54,17.35,18.7,"11"]]],[352.37,215,[[377.03,239.35,10.67,18.7,"1"]]],[352.37,165,[[377.03,189.35,10.67,18.7,"4"]]],[-13.63,215,1,[[11.03,239.35,10.67,18.7,"5"]]],[-13.63,265,1,[[11.03,289.35,10.67,18.7,"7"]]],[352.37,425,[[373.7,449.35,17.35,18.7,"10"]]],[352.37,265,[[373.7,289.35,17.35,18.7,"14"]]],[352.37,375,[[373.7,399.35,17.35,18.7,"15"]]],[252.37,505,[[273.7,529.35,17.35,18.7,"17"]]],[422.37,165,[[443.7,189.35,17.35,18.7,"21"]]]],"e":[[13,12,0,-15,0,15],[13,14,0,15,-30,0,[-102.05,543.19]],[10,13,-30,0,30,0,[-54.55,440,-54.55,489.19]],[14,11,0,-15,0,15],[6,7,0,-15,0,15],[5,8,-30,0,30,0],[1,2,0,-15,0,15],[2,3,-30,0,30,0],[4,3,0,15,0,-15],[15,6,-30,0,30,0],[15,16,0,-15,0,15],[7,16,30,0,-30,0],[6,17,-30,0,30,0],[17,18,0,15,0,-15],[18,12,-30,0,0,-15,[-102.05,280]],[10,19,30,0,0,15,[27.95,440,27.95,474,382.37,474]],[15,20,0,15,0,-15],[19,21,0,-15,0,15],[21,20,0,-15,0,15],[19,1,-30,0,30,0],[1,22,0,15,0,-15],[20,5,-30,0,30,0],[16,23,30,0,-30,0],[11,4,30,5.2,-30,0,[119.87,494.39,119.87,336]]],"vp":[-148.0,127.0,631.0,447.0]}} - * The result of a partial layout run with {@link yfiles.partial.PartialLayout#componentAssignmentStrategy component assignment strategy} set to {@link yfiles.partial.ComponentAssignmentStrategy#SINGLE} - * and with {@link yfiles.partial.PartialLayout#considerNodeAlignment node alignment} enabled.Features - *

    - *

    - * Similar to the layout style, the supported feature set mainly depends on the features supported by the specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm} - * as well as the specified {@link yfiles.partial.PartialLayout#edgeRouter edge router} or {@link yfiles.partial.PartialLayout#edgeRoutingStrategy edge routing strategy}. The internal step that {@link yfiles.partial.PartialLayout#placeSubgraphs places the components} can handle - * group nodes as well as minimum distance constraints. Furthermore, it is able to consider node labels. - *

    - *

    - * Concept The layout algorithm tries to place the partial elements such that the resulting drawing (including the fixed elements) - * has a good quality with respect to common graph drawing aesthetics. - *

    - *

    - * The layout algorithm handles each selected graph element as partial element. For this, it looks up the {@link yfiles.algorithms.IDataProvider} - * keys {@link yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY} and {@link yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY}. Partial - * node elements can be assigned to the so-called subgraph components. During the layout process each subgraph induced by the nodes of a - * component is first laid out using the specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm}. Then, the different components are placed - * one-by-one onto the drawing area such that the number of overlaps among graph elements is small. The user can specify - * different objectives for finding 'good' positions for subgraph components (see {@link yfiles.partial.PartialLayout#subgraphPlacement}), e.g., {@link yfiles.partial.SubgraphPlacement#BARYCENTER} - * specifies that the component should be placed close to the barycenter of its graph neighbors and {@link yfiles.partial.SubgraphPlacement#FROM_SKETCH} - * specifies that the component should be placed close to its original position. - *

    - *

    - * Method {@link yfiles.partial.PartialLayout#componentAssignmentStrategy} allows to specify the strategy that assigns partial nodes to subgraph components. Possible values are - * {@link yfiles.partial.ComponentAssignmentStrategy#CLUSTERING}, {@link yfiles.partial.ComponentAssignmentStrategy#CONNECTED}, {@link yfiles.partial.ComponentAssignmentStrategy#SINGLE} - * and - * {@link yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED}. The last value allows to use a customized component assignment. - * Note that nodes of a component cannot be assigned to different group nodes. - *

    - *

    - * Furthermore, the user can specify the edge routing strategy (see {@link yfiles.partial.PartialLayout#edgeRoutingStrategy}) that is used for routing partial edges and edges - * between different subgraph components (so-called inter-edges). Possible values are {@link yfiles.partial.EdgeRoutingStrategy#ORGANIC}, - * {@link yfiles.partial.EdgeRoutingStrategy#ORTHOGONAL}, {@link yfiles.partial.EdgeRoutingStrategy#STRAIGHTLINE}, {@link yfiles.partial.EdgeRoutingStrategy#OCTILINEAR} - * and {@link yfiles.partial.EdgeRoutingStrategy#AUTOMATIC}. - *

    - * @class yfiles.partial.PartialLayout - * @extends {yfiles.layout.LayoutStageBase} - */ - export interface PartialLayout extends yfiles.layout.LayoutStageBase{} - export class PartialLayout { - /** - * Creates a new instance of {@link yfiles.partial.PartialLayout} which uses the specified {@link yfiles.layout.ILayoutAlgorithm} instance - * as the core layout algorithm. - *

    - * This instance is applied to each subgraph component, see {@link yfiles.partial.PartialLayout#componentAssignmentStrategy}. - *

    - * @param {yfiles.layout.ILayoutAlgorithm} [subgraphLayouter=null] the layout algorithm that is applied to the subgraph components - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - * @constructor - */ - constructor(subgraphLayouter?:yfiles.layout.ILayoutAlgorithm); - /** - * This method is called each time when edges are routed with an edge router. - *

    - * Subclasses may modify the configuration of the given edge router instance. - *

    - *

    - * The type of the given instance depends on the edge routing strategy, i.e., if the routing strategy is set to {@link yfiles.partial.EdgeRoutingStrategy#OCTILINEAR} - * or {@link yfiles.partial.EdgeRoutingStrategy#ORTHOGONAL} it's an instance of {@link yfiles.router.EdgeRouter}, if the routing strategy - * is set to {@link yfiles.partial.EdgeRoutingStrategy#ORGANIC} it's an instance of {@link yfiles.organic.OrganicLayout}, and, if the - * routing strategy is set to {@link yfiles.partial.EdgeRoutingStrategy#STRAIGHTLINE} it's an instance of a private - * {@link yfiles.router.StraightLineEdgeRouter}. If the edge routing strategy is set to - * {@link yfiles.partial.EdgeRoutingStrategy#AUTOMATIC}, the layout algorithm chooses one of the above strategies that best fits - * the routing style of the fixed edges. - *

    - * @param {yfiles.layout.ILayoutAlgorithm} edgeRouter the instance used for routing the edges - * @see yfiles.partial.PartialLayout#edgeRouter - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - * @protected - */ - configureEdgeRouter(edgeRouter:yfiles.layout.ILayoutAlgorithm):void; - /** - * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and calculates the layout for the given subgraph component using the - * specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm}. - *

    - * It is called once for each subgraph component. - *

    - *

    - * Subclasses may implement a custom layout strategy or add some additional data. - *

    - * @param {yfiles.layout.LayoutGraph} subGraph the subgraph component - * @protected - */ - layoutSubgraph(subGraph:yfiles.layout.LayoutGraph):void; - /** - * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and places the subgraph components one-by-one onto the drawing area. - *

    - * Therefore, it considers the {@link yfiles.partial.PartialLayout#subgraphPlacement specified objective} for finding a suitable position. - *

    - *

    - * Subclasses may implement a custom placement strategy or add some additional data. However, they must not modify the - * given subgraph component lists. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {Array.} subgraphComponents each entry contains a {@link yfiles.algorithms.NodeList} that induces a subgraph component - * @protected - */ - placeSubgraphs(graph:yfiles.layout.LayoutGraph,subgraphComponents:yfiles.algorithms.NodeList[]):void; - /** - * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and routes all partial edges that connect two fixed elements. - *

    - * It either uses a {@link yfiles.partial.PartialLayout#edgeRouter custom edge router} or an internal edge router that produces routes according to the specified - * {@link yfiles.partial.PartialLayout#edgeRoutingStrategy routing strategy}. - *

    - *

    - * Subclasses may implement a custom routing strategy or add some additional data. - *

    - * @param {yfiles.layout.LayoutGraph} graph the subgraph of the input graph induced by the fixed nodes - * @param {yfiles.algorithms.EdgeList} partialEdges the {@link yfiles.algorithms.EdgeList list of partial edges} to be routed - * @protected - */ - routeEdgesBetweenFixedElements(graph:yfiles.layout.LayoutGraph,partialEdges:yfiles.algorithms.EdgeList):void; - /** - * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and routes all inter-edges. - *

    - * Inter-edges are edges between different subgraph components including edges between fixed and partial elements. For the routing, - * this method uses the edge router instance set with method {@link yfiles.partial.PartialLayout#edgeRouter}. If no edge router was specified by the user, it uses an - * internal edge router with routing strategy {@link yfiles.partial.PartialLayout#edgeRoutingStrategy}. - *

    - *

    - * Subclasses may implement a custom routing strategy or add some additional data. - *

    - * @param {yfiles.layout.LayoutGraph} graph the relevant subgraph - * @param {yfiles.algorithms.EdgeList} interEdges the {@link yfiles.algorithms.EdgeList list of inter-edges} to be routed - * @protected - */ - routeInterEdges(graph:yfiles.layout.LayoutGraph,interEdges:yfiles.algorithms.EdgeList):void; - /** - * Data provider key for marking partial nodes. - * @see yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static AFFECTED_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for specifying the edges that should be considered to be directed. - *

    - * If a layout orientation is specified (i.e., {@link yfiles.partial.PartialLayout#layoutOrientation} is not - * {@link yfiles.partial.LayoutOrientation#NONE}), the algorithm tries to route directed edges such that they adhere to that - * orientation. - *

    - * @see yfiles.partial.PartialLayout#layoutOrientation - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static DIRECTED_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Data provider key for marking partial edges. - * @see yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static AFFECTED_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Data provider key for obtaining the edges that should be routed by the edge router. - * @see yfiles.partial.PartialLayout#edgeRouter - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static ROUTE_EDGE_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Data provider key for defining custom subgraph components. - * @see yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static COMPONENT_ID_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets the {@link yfiles.layout.ILayoutAlgorithm} instance that is applied to each subgraph component. - *

    - * More precisely, during the layout process each subgraph induced by the (partial) nodes of a component (see - * {@link yfiles.partial.PartialLayout#componentAssignmentStrategy}) is first laid out using this instance. - *

    - * @type {yfiles.layout.ILayoutAlgorithm} - */ - coreLayout:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the preferred time limit (in milliseconds) for the layout algorithm. - *

    - * The specified value has to be greater than or equal to 0. If the value is 0x7FFFFFFF, the time is not limited. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the maximum duration is negative - * @type {number} - */ - maximumDuration:number; - /** - * Gets or sets whether or not edges between different subgraph components should be routed immediately. - *

    - * If this option is enabled, edges are routed during the placement of the subgraph components, i.e., immediately after a - * component is placed, its edges to other already placed components are routed. Otherwise, these edges are routed in a - * separate step after placing all subgraph components. Hence, while enabling this option usually leads to shorter edge - * routes, the placement of subgraph components is less compact. - *

    - * @see yfiles.partial.PartialLayout#routeInterEdges - * @see yfiles.partial.PartialLayout#placeSubgraphs - * @type {boolean} - */ - routeInterEdgesImmediately:boolean; - /** - * Gets or sets whether or not a subgraph component may be placed within another subgraph component. - *

    - * Enabling this option leads to more compact layout results but requires more runtime. - *

    - * @type {boolean} - */ - componentCompaction:boolean; - /** - * Gets or sets whether or not fixed (non-partial) group nodes may be resized. - *

    - * Enabling this option may lead to better results if there are fixed group nodes, since there is more space for the - * partial elements. - *

    - * @type {boolean} - */ - resizeFixedGroups:boolean; - /** - * Gets or sets the objective used for finding 'good' positions for subgraph components. - * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined positioning strategies - * @type {yfiles.partial.SubgraphPlacement} - */ - subgraphPlacement:yfiles.partial.SubgraphPlacement; - /** - * Gets or sets the minimum distance between two adjacent nodes. - *

    - * The specified value has to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the distance is negative - * @type {number} - */ - minimumNodeDistance:number; - /** - * Gets or sets whether or not partial nodes should be aligned. - *

    - * If this option is enabled, the algorithm tries to align the center of partial nodes with other nodes. - *

    - * @type {boolean} - */ - considerNodeAlignment:boolean; - /** - * Gets or sets the strategy that assigns partial nodes to subgraph components. - *

    - * The specified core layouter (see {@link yfiles.partial.PartialLayout#coreLayout}) independently calculates the layout for each such subgraph component. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined assignment strategies. - * @see yfiles.partial.PartialLayout#coreLayout - * @type {yfiles.partial.ComponentAssignmentStrategy} - */ - componentAssignmentStrategy:yfiles.partial.ComponentAssignmentStrategy; - /** - * Gets or sets whether or not a postprocessing step should be applied to reduce the number of directed edges that do not - * comply with the specified layout orientation. - * @see yfiles.partial.PartialLayout#layoutOrientation - * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY - * @type {boolean} - */ - optimizeOrientation:boolean; - /** - * Gets or sets the custom edge router instance that is used for partial edges and edges between different subgraph - * components (so-called inter-edges). - * @see yfiles.partial.PartialLayout#ROUTE_EDGE_DP_KEY - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - * @type {yfiles.layout.ILayoutAlgorithm} - */ - edgeRouter:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the routing strategy that is used for partial edges and edges between different subgraph components - * (so-called inter-edges). - * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined routing strategies - * @see yfiles.partial.PartialLayout#edgeRouter - * @type {yfiles.partial.EdgeRoutingStrategy} - */ - edgeRoutingStrategy:yfiles.partial.EdgeRoutingStrategy; - /** - * Gets or sets the layout orientation that is considered during the placement of partial elements. - *

    - * More precisely, the algorithm tries to place each {@link yfiles.partial.PartialLayout#componentAssignmentStrategy subgraph component} such that each predecessor of a component's node v - * is placed before v and each successor after v with respect to the layout orientation. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified orientation does not match one of the predefined orientations - * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY - * @type {yfiles.partial.LayoutOrientation} - */ - layoutOrientation:yfiles.partial.LayoutOrientation; - /** - * Gets or sets whether or not subgraph components are mirrored to improve the layout quality. - *

    - * If enabled, the algorithm checks for each component which of the four possible mirrorings minimizes the edge length. - *

    - * @type {boolean} - */ - allowMirroring:boolean; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.partial.PartialLayout}. - * @class yfiles.partial.PartialLayoutData - * @extends {yfiles.layout.LayoutData} - */ - export interface PartialLayoutData extends yfiles.layout.LayoutData{} - export class PartialLayoutData { - constructor(); - /** - * Gets or sets the collection of nodes placed by the layout. - * @see yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - affectedNodes:yfiles.layout.ItemCollection; - /** - * Gets or sets the collection of edges placed by the layout. - * @see yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - affectedEdges:yfiles.layout.ItemCollection; - /** - * Gets or sets the collection of edges that are considered as directed by the layout. - *

    - * Only if the {@link yfiles.partial.PartialLayout#layoutOrientation} is not {@link yfiles.partial.LayoutOrientation#NONE} the directedness of edges has an effect. - *

    - * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - directedEdges:yfiles.layout.ItemCollection; - /** - * Gets or sets the mapping from partial nodes to an object defining their component assignment. - *

    - * All partial nodes associated with the same object are assigned to the same subgraph component. - *

    - * @see yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY - * @see yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - * @type {yfiles.layout.ItemMapping.} - */ - componentIds:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. - * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodeHalos:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to their source {@link yfiles.layout.PortConstraint}. - * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - sourcePortConstraints:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to their target {@link yfiles.layout.PortConstraint}. - * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - targetPortConstraints:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to a collection of their source port {@link yfiles.layout.PortCandidate candidates}. - * @see yfiles.layout.PortCandidate#SOURCE_PORT_CANDIDATE_COLLECTION_DP_KEY - * @type {yfiles.layout.ItemMapping.>} - */ - sourcePortCandidates:yfiles.layout.ItemMapping>; - /** - * Gets or sets a mapping from edges to a collection of their target port {@link yfiles.layout.PortCandidate candidates}. - * @see yfiles.layout.PortCandidate#TARGET_PORT_CANDIDATE_COLLECTION_DP_KEY - * @type {yfiles.layout.ItemMapping.>} - */ - targetPortCandidates:yfiles.layout.ItemMapping>; - /** - * Gets or sets the AbortHandler used during the layout. - * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY - * @type {yfiles.algorithms.AbortHandler} - */ - abortHandler:yfiles.algorithms.AbortHandler; - /** - * Gets or sets the partition grid layout data. - * @type {yfiles.layout.PartitionGridData} - */ - partitionGridData:yfiles.layout.PartitionGridData; - static $class:yfiles.lang.Class; - } - }export namespace tree{ - /** - * Encapsulates information bound to a node while the algorithm calculates a layout. - * @class yfiles.tree.BalloonLayoutNodeInfo - */ - export interface BalloonLayoutNodeInfo extends Object{} - export class BalloonLayoutNodeInfo { - /** - * The upper angle of the subtree wedge rooted at the node. - * @type {number} - */ - upperAngle:number; - /** - * The lower angle of the subtree wedge rooted at the node. - * @type {number} - */ - lowerAngle:number; - /** - * The angle of the gap to the wedge of the previous child node. - * @type {number} - */ - gapAngle:number; - /** - * The distance of the node to its root node. - * @type {number} - */ - dist:number; - /** - * Gets the sum of all wedge angles of the subtree rooted at this node. - * @type {number} - */ - angleSum:number; - static $class:yfiles.lang.Class; - } - /** - * A tree layout algorithm that arranges the subtrees of the tree in a balloon-like fashion. - *

    - * Layout Style {@link yfiles.tree.BalloonLayout} is designed to arrange directed and undirected tree graphs. Subtrees rooted at a node are - * placed in a radial fashion around their root node. All direct children of one node can be placed on a common circle - * around their parent node (depending on the {@link yfiles.tree.BalloonLayout#childAlignmentPolicy alignment policy}). Therefore, subtrees look like balloons or stars, - * especially if subtrees have similar sizes. The edges of the tree are drawn as straight lines. {@graph {"ann":{"s":[30,30],"d":1,"c":1},"n":[[765.94,466.2],[616.19,1035.44],[858.96,1192.81],[289.45,1092.35],[983.21,685.48],[390.63,1191.59],[1141.69,322.61],[1215.22,473.98],[599.06,923.71],[924.21,1082.3],[291.41,844.85],[1077.22,396.06],[999.14,1284.78],[391.43,1274.01],[324.89,753.04],[236.05,1223.63],[930.33,1330.15],[1013.36,1203.58],[1165.73,539.9],[1084.13,551.52],[612.56,192.18],[1004.03,1061.74],[901.39,675.54],[684.7,152.3],[1022.85,458.01],[190.18,1336.4],[767.32,1282.66],[473.05,1190.8],[684.09,233.13],[385.33,871.88],[1139.17,442.18],[925.13,116.39],[353.13,675.6],[334.78,932.43],[685.33,1291.17],[152.25,1056.81],[427.86,640.81],[1239.04,331.19],[1006.49,764.55],[934.86,198.24],[732.68,1169.96],[1046.6,632.79],[412.14,1021.39],[1266.98,538.13],[716.32,76.19],[1068.06,1329.99],[76.94,1090.32],[792.51,44.73],[576.22,1141.17],[944.59,280.09],[718.72,987.86],[132.38,1277.64],[1007.52,113.83],[318.35,600.87],[686.08,946.6],[0,1060.76],[621.34,1239.22],[684.87,0],[47.38,1167.26],[929.76,34.1],[866.88,1320.91],[425.22,944.01],[1181.1,233.18],[374.69,793.72],[118.75,981.5],[903.65,1002.48],[532.13,493.99],[200.85,981.73],[760.81,183.93],[633.38,1355.17],[1177.35,621.5],[775.83,1364.64],[784.35,1446.63],[1237.23,394.55],[272.59,1334.67],[974.02,603.57],[457.46,831.99],[159.13,1412.75],[260.6,752.11],[1069.67,256.55],[1044.67,310.87],[1121.63,226.96],[1225.82,272.87],[597.56,111.13],[530.37,198.46],[610.06,274.57],[555.63,251.79],[547.23,141.92],[1062.07,709.49],[929.94,748.38],[843.55,104.61],[857.02,162.82],[1295.93,457.26],[193.97,837.29],[246.66,931.74],[206.06,892.47],[214.43,784.65],[979.61,1149.06],[838.99,1066.04],[786.55,1086.86],[172.43,1172.3],[317.44,1231.28],[428.9,1117.65],[872.95,52.59],[984.14,58.85],[987.6,170.17],[521.61,289.78],[410.77,300.73],[412.02,412.1],[523.07,420.56],[465.9,437.92],[389.75,356.66],[464.06,273.7],[553.17,340.51],[472.17,355.73]],"e":[[0,1],[1,2],[1,3],[0,4],[3,5],[0,6],[6,7],[1,8],[2,9],[3,10],[6,11],[2,12],[5,13],[10,14],[3,15],[12,16],[12,17],[7,18],[18,19],[0,20],[9,21],[4,22],[20,23],[11,24],[15,25],[2,26],[5,27],[20,28],[10,29],[7,30],[0,31],[14,32],[10,33],[26,34],[3,35],[32,36],[6,37],[4,38],[31,39],[2,40],[4,41],[3,42],[7,43],[23,44],[12,45],[35,46],[44,47],[1,48],[39,49],[1,50],[25,51],[31,52],[32,53],[1,54],[46,55],[34,56],[44,57],[46,58],[31,59],[2,60],[29,61],[6,62],[10,63],[35,64],[9,65],[0,66],[3,67],[23,68],[34,69],[18,70],[26,71],[71,72],[7,73],[25,74],[4,75],[29,76],[25,77],[10,78],[6,79],[6,80],[6,81],[6,82],[20,83],[20,84],[20,85],[20,86],[20,87],[4,88],[4,89],[31,90],[31,91],[7,92],[10,93],[10,94],[10,95],[10,96],[2,97],[2,98],[2,99],[3,100],[3,101],[3,102],[31,103],[31,104],[31,105],[0,114],[114,106],[114,107],[114,108],[114,109],[114,110],[114,111],[114,112],[114,113]],"vp":[0.0,0.0,1326.0,1477.0]}} Sample balloon-drawing of - * a large tree obtained with default settings {@graph {"ann":{"s":[20,20],"d":1,"c":1},"n":[[302.82,325.51,70,70,[[323.15,369.86,29.35,18.7,"Root"]]],[467.87,433.16,35,35],[555.28,457.63,[[581.09,480.55,27.36,18.7,0.20775573281806076,-0.978180737635551,"Leaf"]]],[539.95,490.69,[[558.57,519.19,27.36,18.7,0.6124052098749311,-0.7905440271851036,"Leaf"]]],[511.78,513.79,[[521.49,544.2,27.36,18.7,0.8952174454926904,-0.4456295830457645,"Leaf"]]],[617.42,438.44,[[645.7,457.5,27.36,18.7,-0.01562900399598557,-0.9998778596579152,"Leaf"]]],[604.25,500.42,[[626.78,526.54,27.36,18.7,0.42067550054279435,-0.9072111789672069,"Leaf"]]],[168.96,426.6,35,35],[122.16,495.14,[[108.91,545.35,27.36,18.7,-0.7471310564613752,-0.6646767518658294,"Leaf"]]],[101.02,465.46,[[72.6,501.56,27.36,18.7,-0.38380727069642384,-0.9234132222144982,"Leaf"]]],[94.89,429.54,[[58.95,446.33,27.36,18.7,0.0558744858236695,-0.9984378006836183,"Leaf"]]],[108.08,558.63,[[104.38,613.01,27.36,18.7,-0.8765491095440469,-0.48131243341257923,"Leaf"]]],[60.74,516.51,[[39.11,560.52,27.36,18.7,-0.5800788870754927,-0.8145603014935467,"Leaf"]]],[472.4,260.75,35,35],[534.73,207.69,[[563.84,210.51,27.36,18.7,-0.7413022827299817,-0.6711713086979497,"Leaf"]]],[555.61,237.55,[[585.94,249.4,27.36,18.7,-0.3757344582282841,-0.9267273692407589,"Leaf"]]],[561.43,273.52,[[588.93,294.02,27.36,18.7,0.06458526120504259,-0.997912192547559,"Leaf"]]],[549.36,144.32,[[576.39,143.07,27.36,18.7,-0.8723155432038684,-0.48894334343044304,"Leaf"]]],[596.34,186.85,[[626.56,194.12,27.36,18.7,-0.5729485100623841,-0.8195913645331399,"Leaf"]]],[316.53,515.88,35,35],[349.51,601,[[356.29,631.15,27.36,18.7,0.9501038773669919,-0.3119336823945245,"Leaf"]]],[313.23,604.36,[[326.48,660.69,27.36,18.7,-0.9912225732921417,-0.1322036693745865,"Leaf"]]],[279.09,591.61,[[271.88,644.75,27.36,18.7,-0.8351387927609661,-0.5500392684397689,"Leaf"]]],[397.33,645.07,[[408.68,675.44,27.36,18.7,0.8566078613378385,-0.5159679950289693,"Leaf"]]],[337.13,664.84,[[339.49,693.76,27.36,18.7,0.9957417304784997,-0.09218680048511825,"Leaf"]]],[52.71,198.2,[[17.59,197.15,27.36,18.7,0.42857629306653433,-0.9035055954565794,"Leaf"]]],[39,260.06,[[3.57,279.73,27.36,18.7,-0.006902939255060647,-0.9999761744309916,"Leaf"]]],[145.3,185.63,[[126.97,158.82,27.36,18.7,0.8990721607310399,-0.43780046801987216,"Leaf"]]],[116.92,208.49,[[85.4,197.66,27.36,18.7,0.6192806018773118,-0.7851697498875478,"Leaf"]]],[101.3,241.41,[[64.86,250.7,27.36,18.7,0.21628395104715628,-0.9763305037329477,"Leaf"]]],[173.56,251.58,35,35],[321.26,36.12,[[318.14,1.56,27.36,18.7,0.9965082870714412,-0.08349391473599899,"Leaf"]]],[260.88,55.36,[[239.7,30.94,27.36,18.7,0.861077857359917,-0.5084731296385823,"Leaf"]]],[378.65,109.85,[[406.52,110,27.36,18.7,-0.8303070560332068,-0.557306192950939,"Leaf"]]],[344.63,96.81,[[366.44,90.16,27.36,18.7,-0.9900311505600138,-0.14084857443657478,"Leaf"]]],[308.31,99.85,[[295.59,69.34,27.36,18.7,0.9527898006751772,-0.30363068970273144,"Leaf"]]],[325.62,170.19,35,35],[620.15,245.57,[[649.55,261.91,27.36,18.7,-0.15959409597274285,-0.9871827209441234,"Leaf"]]],[565.45,550.51,[[579.72,580.47,27.36,18.7,0.7732871466592579,-0.6340559823955481,"Leaf"]]],[36.42,458,[[3.15,484.87,27.36,18.7,-0.1682027041762925,-0.9857524285071697,"Leaf"]]],[91.95,148.45,[[66.13,128.88,27.36,18.7,0.7787908142925284,-0.6272837217508362,"Leaf"]]],[383.99,45.04,[[409.22,41.45,27.36,18.7,-0.933684654259895,-0.3580963088326663,"Leaf"]]],[274.32,656.46,[[277.16,712.35,27.36,18.7,-0.9367740425600954,-0.34993484134280844,"Leaf"]]]],"e":[[0,1,[],[[405.66,401.96,61.37,18.7,0.5213485166954306,-0.8533438487148509,"Root-Edge"]]],[1,2],[1,3],[1,4],[1,5],[1,6],[0,7,[],[[268.23,398.95,61.37,18.7,0.4834440722369951,0.8753752504034548,"Root-Edge"]]],[7,8],[7,9],[7,10],[7,11],[7,12],[0,13,[],[[407.74,322.69,61.37,18.7,-0.4757866709710364,-0.8795607106540735,"Root-Edge"]]],[13,14],[13,15],[13,16],[13,17],[13,18],[0,19,[],[[336.08,439.99,61.37,18.7,0.999759704932882,0.02192104907427582,"Root-Edge"]]],[19,20],[19,21],[19,22],[19,23],[19,24],[0,30,[],[[270.35,318.48,61.37,18.7,-0.5287754007295448,0.8487617896579165,"Root-Edge"]]],[30,29],[30,28],[30,27],[30,26],[30,25],[0,36,[],[[340.26,281.05,61.37,18.7,-0.9995303423338449,-0.030644652942837143,"Root-Edge"]]],[36,35],[36,34],[36,33],[36,32],[36,31],[13,37],[1,38],[7,39],[30,40],[36,41],[19,42]],"vp":[-1.0,0.0,678.0,722.0]}} Sample balloon-drawing featuring interleaved child placement and ray-like - * node labels ConceptThe algorithm executes the following steps: - *

    - *
      - *
    1. Select a root node according to the specified {@link yfiles.tree.BalloonLayout#rootNodePolicy root policy}.
    2. - *
    3. Determine the placement of subtrees around the root using a bottom-up recursive approach (starting with leaf nodes).
    4. - *
    5. Assign the actual coordinates of nodes, again using a recursive approach (starting with the root node).
    6. - *
    - *

    - * Features - *

    - *

    - * The algorithm features integrated {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling edge labeling} as well as {@link yfiles.tree.BalloonLayout#integratedNodeLabeling node labeling}. Edge labels and node labels are placed - * automatically without generating overlaps with other labels or graph elements. There are different {@link yfiles.tree.BalloonLayout#nodeLabelingPolicy ways} to place node - * labels. Edge labeling will take the settings of {@link yfiles.layout.PreferredPlacementDescriptor} into account. - *

    - *

    - * Defining a {@link yfiles.tree.BalloonLayout#preferredChildWedge preferred wedge angle} has a great influence on the layout style. Subtrees rooted at a node get a certain - * amount of radial space to be placed around the parent node, such that a preferred angle close to 360 degrees will - * generate drawings where subtrees look like balloons, while an angle close to 180 degrees could be chosen to get drawings - * where subtrees look like semicircles. - *

    - *

    - * Since it is computationally not very complex, {@link yfiles.tree.BalloonLayout} is very well suited for large tree graphs. It - * performs well even for huge graphs. - *

    - *

    - * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} - * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. These edges - * will later be reinserted and routed separately. - *

    - * @class yfiles.tree.BalloonLayout - * @extends {yfiles.layout.MultiStageLayout} - */ - export interface BalloonLayout extends yfiles.layout.MultiStageLayout{} - export class BalloonLayout { - /** - * Creates a new {@link yfiles.tree.BalloonLayout} instance with default settings. - * @constructor - */ - constructor(); - /** - * Calculates the wedge angle that has to be reserved for the subtree rooted at the given node scaling the {@link yfiles.tree.BalloonLayoutNodeInfo#dist distance} with - * the given scale factor. - *

    - * Given some {@link yfiles.tree.BalloonLayoutNodeInfo#dist distance} the {@link yfiles.tree.BalloonLayoutNodeInfo#upperAngle upper angle} and {@link yfiles.tree.BalloonLayoutNodeInfo#lowerAngle lower angle} of the wedge belonging to the subtree rooted at root will be - * calculated and stored in the {@link yfiles.tree.BalloonLayoutNodeInfo} instance associated with root - * ({@link yfiles.tree.BalloonLayout#getInfo}). - *

    - *

    - * This method may be overridden to perform a custom wedge angle assignment scheme. The method is called when - * {@link yfiles.tree.BalloonLayout#calculateChildArrangement arranging child nodes}. Large edge labels on the incoming edge to root need to be considered, if {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling integrated edge labeling} - * should still work properly. - *

    - * @param {yfiles.algorithms.Node} root the node for which the wedge angles are calculated - * @param {number} [scaleFactor=1.0] a factor to be applied to the {@link yfiles.tree.BalloonLayoutNodeInfo#dist distance} of root - * @returns {number} the sum of the upper and lower wedge angle of the subtree rooted at the given root node - * @see yfiles.tree.BalloonLayout#calculateChildArrangement - * @protected - */ - calculateAngles(root:yfiles.algorithms.Node,scaleFactor?:number):number; - /** - * Calculates a child node arrangement for a given root node of the tree. - *

    - * During the arrangement, child nodes of root will be {@link yfiles.tree.BalloonLayout#sortChildNodes sorted}. Furthermore, distances of the child nodes will be chosen - * such that the wedge of the subtree of root fits into the preferred wedge angle, which is either defined via {@link yfiles.tree.BalloonLayout#preferredRootWedge} or {@link yfiles.tree.BalloonLayout#preferredChildWedge}. - * Calculated distances are stored in {@link yfiles.tree.BalloonLayoutNodeInfo#dist}. - *

    - *

    - * The angle values - upper and lower wedge angle - may also be updated during this process and stored in {@link yfiles.tree.BalloonLayoutNodeInfo#upperAngle} - * and - * {@link yfiles.tree.BalloonLayoutNodeInfo#lowerAngle}, respectively. To compute the angles of wedges, method CalculateAngles is - * used. - *

    - *

    - * This method may be overridden to perform a custom child node arrangement. If support for available features like {@link yfiles.tree.BalloonLayout#interleavedMode interleaving} - * should be maintained, then these features need to be carefully considered during the arrangement. - *

    - * @param {yfiles.algorithms.Node} root the node for whose children to compute an arrangement - * @protected - */ - calculateChildArrangement(root:yfiles.algorithms.Node):void; - /** - * Determines the root node of {@link yfiles.tree.BalloonLayout#graph} according to the chosen {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy}. - *

    - * This method may be overridden to implement some other strategy for choosing the root node of the input graph. It is - * called before the rest of the layout process within {@link yfiles.tree.BalloonLayout#applyLayoutCore}. - *

    - * @returns {yfiles.algorithms.Node} the root node of {@link yfiles.tree.BalloonLayout#graph} - * @see yfiles.tree.BalloonLayout#rootNodePolicy - * @protected - */ - determineRoot():yfiles.algorithms.Node; - /** - * Returns the {@link yfiles.tree.BalloonLayoutNodeInfo} object associated with the given node while the layout algorithm is - * active. - *

    - * The returned object contains detailed information describing the placement of a node in the layout being computed, e.g., - * a node's distance to its parent or the wedge angle of the subtree rooted at a node. - *

    - *

    - * Subclasses may want to override this method to realize another node information setup. This method is called throughout - * the algorithm, each time some information associated with a node needs to be retrieved or stored. - *

    - * @param {yfiles.algorithms.Node} node the node whose information object should be retrieved - * @returns {yfiles.tree.BalloonLayoutNodeInfo} the {@link yfiles.tree.BalloonLayoutNodeInfo} instance associated to the given node - * @see yfiles.tree.BalloonLayoutNodeInfo - */ - getInfo(node:yfiles.algorithms.Node):yfiles.tree.BalloonLayoutNodeInfo; - /** - * Returns the preferred radial amount (wedge) in degrees that child nodes may in total occupy around the given node. - *

    - * The wedge angle controls the degree to which the child nodes may radiate from the center of layout. A value close to 360 - * means that the child nodes may radiate in (almost) any direction from their parent node, edge lengths can in consequence - * stay rather small. On the other hand, a small value means that children are restricted to a small angle; thus, edges - * lengths (and drawings) may become large. - *

    - *

    - * This method returns the {@link yfiles.tree.BalloonLayout#preferredRootWedge preferred root wedge} if node root was selected as global root node ({@link yfiles.tree.BalloonLayout#rootNodePolicy}). Otherwise, it either - * returns {@link yfiles.tree.BalloonLayout#preferredChildWedge} or if the given node has an outdegree equal to 2, it returns the minimum of {@link yfiles.tree.BalloonLayout#preferredChildWedge} and 180. - *

    - *

    - * This method may be overridden to provide a custom child wedge function. - *

    - * @param {yfiles.algorithms.Node} root the node to get the preferred wedge angle for - * @returns {number} the preferred wedge angle for root in degrees - * @see yfiles.tree.BalloonLayout#preferredChildWedge - * @see yfiles.tree.BalloonLayout#preferredRootWedge - * @protected - */ - getPreferredChildWedge(root:yfiles.algorithms.Node):number; - /** - * Sorts the child nodes (successors) of the given node. - *

    - * This implementation uses the original node coordinates if {@link yfiles.tree.BalloonLayout#fromSketchMode From Sketch mode} is enabled. Otherwise it uses {@link yfiles.tree.BalloonLayout#comparer the specified comparator} - * to sort the outgoing edges and thus the children of root. If there is no such comparator, then the sorting depends on - * whether or not the child nodes are placed in an {@link yfiles.tree.BalloonLayout#interleavedMode interleaved} fashion: - *

    - *
      - *
    • Normal: Children are sorted according to the chosen {@link yfiles.tree.BalloonLayout#childOrderingPolicy child ordering policy}.
    • - *
    • - * Interleaved: Children are sorted such that the resulting interleaved node placement is compact, while children inducing - * larger subgraphs are placed next to smaller ones. - *
    • - *
    - *

    - * This method may be overridden to realize a custom child node ordering. It gets called in method {@link yfiles.tree.BalloonLayout#calculateChildArrangement} - * before coordinates are assigned and just after the wedge sizes for all subtrees rooted at root are determined. - *

    - * @param {yfiles.algorithms.Node} root the node whose child nodes will be sorted - * @protected - */ - sortChildNodes(root:yfiles.algorithms.Node):void; - /** - * Data provider key for marking nodes whose child nodes should be placed in an interleaved fashion - *

    - * This {@link yfiles.algorithms.IDataProvider} allows to individually configure the interleaving feature for each node in the - * graph. - *

    - * @see yfiles.tree.BalloonLayout#interleavedMode - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static INTERLEAVED_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for marking the node that will be used as root node of the tree. - * @see yfiles.tree.BalloonLayout#rootNodePolicy - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * The layout graph being acted upon. - * @protected - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - /** - * Gets or sets the {@link yfiles.collections.IComparer.} instance that determines the order of the outgoing edges for each node of the tree. - *

    - * If no {@link yfiles.collections.IComparer.} is specified (i.e. the {@link yfiles.collections.IComparer.} is null), the outgoing edges will be sorted according to the current - * {@link yfiles.tree.BalloonLayout#childOrderingPolicy child ordering policy}. - *

    - * @see yfiles.tree.BalloonLayout#childOrderingPolicy - * @see yfiles.tree.BalloonLayout#fromSketchMode - * @type {yfiles.collections.IComparer.} - */ - comparer:yfiles.collections.IComparer; - /** - * Gets or sets the child ordering policy for sorting the child nodes around their parents. - *

    - * The sorting policy can affect the compactness of drawings. Advantageous orderings allow adjacent subtrees to be close - * together and can thus make the whole layout more compact. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an unknown ordering policy is given - * @see yfiles.tree.BalloonLayout#fromSketchMode - * @see yfiles.tree.BalloonLayout#comparer - * @type {yfiles.tree.ChildOrderingPolicy} - */ - childOrderingPolicy:yfiles.tree.ChildOrderingPolicy; - /** - * Gets or sets the minimum distance to be kept between the nodes in the tree. - *

    - * The distance needs to be a non-negative integer value. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given minimum distance is negative - * @see yfiles.tree.BalloonLayout#allowOverlaps - * @type {number} - */ - minimumNodeDistance:number; - /** - * Gets or sets whether or not to consider the given coordinates of the input diagram when arranging the tree. - *

    - * Enabling this feature, the original circular order of child nodes around their parent nodes will be maintained according - * to the initial coordinates when determining the order of the child nodes. - *

    - * @type {boolean} - */ - fromSketchMode:boolean; - /** - * Gets or sets the root node selection policy of this layout algorithm. - *

    - * The policy determines which node is chosen as (virtual) tree root during the layout process. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an unknown root node policy is given - * @type {yfiles.tree.RootNodePolicy} - */ - rootNodePolicy:yfiles.tree.RootNodePolicy; - /** - * Gets or sets the preferred radial amount (wedge) in degrees that child nodes may in total occupy around their parent - * node. - *

    - * The wedge angle controls the degree to which the child nodes may radiate from the center of layout. A value close to 360 - * means that the child nodes may radiate in (almost) any direction from their parent node, edge lengths can in consequence - * stay rather small. On the other hand, a small value means that children are restricted to a small angle; thus, edge - * lengths (and drawings) may become large. - *

    - *

    - * The minimum allowed wedge angle is 1 and the maximum allowed value is 359. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given angle is smaller than 1 or larger than 359 - * @see yfiles.tree.BalloonLayout#preferredRootWedge - * @type {number} - */ - preferredChildWedge:number; - /** - * Gets or sets the preferred radial amount (wedge) in degrees that child nodes may in total occupy around the global - * root. - *

    - * This property allows to separately control the wedge angle for the designated root node of the tree, while {@link yfiles.tree.BalloonLayout#preferredChildWedge} controls the - * angles of all child nodes. The root node will be determined depending on the {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy}. - *

    - *

    - * The minimum allowed root wedge angle is 1 and the maximum allowed value is 360. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given angle is smaller than 1 or larger than 360 - * @see yfiles.tree.BalloonLayout#preferredChildWedge - * @type {number} - */ - preferredRootWedge:number; - /** - * Gets or sets whether or not (partially) overlapping nodes are allowed. - *

    - * If overlaps are allowed, the resulting layouts can become significantly more compact. Overlaps will mostly occur at the - * borders of nodes. Nodes will not be totally covered by other nodes. - *

    - * @type {boolean} - */ - allowOverlaps:boolean; - /** - * Gets or sets the factor defining how compact layout results will potentially be, where a smaller factor produces - * potentially more compact layouts. - *

    - * The algorithm tries to optimize the child node arrangement around each tree node such that each subtree is as close to - * its root as possible, while still fitting into the {@link yfiles.tree.BalloonLayout#preferredChildWedge preferred wedge angle} and not overlapping with adjacent subtrees. - *

    - *

    - * High compactness factor values induce the optimization procedure to be less strict and accept less optimal results, - * while low factor values mean that the optimization will only stop when being nearly optimal. Thus, lower values lead to - * a potentially higher runtime. - *

    - *

    - * The minimum factor value is 0.05 and the maximum is 1.0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the factor is smaller than 0.05 or greater than 1.0 - * @type {number} - */ - compactnessFactor:number; - /** - * Gets or sets the minimum length that this layout algorithm assigns to edges of the graph. - *

    - * A lower minimum edge length allows generally more compact layouts. It has the highest effect if most nodes of the graph - * have a low degree, as the minimum can potentially be met for such graphs. - *

    - *

    - * The minimum length must be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given length is negative - * @type {number} - */ - minimumEdgeLength:number; - /** - * Gets or sets whether or not the layout algorithm reserves space for node labels. - *

    - * The size of nodes will temporarily be adjusted such that the label is included. Therefore, result drawings may get - * significantly larger if this feature is enabled. - *

    - * @type {boolean} - */ - considerNodeLabels:boolean; - /** - * Gets or sets the mode for child node arrangement. - *

    - * Child nodes are either placed interleaved or on a single layer around their parent node. Interleaved placement means - * that child nodes are placed around their common parent in two different layers in an alternating fashion. For example, - * the first child is on the inner layer, the second child on the outer layer, the third one again on the inner layer, - * etc. - *

    - *

    - * Independent of this mode, the alignment of child nodes on the same layer is still defined by the {@link yfiles.tree.BalloonLayout#childAlignmentPolicy alignment policy}. - * However, {@link yfiles.tree.ChildAlignmentPolicy#SMART} is only supported for non-interleaved arrangement. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode for interleaved arrangement is given - * @see yfiles.tree.BalloonLayout#childAlignmentPolicy - * @type {yfiles.tree.InterleavedMode} - */ - interleavedMode:yfiles.tree.InterleavedMode; - /** - * Gets or sets the child alignment policy for this layout algorithm. - *

    - * This policy influences the distance of child nodes to their parent nodes and the alignment of children with the same - * parent. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an unknown policy is given - * @type {yfiles.tree.ChildAlignmentPolicy} - */ - childAlignmentPolicy:yfiles.tree.ChildAlignmentPolicy; - /** - * Gets or sets whether or not the layout algorithm automatically places node labels. - *

    - * If enabled, this layout algorithm will calculate the positions for the node labels assuring that no overlaps occur. - *

    - *

    - * Different labeling strategies may be selected using {@link yfiles.tree.BalloonLayout#nodeLabelingPolicy}. - *

    - * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy - * @type {boolean} - */ - integratedNodeLabeling:boolean; - /** - * Gets or sets whether or not the layout algorithm automatically places edge labels. - *

    - * If enabled, this layout algorithm will calculate the positions for the edge labels assuring that no overlaps occur. - *

    - * @type {boolean} - */ - integratedEdgeLabeling:boolean; - /** - * Gets or sets the policy defining how node labels are placed by the integrated node labeling mechanism (for example, the - * desired label orientation). - * @throws {Stubs.Exceptions.ArgumentError} if an unknown labeling policy is given - * @see yfiles.tree.BalloonLayout#integratedNodeLabeling - * @type {yfiles.tree.NodeLabelingPolicy} - */ - nodeLabelingPolicy:yfiles.tree.NodeLabelingPolicy; - /** - * Gets or sets the distance between node labels belonging to the same node. - *

    - * It also defines the distance between labels and the node they belong to in case of label placement outside of the node - * (e.g. for {@link yfiles.tree.NodeLabelingPolicy#RAY_LIKE ray-like label placement}). - *

    - *

    - * The spacing must have a non-negative value. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given spacing value is negative - * @see yfiles.tree.BalloonLayout#integratedNodeLabeling - * @type {number} - */ - nodeLabelSpacing:number; - /** - * Gets or sets the distance between edge labels belonging to the same edge as well as the distance of the edge labels to - * the target node of the edge. - *

    - * The spacing must have a non-negative value. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given label spacing value is negative - * @see yfiles.tree.BalloonLayout#integratedEdgeLabeling - * @type {number} - */ - edgeLabelSpacing:number; - /** - * Gets or sets whether or not chains are drawn straight or not. - *

    - * A chain is defined as a tree node with exactly one child node. If this feature is enabled, then the incoming edge and - * outgoing edge of the chain will have the same orientation, i.e., the whole chain looks straight. - *

    - *

    - * Straightening all chains can lead to smoother, more symmetric results. - *

    - * @type {boolean} - */ - chainStraighteningMode:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. - * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled - * @see yfiles.layout.MultiStageLayout#componentLayout - * @see yfiles.layout.ComponentLayout - * @type {boolean} - */ - componentLayoutEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for hiding group nodes is activated. - * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled - * @see yfiles.layout.MultiStageLayout#hideGroupsStage - * @see yfiles.layout.HideGroupsStage - * @type {boolean} - */ - hideGroupsStageEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} that modifies the orientation of the layout is activated. - * @see yfiles.layout.MultiStageLayout#orientationLayoutEnabled - * @see yfiles.layout.MultiStageLayout#orientationLayout - * @see yfiles.layout.MultiStageLayout#layoutOrientation - * @see yfiles.layout.OrientationLayout - * @type {boolean} - */ - orientationLayoutEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter - * @see yfiles.router.ParallelEdgeRouter - * @type {boolean} - */ - parallelEdgeRouterEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. - * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled - * @see yfiles.layout.MultiStageLayout#selfLoopRouter - * @see yfiles.layout.SelfLoopRouter - * @type {boolean} - */ - selfLoopRouterEnabled:boolean; - static $class:yfiles.lang.Class; - } - export enum FillStyle{ - /** - * Style specifier which defines that rows/columns are aligned with their leading side. - * @see yfiles.tree.AspectRatioNodePlacer#fillStyle - */ - LEADING, - /** - * Style specifier which defines that rows/columns are aligned with their center. - * @see yfiles.tree.AspectRatioNodePlacer#fillStyle - */ - CENTERED, - /** - * Style specifier which defines that rows/columns are justified to have the same width/height. - * @see yfiles.tree.AspectRatioNodePlacer#fillStyle - */ - JUSTIFY, - /** - * Style specifier which defines that rows/columns are aligned with their trailing side. - * @see yfiles.tree.AspectRatioNodePlacer#fillStyle - */ - TRAILING - } - export enum RootPlacement{ - /** - * A root placement specifier for placing the root centered above its subtree, depending on the actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - */ - TOP, - /** - * A root placement specifier for placing the root in the upper left corner of the subtree bounds with respect to the - * actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. - *

    - * Whether the root is placed entirely beside the subtree with no horizontal overlaps or entirely above the subtree without - * vertical overlaps will be determined by the layout of the subtree. The layout algorithm tries to minimize the bounds of - * the subtree. - *

    - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - * @see yfiles.tree.RootPlacement#CORNER_TOP - * @see yfiles.tree.RootPlacement#CORNER_SIDE - */ - CORNER, - /** - * A root placement specifier for placing the root in the upper left corner of the subtree bounds with respect to the - * actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. - *

    - * The root is placed entirely beside the subtree with no horizontal overlaps. This might by important if the root's height - * is very large while its width is small. - *

    - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - */ - CORNER_SIDE, - /** - * A root placement specifier for placing the root of a subtree in the upper left corner of the subtree bounds with respect - * to the actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. - *

    - * The root is placed entirely above the subtree with no vertical overlaps. This might by important if the root's width is - * very large while its height is small. - *

    - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - */ - CORNER_TOP - } - export enum SubtreeArrangement{ - /** - * A direction specifier for placing the child nodes next to each other in direction of the actual - * {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}, with the edges connecting in the direction of flow. - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY - */ - HORIZONTAL, - /** - * A direction specifier for placing the child nodes above each other in direction of the actual - * {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}, with the edges connecting orthogonally to the direction of flow. - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY - */ - VERTICAL - } - export enum InterleavedMode{ - /** - * A child placement mode where all child nodes are placed around their parent with equal distances. - * @see yfiles.tree.BalloonLayout#interleavedMode - */ - OFF, - /** - * A child placement mode where nodes are placed in an interleaved fashion, that is, with two different, alternating - * distances to the parent node. - * @see yfiles.tree.BalloonLayout#interleavedMode - */ - ALL_NODES, - /** - * A child placement mode where child nodes of selected nodes are placed in an interleaved fashion, that is, with two - * different, alternating distances to the parent node. - *

    - * All other nodes are placed without interleaving. The node selection can be specified by registering an appropriate {@link yfiles.algorithms.IDataProvider} - * for key {@link yfiles.tree.BalloonLayout#INTERLEAVED_NODES_DP_KEY}. - *

    - * @see yfiles.tree.BalloonLayout#interleavedMode - */ - MARKED_NODES - } - export enum NodeLabelingPolicy{ - /** - * Node labeling policy for ray-like label placement at nodes with zero or one child node. - *

    - * Labels belonging to leaf nodes and nodes with exactly one successor (thus forming a sort of chain) will not be oriented - * horizontal but ray-like; they get the same orientation as their nodes' incoming edge. The labels of the other nodes will - * be oriented horizontally and placed at the center of the corresponding node. - *

    - * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy - */ - RAY_LIKE, - /** - * Node labeling policy for ray-like label placement at leaf nodes. - *

    - * Labels corresponding to leaf nodes get the same orientation as their nodes' incoming edge and are placed outside the - * node (without overlaps). The labels of the other nodes will be oriented horizontally and placed at the center of the - * corresponding node. - *

    - * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy - */ - RAY_LIKE_LEAVES, - /** - * Node labeling policy for horizontal label placement at all nodes. - *

    - * The node labels are placed at the center of the corresponding node. - *

    - * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy - */ - HORIZONTAL - } - export enum ChildAlignmentPolicy{ - /** - * Alignment policy to align child nodes rooted at the same parent such that the border of their convex hull has the same - * distance to the parent node's center. - * @see yfiles.tree.BalloonLayout#childAlignmentPolicy - */ - PLAIN, - /** - * Alignment policy to align child nodes rooted at the same parent such that each child has the same center-to-center - * distance to the parent node. - *

    - * All nodes will be placed on a common radius around their parent, respective to their center coordinates. - *

    - * @see yfiles.tree.BalloonLayout#childAlignmentPolicy - */ - SAME_CENTER, - /** - * Alignment policy for aligning child nodes such that the distances to their parent are kept short and drawings can - * potentially become more compact. - *

    - * This policy realizes the exact same child alignment as {@link yfiles.tree.ChildAlignmentPolicy#PLAIN} if there are no edge - * labels associated with edges going to child nodes or if {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling integrated edge labeling} is disabled. - *

    - *

    - * If edge labels need to be considered, edge labels will be added to the convex hull of the child node to which the edge - * connects. This means that child nodes connected with a labeled edge will be aligned at the border where the edge label - * begins. In consequence, edge labels will be aligned with neighboring edge labels as well as neighboring child nodes if a - * child node has no edge label at its incoming edge. - *

    - *

    - * This alignment strategy is especially effective if large edge labels need to be considered while drawings should still - * be compact and distances from parent to child nodes short. - *

    - * @see yfiles.tree.BalloonLayout#childAlignmentPolicy - */ - COMPACT, - /** - * Alignment policy to align child nodes rooted at the same parent using a mixture of the other policies and aiming to - * achieve symmetry and compactness at the same time. - *

    - * Similar to - * {@link yfiles.tree.ChildAlignmentPolicy#SAME_CENTER}, this policy aims to achieve alignments featuring equal distances between - * parent and child node centers. However, a much larger distance for all child nodes caused by single large subtrees is - * avoided by this policy. In such cases, the smaller subtrees may be placed on a common radius and the large subtrees are - * placed with different distances. - *

    - * @see yfiles.tree.BalloonLayout#childAlignmentPolicy - */ - SMART - } - export enum ChildOrderingPolicy{ - /** - * Child ordering policy which orders child nodes depending on their subtree size such that large subtrees are placed next - * to small ones in order to save space. - *

    - * The actual area of a subtree is used as the subtree size. The smallest subtree is placed next to the largest subtree, - * followed by the second smallest subtree and so on. This way, drawings can become more compact, because the adjacent - * placement of large subtrees is avoided (which would require edges to become longer for subtrees to fit next to each - * other). - *

    - * @see yfiles.tree.BalloonLayout#childOrderingPolicy - */ - COMPACT, - /** - * Child ordering policy which sorts the child nodes according to their wedge angles. - *

    - * The node with the greatest angle gets median position in the sorting order. The smaller the wedges, the farther away a - * node will be placed from the median position. Using this policy, the produced results are often more symmetric. - *

    - * @see yfiles.tree.BalloonLayout#childOrderingPolicy - */ - SYMMETRIC - } - export enum RootNodePolicy{ - /** - * Root node policy for choosing a node with indegree 0 as root node of the tree. - *

    - * The selection of the root node will happen according to {@link yfiles.algorithms.Trees#getRoot}. - *

    - * @see yfiles.tree.BalloonLayout#rootNodePolicy - * @see yfiles.algorithms.Trees#getRoot - */ - DIRECTED_ROOT, - /** - * Root node policy for choosing the center node as root node of the tree. - *

    - * A {@link yfiles.algorithms.Trees#getCenterRoot center node} induces a minimum depth tree when being used as the root of that tree. - *

    - * @see yfiles.tree.BalloonLayout#rootNodePolicy - * @see yfiles.algorithms.Trees#getCenterRoot - */ - CENTER_ROOT, - /** - * Root node policy for choosing a weighted center node as root node of the tree. - *

    - * A weighted center node is a node which is part of the greatest number of all undirected paths in a graph. - *

    - * @see yfiles.tree.BalloonLayout#rootNodePolicy - */ - WEIGHTED_CENTER_ROOT, - /** - * Root node policy for choosing a custom node as the root node of the tree. - *

    - * The root node is specified using a {@link yfiles.algorithms.IDataProvider} registered with the graph with key - * {@link yfiles.tree.BalloonLayout#SELECTED_ROOT_DP_KEY}. - *

    - * @see yfiles.tree.BalloonLayout#rootNodePolicy - */ - SELECTED_ROOT - } - export enum ChildPlacement{ - /** - * Placement specifier which defines that subtrees are placed one below the other and left of the root node. - * @see yfiles.tree.DefaultNodePlacer#childPlacement - */ - VERTICAL_TO_LEFT, - /** - * Placement specifier which defines that subtrees are placed one below the other and right of the root node. - * @see yfiles.tree.DefaultNodePlacer#childPlacement - */ - VERTICAL_TO_RIGHT, - /** - * Placement specifier which defines that subtrees are placed horizontally next to each other and above the root node. - * @see yfiles.tree.DefaultNodePlacer#childPlacement - */ - HORIZONTAL_UPWARD, - /** - * Placement specifier which defines that subtrees are placed horizontally next to each other and below the root node. - * @see yfiles.tree.DefaultNodePlacer#childPlacement - */ - HORIZONTAL_DOWNWARD - } - export enum RootAlignment{ - /** - * Alignment specifier which defines that the root node is placed ahead of all its child subtrees. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed ahead (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) of the combined bounding box of all subtrees without labels. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - LEADING_OFFSET, - /** - * Alignment specifier which defines that the root node is placed aligned with its first subtree. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed aligned with the bounding box of its first (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) subtree. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - LEADING, - /** - * Alignment specifier which defines that the root node is placed aligned with the center of its subtrees. - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - CENTER, - /** - * Alignment specifier which defines that the root node is placed at the median of the connection points to its subtrees. - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - MEDIAN, - /** - * Alignment specifier which defines that the root node is placed aligned with its last subtree. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed aligned with the bounding box of its last (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) subtree. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - TRAILING, - /** - * Alignment specifier which defines that the root is placed after all its subtree. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed after (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) of the combined bounding box of all subtrees without labels. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - TRAILING_OFFSET, - /** - * Alignment specifier which defines that the root is placed after all its subtrees, centered on the bus. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed after (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) of the combined bounding box of all subtrees without labels. The - * bus leaves directly from the root node. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - TRAILING_ON_BUS, - /** - * Alignment specifier which defines that the root is placed ahead of all its subtrees, centered on the bus. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed ahead (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) of the combined bounding box of all subtrees without labels. The - * bus leaves directly from the root node. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - LEADING_ON_BUS - } - export enum RoutingStyle{ - /** - * Routing style specifier which defines that edge paths are routed orthogonally with the bends located in the channel - * between the root node and the child nodes. - * @see yfiles.tree.DefaultNodePlacer#routingStyle - */ - FORK, - /** - * Routing style specifier which defines that edge paths are routed orthogonally with just one bend. - *

    - * Edges will leave the root node at its sides and bend exactly above the according child node. If the child node is placed - * directly below the root node, the edge will bend inside of the root node and leave it at the bottom. - *

    - * @see yfiles.tree.DefaultNodePlacer#routingStyle - */ - FORK_AT_ROOT, - /** - * Routing style specifier which defines that edge paths are routed with a straight segment to the center of the child - * nodes. - * @see yfiles.tree.DefaultNodePlacer#routingStyle - */ - STRAIGHT, - /** - * Routing style constant which defines that edge paths are routed with a straight segment to the connector of the {@link yfiles.tree.SubtreeShape} - * of the child nodes. - * @see yfiles.tree.DefaultNodePlacer#routingStyle - */ - POLYLINE - } - export enum PortAssignmentMode{ - /** - * A port assignment specifier that defines that - * {@link yfiles.layout.PortConstraint}s are considered. Ports are placed using the following rules: - *
      - *
    • edges without a {@link yfiles.layout.PortConstraint} are anchored at the center of the node
    • - *
    • edges with a weak {@link yfiles.layout.PortConstraint} are anchored at the center of their specified side
    • - *
    • edges with a strong {@link yfiles.layout.PortConstraint} are anchored at their initial coordinates
    • - *
    - *

    - * If edges with - * {@link yfiles.layout.PortConstraint}s are grouped, all edges in the same group will use the port coordinates of the first edge - * in the group. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - PORT_CONSTRAINT, - /** - * A port assignment specifier which defines that edges are distributed evenly at the northern side of their nodes. - *

    - * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the - * distribution. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - DISTRIBUTED_NORTH, - /** - * A port assignment specifier which defines that edges are distributed evenly at the southern side of their nodes. - *

    - * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the - * distribution. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - DISTRIBUTED_SOUTH, - /** - * A port assignment specifier which defines that edges are distributed evenly at the eastern side of their nodes. - *

    - * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the - * distribution. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - DISTRIBUTED_EAST, - /** - * A port assignment specifier which defines that edges are distributed evenly at the western side of their nodes. - *

    - * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the - * distribution. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - DISTRIBUTED_WEST, - /** - * A port assignment specifier which defines that all ports are reset to the center of their nodes. - */ - NONE - } - export enum ConnectorDirection{ - /** - * A direction constant that describes that the last connector segment points up. The edge from the parent will connect to - * the north of the {@link yfiles.tree.SubtreeShape}. - * @see yfiles.tree.SubtreeShape#connectorDirection - */ - NORTH, - /** - * A direction constant that describes that the last connector segment points to the right. The edge from the parent will - * connect to the east of the {@link yfiles.tree.SubtreeShape}. - * @see yfiles.tree.SubtreeShape#connectorDirection - */ - EAST, - /** - * A direction constant that describes that the last connector segment points down. The edge from the parent will connect - * to the south of the {@link yfiles.tree.SubtreeShape}. - * @see yfiles.tree.SubtreeShape#connectorDirection - */ - SOUTH, - /** - * A direction constant that describes that the last connector segment points to the left. The edge from the parent will - * connect to the west of the {@link yfiles.tree.SubtreeShape}. - * @see yfiles.tree.SubtreeShape#connectorDirection - */ - WEST - } - export enum BorderLineSide{ - /** - * Side constant that defines the index of the northern border line. - * @see yfiles.tree.SubtreeShape#getBorderLine - */ - NORTH, - /** - * Side constant that defines the index of the eastern border line. - * @see yfiles.tree.SubtreeShape#getBorderLine - */ - EAST, - /** - * Side constant that defines the index of the southern border line. - * @see yfiles.tree.SubtreeShape#getBorderLine - */ - SOUTH, - /** - * Side constant that defines the index of the western border line. - * @see yfiles.tree.SubtreeShape#getBorderLine - */ - WEST - } - export enum LayeredRoutingStyle{ - /** - * Routing style specifier which defines that edges consist of one straight segment. - * @see yfiles.tree.LayeredNodePlacer#routingStyle - */ - STRAIGHT, - /** - * Routing style specifier which defines that edges are routed in an orthogonal, bus-like fashion. - * @see yfiles.tree.LayeredNodePlacer#routingStyle - */ - ORTHOGONAL - } - export enum MultiParentRoutingStyle{ - /** - * Routing style for routing non-shared edge segments in a polyline fashion. - *

    - * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. - * This style only applies to the part of the edges where they split to connect to different multi-parents. - *

    - * @see yfiles.tree.MultiParentDescriptor#edgeStyle - */ - POLYLINE, - /** - * Routing style for routing non-shared edge segments in an orthogonal fashion. - *

    - * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. - * This style only applies to the part of the edges where they split to connect to different multi-parents. - *

    - * @see yfiles.tree.MultiParentDescriptor#edgeStyle - */ - ORTHOGONAL, - /** - * Routing style for routing non-shared edge segments straight. This style will route the part of the edges that doesn't - * share the same path directly from the center of the multi-parent to the common point of the edges in the multi-parent - * structure. - *

    - * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. - * This style only applies to the part of the edges where they split to connect to different multi-parents. - *

    - * @see yfiles.tree.MultiParentDescriptor#edgeStyle - */ - STRAIGHT - } - export enum ParentConnectorDirection{ - /** - * Direction specifier which indicates that no connector should be calculated. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - NONE, - /** - * Direction specifier which indicates that any direction can be used for the connector to the parent node. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - ANY, - /** - * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended - * by a segment that goes north. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - NORTH, - /** - * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended - * by a segment that goes east. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - EAST, - /** - * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended - * by a segment that goes south. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - SOUTH, - /** - * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended - * by a segment that goes west. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - WEST - } - export enum PortStyle{ - /** - * A constant defining that ports are placed at the center of the nodes. - *

    - * This constant uses (0,0) as port offset. - *

    - * @see yfiles.tree.ClassicTreeLayout#portStyle - */ - NODE_CENTER, - /** - * A constant defining that ports are placed at the center of the border of the nodes. - * @see yfiles.tree.ClassicTreeLayout#portStyle - */ - BORDER_CENTER, - /** - * A constant defining that ports are evenly distributed along the border of the nodes. - * @see yfiles.tree.ClassicTreeLayout#portStyle - */ - BORDER_DISTRIBUTED, - /** - * A constant defining that ports are assigned based on given {@link yfiles.layout.PortConstraint port constraints}. - * @see yfiles.tree.ClassicTreeLayout#portStyle - */ - PORT_CONSTRAINTS_AWARE - } - export enum EdgeRoutingStyle{ - /** - * A constant for routing the edges as straight-line segments. - * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle - */ - PLAIN, - /** - * A constant for routing the edges orthogonally in a bus-like fashion. - * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle - */ - ORTHOGONAL - } - export enum LeafPlacement{ - /** - * A policy for placing the leaf nodes in a stack-like fashion with balanced stack heights. - *

    - * In this context, a stack-like fashion means that leaf nodes that connect to the same parent node are placed one upon the - * other, resulting in horizontally compact layouts. - *

    - *

    - * This policy tries to balance stack heights, i.e., for each subtree that consists only of leaf nodes, {@link yfiles.tree.LeafPlacement#LEAVES_STACKED_RIGHT} - * or {@link yfiles.tree.LeafPlacement#LEAVES_STACKED_LEFT_AND_RIGHT} will be used depending on the number of leaves in the - * subtree. - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - LEAVES_STACKED, - /** - * A policy for placing the leaf nodes in a stack-like fashion using a single stack left. - *

    - * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the - * other, resulting in horizontally compact layouts. - *

    - *

    - * This policy uses a single stack that lies to the left relative to the center of the parent node. - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - LEAVES_STACKED_LEFT, - /** - * A policy for placing the leaf nodes in a stack-like fashion using a single stack right. - *

    - * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the - * other, resulting in horizontally compact layouts. - *

    - *

    - * This policy uses a single stack that lies to the right relative to the center of the parent node. - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - LEAVES_STACKED_RIGHT, - /** - * A policy for placing the leaf nodes in a stack-like fashion using two stacks. - *

    - * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the - * other, resulting in horizontally compact layouts. - *

    - *

    - * This policy distributes leaf nodes among two stacks, one to the left and one to the right relative to the center of the - * parent node. - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - LEAVES_STACKED_LEFT_AND_RIGHT, - /** - * A policy for placing the leaf nodes in a Dendrogram-like fashion. - *

    - * According to this policy, all leaf nodes are placed in one layer (i.e. all leaves are placed on one horizontal line in a - * top-to-bottom or in a bottom-to-top layout). - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - ALL_LEAVES_ON_SAME_LAYER, - /** - * A policy for placing the leaf nodes with the same parent in the same layer. - *

    - * For example, siblings are being placed on a horizontal line in a top-to-bottom or in a bottom-to-top layout. - *

    - *

    - * This policy produces vertically compact layouts. - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - SIBLINGS_ON_SAME_LAYER - } - /** - * This {@link yfiles.tree.INodePlacer} places the subtrees such that the overall aspect ratio of the arranged subtree will be - * close to a preferred aspect ratio. - *

    - * Layout Style The aspect ratio describes the relation between width and height of the subtree. To achieve the desired aspect ratio, - * this {@link yfiles.tree.INodePlacer} divides the child {@link yfiles.tree.SubtreeShape}s into as much rows as needed. The edges are - * either routed along the rows or along the columns. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[280,70],[70,140],[140,140],[210,140],[280,140],[70,210],[140,210],[210,210],[280,210],[70,280],[140,280],[210,280],[280,280]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[260,15,260,85]],[0,5,[50,15,50,155]],[0,6,[120,15,120,155]],[0,7,[190,15,190,155]],[0,8,[260,15,260,155]],[0,9,[50,15,50,225]],[0,10,[120,15,120,225]],[0,11,[190,15,190,225]],[0,12,[260,15,260,225]],[0,13,[50,15,50,295]],[0,14,[120,15,120,295]],[0,15,[190,15,190,295]],[0,16,[260,15,260,295]]],"vp":[0.0,0.0,310.0,310.0]}} - *

    - *

    - * Aspect ratio 1 - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[70,140],[140,140],[210,140],[70,210],[140,210],[210,210],[70,280],[140,280],[210,280],[70,350],[140,350],[210,350],[70,420]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[50,15,50,155]],[0,5,[120,15,120,155]],[0,6,[190,15,190,155]],[0,7,[50,15,50,225]],[0,8,[120,15,120,225]],[0,9,[190,15,190,225]],[0,10,[50,15,50,295]],[0,11,[120,15,120,295]],[0,12,[190,15,190,295]],[0,13,[50,15,50,365]],[0,14,[120,15,120,365]],[0,15,[190,15,190,365]],[0,16,[50,15,50,435]]],"vp":[0.0,0.0,240.0,450.0]}} - *

    - *

    - * Aspect ratio 0.5 - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[280,70],[350,70],[420,70],[490,70],[560,70],[70,140],[140,140],[210,140],[280,140],[350,140],[420,140],[490,140],[560,140]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[260,15,260,85]],[0,5,[330,15,330,85]],[0,6,[400,15,400,85]],[0,7,[470,15,470,85]],[0,8,[540,15,540,85]],[0,9,[50,15,50,155]],[0,10,[120,15,120,155]],[0,11,[190,15,190,155]],[0,12,[260,15,260,155]],[0,13,[330,15,330,155]],[0,14,[400,15,400,155]],[0,15,[470,15,470,155]],[0,16,[540,15,540,155]]],"vp":[0.0,0.0,590.0,170.0]}} - *

    - *

    - * Aspect ratio 2 - *

    - * @class yfiles.tree.AspectRatioNodePlacer - * @extends {yfiles.tree.NodePlacerBase} - * @implements {yfiles.tree.IFromSketchNodePlacer} - */ - export interface AspectRatioNodePlacer extends yfiles.tree.NodePlacerBase,yfiles.tree.IFromSketchNodePlacer{} - export class AspectRatioNodePlacer { - /** - * Creates a new instance of {@link yfiles.tree.AspectRatioNodePlacer} with default settings. - * @constructor - */ - constructor(); - /** - * Creates an {@link yfiles.collections.IComparer. edge comparator} which takes the initial coordinates of the nodes into account. - *

    - * This {@link yfiles.collections.IComparer.} defines the order of the outgoing edges of a node before the actual placement of the node's subtree is calculated. - * It also considers whether or not the rows are placed {@link yfiles.tree.AspectRatioNodePlacer#horizontal horiontally}. - *

    - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} for the edges - */ - createFromSketchComparer():yfiles.collections.IComparer; - /** - * Gets or sets whether child nodes are distributed in horizontal rows or vertical columns. - * @type {boolean} - */ - horizontal:boolean; - /** - * Gets or sets the vertical distance between the {@link yfiles.tree.SubtreeShape}s. - *

    - * The nodes will be placed below each other, keeping this distance. - *

    - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - verticalDistance:number; - /** - * Gets or sets the horizontal distance between the {@link yfiles.tree.SubtreeShape}s. - *

    - * The nodes will be placed next to each other, keeping this distance. - *

    - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - horizontalDistance:number; - /** - * Gets or sets the preferred aspect ratio (width/height) for the subtrees. - *

    - * This ratio determines among how many rows/columns the nodes will be distributed. - *

    - *

    - * The aspect ratio needs to be positive. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified aspect ratio is 0 or negative - * @type {number} - */ - aspectRatio:number; - /** - * Gets or sets how rows/columns are aligned with each other. - * @throws {Stubs.Exceptions.ArgumentError} if an unknown fill style is specified - * @type {yfiles.tree.FillStyle} - */ - fillStyle:yfiles.tree.FillStyle; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.AspectRatioTreeLayout} arranges tree graphs in a compact fashion. - *

    - * Layout Style This layout algorithm tries to generate compact tree layouts with a certain preferred aspect ratio. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[40,740],[360,740],[480,810],[400,810],[240,810],[80,810],[160,810],[560,810],[200,880],[200,940],[200,1000],[200,1060],[200,1120],[120,880],[120,940],[120,1000],[120,1060],[120,1120],[280,880],[280,940],[320,880],[320,940],[600,880],[600,940],[600,1000],[520,880],[520,940],[520,1000],[440,880],[440,940],[440,1000],[440,1060],[440,1120],[40,70],[390,70],[80,450],[80,640],[200,140],[200,450],[80,140],[150,680],[190,680],[240,210],[240,270],[240,330],[120,520],[120,580],[160,520],[160,580],[270,490],[270,550],[310,490],[310,550],[350,490],[350,550],[120,210],[120,270],[120,330],[120,390],[160,210],[160,270],[160,330],[430,610],[580,510],[430,510],[430,140],[510,140],[590,140],[470,610],[650,550],[500,550],[540,550],[630,210],[630,270],[630,330],[470,210],[470,270],[470,330],[470,390],[470,450],[550,210],[550,270],[550,330],[550,390],[550,450]],"e":[[0,1,-10,0,0,0,[5,50,5,720,55,720]],[0,2,-10,0,0,0,[5,50,5,720,375,720]],[2,3,-10,0,0,0,[365,790,495,790]],[2,4,-10,0,0,0,[365,790,415,790]],[1,5,-10,0,0,0,[45,790,255,790]],[1,6,-10,0,0,0,[45,790,95,790]],[1,7,-10,0,0,0,[45,790,175,790]],[2,8,-10,0,0,0,[365,790,575,790]],[7,9,-10,0,0,0,[165,860,215,860]],[7,10,-10,0,0,0,[165,860,165,920,215,920]],[7,11,-10,0,0,0,[165,860,165,980,215,980]],[7,12,-10,0,0,0,[165,860,165,1040,215,1040]],[7,13,-10,0,0,0,[165,860,165,1100,215,1100]],[6,14,-10,0,0,0,[85,860,135,860]],[6,15,-10,0,0,0,[85,860,85,920,135,920]],[6,16,-10,0,0,0,[85,860,85,980,135,980]],[6,17,-10,0,0,0,[85,860,85,1040,135,1040]],[6,18,-10,0,0,0,[85,860,85,1100,135,1100]],[5,19,-10,0,0,0,[245,860,295,860]],[5,20,-10,0,0,0,[245,860,245,920,295,920]],[5,21,-10,0,0,0,[245,860,335,860]],[5,22,-10,0,0,0,[245,860,245,920,335,920]],[8,23,-10,0,0,0,[565,860,615,860]],[8,24,-10,0,0,0,[565,860,565,920,615,920]],[8,25,-10,0,0,0,[565,860,565,980,615,980]],[3,26,-10,0,0,0,[485,860,535,860]],[3,27,-10,0,0,0,[485,860,485,920,535,920]],[3,28,-10,0,0,0,[485,860,485,980,535,980]],[4,29,-10,0,0,0,[405,860,455,860]],[4,30,-10,0,0,0,[405,860,405,920,455,920]],[4,31,-10,0,0,0,[405,860,405,980,455,980]],[4,32,-10,0,0,0,[405,860,405,1040,455,1040]],[4,33,-10,0,0,0,[405,860,405,1100,455,1100]],[0,34,-10,0,0,0,[5,50,55,50]],[0,35,-10,0,0,0,[5,50,405,50]],[34,36,-10,0,0,0,[45,120,45,430,95,430]],[34,37,-10,0,0,0,[45,120,45,620,95,620]],[34,38,-10,0,0,0,[45,120,215,120]],[34,39,-10,0,0,0,[45,120,45,430,215,430]],[34,40,-10,0,0,0,[45,120,95,120]],[37,41,0,-10,0,0,[130,645,130,660,165,660]],[37,42,0,-10,0,0,[130,645,130,660,205,660]],[38,43,-10,0,0,0,[205,190,255,190]],[38,44,-10,0,0,0,[205,190,205,250,255,250]],[38,45,-10,0,0,0,[205,190,205,310,255,310]],[36,46,-10,0,0,0,[85,500,135,500]],[36,47,-10,0,0,0,[85,500,85,560,135,560]],[36,48,-10,0,0,0,[85,500,175,500]],[36,49,-10,0,0,0,[85,500,85,560,175,560]],[39,50,0,-10,0,0,[250,455,250,470,285,470]],[39,51,0,-10,0,0,[250,455,250,530,285,530]],[39,52,0,-10,0,0,[250,455,250,470,325,470]],[39,53,0,-10,0,0,[250,455,250,530,325,530]],[39,54,0,-10,0,0,[250,455,250,470,365,470]],[39,55,0,-10,0,0,[250,455,250,530,365,530]],[40,56,-10,0,0,0,[85,190,135,190]],[40,57,-10,0,0,0,[85,190,85,250,135,250]],[40,58,-10,0,0,0,[85,190,85,310,135,310]],[40,59,-10,0,0,0,[85,190,85,370,135,370]],[40,60,-10,0,0,0,[85,190,175,190]],[40,61,-10,0,0,0,[85,190,85,250,175,250]],[40,62,-10,0,0,0,[85,190,85,310,175,310]],[35,63,-10,0,0,0,[395,120,395,590,445,590]],[35,64,-10,0,0,0,[395,120,395,490,595,490]],[35,65,-10,0,0,0,[395,120,395,490,445,490]],[35,66,-10,0,0,0,[395,120,445,120]],[35,67,-10,0,0,0,[395,120,525,120]],[35,68,-10,0,0,0,[395,120,605,120]],[35,69,-10,0,0,0,[395,120,395,590,485,590]],[64,70,0,-10,0,0,[630,515,630,530,665,530]],[65,71,0,-10,0,0,[480,515,480,530,515,530]],[65,72,0,-10,0,0,[480,515,480,530,555,530]],[68,73,-10,0,0,0,[595,190,645,190]],[68,74,-10,0,0,0,[595,190,595,250,645,250]],[68,75,-10,0,0,0,[595,190,595,310,645,310]],[66,76,-10,0,0,0,[435,190,485,190]],[66,77,-10,0,0,0,[435,190,435,250,485,250]],[66,78,-10,0,0,0,[435,190,435,310,485,310]],[66,79,-10,0,0,0,[435,190,435,370,485,370]],[66,80,-10,0,0,0,[435,190,435,430,485,430]],[67,81,-10,0,0,0,[515,190,565,190]],[67,82,-10,0,0,0,[515,190,515,250,565,250]],[67,83,-10,0,0,0,[515,190,515,310,565,310]],[67,84,-10,0,0,0,[515,190,515,370,565,370]],[67,85,-10,0,0,0,[515,190,515,430,565,430]]],"vp":[0.0,0.0,680.0,1150.0]}} - *

    - *

    - * Example layout with an aspect ratio of 0.5 - *

    - *

    - * Concept - *

    - *

    - * The layout algorithm starts from the root and recursively assigns coordinates to all tree nodes. In this manner, leaf - * nodes will be placed first, while each parent node is placed centered above its child nodes. - *

    - *

    - * Features - *

    - *

    - * The aspect ratio of each subtree can be specified individually. A {@link yfiles.algorithms.IDataProvider} registered with {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY} - * returns the aspect ratio for each local root node. - *

    - *

    - * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with - * key {@link yfiles.tree.AspectRatioTreeLayout#SELECTED_ROOT_DP_KEY}. - *

    - * @class yfiles.tree.AspectRatioTreeLayout - * @extends {yfiles.layout.MultiStageLayout} - */ - export interface AspectRatioTreeLayout extends yfiles.layout.MultiStageLayout{} - export class AspectRatioTreeLayout { - /** - * Creates a new {@link yfiles.tree.AspectRatioTreeLayout} instance with default settings. - * @constructor - */ - constructor(); - /** - * Adds bends to the given {@link yfiles.layout.IEdgeLayout}. - *

    - * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} for each edge, after the nodes are placed, to - * route the path of the edges. It may be overridden to apply a custom routing style. - *

    - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge that is routed - * @param {yfiles.algorithms.Node} localRoot the local root of the subtree - * @param {yfiles.algorithms.Node} child the child connected to the local root with the given edge - * @param {yfiles.tree.RootPlacement} rootPlacement the placement specifier of the local root - * @param {yfiles.tree.SubtreeArrangement} routingPolicy the direction specifier for the routing - * @protected - */ - createBends(edgeLayout:yfiles.layout.IEdgeLayout,localRoot:yfiles.algorithms.Node,child:yfiles.algorithms.Node,rootPlacement:yfiles.tree.RootPlacement,routingPolicy:yfiles.tree.SubtreeArrangement):void; - /** - * Retrieves the aspect ratio for the subtree that is rooted at the given node. - *

    - * If there is an individual aspect ratio for the subtree provided by a {@link yfiles.algorithms.IDataProvider} registered with key - * {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY}, that ratio will be returned. Otherwise, the {@link yfiles.tree.AspectRatioTreeLayout#aspectRatio default aspect ratio} - * will be returned. - *

    - *

    - * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} before a subtree is arranged. It may be - * overridden to use another approach to define the aspect ratio for subtrees. - *

    - * @param {yfiles.algorithms.Node} localRoot the root node of the subtree - * @returns {number} the aspect ratio of the subtree rooted at the local root node - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY - * @see yfiles.tree.AspectRatioTreeLayout#aspectRatio - * @protected - */ - getAspectRatio(localRoot:yfiles.algorithms.Node):number; - /** - * Retrieves the root placement for the subtree that is rooted at the given node. - *

    - * Either an individual root placement for the subtree (defined via a {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY}), or if there is none, the {@link yfiles.tree.AspectRatioTreeLayout#rootPlacement default root placement} is returned. - *

    - *

    - * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} after a subtree is arranged to align the - * local root node. It may be overridden to use another approach to define the root placement for a subtree. - *

    - * @param {Object} localRoot the root of the subtree - * @returns {yfiles.tree.RootPlacement} the root placement of the subtree - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - * @see yfiles.tree.AspectRatioTreeLayout#rootPlacement - * @protected - */ - getRootPlacement(localRoot:Object):yfiles.tree.RootPlacement; - /** - * Retrieves the routing for the subtree that is rooted at the given node. - *

    - * Either an individual routing for the subtree (defined via a {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY}), or if there is none, the {@link yfiles.tree.AspectRatioTreeLayout#subtreeArrangement default routing} is returned. - *

    - *

    - * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} to determine the direction of the subtrees. - * It may be overridden to use another approach to define the routing for a subtree. - *

    - * @param {Object} localRoot the root of the subtree - * @returns {yfiles.tree.SubtreeArrangement} the routing policy for the subtree - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY - * @see yfiles.tree.AspectRatioTreeLayout#subtreeArrangement - * @protected - */ - getSubtreeArrangement(localRoot:Object):yfiles.tree.SubtreeArrangement; - /** - * Retrieves all children of the given local root. - *

    - * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} to arrange the subtrees below the local - * root. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of a subtree - * @returns {yfiles.algorithms.INodeCursor} all successors of the given node - * @protected - */ - getSuccessors(localRoot:yfiles.algorithms.Node):yfiles.algorithms.INodeCursor; - /** - * Data provider key for specifying a target aspect ratio for each subtree - *

    - * The aspect ratio needs to be greater than 0. - *

    - *
      - *
    • aspect ratio 1: width and height of the layout should be the same
    • - *
    • aspect ratio between 0 and 1: the height of the layout should be greater than its width
    • - *
    • aspect ratio greater than 1: the width of the layout should be greater than its height
    • - *
    - *

    - * If no specific ratio is defined for a subtree, the layout algorithm falls back to the default {@link yfiles.tree.AspectRatioTreeLayout#aspectRatio aspect ratio}. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SUBTREE_ASPECT_RATIO_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for specifying the placement of each subtree root - *

    - * If no root placement is specified for one of the subtree roots, the default {@link yfiles.tree.AspectRatioTreeLayout#rootPlacement root placement} will be used. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static ROOT_PLACEMENT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for specifying the routing direction for each subtree root - *

    - * The children in a subtree are arranged either horizontally or vertically. The edges are routed to the top of the child - * nodes or at the side, respectively. Directions depend on the {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation} and refer to {@link yfiles.layout.LayoutOrientation#TOP_TO_BOTTOM} - * for this description. - *

    - *

    - * If no specific routing policy is specified for a subtree root, the layout algorithm uses the default {@link yfiles.tree.AspectRatioTreeLayout#subtreeArrangement routing direction}. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SUBTREE_ROUTING_POLICY_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for marking the node that will be used as root node of the tree. - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * The input graph this algorithm is handling. - * @protected - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - /** - * Gets or sets the horizontal distance between adjacent nodes. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - horizontalDistance:number; - /** - * Gets or sets the vertical distance between adjacent nodes. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - verticalDistance:number; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. - * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled - * @see yfiles.layout.MultiStageLayout#componentLayout - * @see yfiles.layout.ComponentLayout - * @type {boolean} - */ - componentLayoutEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for hiding group nodes is activated. - * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled - * @see yfiles.layout.MultiStageLayout#hideGroupsStage - * @see yfiles.layout.HideGroupsStage - * @type {boolean} - */ - hideGroupsStageEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter - * @see yfiles.router.ParallelEdgeRouter - * @type {boolean} - */ - parallelEdgeRouterEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. - * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled - * @see yfiles.layout.MultiStageLayout#selfLoopRouter - * @see yfiles.layout.SelfLoopRouter - * @type {boolean} - */ - selfLoopRouterEnabled:boolean; - /** - * Gets or sets the {@link yfiles.collections.IComparer.} that will be used for sorting the {@link yfiles.algorithms.Node#sortOutEdges outgoing edges} of each local root in the tree before they are being - * arranged. - * @type {yfiles.collections.IComparer.} - */ - comparer:yfiles.collections.IComparer; - /** - * Gets or sets the default aspect ratio for this {@link yfiles.tree.AspectRatioTreeLayout}. - *

    - * This aspect ratio is used for all subtrees for which there is no specific aspect ratio defined in a {@link yfiles.algorithms.IDataProvider} - * registered with {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY}. - *

    - *

    - * The aspect ratio needs to have a positive value. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified aspect ratio is 0 or negative - * @type {number} - */ - aspectRatio:number; - /** - * Gets or sets the desired placement of the tree's root node. - * @throws {Stubs.Exceptions.ArgumentError} if an unknown placement specifiers is set - * @type {yfiles.tree.RootPlacement} - */ - rootPlacement:yfiles.tree.RootPlacement; - /** - * Gets or sets how the children of a local root are arranged and how the edges between them are routed. - * @throws {Stubs.Exceptions.ArgumentError} if the specified routing policy is unknown - * @type {yfiles.tree.SubtreeArrangement} - */ - subtreeArrangement:yfiles.tree.SubtreeArrangement; - /** - * Gets or sets the preferred distance between any two bends of an edge. - *

    - * Additionally, the preferred bend distance governs the distance between the first and last edges and the corresponding - * ports. - *

    - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - bendDistance:number; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.AssistantNodePlacer} places nodes that are marked as assistants left and right of their parents and all - * other nodes below the assistant nodes. - *

    - * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[75,0],[100,171],[50,171],[0,171],[150,171],[110,50,1],[40,100,1],[40,50,1]],"e":[[0,1,[90,150.5,115,150.5]],[0,2,[90,150.5,65,150.5]],[0,3,[90,150.5,15,150.5]],[0,4,[90,150.5,165,150.5]],[0,5,[90,65]],[0,6,[90,115]],[0,7,[90,65]]],"vp":[0.0,0.0,180.0,201.0]}} - *

    - *

    - * Assistants are marked - *

    - *

    - * Concept This {@link yfiles.tree.INodePlacer} delegates the placement of all assistant nodes to an instance of - * {@link yfiles.tree.LeftRightNodePlacer}. The non-assistant nodes are handled by another {@link yfiles.tree.AssistantNodePlacer#childNodePlacer node placer}. To be able to do this, {@link yfiles.tree.AssistantNodePlacer} - * uses a {@link yfiles.tree.IProcessor} which prepares the graph for node placing. - *

    - *

    - * A {@link yfiles.algorithms.IDataProvider} that is registered using {@link yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY} returns - * true for assistant nodes and false for all other nodes. - *

    - * @class yfiles.tree.AssistantNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface AssistantNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class AssistantNodePlacer { - /** - * Creates a new {@link yfiles.tree.AssistantNodePlacer} instance that uses the transformation defined by the given matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new {@link yfiles.tree.AssistantNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates a {@link yfiles.collections.IComparer.} that compares outgoing edges connecting to assistant nodes and edges connecting to non-assistant nodes - * separately. - * @param {yfiles.collections.IComparer.} assistantComparer the {@link yfiles.collections.IComparer.} for edges connecting to assistant nodes - * @param {yfiles.collections.IComparer.} childComparer the {@link yfiles.collections.IComparer.} for edges connecting to non-assistant nodes - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares edges to assistant nodes separately from edges to non-assistant nodes - * @static - */ - static createCompoundComparer(assistantComparer:yfiles.collections.IComparer,childComparer:yfiles.collections.IComparer):yfiles.collections.IComparer; - /** - * Data provider key for marking which nodes are placed as assistants - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static ASSISTANT_NODE_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets the spacing between subtrees for the delegate {@link yfiles.tree.INodePlacer}. - *

    - * The spacing needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given spacing is negative - * @type {number} - */ - spacing:number; - /** - * Gets or sets the {@link yfiles.tree.INodePlacer} instance that places the non-assistant children. - *

    - * These non-assistant child nodes will be placed below the assistant child nodes and are arranged by the given - * {@link yfiles.tree.INodePlacer}. Non-assistant child nodes are the ones that are not marked in the {@link yfiles.algorithms.IDataProvider} - * registered with {@link yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY}. - *

    - * @see yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY - * @type {yfiles.tree.INodePlacer} - */ - childNodePlacer:yfiles.tree.INodePlacer; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.BusNodePlacer} creates a bus to which all child nodes and the local root node are connected. - *

    - * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[40,0],[140,0],[190,0],[50,70],[0,70],[100,70],[150,70],[90,0,1]],"e":[[7,0,[105,50,55,50]],[7,1,[105,50,155,50]],[7,2,[105,50,205,50]],[7,3,[105,50,65,50]],[7,4,[105,50,15,50]],[7,5,[105,50,115,50]],[7,6,[105,50,165,50]]],"vp":[0.0,0.0,220.0,100.0]}} - *

    - *

    - * The root node is marked - *

    - * @class yfiles.tree.BusNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface BusNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class BusNodePlacer { - /** - * Creates a new {@link yfiles.tree.BusNodePlacer} instance that uses the transformation defined by the given matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new instance of {@link yfiles.tree.BusNodePlacer} with default settings. - * @constructor - */ - constructor(); - static $class:yfiles.lang.Class; - } - /** - * This layout algorithm arranges graphs with a tree structure. - *

    - * Layout Style {@link yfiles.tree.ClassicTreeLayout} is designed to arrange directed and undirected trees that have a unique root node. All - * children are placed below their parent in relation to the main layout direction. The edges of the graph are routed as - * straight-line segments or in an orthogonal bus-like fashion. - *

    - *

    - * Tree layout algorithms are commonly used for visualizing relational data and for producing diagrams of high quality that - * are able to reveal possible hierarchic properties of the graph. More precisely, they find applications in dataflow - * analysis, software engineering, bioinformatics and business administration. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[215.62,70],[365.62,0],[706.25,210],[25,140],[331.25,140],[100,280],[512.5,210],[325,280],[762.5,280],[200,210],[150,350],[400,350],[825,350],[350,350],[25,210],[900,420],[700,420],[100,350],[575,280],[575,350],[600,420],[200,280],[150,420],[25,280],[550,420],[300,420],[850,420],[800,420],[400,420],[200,350],[350,420],[50,350],[500,420],[100,420],[750,420],[450,420],[0,420],[50,420],[200,420],[650,280],[250,420],[650,420],[650,350]],"e":[[1,0,0,15,0,-15,[230.62,50]],[1,2,0,15,0,-15,[721.25,50]],[1,3,0,15,0,-15,[40,50]],[0,4,0,15,0,-15,[346.25,120]],[0,5,0,15,0,-15,[115,120]],[4,6,0,15,0,-15,[527.5,190]],[4,7,0,15,0,-15,[340,190]],[2,8,0,15,0,-15,[777.5,260]],[4,9,0,15,0,-15,[215,190]],[4,10,0,15,0,-15,[165,190]],[7,11,0,15,0,-15,[415,330]],[8,12,0,15,0,-15,[840,330]],[7,13,0,15,0,-15,[365,330]],[3,14,0,15,0,-15],[12,15,0,15,0,-15,[915,400]],[8,16,0,15,0,-15,[715,330]],[5,17,0,15,0,-15],[6,18,0,15,0,-15,[590,260]],[18,19,0,15,0,-15],[19,20,0,15,0,-15,[615,400]],[9,21,0,15,0,-15],[10,22,0,15,0,-15],[14,23,0,15,0,-15],[19,24,0,15,0,-15,[565,400]],[7,25,0,15,0,-15,[315,330]],[12,26,0,15,0,-15,[865,400]],[12,27,0,15,0,-15,[815,400]],[11,28,0,15,0,-15],[21,29,0,15,0,-15],[13,30,0,15,0,-15],[23,31,0,15,0,-15,[65,330]],[6,32,0,15,0,-15,[515,260]],[17,33,0,15,0,-15],[12,34,0,15,0,-15,[765,400]],[6,35,0,15,0,-15,[465,260]],[23,36,0,15,0,-15,[15,330]],[31,37,0,15,0,-15],[29,38,0,15,0,-15],[2,39,0,15,0,-15,[665,260]],[7,40,0,15,0,-15,[265,330]],[39,42,0,15,0,-15],[42,41,0,15,0,-15]],"vp":[0.0,0.0,930.0,450.0]}} A Dendrogram {@graph {"ann":{"s":[30,30],"d":1},"n":[[983.12,0],[495,85],[495,170],[151.25,170],[495,240],[42.5,255],[85,325],[0,325],[520,310],[470,310],[520,380],[135,395],[470,380],[85,395],[520,450],[35,395],[185,240,265,270,2],[260,255],[320,325],[405,395],[320,395],[370,465],[320,465],[235,395],[270,465],[200,325],[570,155,560,510,2],[670,170],[1060,240],[670,240],[1060,310],[670,325],[585,240],[1085,380],[670,395],[670,465],[620,325],[1035,380],[720,310,295,340,2],[810,325],[920,395],[835,395],[920,465],[785,395],[835,465],[970,535],[920,535],[735,395],[735,465],[870,535],[920,605],[1150,70,440,495,2],[1471.25,85],[1545,155],[1397.5,155],[1510,240],[1435,240],[1460,310],[1360,240],[1460,380],[1485,450],[1410,310],[1360,310],[1435,450],[1510,310],[1360,380],[1435,520],[1165,225,175,230,2],[1230,240],[1280,310],[1230,310],[1180,310],[1265,380,60,60,2],[1280,395]],"e":[[0,1,[998.12,50,510,50]],[1,2],[1,3,[510,135,166.25,135]],[2,4],[3,5,[166.25,220,57.5,220]],[5,6,[57.5,305,100,305]],[5,7,[57.5,305,15,305]],[4,8,[510,290,535,290]],[4,9,[510,290,485,290]],[8,10],[6,11,[100,375,150,375]],[9,12],[6,13],[10,14],[6,15,[100,375,50,375]],[3,17,[166.25,220,275,220]],[17,18,[275,305,335,305]],[18,19,[335,375,420,375]],[18,20],[20,21,[335,445,385,445]],[20,22],[18,23,[335,375,250,375]],[20,24,[335,445,285,445]],[17,25,[275,305,215,305]],[1,27,[510,135,685,135]],[27,28,[685,220,1075,220]],[27,29],[28,30],[29,31],[27,32,[685,220,600,220]],[30,33,[1075,360,1100,360]],[31,34],[34,35],[29,36,[685,290,635,290]],[30,37,[1075,360,1050,360]],[29,39,[685,290,825,290]],[39,40,[825,375,935,375]],[39,41,[825,375,850,375]],[40,42],[39,43,[825,375,800,375]],[41,44],[42,45,[935,515,985,515]],[42,46],[39,47,[825,375,750,375]],[47,48],[42,49,[935,515,885,515]],[46,50],[0,52,[998.12,50,1486.25,50]],[52,53,[1486.25,135,1560,135]],[52,54,[1486.25,135,1412.5,135]],[54,55,[1412.5,205,1525,205]],[54,56,[1412.5,205,1450,205]],[56,57,[1450,290,1475,290]],[54,58,[1412.5,205,1375,205]],[57,59],[59,60,[1475,430,1500,430]],[56,61,[1450,290,1425,290]],[58,62],[59,63,[1475,430,1450,430]],[55,64],[62,65],[63,66],[54,68,[1412.5,205,1245,205]],[68,69,[1245,290,1295,290]],[68,70],[68,71,[1245,290,1195,290]],[69,73]],"vp":[0.0,0.0,1590.0,665.0]}} A graph containing group nodes {@graph {"ann":{"s":[30,30],"d":1},"n":[[4.33,440.22],[74.33,418.34,73.78,73.78],[188.11,41,48,48],[197.11,417.95],[298,245.33],[298,445.67],[389.89,393.78,73.78,73.78],[411.78,146.89],[298,25],[411.78,243.78],[411.78,293.78],[298,590.56],[503.67,100,73.78,73.78],[197.11,708.56],[188.11,821.45,48,48],[525.56,415.67],[525.56,243.78],[399.84,13.06,53.88,53.88],[276.11,661.67,73.78,73.78],[411.78,343.78],[411.78,497.56],[402.78,547.56,48,48],[402.78,615.56,48,48],[298,755.45],[525.56,472.56],[525.56,293.78],[629.39,243.78],[525.56,0],[525.56,50],[525.56,522.56],[298,805.45],[617.45,485.62,53.88,53.88],[629.39,50],[411.78,755.45],[711.33,38.06,53.88,53.88],[629.39,559.5],[298,75],[411.78,683.56],[525.56,599.56],[411.78,805.45],[723.27,559.5],[629.39,293.78],[525.56,193.78],[723.27,497.56],[298,855.45],[525.56,649.56]],"e":[[0,1],[1,2,[168.11,455.22,168.11,65]],[1,3,[168.11,455.22,168.11,432.95]],[3,4,[256.11,432.95,256.11,260.33]],[3,5,[256.11,432.95,256.11,460.67]],[5,6,[369.89,460.67,369.89,430.67]],[4,7,[369.89,260.33,369.89,161.89]],[2,8,[256.11,65,256.11,40]],[4,9,[369.89,260.33,369.89,258.78]],[4,10,[369.89,260.33,369.89,308.78]],[3,11,[256.11,432.95,256.11,605.56]],[7,12,[483.67,161.89,483.67,136.89]],[1,13,[168.11,455.22,168.11,723.56]],[1,14,[168.11,455.22,168.11,845.45]],[6,15],[9,16],[8,17],[13,18,[256.11,723.56,256.11,698.56]],[4,19,[369.89,260.33,369.89,358.78]],[5,20,[369.89,460.67,369.89,512.56]],[11,21,[369.89,605.56,369.89,571.56]],[11,22,[369.89,605.56,369.89,639.56]],[13,23,[256.11,723.56,256.11,770.45]],[20,24,[483.67,512.56,483.67,487.56]],[10,25],[16,26],[17,27,[483.67,40,483.67,15]],[17,28,[483.67,40,483.67,65]],[20,29,[483.67,512.56,483.67,537.56]],[14,30,[256.11,845.45,256.11,820.45]],[29,31,[597.45,537.56,597.45,512.56]],[28,32],[23,33],[32,34],[29,35,[597.45,537.56,597.45,574.5]],[2,36,[256.11,65,256.11,90]],[18,37],[22,38,[483.67,639.56,483.67,614.56]],[30,39],[35,40],[25,41],[7,42,[483.67,161.89,483.67,208.78]],[31,43],[14,44,[256.11,845.45,256.11,870.45]],[22,45,[483.67,639.56,483.67,664.56]]],"vp":[4.0,0.0,762.0,886.0]}} Left-to-right layout with global layeringConcept - *

    - *

    - * The layout algorithm starts from the root and recursively assigns coordinates to all tree nodes. In this manner, leaf - * nodes will be placed first, while each parent node is placed centered above its children. - *

    - *

    - * Features - *

    - *

    - * The layout algorithm supports custom sorting of sibling nodes by using a specific {@link yfiles.tree.NodeOrderComparer}. Each - * tree node may have an individual {@link yfiles.tree.NodeOrderComparer} that is stored in a {@link yfiles.algorithms.IDataProvider} - * registered with the graph with {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY}. If this {@link yfiles.tree.NodeOrderComparer} - * uses the initial coordinates of the nodes, it allows the incremental insertion of child nodes while keeping the relative - * locations of the other nodes. - *

    - *

    - * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with - * key {@link yfiles.tree.ClassicTreeLayout#SELECTED_ROOT_DP_KEY}. - *

    - *

    - * {@link yfiles.tree.ClassicTreeLayout} can be configured to {@link yfiles.tree.ClassicTreeLayout#considerNodeLabels reserve space for node labels}. It can also {@link yfiles.tree.ClassicTreeLayout#integratedEdgeLabeling place edge labels along edges} - * such that the labels won't overlap with other graph elements. Edge labels are placed according to the information stored - * in a {@link yfiles.layout.PreferredPlacementDescriptor} instance. However, the placement along the edge will only affect the - * order of multiple labels at the same edge. The algorithm will always place the labels close to the target node. - *

    - *

    - * Grouping of nodes can also be handled by this layout algorithm. It is important that a group node contains a whole - * subtree. Otherwise, the group nodes may overlap with each other or with other nodes. Furthermore, the user may specify - * minimum size constraints for each group node using {@link yfiles.algorithms.IDataProvider} key - * {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY}. - *

    - *

    - * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} - * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. After the - * layout calculation, the stage will reinsert the edges that were removed and route them separately. - *

    - * @class yfiles.tree.ClassicTreeLayout - * @extends {yfiles.layout.MultiStageLayout} - */ - export interface ClassicTreeLayout extends yfiles.layout.MultiStageLayout{} - export class ClassicTreeLayout { - /** - * Creates a new {@link yfiles.tree.ClassicTreeLayout} instance with default settings. - * @constructor - */ - constructor(); - /** - * Data provider key for marking the node that will be used as root node of the tree. - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets whether or not a global layering is enforced, that is, each node spans exactly one layer. - *

    - * If it is enabled, the algorithm ensures that nodes never span more than one layer. Otherwise, nodes with larger size - * might span two or more layers such that a more compact layout is produced. - *

    - *

    - * This setting can be advantageous, if the hierarchical structure of the tree should be emphasized. - *

    - * @see yfiles.tree.ClassicTreeLayout#verticalAlignment - * @see yfiles.tree.ClassicTreeLayout#verticalAlignment - * @type {boolean} - */ - enforceGlobalLayering:boolean; - /** - * Gets or sets the layout policy for leaf nodes. - * @throws {Stubs.Exceptions.ArgumentError} if the specified policy is unknown - * @type {yfiles.tree.LeafPlacement} - */ - leafPlacement:yfiles.tree.LeafPlacement; - /** - * Gets or sets whether or not group nodes are handled by the layout algorithm. - * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled - * @type {boolean} - */ - groupingSupported:boolean; - /** - * Gets or sets the {@link yfiles.collections.IComparer.} instance that is used for sorting the outgoing edges of each node of the tree. - *

    - * This comparator defines the relative order of the child nodes in the layout. - *

    - * @type {yfiles.collections.IComparer.} - */ - comparer:yfiles.collections.IComparer; - /** - * Gets or sets the port assignment policy that will be applied. - * @type {yfiles.tree.PortStyle} - */ - portStyle:yfiles.tree.PortStyle; - /** - * Gets or sets the edge routing style used by this layout algorithm. - *

    - * If {@link yfiles.tree.EdgeRoutingStyle#PLAIN} is set, the edges will be routed as straight-line segments. If {@link yfiles.tree.EdgeRoutingStyle#ORTHOGONAL} - * is set, all edges will be routed orthogonally in a bus-like fashion. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an invalid layout style is provided - * @type {yfiles.tree.EdgeRoutingStyle} - */ - edgeRoutingStyle:yfiles.tree.EdgeRoutingStyle; - /** - * Gets or sets the minimum horizontal distance between adjacent nodes within the same layer. - * @throws {Stubs.Exceptions.ArgumentError} if the given distance is negative - * @type {number} - */ - minimumNodeDistance:number; - /** - * Gets or sets the minimum distance between two adjacent layers. - * @throws {Stubs.Exceptions.ArgumentError} if the given distance is negative - * @type {number} - */ - minimumLayerDistance:number; - /** - * Gets or sets whether or not the layout algorithm reserves space for node labels. - * @type {boolean} - */ - considerNodeLabels:boolean; - /** - * Gets or sets whether or not the layout algorithm reserves space for edge labels and places them. - *

    - * To define the desired placement for each label add a {@link yfiles.layout.PreferredPlacementDescriptor} on - * {@link yfiles.layout.IEdgeLabelLayout}. - *

    - *

    - * This method is a convenience method that assures that the {@link yfiles.layout.MultiStageLayout#labeling label layouter} is of type {@link yfiles.layout.LabelLayoutTranslator} - * and {@link yfiles.layout.LabelLayoutTranslator#translateEdgeLabels} is set to true. - *

    - * @type {boolean} - */ - integratedEdgeLabeling:boolean; - /** - * Gets or sets the vertical bus alignment for orthogonally routed edge buses. - *

    - * The bus alignment determines the relative position of an edge bus between two subsequent layers. The value of this - * property must lie within the interval [0,1] where: - *

    - *
      - *
    • A value of 0 places the bus at the top, directly below the parent node.
    • - *
    • A value of 0.5 places the bus in the middle between parent and child nodes.
    • - *
    • A value of 1 places the bus at the bottom, directly above the child nodes.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if busAlignment is not in [0,1] - * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle - * @see yfiles.tree.ClassicTreeLayout#enforceGlobalLayering - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @type {number} - */ - busAlignment:number; - /** - * Gets or sets the vertical alignment of the nodes within their corresponding layers. - *

    - * The value for the vertical alignment is considered as relative to the height of the corresponding layer, which is - * determined by the maximum height of the nodes that belong to the particular layer. - *

    - *

    - * The value of this property must lie within the interval [0,1], where: - *

    - *
      - *
    • A value of 0 corresponds to top-alignment.
    • - *
    • A value of 0.5 corresponds to center-alignment.
    • - *
    • A value of 1 corresponds to bottom-alignment.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if vertical alignment value does not lie within [0,1] - * @see yfiles.tree.ClassicTreeLayout#enforceGlobalLayering - * @type {number} - */ - verticalAlignment:number; - /** - * Gets or sets the modification matrix used for rotating / mirroring the layout. - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. - * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled - * @see yfiles.layout.MultiStageLayout#componentLayout - * @see yfiles.layout.ComponentLayout - * @type {boolean} - */ - componentLayoutEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter - * @see yfiles.router.ParallelEdgeRouter - * @type {boolean} - */ - parallelEdgeRouterEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. - * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled - * @see yfiles.layout.MultiStageLayout#selfLoopRouter - * @see yfiles.layout.SelfLoopRouter - * @type {boolean} - */ - selfLoopRouterEnabled:boolean; - static $class:yfiles.lang.Class; - } - /** - * {@link yfiles.tree.DefaultNodePlacer} is the default implementation of interface {@link yfiles.tree.INodePlacer}. - *

    - * Layout Style The layout style can be customized in several ways. Subtrees sharing the same local root node are either placed above - * or below each other. {@graph {"ann":{"s":[30,30],"d":1},"n":[[135,0],[0,70],[70,70],[120,149],[170,149],[220,149],[270,149],[70,199],[120,278],[170,278],[220,278],[270,278]],"e":[[0,1,0,15,0,0,[150,50,15,50]],[1,2],[2,3,-11.25,15,0,0,[73.75,116,135,133]],[2,4,-3.75,15,0,0,[81.25,116,185,133]],[2,5,3.75,15,0,0,[88.75,116,235,133]],[2,6,11.25,15,0,0,[96.25,116,285,133]],[1,7,[50,85,50,214]],[7,8,-11.25,15,0,0,[73.75,245,135,262]],[7,9,-3.75,15,0,0,[81.25,245,185,262]],[7,10,3.75,15,0,0,[88.75,245,235,262]],[7,11,11.25,15,0,0,[96.25,245,285,262]]],"vp":[0.0,0.0,300.0,308.0]}} - *

    - *

    - * Each layer in the tree uses different configurations of {@link yfiles.tree.DefaultNodePlacer} - *

    - *

    - * Features - *

    - *

    - * {@link yfiles.tree.SubtreeShape}s can be arranged in each main direction specified in - * {@link yfiles.tree.DefaultNodePlacer#childPlacement}. That way, the subtrees of the same graph can have different directions. - *

    - *

    - * This node placer aligns the local root node according to a chosen {@link yfiles.tree.DefaultNodePlacer#rootAlignment alignment}. - *

    - *

    - * There are various {@link yfiles.tree.DefaultNodePlacer#routingStyle routing styles} that result in different edge routes. - *

    - * @class yfiles.tree.DefaultNodePlacer - * @extends {yfiles.tree.NodePlacerBase} - * @implements {yfiles.tree.IFromSketchNodePlacer} - * @implements {yfiles.lang.ICloneable} - */ - export interface DefaultNodePlacer extends yfiles.tree.NodePlacerBase,yfiles.tree.IFromSketchNodePlacer,yfiles.lang.ICloneable{} - export class DefaultNodePlacer { - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with custom settings. - * @param {yfiles.tree.ChildPlacement} childPlacement the child placement specifier describing the style of the arrangement - * @param {yfiles.tree.RootAlignment} rootAlignment the alignment specifier describing how the root node is aligned with its child nodes - * @param {yfiles.tree.RoutingStyle} routingStyle the routing style specifier - * @param {number} verticalDistance the vertical distance between the {@link yfiles.tree.SubtreeShape}s - * @param {number} horizontalDistance the horizontal distance between the {@link yfiles.tree.SubtreeShape}s - * @param {number} minFirstSegmentLength the minimum length of the first edge segment (connected to the root node) - * @param {number} minLastSegmentLength the minimum length of the last edge segment (connected to the child node) - * @param {number} minSlope the minimum slope between the root node and the {@link yfiles.tree.SubtreeShape}s - * @param {number} minSlopeHeight the minimum vertical height of sloped edge segments - * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment or the routing style is unknown or if the horizontal/vertical distance - * or the minimum first/last segment length or the minimum slope or the minimum vertical height is negative - * @see yfiles.tree.DefaultNodePlacer#childPlacement - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - * @see yfiles.tree.DefaultNodePlacer#routingStyle - * @see yfiles.tree.DefaultNodePlacer#verticalDistance - * @see yfiles.tree.DefaultNodePlacer#horizontalDistance - * @see yfiles.tree.DefaultNodePlacer#minimumFirstSegmentLength - * @see yfiles.tree.DefaultNodePlacer#minimumLastSegmentLength - * @see yfiles.tree.DefaultNodePlacer#minimumSlope - * @see yfiles.tree.DefaultNodePlacer#minimumSlopeHeight - * @constructor - */ - constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,routingStyle:yfiles.tree.RoutingStyle,verticalDistance:number,horizontalDistance:number,minFirstSegmentLength:number,minLastSegmentLength:number,minSlope:number,minSlopeHeight:number); - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#rootAlignment root alignment}, {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} - * and {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. - * @param {yfiles.tree.ChildPlacement} childPlacement the child placement specifier describing the style of the arrangement - * @param {yfiles.tree.RootAlignment} rootAlignment the alignment specifier describing how the root node is aligned with its child nodes - * @param {yfiles.tree.RoutingStyle} routingStyle the routing style specifier - * @param {number} verticalDistance the vertical distance between the {@link yfiles.tree.SubtreeShape}s - * @param {number} horizontalDistance the horizontal distance between the {@link yfiles.tree.SubtreeShape}s - * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment or the routing style is unknown or if the horizontal/vertical distance - * is negative - * @see yfiles.tree.DefaultNodePlacer#childPlacement - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - * @see yfiles.tree.DefaultNodePlacer#routingStyle - * @see yfiles.tree.DefaultNodePlacer#verticalDistance - * @see yfiles.tree.DefaultNodePlacer#horizontalDistance - * @constructor - */ - constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,routingStyle:yfiles.tree.RoutingStyle,verticalDistance:number,horizontalDistance:number); - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#rootAlignment root alignment}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} and - * {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. - * @param {yfiles.tree.ChildPlacement} childPlacement the child placement specifier describing the style of the arrangement - * @param {yfiles.tree.RootAlignment} rootAlignment the alignment specifier describing how the root node is aligned with its child nodes - * @param {number} verticalDistance the vertical distance between the {@link yfiles.tree.SubtreeShape}s - * @param {number} horizontalDistance the horizontal distance between the {@link yfiles.tree.SubtreeShape}s - * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment specifier is unknown or if the horizontal/vertical distance is - * negative - * @see yfiles.tree.DefaultNodePlacer#childPlacement - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - * @see yfiles.tree.DefaultNodePlacer#verticalDistance - * @see yfiles.tree.DefaultNodePlacer#horizontalDistance - * @constructor - */ - constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,verticalDistance:number,horizontalDistance:number); - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} and {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. - * @param {yfiles.tree.ChildPlacement} childPlacement the child placement specifier describing the style of the arrangement - * @param {number} verticalDistance the vertical distance between the {@link yfiles.tree.SubtreeShape}s - * @param {number} horizontalDistance the horizontal distance between the {@link yfiles.tree.SubtreeShape}s - * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier is unknown or if the horizontal/vertical distance is negative - * @see yfiles.tree.DefaultNodePlacer#childPlacement - * @see yfiles.tree.DefaultNodePlacer#verticalDistance - * @see yfiles.tree.DefaultNodePlacer#horizontalDistance - * @constructor - */ - constructor(childPlacement:yfiles.tree.ChildPlacement,verticalDistance:number,horizontalDistance:number); - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Calculates the bends for the connector to the parent node. - *

    - * This implementation adds bends to the connector for edges that route the edges around the child node in case there are - * {@link yfiles.layout.PortConstraint}s that conflict with the direction of the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}. - *

    - *

    - * This method is called in {@link yfiles.tree.DefaultNodePlacer#placeSubtreeOfNode} to route the edges after the - * {@link yfiles.tree.SubtreeShape}s are arranged. It may be overridden to customize the routing style. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the local root node whose connector is calculated and stored in the given subtree shape - * @param {yfiles.layout.INodeLayout} rootLayout the {@link yfiles.layout.INodeLayout} of the root node - * @param {yfiles.tree.SubtreeShape} subtreeShape the shape of the whole subtree of the local root - * @param {yfiles.algorithms.Edge} parentEdge the incoming edge of the local root node that will be the connector for the given subtree shape - * @param {yfiles.layout.IEdgeLayout} parentEdgeLayout the current {@link yfiles.layout.IEdgeLayout} of the connector edge - * @param {number} direction the direction specifier as defined in the {@link yfiles.tree.INodePlacer} interface which should be used for the connector - * @see yfiles.tree.NodePlacerBase#determineChildConnectors - * @protected - */ - calculateParentConnector(graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,rootLayout:yfiles.layout.INodeLayout,subtreeShape:yfiles.tree.SubtreeShape,parentEdge:yfiles.algorithms.Edge,parentEdgeLayout:yfiles.layout.IEdgeLayout,direction:number):void; - /** - * Calculates the routing of the source side of the edge to the given child node. - *

    - * This method delegates to {@link yfiles.tree.DefaultNodePlacer#calculateSourceEdgeLayout} if the {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style} is not - * {@link yfiles.tree.RoutingStyle#FORK}. It may be overridden to implement a custom routing style. - *

    - * @param {yfiles.layout.INodeLayout} rootLayout the {@link yfiles.layout.INodeLayout} of the local root node - * @param {yfiles.tree.SubtreeShape} childShape the {@link yfiles.tree.SubtreeShape} instance of the corresponding child's subtree - * @param {yfiles.algorithms.Edge} edge the edge - * @param {number} rootForkCoordinate the y-coordinate of the first bend of the edge if the placement is horizontal, the x-coordinate otherwise - * @param {number} childForkCoordinate the y-coordinate of the second (= last) bend of the edge if the placement is horizontal, the x-coordinate otherwise - * @protected - */ - calculateSlopedSourceEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge,childForkCoordinate:number,rootForkCoordinate:number):void; - /** - * Calculates the routing of the source side of the edge to the given child node. - *

    - * This implementation adds bends to the {@link yfiles.layout.IEdgeLayout} of the given edge according to the specified {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style} - * and {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}. It also updates the target points in the {@link yfiles.tree.SubtreeShape}. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultNodePlacer#calculateSlopedSourceEdgeLayout} to route the edges. It may be - * overridden to implement a custom edge routing style. - *

    - * @param {yfiles.layout.INodeLayout} rootLayout the {@link yfiles.layout.INodeLayout} of the local root node - * @param {yfiles.tree.SubtreeShape} childShape the {@link yfiles.tree.SubtreeShape} of the child's subtree that is connected through the given edge - * @param {yfiles.algorithms.Edge} edge the edge - * @protected - */ - calculateSourceEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge):void; - /** - * Calculates the routing of the target side of the edge to the given child node. - *

    - * This implementation just resets the current {@link yfiles.layout.IEdgeLayout}. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultNodePlacer#placeSubtreeOfNode} after the {@link yfiles.tree.SubtreeShape shapes} of the local root's children - * are placed. It may be overridden to add some {@link yfiles.tree.SubtreeShape#addTargetPoint target points} to the edge. - *

    - * @param {yfiles.layout.INodeLayout} rootLayout the {@link yfiles.layout.INodeLayout} of the local root node - * @param {yfiles.tree.SubtreeShape} childShape the {@link yfiles.tree.SubtreeShape} of the child's subtree that is connected through the given edge - * @param {yfiles.algorithms.Edge} edge the edge - * @protected - */ - calculateTargetEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge):void; - /** - * Creates a {@link yfiles.collections.IComparer.} for outgoing edges which takes the initial coordinates of the edges' targets into account. - *

    - * Child nodes are sorted in a way that the layout will resemble the current arrangement of the nodes. This is especially - * useful for interactive or incremental layout calculation. - *

    - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that considers the initial coordinates of the nodes - */ - createComparer():yfiles.collections.IComparer; - /** - * Delegates to {@link yfiles.tree.DefaultNodePlacer#createComparer}. - * @returns {yfiles.collections.IComparer.} the From Sketch {@link yfiles.collections.IComparer.} - * @see yfiles.tree.DefaultNodePlacer#createComparer - */ - createFromSketchComparer():yfiles.collections.IComparer; - /** - * Gets or sets the direction in which the child nodes are placed with respect to their parent node. - *

    - * Subtrees can be placed below, above, left or right of their roots. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an unknown placement specifier is set - * @type {yfiles.tree.ChildPlacement} - */ - childPlacement:yfiles.tree.ChildPlacement; - /** - * Gets or sets how the root node is aligned with its children and their {@link yfiles.tree.SubtreeShape}s. - * @throws {Stubs.Exceptions.ArgumentError} if an unknown root alignment specifier is set - * @type {yfiles.tree.RootAlignment} - */ - rootAlignment:yfiles.tree.RootAlignment; - /** - * Gets or sets the relative vertical alignment of nodes with the same parent. - *

    - * All values between 0 and 1 result in a valid alignment. - *

    - *
      - *
    • 0 - nodes are top-aligned
    • - *
    • 0.5 - nodes are center-aligned
    • - *
    • 1 - nodes are bottom-aligned
    • - *
    - *

    - * Values outside the interval [0,1] will result in a more compact node placement with unaligned nodes. - *

    - * @type {number} - */ - verticalAlignment:number; - /** - * Gets or sets the style in which edge paths are routed. - * @throws {Stubs.Exceptions.ArgumentError} if the specified routing style is unknown - * @type {yfiles.tree.RoutingStyle} - */ - routingStyle:yfiles.tree.RoutingStyle; - /** - * Gets or sets the vertical distance between nodes or {@link yfiles.tree.SubtreeShape}s. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - verticalDistance:number; - /** - * Gets or sets the minimum length for the first segment of an edge. - *

    - * During layout calculation, the edges of the tree are directed. Hence, the first segment is always the segment that is - * attached to the source, which is the local root node. - *

    - *

    - * The length needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the minimum segment length is negative - * @type {number} - */ - minimumFirstSegmentLength:number; - /** - * Gets or sets the minimum length for the last segment of an edge. - *

    - * During layout calculation, the edges of the tree are directed. Hence, the last segment is always the segment that is - * attached to the target, which is a child node. - *

    - *

    - * The length needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the minimum segment length is negative - * @type {number} - */ - minimumLastSegmentLength:number; - /** - * Gets or sets the minimum slope of the edge segments. - *

    - * These sloped segments are between the vertical first and last segment of the edge. - *

    - *

    - * The segments may become steeper but they will have at least the specified slope. Negative minimum slopes can lead to - * edge routes looking like spider legs. - *

    - * @see yfiles.tree.DefaultNodePlacer#minimumSlopeHeight - * @type {number} - */ - minimumSlope:number; - /** - * Gets or sets the minimum height for sloped edge segments. - *

    - * These sloped segments are between the vertical first and last segment of the edge. - *

    - *

    - * The segments may become steeper to reach the specified height. - *

    - * @see yfiles.tree.DefaultNodePlacer#minimumSlope - * @type {number} - */ - minimumSlopeHeight:number; - /** - * Gets or sets the horizontal distance between nodes or {@link yfiles.tree.SubtreeShape}s. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - horizontalDistance:number; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.DefaultPortAssignment} provides some simple {@link yfiles.tree.DefaultPortAssignment#mode port assignment styles}. - *

    - * Ports are either {@link yfiles.tree.PortAssignmentMode#NONE centered} on the node, distributed at one side of the node or placed considering - * {@link yfiles.layout.PortConstraint}s. - *

    - * @class yfiles.tree.DefaultPortAssignment - * @implements {yfiles.tree.IPortAssignment} - */ - export interface DefaultPortAssignment extends Object,yfiles.tree.IPortAssignment{} - export class DefaultPortAssignment { - /** - * Creates a new {@link yfiles.tree.DefaultPortAssignment} instance using the given port assignment mode and ratio between the - * border and the ports and the gap between the ports themselves. - * @param {yfiles.tree.PortAssignmentMode} mode one of the predefined port assignment specifiers - * @param {number} [ratio=0.5] the ratio of the distance between outer ports and the border to the distance between any two ports - * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode is specified or if the specified ratio is negative - * @constructor - */ - constructor(mode:yfiles.tree.PortAssignmentMode,ratio?:number); - /** - * Creates a new {@link yfiles.tree.DefaultPortAssignment} instance with default settings. - * @constructor - */ - constructor(); - /** - * Assigns relative coordinates to the source port of the outgoing edge to a child of the given node. - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignPorts} for each outgoing edge of the given node. It may - * be overridden to assign a custom location to the source port of outgoing edges. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.Edge} edge the edge to the child node - * @param {number} index the zero-based index of the child edge - * @see yfiles.layout.IEdgeLayout#sourcePoint - * @protected - */ - assignChildEdgeSourcePort(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge,index:number):void; - /** - * Assigns relative coordinates to the target port of the incoming edge from the parent of the given node. - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignPorts} if the given node has a parent node. It may be - * overridden to assign a custom location to the target port of the incoming edge. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.Edge} edge the edge from the parent node - * @see yfiles.layout.IEdgeLayout#targetPoint - * @protected - */ - assignParentEdgeTargetPort(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge):void; - /** - * Places the ports of edges connecting to the given node according to the {@link yfiles.tree.DefaultPortAssignment#mode port assignment mode}. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node whose adjacent edges' ports should be placed - * @see yfiles.tree.DefaultPortAssignment#mode - */ - assignPorts(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; - /** - * Determines the distance between the outer ports and the border of the node. - *

    - * This implementation calculates the gap according to the number of edges at one side of the node. It also includes the - * {@link yfiles.tree.DefaultPortAssignment#borderGapToPortGapRatio ratio between border gap and port gap}. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} to calculate the location of the - * first port. It may be overridden to implement a different distribution of ports on the node's side. - *

    - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges that connect to this side - * @returns {number} the absolute gap to be used on both sides of the ports - * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort - * @see yfiles.tree.DefaultPortAssignment#borderGapToPortGapRatio - * @protected - */ - getPortBorderGap(sideLength:number,edgeCount:number):number; - /** - * Determines the distance between two adjacent ports. - *

    - * This implementation calculates the gap according to the number of edges at one side of the node. The edges are - * distributed keeping the given gap to the border of the node. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} to calculate the distance between - * two ports. It may be overridden to implement a different distribution of ports on the node's side. - *

    - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges/ports that connect to this side - * @param {number} portBorderGap the port border gap (i.e. calculated by {@link yfiles.tree.DefaultPortAssignment#getPortBorderGap}) - * @returns {number} the absolute distance to be used between two adjacent ports - * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort - * @see yfiles.tree.DefaultPortAssignment#getPortBorderGap - * @protected - */ - getPortDistanceDelta(sideLength:number,edgeCount:number,portBorderGap:number):number; - /** - * Retrieves the source {@link yfiles.layout.PortConstraint} for the given edge. - *

    - * This implementation accesses the {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY}. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} in - * {@link yfiles.tree.PortAssignmentMode#PORT_CONSTRAINT}. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the edge - * @param {number} index the index of the child that is the target of the given edge - * @returns {yfiles.layout.PortConstraint} the source {@link yfiles.layout.PortConstraint} or null if no source {@link yfiles.layout.PortConstraint} is specified - * @see yfiles.layout.PortConstraint - * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY - * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort - * @protected - */ - getSourcePortConstraint(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,index:number):yfiles.layout.PortConstraint; - /** - * Retrieves the target {@link yfiles.layout.PortConstraint} for the given edge. - *

    - * This implementation accesses the {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY}. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignParentEdgeTargetPort} in - * {@link yfiles.tree.PortAssignmentMode#PORT_CONSTRAINT}. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.layout.PortConstraint} the target {@link yfiles.layout.PortConstraint} or null if no target {@link yfiles.layout.PortConstraint} is specified - * @see yfiles.layout.PortConstraint - * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY - * @see yfiles.tree.DefaultPortAssignment#assignParentEdgeTargetPort - * @protected - */ - getTargetPortConstraint(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):yfiles.layout.PortConstraint; - /** - * Gets or sets the mode that describes how ports are placed. - * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode is specified - * @type {yfiles.tree.PortAssignmentMode} - */ - mode:yfiles.tree.PortAssignmentMode; - /** - * Gets or sets the ratio of the border gap (distance between the outer ports to the node border) to the port gap (distance between adjacent - * ports). - *

    - * The ratio must have a positive value. When the ratio is 0 the ports will be distributed along the whole side of the node - * without a gap between the last port and the corner. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified ratio is negative - * @type {number} - */ - borderGapToPortGapRatio:number; - /** - * Gets or sets whether or not the port assignment should reverse the order of the ports. - *

    - * The normal order is from left to right and from top to bottom. It will be reversed if this option is enabled. - *

    - * @type {boolean} - */ - reversedPortOrder:boolean; - static $class:yfiles.lang.Class; - } - /** - * {@link yfiles.tree.DelegatingNodePlacer} delegates the arrangement of the children to two different {@link yfiles.tree.INodePlacer}s. - *

    - * Layout Style This {@link yfiles.tree.INodePlacer} can, for example, be used for creating mind maps or a playing schedule of a sports - * competition. {@graph {"ann":{"s":[130,30],"d":1},"n":[[662,400,[[669.97,424.35,114.05,18.7]]],[662,175,[[669.97,199.35,114.05,18.7]]],[662,625,[[685.65,649.35,82.7,18.7]]],[812,175,[[829.98,199.35,94.04,18.7]]],[982,275,[[999.98,299.35,94.04,18.7]]],[812,625,[[835.65,649.35,82.7,18.7]]],[512,175,[[519.97,199.35,114.05,18.7]]],[982,725,[[1010.64,749.35,72.71,18.7]]],[1152,775,[[1180.64,799.35,72.71,18.7]]],[1322,800,[[1341.97,824.35,90.05,18.7]]],[982,75,[[1004.32,99.35,85.37,18.7]]],[1152,675,[[1163.65,699.35,106.71,18.7]]],[1152,325,[[1177.32,349.35,79.36,18.7]]],[982,525,[[1005.65,549.35,82.7,18.7]]],[1152,125,[[1190.32,149.35,53.37,18.7]]],[1152,575,[[1175.65,599.35,82.7,18.7]]],[1322,350,[[1347.32,374.35,79.36,18.7]]],[1322,150,[[1343.65,174.35,86.7,18.7]]],[1322,300,[[1347.32,324.35,79.36,18.7]]],[1152,225,[[1169.98,249.35,94.04,18.7]]],[1152,25,[[1174.32,49.35,85.37,18.7]]],[342,75,[[372.66,99.35,68.69,18.7]]],[1152,475,[[1165.65,499.35,102.7,18.7]]],[1322,500,[[1326,524.35,122.06,18.7]]],[1322,250,[[1339.98,274.35,94.04,18.7]]],[1322,600,[[1330.31,624.35,113.38,18.7]]],[172,25,[[188.64,49.35,96.72,18.7]]],[342,275,[[349.97,299.35,114.05,18.7]]],[2,0,[[26.32,24.35,81.36,18.7]]],[1322,550,[[1345.65,574.35,82.7,18.7]]],[172,125,[[202.66,149.35,68.69,18.7]]],[1322,200,[[1344.32,224.35,85.36,18.7]]],[2,100,[[32.32,124.35,69.37,18.7]]],[1322,450,[[1335.65,474.35,102.7,18.7]]],[1322,750,[[1350.64,774.35,72.71,18.7]]],[512,625,[[532.65,649.35,88.69,18.7]]],[172,225,[[179.97,249.35,114.05,18.7]]],[1322,700,[[1329.63,724.35,114.74,18.7]]],[172,325,[[200.98,349.35,72.03,18.7]]],[1322,50,[[1344.32,74.35,85.37,18.7]]],[2,300,[[4.98,324.35,124.05,18.7]]],[2,50,[[18.64,74.35,96.72,18.7]]],[2,150,[[32.66,174.35,68.69,18.7]]],[1322,650,[[1333.65,674.35,106.71,18.7]]],[1322,0,[[1356.66,24.35,60.69,18.7]]],[1322,100,[[1360.32,124.35,53.37,18.7]]],[342,525,[[347.31,549.35,119.39,18.7]]],[172,475,[[171.97,499.35,130.06,18.7]]],[2,350,[[30.98,374.35,72.03,18.7]]],[2,450,[[1.97,474.35,130.06,18.7]]],[342,725,[[362.65,749.35,88.69,18.7]]],[2,200,[[25.31,224.35,83.37,18.7]]],[172,575,[[177.31,599.35,119.39,18.7]]],[172,675,[[197.32,699.35,79.35,18.7]]],[2,500,[[15.98,524.35,102.04,18.7]]],[2,550,[[14.63,574.35,104.73,18.7]]],[2,600,[[7.31,624.35,119.39,18.7]]],[2,250,[[9.97,274.35,114.05,18.7]]],[172,775,[[192.65,799.35,88.69,18.7]]],[2,750,[[22.65,774.35,88.69,18.7]]],[2,800,[[16.64,824.35,100.72,18.7]]],[2,650,[[11.97,674.35,110.07,18.7]]],[2,700,[[27.32,724.35,79.35,18.7]]]],"e":[[0,1],[0,2],[1,3],[3,4,[954,190,954,290]],[2,5],[1,6],[5,7,[954,640,954,740]],[7,8,[1124,740,1124,790]],[8,9,[1294,790,1294,815]],[3,10,[954,190,954,90]],[7,11,[1124,740,1124,690]],[4,12,[1124,290,1124,340]],[5,13,[954,640,954,540]],[10,14,[1124,90,1124,140]],[13,15,[1124,540,1124,590]],[12,16,[1294,340,1294,365]],[14,17,[1294,140,1294,165]],[12,18,[1294,340,1294,315]],[4,19,[1124,290,1124,240]],[10,20,[1124,90,1124,40]],[6,21,[500,190,500,90]],[13,22,[1124,540,1124,490]],[22,23,[1294,490,1294,515]],[19,24,[1294,240,1294,265]],[15,25,[1294,590,1294,615]],[21,26,[330,90,330,40]],[6,27,[500,190,500,290]],[26,28,[160,40,160,15]],[15,29,[1294,590,1294,565]],[21,30,[330,90,330,140]],[19,31,[1294,240,1294,215]],[30,32,[160,140,160,115]],[22,33,[1294,490,1294,465]],[8,34,[1294,790,1294,765]],[2,35],[27,36,[330,290,330,240]],[11,37,[1294,690,1294,715]],[27,38,[330,290,330,340]],[20,39,[1294,40,1294,65]],[38,40,[160,340,160,315]],[26,41,[160,40,160,65]],[30,42,[160,140,160,165]],[11,43,[1294,690,1294,665]],[20,44,[1294,40,1294,15]],[14,45,[1294,140,1294,115]],[35,46,[500,640,500,540]],[46,47,[330,540,330,490]],[38,48,[160,340,160,365]],[47,49,[160,490,160,465]],[35,50,[500,640,500,740]],[36,51,[160,240,160,215]],[46,52,[330,540,330,590]],[50,53,[330,740,330,690]],[47,54,[160,490,160,515]],[52,55,[160,590,160,565]],[52,56,[160,590,160,615]],[36,57,[160,240,160,265]],[50,58,[330,740,330,790]],[58,59,[160,790,160,765]],[58,60,[160,790,160,815]],[53,61,[160,690,160,665]],[53,62,[160,690,160,715]]],"vp":[1.0,0.0,1451.0,830.0]}} - *

    - *

    - * There are two subtrees that are placed above and below the root; Both subtrees consist of two subtrees that are placed - * left and right of their local root - *

    - * @class yfiles.tree.DelegatingNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface DelegatingNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class DelegatingNodePlacer { - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with default settings using the given modification matrix and the - * given node placers as delegates. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix - * @param {yfiles.tree.INodePlacer} placerUpperLeft the first delegate {@link yfiles.tree.INodePlacer} which places the left subtrees - * @param {yfiles.tree.INodePlacer} placerLowerRight the second delegate {@link yfiles.tree.INodePlacer} which places the right subtrees - * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,placerUpperLeft:yfiles.tree.INodePlacer,placerLowerRight:yfiles.tree.INodePlacer); - /** - * Returns all upper-left children of the local root node. - *

    - * Which children belong to this list is determined using the {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY}. If no such {@link yfiles.algorithms.IDataProvider} is registered, the - * first half of the children is returned. - *

    - *

    - * These children are placed using the {@link yfiles.tree.INodePlacer} returned by {@link yfiles.tree.DelegatingNodePlacer#primaryPlacer}. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.NodeList} the list of upper-left child {@link yfiles.algorithms.Node}s - * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY - */ - primaryChildren(localRoot:yfiles.algorithms.Node,graph:yfiles.layout.LayoutGraph):yfiles.algorithms.NodeList; - /** - * Returns all lower-right children of the local root node. - *

    - * Which children belong to this list is determined using the {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY}. If no such {@link yfiles.algorithms.IDataProvider} is registered, the - * second half of the children is returned. - *

    - *

    - * These children are placed using the {@link yfiles.tree.INodePlacer} returned by {@link yfiles.tree.DelegatingNodePlacer#secondaryPlacer}. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.NodeList} the list of lower-right child {@link yfiles.algorithms.Node}s - * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY - */ - secondaryChildren(localRoot:yfiles.algorithms.Node,graph:yfiles.layout.LayoutGraph):yfiles.algorithms.NodeList; - /** - * Data provider key for dividing the children into two sets - *

    - * If there is no {@link yfiles.algorithms.IDataProvider} registered with this key, half of the nodes are placed left of the root - * and the remaining nodes are placed right of the root. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static PRIMARY_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets the {@link yfiles.tree.INodePlacer} instance that will arrange the lower-right part of the graph. - * @see yfiles.tree.DelegatingNodePlacer#primaryPlacer - * @see yfiles.tree.DelegatingNodePlacer#secondaryChildren - * @type {yfiles.tree.INodePlacer} - */ - secondaryPlacer:yfiles.tree.INodePlacer; - /** - * Gets the {@link yfiles.tree.INodePlacer} instance that will arrange the upper-left part of the graph. - * @see yfiles.tree.DelegatingNodePlacer#secondaryPlacer - * @see yfiles.tree.DelegatingNodePlacer#primaryChildren - * @type {yfiles.tree.INodePlacer} - */ - primaryPlacer:yfiles.tree.INodePlacer; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.DendrogramNodePlacer} arranges subtrees as dendrograms. - *

    - * Layout Style This {@link yfiles.tree.INodePlacer} arranges nodes from top to bottom. It arranges subtrees in such a way that all subtrees of - * a single local root are aligned with their bottom border. {@graph {"ann":{"s":[30,30],"d":1},"n":[[212.5,0],[400,70],[450,140],[300,210],[400,210],[450,210],[150,140],[25,70],[200,280],[150,280],[50,210],[450,280],[350,280],[25,140],[100,210],[400,280],[0,280],[300,280],[50,280],[100,280],[250,280]],"e":[[0,1,[227.5,50,415,50]],[1,2,[415,120,465,120]],[0,3,[227.5,50,315,50]],[1,4],[2,5],[0,6,[227.5,50,165,50]],[0,7,[227.5,50,40,50]],[6,8,[165,190,215,190]],[6,9],[5,11],[1,12,[415,120,365,120]],[7,13],[13,10,[40,190,65,190]],[6,14,[165,190,115,190]],[4,15],[13,16,[40,190,15,190]],[3,17],[10,18],[14,19],[0,20,[227.5,50,265,50]]],"vp":[0.0,0.0,480.0,310.0]}} - *

    - *

    - * Note: This implementation does not support {@link yfiles.layout.PortConstraint}s. - *

    - * @class yfiles.tree.DendrogramNodePlacer - * @implements {yfiles.tree.IFromSketchNodePlacer} - */ - export interface DendrogramNodePlacer extends Object,yfiles.tree.IFromSketchNodePlacer{} - export class DendrogramNodePlacer { - /** - * Creates a new {@link yfiles.tree.DendrogramNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates a {@link yfiles.collections.IComparer.} that sorts outgoing edges according to the x-coordinate of their target nodes. - *

    - * This {@link yfiles.collections.IComparer.} can be used for achieving a From Sketch layout. - *

    - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} - * @see yfiles.tree.DendrogramNodePlacer#createFromSketchComparer - */ - createComparer():yfiles.collections.IComparer; - /** - * Creates a {@link yfiles.collections.IComparer.} for the edges which takes the initial x-coordinates of the nodes into account. - *

    - * This implementation delegates to {@link yfiles.tree.DendrogramNodePlacer#createComparer}. - *

    - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} for the edges - * @see yfiles.tree.DendrogramNodePlacer#createComparer - */ - createFromSketchComparer():yfiles.collections.IComparer; - /** - * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. - *

    - * This implementation returns null. Hence, no pre- or post-processing is done. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} null - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Provides {@link yfiles.tree.ParentConnectorDirection#NORTH} for all children. - *

    - * Edges will always connect to the top of the child nodes. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.algorithms.IDataMap} connectorMap the map that is used for storing the direction specifiers of the child nodes - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Arranges the {@link yfiles.tree.SubtreeShape SubtreeShapes} of the local root and its children as a dendrogram. - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the combined shape of the whole subtree rooted at the given local root node - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - /** - * Gets or sets the minimum distance between the {@link yfiles.tree.SubtreeShape} of a root node and the bus connecting to all of - * its children. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - minimumRootDistance:number; - /** - * Gets or sets the minimum horizontal distance between adjacent {@link yfiles.tree.SubtreeShape SubtreeShapes}. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - minimumSubtreeDistance:number; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.DoubleLineNodePlacer} arranges the children of a local root alternating in two lines. - *

    - * Layout Style This {@link yfiles.tree.INodePlacer} arranges nodes from top to bottom. It places the subtrees in two horizontal lines below - * the root. They are distributed in an alternating fashion, i.e., adjacent subtrees are in different lines. - *

    - *

    - * This node placer is especially useful for leaves with a large width. - *

    - *

    - * {@graph {"ann":{"s":[141.67,30],"d":1},"n":[[298.33,0,60,30],[0,60],[85.83,99.9],[171.67,60],[257.5,99.9],[343.33,60],[429.17,99.9],[515,60]],"e":[[0,1,[70.83,15]],[0,2,[156.67,15]],[0,3,[242.5,15]],[0,4],[0,5,[414.17,15]],[0,6,[500,15]],[0,7,[585.83,15]]],"vp":[0.0,0.0,657.0,130.0]}} - *

    - * @class yfiles.tree.DoubleLineNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface DoubleLineNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class DoubleLineNodePlacer { - /** - * Creates a new {@link yfiles.tree.DoubleLineNodePlacer} instance whose direction is specified by the given modification matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new {@link yfiles.tree.DoubleLineNodePlacer} instance with the default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. - * @type {yfiles.tree.RootNodeAlignment} - */ - rootAlignment:yfiles.tree.RootNodeAlignment; - /** - * Gets or sets the ratio of the {@link yfiles.tree.RotatableNodePlacerBase#spacing spacing} between the root and the children in the upper line and the spacing between the - * two lines of subtrees. - * @type {number} - */ - doubleLineSpacingRatio:number; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.tree.FreeNodePlacer} is a simple pseudo-placer. - *

    - * The children of local root nodes are not moved. The {@link yfiles.tree.INodePlacer} just merges their rotated shapes and routes - * the edges. - *

    - *

    - * This {@link yfiles.tree.INodePlacer} may be useful if a local root node does not have any children or you want to place them - * manually. - *

    - * @class yfiles.tree.FreeNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface FreeNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class FreeNodePlacer { - /** - * Creates a new instance of {@link yfiles.tree.FreeNodePlacer} with default settings. - * @constructor - */ - constructor(); - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.GridNodePlacer} arranges the shapes of the children of a local root in a grid. - *

    - * Layout Style The grid consists of a number of rows. The subtrees are assigned to the rows using a {@link yfiles.algorithms.IDataProvider} - * that is registered with the graph with {@link yfiles.tree.GridNodePlacer#ROW_INDEX_DP_KEY}. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[50,140],[50,210],[50,70],[100,140],[100,210],[100,70],[150,140],[150,210],[150,70],[200,140],[200,210],[200,70]],"e":[[0,1,[40,15,40,120,65,120]],[0,2,[40,15,40,190,65,190]],[0,3,[40,15,40,50,65,50]],[0,4,[40,15,40,120,115,120]],[0,5,[40,15,40,190,115,190]],[0,6,[40,15,40,50,115,50]],[0,7,[40,15,40,120,165,120]],[0,8,[40,15,40,190,165,190]],[0,9,[40,15,40,50,165,50]],[0,10,[40,15,40,120,215,120]],[0,11,[40,15,40,190,215,190]],[0,12,[40,15,40,50,215,50]]],"vp":[0.0,0.0,230.0,240.0]}} - *

    - *

    - * Child nodes placed in a grid using three rows and four columns - *

    - * @class yfiles.tree.GridNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface GridNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class GridNodePlacer { - /** - * Creates a new {@link yfiles.tree.GridNodePlacer} instance with the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} and {@link yfiles.tree.GridNodePlacer#rootAlignment root alignment}. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @param {yfiles.tree.RootNodeAlignment} rootAlignment the alignment of the local root with its subtrees - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,rootAlignment:yfiles.tree.RootNodeAlignment); - /** - * Creates a new {@link yfiles.tree.GridNodePlacer} instance whose direction is specified by the given modification matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new {@link yfiles.tree.GridNodePlacer} with default settings. - * @constructor - */ - constructor(); - /** - * Data provider key for assigning nodes to the rows in the grid - *

    - * If no {@link yfiles.algorithms.IDataProvider} is registered with this key, all nodes will be placed in the same row. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static ROW_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. - * @type {yfiles.tree.RootNodeAlignment} - */ - rootAlignment:yfiles.tree.RootNodeAlignment; - static $class:yfiles.lang.Class; - } - /** - * This {@link yfiles.tree.INodePlacer} places the children of a local root in groups. - *

    - * The groups are determined by the grouping of the edges that connect the children to its root. The placement of the - * groups is specified by a {@link yfiles.tree.INodePlacer} which will consider grouped children as one child. The children within - * a group are placed by another {@link yfiles.tree.INodePlacer}. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[70.15,0,91.19,30],[0,91],[111,91],[201.5,91],[0,141],[111,141],[201.5,141]],"e":[[0,1,-30,15,0,0,[85.75,50,50,50,50,106]],[0,2,0,15,0,0,[115.75,50,91,50,91,106]],[0,3,30,15,0,0,[145.75,50,181.5,50,181.5,106]],[0,4,-30,15,0,0,[85.75,50,50,50,50,156]],[0,5,0,15,0,0,[115.75,50,91,50,91,156]],[0,6,30,15,0,0,[145.75,50,181.5,50,181.5,156]]],"vp":[0.0,0.0,232.0,171.0]}} There are three edge groups whose target nodes are placed above each other - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - * @class yfiles.tree.GroupedNodePlacer - * @implements {yfiles.tree.INodePlacer} - */ - export interface GroupedNodePlacer extends Object,yfiles.tree.INodePlacer{} - export class GroupedNodePlacer { - /** - * Creates a new {@link yfiles.tree.GroupedNodePlacer} instance. - * @param {yfiles.tree.INodePlacer} groupPlacer the {@link yfiles.tree.INodePlacer} which places the child groups - * @param {yfiles.tree.INodePlacer} childPlacer the {@link yfiles.tree.INodePlacer} which places the children within their group - * @constructor - */ - constructor(groupPlacer:yfiles.tree.INodePlacer,childPlacer:yfiles.tree.INodePlacer); - /** - * Creates a {@link yfiles.tree.IProcessor} that prepares the graph for edge grouping. - *

    - * In a pre-processing step, the {@link yfiles.tree.IProcessor} inserts a dummy node for each edge group and connects it to the - * local root and the edges of the according group. The child node placer is assigned to those dummy nodes and will arrange - * them during the layout calculation. - *

    - *

    - * The changes to the graph are restored in a post-processing step. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} the {@link yfiles.tree.IProcessor} responsible for preparing the graph - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Delegates to the {@link yfiles.tree.INodePlacer} responsible for arranging the nodes in one group. - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.algorithms.IDataMap} connectorMap the map used for storing the direction specifiers of the child nodes - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Places the groups of {@link yfiles.tree.SubtreeShape}s according to their group IDs. - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the merged {@link yfiles.tree.SubtreeShape}s of the local root and its children - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.tree.IFromSketchNodePlacer} arranges the subtrees while taking the initial locations of the nodes into account. - *

    - * It provides a {@link yfiles.collections.IComparer.} which sorts the outgoing edges of a node according to the initial coordinates of their target nodes. - * Keeping the original order of nodes, this {@link yfiles.collections.IComparer.} allows to incrementally add new nodes to the graph. - *

    - * @interface - * @implements {yfiles.tree.INodePlacer} - */ - export interface IFromSketchNodePlacer extends Object,yfiles.tree.INodePlacer{ - /** - * Creates an {@link yfiles.collections.IComparer. edge comparator} which takes the initial coordinates of the nodes into account. - *

    - * This {@link yfiles.collections.IComparer.} defines the order of the outgoing edges of a node before the actual placement of the node's subtree is - * calculated. - *

    - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} for the edges - * @abstract - */ - createFromSketchComparer():yfiles.collections.IComparer; - } - var IFromSketchNodePlacer:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A {@link yfiles.tree.INodePlacer} is responsible for the arrangement of a local root node and all of its subtrees. - *

    - * Subtrees are represented as {@link yfiles.tree.SubtreeShape SubtreeShape}s with a connecting edge to the root of the subtree. - *

    - *

    - * Implementations of this interface have to: - *

    - *
      - *
    • - * arrange the {@link yfiles.tree.SubtreeShape SubtreeShapes} and the root node (only the relative position matters, shapes can be placed at any absolute - * location, {@link yfiles.tree.TreeLayout} will perform the final alignment). - *
    • - *
    • - * perform the edge routing from the root node to all child nodes with respect to the connector provided by the - * {@link yfiles.tree.SubtreeShape SubtreeShapes} - *
    • - *
    • calculate the union of the {@link yfiles.tree.SubtreeShape SubtreeShapes} and the shape of the root node as well as any added edges
    • - *
    • initialize the connector of the root node with respect to the preferred connection direction
    • - *
    • return the {@link yfiles.tree.SubtreeShape SubtreeShape} for the subtree including the local root
    • - *
    - * @interface - */ - export interface INodePlacer extends Object{ - /** - * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. - *

    - * This method is called by {@link yfiles.tree.TreeLayout} before arranging the {@link yfiles.tree.SubtreeShape SubtreeShapes}. If no pre- or post-processing is - * needed, this method may return null. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} a {@link yfiles.tree.IProcessor} instance or null - * @abstract - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. - *

    - * This method is called by {@link yfiles.tree.TreeLayout} before the {@link yfiles.tree.SubtreeShape SubtreeShapes} for the children of the local root node are - * calculated. The direction specifiers are stored in the given map for all child nodes of the local root. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.algorithms.IDataMap} connectorMap the map that must be used for storing the direction specifiers of the child nodes - * @abstract - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Arranges the {@link yfiles.tree.SubtreeShape SubtreeShapes} of the local root and its children and routes the edges that connect them. - *

    - * This method is the main method of the tree layout algorithm. It is called by {@link yfiles.tree.TreeLayout} in each recursion - * step to place the local root in relation to its children. Their shapes will be merged into one - * {@link yfiles.tree.SubtreeShape SubtreeShape}, which is returned by this method. - *

    - *

    - * The {@link yfiles.tree.SubtreeShape SubtreeShape} for the local root can be obtained from the nodeShapeProvider. subtreeShapeProvider contains the {@link yfiles.tree.SubtreeShape SubtreeShapes} - * assigned to the child nodes. - *

    - *

    - * Due to the order in which the tree nodes are processed, it is guaranteed that at the time of the invocation of this - * method the {@link yfiles.tree.SubtreeShape SubtreeShape} of every descendant node has already been calculated. - *

    - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the combined shape of the whole subtree - * @abstract - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - } - var INodePlacer:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A {@link yfiles.tree.IPortAssignment} places the ports of edges connecting to the same node. - *

    - * Classes implementing this interface are responsible for the assignment of the edges' ports. {@link yfiles.tree.INodePlacer} - * instances need to obey the currently set ports. - *

    - * @interface - */ - export interface IPortAssignment extends Object{ - /** - * Places the ports of edges connecting to the given node. - *

    - * This method is called by {@link yfiles.tree.TreeLayout} before the actual layout calculation takes place. It assigns both the - * single incoming edge's target port as well as all source ports of all outgoing child edges. - *

    - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Node} node the node whose adjacent edges' ports should be set - * @abstract - */ - assignPorts(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; - } - var IPortAssignment:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A {@link yfiles.tree.IProcessor} provides the possibility for each {@link yfiles.tree.INodePlacer} to prepare (and clean up) the graph - * for the children of the local root. - *

    - * It is created by {@link yfiles.tree.INodePlacer#createProcessor} and called by the {@link yfiles.tree.TreeLayout} before and after the - * actual arrangement of the nodes. - *

    - *

    - * A {@link yfiles.tree.IProcessor} may change values within the - * {@link yfiles.algorithms.IDataMap}s for its children. It can also temporarily change the graph by hiding nodes or adding dummy - * nodes. - *

    - * @interface - */ - export interface IProcessor extends Object{ - /** - * This method is called by the {@link yfiles.tree.TreeLayout} after the layout has finished. - *

    - * It can be used for cleanup tasks. - *

    - *

    - * Changes on the graph structure that have been made in {@link yfiles.tree.IProcessor#preProcess} can be undone here. - *

    - * @abstract - */ - postProcess():void; - /** - * Performs preparations for the actual tree layout in a pre-processing step. - *

    - * This method is called by {@link yfiles.tree.TreeLayout} before the {@link yfiles.tree.INodePlacer}s are called recursively. A {@link yfiles.tree.IProcessor} - * may change some settings within this method. This can be used for specifying values for the children of the local root, - * manipulate the graph structure or do anything else that needs to be done. - *

    - * @param {yfiles.algorithms.IDataMap} nodePlacerDataProvider the map that stores a {@link yfiles.tree.INodePlacer} instance for each node - * @param {yfiles.algorithms.IDataMap} portAssignmentDataProvider The map that stores a {@link yfiles.tree.IPortAssignment} instance for each node - * @param {yfiles.algorithms.IDataMap} childComparatorProvider the map that stores a {@link yfiles.collections.IComparer.} instance for each node - * @abstract - */ - preProcess(nodePlacerDataProvider:yfiles.algorithms.IDataMap,portAssignmentDataProvider:yfiles.algorithms.IDataMap,childComparatorProvider:yfiles.algorithms.IDataMap):void; - } - var IProcessor:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A {@link yfiles.tree.LayeredNodePlacer} arranges the nodes of a subtree respecting layers. - *

    - * Layout Style Nodes that have the same depth in the tree will be placed in the same horizontal layer. They will be vertically - * {@link yfiles.tree.LayeredNodePlacer#verticalAlignment aligned}. {@graph {"ann":{"s":[30,30],"d":1},"n":[[245.52,0],[69.46,77.5],[7.5,162.5],[181.42,240,45,45],[57.5,155,45,45],[0,240,45,45],[246.42,77.5],[406.58,70,45,45],[181.42,155,45,45],[246.42,155,45,45],[375.88,247.5],[7.5,332.5],[122.5,158.04,38.92,38.92],[409.62,158.04,38.92,38.92],[311.42,162.5],[65,247.5],[443.38,243.04,38.92,38.92],[138.92,332.5],[338.92,325,45,45],[311.42,247.5],[403.92,328.04,38.92,38.92],[188.92,332.5],[238.92,332.5]],"e":[[0,1,[260.52,42,84.46,42]],[1,2,[84.46,127,22.5,127]],[1,4,[84.46,127,80,127]],[2,5],[0,6,[260.52,42,261.42,42]],[0,7,[260.52,42,429.08,42]],[6,8,[261.42,127,203.92,127]],[8,3],[6,9,[261.42,127,268.92,127]],[5,11],[1,12,[84.46,127,141.96,127]],[7,13],[13,10,[429.08,212,390.88,212]],[6,14,[261.42,127,326.42,127]],[4,15],[13,16,[429.08,212,462.83,212]],[3,17,[203.92,297,153.92,297]],[10,18,[390.88,297,361.42,297]],[14,19],[10,20,[390.88,297,423.38,297]],[3,21],[3,22,[203.92,297,253.92,297]]],"vp":[0.0,0.0,483.0,370.0]}} - *

    - * @class yfiles.tree.LayeredNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface LayeredNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class LayeredNodePlacer { - /** - * Creates a new {@link yfiles.tree.LayeredNodePlacer} instance whose direction is specified by the given modification matrix. - *

    - * The given ID identifies different {@link yfiles.tree.LayeredNodePlacer} instances that share the same layer heights. - *

    - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @param {Object} id the {@link yfiles.tree.LayeredNodePlacer} ID - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,id:Object); - /** - * Creates a new {@link yfiles.tree.LayeredNodePlacer} instance with the default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets whether or not the layering is done dendrogram-like. - *

    - * When enabled, leaves are placed in the same layer and remaining tree nodes are assigned to a layer as close to their - * children as possible. - *

    - * @type {boolean} - */ - dendrogramStyle:boolean; - /** - * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. - * @type {yfiles.tree.RootNodeAlignment} - */ - rootAlignment:yfiles.tree.RootNodeAlignment; - /** - * Gets or sets the relative vertical alignment of nodes within their respective layers. - *

    - * A value of 0 means that nodes are top-aligned; a value of 0.5 means that nodes are center-aligned; a value of 1 means - * that nodes are bottom-aligned; - *

    - *

    - * Values for a valid vertical alignment are in the range [0..1]. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified alignment is outside [0..1] - * @type {number} - */ - verticalAlignment:number; - /** - * Gets the ID of this {@link yfiles.tree.LayeredNodePlacer}. - *

    - * The ID is used for identifying - * {@link yfiles.tree.LayeredNodePlacer}s that share information about the layer height. Using different IDs allows aligned layouts - * within different subtrees. - *

    - * @type {Object} - */ - id:Object; - /** - * Gets or sets the distance between two adjacent layers. - *

    - * The spacing needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified spacing is negative - * @type {number} - */ - layerSpacing:number; - /** - * Gets or sets the routing style for the edges in the subtree. - * @throws {Stubs.Exceptions.ArgumentError} if the specified routing style specifier is unknown - * @type {yfiles.tree.LayeredRoutingStyle} - */ - routingStyle:yfiles.tree.LayeredRoutingStyle; - /** - * Gets or sets the vertical bus alignment for orthogonally routed edges. - *

    - * The bus alignment determines the relative position of an edge bus in between two subsequent layers of nodes. - *

    - *

    - * Values for a valid vertical alignment are in the range [0..1], such that: - *

    - *
      - *
    • A value of 0.0 places the bus at the top, right below the parent node.
    • - *
    • A value of 0.5 places the bus in the middle between parent and child nodes.
    • - *
    • A value of 1.0 places the bus at the bottom, right above the child nodes.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if the specified alignment is outside [0..1] - * @type {number} - */ - busAlignment:number; - /** - * Gets or sets whether or not straight edges are extended to avoid label overlaps. - *

    - * If enabled, polyline connectors between the parent and its children are added to the according subtree shape. Node or - * edge labels will not be crossed. - *

    - * @type {boolean} - */ - polylineLabeling:boolean; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.tree.LeafNodePlacer} creates a {@link yfiles.tree.SubtreeShape SubtreeShape} for a leaf node and routes its incoming edge at the target side. - * @class yfiles.tree.LeafNodePlacer - * @implements {yfiles.tree.INodePlacer} - */ - export interface LeafNodePlacer extends Object,yfiles.tree.INodePlacer{} - export class LeafNodePlacer { - /** - * Creates a new {@link yfiles.tree.LeafNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. - *

    - * This implementation returns null. Hence, no pre- or post-processing is done. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} null - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Does nothing because leaf nodes don't have children so there are no child connectors. - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.algorithms.IDataMap} connectorMap the map that must be used for storing the direction specifiers of the child nodes - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Creates a {@link yfiles.tree.SubtreeShape} for the local root node (a leaf node in this case) and adds target points to the - * incoming edge. - *

    - * The incoming edge is routed according to possibly assigned {@link yfiles.layout.PortConstraint}s. - *

    - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the {@link yfiles.tree.SubtreeShape} of the leaf node including the connector - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.LeftRightNodePlacer} arranges the children in a subtree on the left and the right of a vertical bus. - *

    - * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[35,0],[0,50],[70,50],[0,100],[70,100],[0,150],[70,150],[0,200],[70,200],[35,250]],"e":[[0,1,[50,65]],[0,2,[50,65]],[0,3,[50,115]],[0,4,[50,115]],[0,5,[50,165]],[0,6,[50,165]],[0,7,[50,215]],[0,8,[50,215]],[0,9]],"vp":[0.0,0.0,100.0,280.0]}} - *

    - * @class yfiles.tree.LeftRightNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface LeftRightNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class LeftRightNodePlacer { - /** - * Creates a new {@link yfiles.tree.LeftRightNodePlacer} instance using the given modification matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new {@link yfiles.tree.LeftRightNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates a special {@link yfiles.algorithms.IDataProvider} that determines whether a given node is placed left or right of the - * parent node. - *

    - * This {@link yfiles.algorithms.IDataProvider} can be registered with the graph with key - * {@link yfiles.tree.LeftRightNodePlacer#LEFT_RIGHT_DP_KEY}. It calculates the side with respect to the initial coordinates of the - * nodes in the graph, considering the orientation of the subtree. - *

    - *

    - * If a node is assigned to the left side, this {@link yfiles.algorithms.IDataProvider} will return true. For the right side, it - * will return false. - *

    - * @param {yfiles.algorithms.IDataProvider} nodePlacerMap a {@link yfiles.algorithms.IDataProvider} containing the corresponding {@link yfiles.tree.INodePlacer}s for the node - * @returns {yfiles.algorithms.IDataProvider} - * @static - */ - static createLeftRightDataProvider(nodePlacerMap:yfiles.algorithms.IDataProvider):yfiles.algorithms.IDataProvider; - /** - * Data provider key for assigning nodes to the left or the right side of the bus - *

    - * If no {@link yfiles.algorithms.IDataProvider} is specified using this key, the nodes will be placed alternating from left to - * right. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static LEFT_RIGHT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets the horizontal distance between nodes or subtrees. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - horizontalDistance:number; - /** - * Gets or sets the vertical distance between nodes or subtrees. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - verticalDistance:number; - /** - * Sets a uniform horizontal and vertical spacing between subtrees. - *

    - * This method sets the given distance value for the {@link yfiles.tree.LeftRightNodePlacer#horizontalDistance horizontal spacing} and for the {@link yfiles.tree.LeftRightNodePlacer#verticalDistance vertical spacing}. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified spacing value is negative - * @see yfiles.tree.LeftRightNodePlacer#horizontalDistance - * @see yfiles.tree.LeftRightNodePlacer#verticalDistance - * @type {number} - */ - spacing:number; - /** - * Gets or sets whether or not the last child is placed centered, aligned with the bus and below the other child nodes. - *

    - * When enabled, the last child will always be centered independent of the number of siblings. - *

    - * @type {boolean} - */ - placeLastOnBottom:boolean; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.MultiParentDescriptor} provides style information for multi-parent structures. - *

    - * This class is used by {@link yfiles.tree.TreeLayout} to determine the desired layout of nodes that constitute a multi-parent - * structure. All nodes of such a structure are placed side by side and the incident edges are routed over common points - * for incoming edges and for outgoing edges. - *

    - *

    - * {@graph {"ann":{"s":[40,40],"d":1},"n":[[411.25,0],[682.5,85],[210,155],[612.5,165],[35,225],[577.5,235],[385,320.5],[682.5,155,40,60],[70,305],[210,85],[0,295,40,60],[0,385],[210,225],[700,320.5],[175,295],[245,295],[315,225],[752.5,165],[420,405.5],[647.5,235],[752.5,235],[770,406],[140,380.5,40,60],[210,390.5],[315,295,40,60],[490,405.5],[175,485.5],[455,320.5],[481.25,0],[700,406],[560,406],[630,406],[560,491],[630,491],[525,320.5],[280,380.5,40,60],[70,390.5]],"e":[[0,1,[431.25,55.5,466.25,55.5,466.25,70,702.5,70]],[1,3,[702.5,140,632.5,140]],[2,4,[230,210,55,210]],[3,5,[632.5,220,597.5,220]],[5,6,[597.5,290,475,290,475,305,405,305]],[1,7],[4,8,[55,280,90,280]],[0,9,[431.25,55.5,466.25,55.5,466.25,70,230,70]],[9,2],[4,10,[55,280,20,280]],[10,11],[2,12],[5,13,[597.5,290,720,290]],[12,14,[230,280,195,280]],[12,15,[230,280,265,280]],[2,16,[230,210,335,210]],[1,17,[702.5,140,772.5,140]],[6,18,[405,376,475,376,475,390.5,440,390.5]],[3,19,[632.5,220,667.5,220]],[17,20],[13,21,[720,375.5,790,375.5]],[14,22,[195,365,160,365]],[14,23,[195,365,230,365]],[16,24],[6,25,[405,376,475,376,475,390.5,510,390.5]],[22,26,[160,456,195,456]],[23,26,[230,456,195,456]],[5,27,[597.5,290,475,290]],[27,18,[475,390.5,440,390.5]],[27,25,[475,390.5,510,390.5]],[28,9,[501.25,55.5,466.25,55.5,466.25,70,230,70]],[28,1,[501.25,55.5,466.25,55.5,466.25,70,702.5,70]],[13,29],[13,30,[720,375.5,615,375.5,615,390.5,580,390.5]],[13,31,[720,375.5,615,375.5,615,390.5,650,390.5]],[30,32,[580,461.5,615,461.5,615,476,580,476]],[31,32,[650,461.5,615,461.5,615,476,580,476]],[30,33,[580,461.5,615,461.5,615,476,650,476]],[31,33,[650,461.5,615,461.5,615,476,650,476]],[5,34,[597.5,290,475,290,475,305,545,305]],[34,18,[545,376,475,376,475,390.5,440,390.5]],[34,25,[545,376,475,376,475,390.5,510,390.5]],[14,35,[195,365,300,365]],[35,26,[300,456,195,456]],[14,36,[195,365,90,365]],[36,26,[90,456,195,456]]],"vp":[0.0,0.0,810.0,531.0]}} - *

    - *

    - * A tree graph containing multi-parent structures - *

    - * @see yfiles.tree.TreeLayout#MULTI_PARENT_DESCRIPTOR_DP_KEY - * @class yfiles.tree.MultiParentDescriptor - */ - export interface MultiParentDescriptor extends Object{} - export class MultiParentDescriptor { - /** - * Creates a new {@link yfiles.tree.MultiParentDescriptor} instance with default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets the minimum distance between two nodes belonging to the same multi-parent structure. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given node distance is negative - * @type {number} - */ - minimumNodeDistance:number; - /** - * Gets or sets the minimum distance between the nodes of a multi-parent structure and the bus connecting these nodes. - *

    - * In case the edge style is not orthogonal, the bus only consists of a common point. - *

    - *

    - * The minimum distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given bus distance is negative - * @type {number} - */ - minimumBusDistance:number; - /** - * Gets or sets the relative vertical alignment of nodes belonging to the same multi-parent structure. - *

    - * A value of 0 means that nodes are top-aligned; a value of 1 means that nodes are bottom-aligned; a value of 0.5 means - * that nodes are center-aligned. - *

    - *

    - * Values outside the interval [0,1] will result in a compact node placement with unaligned nodes, especially when labels - * are considered. - *

    - * @type {number} - */ - verticalAlignment:number; - /** - * Gets or sets the routing style for edges that connect to nodes which constitute a multi-parent structure. - * @throws {Stubs.Exceptions.ArgumentError} if the given routing style is unknown - * @type {yfiles.tree.MultiParentRoutingStyle} - */ - edgeStyle:yfiles.tree.MultiParentRoutingStyle; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.NodeOrderComparer} compares edges according to a specified order. - *

    - * It obtains the order from a {@link yfiles.algorithms.IDataProvider} registered with the graph with key - * {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY}. - *

    - *

    - * Various tree layout algorithms can use this {@link yfiles.collections.IComparer.} to influence the resulting layout. To achieve this, use this comparator and - * assign it to the comparator property of the layout algorithm classes. - *

    - * @see yfiles.tree.ClassicTreeLayout#comparer - * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer - * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY - * @see yfiles.tree.BalloonLayout#comparer - * @see yfiles.tree.AspectRatioTreeLayout#comparer - * @see yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY - * @class yfiles.tree.NodeOrderComparer - * @implements {yfiles.collections.IComparer.} - */ - export interface NodeOrderComparer extends Object,yfiles.collections.IComparer{} - export class NodeOrderComparer { - /** - * Creates a new {@link yfiles.tree.NodeOrderComparer} instance. - * @constructor - */ - constructor(); - /** - * Compares two edges according to their index in the order specified using a {@link yfiles.algorithms.IDataProvider}. - *

    - * Target nodes for which the {@link yfiles.algorithms.IDataProvider} registered with {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY} - * returns null or an {@link Object} that does not implement {@link yfiles.lang.IComparable} are treated as being smaller than other target - * nodes. - *

    - * @param {Object} edge1 the first edge - * @param {Object} edge2 the second edge - * @returns {number} - * @see yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY - */ - compare(edge1:Object,edge2:Object):number; - /** - * Data provider key for registering an order for each node in the graph - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static NODE_ORDER_COMPARABLE_DP_KEY:yfiles.algorithms.NodeDpKey; - static $class:yfiles.lang.Class; - } - /** - * Abstract base class for implementations of the {@link yfiles.tree.INodePlacer} interface. - *

    - * This class provides convenience methods for sub-tasks that are often used during the arrangement of a local root and its - * children. It also offers prepared implementations for the methods of the {@link yfiles.tree.INodePlacer} interface. - *

    - *

    - * Subclasses just need to override the following two abstract methods: {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} and - * {@link yfiles.tree.NodePlacerBase#determineChildConnectors}. - *

    - * @class yfiles.tree.NodePlacerBase - * @implements {yfiles.tree.INodePlacer} - * @implements {yfiles.lang.ICloneable} - */ - export interface NodePlacerBase extends Object,yfiles.tree.INodePlacer,yfiles.lang.ICloneable{} - export class NodePlacerBase { - /** - * Creates a new instance of {@link yfiles.tree.NodePlacerBase}. - * @constructor - */ - constructor(); - /** - * Returns a clone of this {@link yfiles.tree.INodePlacer} instance. - * @returns {Object} an exact copy of this {@link yfiles.tree.INodePlacer} instance - */ - clone():Object; - /** - * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. - *

    - * This implementation returns null. Hence, no pre- or post-processing will be done. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} null - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Determines a connector direction for the given child node. - *

    - * This method is used in {@link yfiles.tree.NodePlacerBase#determineChildConnectors} and must be implemented by subclasses. - *

    - * @param {yfiles.algorithms.Node} child the child node - * @returns {yfiles.tree.ParentConnectorDirection} a direction specifier as defined in the {@link yfiles.tree.INodePlacer} interface - * @protected - * @abstract - */ - determineChildConnector(child:yfiles.algorithms.Node):yfiles.tree.ParentConnectorDirection; - /** - * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. - *

    - * This implementation uses {@link yfiles.tree.NodePlacerBase#determineChildConnector} to retrieve the direction for the - * connectors. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.algorithms.IDataMap} connectorMap the map that must be used for storing the direction specifiers of the child nodes - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Returns the {@link yfiles.tree.SubtreeShape} for the given node. - *

    - * This is a convenience method that retrieves a {@link yfiles.tree.SubtreeShape} for a single node from the corresponding - * {@link yfiles.algorithms.IDataProvider}. - *

    - *

    - * This method is used in {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} for retrieving the {@link yfiles.tree.SubtreeShape}s for - * the local root nodes. It may be overridden to return a custom implementation of {@link yfiles.tree.SubtreeShape}. - *

    - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.tree.SubtreeShape} the {@link yfiles.tree.SubtreeShape} for the given node - * @protected - */ - getNodeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; - /** - * Returns the {@link yfiles.tree.SubtreeShape} for the subtree rooted at the given node. - *

    - * This is a convenience method that retrieves a {@link yfiles.tree.SubtreeShape} of a complete subtree from the corresponding - * {@link yfiles.algorithms.IDataProvider}. - *

    - *

    - * This method is used in {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} for retrieving the {@link yfiles.tree.SubtreeShape}s for - * the subtrees that are arranged. It may be overridden to return a custom implementation of {@link yfiles.tree.SubtreeShape}. - *

    - * @param {yfiles.algorithms.Node} node the local root node - * @returns {yfiles.tree.SubtreeShape} the {@link yfiles.tree.SubtreeShape} of the subtree rooted at the given local root node - * @protected - */ - getSubtreeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; - /** - * Initializes the local data structures and then delegates the work to the abstract variant of this method - * ({@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode}) - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the merged {@link yfiles.tree.SubtreeShape} for the subtree rooted at the local root node - * @see yfiles.tree.NodePlacerBase#placeSubtreeOfNode - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - /** - * Arranges the local root relative to the {@link yfiles.tree.SubtreeShape} of its children. - *

    - * This is the main method that must be implemented by subclasses. It is called by - * {@link yfiles.tree.NodePlacerBase#placeSubtree}. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction of the connector - * @returns {yfiles.tree.SubtreeShape} a {@link yfiles.tree.SubtreeShape} instance that describes the shape of the whole subtree rooted at the given local root - * @protected - * @abstract - */ - placeSubtreeOfNode(localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - /** - * The graph instance this class is working on. - * @protected - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.tree.RootNodeAlignment} describes how a local root node is arranged in relation to its children. - *

    - * The actual placement depends on the orientation of the subtree rooted at the current local root node. All descriptions - * of the provided alignments refer to the top-to-bottom orientation described by - * {@link yfiles.tree.RotatableNodePlacerMatrix#DEFAULT}. In this case, the subtrees are placed below the local root and the local - * root is aligned horizontally above them. - *

    - * @class yfiles.tree.RootNodeAlignment - */ - export interface RootNodeAlignment extends Object{} - export class RootNodeAlignment { - /** - * Calculates the common bounds of the given subtree shapes. - *

    - * This method can be used when placing the local root above its subtrees in method - * {@link yfiles.tree.RootNodeAlignment#placeParentHorizontal}. - *

    - * @param {yfiles.collections.IList.} shapes a list of rotated subtree shapes - * @returns {yfiles.algorithms.Rectangle2D} the rectangle describing the bounds containing all given shapes - * @protected - * @static - */ - static getBounds(shapes:yfiles.collections.IList):yfiles.algorithms.Rectangle2D; - /** - * Moves the shape of the local root to a suitable position relative to the children's shapes. - *

    - * The movement should only be done on the x-axis (horizontally). - *

    - *

    - * This method is called by {@link yfiles.tree.RotatableNodePlacerBase}s when they {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode place the subtrees}. - *

    - * @param {yfiles.tree.RotatedSubtreeShape} rootShape the shape of the local root node that will be moved - * @param {yfiles.collections.IList.} shapes a list of rotated subtree shapes, representing the shapes of the child nodes - * @param {yfiles.algorithms.Rectangle2D} shapeBounds accumulated bounds of the shapes of all child nodes - * @param {number} spacing the spacing value that should be used - * @protected - * @abstract - */ - placeParentHorizontal(rootShape:yfiles.tree.RotatedSubtreeShape,shapes:yfiles.collections.IList,shapeBounds:yfiles.algorithms.Rectangle2D,spacing:number):void; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} at the center of the subtrees. - *

    - * The root node is placed centered above its whole subgraph. To determine the alignment, only {@link yfiles.layout.INodeLayout}s - * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static CENTER:yfiles.tree.RootNodeAlignment; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} at the median child node. - *

    - * The root node is placed above the median of its children. To determine the alignment, only {@link yfiles.layout.INodeLayout}s - * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static MEDIAN:yfiles.tree.RootNodeAlignment; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} left of the children. - *

    - * The local root node leaves a distance specified by the given spacing to the leftmost child. To determine the alignment, - * only {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in - * {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static LEADING:yfiles.tree.RootNodeAlignment; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} right of the children. - *

    - * The root node leaves a distance specified by the given spacing to the rightmost child. To determine the alignment, only - * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in - * {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static TRAILING:yfiles.tree.RootNodeAlignment; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} at the left side. - *

    - * The root node is placed left aligned with its leftmost child. To determine the alignment, only - * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in - * {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static LEFT:yfiles.tree.RootNodeAlignment; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} at the right side. - *

    - * The root node is placed right aligned with its rightmost child. To determine the alignment, only - * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in - * {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static RIGHT:yfiles.tree.RootNodeAlignment; - /** - * Horizontal alignment at the center of the children. - *

    - * The root node is placed centered over its direct children. To determine the alignment, only {@link yfiles.layout.INodeLayout}s - * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static CENTER_OVER_CHILDREN:yfiles.tree.RootNodeAlignment; - /** - * An array containing all supported {@link yfiles.tree.RootNodeAlignment}s. - * @const - * @static - * @type {Array.} - */ - static ALL:yfiles.tree.RootNodeAlignment[]; - static $class:yfiles.lang.Class; - } - /** - * A matrix describes the rotation of the subtree handled by {@link yfiles.tree.RotatableNodePlacerBase}. - *

    - * Subtrees may be rotated or mirrored. Also, matrices offering a combination of rotation and mirroring are provided. - *

    - * @class yfiles.tree.RotatableNodePlacerMatrix - */ - export interface RotatableNodePlacerMatrix extends Object{} - export class RotatableNodePlacerMatrix { - /** - * Compares the values of the current {@link yfiles.tree.RotatableNodePlacerMatrix} with the values of the given - * {@link yfiles.tree.RotatableNodePlacerMatrix}. - * @param {yfiles.tree.RotatableNodePlacerMatrix} other the matrix - * @returns {boolean} true if this matrix and the given other matrix contain the same values, false otherwise - */ - equalValues(other:yfiles.tree.RotatableNodePlacerMatrix):boolean; - /** - * Multiplies this {@link yfiles.tree.RotatableNodePlacerMatrix} with the given other {@link yfiles.tree.RotatableNodePlacerMatrix}. - * @param {yfiles.tree.RotatableNodePlacerMatrix} other the other matrix - * @returns {yfiles.tree.RotatableNodePlacerMatrix} the product of both matrices - */ - multiply(other:yfiles.tree.RotatableNodePlacerMatrix):yfiles.tree.RotatableNodePlacerMatrix; - /** - * The identity matrix which does not apply any rotation or mirroring. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static DEFAULT:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a counter-clockwise rotation by 90 degrees. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static ROT90:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a rotation by 180 degrees. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static ROT180:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a counter-clockwise rotation by 270 degrees. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static ROT270:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a horizontal mirroring. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static MIR_HOR:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a vertical mirroring. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static MIR_VERT:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a horizontal mirroring and a counter-clockwise rotation by 90 degrees. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static MIR_HOR_ROT90:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a vertical mirroring and a counter-clockwise rotation by 90 degrees. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static MIR_VERT_ROT90:yfiles.tree.RotatableNodePlacerMatrix; - static $class:yfiles.lang.Class; - } - /** - * Abstract base class for {@link yfiles.tree.INodePlacer}s that support rotations of the subtrees. - *

    - * The direction specified in this {@link yfiles.tree.RotatableNodePlacerBase} (defined by a - * {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix transformation matrix}) rotates the subtree that is placed. This is the final direction of this subtree. Rotations are - * not accumulated. - *

    - *

    - * {@link yfiles.tree.INodePlacer}s of this type will only implement the default direction (i.e. top-to-bottom). The other - * directions are calculated using the specified modification {@link yfiles.tree.RotatableNodePlacerMatrix}. The direction used by - * the implementing - * {@link yfiles.tree.INodePlacer}s is called the model direction while the actual direction in the graph is the real direction. - *

    - *

    - * Note that using rotatable {@link yfiles.tree.INodePlacer}s has some pitfalls. Calculations must be aware of the rotations. - * Especially operations on {@link yfiles.algorithms.BorderLine}s should not be called directly (e.g. - * {@link yfiles.algorithms.BorderLine#mergeWithMin}, {@link yfiles.algorithms.BorderLine#mergeWithMax}). The corresponding methods of {@link yfiles.tree.RotatableNodePlacerBase} - * already support the different directions. - *

    - *

    - * Subclasses just need to override the following two abstract methods: {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} - * and {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors}. - *

    - * @class yfiles.tree.RotatableNodePlacerBase - * @implements {yfiles.tree.IFromSketchNodePlacer} - */ - export interface RotatableNodePlacerBase extends Object,yfiles.tree.IFromSketchNodePlacer{} - export class RotatableNodePlacerBase { - /** - * Creates a new instance of {@link yfiles.tree.RotatableNodePlacerBase} whose direction is specified by the given modification - * matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for the {@link yfiles.tree.INodePlacer} - * @protected - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a {@link yfiles.collections.IComparer.} for outgoing edges that takes the rotation into account. - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} that considers the rotation - */ - createComparer():yfiles.collections.IComparer; - /** - * Delegates to {@link yfiles.tree.RotatableNodePlacerBase#createComparer}. - * @returns {yfiles.collections.IComparer.} the From Sketch {@link yfiles.collections.IComparer.} - * @see yfiles.tree.RotatableNodePlacerBase#createComparer - */ - createFromSketchComparer():yfiles.collections.IComparer; - /** - * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. - *

    - * This implementation returns null. Hence, no pre- or post-processing is done. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} null - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Determines a connector direction for the given child node. - *

    - * This method is called by {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors} and must be implemented by - * subclasses. Implementations can assume the default direction (top-to-bottom) for their arrangement. - *

    - * @param {yfiles.algorithms.Node} child the child node - * @returns {yfiles.tree.ParentConnectorDirection} a direction specifier as defined in the {@link yfiles.tree.INodePlacer} interface - * @protected - * @abstract - */ - determineChildConnector(child:yfiles.algorithms.Node):yfiles.tree.ParentConnectorDirection; - /** - * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. - *

    - * This implementation uses {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnector} and the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} to - * retrieve the direction for the connectors. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root - * @param {yfiles.algorithms.IDataMap} connectorMap the map that must be used for storing the direction specifiers of the child nodes - * @see yfiles.tree.RotatableNodePlacerBase#determineChildConnector - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Returns the rotated subtree shape for the given node. - *

    - * This is a convenience method that retrieves a rotated subtree shape for a single node from the corresponding - * {@link yfiles.algorithms.IDataProvider}. This shape may be modified and returned by - * {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}. - *

    - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.tree.RotatedSubtreeShape} the subtree shape for the given node - * @protected - */ - getNodeShape(node:yfiles.algorithms.Node):yfiles.tree.RotatedSubtreeShape; - /** - * Returns the target {@link yfiles.layout.PortConstraint} for the local root's incoming edge. - *

    - * This method translates the {@link yfiles.layout.PortConstraint} according to the rotation described by the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. - * It should be used instead of {@link yfiles.layout.PortConstraint#getTPC}. - *

    - *

    - * This method may be used in {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} to route the edges to the according - * port. It may be overridden to provide constant {@link yfiles.layout.PortConstraint}s for each node. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root - * @returns {yfiles.layout.PortConstraint} the {@link yfiles.layout.PortConstraint} for the incoming edge of the local root or {@link yfiles.layout.PortSide#ANY} if no {@link yfiles.layout.PortConstraint} - * is assigned for that edge - * @protected - */ - getPortConstraint(localRoot:yfiles.algorithms.Node):yfiles.layout.PortConstraint; - /** - * Returns the absolute source point of the given edge depending on the rotation of this {@link yfiles.tree.INodePlacer}. - *

    - * This method translates the source point according to the rotation described by the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. It should be - * used instead of {@link yfiles.layout.LayoutGraph#getSourcePointAbs}. - *

    - *

    - * It can be used in an implementation of {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}. - *

    - * @param {yfiles.algorithms.Edge} edge the edge whose absolute source point should be calculated - * @returns {yfiles.algorithms.YPoint} the translated absolute source point for the given edge and current modification matrix - * @protected - */ - getSourcePointAbs(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; - /** - * Returns the rotated subtree shape for the subtree rooted at the given node. - *

    - * This is a convenience method that retrieves a subtree shape of a complete subtree from the corresponding - * {@link yfiles.algorithms.IDataProvider}. - *

    - * @param {yfiles.algorithms.Node} node the local root node - * @returns {yfiles.tree.RotatedSubtreeShape} the rotated subtree shape of the subtree rooted at the given local root node - * @protected - */ - getSubtreeShape(node:yfiles.algorithms.Node):yfiles.tree.RotatedSubtreeShape; - /** - * Initializes the local data structures and then delegates the work to the abstract variant of this method - * ({@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}). - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the merged {@link yfiles.tree.SubtreeShape} for the subtree rooted at the local root node - * @see yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - /** - * Arranges the local root relative to the rotated subtree shapes of its children. - *

    - * This is the main method that must be implemented by subclasses. For calculations and locations subclasses should use the - * corresponding methods of {@link yfiles.tree.RotatableNodePlacerBase} which already consider the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.RotatedSubtreeShape} the merged subtree shape that contains the local root node and all its children - * @protected - * @abstract - */ - placeSubtreeOfNode(localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.RotatedSubtreeShape; - /** - * Translates the given real direction of the resulting layout to the model direction of this - * {@link yfiles.tree.RotatableNodePlacerBase}. - *

    - * This method is used in {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} to be able to retrieve the model direction - * for the connector - *

    - * @param {yfiles.tree.ParentConnectorDirection} realDirection the real direction - * @returns {number} the model direction - * @throws {Stubs.Exceptions.ArgumentError} if translation for the given real direction is not implemented - * @protected - */ - translateDirectionToModel(realDirection:yfiles.tree.ParentConnectorDirection):number; - /** - * Translates the given model direction to the real direction in the resulting layout. - *

    - * This method is used in {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors} to be able to return the real - * connector direction. - *

    - * @param {yfiles.tree.ParentConnectorDirection} modelDirection the model direction - * @returns {number} the real direction - * @throws {Stubs.Exceptions.ArgumentError} if translation for the given model direction is not implemented - * @protected - */ - translateDirectionToReal(modelDirection:yfiles.tree.ParentConnectorDirection):number; - /** - * Translates a point from the real layout direction to the model direction using the given modification matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the modification matrix to use for the translation - * @param {yfiles.algorithms.YPoint} realWorldPoint the point with coordinates from the real world - * @returns {yfiles.algorithms.YPoint} the translated point with coordinates from the model - * @static - */ - static translatePoint(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,realWorldPoint:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * The graph instance this {@link yfiles.tree.INodePlacer} is working on. - * @protected - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - /** - * The provider of {@link yfiles.tree.SubtreeShape}s for whole subtrees. - * @protected - * @type {yfiles.algorithms.IDataProvider} - */ - subtreeShapeProvider:yfiles.algorithms.IDataProvider; - /** - * The provider of {@link yfiles.tree.SubtreeShape}s for single nodes. - * @protected - * @type {yfiles.algorithms.IDataProvider} - */ - nodeShapeProvider:yfiles.algorithms.IDataProvider; - /** - * The list containing the created children. - * @protected - * @type {yfiles.collections.IList.} - */ - createdChildren:yfiles.collections.IList; - /** - * Gets the modification matrix that defines the direction of the subtree. - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix; - /** - * Gets or sets the spacing between subtrees. - *

    - * The spacing needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given spacing is negative - * @type {number} - */ - spacing:number; - static $class:yfiles.lang.Class; - } - /** - * Decorates a SubtreeShape and provides rotated access on it. - * @class yfiles.tree.RotatedSubtreeShape - */ - export interface RotatedSubtreeShape extends Object{} - export class RotatedSubtreeShape { - /** - * For testing purposes only - * @protected - * @constructor - */ - constructor(); - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.SimpleNodePlacer} arranges all children of a local root in a single row. - *

    - * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[50,50],[235,50],[370,50],[720,50],[100,100],[770,100],[285,100],[420,50],[520,50],[570,100],[670,100],[150,150],[720,150],[470,100],[335,100],[620,150],[820,150],[520,150],[185,100]],"e":[[0,1,[65,15]],[0,2,[250,15]],[0,3,[385,15]],[0,4,[735,15]],[1,5,[115,65]],[4,6,[785,65]],[2,7,[300,65]],[0,8,[435,15]],[0,9,[535,15]],[9,10,[585,65]],[9,11,[685,65]],[5,12,[165,115]],[11,13,[735,115]],[8,14,[485,65]],[2,15,[350,65]],[10,16,[635,115]],[6,17,[835,115]],[14,18,[535,115]],[1,19,[200,65]]],"vp":[0.0,0.0,850.0,180.0]}} - *

    - * @class yfiles.tree.SimpleNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface SimpleNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class SimpleNodePlacer { - /** - * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance that uses the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} and {@link yfiles.tree.SimpleNodePlacer#rootAlignment root alignment}. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @param {yfiles.tree.RootNodeAlignment} rootAlignment the alignment for the local root in relation to its subtrees - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,rootAlignment:yfiles.tree.RootNodeAlignment); - /** - * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance that uses the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlignment} that defines how the root node is aligned with its children and their shapes. - * @type {yfiles.tree.RootNodeAlignment} - */ - rootAlignment:yfiles.tree.RootNodeAlignment; - /** - * Gets or sets the relative vertical alignment of nodes with the same parent. - *

    - * All values between 0 and 1 result in a valid alignment. - *

    - *
      - *
    • 0 - nodes are top-aligned
    • - *
    • 0.5 - nodes are center-aligned
    • - *
    • 1 - nodes are bottom-aligned
    • - *
    - *

    - * Values outside the interval [0,1] may result in a more compact node placement with unaligned nodes, especially when - * labels are considered. - *

    - * @type {number} - */ - verticalAlignment:number; - /** - * Gets or sets whether or not a bus is created in the space between the parent and its children. - * @type {boolean} - */ - createBus:boolean; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.TreeComponentLayout} arranges tree-like subgraph structures in a mixed layout style. - *

    - * {@graph {"ann":{"s":[37.5,37.5],"d":1},"n":[[-18.75,231.25],[56.25,231.25],[131.25,231.25],[-18.75,631.25],[631.25,231.25],[631.25,631.25],[131.25,631.25],[-18.75,-18.75],[631.25,-18.75],[631.25,131.25],[631.25,56.25],[131.25,406.25],[131.25,556.25],[447.5,75,1],[560,162.5,1],[497.5,162.5,1],[391.25,343.75,1],[328.75,343.75,1],[247.5,500,1],[247.5,587.5,1],[310,500,1],[310,587.5,1],[266.25,343.75,1],[272.5,75,1],[385,162.5,1],[322.5,162.5,1],[97.5,75,1],[210,162.5,1],[147.5,162.5,1]],"e":[[0,1,18.75,-0,-18.75,-0],[1,2,18.75,-0,-18.75,-0],[0,3,-0,18.75,-0,-18.75],[2,4,18.75,-0,-18.75,-0],[4,5,-0,18.75,-0,-18.75],[5,6,-18.75,-0,18.75,-0],[6,3,-18.75,-0,18.75,-0],[0,7,-0,-18.75,-0,18.75],[7,8,18.75,-0,-18.75,-0],[4,9,-0,-18.75,-0,18.75],[8,10,-0,18.75,-0,-18.75],[10,9,-0,18.75,-0,-18.75],[11,2,-0,-18.75,-0,18.75],[11,12,-0,18.75,-0,-18.75],[6,12,-0,-18.75,-0,18.75],[7,13,18.75,12.5,0,0,[52.5,12.5,52.5,50,466.25,50]],[13,14,-13.75,0,-0,-0,[452.5,137.5,578.75,137.5]],[13,15,-13.75,0,-0,-0,[452.5,137.5,516.25,137.5]],[2,16,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,410,318.75]],[2,17,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,347.5,318.75]],[11,18,18.75,-0,0,0,[202.5,425,202.5,475,266.25,475]],[11,19,18.75,-0,0,0,[202.5,425,202.5,562.5,266.25,562.5]],[11,20,18.75,-0,0,0,[202.5,425,202.5,475,328.75,475]],[11,21,18.75,-0,0,0,[202.5,425,202.5,562.5,328.75,562.5]],[2,22,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,285,318.75]],[7,23,18.75,12.5,0,0,[52.5,12.5,52.5,50,291.25,50]],[23,24,-13.75,0,-0,-0,[277.5,137.5,403.75,137.5]],[23,25,-13.75,0,-0,-0,[277.5,137.5,341.25,137.5]],[7,26,18.75,12.5,0,0,[52.5,12.5,52.5,50,116.25,50]],[26,27,-13.75,0,-0,-0,[102.5,137.5,228.75,137.5]],[26,28,-13.75,0,-0,-0,[102.5,137.5,166.25,137.5]]],"vp":[-19.0,-19.0,688.0,688.0]}} - *

    - *

    - * The tree components are marked - *

    - * @class yfiles.tree.TreeComponentLayout - * @implements {yfiles.layout.ILayoutStage} - */ - export interface TreeComponentLayout extends Object,yfiles.layout.ILayoutStage{} - export class TreeComponentLayout { - /** - * Creates a new {@link yfiles.tree.TreeComponentLayout} instance using the specified layouter for arranging the subtrees. - * @param {yfiles.layout.ILayoutAlgorithm} treeCoreLayouter the layout algorithm used for arranging the tree components - * @throws {Stubs.Exceptions.ArgumentError} if the specified layout algorithm is null - * @constructor - */ - constructor(treeCoreLayouter:yfiles.layout.ILayoutAlgorithm); - /** - * Finds the tree components inside the given graph and applies a {@link yfiles.tree.TreeComponentLayout#treeComponentCoreLayout tree layout} to them. - * @param {yfiles.layout.LayoutGraph} graph the input graph - */ - applyLayout(graph:yfiles.layout.LayoutGraph):void; - /** - * Delegates the layout calculation to the {@link yfiles.tree.TreeComponentLayout#coreLayout core layout algorithm} and handles the dummy nodes. - *

    - * The dummy nodes are marked using the given {@link yfiles.algorithms.IDataProvider}. - *

    - *

    - * This implementation just registers the dummy node {@link yfiles.algorithms.IDataProvider} with the graph with key - * {@link yfiles.tree.TreeComponentLayout#DUMMY_NODE_DP_KEY}, executes the core layout algorithm and finally removes the data - * provider again. - *

    - *

    - * This method is called by {@link yfiles.tree.TreeComponentLayout#applyLayout} to invoke the core layout algorithm. It may be - * overridden to customize the handling of the dummy nodes. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} dummyDp the {@link yfiles.algorithms.IDataProvider} which marks the dummy nodes - * @protected - */ - applyLayoutUsingDummies(graph:yfiles.layout.LayoutGraph,dummyDp:yfiles.algorithms.IDataProvider):void; - /** - * Data provider key for identifying dummy nodes during the layout calculation - *

    - * This {@link yfiles.algorithms.IDataProvider} is registered and also removed in - * {@link yfiles.tree.TreeComponentLayout#applyLayoutUsingDummies}. - *

    - * @see yfiles.tree.TreeComponentLayout#applyLayoutUsingDummies - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static DUMMY_NODE_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * - * @type {yfiles.layout.ILayoutAlgorithm} - */ - coreLayout:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the layout algorithm that is applied to tree components. - * @type {yfiles.layout.ILayoutAlgorithm} - */ - treeComponentCoreLayout:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets whether or not tree component arrangement is improved by changing the orientation of components. - * @type {boolean} - */ - optimizeOrientation:boolean; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.tree.SubtreeShape} represents the position and the borders of a subtree. - *

    - * {@link yfiles.tree.INodePlacer}s will move {@link yfiles.tree.SubtreeShape}s and use the borders to calculate distances between the - * subtrees. When two subtrees are placed in relation to their common root, their - * {@link yfiles.tree.SubtreeShape}s are merged to represent the new subtree. - *

    - *

    - * The borders on each side of the {@link yfiles.tree.SubtreeShape} are modeled with - * {@link yfiles.algorithms.BorderLine}s. The resulting area includes the borders of each node and edge in the corresponding - * subtree. It can also contain the bounds of labels belonging to those nodes and edges. - *

    - *

    - * The {@link yfiles.tree.SubtreeShape} also describes a connector defining the location to which the edge from its parent is - * attached. It is possible to add some bends (target points) at the end of this edge and include them in the - * {@link yfiles.tree.SubtreeShape}. During layout calculation, the last target point is the connection point for the edge. - *

    - * @see yfiles.tree.SubtreeShape#getBorderLine - * @see yfiles.tree.SubtreeShape#connectorX - * @see yfiles.tree.SubtreeShape#connectorY - * @see yfiles.tree.SubtreeShape#addBoundsToShape - * @see yfiles.tree.SubtreeShape#addTargetPoint - * @class yfiles.tree.SubtreeShape - * @final - */ - export interface SubtreeShape extends Object{} - export class SubtreeShape { - /** - * Extends this {@link yfiles.tree.SubtreeShape} instance by the given rectangle. - *

    - * The border lines are updated with this segment. - *

    - * @param {number} x the x-coordinate of the upper-left corner of the rectangle - * @param {number} y the y-coordinate of the upper-left corner of the rectangle - * @param {number} width the width of the rectangle - * @param {number} height the height of the rectangle - * @see yfiles.tree.SubtreeShape#getBorderLine - */ - addBoundsToShape(x:number,y:number,width:number,height:number):void; - /** - * Adds all edge segments of the given edge to this {@link yfiles.tree.SubtreeShape} instance. - *

    - * The border lines are updated. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @see yfiles.tree.SubtreeShape#getBorderLine - * @see yfiles.tree.SubtreeShape#addLineSegment - */ - addEdgeSegments(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; - /** - * Extends this {@link yfiles.tree.SubtreeShape} instance by the given segment. - *

    - * The border lines are updated with this segment. - *

    - * @param {number} x1 the x-coordinate of the first point of the segment - * @param {number} y1 the y-coordinate of the first point of the segment - * @param {number} x2 the x-coordinate of the second point of the segment - * @param {number} y2 the y-coordinate of the second point of the segment - * @see yfiles.tree.SubtreeShape#getBorderLine - * @see yfiles.tree.SubtreeShape#addEdgeSegments - * @see yfiles.tree.SubtreeShape#updateConnectorShape - */ - addLineSegment(x1:number,y1:number,x2:number,y2:number):void; - /** - * Adds another point to the connector. - *

    - * The points will appear as bend of the incoming edge. Points are added in reverse direction of the edge. Hence, the last - * target point is further away from the target node than the points before. - *

    - * @param {number} x the current x-coordinate of the point - * @param {number} y the current y-coordinate of the point - */ - addTargetPoint(x:number,y:number):void; - /** - * Appends all target points that have previously been added to this shape to the given {@link yfiles.layout.IEdgeLayout} - * instance. - *

    - * This method is used by {@link yfiles.tree.INodePlacer} instances for the final edge paths. - *

    - * @param {yfiles.layout.IEdgeLayout} edgeLayout the {@link yfiles.layout.IEdgeLayout} that will be modified - * @see yfiles.tree.SubtreeShape#addTargetPoint - */ - appendTargetPoints(edgeLayout:yfiles.layout.IEdgeLayout):void; - /** - * Copies the state of this {@link yfiles.tree.SubtreeShape} instance to the given shape applying a modification matrix. - * @param {yfiles.tree.SubtreeShape} toShape the given shape that gets the assigned values - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the matrix that may add geometrical modifications - */ - assignValuesTo(toShape:yfiles.tree.SubtreeShape,modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix):void; - /** - * Creates a clone of this {@link yfiles.tree.SubtreeShape} instance, modifying it using the provided modification matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} matrix the matrix that defines the modification for the new instance - * @returns {yfiles.tree.SubtreeShape} the clone of this {@link yfiles.tree.SubtreeShape} instance - * @see yfiles.tree.RotatableNodePlacerMatrix#DEFAULT - */ - createCopy(matrix:yfiles.tree.RotatableNodePlacerMatrix):yfiles.tree.SubtreeShape; - /** - * Returns the {@link yfiles.algorithms.BorderLine} instance that describes the {@link yfiles.tree.SubtreeShape} at the given side. - * @param {number} index one of the predefined borderline directions - * @returns {yfiles.algorithms.BorderLine} the {@link yfiles.algorithms.BorderLine} instance for the given side - * @throws {Stubs.Exceptions.ArgumentError} if the given index is invalid - */ - getBorderLine(index:number):yfiles.algorithms.BorderLine; - /** - * Merges the given {@link yfiles.tree.SubtreeShape} instance with this {@link yfiles.tree.SubtreeShape} instance. - *

    - * The border lines are updated. - *

    - * @param {yfiles.tree.SubtreeShape} other the {@link yfiles.tree.SubtreeShape} to be merged with this {@link yfiles.tree.SubtreeShape} - */ - mergeWith(other:yfiles.tree.SubtreeShape):void; - /** - * Moves this {@link yfiles.tree.SubtreeShape} instance and its connector by the given offsets. - *

    - * Border lines are updated. - *

    - * @param {number} dx the delta x-offset by which this shape will be moved - * @param {number} dy the delta y-offset by which this shape will be moved - */ - move(dx:number,dy:number):void; - /** - * Adds the line segments of the connector to the bounds of this {@link yfiles.tree.SubtreeShape} instance. - *

    - * The line segments result from the target points. - *

    - * @see yfiles.tree.SubtreeShape#addTargetPoint - */ - updateConnectorShape():void; - /** - * Gets the bounds of the {@link yfiles.layout.INodeLayout} of the root node of this {@link yfiles.tree.SubtreeShape} instance. - * @type {yfiles.algorithms.Rectangle2D} - */ - coreBounds:yfiles.algorithms.Rectangle2D; - /** - * Gets the current bounds of this {@link yfiles.tree.SubtreeShape} instance. - * @type {yfiles.algorithms.Rectangle2D} - */ - bounds:yfiles.algorithms.Rectangle2D; - /** - * Gets the current x-coordinate of the connection point to which the layout algorithm connects the ingoing edge. - *

    - * The connection point can change when target points are added to the {@link yfiles.tree.SubtreeShape} instance. - *

    - * @see yfiles.tree.SubtreeShape#addTargetPoint - * @see yfiles.tree.SubtreeShape#appendTargetPoints - * @type {number} - */ - connectorX:number; - /** - * Gets the current y-coordinate of the connection point to which the layout algorithm connects the ingoing edge. - *

    - * The connection point can change when target points are added to the {@link yfiles.tree.SubtreeShape} instance. - *

    - * @see yfiles.tree.SubtreeShape#addTargetPoint - * @see yfiles.tree.SubtreeShape#appendTargetPoints - * @type {number} - */ - connectorY:number; - /** - * Gets the direction of the last connector segment. - * @type {yfiles.tree.ConnectorDirection} - */ - connectorDirection:yfiles.tree.ConnectorDirection; - /** - * Gets the current minimum x-coordinate of this {@link yfiles.tree.SubtreeShape} instance. - * @type {number} - */ - minX:number; - /** - * Gets the current minimum y-coordinate of this {@link yfiles.tree.SubtreeShape} instance. - * @type {number} - */ - minY:number; - /** - * Gets the current maximum x-coordinate of this {@link yfiles.tree.SubtreeShape} instance. - * @type {number} - */ - maxX:number; - /** - * Gets the current maximum y-coordinate of this {@link yfiles.tree.SubtreeShape} instance. - * @type {number} - */ - maxY:number; - /** - * Gets the current x-coordinate of the origin of this {@link yfiles.tree.SubtreeShape} instance. - *

    - * The origin is defined as the upper left corner of the {@link yfiles.layout.INodeLayout} of the local root of this shape. - *

    - * @type {number} - */ - originX:number; - /** - * Gets the current y-coordinate of the origin of this {@link yfiles.tree.SubtreeShape} instance. - *

    - * The origin is defined as the upper left corner of the {@link yfiles.layout.INodeLayout} of the local root of this shape. - *

    - * @type {number} - */ - originY:number; - static $class:yfiles.lang.Class; - } - /** - * This layout algorithm arranges graphs with a tree structure. - *

    - * Layout Style {@link yfiles.tree.TreeLayout} provides multiple different arrangements of trees and subtrees. It is easy to customize the - * {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY order of edges}, the {@link yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY port assignment} and the {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY arrangement of the nodes} for each subtree. - *

    - *

    - * Tree layout algorithms are commonly applied to visualize relational data and produce diagrams of high quality that are - * able to reveal possible hierarchic properties of the graph. More precisely, they find applications in dataflow analysis, - * software engineering, bioinformatics and business administration. - *

    - *

    - * {@graph {"ann": {"s": [37.5,37.5], "d": 1},"n": [[209.96,0], [71.88,77.5], [348.04,77.5], [348.04,155], [202.77,232.5], [172.5,310], [71.88,232.5], [115,387.5], [115,310], [233.04,310], [71.88,155], [348.04,232.5], [319.29,310], [376.79,310], [463.04,232.5], [491.79,310], [434.29,310], [28.75,310], [57.5,387.5], [0,387.5], [376.79,387.5], [261.79,387.5], [204.29,387.5]], "e": [[0,1], [0,2], [2,3], [3,4], [4,5], [6,8], [8,7], [4,9], [1,10], [10,6], [3,11], [11,12], [11,13], [3,14], [14,15], [14,16], [6,17], [17,18], [17,19], [13,20], [9,21], [9,22]], "vp": [0.0,0.0,530.0,425.0]}} Example graph with a layout calculated by {@link yfiles.tree.TreeLayout} using default settings {@graph {"ann": {"s": [60,30], "d": 1},"n": [[1190,0], [0,50], [160,120], [80,120], [240,120], [120,190], [200,190], [280,190], [160,310], [80,310], [240,310], [120,240], [200,240], [280,240], [330,50], [460,256.6], [410,306.6], [510,306.6], [410,356.6], [510,356.6], [460,406.6], [650,441.6], [410,491.6], [490,491.6], [570,491.6], [710,50], [790,100], [870,170], [950,170], [1030,170], [1110,170], [1190,170], [870,240], [950,240], [1030,240], [1110,240], [1190,240], [870,310], [950,310], [1030,310], [1110,310], [1190,310], [870,380], [950,380], [1030,380], [1110,380], [1190,380], [430,120], [500,170], [540,206.6], [580,170], [620,206.6], [660,170], [80,520], [160,430], [160,480], [226.6,405], [226.6,455], [160,380], [790,465], [870,430], [950,430], [950,500], [1030,465], [870,500]], "e": [[0,1,[30,15]], [1,2,[30,100,190,100]], [2,3,[190,170,110,170]], [2,4,[190,170,270,170]], [2,5,[190,170,150,170]], [2,6,[190,170,230,170]], [2,7,[190,170,310,170]], [1,8,[30,360,190,360]], [8,9,[190,290,110,290]], [8,10,[190,290,270,290]], [8,11,[190,290,150,290]], [8,12,[190,290,230,290]], [8,13,[190,290,310,290]], [0,14,[360,15]], [14,15,[360,271.6]], [15,16,[490,321.6]], [15,17,[490,321.6]], [15,18,[490,371.6]], [15,19,[490,371.6]], [15,20], [14,21,[360,456.6]], [21,22,[440,456.6]], [21,23,[520,456.6]], [21,24,[600,456.6]], [0,25,[740,15]], [25,26,[740,115]], [26,27,[860,115,860,150,900,150]], [26,28,[860,115,860,150,980,150]], [26,29,[860,115,860,150,1060,150]], [26,30,[860,115,860,150,1140,150]], [26,31,[860,115,860,150,1220,150]], [26,32,[860,115,860,220,900,220]], [26,33,[860,115,860,220,980,220]], [26,34,[860,115,860,220,1060,220]], [26,35,[860,115,860,220,1140,220]], [26,36,[860,115,860,220,1220,220]], [26,37,[860,115,860,290,900,290]], [26,38,[860,115,860,290,980,290]], [26,39,[860,115,860,290,1060,290]], [26,40,[860,115,860,290,1140,290]], [26,41,[860,115,860,290,1220,290]], [26,42,[860,115,860,360,900,360]], [26,43,[860,115,860,360,980,360]], [26,44,[860,115,860,360,1060,360]], [26,45,[860,115,860,360,1140,360]], [26,46,[860,115,860,360,1220,360]], [14,47,[360,100,410,100,410,135]], [47,48,[530,135]], [47,49,[570,135]], [47,50,[610,135]], [47,51,[650,135]], [47,52,[690,135]], [1,53,[30,535]], [53,54,[110,445]], [53,55,[110,495]], [53,56,[110,420]], [53,57,[110,470]], [53,58,[110,395]], [25,59,[740,480]], [59,60,[900,480]], [59,61,[980,480]], [59,62,[980,480]], [59,63], [59,64,[900,480]]], "vp": [0.0,0.0,1250.0,550.0]}} Tree layout using different - * {@link yfiles.tree.INodePlacer}s and rotationsConcept - *

    - *

    - * The layout algorithm starts from the leaves and continues with their parents, then with the parents of the parents and - * so on. When a node is processed, the algorithm will use the corresponding {@link yfiles.tree.INodePlacer} instance to move its - * children (along with their subtrees) to a suitable position and to route the outgoing edges of this node. Then, the next - * local root node will be processed. - *

    - *

    - * To avoid moving all nodes several times and to know the area that the subtrees occupy, the layout algorithm uses - * {@link yfiles.tree.SubtreeShape}s. These {@link yfiles.tree.SubtreeShape}s are moved and merged during layout calculation. - *

    - *

    - * Features - *

    - *

    - * Each subtree can have a different style of node placement. {@link yfiles.tree.INodePlacer}s are responsible for arranging - * subtrees and their common root node. They can be specified separately for each local root with a {@link yfiles.algorithms.IDataProvider} - * registered with the graph using key {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY}. - *

    - *

    - * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with - * key {@link yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY}. - *

    - *

    - * The layout algorithm can be configured to reserve space for node labels and place the edge labels along edges such that - * the labels won't overlap with other graph elements. Edge labels are placed according to the information stored in a {@link yfiles.layout.PreferredPlacementDescriptor} - * instance. However, the placement along the edge will only affect the order of multiple labels at the same edge. The - * algorithm will always place the labels close to the target node. - *

    - *

    - * Grouping of nodes can also be handled by this layout algorithm. It is important that a group node contains a whole - * subtree. Otherwise, the group nodes may overlap with each other or with other nodes. Furthermore, the user may specify - * minimum size constraints for each group node using {@link yfiles.algorithms.IDataProvider} key - * {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY}. - *

    - *

    - * {@link yfiles.tree.TreeLayout} supports custom sorting of the outgoing edges of a node. For example, a {@link yfiles.tree.INodePlacer} - * instance that implements {@link yfiles.tree.IFromSketchNodePlacer} provides a comparator that keeps the current order of - * siblings, allowing to extend the graph incrementally. - *

    - *

    - * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} - * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. After the - * layout calculation, the stage will reinsert the edges that were removed and route them separately. - *

    - * @class yfiles.tree.TreeLayout - * @extends {yfiles.layout.MultiStageLayout} - */ - export interface TreeLayout extends yfiles.layout.MultiStageLayout{} - export class TreeLayout { - /** - * Creates a new {@link yfiles.tree.TreeLayout} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates a {@link yfiles.tree.SubtreeShape} for the given node that consists only of the bounds of this particular node. - *

    - * It may also include node labels or {@link yfiles.layout.NodeHalo}s. - *

    - *

    - * This method may be overridden to return a custom {@link yfiles.tree.SubtreeShape} for the given node. - *

    - * @param {yfiles.algorithms.Node} node the given node - * @returns {yfiles.tree.SubtreeShape} a {@link yfiles.tree.SubtreeShape} instance - */ - createNodeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; - /** - * Returns a list of edges that need to be reversed in order to obtain a valid rooted and directed tree from the input - * graph. - *

    - * The root node of the tree is either a node marked by a {@link yfiles.algorithms.IDataProvider} registered with the graph with - * key {@link yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY} or is defined according to {@link yfiles.algorithms.Trees#getRoot}. - *

    - *

    - * This method is called initially to calculate a rooted tree from the input graph. It may be overridden to apply a custom - * algorithm that determines which edges need to be reversed. - *

    - * @returns {yfiles.algorithms.EdgeList} a list of edges that need to be reversed - * @see yfiles.tree.TreeLayout#reverseEdges - * @protected - */ - directTree():yfiles.algorithms.EdgeList; - /** - * Returns the {@link yfiles.tree.INodePlacer} instance that is used for the placement of the local root node and the - * {@link yfiles.tree.SubtreeShape}s. - *

    - * The method may be overridden to return custom {@link yfiles.tree.INodePlacer} instances. It is possible to return a shared - * instance for multiple different nodes because the instances are not used after subsequent calls to this method. - *

    - *

    - * The current implementation returns the {@link yfiles.tree.INodePlacer} defined by the {@link yfiles.algorithms.IDataProvider} registered - * with key {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY}. It falls back to the default {@link yfiles.tree.INodePlacer} if there is no - * specific {@link yfiles.tree.INodePlacer} for the given node. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of the local subtree - * @returns {yfiles.tree.INodePlacer} the {@link yfiles.tree.INodePlacer} instance that places the subtree below the given local root node - * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY - * @see yfiles.tree.TreeLayout#defaultNodePlacer - * @protected - */ - getNodePlacer(localRoot:yfiles.algorithms.Node):yfiles.tree.INodePlacer; - /** - * Returns the {@link yfiles.collections.IComparer.} instance that will sort the outgoing edges connecting to the given node. - *

    - * The {@link yfiles.collections.IComparer.} can be null in case the initial edge order shall be used. - *

    - *

    - * The method may be overridden to return custom {@link yfiles.collections.IComparer.} instances. It is possible to return a shared instance for multiple - * different nodes because the instances are not used after subsequent calls to this method. - *

    - *

    - * The current implementation returns the {@link yfiles.collections.IComparer.} defined in the {@link yfiles.algorithms.IDataProvider} registered with key - * {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY}. It falls back to the default {@link yfiles.collections.IComparer.} if there is no specific {@link yfiles.collections.IComparer.} for the given - * node. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of the local subtree - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} or null that sorts the outgoing edges of the given node - * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY - * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer - */ - getOutEdgeComparer(localRoot:yfiles.algorithms.Node):yfiles.collections.IComparer; - /** - * Returns the {@link yfiles.tree.IPortAssignment} instance that places the ports of the connecting edges of the given node. - *

    - * The method may be overridden to return customized {@link yfiles.tree.IPortAssignment} instances. It is possible to return a - * shared instance for multiple different nodes because the instances are not used after subsequent calls to this method. - *

    - *

    - * The current implementation returns the {@link yfiles.tree.IPortAssignment} defined by the {@link yfiles.algorithms.IDataProvider} - * registered with key {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY}. It falls back to the default {@link yfiles.tree.IPortAssignment} - * if there is no specific {@link yfiles.tree.IPortAssignment} for the given node. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of the local subtree - * @returns {yfiles.tree.IPortAssignment} the {@link yfiles.tree.IPortAssignment} instance that assigns the ports of the edges at the given node - * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY - * @see yfiles.tree.TreeLayout#defaultPortAssignment - * @protected - */ - getPortAssignment(localRoot:yfiles.algorithms.Node):yfiles.tree.IPortAssignment; - /** - * Returns an array of the nodes that will be laid out. - *

    - * The given node will be considered as the root of the tree. The order of the elements ensures that no parent is processed - * before one of its successors. - *

    - *

    - * This method may be overridden to change the order in which the nodes (and their subtrees) are handled. However, it is - * important to keep the parents after the successors. Only siblings can change places. - *

    - * @param {yfiles.algorithms.Node} root the node to be considered as root of the tree - * @returns {Array.} an array of nodes that will be laid out - * @protected - */ - getRootsArray(root:yfiles.algorithms.Node):yfiles.algorithms.Node[]; - /** - * Provides access to the {@link yfiles.tree.SubtreeShape} for the given node. - *

    - * The {@link yfiles.tree.SubtreeShape} contains information about the current extent and location of the subtree rooted at the - * node. It should only be modified during the layout of the parent node. Also, it won't be initialized before the layout - * of the corresponding subtree is calculated. - *

    - *

    - * This method updates the {@link yfiles.tree.SubtreeShape} in {@link yfiles.tree.TreeLayout#layoutRoot}. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of the subtree - * @returns {yfiles.tree.SubtreeShape} the {@link yfiles.tree.SubtreeShape} instance if it has already been calculated, null otherwise - * @protected - */ - getSubtreeShape(localRoot:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; - /** - * Calculates the layout for the given root node and its subtrees. - *

    - * This method is invoked for each node in the tree exactly once. Thus, children are always handled before their parents. - * In this manner, the subtrees already have a layout and can be arranged with their parent. - *

    - *

    - * To retrieve the shapes of the subtrees of all children of the local root, this method uses - * {@link yfiles.tree.TreeLayout#getSubtreeShape}. - *

    - *

    - * The method may be overridden to add configuration code. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that whose layout is calculated - * @returns {yfiles.tree.SubtreeShape} the combined {@link yfiles.tree.SubtreeShape} of the local root node and all of its children and connecting edges - * @protected - */ - layoutRoot(localRoot:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; - /** - * Reverses the direction of given edges. - *

    - * This method will be called initially after the {@link yfiles.tree.TreeLayout#directTree} method and finally after the layout has - * been calculated. It may be overridden to additionally reverse data that depends on the direction of the edges. - *

    - * @param {yfiles.algorithms.EdgeList} reversedEdges the edges that will be reversed - * @protected - */ - reverseEdges(reversedEdges:yfiles.algorithms.EdgeList):void; - /** - * Data provider key for specifying a child node placer for each node. - * @see yfiles.tree.TreeLayout#defaultNodePlacer - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static NODE_PLACER_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for assigning ports to nodes. - * @see yfiles.tree.TreeLayout#defaultPortAssignment - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static PORT_ASSIGNMENT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for specifying the comparator for the outgoing edges. - * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.>} - */ - static OUT_EDGE_COMPARER_DP_KEY:yfiles.algorithms.NodeDpKey>; - /** - * Data provider key for defining the priority of critical edges. - *

    - * The layout algorithm tries to align each node pair that is connected by a critical edge (integer value > - * 0). This feature can, for example, be used for highlighting different edge paths that are important for a user. - * Conflicts between different critical edges are always resolved in favor of the higher priority. - *

    - *

    - * Critical edges will always align the centers of source and target node, thus replacing the current root alignment of the - * {@link yfiles.tree.INodePlacer}. - *

    - *

    - * The critical edge may not be straight if subtrees are rotated or port constraints are assigned. - *

    - *

    - * This feature is only supported by the following {@link yfiles.tree.INodePlacer}s: - *

    - *
      - *
    • {@link yfiles.tree.DefaultNodePlacer}
    • - *
    • {@link yfiles.tree.SimpleNodePlacer}
    • - *
    • {@link yfiles.tree.LayeredNodePlacer}
    • - *
    • {@link yfiles.tree.DoubleLineNodePlacer}
    • - *
    • {@link yfiles.tree.DendrogramNodePlacer}
    • - *
    - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static CRITICAL_EDGE_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Data provider key for retrieving descriptors for nodes in multi-parent structures. - *

    - * The returned descriptor affects the layout of the multi-parent structure. - *

    - * @see yfiles.tree.TreeLayout#multiParentAllowed - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static MULTI_PARENT_DESCRIPTOR_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for marking the node that will be used as root node of the tree. - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * The input graph for which a layout is calculated. - * @protected - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - /** - * Gets or sets whether or not group nodes are handled by the layout algorithm. - * @type {boolean} - */ - groupingSupported:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. - * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled - * @see yfiles.layout.MultiStageLayout#componentLayout - * @see yfiles.layout.ComponentLayout - * @type {boolean} - */ - componentLayoutEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter - * @see yfiles.router.ParallelEdgeRouter - * @type {boolean} - */ - parallelEdgeRouterEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. - * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled - * @see yfiles.layout.MultiStageLayout#selfLoopRouter - * @see yfiles.layout.SelfLoopRouter - * @type {boolean} - */ - selfLoopRouterEnabled:boolean; - /** - * Gets a {@link yfiles.algorithms.IDataAcceptor} that can overwrite the source {@link yfiles.layout.PortConstraint port contraint} temporarily used during the layout. - *

    - * This method sets temporary source {@link yfiles.layout.PortConstraint}s, e.g., after edge reversal. It may be overridden to - * handle those {@link yfiles.layout.PortConstraint}s separately. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY - * @type {yfiles.algorithms.IDataAcceptor} - */ - sourcePortConstraintDataAcceptor:yfiles.algorithms.IDataAcceptor; - /** - * Gets a {@link yfiles.algorithms.IDataAcceptor} that can overwrite the target {@link yfiles.layout.PortConstraint port contraint} temporarily used during the layout. - *

    - * This method sets temporary target {@link yfiles.layout.PortConstraint}s, e.g., after edge reversal. It may be overridden to - * handle those {@link yfiles.layout.PortConstraint}s separately. - *

    - * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY - * @protected - * @type {yfiles.algorithms.IDataAcceptor} - */ - targetPortConstraintDataAcceptor:yfiles.algorithms.IDataAcceptor; - /** - * Gets a {@link yfiles.algorithms.IDataAcceptor} that can be used for temporarily overwriting the source group information used - * during the layout. - *

    - * This method may be overridden to handle those edge groups separately. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @protected - * @type {yfiles.algorithms.IDataAcceptor} - */ - sourceGroupDataAcceptor:yfiles.algorithms.IDataAcceptor; - /** - * Gets a {@link yfiles.algorithms.IDataAcceptor} that can be used for temporarily overwriting the target group information used - * during the layout. - *

    - * This method may be overridden to handle those edge groups separately. - *

    - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - * @protected - * @type {yfiles.algorithms.IDataAcceptor} - */ - targetGroupDataAcceptor:yfiles.algorithms.IDataAcceptor; - /** - * Gets or sets the default {@link yfiles.tree.INodePlacer} instance that arranges all subtrees that do not have a specific {@link yfiles.tree.INodePlacer} - * assigned using a {@link yfiles.algorithms.IDataProvider}. - * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.INodePlacer} is set to null - * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY - * @type {yfiles.tree.INodePlacer} - */ - defaultNodePlacer:yfiles.tree.INodePlacer; - /** - * Gets or sets the default {@link yfiles.tree.INodePlacer} instance that places the leaf nodes of the tree. - * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.INodePlacer} is set to null - * @see yfiles.tree.TreeLayout#defaultNodePlacer - * @type {yfiles.tree.INodePlacer} - */ - defaultLeafPlacer:yfiles.tree.INodePlacer; - /** - * Gets or sets the default {@link yfiles.tree.IPortAssignment} instance for all subtrees that do not have a specific {@link yfiles.tree.IPortAssignment} - * assigned using a {@link yfiles.algorithms.IDataProvider}. - * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.IPortAssignment} is set to null - * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY - * @type {yfiles.tree.IPortAssignment} - */ - defaultPortAssignment:yfiles.tree.IPortAssignment; - /** - * Gets or sets the default {@link yfiles.collections.IComparer.} instance that sorts the outgoing edges in all subtrees that do not have a specific {@link yfiles.collections.IComparer.} assigned - * using a {@link yfiles.algorithms.IDataProvider}. - * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY - * @type {yfiles.collections.IComparer.} - */ - defaultOutEdgeComparer:yfiles.collections.IComparer; - /** - * Gets or sets whether or not the layout algorithm reserves space for node labels. - *

    - * If this feature is enabled, the {@link yfiles.tree.SubtreeShape} of the nodes will also hold the shapes of its labels. - *

    - * @type {boolean} - */ - considerNodeLabels:boolean; - /** - * Gets or sets whether or not edge labels are placed by the layout algorithm. - *

    - * If this is enabled, the {@link yfiles.tree.SubtreeShape}s of the subtrees are extended by the edge labels. - *

    - *

    - * The layout algorithm uses the information of {@link yfiles.layout.PreferredPlacementDescriptor} for an edge label to determine - * the corresponding placement. However, edge labels are always placed at the target side of the edge. The placement along - * the edge only affects the order of the edge labels at the same edge. - *

    - * @type {boolean} - */ - integratedEdgeLabeling:boolean; - /** - * Gets or sets whether or not multi-parent structures are allowed for this tree layout. - *

    - * If multi-parent structures are allowed, the directed input graph may contain structures of multiple nodes that share the - * same predecessors as well as the same successors. All nodes belonging to such a structure are placed side by side and - * the incident edges are routed in a bus-style manner. - *

    - * @type {boolean} - */ - multiParentAllowed:boolean; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.TreeReductionStage} temporarily reduces general graphs to trees. - *

    - * Layout Style - *

    - *

    - * This stage prepares a non-tree graph such that it can be processed by a tree layout algorithm. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[150,0],[260,70],[210,70],[260,140],[310,210],[335,280],[75,70],[285,280],[25,70],[25,140],[75,140],[150,70],[25,210],[185,280],[175,140],[50,280],[0,280],[210,210],[235,280],[125,140]],"e":[[0,1,[165,50,275,50]],[0,2,[165,50,225,50]],[1,3],[3,4,[275,190,325,190]],[4,5,[325,260,350,260]],[0,6,[165,50,90,50]],[4,7,[325,260,300,260]],[0,8,[165,50,40,50]],[8,9],[6,10],[0,11],[9,12],[11,14,[165,120,190,120]],[12,15,[40,260,65,260]],[12,16,[40,260,15,260]],[3,17,[275,190,225,190]],[17,13,[225,260,200,260]],[17,18,[225,260,250,260]],[11,19,[165,120,140,120]],[2,11,1],[12,13,1],[17,14,1]],"vp":[0.0,0.0,365.0,310.0]}} - *

    - *

    - * The non-tree edges are marked - *

    - *

    - * Concept This {@link yfiles.layout.ILayoutStage} works in three steps: - *

    - *
      - *
    1. Remove some edges to get a tree or forest from the graph
    2. - *
    3. Invoke the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} which supports tree graph handling
    4. - *
    5. Reinsert all previously removed edges
    6. - *
    7. - * Optionally route these edges using the non-tree edge router and place their labels using the non-tree edge labeling - * algorithm. - *
    8. - *
    - *

    - * Features - *

    - *

    - * The routing of the temporarily hidden non-tree edges can be customized by specifying an {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter edge routing algorithm} for those - * edges. Similarly, the placement of edge labels of non-tree edges can be delegated to a custom - * {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm edge labeling algorithm}. As default, both custom algorithms are not specified and, thus, non-tree edges are not routed - * and edge labels not placed. - *

    - *

    - * This stage is also able to handle multi-parent structures, i.e., structures of multiple nodes that share the same - * predecessors as well as the same successors. More precisely, if the specified {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} supports - * multi-parent structures (see {@link yfiles.tree.TreeLayout#multiParentAllowed}) and option {@link yfiles.tree.TreeReductionStage#multiParentAllowed} is enabled, this stage does not hide such structures, i.e., the multi-parent - * structures are passed to the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - *

    - *

    - * Non-tree edges can also be bundled together such that their common parts are to some degree merged into a bundled part. - * The edge bundling can be specified by means of method {@link yfiles.tree.TreeReductionStage#edgeBundling}. - *

    - * @class yfiles.tree.TreeReductionStage - * @extends {yfiles.layout.LayoutStageBase} - */ - export interface TreeReductionStage extends yfiles.layout.LayoutStageBase{} - export class TreeReductionStage { - /** - * Creates a new {@link yfiles.tree.TreeReductionStage} instance with the given core layout algorithm and default settings. - * @param {yfiles.layout.ILayoutAlgorithm} core the core layout algorithm - * @constructor - */ - constructor(core:yfiles.layout.ILayoutAlgorithm); - /** - * Creates a new {@link yfiles.tree.TreeReductionStage} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates a routing algorithm that routes edges as a single straight segment. - *

    - * The created instance can be used for {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter routing non-tree edges}. - *

    - * @returns {yfiles.layout.ILayoutAlgorithm} an edge routing algorithm that produces straight-line edges - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter - */ - createStraightLineRouter():yfiles.layout.ILayoutAlgorithm; - /** - * Routes all edges that do not belong to the chosen spanning tree. - *

    - * This method is called by {@link yfiles.tree.TreeReductionStage#applyLayout} after the tree was arranged by the - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It may be overridden to apply custom edge routes. - *

    - * @param {yfiles.layout.LayoutGraph} graph the graph containing tree and non-tree edges - * @param {yfiles.algorithms.IEdgeMap} nonTreeEdgeMap the {@link yfiles.algorithms.IEdgeMap} that marks all non-tree edges in the graph - * @protected - */ - routeNonTreeEdges(graph:yfiles.layout.LayoutGraph,nonTreeEdgeMap:yfiles.algorithms.IEdgeMap):void; - /** - * Data provider key for explicitly marking (some) edges that should not be considered for the tree - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static NON_TREE_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Gets or sets whether or not multi-parent structures (structures of multiple nodes that share the same predecessors as - * well as the same successors) are allowed. - *

    - * More precisely, if this option is enabled and the specified {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} can handle multi-parent structures - * (see {@link yfiles.tree.TreeLayout#multiParentAllowed}), this stage does not hide such structures, but the multi-parent structures are passed on to the {@link yfiles.layout.LayoutStageBase#coreLayout} core layout - * algorithm}. - *

    - * @type {boolean} - */ - multiParentAllowed:boolean; - /** - * Gets or sets the edge routing algorithm that is applied to all non-tree edges. - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeSelectionKey - * @type {yfiles.layout.ILayoutAlgorithm} - */ - nonTreeEdgeRouter:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that will be used by the {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter non-tree edge routing algorithm} - * to determine the edges that need to be routed. - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter - * @type {Object} - */ - nonTreeEdgeSelectionKey:Object; - /** - * Gets or sets the labeling algorithm that is applied to all edge labels that belong to non-tree edges. - *

    - * It is required that a suitable {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelSelectionKey edge label selection key} is set. Otherwise, the edge labeling algorithm might also place - * labels of tree edges. - *

    - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeLabelSelectionKey - * @type {yfiles.layout.ILayoutAlgorithm} - */ - nonTreeEdgeLabelingAlgorithm:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used by the {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm non-tree edge labeling algorithm} - * to determine which edge labels it should place. - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm - * @type {Object} - */ - nonTreeEdgeLabelSelectionKey:Object; - /** - * Gets the {@link yfiles.layout.EdgeBundling} instance that defines the settings of the edge bundling feature. - *

    - * The specified {@link yfiles.layout.EdgeBundling} defines global bundling properties. Settings for individual edges can be - * defined by assigning an {@link yfiles.layout.EdgeBundleDescriptor} to an edge using a {@link yfiles.algorithms.IDataProvider} registered - * with key {@link yfiles.layout.EdgeBundling#EDGE_BUNDLE_DESCRIPTOR_DP_KEY}. To enable bundling for all non-tree edges, set a {@link yfiles.layout.EdgeBundling#defaultBundleDescriptor default bundle descriptor} - * which has {@link yfiles.layout.EdgeBundleDescriptor#bundled bundling} enabled. - *

    - *

    - * If the graph contains self-loops that belong to the set of non-tree edges, the stage will invoke the router defined for - * the non-tree edges in order to route them. In the case where this is not desired, the user has to hide them from the - * stage and route them afterwards as desired. - *

    - * @type {yfiles.layout.EdgeBundling} - */ - edgeBundling:yfiles.layout.EdgeBundling; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.tree.AspectRatioTreeLayout}. - * @class yfiles.tree.AspectRatioTreeLayoutData - * @extends {yfiles.layout.LayoutData} - */ - export interface AspectRatioTreeLayoutData extends yfiles.layout.LayoutData{} - export class AspectRatioTreeLayoutData { - constructor(); - /** - * Gets or sets the mapping from nodes to the aspect ratio of their sub tree. - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - subtreeAspectRatios:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes with sub trees to their placements. - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - * @see yfiles.tree.AspectRatioTreeLayout#getRootPlacement - * @type {yfiles.layout.ItemMapping.} - */ - rootPlacements:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to the routing policies of their sub trees. - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY - * @see yfiles.tree.AspectRatioTreeLayout#getSubtreeArrangement - * @type {yfiles.layout.ItemMapping.} - */ - subtreeRoutingPolicies:yfiles.layout.ItemMapping; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.tree.BalloonLayout}. - * @class yfiles.tree.BalloonLayoutData - * @extends {yfiles.layout.LayoutData} - */ - export interface BalloonLayoutData extends yfiles.layout.LayoutData{} - export class BalloonLayoutData { - constructor(); - /** - * Gets or sets the collection of nodes that should be arranged in an interleaved fashion. - * @see yfiles.tree.BalloonLayout#INTERLEAVED_NODES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - interleavedNodes:yfiles.layout.ItemCollection; - /** - * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. - * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodeHalos:yfiles.layout.ItemMapping; - /** - * Gets or sets the AbortHandler used during the layout. - * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY - * @type {yfiles.algorithms.AbortHandler} - */ - abortHandler:yfiles.algorithms.AbortHandler; - /** - * Gets or sets the mapping for marking the node that will be used as root node of the tree. - *

    - * The custom root node selection induced by this property is only considered if the {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy} is set to - * {@link yfiles.tree.RootNodePolicy#SELECTED_ROOT}. - *

    - * @see yfiles.tree.BalloonLayout#SELECTED_ROOT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - treeRoot:yfiles.layout.ItemMapping; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.tree.TreeLayout}. - * @class yfiles.tree.TreeLayoutData - * @extends {yfiles.layout.LayoutData} - */ - export interface TreeLayoutData extends yfiles.layout.LayoutData{} - export class TreeLayoutData { - constructor(); - /** - * Gets or sets the mapping from nodes to their {@link yfiles.tree.INodePlacer}. - * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodePlacers:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to their {@link yfiles.tree.IPortAssignment}. - * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - portAssignments:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to comparison functions used to sort the nodes' outgoing edges. - * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - outEdgeComparers:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. - * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodeHalos:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to their source {@link yfiles.layout.PortConstraint}. - * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - sourcePortConstraints:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to their target {@link yfiles.layout.PortConstraint}. - * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - targetPortConstraints:yfiles.layout.ItemMapping; - /** - * Gets or sets the collection of nodes the {@link yfiles.tree.AssistantNodePlacer} considers as assistants. - *

    - * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.AssistantNodePlacer} . - *

    - * @see yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - assistantNodes:yfiles.layout.ItemCollection; - /** - * Gets or sets the collection of nodes the {@link yfiles.tree.DelegatingNodePlacer} places with its {@link yfiles.tree.DelegatingNodePlacer#primaryPlacer}. - *

    - * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.DelegatingNodePlacer} . - *

    - * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - delegatingNodePlacersPrimaryNodes:yfiles.layout.ItemCollection; - /** - * Gets or sets a mapping from nodes to a boolean value that specifies whether a node should be placed left of the bus - * (true) or right of the bus (false). - *

    - * This mapping is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns a {@link yfiles.tree.LeftRightNodePlacer} . - *

    - * @see yfiles.tree.LeftRightNodePlacer#LEFT_RIGHT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - leftRightPlacersLeftNodes:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to the index of the row the {@link yfiles.tree.GridNodePlacer} shall place the node in. - *

    - * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.GridNodePlacer} . - *

    - * @see yfiles.tree.GridNodePlacer#ROW_INDEX_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - gridNodePlacerRowIndices:yfiles.layout.ItemMapping; - /** - * Gets or sets the AbortHandler used during the layout. - * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY - * @type {yfiles.algorithms.AbortHandler} - */ - abortHandler:yfiles.algorithms.AbortHandler; - /** - * Gets or sets the mapping for marking the node that will be used as root node of the tree. - * @see yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - treeRoot:yfiles.layout.ItemMapping; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.tree.TreeReductionStage}. - * @class yfiles.tree.TreeReductionStageData - * @extends {yfiles.layout.LayoutData} - */ - export interface TreeReductionStageData extends yfiles.layout.LayoutData{} - export class TreeReductionStageData { - constructor(); - /** - * Gets or sets the collection of edges explicitly marked as not belonging to a tree. - * @see yfiles.tree.TreeReductionStage#NON_TREE_EDGES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - nonTreeEdges:yfiles.layout.ItemCollection; - /** - * Gets or sets the mapping of edges to their {@link yfiles.layout.EdgeBundleDescriptor}. - *

    - * Bundling together multiple edges means that their common parts are to some degree merged into a bundled part. At the - * source and target point, the edges are again clearly split. - *

    - *

    - * If an edge is mapped to null, the {@link yfiles.layout.EdgeBundling#defaultBundleDescriptor default descriptor} is used. - *

    - * @see yfiles.layout.EdgeBundleDescriptor - * @see yfiles.tree.TreeReductionStage#edgeBundling - * @type {yfiles.layout.ItemMapping.} - */ - edgeBundleDescriptors:yfiles.layout.ItemMapping; - static $class:yfiles.lang.Class; - } }export namespace hierarchic{ /** * This interface describes a layering constraint. @@ -100005,11 +93804,11 @@ declare namespace system{ * The minimum distance includes potentially empty layers that are removed by the {@link yfiles.hierarchic.ILayerer} instance. In * that case, the actual layer difference may be smaller than the minimum distance. *

    - * @param {Object} referenceId the ID of the reference node - * @param {Object} aboveId the ID of the node that should lie above - * @param {number} minDistance the minimum layer distance between the node and its reference node - * @param {number} [weight=0] the weight penalty for larger layer differences - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param referenceId the ID of the reference node + * @param aboveId the ID of the node that should lie above + * @param minDistance the minimum layer distance between the node and its reference node + * @param [weight=0] the weight penalty for larger layer differences + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100017,25 +93816,25 @@ declare namespace system{ /** * Adds a constraint that forces the {@link yfiles.algorithms.Node} with ID aboveId to lie above the {@link yfiles.algorithms.Node} with ID * referenceId. - * @param {Object} referenceId the ID of the reference node - * @param {Object} aboveId the ID of the node that should lie above - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param referenceId the ID of the reference node + * @param aboveId the ID of the node that should lie above + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ addPlaceNodeAboveConstraint(referenceId:Object,aboveId:Object):yfiles.hierarchic.ILayerConstraint; /** * Adds a constraint that places a {@link yfiles.algorithms.Node} on the bottom layer. - * @param {Object} nodeId the ID of the node that should lie on the bottom layer - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param nodeId the ID of the node that should lie on the bottom layer + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ addPlaceNodeAtBottomConstraint(nodeId:Object):yfiles.hierarchic.ILayerConstraint; /** * Adds a constraint that places a {@link yfiles.algorithms.Node} on the topmost layer. - * @param {Object} nodeId the ID of the node that should lie on the top layer - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param nodeId the ID of the node that should lie on the top layer + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100047,11 +93846,11 @@ declare namespace system{ * The minimum distance includes potentially empty layers that are removed by the {@link yfiles.hierarchic.ILayerer} instance. In * that case, the actual layer difference may be smaller than the minimum distance. *

    - * @param {Object} referenceId the ID of the reference node - * @param {Object} belowId the ID of the node that should lie below - * @param {number} minDistance the minimum layer distance between the node and its reference node - * @param {number} [weight=0] the weight penalty for larger layer differences - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param referenceId the ID of the reference node + * @param belowId the ID of the node that should lie below + * @param minDistance the minimum layer distance between the node and its reference node + * @param [weight=0] the weight penalty for larger layer differences + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100059,9 +93858,9 @@ declare namespace system{ /** * Adds a constraint that forces a {@link yfiles.algorithms.Node} with ID belowId to lie below the {@link yfiles.algorithms.Node} with ID * referenceId. - * @param {Object} referenceId the ID of the reference node - * @param {Object} belowId the ID of the node that should lie below - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param referenceId the ID of the reference node + * @param belowId the ID of the node that should lie below + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100069,9 +93868,9 @@ declare namespace system{ /** * Adds a constraint that forces the {@link yfiles.algorithms.Node} with ID sameLayerId to lie in the same layer as the {@link yfiles.algorithms.Node} * with ID referenceId. - * @param {Object} referenceId the ID of the reference node - * @param {Object} sameLayerId the ID of the node that should lie in the same layer - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param referenceId the ID of the reference node + * @param sameLayerId the ID of the node that should lie in the same layer + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100087,7 +93886,7 @@ declare namespace system{ dispose():void; /** * Clears all constraints for a given {@link yfiles.algorithms.Node}. - * @param {Object} nodeId the ID of the node for which all constraints should be cleared + * @param nodeId the ID of the node for which all constraints should be cleared * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100125,28 +93924,28 @@ declare namespace system{ /** * Adds a constraint that forces the {@link yfiles.algorithms.Node} or {@link yfiles.algorithms.Edge} with id after to lie after the {@link yfiles.algorithms.Node} * or {@link yfiles.algorithms.Edge} with id reference. - * @param {Object} referenceId the ID of the reference node or edge - * @param {Object} afterId the ID of the node or edge that should be placed after the reference element + * @param referenceId the ID of the reference node or edge + * @param afterId the ID of the node or edge that should be placed after the reference element * @abstract */ addPlaceAfterConstraint(referenceId:Object,afterId:Object):void; /** * Adds a constraint that places a {@link yfiles.algorithms.Node} or {@link yfiles.algorithms.Edge} at the start of the sequence. - * @param {Object} id the ID of the node or edge that should be placed at the start + * @param id the ID of the node or edge that should be placed at the start * @abstract */ addPlaceAtHeadConstraint(id:Object):void; /** * Adds a constraint that places a {@link yfiles.algorithms.Node} or {@link yfiles.algorithms.Edge} at the end of the sequence. - * @param {Object} id the ID of the node or edge that should be placed at the end + * @param id the ID of the node or edge that should be placed at the end * @abstract */ addPlaceAtTailConstraint(id:Object):void; /** * Adds a constraint that forces the {@link yfiles.algorithms.Node} or {@link yfiles.algorithms.Edge} with id before to lie before the {@link yfiles.algorithms.Node} * or {@link yfiles.algorithms.Edge} with id reference. - * @param {Object} referenceId the ID of the reference node or edge - * @param {Object} beforeId the ID of the node or edge that should be placed before the reference element + * @param referenceId the ID of the reference node or edge + * @param beforeId the ID of the node or edge that should be placed before the reference element * @abstract */ addPlaceBeforeConstraint(referenceId:Object,beforeId:Object):void; @@ -100200,14 +93999,13 @@ declare namespace system{ *

    * Hierarchic layout when the initial drawing is not used as sketch *

    - * @class yfiles.hierarchic.AsIsLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface AsIsLayerer extends Object,yfiles.hierarchic.ILayerer{} export class AsIsLayerer { /** * Creates an instance of {@link yfiles.hierarchic.AsIsLayerer} with default settings. - * @constructor */ constructor(); /** @@ -100217,24 +94015,24 @@ declare namespace system{ * Nodes whose bounding boxes overlap in the main layout direction are assigned to the same layer. To influence to which * amount the boxes need to overlap, the nodes can temporarily be {@link yfiles.hierarchic.AsIsLayerer#nodeScalingFactor scaled}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for querying information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** * Callback used for calculating the lower (max) value of a given node. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the lower (max) of a given node + * @param graph the graph + * @param node the node + * @returns the lower (max) of a given node * @protected */ getMax(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):number; /** * Callback used for calculating the upper (min) value of a given node. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the upper (min) value of a given node + * @param graph the graph + * @param node the node + * @returns the upper (min) value of a given node * @protected */ getMin(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):number; @@ -100312,14 +94110,13 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[30,30],"d":1},"n":[[111.8,0,[[121.47,24.35,10.67,18.7,"1"]]],[0,36.33,[[9.66,60.68,10.67,18.7,"2"]]],[180.9,95.11,[[190.56,119.46,10.67,18.7,"3"]]],[0,153.88,[[9.66,178.23,10.67,18.7,"4"]]],[111.8,190.21,[[121.47,214.56,10.67,18.7,"5"]]]],"e":[[0,1],[0,3],[1,3],[0,2],[2,4],[4,3]],"vp":[0.0,0.0,211.0,221.0]}} Initial graph that will be used as sketch {@graph {"ann":{"s":[30,30],"d":1},"n":[[50,0,[[59.66,24.35,10.67,18.7,"1"]]],[20,60,[[29.66,84.35,10.67,18.7,"2"]]],[80,100,[[89.66,124.35,10.67,18.7,"3"]]],[42.5,145,[[52.16,169.35,10.67,18.7,"4"]]],[72.5,205,[[82.16,229.35,10.67,18.7,"5"]]]],"e":[[0,1,-10,15,0,-15,[55,45,35,45]],[0,3,0,15,7.5,-15],[1,3,0,15,-7.5,-15,[35,130,50,130]],[0,2,10,15,0,-15,[75,45,95,45]],[2,4,0,15,7.5,-15],[4,3,-7.5,-15,0,15,[80,190,57.5,190]]],"vp":[20.0,0.0,90.0,235.0]}} Hierarchic layout when the initial graph is used as sketch *

    - * @class yfiles.hierarchic.AsIsSequencer + * @class * @implements {yfiles.hierarchic.ISequencer} */ export interface AsIsSequencer extends Object,yfiles.hierarchic.ISequencer{} export class AsIsSequencer { /** * Creates a new {@link yfiles.hierarchic.AsIsSequencer} instance. - * @constructor */ constructor(); /** @@ -100328,10 +94125,10 @@ declare namespace system{ * This method is called by {@link yfiles.hierarchic.HierarchicLayoutCore} and finally writes back the calculated sequence using * method {@link yfiles.hierarchic.ILayer#setNodeOrder}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance that defines the layering structure - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used for creating and destroying helper structures + * @param graph the input graph + * @param layers the given {@link } instance that defines the layering structure + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param itemFactory the {@link } used for creating and destroying helper structures */ sequenceNodeLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; static $class:yfiles.lang.Class; @@ -100350,7 +94147,7 @@ declare namespace system{ *

    * @see yfiles.hierarchic.AspectRatioComponentLayerer#desiredAspectRatio * @see yfiles.hierarchic.MultiComponentLayerer - * @class yfiles.hierarchic.AspectRatioComponentLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface AspectRatioComponentLayerer extends Object,yfiles.hierarchic.ILayerer{} @@ -100358,9 +94155,8 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.hierarchic.AspectRatioComponentLayerer} using the given delegate {@link yfiles.hierarchic.ILayerer} * instance. - * @param {yfiles.hierarchic.ILayerer} singleComponentLayerer + * @param singleComponentLayerer * @throws {Stubs.Exceptions.ArgumentError} if the specified {@link yfiles.hierarchic.ILayerer} is null - * @constructor */ constructor(singleComponentLayerer:yfiles.hierarchic.ILayerer); /** @@ -100371,9 +94167,9 @@ declare namespace system{ * separately using the delegate {@link yfiles.hierarchic.ILayerer} instance. After that, they will all be merged such that the * desired aspect ratio is best fulfilled. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for query information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for query information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -100418,25 +94214,24 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[30,30],"d":1},"n":[[46.17,0,[[55.83,24.35,10.67,18.7,"1"]]],[100,70,[[109.66,94.35,10.67,18.7,"2"]]],[0,70,[[9.66,94.35,10.67,18.7,"3"]]],[211.77,0,[[221.43,24.35,10.67,18.7,"6"]]],[211.77,70,[[221.43,94.35,10.67,18.7,"7"]]],[100,0,[[109.66,24.35,10.67,18.7,"8"]]],[50,70,[[56.33,94.35,17.35,18.7,"12"]]],[3.17,140,[[12.83,164.35,10.67,18.7,"8"]]],[113.17,140,[[122.83,164.35,10.67,18.7,"9"]]]],"e":[[5,1,0,15,7.5,-15,[115,50,122.5,50]],[0,1,10,15,-7.5,-15,[71.17,50,107.5,50]],[0,2,-10,15,0,-15,[51.17,50,15,50]],[4,1,-15,0,15,0],[3,4,0,15,0,-15],[0,6,-0,15,0,-15,[61.17,50,65,50]],[6,7,-7.5,15,7.5,-15,[57.5,120,25.67,120]],[6,8,7.5,15,0,-15,[72.5,120,128.17,120]],[8,7,-15,0,15,0],[2,7,0,15,-7.5,-15,[15,120,10.67,120]]],"vp":[0.0,0.0,242.0,170.0]}} *

    - * @class yfiles.hierarchic.BFSLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface BFSLayerer extends Object,yfiles.hierarchic.ILayerer{} export class BFSLayerer { /** * Creates an instance of {@link yfiles.hierarchic.BFSLayerer}. - * @constructor */ constructor(); /** * Assigns all nodes of the graph to layers and adds them to the {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for query information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for query information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** - * Data provider key for identifying the core nodes of the BFS layering. + * Data provider key for identifying the core nodes of the BFS layering *

    * The {@link yfiles.algorithms.IDataProvider} registered with this key should provide boolean values for the nodes of the graph. * The boolean value determines whether or not a node is to be placed in the first layer. If there are no nodes marked as @@ -100470,23 +94265,22 @@ declare namespace system{ *

    * @see yfiles.hierarchic.ILayerConstraintFactory * @see yfiles.hierarchic.HierarchicLayout - * @class yfiles.hierarchic.ConstraintIncrementalLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface ConstraintIncrementalLayerer extends Object,yfiles.hierarchic.ILayerer{} export class ConstraintIncrementalLayerer { /** * Creates a new {@link yfiles.hierarchic.ConstraintIncrementalLayerer} with the given {@link yfiles.hierarchic.ILayerer} instance. - * @param {yfiles.hierarchic.ILayerer} coreLayerer the given {@link yfiles.hierarchic.ILayerer} instance - * @constructor + * @param coreLayerer the given {@link } instance */ constructor(coreLayerer:yfiles.hierarchic.ILayerer); /** * Assigns all nodes of the graph to layers and adds them to the {@link yfiles.hierarchic.ILayers} instance based on relative and * absolute layering constraints defined by the given layering constraints. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for query information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for query information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -100522,40 +94316,39 @@ declare namespace system{ /** * This class is a default {@link yfiles.hierarchic.IDrawingDistanceCalculator} implementation that is used by {@link yfiles.hierarchic.HierarchicLayoutCore} * to configure the {@link yfiles.hierarchic.INodePlacer}. - * @class yfiles.hierarchic.DefaultDrawingDistanceCalculator + * @class * @implements {yfiles.hierarchic.IDrawingDistanceCalculator} */ export interface DefaultDrawingDistanceCalculator extends Object,yfiles.hierarchic.IDrawingDistanceCalculator{} export class DefaultDrawingDistanceCalculator { /** * Creates a new instance of {@link yfiles.hierarchic.DefaultDrawingDistanceCalculator} with default settings. - * @constructor */ constructor(); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp + * @param graph + * @param layers + * @param ldp */ dispose(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** * Determines the minimum distance between two {@link yfiles.algorithms.Node}s of the same layer. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayer} layer the {@link yfiles.hierarchic.ILayer} object that will be used during subsequent calls - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information - * @param {yfiles.algorithms.Node} left the left of the two {@link yfiles.algorithms.Node}s whose minimum distance is to be determined or null if only the left border - * of the right {@link yfiles.algorithms.Node} is of interest - * @param {yfiles.algorithms.Node} right the right of the two {@link yfiles.algorithms.Node}s whose minimum distance is to be determined or null if only the right border - * of the left {@link yfiles.algorithms.Node} is of interest - * @returns {number} the minimum distances between {@link yfiles.algorithms.Node}s of same layer + * @param graph the input graph + * @param layer the {@link } object that will be used during subsequent calls + * @param ldp the {@link } used for querying information + * @param left the left of the two {@link }s whose minimum distance is to be determined or null if only the left border + * of the right {@link } is of interest + * @param right the right of the two {@link }s whose minimum distance is to be determined or null if only the right border + * of the left {@link } is of interest + * @returns the minimum distances between {@link }s of same layer */ getMinDistance(graph:yfiles.layout.LayoutGraph,layer:yfiles.hierarchic.ILayer,ldp:yfiles.hierarchic.ILayoutDataProvider,left:yfiles.algorithms.Node,right:yfiles.algorithms.Node):number; /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp + * @param graph + * @param layers + * @param ldp */ initialize(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -100615,22 +94408,21 @@ declare namespace system{ *

    * It minimizes the crossings in the diagram by using either the barycentric or median heuristic. *

    - * @class yfiles.hierarchic.DefaultLayerSequencer + * @class * @implements {yfiles.hierarchic.ISequencer} */ export interface DefaultLayerSequencer extends Object,yfiles.hierarchic.ISequencer{} export class DefaultLayerSequencer { /** * Creates a new instance of {@link yfiles.hierarchic.DefaultLayerSequencer}. - * @constructor */ constructor(); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} glayers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp - * @param {yfiles.hierarchic.IItemFactory} itemFactory + * @param graph + * @param glayers + * @param ldp + * @param itemFactory */ sequenceNodeLayers(graph:yfiles.layout.LayoutGraph,glayers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; /** @@ -100684,29 +94476,27 @@ declare namespace system{ * Instances of this class are used internally by {@link yfiles.hierarchic.HierarchicLayoutCore} and {@link yfiles.hierarchic.MultiComponentLayerer} * when e.g. the graph is grouped or it consists of more than one connected component. *

    - * @class yfiles.hierarchic.DefaultLayeredComponentsMerger + * @class * @implements {yfiles.hierarchic.ILayeredComponentsMerger} */ export interface DefaultLayeredComponentsMerger extends Object,yfiles.hierarchic.ILayeredComponentsMerger{} export class DefaultLayeredComponentsMerger { /** * Creates a new instance of {@link yfiles.hierarchic.DefaultLayeredComponentsMerger} using the given merging policy. - * @param {yfiles.hierarchic.MergingPolicy} policy one of the predefined merging constants + * @param policy one of the predefined merging constants * @throws {Stubs.Exceptions.ArgumentError} if an unknown policy is given - * @constructor */ constructor(policy:yfiles.hierarchic.MergingPolicy); /** * Creates a new instance of {@link yfiles.hierarchic.DefaultLayeredComponentsMerger} with default settings. - * @constructor */ constructor(); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp - * @param {yfiles.hierarchic.ILayers} srcLayers - * @param {yfiles.hierarchic.ILayers} targetLayers + * @param graph + * @param ldp + * @param srcLayers + * @param targetLayers */ merge(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,srcLayers:yfiles.hierarchic.ILayers,targetLayers:yfiles.hierarchic.ILayers):void; /** @@ -100722,7 +94512,7 @@ declare namespace system{ *

    * It is used by {@link yfiles.hierarchic.HierarchicLayoutCore} after the sequencing phase. *

    - * @class yfiles.hierarchic.DefaultPortAllocator + * @class * @implements {yfiles.hierarchic.IPortAllocator} */ export interface DefaultPortAllocator extends Object,yfiles.hierarchic.IPortAllocator{} @@ -100730,7 +94520,6 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.hierarchic.DefaultPortAllocator} with default settings. * @see yfiles.hierarchic.DefaultPortAllocator#defaultPortBorderGapRatio - * @constructor */ constructor(); /** @@ -100745,10 +94534,10 @@ declare namespace system{ *

    * This method is called by {@link yfiles.hierarchic.HierarchicLayoutCore} after the sequencing phase. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the layering structure - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used for creating and destroying helper structures + * @param graph the input graph + * @param layers the given {@link } instance containing the layering structure + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param itemFactory the {@link } used for creating and destroying helper structures */ assignPorts(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; /** @@ -100756,13 +94545,13 @@ declare namespace system{ *

    * It may be overridden for a custom calculation of port border gap on a given node. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.algorithms.Node} node the given node - * @param {number} sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges/ports that connect to this side - * @returns {number} the absolute gap on both sides of the ports + * @param graph the input graph + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param node the given node + * @param sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) + * @param sideLength the width/height of the side + * @param edgeCount the number of edges/ports that connect to this side + * @returns the absolute gap on both sides of the ports * @see yfiles.hierarchic.DefaultPortAllocator#getPortDistanceDelta * @protected */ @@ -100775,13 +94564,13 @@ declare namespace system{ *

    * It may be overridden for a custom calculation of port border gap ratio on a given node. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.algorithms.Node} node the given node - * @param {number} sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges/ports that connect to this side - * @returns {number} the border gap ratio + * @param graph the input graph + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param node the given node + * @param sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) + * @param sideLength the width/height of the side + * @param edgeCount the number of edges/ports that connect to this side + * @returns the border gap ratio * @protected */ getPortBorderGapRatio(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,node:yfiles.algorithms.Node,sideIndex:number,sideLength:number,edgeCount:number):number; @@ -100790,14 +94579,14 @@ declare namespace system{ *

    * It may be overridden for a custom calculation of the distance between two adjacent ports.. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.algorithms.Node} node the given node - * @param {number} sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges/ports that connect to this side - * @param {number} portBorderGap the previously calculated port border gap - * @returns {number} the absolute distance between two adjacent ports + * @param graph the input graph + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param node the given node + * @param sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) + * @param sideLength the width/height of the side + * @param edgeCount the number of edges/ports that connect to this side + * @param portBorderGap the previously calculated port border gap + * @returns the absolute distance between two adjacent ports * @protected */ getPortDistanceDelta(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,node:yfiles.algorithms.Node,sideIndex:number,sideLength:number,edgeCount:number,portBorderGap:number):number; @@ -100839,18 +94628,17 @@ declare namespace system{ *

    * @see yfiles.hierarchic.HierarchicLayoutCore#EDGE_LAYOUT_DESCRIPTOR_DP_KEY * @see yfiles.hierarchic.NodeLayoutDescriptor - * @class yfiles.hierarchic.EdgeLayoutDescriptor + * @class */ export interface EdgeLayoutDescriptor extends Object{} export class EdgeLayoutDescriptor { /** * Creates a new instance of an {@link yfiles.hierarchic.EdgeLayoutDescriptor} with the default values. - * @constructor */ constructor(); /** * Creates a copy of this {@link yfiles.hierarchic.EdgeLayoutDescriptor} instance. - * @returns {yfiles.hierarchic.EdgeLayoutDescriptor} a copy of this {@link yfiles.hierarchic.EdgeLayoutDescriptor} instance + * @returns a copy of this {@link } instance */ createCopy():yfiles.hierarchic.EdgeLayoutDescriptor; /** @@ -101544,35 +95332,34 @@ declare namespace system{ * graph. Nodes with the same ID are in the same layer while the layers are sorted according to their IDs such that the * smallest ID represents the top layer. *

    - * @class yfiles.hierarchic.GivenLayersLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface GivenLayersLayerer extends Object,yfiles.hierarchic.ILayerer{} export class GivenLayersLayerer { /** * Creates an instance of {@link yfiles.hierarchic.GivenLayersLayerer}. - * @constructor */ constructor(); /** * Assigns all nodes of the graph to layers and adds them to the {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for querying information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** * Convenience method that removes empty layers and ensures that the smallest layer has value 0. - * @param {yfiles.algorithms.Graph} graph the graph - * @param {yfiles.algorithms.IDataProvider} layerId the {@link yfiles.algorithms.IDataProvider} that returns an integer value (layer) for each node; the first layer has the number + * @param graph the graph + * @param layerId the {@link } that returns an integer value (layer) for each node; the first layer has the number * 0 - * @param {yfiles.algorithms.IDataAcceptor} normalizedLayerId the {@link yfiles.algorithms.IDataAcceptor} that will be filled by the layout algorithm and holds an integer value (layer ID + * @param normalizedLayerId the {@link } that will be filled by the layout algorithm and holds an integer value (layer ID * after normalization) for each node - * @returns {number} the number of layers after the removal of empty layers + * @returns the number of layers after the removal of empty layers */ normalize(graph:yfiles.algorithms.Graph,layerId:yfiles.algorithms.IDataProvider,normalizedLayerId:yfiles.algorithms.IDataAcceptor):number; /** - * Data provider key for storing the layer IDs. + * Data provider key for storing the layer IDs *

    * This {@link yfiles.algorithms.IDataProvider} stores for each node the layer ID to which it belongs. Nodes with the same ID are * in the same layer while the layers are sorted according to their IDs such that the smallest ID represents the top @@ -101588,15 +95375,14 @@ declare namespace system{ /** * This class is a {@link yfiles.hierarchic.ISequencer} implementation that determines the sequence of nodes of the same {@link yfiles.hierarchic.ILayer layer} * based on a given {@link yfiles.collections.IComparer. comparator} constraint. - * @class yfiles.hierarchic.GivenSequenceSequencer + * @class * @implements {yfiles.hierarchic.ISequencer} */ export interface GivenSequenceSequencer extends Object,yfiles.hierarchic.ISequencer{} export class GivenSequenceSequencer { /** * Creates a new instance of {@link yfiles.hierarchic.GivenSequenceSequencer} using a given {@link yfiles.collections.IComparer.} for the sequencing. - * @param {yfiles.collections.IComparer.} [c=null] - * @constructor + * @param [c=null] */ constructor(c?:yfiles.collections.IComparer); /** @@ -101605,10 +95391,10 @@ declare namespace system{ * This method is called by {@link yfiles.hierarchic.HierarchicLayoutCore} during the sequencing phase and finally writes back the * calculated sequence using the {@link yfiles.hierarchic.ILayer#setNodeOrder} method. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements of the layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used for creating and destroying helper structures + * @param graph the input graph + * @param layers the given {@link } instance containing the elements of the layers + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param itemFactory the {@link } used for creating and destroying helper structures */ sequenceNodeLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; /** @@ -101625,8 +95411,8 @@ declare namespace system{ export interface IVisitor extends Object{ /** * Visits the descendants of a group node. - * @param {yfiles.algorithms.Node} node A descandant of the group node. - * @param {yfiles.algorithms.Node} parentNode A group node. + * @param node A descandant of the group node. + * @param parentNode A group node. * @abstract */ visit(node:yfiles.algorithms.Node,parentNode:yfiles.algorithms.Node):void; @@ -101644,21 +95430,21 @@ declare namespace system{ *

    * @see yfiles.layout.GroupingSupport * @see yfiles.layout.GroupingKeys - * @class yfiles.hierarchic.GroupingSupport + * @class */ export interface GroupingSupport extends Object{} export class GroupingSupport { /** * Assigns edge group nodes to groups based on a given {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements in the layering + * @param layers the given {@link } instance containing the elements in the layering * @see yfiles.hierarchic.NodeDataType#SOURCE_GROUP_NODE * @see yfiles.hierarchic.NodeDataType#TARGET_GROUP_NODE */ assignEdgeGroupNodesToGroups(layers:yfiles.hierarchic.ILayers):void; /** * Assigns label nodes to groups. - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements in the layering - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used temporarily for modifying the graph instance + * @param layers the given {@link } instance containing the elements in the layering + * @param itemFactory the {@link } used temporarily for modifying the graph instance * @see yfiles.hierarchic.NodeDataType#LABEL * @see yfiles.hierarchic.NodeDataType#BEND * @see yfiles.hierarchic.NodeDataType#GROUP_BEGIN @@ -101667,8 +95453,8 @@ declare namespace system{ assignLabelNodesToGroups(layers:yfiles.hierarchic.ILayers,itemFactory:yfiles.hierarchic.IItemFactory):void; /** * Returns the direct children of the given group node. - * @param {yfiles.algorithms.Node} groupNode the given group node - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} of all direct children or null if {@link yfiles.hierarchic.GroupingSupport} {@link yfiles.hierarchic.GroupingSupport#active is not active} + * @param groupNode the given group node + * @returns a {@link } of all direct children or null if {@link } {@link #active is not active} */ getChildren(groupNode:yfiles.algorithms.Node):yfiles.algorithms.NodeList; /** @@ -101676,15 +95462,15 @@ declare namespace system{ *

    * The descendants are all direct or indirect children of a group node. *

    - * @param {yfiles.algorithms.Node} groupNode the given group node - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} of all descendants or null if {@link yfiles.hierarchic.GroupingSupport} {@link yfiles.hierarchic.GroupingSupport#active is not active} + * @param groupNode the given group node + * @returns a {@link } of all descendants or null if {@link } {@link #active is not active} */ getDescendants(groupNode:yfiles.algorithms.Node):yfiles.algorithms.NodeList; /** * Returns the parent group node of the given {@link yfiles.algorithms.Node} or null if the given node is a top-level node. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @returns {yfiles.algorithms.Node} the parent group node or null if the given node is a top-level node or if {@link yfiles.hierarchic.GroupingSupport} - * {@link yfiles.hierarchic.GroupingSupport#active is not active} + * @param node the given {@link } + * @returns the parent group node or null if the given node is a top-level node or if {@link } + * {@link #active is not active} */ getParentNode(node:yfiles.algorithms.Node):yfiles.algorithms.Node; /** @@ -101696,20 +95482,20 @@ declare namespace system{ *

    * The descendants are all direct or indirect children of a group node. *

    - * @param {yfiles.algorithms.Node} node the given node - * @param {yfiles.algorithms.Node} groupNode the given group node - * @returns {boolean} true if the given node is a descendant of the given group node, false otherwise + * @param node the given node + * @param groupNode the given group node + * @returns true if the given node is a descendant of the given group node, false otherwise */ isDescendant(node:yfiles.algorithms.Node,groupNode:yfiles.algorithms.Node):boolean; /** * Returns whether or not the given {@link yfiles.algorithms.Node} is a non-empty group node. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @returns {boolean} true if the given node is a non-empty group node, false otherwise + * @param node the given {@link } + * @returns true if the given node is a non-empty group node, false otherwise */ isGroupNode(node:yfiles.algorithms.Node):boolean; /** * Removes the current assignment of source/target edge groups from a given {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements in the layering + * @param layers the given {@link } instance containing the elements in the layering * @see yfiles.hierarchic.NodeDataType#SOURCE_GROUP_NODE * @see yfiles.hierarchic.NodeDataType#TARGET_GROUP_NODE */ @@ -101723,8 +95509,8 @@ declare namespace system{ *

    * The descendants are all direct or indirect children of a group node. *

    - * @param {yfiles.algorithms.Node} groupNode the given group node - * @param {yfiles.hierarchic.IVisitor} visitor a {@link yfiles.hierarchic.IVisitor} implementation + * @param groupNode the given group node + * @param visitor a {@link } implementation */ visitDescendants(groupNode:yfiles.algorithms.Node,visitor:yfiles.hierarchic.IVisitor):void; /** @@ -101804,14 +95590,13 @@ declare namespace system{ * {@link yfiles.hierarchic.RecursiveEdgeStyle#DIRECTED} or {@link yfiles.hierarchic.RecursiveEdgeStyle#UNDIRECTED} will not be grouped. * They are also not grouped when enabling {@link yfiles.hierarchic.HierarchicLayout#automaticEdgeGrouping automatic edge grouping}. *

    - * @class yfiles.hierarchic.HierarchicLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface HierarchicLayout extends yfiles.layout.MultiStageLayout{} export class HierarchicLayout { /** * Creates a new {@link yfiles.hierarchic.HierarchicLayout} instance with the default settings. - * @constructor */ constructor(); /** @@ -101824,8 +95609,8 @@ declare namespace system{ * This implementation will temporarily set a {@link yfiles.hierarchic.PortCandidateOptimizer} if a {@link yfiles.algorithms.IDataProvider} * is registered with {@link yfiles.layout.PortCandidateSet#NODE_PORT_CANDIDATE_SET_DP_KEY} and no {@link yfiles.hierarchic.HierarchicLayoutCore#portConstraintOptimizer} is assigned. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.HierarchicLayoutCore} coreLayouter the given core layout algorithm instance + * @param graph the input graph + * @param coreLayouter the given core layout algorithm instance * @protected */ configureCoreLayout(graph:yfiles.layout.LayoutGraph,coreLayouter:yfiles.hierarchic.HierarchicLayoutCore):void; @@ -101836,7 +95621,7 @@ declare namespace system{ * This method may be overridden to create a new {@link yfiles.hierarchic.EdgeLayoutDescriptor} instance with different * configuration settings. *

    - * @returns {yfiles.hierarchic.EdgeLayoutDescriptor} a new {@link yfiles.hierarchic.EdgeLayoutDescriptor} instance + * @returns a new {@link } instance * @protected */ createEdgeLayoutDescriptor():yfiles.hierarchic.EdgeLayoutDescriptor; @@ -101849,7 +95634,7 @@ declare namespace system{ *

    * This factory method provides the initial {@link yfiles.hierarchic.HierarchicLayoutCore} instance. *

    - * @returns {yfiles.hierarchic.HierarchicLayoutCore} a new {@link yfiles.hierarchic.HierarchicLayoutCore} instance + * @returns a new {@link } instance * @protected */ createHierarchicLayoutCore():yfiles.hierarchic.HierarchicLayoutCore; @@ -101860,7 +95645,7 @@ declare namespace system{ * Use this factory and a {@link yfiles.algorithms.IDataProvider} that is registered to the graph using the {@link yfiles.hierarchic.HierarchicLayout#INCREMENTAL_HINTS_DP_KEY} * key to associate appropriate hints with the graph elements that should be laid out incrementally by the algorithm. *

    - * @returns {yfiles.hierarchic.IIncrementalHintsFactory} a new {@link yfiles.hierarchic.IIncrementalHintsFactory} instance + * @returns a new {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#createIncrementalHintsFactory * @see yfiles.hierarchic.HierarchicLayout#INCREMENTAL_HINTS_DP_KEY * @see yfiles.algorithms.Graph#addDataProvider @@ -101870,8 +95655,8 @@ declare namespace system{ createIncrementalHintsFactory():yfiles.hierarchic.IIncrementalHintsFactory; /** * Creates and registers an incremental layer constraint factory for an {@link yfiles.graph.IGraph}. - * @param {yfiles.graph.IGraph} graph The graph for which the factory is created - * @returns {yfiles.hierarchic.ILayerConstraintFactory} the sequence constraint factory + * @param graph The graph for which the factory is created + * @returns the sequence constraint factory */ createLayerConstraintFactory(graph:yfiles.graph.IGraph):yfiles.hierarchic.ILayerConstraintFactory; /** @@ -101887,8 +95672,8 @@ declare namespace system{ * you must bind the returned instance to the graph, see {@link yfiles.hierarchic.HierarchicLayout#LAYER_CONSTRAINTS_MEMENTO_DP_KEY} * and {@link yfiles.hierarchic.ILayerConstraintFactory#memento}. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.hierarchic.ILayerConstraintFactory} a new {@link yfiles.hierarchic.ILayerConstraintFactory} instance + * @param graph the input graph + * @returns a new {@link } instance */ createLayerConstraintFactory(graph:yfiles.algorithms.Graph):yfiles.hierarchic.ILayerConstraintFactory; /** @@ -101898,14 +95683,14 @@ declare namespace system{ * This method may be overridden to create a new {@link yfiles.hierarchic.NodeLayoutDescriptor} instance with different * configuration settings. *

    - * @returns {yfiles.hierarchic.NodeLayoutDescriptor} a new {@link yfiles.hierarchic.NodeLayoutDescriptor} instance + * @returns a new {@link } instance * @protected */ createNodeLayoutDescriptor():yfiles.hierarchic.NodeLayoutDescriptor; /** * Creates and registers a sequencer constraint factory for an {@link yfiles.graph.IGraph}. - * @param {yfiles.graph.IGraph} graph The graph. - * @returns {yfiles.hierarchic.ISequenceConstraintFactory} the sequence constraint factory + * @param graph The graph. + * @returns the sequence constraint factory */ createSequenceConstraintFactory(graph:yfiles.graph.IGraph):yfiles.hierarchic.ISequenceConstraintFactory; /** @@ -101916,8 +95701,8 @@ declare namespace system{ * order (sequence) has to support constraints. Both, {@link yfiles.hierarchic.DefaultLayerSequencer DefaultLayerSequencer} and the incremental sequencer used internally support * sequence constraints. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.hierarchic.ISequenceConstraintFactory} a {@link yfiles.hierarchic.ISequenceConstraintFactory} instance + * @param graph the input graph + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayout#fromScratchSequencer * @see yfiles.hierarchic.HierarchicLayout#fixedElementsSequencer */ @@ -101933,8 +95718,8 @@ declare namespace system{ * This implementation will remove the {@link yfiles.hierarchic.PortCandidateOptimizer} that was created in case a {@link yfiles.algorithms.IDataProvider} * is registered with {@link yfiles.layout.PortCandidateSet#NODE_PORT_CANDIDATE_SET_DP_KEY} and no {@link yfiles.hierarchic.HierarchicLayoutCore#portConstraintOptimizer} was initially assigned. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.HierarchicLayoutCore} coreLayouter the given core layout algorithm instance + * @param graph the input graph + * @param coreLayouter the given core layout algorithm instance * @protected */ disposeCoreLayout(graph:yfiles.layout.LayoutGraph,coreLayouter:yfiles.hierarchic.HierarchicLayoutCore):void; @@ -101943,12 +95728,12 @@ declare namespace system{ *

    * It may be overridden in order to configure a different mirror mask. *

    - * @returns {yfiles.layout.MirrorModes} the mirror mask + * @returns the mirror mask * @protected */ getMirrorMode():yfiles.layout.MirrorModes; /** - * Data provider key for specifying the directedness of edges. + * Data provider key for specifying the directedness of edges *

    * Generally, the hierarchic layout algorithm assigns nodes to layers such that most of the edges point in the * {@link yfiles.layout.MultiStageLayout#layoutOrientation main layout direction}. The directedness of an edge specifies whether it should comply with this strategy. More @@ -101963,7 +95748,7 @@ declare namespace system{ */ static EDGE_DIRECTEDNESS_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for defining the priority of critical edges. + * Data provider key for defining the priority of critical edges *

    * Critical edges highlight different edge paths that are relevant for a user. The layouter tries to vertically align each * node pair that is connected by a critical edge. Conflicts between different critical edges are always resolved in favor @@ -101975,7 +95760,7 @@ declare namespace system{ */ static CRITICAL_EDGE_PRIORITY_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for specifying the thickness of the edges. + * Data provider key for specifying the thickness of the edges *

    * The specified non-negative thickness is considered when calculating minimum distances so that there are no overlaps * between edges and other graph elements. By default, each edge has thickness 0. @@ -101986,7 +95771,7 @@ declare namespace system{ */ static EDGE_THICKNESS_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for specifying incremental hints. + * Data provider key for specifying incremental hints *

    * Incremental hints are created using an {@link yfiles.hierarchic.HierarchicLayout#createIncrementalHintsFactory incremental hints factory}. *

    @@ -101998,7 +95783,7 @@ declare namespace system{ */ static INCREMENTAL_HINTS_DP_KEY:yfiles.algorithms.GraphObjectDpKey; /** - * Data acceptor key for publishing the layer IDs for all nodes in the graph. + * Data acceptor key for publishing the layer IDs for all nodes in the graph * @see yfiles.hierarchic.HierarchicLayoutCore#LAYER_INDEX_DP_KEY * @const * @static @@ -102006,7 +95791,7 @@ declare namespace system{ */ static LAYER_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data acceptor key for publishing the index inside their layer for all nodes in the graph. + * Data acceptor key for publishing the index inside their layer for all nodes in the graph * @see yfiles.hierarchic.HierarchicLayoutCore#SEQUENCE_INDEX_DP_KEY * @const * @static @@ -102014,7 +95799,7 @@ declare namespace system{ */ static SEQUENCE_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for defining swimlanes for the nodes. + * Data provider key for defining swimlanes for the nodes *

    * The layout algorithm will arrange nodes in swimlanes according to the registered descriptors. *

    @@ -102029,7 +95814,7 @@ declare namespace system{ */ static SWIMLANE_DESCRIPTOR_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for associating an alternative bounds with the collapsed/expanded group. + * Data provider key for associating an alternative bounds with the collapsed/expanded group *

    * When running in {@link yfiles.hierarchic.LayoutMode#INCREMENTAL incremental} * {@link yfiles.hierarchic.HierarchicLayout#layoutMode layout mode}, the alternative bounds of the collapsed/expanded group will be used during the layering and sequencing @@ -102042,7 +95827,7 @@ declare namespace system{ */ static ALTERNATIVE_GROUP_BOUNDS_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for associating alternative paths for edges connecting to groups, group content or folder nodes. + * Data provider key for associating alternative paths for edges connecting to groups, group content or folder nodes *

    * When running in {@link yfiles.hierarchic.LayoutMode#INCREMENTAL incremental} * {@link yfiles.hierarchic.HierarchicLayout#layoutMode layout mode}, the alternative edge paths are considered during the routing of fixed (i.e., non-incremental) edges. @@ -102069,7 +95854,7 @@ declare namespace system{ */ static ALTERNATIVE_EDGE_PATH_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for marking folder nodes. + * Data provider key for marking folder nodes *

    * When using recursive edge styles in incremental mode, edges will also start at the bottom and end at the top of marked * folder nodes. This will keep the edge routes more stable since the connection sides won't change. @@ -102509,7 +96294,7 @@ declare namespace system{ * @see yfiles.hierarchic.IPortAllocator * @see yfiles.hierarchic.IDrawingDistanceCalculator * @see yfiles.hierarchic.INodePlacer - * @class yfiles.hierarchic.HierarchicLayoutCore + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface HierarchicLayoutCore extends yfiles.layout.MultiStageLayout{} @@ -102521,7 +96306,6 @@ declare namespace system{ * @see yfiles.hierarchic.HierarchicLayoutCore#createSequencer * @see yfiles.hierarchic.HierarchicLayoutCore#createDrawingDistanceCalculator * @see yfiles.hierarchic.HierarchicLayoutCore#createNodePlacer - * @constructor */ constructor(); /** @@ -102531,7 +96315,7 @@ declare namespace system{ * The default implementation returns a {@link yfiles.hierarchic.DefaultDrawingDistanceCalculator} instance. It may be overridden * to return a custom {@link yfiles.hierarchic.DefaultDrawingDistanceCalculator} instance. *

    - * @returns {yfiles.hierarchic.IDrawingDistanceCalculator} a {@link yfiles.hierarchic.IDrawingDistanceCalculator} instance + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#drawingDistanceCalculator * @protected */ @@ -102543,15 +96327,15 @@ declare namespace system{ * By default, a suitable private implementation of {@link yfiles.hierarchic.IEdgeReverser} is returned. It may be overridden to * return a custom {@link yfiles.hierarchic.IEdgeReverser} implementation. *

    - * @returns {yfiles.hierarchic.IEdgeReverser} an implementation + * @returns an implementation * @protected */ createEdgeReverser():yfiles.hierarchic.IEdgeReverser; /** * Factory method that is called during {@link yfiles.hierarchic.HierarchicLayoutCore#applyLayoutCore} and creates a {@link yfiles.layout.GroupingSupport} * instance in case of a grouped graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.layout.GroupingSupport} a {@link yfiles.layout.GroupingSupport} instance or null if the graph is not grouped + * @param graph the input graph + * @returns a {@link } instance or null if the graph is not grouped * @protected */ createGrouping(graph:yfiles.layout.LayoutGraph):yfiles.layout.GroupingSupport; @@ -102562,7 +96346,7 @@ declare namespace system{ * Incremental hints can be obtained from a {@link yfiles.algorithms.IDataProvider} that is registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#INCREMENTAL_HINTS_DP_KEY}. *

    - * @returns {yfiles.hierarchic.IIncrementalHintsFactory} an {@link yfiles.hierarchic.IIncrementalHintsFactory} instance + * @returns an {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#INCREMENTAL_HINTS_DP_KEY */ createIncrementalHintsFactory():yfiles.hierarchic.IIncrementalHintsFactory; @@ -102574,15 +96358,15 @@ declare namespace system{ * instance as argument is returned. This method may be overridden to return a custom {@link yfiles.hierarchic.ILayerer} * implementation. *

    - * @returns {yfiles.hierarchic.ILayerer} a {@link yfiles.hierarchic.ILayerer} implementation + * @returns a {@link } implementation * @protected */ createIncrementalLayerer():yfiles.hierarchic.ILayerer; /** * Callback method that is called during {@link yfiles.hierarchic.HierarchicLayoutCore#applyLayoutCore}, creates the {@link yfiles.hierarchic.INodeData} * and {@link yfiles.hierarchic.IEdgeData} instances and binds them to the elements using the given {@link yfiles.hierarchic.IItemFactory itemFactory}. - * @param {yfiles.layout.LayoutGraph} g the input graph - * @param {yfiles.hierarchic.IItemFactory} itemFactory the given {@link yfiles.hierarchic.IItemFactory} instance + * @param g the input graph + * @param itemFactory the given {@link } instance * @protected */ createItemData(g:yfiles.layout.LayoutGraph,itemFactory:yfiles.hierarchic.IItemFactory):void; @@ -102591,8 +96375,8 @@ declare namespace system{ *

    * By default, a suitable private implementation of {@link yfiles.hierarchic.ILayerConstraintFactory} is returned. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {yfiles.hierarchic.ILayerConstraintFactory} a {@link yfiles.hierarchic.ILayerConstraintFactory} instance + * @param graph the given graph + * @returns a {@link } instance */ createLayerConstraintFactory(graph:yfiles.algorithms.Graph):yfiles.hierarchic.ILayerConstraintFactory; /** @@ -102601,7 +96385,7 @@ declare namespace system{ * The default implementation returns a new MultiComponentLayerer(new WeightedLayerer()) instance. It may be overridden to * return a custom {@link yfiles.hierarchic.ILayerer} instance. *

    - * @returns {yfiles.hierarchic.ILayerer} a {@link yfiles.hierarchic.ILayerer} instance + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#layerer * @see yfiles.hierarchic.MultiComponentLayerer * @see yfiles.hierarchic.WeightedLayerer @@ -102615,8 +96399,8 @@ declare namespace system{ * By default, a suitable private implementation of {@link yfiles.hierarchic.ILayers} is returned. It may be overridden to return * custom implementations of the {@link yfiles.hierarchic.ILayers} interface. *

    - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the given {@link yfiles.hierarchic.ILayoutDataProvider} instance - * @returns {yfiles.hierarchic.ILayers} a {@link yfiles.hierarchic.ILayers} implementation + * @param ldp the given {@link } instance + * @returns a {@link } implementation * @protected */ createLayers(ldp:yfiles.hierarchic.ILayoutDataProvider):yfiles.hierarchic.ILayers; @@ -102626,7 +96410,7 @@ declare namespace system{ * The default implementation returns a {@link yfiles.hierarchic.SimplexNodePlacer} instance. It may be overridden to return a * custom {@link yfiles.hierarchic.INodePlacer} instance. *

    - * @returns {yfiles.hierarchic.INodePlacer} a {@link yfiles.hierarchic.INodePlacer} instance + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#nodePlacer * @see yfiles.hierarchic.SimplexNodePlacer * @protected @@ -102639,7 +96423,7 @@ declare namespace system{ * The default implementation returns a {@link yfiles.hierarchic.DefaultPortAllocator} instance. It may be overridden to return a * custom {@link yfiles.hierarchic.IPortAllocator} instance. *

    - * @returns {yfiles.hierarchic.IPortAllocator} a {@link yfiles.hierarchic.IPortAllocator} instance + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#portAllocator * @protected */ @@ -102651,7 +96435,7 @@ declare namespace system{ * The default implementation returns null. It may be overridden to return a custom {@link yfiles.hierarchic.IPortConstraintOptimizer} * instance. *

    - * @returns {yfiles.hierarchic.IPortConstraintOptimizer} null + * @returns null * @see yfiles.hierarchic.HierarchicLayoutCore#portConstraintOptimizer * @protected */ @@ -102661,8 +96445,8 @@ declare namespace system{ *

    * By default, a suitable private implementation of {@link yfiles.hierarchic.ISequenceConstraintFactory} is returned. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {yfiles.hierarchic.ISequenceConstraintFactory} a {@link yfiles.hierarchic.ISequenceConstraintFactory} instance + * @param graph the given graph + * @returns a {@link } instance */ createSequenceConstraintFactory(graph:yfiles.algorithms.Graph):yfiles.hierarchic.ISequenceConstraintFactory; /** @@ -102671,7 +96455,7 @@ declare namespace system{ * The default implementation returns a {@link yfiles.hierarchic.DefaultLayerSequencer} instance. It may be overridden to return a * custom {@link yfiles.hierarchic.ISequencer} instance. *

    - * @returns {yfiles.hierarchic.ISequencer} a {@link yfiles.hierarchic.ISequencer} instance + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#sequencer * @see yfiles.hierarchic.DefaultLayerSequencer * @protected @@ -102684,7 +96468,7 @@ declare namespace system{ * By default, a suitable private implementation of {@link yfiles.hierarchic.ISequencer} is returned. It may be overridden to * return custom implementations of the {@link yfiles.hierarchic.ISequencer} interface. *

    - * @returns {yfiles.hierarchic.ISequencer} a {@link yfiles.hierarchic.ISequencer} implementation + * @returns a {@link } implementation * @protected */ createSubgraphLayerSequencer():yfiles.hierarchic.ISequencer; @@ -102693,8 +96477,8 @@ declare namespace system{ *

    * Used for internal purposes. *

    - * @param {Object} key the key to a property - * @returns {Object} the associated value or null + * @param key the key to a property + * @returns the associated value or null * @see yfiles.hierarchic.HierarchicLayoutCore#setAlgorithmProperty */ getAlgorithmProperty(key:Object):Object; @@ -102705,8 +96489,8 @@ declare namespace system{ * The {@link yfiles.algorithms.IDataProvider} holding the information about the node layout is registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#EDGE_LAYOUT_DESCRIPTOR_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.IDataProvider} a {@link yfiles.algorithms.IDataProvider} instance or null + * @param graph the input graph + * @returns a {@link } instance or null * @see yfiles.hierarchic.EdgeLayoutDescriptor * @see yfiles.hierarchic.HierarchicLayoutCore#EDGE_LAYOUT_DESCRIPTOR_DP_KEY * @protected @@ -102719,8 +96503,8 @@ declare namespace system{ * The {@link yfiles.algorithms.IDataProvider} holding the information about incremental hints is registered with the graph using * key {@link yfiles.hierarchic.HierarchicLayoutCore#INCREMENTAL_HINTS_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.IDataProvider} a {@link yfiles.algorithms.IDataProvider} instance or null + * @param graph the input graph + * @returns a {@link } instance or null * @see yfiles.hierarchic.HierarchicLayoutCore#INCREMENTAL_HINTS_DP_KEY * @protected */ @@ -102732,8 +96516,8 @@ declare namespace system{ * The {@link yfiles.algorithms.IDataProvider} holding the information about the node layout is registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#NODE_LAYOUT_DESCRIPTOR_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.IDataProvider} a {@link yfiles.algorithms.IDataProvider} instance or null + * @param graph the input graph + * @returns a {@link } instance or null * @see yfiles.hierarchic.NodeLayoutDescriptor * @see yfiles.hierarchic.HierarchicLayoutCore#NODE_LAYOUT_DESCRIPTOR_DP_KEY * @protected @@ -102746,8 +96530,8 @@ declare namespace system{ * The {@link yfiles.algorithms.IDataProvider} holding the information about swimlanes is registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#SWIMLANE_DESCRIPTOR_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.IDataProvider} a {@link yfiles.algorithms.IDataProvider} instance or null + * @param graph the input graph + * @returns a {@link } instance or null * @see yfiles.hierarchic.SwimlaneDescriptor * @see yfiles.hierarchic.HierarchicLayoutCore#SWIMLANE_DESCRIPTOR_DP_KEY * @protected @@ -102759,8 +96543,8 @@ declare namespace system{ * The layering information is stored in a {@link yfiles.algorithms.IDataProvider} registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#LAYER_INDEX_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} implementation that provides the layering information + * @param graph the input graph + * @param layers the {@link } implementation that provides the layering information * @see yfiles.hierarchic.HierarchicLayoutCore#LAYER_INDEX_DP_KEY * @protected */ @@ -102771,9 +96555,9 @@ declare namespace system{ * The sequencing information is stored in a {@link yfiles.algorithms.IDataProvider} registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#SEQUENCE_INDEX_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} implementation that provides the layering information - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layers the {@link } implementation that provides the layering information + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances * @see yfiles.hierarchic.HierarchicLayoutCore#LAYER_INDEX_DP_KEY * @protected @@ -102785,8 +96569,8 @@ declare namespace system{ * By default, this method removes collinear bends from the graph. A bend point is considered to be collinear if it lies on * a line with its preceding and succeeding bend point. It may be overridden for a custom implementation of bend removal. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {number} bendReductionThreshold this method removes a bend, if its horizontal/vertical distance to the closest collinear bend is above this value + * @param graph the input graph + * @param bendReductionThreshold this method removes a bend, if its horizontal/vertical distance to the closest collinear bend is above this value * @protected */ reduceBendCount(graph:yfiles.layout.LayoutGraph,bendReductionThreshold:number):void; @@ -102796,7 +96580,7 @@ declare namespace system{ * By default, this method removes collinear bends from the graph. A bend point is considered to be collinear if it lies on * a line with its preceding and succeeding bend point. It may be overridden for a custom implementation of bend removal. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @protected */ reduceBendCount(graph:yfiles.layout.LayoutGraph):void; @@ -102805,8 +96589,8 @@ declare namespace system{ *

    * Used for internal purposes. *

    - * @param {Object} key the key to a property - * @param {Object} value the value to associate with the key + * @param key the key to a property + * @param value the value to associate with the key * @see yfiles.hierarchic.HierarchicLayoutCore#setAlgorithmProperty */ setAlgorithmProperty(key:Object,value:Object):void; @@ -102855,7 +96639,7 @@ declare namespace system{ */ static SWIMLANE_DESCRIPTOR_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data acceptor key for publishing the layer IDs for all nodes in the graph. + * Data acceptor key for publishing the layer IDs for all nodes in the graph * @see yfiles.hierarchic.HierarchicLayout#LAYER_INDEX_DP_KEY * @const * @static @@ -102863,7 +96647,7 @@ declare namespace system{ */ static LAYER_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data acceptor key for publishing the index inside their layer for all nodes in the graph. + * Data acceptor key for publishing the index inside their layer for all nodes in the graph * @see yfiles.hierarchic.HierarchicLayout#SEQUENCE_INDEX_DP_KEY * @const * @static @@ -102871,7 +96655,7 @@ declare namespace system{ */ static SEQUENCE_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for internal use only. + * Data provider key for internal use only * @const * @static * @type {yfiles.algorithms.NodeDpKey.} @@ -103007,9 +96791,9 @@ declare namespace system{ *

    * Implementations should release internally held data structures when they are not needed any more. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph that contains all elements that are used during the node placement - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} object that will be used during subsequent calls - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph that contains all elements that are used during the node placement + * @param layers the {@link } object that will be used during subsequent calls + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances * @see yfiles.hierarchic.IDrawingDistanceCalculator#initialize * @abstract @@ -103018,15 +96802,15 @@ declare namespace system{ /** * Main interface method called by {@link yfiles.hierarchic.INodePlacer} instances to determine the minimum distance between * {@link yfiles.algorithms.Node}s of same layer. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayer} layer the {@link yfiles.hierarchic.ILayer} object that will be used during subsequent calls - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layer the {@link } object that will be used during subsequent calls + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.algorithms.Node} left the left of the two {@link yfiles.algorithms.Node}s whose minimum distance is to be determined or null if only the left border - * of the right {@link yfiles.algorithms.Node} is of interest - * @param {yfiles.algorithms.Node} right the right of the two {@link yfiles.algorithms.Node}s whose minimum distance is to be determined or null if only the right border - * of the left {@link yfiles.algorithms.Node} is of interest - * @returns {number} the minimum distance between two {@link yfiles.algorithms.Node}s of the same layer + * @param left the left of the two {@link }s whose minimum distance is to be determined or null if only the left border + * of the right {@link } is of interest + * @param right the right of the two {@link }s whose minimum distance is to be determined or null if only the right border + * of the left {@link } is of interest + * @returns the minimum distance between two {@link }s of the same layer * @abstract */ getMinDistance(graph:yfiles.layout.LayoutGraph,layer:yfiles.hierarchic.ILayer,ldp:yfiles.hierarchic.ILayoutDataProvider,left:yfiles.algorithms.Node,right:yfiles.algorithms.Node):number; @@ -103035,9 +96819,9 @@ declare namespace system{ *

    * Implementations may cache lengthy calculations in the initialization phase. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph that contains all elements that are used during the node placement - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} object that will be used during subsequent calls - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph that contains all elements that are used during the node placement + * @param layers the {@link } object that will be used during subsequent calls + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances * @see yfiles.hierarchic.IDrawingDistanceCalculator#dispose * @abstract @@ -103261,8 +97045,8 @@ declare namespace system{ *

    * An edge is reversed if the layer index of its source node is greater than the layer index of its target node. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing layering information about the nodes and edges of the graph + * @param graph the input graph + * @param ldp the {@link } containing layering information about the nodes and edges of the graph * @see yfiles.hierarchic.ILayoutDataProvider#getNodeData * @see yfiles.hierarchic.INodeData#layer * @abstract @@ -103273,8 +97057,8 @@ declare namespace system{ *

    * It is called at the end of the {@link yfiles.hierarchic.HierarchicLayoutCore hierarchic layout algorithm}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph + * @param graph the input graph + * @param ldp the {@link } containing information about the nodes and edges of the graph * @abstract */ restoreEdgeDirections(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider):void; @@ -103283,9 +97067,9 @@ declare namespace system{ *

    * It may be called by the incremental parts of the {@link yfiles.hierarchic.HierarchicLayoutCore hierarchic layout algorithm}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing layering information about the nodes and edges of the graph - * @param {yfiles.algorithms.Edge} edge the edge to be reversed + * @param graph the input graph + * @param ldp the {@link } containing layering information about the nodes and edges of the graph + * @param edge the edge to be reversed * @see yfiles.hierarchic.ILayoutDataProvider#getNodeData * @see yfiles.hierarchic.INodeData#layer * @abstract @@ -103299,10 +97083,14 @@ declare namespace system{ /** * This interface provides factory methods for creating incremental hints for the hierarchic layout. *

    - * Incremental hints can be used for specifying that a subset of nodes (called incremental nodes) should be added to an - * existing graph layout. A layer hint specifies that both, a node's layer and its position within the layer should be - * determined by the algorithm. A sequence hint specifies that the algorithm should consider the current layer of a node - * while its position within the layer should be freely determined by the algorithm. + * Incremental hints can be used for specifying that a subset of nodes (called incremental nodes) should be added to an existing graph + * layout. A layer hint specifies that both, a node's layer and its position within the layer should be freely determined + * by the algorithm. A sequence hint specifies that the algorithm should consider the current layer of a node while its + * position within the layer should be freely determined by the algorithm. A node without any hint is called a fixed node. + *

    + *

    + * Sequence hints can also be specified for edges. These incremental edges are inserted in a suitable position within the layers + * crossed by the edges. For fixed edges the given input route is considered to calculate the position with the layers. *

    *

    * Information about incremental hints is provided by a {@link yfiles.algorithms.IDataProvider} registered with the graph with key @@ -103330,8 +97118,8 @@ declare namespace system{ * The positions of groups without incremental hints depend on the position of their descendants (i.e., the group is not * interpreted as fixed - it is simply ignored). *

    - * @param {Object} forItemId the group node to be inserted incrementally - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forItemId the group node to be inserted incrementally + * @returns an {@link } that can be interpreted as a hint by {@link } * @abstract */ createIncrementalGroupHint(forItemId:Object):Object; @@ -103344,8 +97132,8 @@ declare namespace system{ * Neighbors of this node may be also marked such that they are laid out incrementally. This makes it possible to * incrementally add whole subgraphs to the current layout. *

    - * @param {Object} forNodeId the node to be layered and sequenced incrementally - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forNodeId the node to be layered and sequenced incrementally + * @returns an {@link } that can be interpreted as a hint by {@link } * @abstract */ createLayerIncrementallyHint(forNodeId:Object):Object; @@ -103353,14 +97141,19 @@ declare namespace system{ * Creates a hint {@link Object} for a {@link yfiles.algorithms.Node} or {@link yfiles.algorithms.Edge} that should be inserted incrementally during the * sequencing phase. *

    - * This will prevent the layering from being changed. + * All nodes that are not incrementally inserted during the layering phase (see + * {@link yfiles.hierarchic.IIncrementalHintsFactory#createLayerIncrementallyHint}) stay in their current layer. More precisely, + * the default {@link yfiles.hierarchic.HierarchicLayout#fixedElementsLayerer} implementation is an instance of {@link yfiles.hierarchic.AsIsLayerer} that determines the layer of the "fixed" + * nodes by analyzing the current node coordinates. Note that for the other nodes, the layout algorithm may insert new + * layers in between the existing layers. *

    *

    - * The {@link yfiles.algorithms.Node} will be placed on an already existing {@link yfiles.hierarchic.ILayer layer} that is determined by the {@link yfiles.hierarchic.HierarchicLayoutCore#layerer} implementation, i.e. - * "from sketch". Adjacent edges will automatically be rerouted optimally. + * For edges associated with this hint (or which are incident to an incremental node), the algorithm automatically + * calculates a suitable sequencing (position within the layer). For edges between two non-incremental nodes that do not + * have a hint, the sequencing phase considers the current route. *

    - * @param {Object} forItemId the node or edge to be sequenced/inserted incrementally - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forItemId the node or edge to be sequenced/inserted incrementally + * @returns an {@link } that can be interpreted as a hint by {@link } * @abstract */ createSequenceIncrementallyHint(forItemId:Object):Object; @@ -103368,11 +97161,14 @@ declare namespace system{ * Creates a hint {@link Object} for a {@link yfiles.algorithms.Node} that should be inserted incrementally into the graph on its exact current * position. *

    - * The node will be placed in an already existing {@link yfiles.hierarchic.ILayer layer} that is determined by the {@link yfiles.hierarchic.HierarchicLayoutCore#layerer layerer} implementation. The position - * within its layer will be determined by its current position. + * As for nodes without hints, the algorithm uses the {@link yfiles.hierarchic.HierarchicLayout#fixedElementsLayerer} instance to determine the layer of such nodes and the {@link yfiles.hierarchic.HierarchicLayout#fixedElementsSequencer} instance to + * determine the position within the layer. By default, both implementations use the current coordinates of the nodes to + * derive the layer/position. However, for nodes marked with this hint, the algorithm should also preserve the exact + * coordinates while for nodes without hints the coordinates may be changed (these nodes only keep their relative + * positions). *

    - * @param {Object} forNodeId the node to be placed on its exact current position - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forNodeId the node to be placed on its exact current position + * @returns an {@link } that can be interpreted as a hint by {@link } * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactSequenceCoordinatesHint * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactLayerCoordinatesHint * @see yfiles.hierarchic.SimplexNodePlacer#exactPlacement @@ -103383,11 +97179,10 @@ declare namespace system{ * Creates a hint {@link Object} for a {@link yfiles.algorithms.Node} that should be inserted incrementally into the graph on its exact current * layer position. *

    - * The node will be placed in an already existing {@link yfiles.hierarchic.ILayer layer} that is determined by the {@link yfiles.hierarchic.HierarchicLayoutCore#layerer layerer} on the position that it occupies - * initially. The position within its layer will be determined by a {@link yfiles.hierarchic.INodePlacer} instance. + * The algorithm uses the {@link yfiles.hierarchic.HierarchicLayout#fixedElementsLayerer} instance to determine the layer of such nodes and the {@link yfiles.hierarchic.HierarchicLayout#fromScratchSequencer} instance to determine the sequencing. *

    - * @param {Object} forNodeId the node to be placed on its exact current layer position - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forNodeId the node to be placed on its exact current layer position + * @returns an {@link } that can be interpreted as a hint by {@link } * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactCoordinatesHint * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactSequenceCoordinatesHint * @see yfiles.hierarchic.SimplexNodePlacer#exactPlacement @@ -103398,12 +97193,10 @@ declare namespace system{ * Creates a hint {@link Object} for a {@link yfiles.algorithms.Node} that should be inserted incrementally into the graph on its exact current * sequence position. *

    - * The node will be placed in an already existing {@link yfiles.hierarchic.ILayer layer} that is determined by the {@link yfiles.hierarchic.HierarchicLayoutCore#layerer layerer} on the position that is - * considered best for its layer. The position within the sequence of its layer will be determined by its current - * coordinates. + * The algorithm uses the {@link yfiles.hierarchic.HierarchicLayout#fromScratchLayerer} instance to determine the layer of such nodes and the {@link yfiles.hierarchic.HierarchicLayout#fixedElementsSequencer} instance to determine the sequencing. *

    - * @param {Object} forNodeId the node to be placed on its exact current sequence position - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forNodeId the node to be placed on its exact current sequence position + * @returns an {@link } that can be interpreted as a hint by {@link } * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactCoordinatesHint * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactLayerCoordinatesHint * @see yfiles.hierarchic.SimplexNodePlacer#exactPlacement @@ -103426,17 +97219,17 @@ declare namespace system{ export interface IItemFactory extends Object{ /** * Converts a given {@link yfiles.algorithms.Node} to a label node. - * @param {yfiles.algorithms.Node} dummyNode the given {@link yfiles.algorithms.Node} to be converted + * @param dummyNode the given {@link } to be converted * @abstract */ convertToLabelNode(dummyNode:yfiles.algorithms.Node):void; /** * Creates a bend {@link yfiles.algorithms.Node} for the given {@link yfiles.algorithms.Edge} in the given {@link yfiles.hierarchic.ILayer} and * assigns it to the given {@link yfiles.hierarchic.SwimlaneDescriptor} instance. - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} instance - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {yfiles.hierarchic.SwimlaneDescriptor} [laneDescriptor=null] a given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.algorithms.Node} the new bend {@link yfiles.algorithms.Node} + * @param layer the given {@link } instance + * @param edge the given {@link } + * @param [laneDescriptor=null] a given {@link } instance + * @returns the new bend {@link } * @abstract */ createBendNode(layer:yfiles.hierarchic.ILayer,edge:yfiles.algorithms.Edge,laneDescriptor?:yfiles.hierarchic.SwimlaneDescriptor):yfiles.algorithms.Node; @@ -103446,290 +97239,292 @@ declare namespace system{ *

    * The bend is assigned to the given {@link yfiles.hierarchic.SwimlaneDescriptor} instance. *

    - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {yfiles.hierarchic.SwimlaneDescriptor} [laneDescriptor=null] the given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.hierarchic.INodeData} a {@link yfiles.hierarchic.INodeData} object for the given bend {@link yfiles.algorithms.Node} + * @param node the given {@link } + * @param edge the given {@link } + * @param [laneDescriptor=null] the given {@link } instance + * @returns a {@link } object for the given bend {@link } * @abstract */ createBendNodeData(node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge,laneDescriptor?:yfiles.hierarchic.SwimlaneDescriptor):yfiles.hierarchic.INodeData; /** * Creates a dummy {@link yfiles.algorithms.Node} that mimics a connector to a group {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} groupNode the given group {@link yfiles.algorithms.Node} - * @param {Object} groupId the given group ID - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} instance - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.algorithms.Node} the new {@link yfiles.algorithms.Node} + * @param groupNode the given group {@link } + * @param groupId the given group ID + * @param layer the given {@link } instance + * @param edge the given {@link } + * @returns the new {@link } * @abstract */ createConnectorProxyForGroup(groupNode:yfiles.algorithms.Node,groupId:Object,layer:yfiles.hierarchic.ILayer,edge:yfiles.algorithms.Edge):yfiles.algorithms.Node; /** * Creates a dummy node that mimics a connector to a group node from a descendant. - * @param {yfiles.algorithms.Node} groupNode the group node to which the edge is connected - * @param {Object} groupId the id of the group node - * @param {yfiles.hierarchic.ILayer} layer the layer to which the dummy node will be assigned - * @param {yfiles.algorithms.Edge} e the edge that connects to the dummy node - * @returns {yfiles.algorithms.Node} the dummy node + * @param groupNode the group node to which the edge is connected + * @param groupId the id of the group node + * @param layer the layer to which the dummy node will be assigned + * @param e the edge that connects to the dummy node + * @returns the dummy node * @abstract */ createContentConnectorProxyForGroup(groupNode:yfiles.algorithms.Node,groupId:Object,layer:yfiles.hierarchic.ILayer,e:yfiles.algorithms.Edge):yfiles.algorithms.Node; /** * Creates a spacer {@link yfiles.algorithms.Node} for the drawing phase using the given bounds in the given * {@link yfiles.hierarchic.ILayer}. - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} instance - * @param {yfiles.algorithms.Rectangle2D} size the given bounds - * @param {Array.} edges an array of {@link yfiles.algorithms.Edge}s - * @returns {yfiles.algorithms.Node} the new spacer {@link yfiles.algorithms.Node} + * @param layer the given {@link } instance + * @param size the given bounds + * @param edges an array of {@link }s + * @returns the new spacer {@link } * @abstract */ createDistanceNode(layer:yfiles.hierarchic.ILayer,size:yfiles.algorithms.Rectangle2D,edges:yfiles.algorithms.Edge[]):yfiles.algorithms.Node; /** * Creates a dummy {@link yfiles.algorithms.Edge} using the given data. - * @param {yfiles.algorithms.Node} newSource the source node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Node} newTarget the target node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Edge} oldEdge the old {@link yfiles.algorithms.Edge} from which to retrieve the data - * @param {boolean} sourceEnd true if the source node of the edge is referred, false otherwise - * @param {boolean} targetEnd true if the target node of the edge is referred, false otherwise - * @returns {yfiles.algorithms.Edge} a new dummy {@link yfiles.algorithms.Edge} + * @param newSource the source node of the {@link } + * @param newTarget the target node of the {@link } + * @param oldEdge the old {@link } from which to retrieve the data + * @param sourceEnd true if the source node of the edge is referred, false otherwise + * @param targetEnd true if the target node of the edge is referred, false otherwise + * @returns a new dummy {@link } * @abstract */ createDummyEdge(newSource:yfiles.algorithms.Node,newTarget:yfiles.algorithms.Node,oldEdge:yfiles.algorithms.Edge,sourceEnd:boolean,targetEnd:boolean):yfiles.algorithms.Edge; /** * Creates an edge group {@link yfiles.algorithms.Node} in the given {@link yfiles.hierarchic.ILayer}. - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} instance - * @param {Object} groupId the ID of the edge group - * @returns {yfiles.algorithms.Node} the new group {@link yfiles.algorithms.Node} + * @param layer the given {@link } instance + * @param groupId the ID of the edge group + * @returns the new group {@link } * @abstract */ createEdgeGroupNode(layer:yfiles.hierarchic.ILayer,groupId:Object):yfiles.algorithms.Node; /** * Creates a {@link yfiles.hierarchic.INodeData} object for an edge group {@link yfiles.algorithms.Node} and associates it with the * {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @param {Object} groupId the given group ID - * @param {boolean} source true if the edge group is referred to the source node, false otherwise - * @returns {yfiles.hierarchic.INodeData} a {@link yfiles.hierarchic.INodeData} object for the given edge group {@link yfiles.algorithms.Node} + * @param node the given {@link } + * @param groupId the given group ID + * @param source true if the edge group is referred to the source node, false otherwise + * @returns a {@link } object for the given edge group {@link } * @abstract */ createEdgeGroupNodeData(node:yfiles.algorithms.Node,groupId:Object,source:boolean):yfiles.hierarchic.INodeData; /** * Creates an {@link yfiles.algorithms.Edge} that connects two group border {@link yfiles.algorithms.Node}s. - * @param {yfiles.algorithms.Node} source the source {@link yfiles.algorithms.Node} - * @param {yfiles.algorithms.Node} target the target {@link yfiles.algorithms.Node} - * @returns {yfiles.algorithms.Edge} the new {@link yfiles.algorithms.Edge} connecting the two group {@link yfiles.algorithms.Node}s + * @param source the source {@link } + * @param target the target {@link } + * @returns the new {@link } connecting the two group {@link }s * @abstract */ createGroupBorderEdge(source:yfiles.algorithms.Node,target:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** * Creates a group boundary {@link yfiles.algorithms.Node} for a group node in the given {@link yfiles.hierarchic.ILayer}. - * @param {yfiles.algorithms.Node} groupNode the given group {@link yfiles.algorithms.Node} - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} - * @param {yfiles.hierarchic.NodeDataType} type one of {@link yfiles.hierarchic.NodeDataType#GROUP_BEGIN} or {@link yfiles.hierarchic.NodeDataType#GROUP_END} - * @returns {yfiles.algorithms.Node} the new group boundary {@link yfiles.algorithms.Node} + * @param groupNode the given group {@link } + * @param layer the given {@link } + * @param type one of {@link #GROUP_BEGIN} or {@link #GROUP_END} + * @returns the new group boundary {@link } * @abstract */ createGroupBorderNode(groupNode:yfiles.algorithms.Node,layer:yfiles.hierarchic.ILayer,type:yfiles.hierarchic.NodeDataType):yfiles.algorithms.Node; /** * Create a dummy {@link yfiles.algorithms.Node} for a group {@link yfiles.hierarchic.ILayer layer}. - * @returns {yfiles.algorithms.Node} a new dummy {@link yfiles.algorithms.Node} + * @returns a new dummy {@link } * @abstract */ createGroupLayerDummyNode():yfiles.algorithms.Node; /** * Creates a group node connector {@link yfiles.algorithms.Edge} between two group {@link yfiles.algorithms.Node}s. - * @param {yfiles.algorithms.Node} groupNode1 the first group node - * @param {yfiles.algorithms.Node} groupNode2 the first group node - * @param {yfiles.algorithms.Edge} representative the given representative {@link yfiles.algorithms.Edge} - * @returns {yfiles.algorithms.Edge} a new connector {@link yfiles.algorithms.Edge} between two group {@link yfiles.algorithms.Node}s + * @param groupNode1 the first group node + * @param groupNode2 the first group node + * @param representative the given representative {@link } + * @returns a new connector {@link } between two group {@link }s * @abstract */ createGroupNodeConnectorEdge(groupNode1:yfiles.algorithms.Node,groupNode2:yfiles.algorithms.Node,representative:yfiles.algorithms.Edge):yfiles.algorithms.Edge; /** * Creates an {@link yfiles.hierarchic.IEdgeData} object for a normal {@link yfiles.algorithms.Edge} and associates it with the edge. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object for the given {@link yfiles.algorithms.Edge} + * @param edge the given {@link } + * @returns an {@link } object for the given {@link } * @abstract */ createNormalEdgeData(edge:yfiles.algorithms.Edge):yfiles.hierarchic.IEdgeData; /** * Creates a {@link yfiles.hierarchic.INodeData} object for a normal {@link yfiles.algorithms.Node} and associates it with the * {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @returns {yfiles.hierarchic.INodeData} a {@link yfiles.hierarchic.INodeData} object for the given {@link yfiles.algorithms.Node} + * @param node the given {@link } + * @returns a {@link } object for the given {@link } * @abstract */ createNormalNodeData(node:yfiles.algorithms.Node):yfiles.hierarchic.INodeData; /** * Creates a proxy {@link yfiles.algorithms.Node} for an {@link yfiles.algorithms.Edge} during the drawing phase, changing the {@link yfiles.algorithms.Edge} * to end/start at the proxy and assigns it to a {@link yfiles.hierarchic.SwimlaneDescriptor} instance. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {boolean} source true if the node is the source node of the edge, false otherwise - * @param {yfiles.hierarchic.SwimlaneDescriptor} [laneDescriptor=null] a given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.algorithms.Node} the new proxy {@link yfiles.algorithms.Node} + * @param edge the given {@link } + * @param source true if the node is the source node of the edge, false otherwise + * @param [laneDescriptor=null] a given {@link } instance + * @returns the new proxy {@link } * @abstract */ createProxyNode(edge:yfiles.algorithms.Edge,source:boolean,laneDescriptor?:yfiles.hierarchic.SwimlaneDescriptor):yfiles.algorithms.Node; /** * Creates a {@link yfiles.hierarchic.INodeData} object for a proxy {@link yfiles.algorithms.Node} and associates it with the proxy node. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @param {yfiles.algorithms.Node} proxy the given proxy node - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.hierarchic.INodeData} a {@link yfiles.hierarchic.INodeData} object for the given proxy node + * @param node the given {@link } + * @param proxy the given proxy node + * @param edge the given {@link } + * @returns a {@link } object for the given proxy node * @abstract */ createProxyNodeData(node:yfiles.algorithms.Node,proxy:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge):yfiles.hierarchic.INodeData; /** * Creates a dummy edge that belongs to a recursive {@link yfiles.algorithms.Edge}. - * @param {yfiles.algorithms.Node} newSource the source node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Node} newTarget the target node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Edge} oldEdge the old {@link yfiles.algorithms.Edge} from which to retrieve the data - * @param {boolean} sourceEnd true if the source node of the edge is referred, false otherwise - * @param {boolean} targetEnd true if the target node of the edge is referred, false otherwise - * @returns {yfiles.algorithms.Edge} a new dummy {@link yfiles.algorithms.Edge} + * @param newSource the source node of the {@link } + * @param newTarget the target node of the {@link } + * @param oldEdge the old {@link } from which to retrieve the data + * @param sourceEnd true if the source node of the edge is referred, false otherwise + * @param targetEnd true if the target node of the edge is referred, false otherwise + * @returns a new dummy {@link } * @abstract */ createRecursiveDummyEdge(newSource:yfiles.algorithms.Node,newTarget:yfiles.algorithms.Node,oldEdge:yfiles.algorithms.Edge,sourceEnd:boolean,targetEnd:boolean):yfiles.algorithms.Edge; /** * Creates a dummy {@link yfiles.algorithms.Node} that represents a bend node of a recursive {@link yfiles.algorithms.Edge}. - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} to which the dummy {@link yfiles.algorithms.Node} is assigned - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} to which the dummy {@link yfiles.algorithms.Node} belongs - * @param {yfiles.hierarchic.SwimlaneDescriptor} laneDescriptor the given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.algorithms.Node} the new {@link yfiles.algorithms.Node} + * @param layer the given {@link } to which the dummy {@link } is assigned + * @param edge the given {@link } to which the dummy {@link } belongs + * @param laneDescriptor the given {@link } instance + * @returns the new {@link } * @abstract */ createRecursiveEdgeDummy(layer:yfiles.hierarchic.ILayer,edge:yfiles.algorithms.Edge,laneDescriptor:yfiles.hierarchic.SwimlaneDescriptor):yfiles.algorithms.Node; /** * Creates a {@link yfiles.hierarchic.INodeData} for a dummy {@link yfiles.algorithms.Node} of a recursive {@link yfiles.algorithms.Edge}. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} to which the dummy {@link yfiles.algorithms.Node} belongs - * @param {yfiles.hierarchic.SwimlaneDescriptor} laneDescriptor the given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.hierarchic.INodeData} the new {@link yfiles.hierarchic.INodeData} instance + * @param node the given {@link } + * @param edge the given {@link } to which the dummy {@link } belongs + * @param laneDescriptor the given {@link } instance + * @returns the new {@link } instance * @abstract */ createRecursiveEdgeNodeData(node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge,laneDescriptor:yfiles.hierarchic.SwimlaneDescriptor):yfiles.hierarchic.INodeData; /** * Creates an {@link yfiles.hierarchic.IEdgeData} object for a same-layer recursive {@link yfiles.algorithms.Edge} and associates it with * the edge. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {yfiles.hierarchic.IEdgeData} originalEdgeData the {@link yfiles.hierarchic.IEdgeData} object of the original edge - * @param {boolean} isUpper true is the recursive edge is an upper same layer edge, false otherwise - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object for the recursive same-layer {@link yfiles.algorithms.Edge} + * @param edge the given {@link } + * @param originalEdgeData the {@link } object of the original edge + * @param isUpper true is the recursive edge is an upper same layer edge, false otherwise + * @returns an {@link } object for the recursive same-layer {@link } * @abstract */ createRecursiveSameLayerEdgeData(edge:yfiles.algorithms.Edge,originalEdgeData:yfiles.hierarchic.IEdgeData,isUpper:boolean):yfiles.hierarchic.IEdgeData; /** * Creates a redirected {@link yfiles.algorithms.Edge} to replace an {@link yfiles.algorithms.Edge} connected to a group * {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} newSource the source node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Node} newTarget the target node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Edge} groupEdge the given group {@link yfiles.algorithms.Edge} - * @returns {yfiles.algorithms.Edge} a new redirected {@link yfiles.algorithms.Edge} + * @param newSource the source node of the {@link } + * @param newTarget the target node of the {@link } + * @param groupEdge the given group {@link } + * @returns a new redirected {@link } * @abstract */ createRedirectedGroupEdge(newSource:yfiles.algorithms.Node,newTarget:yfiles.algorithms.Node,groupEdge:yfiles.algorithms.Edge):yfiles.algorithms.Edge; /** * Creates a reversed dummy {@link yfiles.algorithms.Edge} using the given data. - * @param {yfiles.algorithms.Node} newSource the source node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Node} newTarget the target node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Edge} oldEdge the old {@link yfiles.algorithms.Edge} from which to retrieve the data - * @param {boolean} sourceEnd true if the source node of the edge is referred, false otherwise - * @param {boolean} targetEnd true if the target node of the edge is referred, false otherwise - * @returns {yfiles.algorithms.Edge} a new reversed dummy {@link yfiles.algorithms.Edge} + * @param newSource the source node of the {@link } + * @param newTarget the target node of the {@link } + * @param oldEdge the old {@link } from which to retrieve the data + * @param sourceEnd true if the source node of the edge is referred, false otherwise + * @param targetEnd true if the target node of the edge is referred, false otherwise + * @returns a new reversed dummy {@link } * @abstract */ createReverseDummyEdge(newSource:yfiles.algorithms.Node,newTarget:yfiles.algorithms.Node,oldEdge:yfiles.algorithms.Edge,sourceEnd:boolean,targetEnd:boolean):yfiles.algorithms.Edge; /** * Creates an {@link yfiles.hierarchic.IEdgeData} object for a same-layer {@link yfiles.algorithms.Edge} and associates it with the edge. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object for the same-layer {@link yfiles.algorithms.Edge} + * @param edge the given {@link } + * @returns an {@link } object for the same-layer {@link } * @abstract */ createSameLayerEdgeData(edge:yfiles.algorithms.Edge):yfiles.hierarchic.IEdgeData; /** * Creates a same-layer {@link yfiles.algorithms.Edge} proxy connecting a newly created proxy {@link yfiles.algorithms.Node} and a given * proxy {@link yfiles.algorithms.Node} in the given {@link yfiles.hierarchic.ILayer}. - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Node} toProxy the given proxy {@link yfiles.algorithms.Node} - * @returns {yfiles.algorithms.Edge} a new redefined same-layer {@link yfiles.algorithms.Edge} + * @param layer the given {@link } + * @param edge the given {@link } + * @param toProxy the given proxy {@link } + * @returns a new redefined same-layer {@link } * @abstract */ createSameLayerProxy(layer:yfiles.hierarchic.ILayer,edge:yfiles.algorithms.Edge,toProxy:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** * Creates a proxy {@link yfiles.algorithms.Node} for a same-layer {@link yfiles.algorithms.Edge} during the drawing phase that ends at the * side of a node. - * @param {yfiles.hierarchic.ILayer} inLayer the given {@link yfiles.hierarchic.ILayer} instance - * @param {yfiles.algorithms.Node} forNode the given {@link yfiles.algorithms.Node} - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {yfiles.hierarchic.SwimlaneDescriptor} [sld=null] a given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.algorithms.Node} the new proxy {@link yfiles.algorithms.Node} + * @param inLayer the given {@link } instance + * @param forNode the given {@link } + * @param edge the given {@link } + * @param [sld=null] a given {@link } instance + * @returns the new proxy {@link } * @abstract */ createSameLayerSideProxy(inLayer:yfiles.hierarchic.ILayer,forNode:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge,sld?:yfiles.hierarchic.SwimlaneDescriptor):yfiles.algorithms.Node; /** * Creates a same-layer switch proxy {@link yfiles.algorithms.Node} (switching between two same-layer * {@link yfiles.algorithms.Edge}s on two different sides of the layer). - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.algorithms.Node} the new same-layer switch proxy {@link yfiles.algorithms.Node} + * @param layer the given {@link } + * @param edge the given {@link } + * @returns the new same-layer switch proxy {@link } * @abstract */ createSameLayerSwitchProxy(layer:yfiles.hierarchic.ILayer,edge:yfiles.algorithms.Edge):yfiles.algorithms.Node; /** * Creates an {@link yfiles.hierarchic.IEdgeData} object for a self-loop {@link yfiles.algorithms.Edge} and associates it with the edge. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object for a self-loop {@link yfiles.algorithms.Edge} + * @param edge the given {@link } + * @returns an {@link } object for a self-loop {@link } * @abstract */ createSelfLoopEdgeData(edge:yfiles.algorithms.Edge):yfiles.hierarchic.IEdgeData; /** * Destroys a spacer {@link yfiles.algorithms.Node} for the drawing phase created using * {@link yfiles.hierarchic.IItemFactory#createDistanceNode}. - * @param {yfiles.algorithms.Node} distanceNode the {@link yfiles.algorithms.Node} to be destroyed + * @param distanceNode the {@link } to be destroyed * @abstract */ destroyDistanceNode(distanceNode:yfiles.algorithms.Node):void; /** * Removes the given layer for proxies at groups to handle direct group content connector edges between a node in the * first/last layer of the group node and the groups border. - * @param {yfiles.hierarchic.ILayer} layer the layer to destroy - * @param {boolean} useInEdges whether the incoming edges should be used as the resulting edges + * @param layer the layer to destroy + * @param useInEdges whether the incoming edges should be used as the resulting edges * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting * @abstract */ destroyGroupConnectorLayer(layer:yfiles.hierarchic.ILayer,useInEdges:boolean):void; /** * Destroys a previously created label layer - * @param {yfiles.hierarchic.ILayer} layer the layer to destroy - * @param {boolean} useInEdges whether the incoming edges should be used as the resulting edges + * @param layer the layer to destroy + * @param useInEdges whether the incoming edges should be used as the resulting edges * @abstract */ destroyLabelNodeLayer(layer:yfiles.hierarchic.ILayer,useInEdges:boolean):void; /** - * Destroys a proxy {@link yfiles.algorithms.Node} created using CreateProxyNode for the drawing phase. - * @param {yfiles.algorithms.Node} proxyNode the proxy {@link yfiles.algorithms.Node} to be destroyed - * @returns {yfiles.algorithms.Edge} + * Destroys a proxy {@link yfiles.algorithms.Node} created using {@link yfiles.hierarchic.IItemFactory#createProxyNode} for the drawing + * phase. + * @param proxyNode the proxy {@link } to be destroyed + * @returns * @abstract */ destroyProxyNode(proxyNode:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** * Destroys a same-layer {@link yfiles.algorithms.Edge} proxy created using {@link yfiles.hierarchic.IItemFactory#createSameLayerProxy}. - * @param {yfiles.algorithms.Edge} edge the {@link yfiles.algorithms.Edge} whose proxy will be destroyed - * @returns {yfiles.algorithms.Edge} the redefined {@link yfiles.algorithms.Edge} after the removal of the proxy {@link yfiles.algorithms.Node} + * @param edge the {@link } whose proxy will be destroyed + * @returns the redefined {@link } after the removal of the proxy {@link } * @abstract */ destroySameLayerProxy(edge:yfiles.algorithms.Edge):yfiles.algorithms.Edge; /** - * Destroys a proxy {@link yfiles.algorithms.Node} created using CreateProxyNode for the drawing phase. - * @param {yfiles.algorithms.Node} proxyNode the proxy {@link yfiles.algorithms.Node} to be destroyed + * Destroys a proxy {@link yfiles.algorithms.Node} created using {@link yfiles.hierarchic.IItemFactory#createProxyNode} for the drawing + * phase. + * @param proxyNode the proxy {@link } to be destroyed * @abstract */ destroySameLayerSideProxy(proxyNode:yfiles.algorithms.Node):void; /** * Destroys a same-layer switch proxy {@link yfiles.algorithms.Node} created using * {@link yfiles.hierarchic.IItemFactory#createSameLayerSwitchProxy}. - * @param {yfiles.algorithms.Node} node the {@link yfiles.algorithms.Node} to be destroyed - * @returns {yfiles.algorithms.Edge} the redefined {@link yfiles.algorithms.Edge} after the removal of the same-layer switch proxy {@link yfiles.algorithms.Node} + * @param node the {@link } to be destroyed + * @returns the redefined {@link } after the removal of the same-layer switch proxy {@link } * @abstract */ destroySameLayerSwitchProxy(node:yfiles.algorithms.Node):yfiles.algorithms.Edge; @@ -103737,81 +97532,81 @@ declare namespace system{ * Inserts a same-layer {@link yfiles.algorithms.Edge} or an {@link yfiles.algorithms.Edge} that may span multiple layers into the data * structure and returns the resulting list of * {@link yfiles.algorithms.Edge}s that has been created if this edge spans multiple layers. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.algorithms.EdgeList} the resulting list of {@link yfiles.algorithms.Edge}s that has been created if this edge spans multiple layers + * @param edge the given {@link } + * @returns the resulting list of {@link }s that has been created if this edge spans multiple layers * @abstract */ insertEdge(edge:yfiles.algorithms.Edge):yfiles.algorithms.EdgeList; /** * Inserts a layer for proxies at groups to handle direct group content connector edges between a node in the first/last * layer of the group node and the groups border. - * @param {boolean} top true if this layer is placed above a group nodes, false if placed below - * @param {number} index the index where the layer is inserted - * @returns {yfiles.hierarchic.ILayer} the new layer + * @param top true if this layer is placed above a group nodes, false if placed below + * @param index the index where the layer is inserted + * @returns the new layer * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting * @abstract */ insertGroupConnectorLayer(top:boolean,index:number):yfiles.hierarchic.ILayer; /** * Inserts a {@link yfiles.hierarchic.ILayer layer} for group {@link yfiles.algorithms.Node}s. - * @param {boolean} source true if the group refers to the source node of an edge, false otherwise - * @param {number} index the index at which the specified {@link yfiles.hierarchic.ILayer layer} is to be inserted - * @returns {yfiles.hierarchic.ILayer} a {@link yfiles.hierarchic.ILayer layer} instance + * @param source true if the group refers to the source node of an edge, false otherwise + * @param index the index at which the specified {@link layer} is to be inserted + * @returns a {@link layer} instance * @abstract */ insertGroupNodeLayer(source:boolean,index:number):yfiles.hierarchic.ILayer; /** * Inserts a {@link yfiles.hierarchic.ILayer} for labels. - * @param {boolean} source true if the source node of the edge, false otherwise - * @param {number} index the index at which the specified {@link yfiles.hierarchic.ILayer} is to be inserted - * @returns {yfiles.hierarchic.ILayer} a {@link yfiles.hierarchic.ILayer layer} instance + * @param source true if the source node of the edge, false otherwise + * @param index the index at which the specified {@link } is to be inserted + * @returns a {@link layer} instance * @abstract */ insertLabelNodeLayer(source:boolean,index:number):yfiles.hierarchic.ILayer; /** * Registers an {@link yfiles.algorithms.Edge} as a same-layer {@link yfiles.algorithms.Edge} appropriately into all data structures. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} to be registered + * @param edge the given {@link } to be registered * @abstract */ registerSameLayerEdge(edge:yfiles.algorithms.Edge):void; /** * Converts a same-layer {@link yfiles.algorithms.Edge} to an {@link yfiles.algorithms.Edge} of type * {@link yfiles.hierarchic.EdgeDataType#DIRECT_SAME_LAYER_EDGE}. - * @param {yfiles.algorithms.Edge} sameLayerEdge the given same-layer {@link yfiles.algorithms.Edge} + * @param sameLayerEdge the given same-layer {@link } * @abstract */ setDirectlyConnectSameLayerEdge(sameLayerEdge:yfiles.algorithms.Edge):void; /** * Specifies an edge group constraint for an {@link yfiles.algorithms.Edge} and assigns it to an {@link yfiles.hierarchic.IEdgeData} * object. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {Object} sgId the ID of the edge group at the source node - * @param {Object} tgId the ID of the edge group at the target node - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object + * @param edge the given {@link } + * @param sgId the ID of the edge group at the source node + * @param tgId the ID of the edge group at the target node + * @returns an {@link } object * @abstract */ setTemporaryEdgeGroups(edge:yfiles.algorithms.Edge,sgId:Object,tgId:Object):yfiles.hierarchic.IEdgeData; /** * Specifies the thickness for an {@link yfiles.algorithms.Edge} and defines it in an {@link yfiles.hierarchic.IEdgeData} object. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {number} thickness the new edge thickness - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object with an adjusted {@link yfiles.hierarchic.EdgeLayoutDescriptor} + * @param edge the given {@link } + * @param thickness the new edge thickness + * @returns an {@link } object with an adjusted {@link } * @abstract */ setTemporaryEdgeThickness(edge:yfiles.algorithms.Edge,thickness:number):yfiles.hierarchic.IEdgeData; /** * Specifies a port constraint for an {@link yfiles.algorithms.Edge} at the given side and assigns it to an {@link yfiles.hierarchic.IEdgeData} * object. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {boolean} source true of the port constraint is defined on the source node of the {@link yfiles.algorithms.Edge}, false otherwise - * @param {yfiles.layout.PortConstraint} pc the given {@link yfiles.layout.PortConstraint} instance - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object + * @param edge the given {@link } + * @param source true of the port constraint is defined on the source node of the {@link }, false otherwise + * @param pc the given {@link } instance + * @returns an {@link } object * @abstract */ setTemporaryPortConstraint(edge:yfiles.algorithms.Edge,source:boolean,pc:yfiles.layout.PortConstraint):yfiles.hierarchic.IEdgeData; /** * Reverts a label node to the normal {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} labelNode the given label node to be converted + * @param labelNode the given label node to be converted * @abstract */ unconvertToLabelNode(labelNode:yfiles.algorithms.Node):void; @@ -103834,19 +97629,19 @@ declare namespace system{ export interface ILayer extends Object{ /** * Adds a newly created {@link yfiles.algorithms.Node} to this {@link yfiles.hierarchic.ILayer} instance. - * @param {yfiles.algorithms.Node} node the {@link yfiles.algorithms.Node} to be added + * @param node the {@link } to be added * @abstract */ add(node:yfiles.algorithms.Node):void; /** * Adds a same-layer {@link yfiles.algorithms.Edge} to this {@link yfiles.hierarchic.ILayer} instance. - * @param {yfiles.algorithms.Edge} edge the same-layer {@link yfiles.algorithms.Edge} to be added + * @param edge the same-layer {@link } to be added * @abstract */ addSameLayerEdge(edge:yfiles.algorithms.Edge):void; /** * Removes a {@link yfiles.algorithms.Node} from this {@link yfiles.hierarchic.ILayer} instance. - * @param {yfiles.algorithms.Node} node the {@link yfiles.algorithms.Node} to be removed + * @param node the {@link } to be removed * @abstract */ remove(node:yfiles.algorithms.Node):void; @@ -103858,7 +97653,7 @@ declare namespace system{ /** * Adjusts the order of the {@link yfiles.algorithms.Node}s of this {@link yfiles.hierarchic.ILayer} instance according to the given * order. - * @param {yfiles.algorithms.YList} list the given list to be used + * @param list the given list to be used * @abstract */ setNodeOrder(list:yfiles.algorithms.YList):void; @@ -103919,10 +97714,10 @@ declare namespace system{ * The state of the source {@link yfiles.hierarchic.ILayers} instance is discarded after this call and does not need to be updated * to reflect the changes. The target {@link yfiles.hierarchic.ILayers} instance must be updated accordingly. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph containing the nodes of source and target {@link yfiles.hierarchic.ILayers} instances - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying the layer indices - * @param {yfiles.hierarchic.ILayers} srcLayers the source {@link yfiles.hierarchic.ILayers} instance that will be merged into the target {@link yfiles.hierarchic.ILayers} instance - * @param {yfiles.hierarchic.ILayers} targetLayers the {@link yfiles.hierarchic.ILayers} instance that will be modified to contain the resulting layering + * @param graph the graph containing the nodes of source and target {@link } instances + * @param ldp the {@link } used for querying the layer indices + * @param srcLayers the source {@link } instance that will be merged into the target {@link } instance + * @param targetLayers the {@link } instance that will be modified to contain the resulting layering * @abstract */ merge(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,srcLayers:yfiles.hierarchic.ILayers,targetLayers:yfiles.hierarchic.ILayers):void; @@ -103952,9 +97747,9 @@ declare namespace system{ * Information about the nodes is provided by a {@link yfiles.hierarchic.ILayoutDataProvider}. However, positional information (see * {@link yfiles.hierarchic.INodeData#position} and {@link yfiles.hierarchic.INodeData#layer}) is not available during this phase. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for querying information about the nodes and edges * @see yfiles.hierarchic.ILayers#insert * @see yfiles.hierarchic.ILayer#add * @abstract @@ -103982,34 +97777,34 @@ declare namespace system{ /** * Creates a new and empty {@link yfiles.hierarchic.ILayers} instance that can be used on the same graph instance for temporary * results. - * @returns {yfiles.hierarchic.ILayers} a new and empty {@link yfiles.hierarchic.ILayers} instance + * @returns a new and empty {@link } instance * @abstract */ createInstance():yfiles.hierarchic.ILayers; /** * Returns the {@link yfiles.hierarchic.ILayer layer} at the specified position in this {@link yfiles.hierarchic.ILayers list of layers}. - * @param {number} i the zero-based index of the {@link yfiles.hierarchic.ILayer layer} to return - * @returns {yfiles.hierarchic.ILayer} the {@link yfiles.hierarchic.ILayer layer} at the specified position + * @param i the zero-based index of the {@link layer} to return + * @returns the {@link layer} at the specified position * @abstract */ getLayer(i:number):yfiles.hierarchic.ILayer; /** * Creates, inserts and returns a {@link yfiles.hierarchic.ILayer layer} of a given type associated with this {@link yfiles.hierarchic.ILayers list of layers}. - * @param {yfiles.hierarchic.LayerType} type one of the predefined layer types as defined in {@link yfiles.hierarchic.ILayer} interface - * @param {number} position the index at which the specified {@link yfiles.hierarchic.ILayer layer} is to be inserted - * @returns {yfiles.hierarchic.ILayer} a new {@link yfiles.hierarchic.ILayer} instance + * @param type one of the predefined layer types as defined in {@link } interface + * @param position the index at which the specified {@link layer} is to be inserted + * @returns a new {@link } instance * @abstract */ insert(type:yfiles.hierarchic.LayerType,position:number):yfiles.hierarchic.ILayer; /** * Removes the {@link yfiles.hierarchic.ILayer layer} at the specified position from this {@link yfiles.hierarchic.ILayers list of layers}. - * @param {number} index the zero-based index of the {@link yfiles.hierarchic.ILayer layer} to remove + * @param index the zero-based index of the {@link layer} to remove * @abstract */ remove(index:number):void; /** * Returns the number of {@link yfiles.hierarchic.ILayer layers} associated with this {@link yfiles.hierarchic.ILayers} instance. - * @returns {number} the number of layers of this {@link yfiles.hierarchic.ILayers} instance + * @returns the number of layers of this {@link } instance * @abstract */ size():number; @@ -104031,15 +97826,15 @@ declare namespace system{ export interface ILayoutDataProvider extends Object{ /** * Returns the {@link yfiles.hierarchic.IEdgeData} instance associated with the given {@link yfiles.algorithms.Edge}. - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {yfiles.hierarchic.IEdgeData} the {@link yfiles.hierarchic.IEdgeData} instance associated with the edge + * @param edge the given edge + * @returns the {@link } instance associated with the edge * @abstract */ getEdgeData(edge:yfiles.algorithms.Edge):yfiles.hierarchic.IEdgeData; /** * Returns the {@link yfiles.hierarchic.INodeData} instance associated with the given {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} node the given node - * @returns {yfiles.hierarchic.INodeData} the {@link yfiles.hierarchic.INodeData} instance associated with the node + * @param node the given node + * @returns the {@link } instance associated with the node * @abstract */ getNodeData(node:yfiles.algorithms.Node):yfiles.hierarchic.INodeData; @@ -104078,9 +97873,9 @@ declare namespace system{ * Side value must be inside [0,3] interval, where 0 corresponds to the top side, 1 to the right side, 2 to the bottom side * and 3 to the left side. *

    - * @param {number} side an integer value from [0,3] interval - * @param {yfiles.layout.INodeLayout} nodeLayout the {@link yfiles.layout.INodeLayout} of the current node - * @returns {yfiles.algorithms.BorderLine} a {@link yfiles.algorithms.BorderLine} instance + * @param side an integer value from [0,3] interval + * @param nodeLayout the {@link } of the current node + * @returns a {@link } instance * @throws {Stubs.Exceptions.NotSupportedError} if this {@link yfiles.hierarchic.INodeData#type type} of node does not support node borders * @see yfiles.hierarchic.INodeData#getNormalizedBorderLine * @abstract @@ -104099,8 +97894,8 @@ declare namespace system{ * Side value must be inside [0,3] interval, where 0 corresponds to the top side, 1 to the right side, 2 to the bottom side * and 3 to the left side. *

    - * @param {number} side an integer value from [0,3] interval - * @returns {yfiles.algorithms.BorderLine} a {@link yfiles.algorithms.BorderLine} instance or null + * @param side an integer value from [0,3] interval + * @returns a {@link } instance or null * @see yfiles.hierarchic.INodeData#createBorderLine * @abstract */ @@ -104108,7 +97903,7 @@ declare namespace system{ /** * Returns the number of same-layer edges associated with the {@link yfiles.algorithms.Node} of this {@link yfiles.hierarchic.INodeData} * instance. - * @returns {number} the number of same-layer edges associated with the node + * @returns the number of same-layer edges associated with the node * @abstract */ sameLayerEdgeCount():number; @@ -104249,9 +98044,9 @@ declare namespace system{ * The distance between two layers will be adjusted later by the edge routing algorithm. This method is responsible for * assigning the relative positions of the nodes within each layer. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} layoutDataProvider the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the elements - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be calculated by this method + * @param graph the input graph + * @param layoutDataProvider the {@link } containing information about the elements + * @param layers the {@link } instance that will be calculated by this method * @abstract */ assignLayerCoordinates(graph:yfiles.layout.LayoutGraph,layoutDataProvider:yfiles.hierarchic.ILayoutDataProvider,layers:yfiles.hierarchic.ILayers):void; @@ -104261,10 +98056,10 @@ declare namespace system{ * The minimum distance between each pair of nodes of the graph is determined by a {@link yfiles.hierarchic.IDrawingDistanceCalculator} * instance. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} layoutDataProvider the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the elements - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be calculated by this method - * @param {yfiles.hierarchic.IDrawingDistanceCalculator} drawingDistanceCalculator the given {@link yfiles.hierarchic.IDrawingDistanceCalculator} instance + * @param graph the input graph + * @param layoutDataProvider the {@link } containing information about the elements + * @param layers the {@link } instance that will be calculated by this method + * @param drawingDistanceCalculator the given {@link } instance * @abstract */ assignSequenceCoordinates(graph:yfiles.layout.LayoutGraph,layoutDataProvider:yfiles.hierarchic.ILayoutDataProvider,layers:yfiles.hierarchic.ILayers,drawingDistanceCalculator:yfiles.hierarchic.IDrawingDistanceCalculator):void; @@ -104287,10 +98082,10 @@ declare namespace system{ *

    * This method is called by {@link yfiles.hierarchic.HierarchicLayoutCore} after the sequencing phase. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements in the layering - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing layering information about the nodes and edges of the graph - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used temporarily for modifying the graph instance + * @param graph the input graph + * @param layers the given {@link } instance containing the elements in the layering + * @param ldp the {@link } containing layering information about the nodes and edges of the graph + * @param itemFactory the {@link } used temporarily for modifying the graph instance * @abstract */ assignPorts(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; @@ -104311,20 +98106,20 @@ declare namespace system{ export interface IPortConstraintOptimizer extends Object{ /** * Assigns new temporary port constraints after the layering information has been determined. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the elements - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} to set the temporary port constraints with + * @param graph the input graph + * @param layers the given {@link } instance + * @param ldp the {@link } containing information about the elements + * @param itemFactory the {@link } to set the temporary port constraints with * @see yfiles.hierarchic.IItemFactory#setTemporaryPortConstraint * @abstract */ optimizeAfterLayering(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; /** * Assigns new temporary port constraints after the sequence of the nodes has been determined. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the elements - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} to set the temporary port constraints with + * @param graph the input graph + * @param layers the given {@link } instance + * @param ldp the {@link } containing information about the elements + * @param itemFactory the {@link } to set the temporary port constraints with * @see yfiles.hierarchic.IItemFactory#setTemporaryPortConstraint * @abstract */ @@ -104351,11 +98146,11 @@ declare namespace system{ * This method is called by {@link yfiles.hierarchic.HierarchicLayoutCore} during the second phase and finally writes back the * calculated sequence using the {@link yfiles.hierarchic.ILayer#setNodeOrder} method. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements in the layering - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layers the given {@link } instance containing the elements in the layering + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used temporarily for modifying the graph instance + * @param itemFactory the {@link } used temporarily for modifying the graph instance * @abstract */ sequenceNodeLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; @@ -104372,7 +98167,7 @@ declare namespace system{ * layered separately using the delegate {@link yfiles.hierarchic.ILayerer} instance. After that they will all be merged using the * specified {@link yfiles.hierarchic.ILayeredComponentsMerger} instance. *

    - * @class yfiles.hierarchic.MultiComponentLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface MultiComponentLayerer extends Object,yfiles.hierarchic.ILayerer{} @@ -104380,11 +98175,10 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.hierarchic.MultiComponentLayerer} using the given {@link yfiles.hierarchic.ILayeredComponentsMerger} * and {@link yfiles.collections.IComparer.} instances. - * @param {yfiles.hierarchic.ILayerer} singleComponentLayerer - * @param {yfiles.hierarchic.ILayeredComponentsMerger} merger - * @param {yfiles.collections.IComparer.} componentComparer + * @param singleComponentLayerer + * @param merger + * @param componentComparer * @throws {Stubs.Exceptions.ArgumentError} if the given layerer or merger is null - * @constructor */ constructor(singleComponentLayerer:yfiles.hierarchic.ILayerer,merger:yfiles.hierarchic.ILayeredComponentsMerger,componentComparer:yfiles.collections.IComparer); /** @@ -104393,16 +98187,15 @@ declare namespace system{ * A new instance of {@link yfiles.hierarchic.DefaultLayeredComponentsMerger} will be used as merger while no component {@link yfiles.collections.IComparer.} will be * used. *

    - * @param {yfiles.hierarchic.ILayerer} singleComponentLayerer + * @param singleComponentLayerer * @throws {Stubs.Exceptions.ArgumentError} if the given layerer is null - * @constructor */ constructor(singleComponentLayerer:yfiles.hierarchic.ILayerer); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp + * @param graph + * @param layers + * @param ldp */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -104414,8 +98207,8 @@ declare namespace system{ *

    * By default this method uses the {@link yfiles.hierarchic.MultiComponentLayerer#componentComparer ComponentComparator} to sort the list and has no effect if the instance is null. *

    - * @param {Array.} nodeLists the array of {@link yfiles.algorithms.NodeList}s each of which containing nodes that belong to the same component - * @param {yfiles.algorithms.IDataProvider} componentIndexProvider the {@link yfiles.algorithms.IDataProvider} that returns an object (the component index) for each node (this value can be either + * @param nodeLists the array of {@link }s each of which containing nodes that belong to the same component + * @param componentIndexProvider the {@link } that returns an object (the component index) for each node (this value can be either * integer or object) * @protected */ @@ -104453,13 +98246,12 @@ declare namespace system{ *

    * @see yfiles.hierarchic.HierarchicLayoutCore#NODE_LAYOUT_DESCRIPTOR_DP_KEY * @see yfiles.hierarchic.EdgeLayoutDescriptor - * @class yfiles.hierarchic.NodeLayoutDescriptor + * @class */ export interface NodeLayoutDescriptor extends Object{} export class NodeLayoutDescriptor { /** * Creates a new instance of a {@link yfiles.hierarchic.NodeLayoutDescriptor} with the default values. - * @constructor */ constructor(); /** @@ -104480,8 +98272,8 @@ declare namespace system{ *

    * A value of Double.POSITIVE_INFINITY results in all ports being centered at the side in one point. *

    - * @param {number} side the zero-based clockwise side index for top-to-bottom layouts (i.e., top is 0) - * @returns {number} the border gap ratio of a given side + * @param side the zero-based clockwise side index for top-to-bottom layouts (i.e., top is 0) + * @returns the border gap ratio of a given side * @see yfiles.hierarchic.NodeLayoutDescriptor#portBorderGapRatios * @see yfiles.hierarchic.NodeLayoutDescriptor#setPortBorderGapRatio */ @@ -104504,8 +98296,8 @@ declare namespace system{ *

    * A value of Double.POSITIVE_INFINITY results in all ports being centered at the side in one point. *

    - * @param {number} side the zero-based clockwise side index for top-to-bottom layouts (i.e., top is 0) - * @param {number} ratio the given ratio + * @param side the zero-based clockwise side index for top-to-bottom layouts (i.e., top is 0) + * @param ratio the given ratio * @throws {Stubs.Exceptions.ArgumentError} if the given ratio is negative * @see yfiles.hierarchic.NodeLayoutDescriptor#portBorderGapRatios */ @@ -104592,14 +98384,13 @@ declare namespace system{ *

    * @see yfiles.layout.PartitionGrid * @see yfiles.hierarchic.HierarchicLayout - * @class yfiles.hierarchic.PartitionGridLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface PartitionGridLayoutStage extends yfiles.layout.LayoutStageBase{} export class PartitionGridLayoutStage { /** * Creates a new instance of {@link yfiles.hierarchic.PartitionGridLayoutStage}. - * @constructor */ constructor(); static $class:yfiles.lang.Class; @@ -104620,20 +98411,19 @@ declare namespace system{ * @see yfiles.layout.PortCandidate#cost * @see yfiles.layout.PortCandidateSet#entries * @see yfiles.layout.PortCandidateSet#connectionCount - * @class yfiles.hierarchic.PortCandidateOptimizer + * @class * @extends {yfiles.hierarchic.PortConstraintOptimizerBase} */ export interface PortCandidateOptimizer extends yfiles.hierarchic.PortConstraintOptimizerBase{} export class PortCandidateOptimizer { /** * Creates a new instance of {@link yfiles.hierarchic.PortCandidateOptimizer} with the default settings. - * @constructor */ constructor(); /** * Returns the data provider that provides the port candidate sets for nodes. - * @param {yfiles.layout.LayoutGraph} graph The graph that stores the data provider - * @returns {yfiles.algorithms.IDataProvider} + * @param graph The graph that stores the data provider + * @returns * @protected */ getPortCandidateSetDataProvider(graph:yfiles.layout.LayoutGraph):yfiles.algorithms.IDataProvider; @@ -104678,26 +98468,25 @@ declare namespace system{ /** * This static class provides information about the same-layer structures created by class * {@link yfiles.hierarchic.PortConstraintOptimizerBase}. - * @class yfiles.hierarchic.PortConstraintOptimizerSameLayerData + * @class */ export interface PortConstraintOptimizerSameLayerData extends Object{} export class PortConstraintOptimizerSameLayerData { /** * Creates a new {@link yfiles.hierarchic.PortConstraintOptimizerSameLayerData} instance. - * @constructor */ constructor(); /** * Adds a given dummy {@link yfiles.algorithms.Node} to this {@link yfiles.hierarchic.PortConstraintOptimizerSameLayerData} instance and * associates it with the given original (same-layer) {@link yfiles.algorithms.Edge}. - * @param {yfiles.algorithms.Node} sameLayerDummy a dummy node - * @param {yfiles.algorithms.Edge} originalEdge the original (same-layer) edge + * @param sameLayerDummy a dummy node + * @param originalEdge the original (same-layer) edge */ addDummyNode(sameLayerDummy:yfiles.algorithms.Node,originalEdge:yfiles.algorithms.Edge):void; /** * Returns the original (same-layer) edge associated with the given dummy {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} sameLayerDummy a given dummy node - * @returns {yfiles.algorithms.Edge} the original (same-layer) edge associated with the given dummy node + * @param sameLayerDummy a given dummy node + * @returns the original (same-layer) edge associated with the given dummy node */ getOriginalEdge(sameLayerDummy:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** @@ -104721,7 +98510,7 @@ declare namespace system{ *
  • Invokes {@link yfiles.hierarchic.PortConstraintOptimizerBase#optimizeAfterSequencingForSingleNode the hook} in which the custom port assignment should be done.
  • *
  • Restores the original state of the layout graph by removing the temporary same-layer edges added in Step 1.
  • * - * @class yfiles.hierarchic.PortConstraintOptimizerBase + * @class * @implements {yfiles.hierarchic.IPortConstraintOptimizer} */ export interface PortConstraintOptimizerBase extends Object,yfiles.hierarchic.IPortConstraintOptimizer{} @@ -104729,17 +98518,16 @@ declare namespace system{ /** * Creates a new {@link yfiles.hierarchic.PortConstraintOptimizerBase} instance with default settings. * @protected - * @constructor */ constructor(); /** * Inserts a same-layer edge structure for each same-layer edge of the original graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance holding the layering information - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layers the given {@link } instance holding the layering information + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints - * @returns {yfiles.hierarchic.PortConstraintOptimizerSameLayerData} + * @param itemFactory the {@link factory} that sets the temporary port constraints + * @returns * @see yfiles.hierarchic.IItemFactory#setTemporaryPortConstraint * @protected */ @@ -104751,11 +98539,11 @@ declare namespace system{ * back-loops by assigning incoming edges to the south (i.e. bottom) side or outgoing edges to the north (i.e. top) side, * respectively. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance holding the layering information - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layers the given {@link } instance holding the layering information + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints + * @param itemFactory the {@link factory} that sets the temporary port constraints * @see yfiles.hierarchic.IItemFactory#setTemporaryPortConstraint * @abstract */ @@ -104767,11 +98555,11 @@ declare namespace system{ * invokes {@link yfiles.hierarchic.PortConstraintOptimizerBase#optimizeAfterSequencingForSingleNode the hook} in which the custom port assignment should be done, and finally {@link yfiles.hierarchic.PortConstraintOptimizerBase#removeSameLayerStructures restores the original state} of the * layout graph by removing the temporary edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance holding the layering information - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layers the given {@link } instance holding the layering information + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints + * @param itemFactory the {@link factory} that sets the temporary port constraints * @see yfiles.hierarchic.PortConstraintOptimizerBase#insertSameLayerStructures * @see yfiles.hierarchic.PortConstraintOptimizerBase#optimizeAfterSequencing * @see yfiles.hierarchic.PortConstraintOptimizerBase#removeSameLayerStructures @@ -104787,13 +98575,13 @@ declare namespace system{ * Incoming and outgoing edges are sorted using {@link yfiles.collections.IComparer.} instances which define the preferred ordering of the incoming and outgoing * edges from left to right. *

    - * @param {yfiles.collections.IComparer.} inEdgeOrder a given {@link yfiles.collections.IComparer.} instance for incoming edges - * @param {yfiles.collections.IComparer.} outEdgeOrder a given {@link yfiles.collections.IComparer.} instance for outgoing edges - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param inEdgeOrder a given {@link } instance for incoming edges + * @param outEdgeOrder a given {@link } instance for outgoing edges + * @param graph the input graph + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints - * @param {yfiles.hierarchic.ILayers} layers + * @param itemFactory the {@link factory} that sets the temporary port constraints + * @param layers * @see yfiles.hierarchic.PortConstraintOptimizerBase#optimizeAfterSequencing * @protected */ @@ -104808,13 +98596,13 @@ declare namespace system{ * Incoming and outgoing edges are sorted using {@link yfiles.collections.IComparer.} instances which define the preferred ordering of the incoming and outgoing * edges from left to right. *

    - * @param {yfiles.algorithms.Node} node the original node to set temporary port constraints - * @param {yfiles.collections.IComparer.} inEdgeOrder a given {@link yfiles.collections.IComparer.} instance for incoming edges - * @param {yfiles.collections.IComparer.} outEdgeOrder a given {@link yfiles.collections.IComparer.} instance for outgoing edges - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param node the original node to set temporary port constraints + * @param inEdgeOrder a given {@link } instance for incoming edges + * @param outEdgeOrder a given {@link } instance for outgoing edges + * @param graph the input graph + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints + * @param itemFactory the {@link factory} that sets the temporary port constraints * @see yfiles.hierarchic.PortConstraintOptimizerBase#optimizeAfterSequencing * @protected * @abstract @@ -104823,12 +98611,12 @@ declare namespace system{ /** * Removes the same-layer edge structure created using * {@link yfiles.hierarchic.PortConstraintOptimizerBase#insertSameLayerStructures}. - * @param {yfiles.hierarchic.PortConstraintOptimizerSameLayerData} sameLayerData a given {@link yfiles.hierarchic.PortConstraintOptimizerSameLayerData} instance holding the information about the same-layer + * @param sameLayerData a given {@link } instance holding the information about the same-layer * structures. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints + * @param itemFactory the {@link factory} that sets the temporary port constraints * @see yfiles.hierarchic.IItemFactory#setTemporaryPortConstraint * @protected */ @@ -104861,15 +98649,14 @@ declare namespace system{ * This class is used by {@link yfiles.hierarchic.EdgeLayoutDescriptor} to specify the routing style for different types of edges. * @see yfiles.hierarchic.EdgeLayoutDescriptor#routingStyle * @see yfiles.hierarchic.IEdgeData#type - * @class yfiles.hierarchic.RoutingStyle + * @class */ export interface RoutingStyle extends Object{} export class RoutingStyle { /** * Creates a new {@link yfiles.hierarchic.RoutingStyle} instance with the given routing style for each edge. - * @param {yfiles.hierarchic.EdgeRoutingStyle} routingStyle one of the predefined routing styles + * @param routingStyle one of the predefined routing styles * @throws {Stubs.Exceptions.ArgumentError} if an unknown routing style is given - * @constructor */ constructor(routingStyle:yfiles.hierarchic.EdgeRoutingStyle); /** @@ -104921,15 +98708,14 @@ declare namespace system{ *

    * It is used during the layout phase of {@link yfiles.hierarchic.HierarchicLayoutCore}, but can be used as a stand-alone tool. *

    - * @class yfiles.hierarchic.SelfLoopCalculator + * @class */ export interface SelfLoopCalculator extends Object{} export class SelfLoopCalculator { /** * Creates a new instance of {@link yfiles.hierarchic.SelfLoopCalculator} using the given parameters. - * @param {number} minFirstSegmentLength the minimum length of the first and last segment of an orthogonally routed self-loop - * @param {number} minEdgeDistance the minimum distance between a pair of self-loops - * @constructor + * @param minFirstSegmentLength the minimum length of the first and last segment of an orthogonally routed self-loop + * @param minEdgeDistance the minimum distance between a pair of self-loops */ constructor(minFirstSegmentLength:number,minEdgeDistance:number); /** @@ -104939,12 +98725,12 @@ declare namespace system{ * instances hold information about the source/target ports of the edges and can be used for specifying the direction of * first and last segments. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node whose self-loops will be routed - * @param {yfiles.algorithms.YList} selfLoops a list of {@link yfiles.algorithms.Edge}s that will be routed - * @param {yfiles.algorithms.IDataProvider} spc the {@link yfiles.algorithms.IDataProvider} that returns the {@link yfiles.layout.PortConstraint} object associated with the source + * @param graph the input graph + * @param node the node whose self-loops will be routed + * @param selfLoops a list of {@link }s that will be routed + * @param spc the {@link } that returns the {@link } object associated with the source * ports of the edges - * @param {yfiles.algorithms.IDataProvider} tpc the {@link yfiles.algorithms.IDataProvider} that returns the {@link yfiles.layout.PortConstraint} object associated with the target + * @param tpc the {@link } that returns the {@link } object associated with the target * ports of the edges */ calculateSelfLoops(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,selfLoops:yfiles.algorithms.YList,spc:yfiles.algorithms.IDataProvider,tpc:yfiles.algorithms.IDataProvider):void; @@ -104955,11 +98741,11 @@ declare namespace system{ * instances hold information about the source/target ports of the edges and can be used for specifying the direction of * first and last segments. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node whose self-loops will be routed - * @param {yfiles.algorithms.IDataProvider} spc the {@link yfiles.algorithms.IDataProvider} that returns the {@link yfiles.layout.PortConstraint} object associated with the source + * @param graph the input graph + * @param node the node whose self-loops will be routed + * @param spc the {@link } that returns the {@link } object associated with the source * ports of the edges - * @param {yfiles.algorithms.IDataProvider} tpc the {@link yfiles.algorithms.IDataProvider} that returns the {@link yfiles.layout.PortConstraint} object associated with the target + * @param tpc the {@link } that returns the {@link } object associated with the target * ports of the edges */ calculateSelfLoops(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,spc:yfiles.algorithms.IDataProvider,tpc:yfiles.algorithms.IDataProvider):void; @@ -104969,9 +98755,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#MINIMUM_EDGE_DISTANCE_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {number} the minimum length between two edges + * @param graph the input graph + * @param edge the given edge + * @returns the minimum length between two edges * @protected */ getMinimumDistance(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):number; @@ -104981,9 +98767,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#MINIMUM_FIRST_SEGMENT_LENGTH_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {number} the minimum length of the first segment of an edge + * @param graph the input graph + * @param edge the given edge + * @returns the minimum length of the first segment of an edge * @protected */ getMinimumFirstSegmentLength(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):number; @@ -104993,9 +98779,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#MINIMUM_LAST_SEGMENT_LENGTH_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {number} the minimum length of the last segment of the given edge + * @param graph the input graph + * @param edge the given edge + * @returns the minimum length of the last segment of the given edge * @protected */ getMinimumLastSegmentLength(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):number; @@ -105005,9 +98791,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#MINIMUM_NODE_DISTANCE_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the given node - * @returns {number} the minimum distance between two nodes + * @param graph the input graph + * @param node the given node + * @returns the minimum distance between two nodes * @protected */ getMinimumNodeDistance(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):number; @@ -105017,9 +98803,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#MINIMUM_OCTILINEAR_SEGMENT_LENGTH_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {number} the minimum octilinear segment length of the given edge + * @param graph the input graph + * @param edge the given edge + * @returns the minimum octilinear segment length of the given edge * @protected */ getMinimumOctilinearSegmentLength(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):number; @@ -105029,9 +98815,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#OCTILINEAR_EDGES_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {boolean} true if the edge is octilinear, false otherwise + * @param graph the input graph + * @param edge the given edge + * @returns true if the edge is octilinear, false otherwise * @protected */ isOctilinearEdge(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):boolean; @@ -105084,7 +98870,7 @@ declare namespace system{ *

    * The drawer works with integer values and rounds double values to integers using sophisticated quantizing. *

    - * @class yfiles.hierarchic.SimplexNodePlacer + * @class * @implements {yfiles.hierarchic.INodePlacer} */ export interface SimplexNodePlacer extends Object,yfiles.hierarchic.INodePlacer{} @@ -105092,9 +98878,9 @@ declare namespace system{ constructor(); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayoutDataProvider} layoutDataProvider - * @param {yfiles.hierarchic.ILayers} layers + * @param graph + * @param layoutDataProvider + * @param layers */ assignLayerCoordinates(graph:yfiles.layout.LayoutGraph,layoutDataProvider:yfiles.hierarchic.ILayoutDataProvider,layers:yfiles.hierarchic.ILayers):void; /** @@ -105103,21 +98889,21 @@ declare namespace system{ * Information about sublayers is given by a {@link yfiles.algorithms.INodeMap} whose GetBool method has to return true for each * node that should be placed in the lower sublayer (values are set by this method). *

    - * @param {yfiles.algorithms.NodeList} layerNodes a {@link yfiles.algorithms.NodeList list} of all @link y.layout.hierarchic.incremental.NodeData#TYPE_NORMAL normal nodes} of a layer - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param layerNodes a {@link list} of all @link y.layout.hierarchic.incremental.NodeData#TYPE_NORMAL normal nodes} of a layer + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.layout.LayoutGraph} graph the given graph - * @param {yfiles.algorithms.INodeMap} lowerSublayer the {@link yfiles.algorithms.INodeMap} holding sublayer information + * @param graph the given graph + * @param lowerSublayer the {@link } holding sublayer information * @see yfiles.hierarchic.SimplexNodePlacer#nodeCompaction * @protected */ assignNodesToSublayer(layerNodes:yfiles.algorithms.NodeList,ldp:yfiles.hierarchic.ILayoutDataProvider,graph:yfiles.layout.LayoutGraph,lowerSublayer:yfiles.algorithms.INodeMap):void; /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayoutDataProvider} layoutDataProvider - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.IDrawingDistanceCalculator} drawingDistanceCalculator + * @param graph + * @param layoutDataProvider + * @param layers + * @param drawingDistanceCalculator */ assignSequenceCoordinates(graph:yfiles.layout.LayoutGraph,layoutDataProvider:yfiles.hierarchic.ILayoutDataProvider,layers:yfiles.hierarchic.ILayers,drawingDistanceCalculator:yfiles.hierarchic.IDrawingDistanceCalculator):void; /** @@ -105125,13 +98911,13 @@ declare namespace system{ *

    * This callback method used by {@link yfiles.hierarchic.SimplexNodePlacer#assignLayerCoordinates}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.algorithms.Node} node the given node - * @param {number} layerIndex the index of the layer - * @param {number} minLayerHeight the minimum height of the layer - * @returns {number} + * @param node the given node + * @param layerIndex the index of the layer + * @param minLayerHeight the minimum height of the layer + * @returns * @protected */ getLayerAlignment(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,node:yfiles.algorithms.Node,layerIndex:number,minLayerHeight:number):number; @@ -105140,11 +98926,11 @@ declare namespace system{ *

    * This callback method is used by {@link yfiles.hierarchic.SimplexNodePlacer#assignSequenceCoordinates}. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the nodes - * @param {yfiles.hierarchic.ILayer} layer the layer that contains the nodes - * @param {yfiles.algorithms.Node} predNode the node to the left of the other one, may be null to indicate a border line - * @param {yfiles.algorithms.Node} succ the node to the right of the other one, may be null to indicate a border line - * @returns {number} the minimum distance allowed between those two nodes ( >=0 ) + * @param graph the graph that contains the nodes + * @param layer the layer that contains the nodes + * @param predNode the node to the left of the other one, may be null to indicate a border line + * @param succ the node to the right of the other one, may be null to indicate a border line + * @returns the minimum distance allowed between those two nodes ( >=0 ) * @see yfiles.hierarchic.IDrawingDistanceCalculator * @protected */ @@ -105154,11 +98940,11 @@ declare namespace system{ *

    * This callback method is used by {@link yfiles.hierarchic.SimplexNodePlacer#assignLayerCoordinates}. *

    - * @param {yfiles.layout.LayoutGraph} graph the given graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the given graph + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} object - * @returns {number} the minimum height + * @param layer the given {@link } object + * @returns the minimum height * @protected */ getMinimumLayerHeight(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,layer:yfiles.hierarchic.ILayer):number; @@ -105172,12 +98958,12 @@ declare namespace system{ * If inLayer argument is true, this method is called from within the {@link yfiles.hierarchic.SimplexNodePlacer#assignLayerCoordinates} * method. *

    - * @param {yfiles.layout.LayoutGraph} graph the given graph - * @param {yfiles.hierarchic.ILayoutDataProvider} provider the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the given graph + * @param provider the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.algorithms.Node} node the given node - * @param {boolean} inLayer true if the layer coordinate of the node is queried, false if the sequence coordinate is queried - * @returns {boolean} true if the node should be treated as fixed, false otherwise + * @param node the given node + * @param inLayer true if the layer coordinate of the node is queried, false if the sequence coordinate is queried + * @returns true if the node should be treated as fixed, false otherwise * @protected */ isFixedNode(graph:yfiles.layout.LayoutGraph,provider:yfiles.hierarchic.ILayoutDataProvider,node:yfiles.algorithms.Node,inLayer:boolean):boolean; @@ -105313,7 +99099,7 @@ declare namespace system{ * instance for each node of the graph. *

    * @see yfiles.hierarchic.HierarchicLayoutCore#SWIMLANE_DESCRIPTOR_DP_KEY - * @class yfiles.hierarchic.SwimlaneDescriptor + * @class * @implements {yfiles.lang.IComparable} */ export interface SwimlaneDescriptor extends Object,yfiles.lang.IComparable{} @@ -105323,24 +99109,22 @@ declare namespace system{ *

    * The given client {@link Object} should be an instance of {@link yfiles.lang.IComparable} if the given {@link yfiles.collections.IComparer.} is null. *

    - * @param {Object} clientObject a client {@link Object} used for sorting the lanes - * @param {yfiles.collections.IComparer.} comparer a {@link yfiles.collections.IComparer.} used for comparing the client objects + * @param clientObject a client {@link } used for sorting the lanes + * @param comparer a {@link } used for comparing the client objects * @throws {Stubs.Exceptions.ArgumentError} if the specified client {@link Object} is null or the specified {@link yfiles.collections.IComparer.} is null but the specified client {@link Object} is not an instance of * {@link yfiles.lang.IComparable}. - * @constructor */ constructor(clientObject:Object,comparer:yfiles.collections.IComparer); /** * Creates a new {@link yfiles.hierarchic.SwimlaneDescriptor} instance with a given {@link yfiles.lang.IComparable} object. - * @param {yfiles.lang.IComparable} clientObject a {@link yfiles.lang.IComparable} used for determining the order of the lanes + * @param clientObject a {@link } used for determining the order of the lanes * @throws {Stubs.Exceptions.ArgumentError} if the specified client object is null. - * @constructor */ constructor(clientObject:yfiles.lang.IComparable); /** * Implements the {@link yfiles.lang.IComparable} interface using the {@link yfiles.hierarchic.SwimlaneDescriptor#comparer} and {@link yfiles.hierarchic.SwimlaneDescriptor#clientObject} fields. - * @param {Object} o - * @returns {number} + * @param o + * @returns */ compareTo(o:Object):number; /** @@ -105446,14 +99230,13 @@ declare namespace system{ * @see yfiles.hierarchic.HierarchicLayout * @see yfiles.hierarchic.SwimlaneDescriptor * @see yfiles.layout.GroupingKeys - * @class yfiles.hierarchic.TopLevelGroupToSwimlaneStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface TopLevelGroupToSwimlaneStage extends yfiles.layout.LayoutStageBase{} export class TopLevelGroupToSwimlaneStage { /** * Creates a new instance of {@link yfiles.hierarchic.TopLevelGroupToSwimlaneStage} with the default settings. - * @constructor */ constructor(); /** @@ -105481,21 +99264,20 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[30,30],"d":1},"n":[[63.79,0,[[73.45,24.35,10.67,18.7,"1"]]],[121,150,[[130.66,174.35,10.67,18.7,"2"]]],[71,150,[[80.66,174.35,10.67,18.7,"3"]]],[162.99,0,[[172.65,24.35,10.67,18.7,"6"]]],[162.99,70,[[172.65,94.35,10.67,18.7,"7"]]],[112.99,70,[[122.65,94.35,10.67,18.7,"8"]]],[30.99,70,[[37.31,94.35,17.35,18.7,"12"]]],[35.5,220,[[45.16,244.35,10.67,18.7,"8"]]],[0,150,[[9.66,174.35,10.67,18.7,"9"]]]],"e":[[5,1,0,15,0,-15,[127.99,120,136,120]],[0,1,10,15,-10,-15,[88.79,50,92.49,50,92.49,130,126,130]],[0,2,0,15,0,-15,[78.79,50,81.49,50,81.49,120,86,120]],[4,1,0,15,10,-15,[177.99,120,146,120]],[3,4,0,15,0,-15],[0,6,-10,15,0,-15,[68.79,50,45.99,50]],[6,7,7.5,15,0,-15,[53.49,120,50.5,120]],[6,8,-7.5,15,0,-15,[38.49,120,15,120]],[8,7,0,15,-10,-15,[15,200,40.5,200]],[2,7,0,15,10,-15,[86,200,60.5,200]]],"vp":[0.0,0.0,193.0,250.0]}} *

    - * @class yfiles.hierarchic.TopologicalLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface TopologicalLayerer extends Object,yfiles.hierarchic.ILayerer{} export class TopologicalLayerer { /** * Creates a new instance of {@link yfiles.hierarchic.TopologicalLayerer} with default settings. - * @constructor */ constructor(); /** * Assigns all nodes of the graph to layers and adds them to the {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for querying information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -105509,38 +99291,37 @@ declare namespace system{ /** * This class is a {@link yfiles.hierarchic.IDrawingDistanceCalculator} implementation that returns the minimum distances for each * kind of node pair based on their type as returned by {@link yfiles.hierarchic.INodeData#type}. - * @class yfiles.hierarchic.TypeBasedDrawingDistanceCalculator + * @class * @implements {yfiles.hierarchic.IDrawingDistanceCalculator} */ export interface TypeBasedDrawingDistanceCalculator extends Object,yfiles.hierarchic.IDrawingDistanceCalculator{} export class TypeBasedDrawingDistanceCalculator { /** * Creates a new instance of {@link yfiles.hierarchic.TypeBasedDrawingDistanceCalculator} with default settings. - * @constructor */ constructor(); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp + * @param graph + * @param layers + * @param ldp */ dispose(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayer} layer - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp - * @param {yfiles.algorithms.Node} left - * @param {yfiles.algorithms.Node} right - * @returns {number} + * @param graph + * @param layer + * @param ldp + * @param left + * @param right + * @returns */ getMinDistance(graph:yfiles.layout.LayoutGraph,layer:yfiles.hierarchic.ILayer,ldp:yfiles.hierarchic.ILayoutDataProvider,left:yfiles.algorithms.Node,right:yfiles.algorithms.Node):number; /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp + * @param graph + * @param layers + * @param ldp */ initialize(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -105601,7 +99382,7 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[30,30],"d":1},"n":[[100,70,[[109.66,94.35,10.67,18.7,"1"]]],[45.59,140,[[55.25,164.35,10.67,18.7,"2"]]],[95.59,140,[[105.25,164.35,10.67,18.7,"3"]]],[0,0,[[9.66,24.35,10.67,18.7,"6"]]],[0,70,[[9.66,94.35,10.67,18.7,"7"]]],[50,70,[[59.66,94.35,10.67,18.7,"8"]]],[145.59,140,[[151.91,164.35,17.35,18.7,"12"]]],[125.59,280,[[135.25,304.35,10.67,18.7,"8"]]],[125.59,210,[[135.25,234.35,10.67,18.7,"9"]]]],"e":[[5,1,0,15,0,-15,[65,120,60.59,120]],[0,1,-10,15,10,-15,[105,120,70.59,120]],[0,2,0,15,0,-15,[115,120,110.59,120]],[4,1,0,15,-10,-15,[15,120,50.59,120]],[3,4,0,15,0,-15],[0,6,10,15,0,-15,[125,120,160.59,120]],[6,7,7.5,15,10,-15,[168.09,190,176.09,190,176.09,260,150.59,260]],[6,8,-7.5,15,0,-15,[153.09,190,140.59,190]],[8,7,0,15,0,-15],[2,7,0,15,-10,-15,[110.59,190,105.09,190,105.09,260,130.59,260]]],"vp":[0.0,0.0,177.0,310.0]}} *

    - * @class yfiles.hierarchic.WeightedLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface WeightedLayerer extends Object,yfiles.hierarchic.ILayerer{} @@ -105609,41 +99390,40 @@ declare namespace system{ /** * Creates an instance of {@link yfiles.hierarchic.WeightedLayerer} with the given key that provides access to the {@link yfiles.algorithms.IDataProvider} * that holds the edge weights and unlimited maximum duration for the {@link yfiles.hierarchic.WeightedLayerer}. - * @param {Object} [key=null] the key to access the {@link yfiles.algorithms.IDataProvider} that holds the edge weights - * @constructor + * @param [key=null] the key to access the {@link } that holds the edge weights */ constructor(key?:Object); /** * Assigns all nodes of the graph to layers and adds them to the {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for querying information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** * Assigns all nodes of the graph to layers. - * @param {yfiles.algorithms.Graph} graph the graph for which the layers are determined - * @param {yfiles.algorithms.INodeMap} layerID the {@link yfiles.algorithms.INodeMap} that will be filled by the layout algorithm and returns a zero-based layer index for each + * @param graph the graph for which the layers are determined + * @param layerID the {@link } that will be filled by the layout algorithm and returns a zero-based layer index for each * node - * @returns {number} the number of layers + * @returns the number of layers */ assignLayersFast(graph:yfiles.algorithms.Graph,layerID:yfiles.algorithms.INodeMap):number; /** * Assigns all nodes of the graph to layers. - * @param {yfiles.algorithms.Graph} graph the graph for which the layers are determined - * @param {yfiles.algorithms.INodeMap} layerID the {@link yfiles.algorithms.INodeMap} that will be filled by the layout algorithm and returns the zero-based index of the layer + * @param graph the graph for which the layers are determined + * @param layerID the {@link } that will be filled by the layout algorithm and returns the zero-based index of the layer * to which each node belongs - * @returns {number} the number of layers + * @returns the number of layers */ assignLayersToMap(graph:yfiles.algorithms.Graph,layerID:yfiles.algorithms.INodeMap):number; /** * Assigns all nodes of the graph to layers. - * @param {yfiles.layout.LayoutGraph} graph the graph for which the layers are determined - * @param {yfiles.algorithms.INodeMap} layerID the {@link yfiles.algorithms.INodeMap} that will be filled by the layout algorithm and returns a zero-based layer index for each + * @param graph the graph for which the layers are determined + * @param layerID the {@link } that will be filled by the layout algorithm and returns a zero-based layer index for each * node - * @param {yfiles.algorithms.EdgeList} reversedEdges an {@link yfiles.algorithms.EdgeList} containing the edges which had been reversed - * @param {yfiles.algorithms.IDataProvider} weight the {@link yfiles.algorithms.IDataProvider} that returns an integer value (weight) for each edge - * @returns {number} the number of layers + * @param reversedEdges an {@link } containing the edges which had been reversed + * @param weight the {@link } that returns an integer value (weight) for each edge + * @returns the number of layers */ assignNodeLayerWithDataProvider(graph:yfiles.layout.LayoutGraph,layerID:yfiles.algorithms.INodeMap,reversedEdges:yfiles.algorithms.EdgeList,weight:yfiles.algorithms.IDataProvider):number; /** @@ -105654,8 +99434,8 @@ declare namespace system{ *

    * It may be overridden if non-uniform weights are desired. *

    - * @param {yfiles.algorithms.Edge} edge given edge - * @returns {number} the edge weight of the specified edge + * @param edge given edge + * @returns the edge weight of the specified edge * @see yfiles.hierarchic.WeightedLayerer#weightedCycleRemoval * @see yfiles.hierarchic.WeightedLayerer#weightedCycleRemoval * @protected @@ -105663,8 +99443,8 @@ declare namespace system{ getWeight(edge:yfiles.algorithms.Edge):number; /** * Removes cycles from the graph using a depth first search. - * @param {yfiles.algorithms.Graph} graph the graph - * @param {yfiles.algorithms.EdgeList} reversedEdges an {@link yfiles.algorithms.EdgeList} containing the edges which will be reversed + * @param graph the graph + * @param reversedEdges an {@link } containing the edges which will be reversed */ makeDFSAcyclic(graph:yfiles.algorithms.Graph,reversedEdges:yfiles.algorithms.EdgeList):void; /** @@ -105707,7 +99487,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.hierarchic.HierarchicLayout}. - * @class yfiles.hierarchic.HierarchicLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface HierarchicLayoutData extends yfiles.layout.LayoutData{} @@ -105923,6 +99703,14 @@ declare namespace system{ * @type {yfiles.layout.ItemMapping.} */ edgeThickness:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; static $class:yfiles.lang.Class; } /** @@ -105932,7 +99720,7 @@ declare namespace system{ * Only one of the provided ways to define a mapping can be used at the same time, therefore only one of the properties of * this class should be set on an instance. *

    - * @class yfiles.hierarchic.IncrementalHintItemMapping + * @class * @extends {yfiles.layout.ContextItemMapping.} * @final */ @@ -105953,7 +99741,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.hierarchic.SelfLoopCalculator}. - * @class yfiles.hierarchic.SelfLoopCalculatorData + * @class * @extends {yfiles.layout.LayoutData} */ export interface SelfLoopCalculatorData extends yfiles.layout.LayoutData{} @@ -105997,6 +99785,581 @@ declare namespace system{ minimumOctilinearSegmentLengths:yfiles.layout.ItemMapping; static $class:yfiles.lang.Class; } + }export namespace labeling{ + export enum OptimizationStrategy{ + /** + * An optimization strategy aiming at a good balance between the available optimization options. + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + */ + BALANCED, + /** + * An optimization strategy that especially reduces overlaps between labels and nodes as well as labels and node halos. + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + */ + NODE_OVERLAP, + /** + * An optimization strategy that especially reduces overlaps between labels. + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + */ + LABEL_OVERLAP, + /** + * An optimization strategy that especially reduces overlaps between labels and edges. + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + */ + EDGE_OVERLAP, + /** + * An optimization strategy that mainly tries to satisfy the preferences described by a {@link yfiles.layout.PreferredPlacementDescriptor} + * associated with edge labels. + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + */ + PREFERRED_PLACEMENT, + /** + * Use no optimization strategy. + */ + NONE + } + /** + * A generic labeling algorithm for placing the labels of a graph. + *

    + * {@graph {"ann":{"s":[30,30],"d":1,"c":1,"lblFlip":1,"lblB":1},"n":[[249.44,602.63,[[212.75,626.98,32.69,18.7,"Node"]]],[306.92,686.94,[[270.24,711.29,32.69,18.7,"Node"]]],[481.7,787.85,[[515.7,812.2,32.69,18.7,"Node"]]],[219.36,505.12,[[182.67,529.47,32.69,18.7,"Node"]]],[386.71,750.57,[[350.02,774.92,32.69,18.7,"Node"]]],[885,353.19,[[883.66,405.89,32.69,18.7,"Node"]]],[840.72,261.25,[[839.38,257.25,32.69,18.7,"Node"]]],[583.46,112.72,[[582.11,108.72,32.69,18.7,"Node"]]],[249.44,305.56,[[212.75,329.91,32.69,18.7,"Node"]]],[682.94,135.42,[[681.6,131.42,32.69,18.7,"Node"]]],[481.7,120.34,[[480.35,116.34,32.69,18.7,"Node"]]],[771.32,186.45,[[769.97,182.45,32.69,18.7,"Node"]]],[219.36,403.07,[[182.67,427.42,32.69,18.7,"Node"]]],[306.92,221.25,[[270.24,245.6,32.69,18.7,"Node"]]],[386.71,157.62,[[385.36,153.62,32.69,18.7,"Node"]]]],"e":[[0,1,[],[[259.45,643.51,32.03,18.7,0.826238774315996,-0.5633200580636204,"Edge"]]],[3,0,[],[[221.61,542.21,32.03,18.7,0.9555728057861415,-0.294755174410902,"Edge"]]],[1,4,[],[[349.3,723.77,32.03,18.7,0.6234898018587343,-0.7818314824680294,"Edge"]]],[4,2,[],[[418.05,771.98,32.03,18.7,0.36534102436639637,-0.9308737486442037,"Edge"]]],[3,5,[],[[262.64,513.66,32.03,18.7,-0.2225209339563144,-0.9749279121818236,"Edge"]]],[2,5,[],[[534.29,789.82,32.03,18.7,-0.7330518718298267,-0.680172737770919,"Edge"]]],[4,5,[],[[427.6,744.91,32.03,18.7,-0.6234898018587336,-0.7818314824680299,"Edge"]]],[1,5,[],[[350.46,685.47,32.03,18.7,-0.5000000000000003,-0.8660254037844386,"Edge"]]],[0,5,[],[[298.89,624.2,32.03,18.7,-0.3653410243663947,-0.9308737486442044,"Edge"]]],[5,6,[],[[878.37,323.28,32.03,18.7,0.9009688679024184,-0.4338837391175598,"Edge"]]],[7,5,[],[[611.91,162.36,32.03,18.7,0.6234898018587336,-0.7818314824680299,"Edge"]]],[8,5,[],[[292.35,341.41,32.03,18.7,0.07473009358642455,-0.9972037971811801,"Edge"]]],[9,7,[],[[645.8,157.7,32.03,18.7,0.2225209339563144,-0.9749279121818236,"Edge"]]],[7,10,[],[[549.55,131.38,32.03,18.7,-0.07473009358642278,-0.9972037971811804,"Edge"]]],[10,5,[],[[515.14,167.59,32.03,18.7,0.5000000000000003,-0.8660254037844386,"Edge"]]],[6,11,[],[[796.42,239.83,32.03,18.7,0.7330518718298267,-0.680172737770919,"Edge"]]],[11,9,[],[[733.51,192.55,32.03,18.7,0.4999999999999995,-0.866025403784439,"Edge"]]],[8,12,[],[[267.76,373.25,32.03,18.7,-0.9555728057861401,-0.29475517441090626,"Edge"]]],[12,3,[],[[253.06,467.1,32.03,18.7,-1.0,-2.7257675990577433E-15,"Edge"]]],[12,5,[],[[265.18,415.76,32.03,18.7,-0.07473009358642366,-0.9972037971811802,"Edge"]]],[13,5,[],[[347.6,261.29,32.03,18.7,0.22252093395631525,-0.9749279121818234,"Edge"]]],[13,8,[],[[284.16,291.63,32.03,18.7,-0.826238774315993,-0.5633200580636247,"Edge"]]],[10,14,[],[[450.54,153.46,32.03,18.7,-0.3653410243663931,-0.930873748644205,"Edge"]]],[14,13,[],[[349.3,214.42,32.03,18.7,-0.6234898018587314,-0.7818314824680315,"Edge"]]],[14,5,[],[[424.24,201.56,32.03,18.7,0.36534102436639554,-0.930873748644204,"Edge"]]]],"vp":[182.0,90.0,735.0,728.0]}} Node labels and edge labels placed by the labeling algorithm + *

    + *

    + * This algorithm can switch between two internal implementations. By default, it generates high quality label placements + * even for difficult instances. This especially holds if the label models allow a large number of different + * {@link yfiles.layout.LabelCandidate}s, i.e., there is a high potential for optimizations. + *

    + *

    + * If the duration of the calculation is of utmost importance, the internal algorithm can be changed to a simpler + * implementation by setting {@link yfiles.labeling.GenericLabeling#maximumDuration} to 0. On the downside, the results will not be as good as the ones of the default mode. + *

    + *

    + * In default mode, this algorithm reduces the labeling problem to the maximum independent set (MIS) problem and solves the + * problem using simulated annealing. It is inspired by the article from Christensen, Marks and Shieber: A General + * Cartographic Labelling Algorithm. + *

    + *

    + * It is recommended to use {@link yfiles.layout.IEdgeLabelLayoutModel}s and + * {@link yfiles.layout.INodeLabelLayoutModel}s which allow free positioning of labels to achieve best results with this generic + * labeling algorithm. + *

    + *

    + * This algorithm works according to the general labeling concept defined by {@link yfiles.labeling.LabelingBase}. + *

    + * @see yfiles.labeling.LabelingBase + * @class + * @extends {yfiles.labeling.MISLabelingBase} + */ + export interface GenericLabeling extends yfiles.labeling.MISLabelingBase{} + export class GenericLabeling { + /** + * Creates a new instance of {@link yfiles.labeling.GenericLabeling} with default settings. + */ + constructor(); + /** + * Gets or sets whether or not this algorithm behaves deterministically. + *

    + * If enabled, it produces the same results given the same input graph and settings. + *

    + * @type {boolean} + */ + deterministic:boolean; + /** + * Gets or sets the time limit for this algorithm in milliseconds. + *

    + * 0x7FFFFFFF denotes that there is no time limit. Values have to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given maximum duration is negative + * @type {number} + */ + maximumDuration:number; + static $class:yfiles.lang.Class; + } + /** + * An abstract base class for generic labeling algorithms which place labels of graphs. + *

    + * Labeling algorithms compute positions for labels in a given graph. The main goal is to place labels such that they do + * not overlap with other graph elements. Labeling algorithms do not modify positions of nodes and edges. + *

    + *

    + * Concept + *

    + *

    + * Generic labeling algorithms use the model associated with a label (i.e. {@link yfiles.layout.INodeLabelLayout#labelModel node label model} for nodes and {@link yfiles.layout.IEdgeLabelLayout#labelModel edge label model} + * for edges). The models are necessary to compute a set of {@link yfiles.layout.LabelCandidate}s, i.e., candidate positions for a + * label. Then, one best matching candidate from the set will be selected. This selection depends on several preferences, e.g., if {@link yfiles.labeling.LabelingBase#removeNodeOverlaps overlaps with nodes} + * are not allowed, candidates encoding overlapping positions will be ignored. + *

    + *

    + * After one {@link yfiles.layout.LabelCandidate} has been chosen, the label model's parameter is used for encoding the label + * position. Therefore, the result of a generic labeling algorithm is one model parameter per label. The parameter is {@link yfiles.layout.ILabelLayout#modelParameter stored with the label} + * and expresses the label position with respect to the underlying label model. + *

    + *

    + * Features + *

    + *

    + * This class provides a general frame, offering functionality which can be shared by other generic labeling algorithms. + *

    + *

    + * To only place labels or a subset of labels, the main labeling methods {@link yfiles.labeling.LabelingBase#label}, {@link yfiles.labeling.LabelingBase#label} + * and {@link yfiles.labeling.LabelingBase#label} are offered. + *

    + *

    + * As this class represents an {@link yfiles.layout.LayoutStageBase}, it allows usage as a generic labeling stage. By combining it + * with a + * {@link yfiles.layout.LayoutStageBase#coreLayout core layouter}, the labeling will take place after the core layouter was executed + * ({@link yfiles.labeling.LabelingBase#applyLayout}). This is especially useful if the core layouter does not support label + * handling. + *

    + * @class + * @extends {yfiles.layout.LayoutStageBase} + */ + export interface LabelingBase extends yfiles.layout.LayoutStageBase{} + export class LabelingBase { + /** + * Creates a new {@link yfiles.labeling.LabelingBase} instance with default settings. + */ + constructor(); + /** + * Returns the profit for placing a {@link yfiles.layout.LabelCandidate} with respect to the current {@link yfiles.labeling.LabelingBase#profitModel profit model}. + *

    + * Method {@link yfiles.layout.IProfitModel#getProfit} on the current profit model will be invoked to compute the actual profit + * value. + *

    + *

    + * The higher the profit (rank) of a candidate is, the more likely it will be chosen as actual position by the algorithm. + *

    + * @param candidate a label candidate + * @returns the profit value between 0 and 1 + */ + getProfit(candidate:yfiles.layout.LabelCandidate):number; + /** + * Places the labels of the input graph restricting the placement to labels contained in the given lists. + *

    + * The {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey selection} will not be considered; the given lists will define the selection of labels that are to be placed. + *

    + * @param graph the input graph + * @param nodeLabels a list of {@link }s defining the set of node labels that will be placed + * @param edgeLabels a list of {@link }s defining the set of edge labels that will be placed + */ + label(graph:yfiles.layout.LayoutGraph,nodeLabels:yfiles.algorithms.YList,edgeLabels:yfiles.algorithms.YList):void; + /** + * Places the labels of the input graph using a {@link yfiles.algorithms.IDataProvider} registered to the input graph with the + * given key for determining which labels to place. + *

    + * Instead of considering the current {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey selection key}, the {@link yfiles.algorithms.IDataProvider} registered with the given key will + * be used for selecting labels. Invoking this method has the same effect as first {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey specifying the key} as selection key and + * then invoking {@link yfiles.labeling.LabelingBase#label}. + *

    + * @param graph the input graph + * @param [key=null] the {@link } key for label selection + */ + label(graph:yfiles.layout.LayoutGraph,key?:Object):void; + /** + * Data provider key for mapping models to edge/node labels + *

    + * The {@link yfiles.layout.INodeLabelLayoutModel}s and {@link yfiles.layout.IEdgeLabelLayoutModel}s linked to + * {@link yfiles.layout.INodeLabelLayout}s and {@link yfiles.layout.IEdgeLabelLayout}s by this {@link yfiles.algorithms.IDataProvider} are taken as + * replacement models. This means that the original model is internally replaced by another model when computing valid + * positions for the label. A model parameter that fits the calculated position of the replacement model best is set for + * the original label model. + *

    + * @const + * @static + * @type {yfiles.algorithms.ILabelLayoutDpKey.} + */ + static LABEL_MODEL_DP_KEY:yfiles.algorithms.ILabelLayoutDpKey; + /** + * Gets or sets the {@link yfiles.layout.IProfitModel} for ranking the {@link yfiles.layout.LabelCandidate}s for labels. + *

    + * The profit model is used when {@link yfiles.labeling.LabelingBase#getProfit calculating the profit} of a candidate. + *

    + *

    + * The higher the profit (rank) of a candidate is, the more likely it will be chosen as actual position by the algorithm. + *

    + * @see yfiles.layout.IProfitModel + * @see yfiles.layout.SimpleProfitModel + * @see yfiles.labeling.LabelingBase#getProfit + * @type {yfiles.layout.IProfitModel} + */ + profitModel:yfiles.layout.IProfitModel; + /** + * Gets or sets whether or not internal node labels are allowed to move. + *

    + * A node label is internal if the label's boundaries are completely within the node's boundaries. + *

    + * @type {boolean} + */ + moveInternalNodeLabels:boolean; + /** + * Gets or sets whether or not a post-processing step to reduce the number of label overlaps is applied. + * @type {boolean} + */ + reduceLabelOverlaps:boolean; + /** + * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with nodes are removed. + *

    + * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely + * that an overlapping candidate is finally chosen. + *

    + *

    + * The detection and removal of labels that overlap with nodes may increase the runtime of this algorithm. + *

    + * @type {boolean} + */ + removeNodeOverlaps:boolean; + /** + * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with edges are removed. + *

    + * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely + * that an overlapping candidate is finally chosen. + *

    + *

    + * The detection and removal of labels that overlap with edges may increase the runtime of this algorithm. + *

    + * @type {boolean} + */ + removeEdgeOverlaps:boolean; + /** + * Gets or sets whether or not labels assigned to nodes are placed. + * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey + * @type {boolean} + */ + placeNodeLabels:boolean; + /** + * Gets or sets whether or not labels assigned to edges are placed. + * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey + * @type {boolean} + */ + placeEdgeLabels:boolean; + /** + * Gets or sets the {@link yfiles.algorithms.IDataProvider} key to mark labels as selected for placement. + *

    + * If a {@link yfiles.algorithms.IDataProvider} is registered with this key, only the selected labels will be placed, while all + * other labels are considered fixed. + *

    + *

    + * The registered {@link yfiles.algorithms.IDataProvider} needs to map from {@link yfiles.layout.ILabelLayout} to {@link boolean} where true indicates + * that a label should be placed and false indicates that a label should be ignored. + *

    + * @type {Object} + */ + affectedLabelsDpKey:Object; + /** + * Gets or sets whether or not edge labels are automatically flipped if otherwise they would be upside-down. + * @type {boolean} + */ + autoFlipping:boolean; + /** + * Gets or sets whether or not edge labels may overlap with edges belonging to the same edge group as the label's edge. + *

    + * An edge group is a set of edges which share a common bus near the target or source node. They are defined using + * {@link yfiles.algorithms.IDataProvider}s registered with {@link yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY} and + * {@link yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY}. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + * @type {boolean} + */ + edgeGroupOverlapAllowed:boolean; + static $class:yfiles.lang.Class; + } + /** + * A base class for generic labeling algorithms which solve the labeling problem by reducing it to the maximum independent + * set (MIS) problem. + *

    + * Different optimization strategies are available; an optimization strategy defines which criteria the algorithm should + * try to optimize. For example, reducing the number of overlaps between labels and nodes may be considered more important + * than reducing the number of overlaps between labels and edges. + *

    + * @see yfiles.labeling.GenericLabeling + * @class + * @extends {yfiles.labeling.LabelingBase} + */ + export interface MISLabelingBase extends yfiles.labeling.LabelingBase{} + export class MISLabelingBase { + /** + * Creates a new {@link yfiles.labeling.MISLabelingBase} instance with default settings. + */ + constructor(); + /** + * Returns a {@link yfiles.algorithms.INodeMap} which assigns a profit value to each node in the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. + *

    + * As the conflict graph's nodes represent {@link yfiles.layout.LabelCandidate}s, this mapping gives the profit value of label + * candidates. The assigned value is defined as the difference between the {@link yfiles.labeling.LabelingBase#getProfit profit induced by the profit model} and the + * candidate's {@link yfiles.layout.LabelCandidate#overlapPenalty overlap penalty}. + *

    + *

    + * The returned map is a mapping from each {@link yfiles.algorithms.Node} (representing a label candidate) in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} + * to a {@link number} representing the profit value of the candidate. + *

    + * @returns a mapping from nodes (i.e. label candidates) to their profit value + */ + assignProfit():yfiles.algorithms.INodeMap; + /** + * Creates the edges in the conflict graph, i.e., one edge between two nodes if the corresponding + * {@link yfiles.layout.LabelCandidate}s intersect. + *

    + * The nodes of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph} represent + * {@link yfiles.layout.LabelCandidate}s. An edge between candidates signals that they overlap. A maximum independent set will be + * computed on the conflict graph to choose candidates such that no two candidates overlap. + *

    + *

    + * This method may be overridden to change the structure of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. Edges between two + * {@link yfiles.layout.LabelCandidate}s in the conflict graph signal that the two candidates should not be selected together. By + * overriding this method, arbitrary reasons for indicating that two label candidates should not be chosen at the same time + * can be modeled. + *

    + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @see yfiles.labeling.MISLabelingBase#nodesToBoxes + * @see yfiles.labeling.MISLabelingBase#boxesToNodes + * @see yfiles.labeling.MISLabelingBase#nodesToID + * @protected + */ + createEdges():void; + /** + * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and an {@link yfiles.algorithms.Edge} of the input graph has + * been found. + *

    + * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor + * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. + *

    + *

    + * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and edges. + *

    + * @param labelCandidate the {@link } overlapping with the given {@link } + * @param edge the {@link } overlapping with the given {@link } + * @param eSegment the {@link } of the given edge overlapping with the given candidate + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @see yfiles.labeling.MISLabelingBase#createEdges + */ + foundEdgeOverlap(labelCandidate:yfiles.layout.LabelCandidate,edge:yfiles.algorithms.Edge,eSegment:yfiles.algorithms.LineSegment):void; + /** + * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and a {@link yfiles.layout.NodeHalo} of the input graph has + * been found. + *

    + * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor + * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. + *

    + *

    + * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and node + * halos. + *

    + * @param labelCandidate the {@link } overlapping with a node halo + * @param node the {@link } whose {@link } is overlapping with the given label candidate + * @param haloRect the bounding box of the {@link } overlapping with the given label candidate + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @see yfiles.labeling.MISLabelingBase#createEdges + */ + foundHaloOverlap(labelCandidate:yfiles.layout.LabelCandidate,node:yfiles.algorithms.Node,haloRect:yfiles.algorithms.YRectangle):void; + /** + * Indicates that an overlap between two {@link yfiles.layout.LabelCandidate}s has been found. + *

    + * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the + * {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor indicating how much the two candidates overlap. The factor influences the penalty + * assigned when both candidates are chosen, i.e., the penalty for the corresponding overlap. + *

    + *

    + * This method may be overridden to realize a custom strategy for reacting to overlaps among + * {@link yfiles.layout.LabelCandidate}s. + *

    + * @param candidate1 the first overlapping {@link } + * @param candidate2 the second overlapping {@link } + * @param edge the {@link } in {@link #conflictGraph} representing the found overlap + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @see yfiles.labeling.MISLabelingBase#createEdges + */ + foundLabelOverlap(candidate1:yfiles.layout.LabelCandidate,candidate2:yfiles.layout.LabelCandidate,edge:yfiles.algorithms.Edge):void; + /** + * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and a {@link yfiles.algorithms.Node} of the input graph has + * been found. + *

    + * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor + * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. + *

    + *

    + * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and nodes. + *

    + * @param labelCandidate the {@link } overlapping with the given node + * @param node the {@link } overlapping with the given label candidate + * @param nodeBox the bounding box of the given node + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @see yfiles.labeling.MISLabelingBase#createEdges + */ + foundNodeOverlap(labelCandidate:yfiles.layout.LabelCandidate,node:yfiles.algorithms.Node,nodeBox:yfiles.algorithms.YRectangle):void; + /** + * The input graph that will be labeled. + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + /** + * The conflict graph modeling + * {@link yfiles.layout.LabelCandidate}s as nodes and edges between them as conflicts, i.e., overlaps among candidates. + * @see yfiles.labeling.MISLabelingBase#createEdges + * @type {yfiles.algorithms.Graph} + */ + conflictGraph:yfiles.algorithms.Graph; + /** + * The mapping from each node in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} to the corresponding {@link yfiles.layout.LabelCandidate} + * instance. + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @type {yfiles.algorithms.INodeMap} + */ + nodesToBoxes:yfiles.algorithms.INodeMap; + /** + * The mapping from the {@link yfiles.layout.LabelCandidate}s to the corresponding nodes in the + * {@link yfiles.labeling.MISLabelingBase#conflictGraph}. + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @type {yfiles.collections.IMap.} + */ + boxesToNodes:yfiles.collections.IMap; + /** + * The mapping from nodes in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} to a corresponding integer value (ID). + *

    + * The ID denotes the actual label which a {@link yfiles.layout.LabelCandidate} (i.e. a node in the conflict graph) belongs to. + *

    + * @type {yfiles.algorithms.INodeMap} + */ + nodesToID:yfiles.algorithms.INodeMap; + /** + * Gets or sets the ratio between the internal profit (ip) and the profit computed using the specified {@link yfiles.labeling.LabelingBase#profitModel profit model} (sp). + *

    + * This ratio defines how to weight the two profit values (ip) and (sp). The overall ratio is then computed as + * ratio * sp + (1 - ratio) * ip. The profit of a {@link yfiles.layout.LabelCandidate} defines how likely it is that the candidate + * will be chosen as actual label position. + *

    + *

    + * The ratio is defined to be a value from the interval [0,1]. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given ratio is negative or larger than 1 + * @see yfiles.labeling.LabelingBase#profitModel + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + * @type {number} + */ + customProfitModelRatio:number; + /** + * Gets or sets the optimization strategy which defines the importance of criteria when optimizing labeling results. + *

    + * Depending on the strategy, criteria like label-node overlaps, label-label overlaps and others are more or less + * important. For example, if the number of overlaps between labels and nodes is the most important criterion for the + * result, strategy {@link yfiles.labeling.OptimizationStrategy#NODE_OVERLAP} should be chosen. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given strategy is unknown + * @type {yfiles.labeling.OptimizationStrategy} + */ + optimizationStrategy:yfiles.labeling.OptimizationStrategy; + /** + * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with nodes are removed. + *

    + * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely + * that an overlapping candidate is finally chosen. + *

    + *

    + * The detection and removal of labels that overlap with nodes may increase the runtime of this algorithm. + *

    + * @type {boolean} + */ + removeNodeOverlaps:boolean; + /** + * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with edges are removed. + *

    + * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely + * that an overlapping candidate is finally chosen. + *

    + *

    + * The detection and removal of labels that overlap with edges may increase the runtime of this algorithm. + *

    + * @type {boolean} + */ + removeEdgeOverlaps:boolean; + /** + * Gets or sets whether or not the number of ambiguous label placements is reduced by applying an additional optimization + * step. + *

    + * A label position is considered to be ambiguous if it might not be possible to identify to which graph element the label + * belongs. For example, an edge label placed in between two edges is ambiguous. + *

    + *

    + * Enabling this reduction step does not guarantee that no ambiguous placements are selected. The algorithm will try to + * avoid them if other good positions without ambiguity are available. Other aspects like {@link yfiles.layout.PreferredPlacementDescriptor preferred placement} for edge + * labels will still be more important than the reduction of ambiguity. + *

    + * @type {boolean} + */ + reduceAmbiguity:boolean; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.labeling.GenericLabeling}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface LabelingData extends yfiles.layout.LayoutData{} + export class LabelingData { + constructor(); + /** + * Gets or sets the collection of labels that shall be placed by the algorithm. + *

    + * Note that the {@link yfiles.layout.DpKeyItemCollection.#dpKey} has to be set to the key assigned to {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey}. + *

    + * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey + * @type {yfiles.layout.DpKeyItemCollection.} + */ + affectedLabels:yfiles.layout.DpKeyItemCollection; + /** + * Gets or sets the mapping from node labels to an {@link yfiles.layout.INodeLabelLayoutModel} used by the labeling algorithm + * instead of the original label model. + *

    + * If a label has no mapping, the original model is used as normal. + *

    + * @see yfiles.labeling.LabelingBase#LABEL_MODEL_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodeLabelModels:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from edge labels to an {@link yfiles.layout.IEdgeLabelLayoutModel} used by the labeling algorithm + * instead of the original label model. + *

    + * If a label has no mapping, the original model is used as normal. + *

    + * @see yfiles.labeling.LabelingBase#LABEL_MODEL_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelModels:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to an object representing their source edge group. + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + sourceGroupIds:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to an object representing their target edge group. + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + targetGroupIds:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. + * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodeHalos:yfiles.layout.ItemMapping; + /** + * Gets or sets the AbortHandler used during the layout. + * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY + * @type {yfiles.algorithms.AbortHandler} + */ + abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; + static $class:yfiles.lang.Class; + } }export namespace organic{ export enum InitialPlacement{ /** @@ -106254,19 +100617,18 @@ declare namespace system{ * To specify that specific nodes should not be moved, they can be marked as fixed using a {@link yfiles.algorithms.IDataProvider} * registered with key {@link yfiles.organic.ShuffleLayout#FIXED_NODE_DP_KEY}. *

    - * @class yfiles.organic.ShuffleLayout + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface ShuffleLayout extends Object,yfiles.layout.ILayoutStage{} export class ShuffleLayout { /** * Creates a new instance of {@link yfiles.organic.ShuffleLayout} with default settings. - * @constructor */ constructor(); /** * Performs the overlap removal (shuffle) algorithm on the given graph, after the {@link yfiles.organic.ShuffleLayout#coreLayout core layout algorithm} was applied to it. - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -106388,14 +100750,13 @@ declare namespace system{ * and {@link yfiles.organic.ClassicOrganicLayout#initialTemperature initial temperature} can be controlled. This allows experts to configure and fine-tune the algorithm with respect to * their needs. *

    - * @class yfiles.organic.ClassicOrganicLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface ClassicOrganicLayout extends yfiles.layout.MultiStageLayout{} export class ClassicOrganicLayout { /** * Creates a new {@link yfiles.organic.ClassicOrganicLayout} with default settings. - * @constructor */ constructor(); /** @@ -106621,7 +100982,7 @@ declare namespace system{ /** * Starts the layout calculation, continuing where it has stopped before and allowing a certain maximum duration in * milliseconds. - * @param {number} duration the duration in milliseconds the layout calculation is allowed to run + * @param duration the duration in milliseconds the layout calculation is allowed to run * @abstract */ continueLayout(duration:number):void; @@ -106677,10 +101038,6 @@ declare namespace system{ * positions via mouse-dragging. *

    *

    - * If a {@link yfiles.layout.CopiedLayoutGraph} is being laid out, structural changes (e.g. creation or removal of nodes and edges) - * in the original graph can be automatically scheduled and applied to the {@link yfiles.layout.CopiedLayoutGraph} instance. Enable - * {@link yfiles.organic.InteractiveOrganicLayout#automaticStructureUpdate automatic structure updates} for this feature. - *
    * Method {@link yfiles.organic.InteractiveOrganicLayout#addStructureUpdate} allows to schedule a custom event handler instance * that is executed in a synchronized context and can safely update the structure of the graph. *

    @@ -106698,14 +101055,13 @@ declare namespace system{ * changes are stored as intermediate results. Such intermediate results can be {@link yfiles.organic.InteractiveOrganicLayout#commitPositions committed} in order to apply them to the * actual graph. *

    - * @class yfiles.organic.InteractiveOrganicLayout + * @class * @implements {yfiles.layout.ILayoutAlgorithm} */ export interface InteractiveOrganicLayout extends Object,yfiles.layout.ILayoutAlgorithm{} export class InteractiveOrganicLayout { /** * Creates a new instance of the {@link yfiles.organic.InteractiveOrganicLayout} with default settings. - * @constructor */ constructor(); /** @@ -106715,8 +101071,8 @@ declare namespace system{ * The given event handler will be queued and executed at a specific time. The event handler can make structural changes * (e.g. removal/creation of edges or nodes). They will be synchronized with the rest of the layout algorithm. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} handler The handler delegate that will be invoked using null as the sender and args as the event arguments - * @param {yfiles.lang.EventArgs} evt The event argument that will be piped to the handler invocation. + * @param handler The handler delegate that will be invoked using null as the sender and args as the event arguments + * @param evt The event argument that will be piped to the handler invocation. */ addStructureUpdate(handler:(sender:Object,evt:yfiles.lang.EventArgs)=>void,evt:yfiles.lang.EventArgs):void; /** @@ -106724,7 +101080,7 @@ declare namespace system{ *

    * Changes have to be {@link yfiles.organic.InteractiveOrganicLayout#commitPositions committed} to update the graph with the actual calculated positions. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @see yfiles.organic.InteractiveOrganicLayout#startLayout */ applyLayout(graph:yfiles.layout.LayoutGraph):void; @@ -106756,9 +101112,9 @@ declare namespace system{ * The returned largest movement can be used for estimating the difference between calculated layout and actual positions. * If the return value is 0, the calculated layout was completely transferred. *

    - * @param {number} maxMovement the maximum distance a node will be moved - * @param {number} factor a factor that determines the node movement - * @returns {number} the largest movement value or 0, if the calculated layout has been transferred completely + * @param maxMovement the maximum distance a node will be moved + * @param factor a factor that determines the node movement + * @returns the largest movement value or 0, if the calculated layout has been transferred completely * @see yfiles.organic.InteractiveOrganicLayout#commitPositions */ commitPositionsSmoothly(maxMovement:number,factor:number):number; @@ -106780,8 +101136,8 @@ declare namespace system{ * only be intermediate results stored in the algorithm. This will be the case if scheduled updates were not yet completely * {@link yfiles.organic.InteractiveOrganicLayout#commitPositions committed} to the actual graph. *

    - * @param {yfiles.algorithms.Node} node the node for which the center should be polled - * @returns {yfiles.algorithms.YPoint} the {@link yfiles.algorithms.YPoint} representing the center location of the given node, or null if nothing about the node is + * @param node the node for which the center should be polled + * @returns the {@link } representing the center location of the given node, or null if nothing about the node is * known * @see yfiles.organic.InteractiveOrganicLayout#setCenter */ @@ -106793,8 +101149,8 @@ declare namespace system{ * intermediate result stored in the algorithm. This will be the case if scheduled updates were not yet completely {@link yfiles.organic.InteractiveOrganicLayout#commitPositions committed} * to the actual graph. *

    - * @param {yfiles.algorithms.Node} node the node for which the x-coordinate should be polled - * @returns {number} the x-coordinate of the center location of the given node + * @param node the node for which the x-coordinate should be polled + * @returns the x-coordinate of the center location of the given node * @see yfiles.organic.InteractiveOrganicLayout#setCenterX */ getCenterX(node:yfiles.algorithms.Node):number; @@ -106805,8 +101161,8 @@ declare namespace system{ * intermediate result stored in the algorithm. This will be the case if scheduled updates were not yet completely {@link yfiles.organic.InteractiveOrganicLayout#commitPositions committed} * to the actual graph. *

    - * @param {yfiles.algorithms.Node} node the node for which the y-coordinate should be polled - * @returns {number} the y-coordinate of the center location of the given node + * @param node the node for which the y-coordinate should be polled + * @returns the y-coordinate of the center location of the given node * @see yfiles.organic.InteractiveOrganicLayout#setCenterY */ getCenterY(node:yfiles.algorithms.Node):number; @@ -106819,8 +101175,8 @@ declare namespace system{ *

    * The stress value is defined to be a value from the interval [0,1]. *

    - * @param {yfiles.algorithms.Node} node the node for which the stress value should be polled - * @returns {number} the stress value of the given node + * @param node the node for which the stress value should be polled + * @returns the stress value of the given node * @see yfiles.organic.InteractiveOrganicLayout#setStress */ getStress(node:yfiles.algorithms.Node):number; @@ -106832,9 +101188,9 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Node} node the node that should be updated - * @param {number} x the desired x-coordinate of the given node - * @param {number} y the desired y-coordinate of the given node + * @param node the node that should be updated + * @param x the desired x-coordinate of the given node + * @param y the desired y-coordinate of the given node */ setCenter(node:yfiles.algorithms.Node,x:number,y:number):void; /** @@ -106845,8 +101201,8 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Node} node the node that should be updated - * @param {number} x the desired x-coordinate of the given node + * @param node the node that should be updated + * @param x the desired x-coordinate of the given node * @see yfiles.organic.InteractiveOrganicLayout#setCenterY * @see yfiles.organic.InteractiveOrganicLayout#setCenter */ @@ -106859,8 +101215,8 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Node} node the node that should be updated - * @param {number} y the desired y-coordinate of the given node + * @param node the node that should be updated + * @param y the desired y-coordinate of the given node * @see yfiles.organic.InteractiveOrganicLayout#setCenterX * @see yfiles.organic.InteractiveOrganicLayout#setCenter */ @@ -106881,8 +101237,8 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Node} node the node whose inertia to set - * @param {number} inertia an inertia value between 0 and 1 + * @param node the node whose inertia to set + * @param inertia an inertia value between 0 and 1 * @throws {Stubs.Exceptions.ArgumentError} if the given inertia value is negative or greater than 1 */ setInertia(node:yfiles.algorithms.Node,inertia:number):void; @@ -106894,8 +101250,8 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Edge} edge the edge whose preferred length should be updated - * @param {number} newEdgeLength the new preferred edge length + * @param edge the edge whose preferred length should be updated + * @param newEdgeLength the new preferred edge length */ setPreferredEdgeLength(edge:yfiles.algorithms.Edge,newEdgeLength:number):void; /** @@ -106906,8 +101262,8 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Node} node the node whose radius should be updated - * @param {number} radius the desired radius for the given node + * @param node the node whose radius should be updated + * @param radius the desired radius for the given node */ setRadius(node:yfiles.algorithms.Node,radius:number):void; /** @@ -106925,8 +101281,8 @@ declare namespace system{ *

    * The stress value is defined to be a value from the interval [0,1]. *

    - * @param {yfiles.algorithms.Node} node the node whose stress value should be updated - * @param {number} stress a stress value from the interval [0,1] + * @param node the node whose stress value should be updated + * @param stress a stress value from the interval [0,1] * @throws {Stubs.Exceptions.ArgumentError} if the given stress value is negative or greater than 1 */ setStress(node:yfiles.algorithms.Node,stress:number):void; @@ -106938,8 +101294,8 @@ declare namespace system{ * whenever the layout should be recalculated. To actually transfer the changes, {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * should be called subsequently. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.organic.InteractiveOrganicLayoutExecutionContext} a {@link yfiles.organic.InteractiveOrganicLayoutExecutionContext context instance} to control layout calculation + * @param graph the input graph + * @returns a {@link context instance} to control layout calculation * @see yfiles.organic.InteractiveOrganicLayoutExecutionContext * @see yfiles.organic.InteractiveOrganicLayout#applyLayout */ @@ -106974,17 +101330,6 @@ declare namespace system{ * @see yfiles.organic.InteractiveOrganicLayout#sleeping */ wakeUp():void; - /** - * Gets or sets whether or not this algorithm performs automatic structure updates on the graph copy if the original graph - * changes. - *

    - * If this feature is enabled, a listener will be registered with the original input graph. This listener will - * automatically transfer structural changes on the original graph to the graph copy and update its internal data - * structures. - *

    - * @type {boolean} - */ - automaticStructureUpdate:boolean; /** * Gets the time when the last wake-up, that is, call to {@link yfiles.organic.InteractiveOrganicLayout#wakeUp}, occurred. *

    @@ -107111,7 +101456,7 @@ declare namespace system{ *

    *

    * This layout algorithm is able to consider a {@link yfiles.layout.PartitionGrid} structure. However, for common nodes (i.e. - * non-group nodes) it only considers single partition cells. Furthermore, the layout algorithm will throw a {@link yfiles.algorithms.InvalidGraphStructureError} + * non-group nodes) it only considers single partition cells. Furthermore, the layout algorithm will throw a {@link yfiles.lang.Exception} * if there is a partition grid and the descendants of a group node are assigned to different partition grid cells or if * there are group nodes that are associated with a group node mode other than {@link yfiles.organic.GroupNodeMode#NORMAL}. *

    @@ -107129,14 +101474,13 @@ declare namespace system{ * {@graph {"ann":{"s":[50,50],"d":0, "c":1},"n":[[651.02,746.2],[499.25,376.34],[757.43,840.9],[574.93,802.49],[772.23,780.83],[712.08,729.69],[591.5,342.9],[630.22,404.23],[511.3,574.88],[356.15,353.31],[488.74,447.78],[566.25,739.99],[832.31,791.39],[152.43,610.4],[689.57,879.35],[248.1,596.17],[120.25,697.57],[639.18,467.72],[427.77,458.88],[408.48,519.6],[691.9,669.45],[818.01,882.83],[539.8,660.71],[585.22,875.17],[636.28,814.7],[714.64,608.38],[656.9,343.12],[511.04,217.28],[470.75,277.59],[422.59,338.16],[565.7,413.55],[531.15,295.7],[348.61,180.63],[402.12,271.28],[284.34,91.79],[321.78,0],[381.55,66.78],[214.95,158.82],[187.52,306.65],[287.7,278.04],[92.76,309.88],[631.56,613.97],[513.18,814.11],[775.66,700.72],[601.82,679.52],[504.9,731.91],[697.17,813.09],[606.93,266.97],[450.55,583.13],[728.3,327.65],[717.42,253.29],[543.5,154.51],[614.76,150.96],[500.57,513.16],[360.14,445.09],[293.67,694],[348.53,611.5],[206.29,734.57],[571.37,553.51],[0,313.72],[233.88,6.24],[182.4,76.67],[420.47,398.21],[561.25,487.65],[680.21,183.49]],"e":[[0,2],[0,5],[0,3],[0,4],[1,7],[1,6],[1,8],[1,10],[1,9],[0,12],[0,14],[0,11],[15,13],[16,13],[1,17],[1,19],[1,18],[0,24],[0,22],[0,20],[0,23],[0,21],[1,58],[0,25],[0,58],[1,29],[1,31],[1,26],[1,27],[1,28],[1,30],[32,34],[1,33],[32,33],[36,34],[35,34],[37,34],[38,40],[38,39],[0,44],[0,41],[0,46],[0,43],[0,45],[0,42],[1,47],[48,8],[48,58],[48,10],[48,18],[48,19],[50,47],[51,47],[52,47],[49,47],[48,53],[48,54],[1,54],[1,53],[55,56],[56,15],[16,57],[57,55],[56,48],[39,33],[59,40],[60,34],[61,34],[1,62],[48,62],[1,63],[48,63],[64,47]],"vp":[0.0,0.0,883.0,933.0]}} Organic Layout without applying specific layout styles to substructures {@graph {"ann":{"s":[50,50],"d":0,"c":1},"n":[[222.41,751.98],[933.19,715.06],[333.12,751.98],[167.05,656.1],[111.7,751.98],[277.76,656.1],[1075.74,818.63],[987.64,882.64],[826.53,1248.81],[1109.39,715.06],[923.05,1325.6],[250.02,979.37],[167.05,847.86],[283.81,1327.29],[277.76,847.86],[357.8,1251.78],[312.21,1429.13],[1075.74,611.5],[946.75,1221.23],[879.92,1137.62],[451.47,751.98],[352.53,563.47],[425.23,858.43],[425.23,645.53],[352.53,940.5],[250.02,524.59],[790.64,611.5],[756.99,715.06],[790.64,818.63],[987.64,547.49],[878.74,882.64],[878.74,547.49],[1282.21,484.89],[1243.62,401.08],[1488.63,603.97],[1399.06,538.9],[1522.84,498.68],[1399.06,669.05],[1287.59,215.47],[1262.1,323.21],[1313.08,107.74],[50.95,600.08],[141.18,966.16],[0,806.8],[141.18,537.8],[50.95,903.88],[0,697.16],[765.65,208.84],[592.77,1142.94],[799.86,314.13],[799.86,103.55],[676.08,143.76],[676.08,273.91],[772.89,1137.75],[706.25,1221.5],[488.59,1379.94],[460.19,1278.11],[414.6,1455.45],[619.49,1010.84],[1338.57,0],[1522.84,709.26],[1599.34,603.97],[730.18,1325.82],[826.67,1372.15],[876.36,208.84]],"e":[[0,2],[0,5],[0,3],[0,4],[1,7],[1,6],[1,8],[1,10],[1,9],[0,12],[0,14],[0,11],[15,13],[16,13],[1,17],[1,19],[1,18],[0,24],[0,22],[0,20],[0,23],[0,21],[1,58],[0,25],[0,58],[1,29],[1,31],[1,26],[1,27],[1,28],[1,30],[32,34],[1,33],[32,33],[36,34],[35,34],[37,34],[38,40],[38,39],[0,44],[0,41],[0,46],[0,43],[0,45],[0,42],[1,47],[48,8],[48,58],[48,10],[48,18],[48,19],[50,47],[51,47],[52,47],[49,47],[48,53],[48,54],[1,54],[1,53],[55,56],[56,15],[16,57],[57,55],[56,48],[39,33],[59,40],[60,34],[61,34],[1,62],[48,62],[1,63],[48,63],[64,47]],"vp":[0.0,0.0,1650.0,1506.0]}} Organic Layout of the same graph applying * specific layout styles to the detected substructures *

    - * @class yfiles.organic.OrganicLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface OrganicLayout extends yfiles.layout.MultiStageLayout{} export class OrganicLayout { /** * Creates a new {@link yfiles.organic.OrganicLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -107148,8 +101492,8 @@ declare namespace system{ * This method is called by {@link yfiles.organic.OrganicLayout#applyLayout} before the actual layout is calculated. It may be * overridden in order to manually configure the {@link yfiles.layout.ComponentLayout}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.layout.ComponentLayout} layouter the {@link yfiles.layout.ComponentLayout} instance to reconfigure + * @param graph the input graph + * @param layouter the {@link } instance to reconfigure * @see yfiles.organic.OrganicLayout#smartComponentLayout * @protected */ @@ -107160,14 +101504,14 @@ declare namespace system{ * This method is called by {@link yfiles.organic.OrganicLayout#applyLayout} after the actual layout is calculated. It may be * overridden in order to revert a custom configuration made in {@link yfiles.organic.OrganicLayout#configureComponentLayout}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.layout.ComponentLayout} layouter the {@link yfiles.layout.ComponentLayout} to reset + * @param graph the input graph + * @param layouter the {@link } to reset * @see yfiles.organic.OrganicLayout#smartComponentLayout * @protected */ disposeComponentLayout(graph:yfiles.layout.LayoutGraph,layouter:yfiles.layout.ComponentLayout):void; /** - * Data provider key for specifying the directedness of edges. + * Data provider key for specifying the directedness of edges *

    * Generally, the organic layout algorithm doesn't consider the edge direction. Nevertheless, this {@link yfiles.algorithms.IDataProvider} * allows the user to specify hints on the directedness of edges. More precisely, a value of 1 indicates that the edge @@ -107486,7 +101830,7 @@ declare namespace system{ * {@link yfiles.layout.MultiStageLayout#appendStage}. *

    * @see yfiles.layout.PartitionGrid - * @class yfiles.organic.OrganicPartitionGridLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface OrganicPartitionGridLayoutStage extends yfiles.layout.LayoutStageBase{} @@ -107494,8 +101838,7 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.organic.OrganicPartitionGridLayoutStage} with the given layout algorithm as * {@link yfiles.layout.LayoutStageBase#coreLayout core algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} core the core layout algorithm - * @constructor + * @param core the core layout algorithm */ constructor(core:yfiles.layout.ILayoutAlgorithm); static $class:yfiles.lang.Class; @@ -107528,15 +101871,14 @@ declare namespace system{ * Nodes can be marked as fixed. Such nodes will not be moved during the overlap removal process. A {@link yfiles.algorithms.IDataProvider} * with key {@link yfiles.organic.OrganicRemoveOverlapsStage#FIXED_NODE_DP_KEY} can be registered to mark the fixed nodes. *

    - * @class yfiles.organic.OrganicRemoveOverlapsStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface OrganicRemoveOverlapsStage extends yfiles.layout.LayoutStageBase{} export class OrganicRemoveOverlapsStage { /** * Creates a new instance of {@link yfiles.organic.OrganicRemoveOverlapsStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** @@ -107584,7 +101926,7 @@ declare namespace system{ *

    * @see yfiles.organic.OrganicLayout#outputRestriction * @see yfiles.organic.InteractiveOrganicLayout#outputRestriction - * @class yfiles.organic.OutputRestriction + * @class */ export interface OutputRestriction extends Object{} export class OutputRestriction { @@ -107602,8 +101944,8 @@ declare namespace system{ *

    * The aspect ratio needs to be strictly positive. *

    - * @param {number} ratio the preferred aspect ratio of the output - * @returns {yfiles.organic.OutputRestriction} an {@link yfiles.organic.OutputRestriction} imposing the given aspect ratio on the layout + * @param ratio the preferred aspect ratio of the output + * @returns an {@link } imposing the given aspect ratio on the layout * @throws {Stubs.Exceptions.ArgumentError} if the given aspect ratio is 0 or negative * @see yfiles.organic.OrganicLayout#outputRestriction * @see yfiles.organic.InteractiveOrganicLayout#outputRestriction @@ -107618,10 +101960,10 @@ declare namespace system{ *

    * The radius of the restriction circle needs to be greater than zero. *

    - * @param {number} x the x-coordinate of the restriction circle's center - * @param {number} y the y-coordinate of the restriction circle's center - * @param {number} radius the radius of the restriction circle - * @returns {yfiles.organic.OutputRestriction} the {@link yfiles.organic.OutputRestriction} confining the layout to a circular area + * @param x the x-coordinate of the restriction circle's center + * @param y the y-coordinate of the restriction circle's center + * @param radius the radius of the restriction circle + * @returns the {@link } confining the layout to a circular area * @throws {Stubs.Exceptions.ArgumentError} if the given radius is less than or equal to zero * @see yfiles.organic.OrganicLayout#outputRestriction * @see yfiles.organic.InteractiveOrganicLayout#outputRestriction @@ -107639,11 +101981,11 @@ declare namespace system{ *

    * The values for height and width of the ellipse's bounding box need to be greater than zero. *

    - * @param {number} x the x-coordinate of the bounding box's upper left corner - * @param {number} y the y-coordinate of the bounding box's upper left corner - * @param {number} w the width of the bounding box - * @param {number} h the height of the bounding box - * @returns {yfiles.organic.OutputRestriction} the {@link yfiles.organic.OutputRestriction} confining the layout to an elliptical area + * @param x the x-coordinate of the bounding box's upper left corner + * @param y the y-coordinate of the bounding box's upper left corner + * @param w the width of the bounding box + * @param h the height of the bounding box + * @returns the {@link } confining the layout to an elliptical area * @throws {Stubs.Exceptions.ArgumentError} if the given width or height is 0 or negative * @see yfiles.organic.OrganicLayout#outputRestriction * @see yfiles.organic.InteractiveOrganicLayout#outputRestriction @@ -107658,11 +102000,11 @@ declare namespace system{ *

    * The values for height and width of the rectangle need to be greater than zero. *

    - * @param {number} x the x-coordinate of the restriction rectangle's upper-left corner - * @param {number} y the y-coordinate of the restriction rectangle's upper-left corner - * @param {number} w width of the restriction rectangle - * @param {number} h height of the restriction rectangle - * @returns {yfiles.organic.OutputRestriction} the {@link yfiles.organic.OutputRestriction} confining the layout to a rectangular area + * @param x the x-coordinate of the restriction rectangle's upper-left corner + * @param y the y-coordinate of the restriction rectangle's upper-left corner + * @param w width of the restriction rectangle + * @param h height of the restriction rectangle + * @returns the {@link } confining the layout to a rectangular area * @throws {Stubs.Exceptions.ArgumentError} if the given width or height is less than or equal to zero * @see yfiles.organic.OrganicLayout#outputRestriction * @see yfiles.organic.InteractiveOrganicLayout#outputRestriction @@ -107700,15 +102042,14 @@ declare namespace system{ *

    * @see yfiles.organic.ShuffleLayout * @see yfiles.layout.RecursiveGroupLayout - * @class yfiles.organic.RecursiveShuffleLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface RecursiveShuffleLayout extends yfiles.layout.LayoutStageBase{} export class RecursiveShuffleLayout { /** * Creates a new {@link yfiles.organic.RecursiveShuffleLayout} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** @@ -107737,7 +102078,7 @@ declare namespace system{ * It is possible to define a {@link yfiles.organic.RemoveOverlapsStage#minimumNodeDistance minimum distance} between nodes. This feature allows to not only remove overlaps but forces * nodes to keep a specified distance to other nodes. *

    - * @class yfiles.organic.RemoveOverlapsStage + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface RemoveOverlapsStage extends Object,yfiles.layout.ILayoutStage{} @@ -107747,9 +102088,8 @@ declare namespace system{ *

    * The minimum node distance needs to be non-negative. *

    - * @param {number} minimumNodeDistance a non-negative minimum distance value + * @param minimumNodeDistance a non-negative minimum distance value * @throws {Stubs.Exceptions.ArgumentError} if the given distance is negative - * @constructor */ constructor(minimumNodeDistance:number); /** @@ -107758,7 +102098,7 @@ declare namespace system{ *

    * If a {@link yfiles.organic.RemoveOverlapsStage#coreLayout core layout algorithm} is specified, it will be executed first. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -107823,20 +102163,19 @@ declare namespace system{ * The amount of split-nodes replacing a single original edge can be controlled via the * {@link yfiles.organic.SplitEdgeStage#splitSegmentLength split segment length}. The smaller the value, the more split-nodes this stage will insert. *

    - * @class yfiles.organic.SplitEdgeStage + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface SplitEdgeStage extends Object,yfiles.layout.ILayoutStage{} export class SplitEdgeStage { /** * Creates a new {@link yfiles.organic.SplitEdgeStage} with default settings. - * @constructor */ constructor(); /** * Replaces the edges of the given graph by a path of split-edges, executes the {@link yfiles.organic.SplitEdgeStage#coreLayout core layout algorithm} and restores the * original edges, introducing bends at the locations of the split-nodes. - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -107891,7 +102230,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.organic.OrganicLayout}. - * @class yfiles.organic.OrganicLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface OrganicLayoutData extends yfiles.layout.LayoutData{} @@ -108022,16 +102361,15 @@ declare namespace system{ * It is possible to select * {@link yfiles.router.ParallelEdgeRouter#LEADING_EDGE_DP_KEY custom master edges}. All edges that are parallel to the selected edges will be temporarily removed. *

    - * @class yfiles.router.ParallelEdgeRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface ParallelEdgeRouter extends yfiles.layout.LayoutStageBase{} export class ParallelEdgeRouter { /** * Creates a new {@link yfiles.router.ParallelEdgeRouter} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. + * @param [coreLayouter=null] The core layout algorithm. * @see yfiles.layout.LayoutStageBase#coreLayout - * @constructor */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -108044,7 +102382,7 @@ declare namespace system{ * This method is called before invoking the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It may be overridden to change the selection of leading * edges. Hidden edges should be stored in {@link yfiles.router.ParallelEdgeRouter#hiddenEdges} to enable un-hiding later on. *

    - * @param {yfiles.algorithms.Graph} graph the input graph + * @param graph the input graph * @see yfiles.router.ParallelEdgeRouter#directedMode * @see yfiles.router.ParallelEdgeRouter#AFFECTED_EDGES_DP_KEY * @protected @@ -108060,8 +102398,8 @@ declare namespace system{ * This method is called when the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} is finished. It may be overridden to introduce a custom routing for * parallel edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph after the core layout - * @param {yfiles.algorithms.IEdgeMap} parallelEdges the map that provides all parallel edges for each master edge + * @param graph the graph after the core layout + * @param parallelEdges the map that provides all parallel edges for each master edge * @see yfiles.router.ParallelEdgeRouter#joinEnds * @see yfiles.router.ParallelEdgeRouter#adaptiveLineDistances * @see yfiles.router.ParallelEdgeRouter#adjustLeadingEdge @@ -108209,22 +102547,6 @@ declare namespace system{ */ ROUTE_EDGES_AT_AFFECTED_NODES } - export enum ChannelOrientation{ - /** - * Channel orientation specifier for routing edges vertically. - *

    - * More precisely, the algorithm calculates the x-coordinates of the vertical middle segments of the added edges. - *

    - */ - VERTICAL, - /** - * Channel orientation specifier for routing edges horizontally. - *

    - * More precisely, the algorithm calculates the y-coordinates of the horizontal middle segments of the added edges. - *

    - */ - HORIZONTAL - } export enum MonotonicPathRestriction{ /** * A constant specifying that there are no monotonic edge path restrictions. @@ -108263,15 +102585,14 @@ declare namespace system{ * will first invoke the {@link yfiles.layout.LayoutStageBase#coreLayout} if one exists. Then, it will remove all bends from the edges and will place the ports either on * the center of the nodes or at a location specified by a {@link yfiles.layout.PortConstraint}. *

    - * @class yfiles.router.StraightLineEdgeRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface StraightLineEdgeRouter extends yfiles.layout.LayoutStageBase{} export class StraightLineEdgeRouter { /** * Creates a new instance of {@link yfiles.router.StraightLineEdgeRouter} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** @@ -108318,20 +102639,18 @@ declare namespace system{ * The path that was followed in order to reach a given {@link yfiles.router.PartitionCell partition cell} can be reconstructed by traversing all * {@link yfiles.router.CellEntrance#previousEntrance previous entrances}. The {@link yfiles.router.CellEntrance#enterInterval enter interval} and {@link yfiles.router.CellEntrance#enterDirection enter direction} determine how the {@link yfiles.router.PartitionCell partition cell} was entered. *

    - * @class yfiles.router.CellEntrance + * @class */ export interface CellEntrance extends Object{} export class CellEntrance { /** * Creates a new {@link yfiles.router.CellEntrance} instance that is a copy of a given other {@link yfiles.router.CellEntrance}. - * @param {yfiles.router.CellEntrance} other the {@link yfiles.router.CellEntrance} to be copied - * @constructor + * @param other the {@link } to be copied */ constructor(other:yfiles.router.CellEntrance); /** * Creates a new {@link yfiles.router.CellEntrance} instance for a given {@link yfiles.router.PartitionCell}. - * @param {yfiles.router.PartitionCell} cell the {@link yfiles.router.PartitionCell} that is entered - * @constructor + * @param cell the {@link } that is entered */ constructor(cell:yfiles.router.PartitionCell); /** @@ -108381,21 +102700,20 @@ declare namespace system{ } /** * This class stores information about the part of an edge segment that lies inside a specified {@link yfiles.router.PartitionCell partition cell}. - * @class yfiles.router.CellSegmentInfo + * @class * @extends {yfiles.router.SegmentInfoBase} */ export interface CellSegmentInfo extends yfiles.router.SegmentInfoBase{} export class CellSegmentInfo { /** * Creates a new {@link yfiles.router.CellSegmentInfo} instance. - * @param {yfiles.algorithms.Edge} edge the edge to which the segment of this info belongs - * @param {number} segmentIndex the index of the segment to which this info belongs - * @param {yfiles.layout.Direction} direction the direction to which the segment of this info points - * @param {yfiles.router.Interval} locationRange the range within which the common location of this segment has to lie - * @param {yfiles.router.Interval} minExtension the minimum interval in extension direction this segment part is known to intersect - * @param {yfiles.router.Interval} maxExtension the maximum interval in extension direction this segment part will span - * @param {yfiles.router.PartitionCell} cell the partition cell within which this part of the edge segment lies - * @constructor + * @param edge the edge to which the segment of this info belongs + * @param segmentIndex the index of the segment to which this info belongs + * @param direction the direction to which the segment of this info points + * @param locationRange the range within which the common location of this segment has to lie + * @param minExtension the minimum interval in extension direction this segment part is known to intersect + * @param maxExtension the maximum interval in extension direction this segment part will span + * @param cell the partition cell within which this part of the edge segment lies */ constructor(edge:yfiles.algorithms.Edge,segmentIndex:number,direction:yfiles.layout.Direction,locationRange:yfiles.router.Interval,minExtension:yfiles.router.Interval,maxExtension:yfiles.router.Interval,cell:yfiles.router.PartitionCell); /** @@ -108417,55 +102735,54 @@ declare namespace system{ * Channels are used by the {@link yfiles.router.ChannelBasedPathRouting} to route edges using * {@link yfiles.router.SegmentInfo}s describing their path. *

    - * @class yfiles.router.Channel + * @class */ export interface Channel extends Object{} export class Channel { /** * Creates a new {@link yfiles.router.Channel} that contains the given {@link yfiles.router.SegmentInfo segment info}. - * @param {yfiles.router.SegmentInfo} segment the given segment info for which the {@link yfiles.router.Channel} is created + * @param segment the given segment info for which the {@link } is created * @throws {Stubs.Exceptions.ArgumentError} if the given segment has a different orientation than the other segments already contained in the channel - * @constructor */ constructor(segment:yfiles.router.SegmentInfo); /** * Adds a new {@link yfiles.router.SegmentInfo segment info} to the {@link yfiles.router.Channel channel}. - * @param {yfiles.router.SegmentInfo} segment the segment info to be added to this channel + * @param segment the segment info to be added to this channel * @throws {Stubs.Exceptions.ArgumentError} if the given segment has a different orientation than the other segments already contained in the channel */ addSegment(segment:yfiles.router.SegmentInfo):void; /** * Adds a {@link yfiles.router.SegmentGroup segment group} to this {@link yfiles.router.Channel channel}. - * @param {yfiles.router.SegmentGroup} group the segment group to be added + * @param group the segment group to be added */ addSegmentGroup(group:yfiles.router.SegmentGroup):void; /** * Returns the current location that the given {@link yfiles.router.SegmentInfo segment info} has been assigned within its {@link yfiles.router.SegmentInfoBase#locationRange location range}. - * @param {yfiles.router.SegmentInfo} segmentInfo the segment info for which the current location will be returned - * @returns {number} the current location of the segment info or {@link number#NaN} if no location has been assigned before + * @param segmentInfo the segment info for which the current location will be returned + * @returns the current location of the segment info or {@link #NaN} if no location has been assigned before * @see yfiles.router.Channel#setCurrentLocation */ getCurrentLocation(segmentInfo:yfiles.router.SegmentInfo):number; /** * Returns the {@link yfiles.router.SegmentInfo segment info} with the given index in the list of segments of this {@link yfiles.router.Channel channel}. - * @param {number} index the index of the segment in the list of segments - * @returns {yfiles.router.SegmentInfo} the {@link yfiles.router.SegmentInfo segment info} with the given index in the list of segments + * @param index the index of the segment in the list of segments + * @returns the {@link segment info} with the given index in the list of segments */ getSegment(index:number):yfiles.router.SegmentInfo; /** * Returns the {@link yfiles.router.SegmentGroup segment group} with the given index in this {@link yfiles.router.Channel channel}. - * @param {number} index the index of the segment group - * @returns {yfiles.router.SegmentGroup} the {@link yfiles.router.SegmentGroup segment group} with the given index in this channel + * @param index the index of the segment group + * @returns the {@link segment group} with the given index in this channel */ getSegmentGroup(index:number):yfiles.router.SegmentGroup; /** * Returns the number of {@link yfiles.router.SegmentInfo segment infos} in this channel. - * @returns {number} the number of segment infos in this channel + * @returns the number of segment infos in this channel */ segmentCount():number; /** * Returns the number of {@link yfiles.router.SegmentGroup segment groups} in this {@link yfiles.router.Channel channel}. - * @returns {number} the number of segment groups in this channel + * @returns the number of segment groups in this channel */ segmentGroupCount():number; /** @@ -108474,8 +102791,8 @@ declare namespace system{ * During the distribution of the segments in the channel, different locations can be assigned but only the last one is * finally assigned to the {@link yfiles.router.SegmentInfo segment info}. *

    - * @param {yfiles.router.SegmentInfo} segmentInfo the segment info for which the current location will be set - * @param {number} location the location of the segment info within its location range + * @param segmentInfo the segment info for which the current location will be set + * @param location the location of the segment info within its location range * @see yfiles.router.SegmentInfoBase#location */ setCurrentLocation(segmentInfo:yfiles.router.SegmentInfo,location:number):void; @@ -108524,13 +102841,12 @@ declare namespace system{ *

    * @see yfiles.router.EdgeInfo#getSegmentInfo * @see yfiles.layout.LayoutGraph#setPath - * @class yfiles.router.ChannelBasedPathRouting + * @class */ export interface ChannelBasedPathRouting extends Object{} export class ChannelBasedPathRouting { /** * Creates a new instance of {@link yfiles.router.ChannelBasedPathRouting}. - * @constructor */ constructor(); /** @@ -108539,7 +102855,7 @@ declare namespace system{ * This method is called after the segments have been distributed in the channel but before the final locations of the * segments are assigned to the {@link yfiles.router.SegmentInfo segment info}s. *

    - * @param {yfiles.router.Channel} channel the channel that contains the segment infos for which the alignment should be considered + * @param channel the channel that contains the segment infos for which the alignment should be considered * @see yfiles.router.Channel#getCurrentLocation * @see yfiles.router.SegmentInfoBase#preferredAlignment * @protected @@ -108550,7 +102866,7 @@ declare namespace system{ *

    * This method is called after the order of the {@link yfiles.router.SegmentInfo segment infos} within a channel has been {@link yfiles.router.ChannelBasedPathRouting#optimizeSegmentOrder optimized}. *

    - * @param {yfiles.router.Channel} channel the channel that contains the segment infos for which the locations will be calculated + * @param channel the channel that contains the segment infos for which the locations will be calculated * @see yfiles.router.Channel#setCurrentLocation * @protected */ @@ -108569,11 +102885,11 @@ declare namespace system{ * This method is called in {@link yfiles.router.ChannelBasedPathRouting#route} before edge segments are distributed within the * channels. *

    - * @param {yfiles.algorithms.YList} channels the channels whose segments will be sorted by the {@link yfiles.collections.IComparer. comparator} - * @param {yfiles.router.PathSearchResult} pathSearchResult the {@link yfiles.router.PathSearchResult path search result} containing the {@link yfiles.router.EdgeInfo}s with the - * {@link yfiles.router.SegmentInfo}s for which the comparator will be used - * @param {yfiles.router.PathSearchConfiguration} configuration the {@link yfiles.router.PathSearchConfiguration configuration} used during this path search - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer. comparator} used for sorting the {@link yfiles.router.SegmentInfo}s in a {@link yfiles.router.Channel channel} + * @param channels the channels whose segments will be sorted by the {@link comparator} + * @param pathSearchResult the {@link path search result} containing the {@link }s with the + * {@link }s for which the comparator will be used + * @param configuration the {@link configuration} used during this path search + * @returns a {@link comparator} used for sorting the {@link }s in a {@link channel} * @protected */ createSegmentInfoComparer(channels:yfiles.algorithms.YList,pathSearchResult:yfiles.router.PathSearchResult,configuration:yfiles.router.PathSearchConfiguration):yfiles.collections.IComparer; @@ -108583,7 +102899,7 @@ declare namespace system{ *

    * This method must be called before the edges are {@link yfiles.router.ChannelBasedPathRouting#route routed}. *

    - * @param {yfiles.router.PathSearchConfiguration} configuration the {@link yfiles.router.PathSearchConfiguration configuration} used for the following path routing + * @param configuration the {@link configuration} used for the following path routing * @see yfiles.router.ChannelBasedPathRouting#route */ initialize(configuration:yfiles.router.PathSearchConfiguration):void; @@ -108600,7 +102916,7 @@ declare namespace system{ * {@link yfiles.router.SegmentInfo}s and, if possible, the minimum edge to edge distances and possible grid constraints for the * segments. *

    - * @param {yfiles.router.Channel} channel the channel for which the order of the {@link yfiles.router.SegmentInfo}s is optimized + * @param channel the channel for which the order of the {@link }s is optimized * @protected */ optimizeSegmentOrder(channel:yfiles.router.Channel):void; @@ -108623,8 +102939,8 @@ declare namespace system{ *

    * Finally, the control points for the paths are calculated. *

    - * @param {yfiles.algorithms.EdgeList} edges the {@link yfiles.algorithms.EdgeList list of edges} to be routed - * @param {yfiles.router.PathSearchResult} pathSearchResult the {@link yfiles.router.PathSearchResult path search result} containing the {@link yfiles.router.Path} objects for the edges + * @param edges the {@link list of edges} to be routed + * @param pathSearchResult the {@link path search result} containing the {@link } objects for the edges * @throws {Stubs.Exceptions.InvalidOperationError} if the locations are not within the segment's location range * @see yfiles.router.PathSearchResult#getPath * @see yfiles.router.SegmentInfoBase#locationRange @@ -108637,8 +102953,8 @@ declare namespace system{ * This method is called in {@link yfiles.router.ChannelBasedPathRouting#route} when the edge segments are distributed within the * channels. *

    - * @param {yfiles.collections.IList.} segmentInfos the list of {@link yfiles.router.SegmentInfo}s to be sorted - * @param {yfiles.collections.IComparer.} segmentInfoComparer the comparator used for sorting the list of {@link yfiles.router.SegmentInfo}s + * @param segmentInfos the list of {@link }s to be sorted + * @param segmentInfoComparer the comparator used for sorting the list of {@link }s * @protected */ sortSegmentInfos(segmentInfos:yfiles.collections.IList,segmentInfoComparer:yfiles.collections.IComparer):void; @@ -108657,7 +102973,7 @@ declare namespace system{ * The partitioning strategy is based on binary space partitioning. It divides the partition space recursively in two {@link yfiles.router.PartitionCell cells} * until each cell is completely covered by one or more {@link yfiles.router.Obstacle}s or completely empty. *

    - * @class yfiles.router.DynamicObstacleDecomposition + * @class * @implements {yfiles.router.IObstaclePartition} * @implements {yfiles.router.IDynamicDecomposition} */ @@ -108665,7 +102981,6 @@ declare namespace system{ export class DynamicObstacleDecomposition { /** * Constructs a new instance of {@link yfiles.router.DynamicObstacleDecomposition}. - * @constructor */ constructor(); /** @@ -108675,7 +102990,7 @@ declare namespace system{ * These events occur when the decomposition changes the partition by subdividing cells into sub-cells or when new cells * are created. *

    - * @param {yfiles.router.IDecompositionListener} listener the dynamic decomposition listener to add + * @param listener the dynamic decomposition listener to add * @see yfiles.router.IDecompositionListener */ addDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; @@ -108690,36 +103005,36 @@ declare namespace system{ *

    * This method is also called in {@link yfiles.router.DynamicObstacleDecomposition#init}. *

    - * @param {yfiles.router.PartitionCell} createdCell the newly created cell + * @param createdCell the newly created cell * @see yfiles.router.IDecompositionListener * @protected */ fireCreateCellEvent(createdCell:yfiles.router.PartitionCell):void; /** * Notifies all registered {@link yfiles.router.IDecompositionListener dynamic decomposition listeners} that the given {@link yfiles.router.PartitionCell partition cell} has been finalized. - * @param {yfiles.router.PartitionCell} finalizedCell the cell that has been finalized + * @param finalizedCell the cell that has been finalized * @see yfiles.router.IDecompositionListener * @protected */ fireFinalizeCellEvent(finalizedCell:yfiles.router.PartitionCell):void; /** * Notifies all registered {@link yfiles.router.IDecompositionListener dynamic decomposition listeners} of a subdivision of a given {@link yfiles.router.PartitionCell partition cell}. - * @param {yfiles.router.PartitionCell} cell the cell that has been subdivided - * @param {yfiles.collections.IList.} subCells the new sub-cells resulting from the subdivision of the given cell + * @param cell the cell that has been subdivided + * @param subCells the new sub-cells resulting from the subdivision of the given cell * @see yfiles.router.IDecompositionListener * @protected */ fireSubdividedEvent(cell:yfiles.router.PartitionCell,subCells:yfiles.collections.IList):void; /** * Returns a list of all {@link yfiles.router.PartitionCell}s that intersect or cover the given rectangle. - * @param {yfiles.algorithms.YRectangle} rect the rectangular area whose (partially) covered cells will be returned - * @returns {yfiles.collections.IList.} a list of {@link yfiles.router.PartitionCell}s that (partially) cover the given rectangular area + * @param rect the rectangular area whose (partially) covered cells will be returned + * @returns a list of {@link }s that (partially) cover the given rectangular area */ getCells(rect:yfiles.algorithms.YRectangle):yfiles.collections.IList; /** * Returns all {@link yfiles.router.PartitionCell partition cells} that are completely covered by the given {@link yfiles.router.Obstacle}. - * @param {yfiles.router.Obstacle} obstacle the obstacle for which the covered cells will be returned - * @returns {yfiles.collections.IList.} an unmodifiable list of {@link yfiles.router.PartitionCell} instances that are completely covered by the given obstacle + * @param obstacle the obstacle for which the covered cells will be returned + * @returns an unmodifiable list of {@link } instances that are completely covered by the given obstacle */ getCellsForObstacle(obstacle:yfiles.router.Obstacle):yfiles.collections.IList; /** @@ -108732,19 +103047,19 @@ declare namespace system{ * depending on the cut costs (during {@link yfiles.router.DynamicObstacleDecomposition#getCellsForObstacle}, {@link yfiles.router.DynamicObstacleDecomposition#getCells} * and {@link yfiles.router.DynamicObstacleDecomposition#getNeighbors} methods). *

    - * @param {number} cut the coordinate of the cut - * @param {number} min the left side of the subdivided cell - * @param {number} max the right side of the subdivided cell - * @param {number} orthogonalMin the upper side of the subdivided cell - * @param {number} orthogonalMax the lower side of the subdivided cell - * @returns {number} the cost of a cut with respect to the geometry of the sub-cells + * @param cut the coordinate of the cut + * @param min the left side of the subdivided cell + * @param max the right side of the subdivided cell + * @param orthogonalMin the upper side of the subdivided cell + * @param orthogonalMax the lower side of the subdivided cell + * @returns the cost of a cut with respect to the geometry of the sub-cells * @protected */ getGeometricCutCosts(cut:number,min:number,max:number,orthogonalMin:number,orthogonalMax:number):number; /** * Returns the neighbor {@link yfiles.router.PartitionCell partition cells} of the given cell. - * @param {yfiles.router.PartitionCell} cell the cell whose neighbors will be returned - * @returns {yfiles.collections.IList.} the neighbor cells of the given cell + * @param cell the cell whose neighbors will be returned + * @returns the neighbor cells of the given cell */ getNeighbors(cell:yfiles.router.PartitionCell):yfiles.collections.IList; /** @@ -108757,17 +103072,17 @@ declare namespace system{ * depending on the cut costs (during {@link yfiles.router.DynamicObstacleDecomposition#getCellsForObstacle}, {@link yfiles.router.DynamicObstacleDecomposition#getCells} * and {@link yfiles.router.DynamicObstacleDecomposition#getNeighbors} methods). *

    - * @param {number} numObstaclesInFirstHalf the number of obstacles that lie completely in the first half - * @param {number} numObstaclesInSecondHalf the number of obstacles that lie completely in the second half - * @param {number} numObstaclesOnCut the number of obstacles that lie on the cut - * @returns {number} the cost of a cut with respect to the subdivided obstacles + * @param numObstaclesInFirstHalf the number of obstacles that lie completely in the first half + * @param numObstaclesInSecondHalf the number of obstacles that lie completely in the second half + * @param numObstaclesOnCut the number of obstacles that lie on the cut + * @returns the cost of a cut with respect to the subdivided obstacles * @protected */ getObstacleCutCosts(numObstaclesInFirstHalf:number,numObstaclesInSecondHalf:number,numObstaclesOnCut:number):number; /** * Returns all {@link yfiles.router.Obstacle}s that cover the given {@link yfiles.router.PartitionCell partition cell}. - * @param {yfiles.router.PartitionCell} cell the partition cell for which the obstacles will be returned - * @returns {yfiles.collections.IList.} an unmodifiable list of {@link yfiles.router.Obstacle} instances that cover the given cell + * @param cell the partition cell for which the obstacles will be returned + * @returns an unmodifiable list of {@link } instances that cover the given cell */ getObstacles(cell:yfiles.router.PartitionCell):yfiles.collections.IList; /** @@ -108775,14 +103090,14 @@ declare namespace system{ *

    * This method must be called before any other method is invoked. *

    - * @param {yfiles.collections.IList.} obstacles a list of {@link yfiles.router.Obstacle} objects - * @param {yfiles.algorithms.YRectangle} partitionBounds the bounds of the partition + * @param obstacles a list of {@link } objects + * @param partitionBounds the bounds of the partition */ init(obstacles:yfiles.collections.IList,partitionBounds:yfiles.algorithms.YRectangle):void; /** * Removes the given {@link yfiles.router.IDecompositionListener dynamic decomposition listener} such that it no longer receives {@link yfiles.router.PartitionCell} subdivision * and creation events from this decomposition. - * @param {yfiles.router.IDecompositionListener} listener the dynamic decomposition listener to remove + * @param listener the dynamic decomposition listener to remove * @see yfiles.router.IDecompositionListener */ removeDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; @@ -108822,20 +103137,19 @@ declare namespace system{ } /** * This class encapsulates the information that determines the route of a specific edge within a specific {@link yfiles.router.PartitionCell partition cell}. - * @class yfiles.router.EdgeCellInfo + * @class */ export interface EdgeCellInfo extends Object{} export class EdgeCellInfo { /** * Creates a new {@link yfiles.router.EdgeCellInfo} instance. - * @param {yfiles.algorithms.Edge} edge the edge whose routing in the cell is described - * @param {yfiles.router.PartitionCell} cell the cell in which the edge is routed - * @param {yfiles.router.OrthogonalInterval} enterInterval the interval that the edge uses to enter the cell - * @param {yfiles.router.OrthogonalInterval} exitInterval the interval that the edge uses to exit the cell - * @param {yfiles.layout.Direction} enterDirection the direction in which the edge enters the cell - * @param {yfiles.layout.Direction} exitDirection the direction in which the edge exits the cell - * @param {number} enterSegmentNo the index of the edge segment that enters the cell - * @constructor + * @param edge the edge whose routing in the cell is described + * @param cell the cell in which the edge is routed + * @param enterInterval the interval that the edge uses to enter the cell + * @param exitInterval the interval that the edge uses to exit the cell + * @param enterDirection the direction in which the edge enters the cell + * @param exitDirection the direction in which the edge exits the cell + * @param enterSegmentNo the index of the edge segment that enters the cell */ constructor(edge:yfiles.algorithms.Edge,cell:yfiles.router.PartitionCell,enterInterval:yfiles.router.OrthogonalInterval,exitInterval:yfiles.router.OrthogonalInterval,enterDirection:yfiles.layout.Direction,exitDirection:yfiles.layout.Direction,enterSegmentNo:number); /** @@ -108925,54 +103239,53 @@ declare namespace system{ /** * This class encapsulates the information required to route an edge with a path routing algorithm. * @see yfiles.router.ChannelBasedPathRouting - * @class yfiles.router.EdgeInfo + * @class */ export interface EdgeInfo extends Object{} export class EdgeInfo { /** * Creates a new {@link yfiles.router.EdgeInfo} instance. - * @param {yfiles.router.Path} path the path that will be used for routing the edge - * @param {yfiles.router.PathSearchConfiguration} configuration the {@link yfiles.router.PathSearchConfiguration configuration} of the path search algorithm - * @constructor + * @param path the path that will be used for routing the edge + * @param configuration the {@link configuration} of the path search algorithm */ constructor(path:yfiles.router.Path,configuration:yfiles.router.PathSearchConfiguration); /** * Calculates an array of {@link yfiles.algorithms.LineSegment}s created by the {@link yfiles.router.EdgeInfo#calculatePathPoints calculated path points}. - * @returns {Array.} an array of {@link yfiles.algorithms.LineSegment}s created by the calculated path points + * @returns an array of {@link }s created by the calculated path points */ calculateLineSegments():yfiles.algorithms.LineSegment[]; /** * Calculates a list of {@link yfiles.algorithms.YPoint}s containing the source port, bend and target port locations. - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.algorithms.YPoint}s containing the source port, bend and target port locations + * @returns a list of {@link }s containing the source port, bend and target port locations */ calculatePathPoints():yfiles.algorithms.YList; /** * Returns the {@link yfiles.router.EdgeCellInfo} of the given {@link yfiles.router.CellEntrance} in the path. - * @param {yfiles.router.CellEntrance} entrance the entrance for which the {@link yfiles.router.EdgeCellInfo} will be returned - * @returns {yfiles.router.EdgeCellInfo} the {@link yfiles.router.EdgeCellInfo} of the given {@link yfiles.router.CellEntrance} in the path + * @param entrance the entrance for which the {@link } will be returned + * @returns the {@link } of the given {@link } in the path */ getEdgeCellInfo(entrance:yfiles.router.CellEntrance):yfiles.router.EdgeCellInfo; /** * Returns the {@link yfiles.router.SegmentInfo} of the segment following the segment of the given {@link yfiles.router.SegmentInfo}. - * @param {yfiles.router.SegmentInfo} segment the segment info for which the next segment info will be returned - * @returns {yfiles.router.SegmentInfo} the segment info of the segment following the segment of the given segment info + * @param segment the segment info for which the next segment info will be returned + * @returns the segment info of the segment following the segment of the given segment info */ getNextSegment(segment:yfiles.router.SegmentInfo):yfiles.router.SegmentInfo; /** * Returns the {@link yfiles.router.SegmentInfo} of the segment preceding the segment of the given {@link yfiles.router.SegmentInfo}. - * @param {yfiles.router.SegmentInfo} segment the segment info for which the previous segment info will be returned - * @returns {yfiles.router.SegmentInfo} the segment info of the segment preceding the segment of the given segment info + * @param segment the segment info for which the previous segment info will be returned + * @returns the segment info of the segment preceding the segment of the given segment info */ getPreviousSegment(segment:yfiles.router.SegmentInfo):yfiles.router.SegmentInfo; /** * Returns the {@link yfiles.router.SegmentInfo} of the edge segment with the given index. - * @param {number} segmentIndex the index of the edge segment for which the segment info will be returned - * @returns {yfiles.router.SegmentInfo} the {@link yfiles.router.SegmentInfo} of the edge segment with the given index + * @param segmentIndex the index of the edge segment for which the segment info will be returned + * @returns the {@link } of the edge segment with the given index */ getSegmentInfo(segmentIndex:number):yfiles.router.SegmentInfo; /** * Returns the number of segments of the edge. - * @returns {number} the number of segments of the edge + * @returns the number of segments of the edge */ segmentCount():number; /** @@ -109027,18 +103340,17 @@ declare namespace system{ * This class is designed such that it allows future additions of new getter methods. *

    * @see yfiles.router.EdgeRouter#EDGE_LAYOUT_DESCRIPTOR_DP_KEY - * @class yfiles.router.EdgeLayoutDescriptor + * @class */ export interface EdgeLayoutDescriptor extends Object{} export class EdgeLayoutDescriptor { /** * Creates a new instance of an {@link yfiles.router.EdgeLayoutDescriptor} with the default settings. - * @constructor */ constructor(); /** * Creates a copy of this {@link yfiles.router.EdgeLayoutDescriptor} instance. - * @returns {yfiles.router.EdgeLayoutDescriptor} a copy of this {@link yfiles.router.EdgeLayoutDescriptor} instance + * @returns a copy of this {@link } instance */ createCopy():yfiles.router.EdgeLayoutDescriptor; /** @@ -109178,20 +103490,19 @@ declare namespace system{ * {@link yfiles.algorithms.IDataProvider}s are registered with the graph with key {@link yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY} * for source groups or key {@link yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY} for target groups. *

    - * @class yfiles.router.EdgeRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface EdgeRouter extends yfiles.layout.LayoutStageBase{} export class EdgeRouter { /** * Creates a new {@link yfiles.router.EdgeRouter} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** * Checks the sizes of the nodes to be non-zero. - * @param {yfiles.layout.LayoutGraph} g The graph to check. + * @param g The graph to check. * @protected */ checkNodeSize(g:yfiles.layout.LayoutGraph):void; @@ -109201,7 +103512,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} after the edge routes are calculated. It may be overridden * in order to provide a custom implementation for cleaning up a {@link yfiles.router.GraphPartition} instance. *

    - * @param {yfiles.router.GraphPartition} partition the given {@link yfiles.router.GraphPartition} instance + * @param partition the given {@link } instance * @see yfiles.router.EdgeRouter#configureGraphPartition * @see yfiles.router.EdgeRouter#registeredPartitionExtensions * @protected @@ -109213,7 +103524,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to adjust the configuration of the {@link yfiles.router.GraphPartition} instance. *

    - * @param {yfiles.router.GraphPartition} partition the given {@link yfiles.router.GraphPartition} instance + * @param partition the given {@link } instance * @see yfiles.router.EdgeRouter#registeredPartitionExtensions * @see yfiles.router.EdgeRouter#cleanUpGraphPartition * @protected @@ -109225,7 +103536,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to adjust the configuration of a {@link yfiles.router.PathSearch} instance. *

    - * @param {yfiles.router.PathSearch} pathSearch a {@link yfiles.router.PathSearch} instance + * @param pathSearch a {@link } instance * @see yfiles.router.EdgeRouter#createPathSearch * @see yfiles.router.EdgeRouter#registeredPathSearchExtensions * @protected @@ -109237,9 +103548,9 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to create a new {@link yfiles.router.PathSearchConfiguration} object with custom configuration. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.layout.GroupingSupport} grouping the grouping structure of the graph - * @returns {yfiles.router.PathSearchConfiguration} a {@link yfiles.router.PathSearchConfiguration} instance + * @param graph the input graph + * @param grouping the grouping structure of the graph + * @returns a {@link } instance * @protected */ createConfiguration(graph:yfiles.layout.LayoutGraph,grouping:yfiles.layout.GroupingSupport):yfiles.router.PathSearchConfiguration; @@ -109252,9 +103563,9 @@ declare namespace system{ *

    * By default, this method returns an instance of the default implementation. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.router.PathSearchConfiguration} configuration the given configuration for the path searching process - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} instance + * @param graph the input graph + * @param configuration the given configuration for the path searching process + * @returns a {@link } instance * @protected */ createDefaultEdgeOrderComparer(graph:yfiles.layout.LayoutGraph,configuration:yfiles.router.PathSearchConfiguration):yfiles.collections.IComparer; @@ -109267,8 +103578,8 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to create a new {@link yfiles.router.GraphPartition} object with a custom configuration. *

    - * @param {yfiles.router.IObstaclePartition} decomposition the current {@link yfiles.router.IObstaclePartition} - * @returns {yfiles.router.GraphPartition} a {@link yfiles.router.GraphPartition} instance + * @param decomposition the current {@link } + * @returns a {@link } instance * @see yfiles.router.EdgeRouter#configureGraphPartition * @see yfiles.router.EdgeRouter#registeredPartitionExtensions */ @@ -109280,7 +103591,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to create a new {@link yfiles.router.DynamicObstacleDecomposition} object with custom configuration. *

    - * @returns {yfiles.router.DynamicObstacleDecomposition} a {@link yfiles.router.DynamicObstacleDecomposition} instance + * @returns a {@link } instance * @see yfiles.router.EdgeRouter#createGraphPartition * @protected */ @@ -109292,7 +103603,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to create a new {@link yfiles.router.ChannelBasedPathRouting} object with custom configuration. *

    - * @returns {yfiles.router.ChannelBasedPathRouting} a {@link yfiles.router.ChannelBasedPathRouting} instance + * @returns a {@link } instance * @protected */ createPathRouting():yfiles.router.ChannelBasedPathRouting; @@ -109301,7 +103612,7 @@ declare namespace system{ *

    * This method may be overridden in order to create a new {@link yfiles.router.PathSearch} object with custom configuration. *

    - * @returns {yfiles.router.PathSearch} a {@link yfiles.router.PathSearch} instance + * @returns a {@link } instance * @see yfiles.router.EdgeRouter#configurePathSearch * @see yfiles.router.EdgeRouter#registeredPathSearchExtensions * @protected @@ -109313,9 +103624,9 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to create a new {@link yfiles.router.PathSearchContext} object with custom configuration. *

    - * @param {yfiles.router.PathSearch} pathSearch a given {@link yfiles.router.PathSearch} instance - * @param {yfiles.router.PathSearchConfiguration} configuration a given configuration for the path searching process - * @returns {yfiles.router.PathSearchContext} a {@link yfiles.router.PathSearchContext} instance + * @param pathSearch a given {@link } instance + * @param configuration a given configuration for the path searching process + * @returns a {@link } instance * @protected */ createPathSearchContext(pathSearch:yfiles.router.PathSearch,configuration:yfiles.router.PathSearchConfiguration):yfiles.router.PathSearchContext; @@ -109329,8 +103640,8 @@ declare namespace system{ *

    * This method may be overridden in order to create an {@link yfiles.router.EdgeLayoutDescriptor} with custom configuration. *

    - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {yfiles.router.EdgeLayoutDescriptor} the current {@link yfiles.router.EdgeLayoutDescriptor} instance for a given edge + * @param edge the given edge + * @returns the current {@link } instance for a given edge * @see yfiles.router.EdgeRouter#defaultEdgeLayoutDescriptor * @see yfiles.router.EdgeRouter#EDGE_LAYOUT_DESCRIPTOR_DP_KEY */ @@ -109345,9 +103656,9 @@ declare namespace system{ * This method may be overridden in order to determine differently whether or not a given edge is considered to be * selected. *

    - * @param {yfiles.algorithms.Edge} edge the given edge - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {boolean} true if the given edge is selected, false otherwise + * @param edge the given edge + * @param graph the input graph + * @returns true if the given edge is selected, false otherwise */ isAffected(edge:yfiles.algorithms.Edge,graph:yfiles.algorithms.Graph):boolean; /** @@ -109649,7 +103960,7 @@ declare namespace system{ * re-dispatches the decomposition notifications to its extensions. *

    * @see yfiles.router.IGraphPartitionExtension - * @class yfiles.router.GraphPartition + * @class * @implements {yfiles.router.IPartition} * @implements {yfiles.router.IDynamicDecomposition} * @implements {yfiles.router.IDecompositionListener} @@ -109658,8 +103969,7 @@ declare namespace system{ export class GraphPartition { /** * Creates a new {@link yfiles.router.GraphPartition} instance using the given {@link yfiles.router.GraphPartition#partition delegate inner obstacle partition}. - * @param {yfiles.router.IObstaclePartition} partition the delegate inner obstacle partition - * @constructor + * @param partition the delegate inner obstacle partition */ constructor(partition:yfiles.router.IObstaclePartition); /** @@ -109668,7 +103978,7 @@ declare namespace system{ * The listener will be notified upon dynamic decomposition events. If it is a {@link yfiles.router.IGraphPartitionExtension}, * method {@link yfiles.router.IGraphPartitionExtension#preparePartition} is called during {@link yfiles.router.GraphPartition#init initialization}. *

    - * @param {yfiles.router.IDecompositionListener} listener the listener to be added + * @param listener the listener to be added */ addDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; /** @@ -109685,23 +103995,23 @@ declare namespace system{ *

    * All obstacles created via this method are delegated to the {@link yfiles.router.GraphPartition#partition inner partition} upon {@link yfiles.router.GraphPartition#init initialization}. *

    - * @param {yfiles.algorithms.YRectangle} bounds the bounds of the obstacle - * @param {Object} data the additional data that should be associated with the obstacle - * @returns {yfiles.router.Obstacle} a new {@link yfiles.router.Obstacle} using the given bounds and data + * @param bounds the bounds of the obstacle + * @param data the additional data that should be associated with the obstacle + * @returns a new {@link } using the given bounds and data */ createObstacle(bounds:yfiles.algorithms.YRectangle,data:Object):yfiles.router.Obstacle; /** * Returns a list of all {@link yfiles.router.PartitionCell}s that intersect or cover the given rectangle by delegating to the * corresponding method of the {@link yfiles.router.GraphPartition#partition inner partition}. - * @param {yfiles.algorithms.YRectangle} rect the rectangular area whose (partially) covered cells will be returned - * @returns {yfiles.collections.IList.} a list containing (partially) covered {@link yfiles.router.PartitionCell}s + * @param rect the rectangular area whose (partially) covered cells will be returned + * @returns a list containing (partially) covered {@link }s * @see yfiles.router.IPartition#getCells */ getCells(rect:yfiles.algorithms.YRectangle):yfiles.collections.IList; /** * Returns all {@link yfiles.router.PartitionCell}s that are completely covered by the bounds of the given node. - * @param {yfiles.algorithms.Node} node the node for which the covered cells will be returned - * @returns {yfiles.collections.IList.} an unmodifiable list of {@link yfiles.router.PartitionCell} instances that are completely covered by the bounds of the given + * @param node the node for which the covered cells will be returned + * @returns an unmodifiable list of {@link } instances that are completely covered by the bounds of the given * node * @throws {Stubs.Exceptions.ArgumentError} if the node is unknown */ @@ -109710,27 +104020,27 @@ declare namespace system{ * Returns a list of all * {@link yfiles.router.PartitionCell}s that are neighbors of the given cell, i.e., those cells that have a common border segment * with the given cell. - * @param {yfiles.router.PartitionCell} cell the cell whose neighbors will be returned - * @returns {yfiles.collections.IList.} a list of {@link yfiles.router.PartitionCell}s that are neighbors of the given cell + * @param cell the cell whose neighbors will be returned + * @returns a list of {@link }s that are neighbors of the given cell */ getNeighbors(cell:yfiles.router.PartitionCell):yfiles.collections.IList; /** * Returns a list of all {@link yfiles.algorithms.Node}s whose bounds intersect or cover the bounds of the given cell. - * @param {yfiles.router.PartitionCell} cell the cell - * @returns {yfiles.collections.IList.} a list of {@link yfiles.algorithms.Node}s that are intersected by the given cell + * @param cell the cell + * @returns a list of {@link }s that are intersected by the given cell */ getNodes(cell:yfiles.router.PartitionCell):yfiles.collections.IList; /** * Returns the {@link yfiles.router.Obstacle} that has been created earlier for the given data object. - * @param {Object} data the given data for which the obstacle will be returned - * @returns {yfiles.router.Obstacle} the {@link yfiles.router.Obstacle} that has been created earlier for the given data object + * @param data the given data for which the obstacle will be returned + * @returns the {@link } that has been created earlier for the given data object */ getObstacle(data:Object):yfiles.router.Obstacle; /** * Returns all {@link yfiles.router.Obstacle}s covering the given {@link yfiles.router.PartitionCell} by delegating to the corresponding * method of the {@link yfiles.router.GraphPartition#partition inner partition}. - * @param {yfiles.router.PartitionCell} cell the cell whose obstacles will be returned - * @returns {yfiles.collections.IList.} a list of {@link yfiles.router.Obstacle}s that cover the given cell + * @param cell the cell whose obstacles will be returned + * @returns a list of {@link }s that cover the given cell * @see yfiles.router.IObstaclePartition#getObstacles */ getObstacles(cell:yfiles.router.PartitionCell):yfiles.collections.IList; @@ -109749,7 +104059,7 @@ declare namespace system{ * In the case where the {@link yfiles.router.GraphPartition#partition delegate partition} is of type {@link yfiles.router.IDynamicDecomposition}, this {@link yfiles.router.GraphPartition} * will also be added as {@link yfiles.router.IDecompositionListener} to it. *

    - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration used by path search algorithms + * @param configuration the configuration used by path search algorithms * @see yfiles.router.GraphPartition#clear * @see yfiles.router.IGraphPartitionExtension#preparePartition * @see yfiles.router.GraphPartition#addDynamicDecompositionListener @@ -109761,7 +104071,7 @@ declare namespace system{ *

    * This method is a callback after a {@link yfiles.router.PartitionCell} has been created. *

    - * @param {yfiles.router.PartitionCell} createdCell the newly created {@link yfiles.router.PartitionCell} + * @param createdCell the newly created {@link } */ onCellCreated(createdCell:yfiles.router.PartitionCell):void; /** @@ -109770,7 +104080,7 @@ declare namespace system{ *

    * This method is a callback after a {@link yfiles.router.PartitionCell} has been finalized and won't be further subdivided. *

    - * @param {yfiles.router.PartitionCell} finalizedCell the cell that has been finalized + * @param finalizedCell the cell that has been finalized */ onCellFinalized(finalizedCell:yfiles.router.PartitionCell):void; /** @@ -109779,8 +104089,8 @@ declare namespace system{ *

    * This method is a callback after a {@link yfiles.router.PartitionCell} has been subdivided into several sub-cells. *

    - * @param {yfiles.router.PartitionCell} cell the cell that has been subdivided - * @param {yfiles.collections.IList.} subCells the sub-cells resulting from the subdivision of the given {@link yfiles.router.PartitionCell} + * @param cell the cell that has been subdivided + * @param subCells the sub-cells resulting from the subdivision of the given {@link } */ onCellSubdivided(cell:yfiles.router.PartitionCell,subCells:yfiles.collections.IList):void; /** @@ -109788,7 +104098,7 @@ declare namespace system{ *

    * The listener will not be notified of dynamic decomposition events anymore. *

    - * @param {yfiles.router.IDecompositionListener} listener the listener to be removed + * @param listener the listener to be removed */ removeDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; /** @@ -109817,14 +104127,13 @@ declare namespace system{ *

    * @see yfiles.router.GraphPartitionExtensionAdapter#configuration * @see yfiles.router.GraphPartitionExtensionAdapter#graphPartition - * @class yfiles.router.GraphPartitionExtensionAdapter + * @class * @implements {yfiles.router.IGraphPartitionExtension} */ export interface GraphPartitionExtensionAdapter extends Object,yfiles.router.IGraphPartitionExtension{} export class GraphPartitionExtensionAdapter { /** * Creates a new instance of {@link yfiles.router.GraphPartitionExtensionAdapter}. - * @constructor */ constructor(); /** @@ -109833,25 +104142,25 @@ declare namespace system{ cleanup():void; /** * - * @param {yfiles.router.PartitionCell} createdCell + * @param createdCell */ onCellCreated(createdCell:yfiles.router.PartitionCell):void; /** * - * @param {yfiles.router.PartitionCell} finalizedCell + * @param finalizedCell */ onCellFinalized(finalizedCell:yfiles.router.PartitionCell):void; /** * - * @param {yfiles.router.PartitionCell} cell - * @param {yfiles.collections.IList.} subCells + * @param cell + * @param subCells */ onCellSubdivided(cell:yfiles.router.PartitionCell,subCells:yfiles.collections.IList):void; /** * Stores the given {@link yfiles.router.PathSearchConfiguration} and {@link yfiles.router.GraphPartition} such that they are accessible * through {@link yfiles.router.GraphPartitionExtensionAdapter#configuration} and {@link yfiles.router.GraphPartitionExtensionAdapter#graphPartition}, respectively. - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration used for the path search - * @param {yfiles.router.GraphPartition} graphPartition the graph partition that uses this extension + * @param configuration the configuration used for the path search + * @param graphPartition the graph partition that uses this extension */ preparePartition(configuration:yfiles.router.PathSearchConfiguration,graphPartition:yfiles.router.GraphPartition):void; /** @@ -109874,7 +104183,7 @@ declare namespace system{ *

    * The grid is defined by its origin and the spacing between the equidistant grid lines. *

    - * @class yfiles.router.Grid + * @class * @final */ export interface Grid extends Object{} @@ -109884,10 +104193,9 @@ declare namespace system{ *

    * The spacing between the grid lines must be at least 1. If the given spacing is smaller, value 1 is assumed. *

    - * @param {number} originX the x-coordinate of the origin of the grid - * @param {number} originY the y-coordinate of the origin of the grid - * @param {number} spacing the spacing between the grid lines - * @constructor + * @param originX the x-coordinate of the origin of the grid + * @param originY the y-coordinate of the origin of the grid + * @param spacing the spacing between the grid lines */ constructor(originX:number,originY:number,spacing:number); /** @@ -109919,7 +104227,7 @@ declare namespace system{ /** * Adds the given {@link yfiles.router.IDecompositionListener} that will be notified of dynamic decomposition events to the * {@link yfiles.router.IPartition}. - * @param {yfiles.router.IDecompositionListener} listener the listener to be added + * @param listener the listener to be added * @abstract */ addDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; @@ -109928,7 +104236,7 @@ declare namespace system{ *

    * The {@link yfiles.router.IDecompositionListener} will be no more notified of dynamic decomposition events. *

    - * @param {yfiles.router.IDecompositionListener} listener the listener to be removed + * @param listener the listener to be removed * @abstract */ removeDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; @@ -109947,13 +104255,13 @@ declare namespace system{ export interface IDecompositionListener extends Object{ /** * Callback after the new given {@link yfiles.router.PartitionCell} has been created. - * @param {yfiles.router.PartitionCell} createdCell the newly created {@link yfiles.router.PartitionCell} + * @param createdCell the newly created {@link } * @abstract */ onCellCreated(createdCell:yfiles.router.PartitionCell):void; /** * Callback after the given {@link yfiles.router.PartitionCell} has been finalized and won't be further subdivided. - * @param {yfiles.router.PartitionCell} finalizedCell the cell that has been finalized + * @param finalizedCell the cell that has been finalized * @abstract */ onCellFinalized(finalizedCell:yfiles.router.PartitionCell):void; @@ -109962,8 +104270,8 @@ declare namespace system{ *

    * {@link yfiles.router.IDecompositionListener} may not modify the list of sub-cells. *

    - * @param {yfiles.router.PartitionCell} cell the cell that has been subdivided - * @param {yfiles.collections.IList.} subCells the sub-cells resulting from the subdivision of the given {@link yfiles.router.PartitionCell} + * @param cell the cell that has been subdivided + * @param subCells the sub-cells resulting from the subdivision of the given {@link } * @abstract */ onCellSubdivided(cell:yfiles.router.PartitionCell,subCells:yfiles.collections.IList):void; @@ -109988,11 +104296,11 @@ declare namespace system{ /** * Appends additional enter intervals to the given list of enter intervals for moving from the {@link yfiles.router.PartitionCell partition cell} of the * current {@link yfiles.router.CellEntrance} to the neighboring cell. - * @param {yfiles.router.CellEntrance} currentEntrance the current {@link yfiles.router.CellEntrance} that is exited - * @param {yfiles.router.PartitionCell} enteredCell the neighboring cell that will be entered - * @param {yfiles.router.OrthogonalInterval} commonInterval the common interval of the left and entered partition cells - * @param {yfiles.collections.IList.} allEnterIntervals the list to which additional enter intervals have to be appended - * @param {yfiles.router.PathSearchContext} context the context of the path search + * @param currentEntrance the current {@link } that is exited + * @param enteredCell the neighboring cell that will be entered + * @param commonInterval the common interval of the left and entered partition cells + * @param allEnterIntervals the list to which additional enter intervals have to be appended + * @param context the context of the path search * @abstract */ appendEnterIntervals(currentEntrance:yfiles.router.CellEntrance,enteredCell:yfiles.router.PartitionCell,commonInterval:yfiles.router.OrthogonalInterval,allEnterIntervals:yfiles.collections.IList,context:yfiles.router.PathSearchContext):void; @@ -110028,8 +104336,8 @@ declare namespace system{ * is initialized. Implementations may use the graph upon which the given {@link yfiles.router.GraphPartition} is based to * initialize themselves and/or to {@link yfiles.router.GraphPartition#createObstacle add obstacles} to the list with which {@link yfiles.router.IObstaclePartition} is initialized. *

    - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration used for the path search - * @param {yfiles.router.GraphPartition} graphPartition the graph partition that uses this extension + * @param configuration the configuration used for the path search + * @param graphPartition the graph partition that uses this extension * @abstract */ preparePartition(configuration:yfiles.router.PathSearchConfiguration,graphPartition:yfiles.router.GraphPartition):void; @@ -110069,15 +104377,15 @@ declare namespace system{ clear():void; /** * Returns all {@link yfiles.router.PartitionCell}s that are completely covered by the given {@link yfiles.router.Obstacle}. - * @param {yfiles.router.Obstacle} obstacle the obstacle for which the covered cells will be returned - * @returns {yfiles.collections.IList.} an unmodifiable list of {@link yfiles.router.PartitionCell} instances that are completely covered by the given obstacle + * @param obstacle the obstacle for which the covered cells will be returned + * @returns an unmodifiable list of {@link } instances that are completely covered by the given obstacle * @abstract */ getCellsForObstacle(obstacle:yfiles.router.Obstacle):yfiles.collections.IList; /** * Returns all {@link yfiles.router.Obstacle}s that cover the given {@link yfiles.router.PartitionCell}. - * @param {yfiles.router.PartitionCell} cell the partition cell for which the obstacles will be returned - * @returns {yfiles.collections.IList.} an unmodifiable list of {@link yfiles.router.Obstacle} instances that cover the given cell + * @param cell the partition cell for which the obstacles will be returned + * @returns an unmodifiable list of {@link } instances that cover the given cell * @abstract */ getObstacles(cell:yfiles.router.PartitionCell):yfiles.collections.IList; @@ -110087,8 +104395,8 @@ declare namespace system{ *

    * Unused partitions must be cleared using method {@link yfiles.router.IObstaclePartition#clear}. *

    - * @param {yfiles.collections.IList.} obstacles a list of {@link yfiles.router.Obstacle}s that have to be considered by the partition - * @param {yfiles.algorithms.YRectangle} bounds the bounds of the partition + * @param obstacles a list of {@link }s that have to be considered by the partition + * @param bounds the bounds of the partition * @see yfiles.router.IObstaclePartition#clear * @abstract */ @@ -110109,8 +104417,8 @@ declare namespace system{ export interface IPartition extends Object{ /** * Returns a list of all {@link yfiles.router.PartitionCell}s that intersect or cover the given rectangle. - * @param {yfiles.algorithms.YRectangle} rect the rectangular area whose (partially) covered cells will be returned - * @returns {yfiles.collections.IList.} a list of {@link yfiles.router.PartitionCell}s that (partially) cover the given rectangular area + * @param rect the rectangular area whose (partially) covered cells will be returned + * @returns a list of {@link }s that (partially) cover the given rectangular area * @abstract */ getCells(rect:yfiles.algorithms.YRectangle):yfiles.collections.IList; @@ -110118,8 +104426,8 @@ declare namespace system{ * Returns a list of all * {@link yfiles.router.PartitionCell}s that are neighbors of the given cell, i.e., those cells that have a common border segment * with the given cell. - * @param {yfiles.router.PartitionCell} cell the cell whose neighbors will be returned - * @returns {yfiles.collections.IList.} a list of {@link yfiles.router.PartitionCell}s that are neighbors of the given cell + * @param cell the cell whose neighbors will be returned + * @returns a list of {@link }s that are neighbors of the given cell * @abstract */ getNeighbors(cell:yfiles.router.PartitionCell):yfiles.collections.IList; @@ -110136,7 +104444,7 @@ declare namespace system{ }; /** * This class represents a one-dimensional closed interval. - * @class yfiles.router.Interval + * @class */ export interface Interval extends Object{} export class Interval { @@ -110146,9 +104454,8 @@ declare namespace system{ * The upper and lower bound of the two given values are determined automatically, i.e., the smaller one will be treated as * the lower bound and the larger one as the upper bound. *

    - * @param {number} bound1 the first interval bound - * @param {number} bound2 the second interval bound - * @constructor + * @param bound1 the first interval bound + * @param bound2 the second interval bound */ constructor(bound1:number,bound2:number); /** @@ -110157,9 +104464,9 @@ declare namespace system{ * The bridging interval is null if the given intervals intersect each other. Otherwise, the bridging interval is * [minimum of upper bounds, maximum of lower bounds]. *

    - * @param {yfiles.router.Interval} i1 the first interval - * @param {yfiles.router.Interval} i2 the second interval - * @returns {yfiles.router.Interval} the bridging interval between the given intervals or null if the intervals intersect + * @param i1 the first interval + * @param i2 the second interval + * @returns the bridging interval between the given intervals or null if the intervals intersect * @static */ static calculateBridge(i1:yfiles.router.Interval,i2:yfiles.router.Interval):yfiles.router.Interval; @@ -110169,9 +104476,9 @@ declare namespace system{ * The intersection is null if the given intervals do not intersect each other. Otherwise, the intersection is * [maximum of lower bounds, minimum of upper bounds]. *

    - * @param {yfiles.router.Interval} i1 the first interval - * @param {yfiles.router.Interval} i2 the second interval - * @returns {yfiles.router.Interval} the intersection of the given intervals or null if the intervals do not intersect + * @param i1 the first interval + * @param i2 the second interval + * @returns the intersection of the given intervals or null if the intervals do not intersect * @static */ static calculateIntersection(i1:yfiles.router.Interval,i2:yfiles.router.Interval):yfiles.router.Interval; @@ -110180,9 +104487,9 @@ declare namespace system{ *

    * The first interval spans the rectangle in horizontal dimension, the second interval in vertical dimension. *

    - * @param {yfiles.router.Interval} horizontal the interval that defines the location and length of the rectangle in horizontal dimension - * @param {yfiles.router.Interval} vertical the interval that defines the location and length of the rectangle in vertical dimension - * @returns {yfiles.algorithms.YRectangle} the spanning rectangle between the given intervals + * @param horizontal the interval that defines the location and length of the rectangle in horizontal dimension + * @param vertical the interval that defines the location and length of the rectangle in vertical dimension + * @returns the spanning rectangle between the given intervals * @static */ static calculateSpanningRectangle(horizontal:yfiles.router.Interval,vertical:yfiles.router.Interval):yfiles.algorithms.YRectangle; @@ -110192,9 +104499,9 @@ declare namespace system{ * The union is between the minimum of the lower bound of the given interval and the given value and the maximum of the * upper bound of the given interval and the given value. *

    - * @param {yfiles.router.Interval} interval the interval to be extended - * @param {number} value the value to be in the union - * @returns {yfiles.router.Interval} the union of the given interval and the given value + * @param interval the interval to be extended + * @param value the value to be in the union + * @returns the union of the given interval and the given value * @static */ static calculateUnion(interval:yfiles.router.Interval,value:number):yfiles.router.Interval; @@ -110203,16 +104510,16 @@ declare namespace system{ *

    * The union is [minimum of lower bounds, maximum of upper bounds]. *

    - * @param {yfiles.router.Interval} i1 the first interval - * @param {yfiles.router.Interval} i2 the second interval - * @returns {yfiles.router.Interval} the union of the given intervals + * @param i1 the first interval + * @param i2 the second interval + * @returns the union of the given intervals * @static */ static calculateUnion(i1:yfiles.router.Interval,i2:yfiles.router.Interval):yfiles.router.Interval; /** * Checks whether or not the given value lies within the interval. - * @param {number} value the value to check - * @returns {boolean} true if the value lies within the interval, false otherwise + * @param value the value to check + * @returns true if the value lies within the interval, false otherwise */ contains(value:number):boolean; /** @@ -110221,19 +104528,19 @@ declare namespace system{ * The given interval covers this interval, if other lower bound - epsilon <= this lower bound and * this upper bound <= other upper bound + epsilon. *

    - * @param {yfiles.router.Interval} other the other interval - * @param {number} [eps=1E-06] the epsilon value that determines the extended range of the other interval - * @returns {boolean} true if this interval is fully covered by the other interval, false otherwise + * @param other the other interval + * @param [eps=1E-06] the epsilon value that determines the extended range of the other interval + * @returns true if this interval is fully covered by the other interval, false otherwise */ coveredBy(other:yfiles.router.Interval,eps?:number):boolean; /** * Returns the distance between this {@link yfiles.router.Interval interval} and the given {@link yfiles.router.Interval interval}. *

    - * If the intervals intersect, the distance is 0. Otherwise, it is equal to + * If the intervals {@link yfiles.router.Interval#intersects intersect}, the distance is 0. Otherwise, it is equal to * dist(minimum of upper bounds, maximum of lower bounds). *

    - * @param {yfiles.router.Interval} other the other interval to which the distance is calculated - * @returns {number} the distance between this interval and the given interval + * @param other the other interval to which the distance is calculated + * @returns the distance between this interval and the given interval */ distanceTo(other:yfiles.router.Interval):number; /** @@ -110242,14 +104549,14 @@ declare namespace system{ * If this interval contains the specified value, the distance is 0. Otherwise, it is the minimum of dist(value, lower bound) * and dist(value, upper bound). *

    - * @param {number} value the value to which the distance is calculated - * @returns {number} the distance between the value and the interval + * @param value the value to which the distance is calculated + * @returns the distance between the value and the interval */ distanceTo(value:number):number; /** * Returns the {@link yfiles.router.Interval interval} bound that is closest to the given value. - * @param {number} value the value for which the closest interval bound will be returned - * @returns {number} + * @param value the value for which the closest interval bound will be returned + * @returns *
      *
    • the value, if the given value lies within the interval, or
    • *
    • the lower bound, if the given value is smaller than or equal to the lower bound, or
    • @@ -110263,29 +104570,29 @@ declare namespace system{ * The intervals are considered to cover the same range, if their minimum values as well as their maximum values differ * only in the given epsilon value. *

      - * @param {yfiles.router.Interval} other the other interval - * @param {number} [eps=1E-06] the maximum distance between the two minimum and the two maximum values - * @returns {boolean} true if the intervals cover the same range, false otherwise + * @param other the other interval + * @param [eps=1E-06] the maximum distance between the two minimum and the two maximum values + * @returns true if the intervals cover the same range, false otherwise */ hasSameRange(other:yfiles.router.Interval,eps?:number):boolean; /** * Checks whether or not this {@link yfiles.router.Interval interval} intersects with the given * {@link yfiles.router.Interval interval}, considering the given minimum intersection length. - * @param {yfiles.router.Interval} other the other interval to check - * @param {number} [minIntersection=0] the minimum length of the intersection of the intervals - * @returns {boolean} true if the intervals intersect at least by the given minimum length, false otherwise + * @param other the other interval to check + * @param [minIntersection=0] the minimum length of the intersection of the intervals + * @returns true if the intervals intersect at least by the given minimum length, false otherwise */ intersects(other:yfiles.router.Interval,minIntersection?:number):boolean; /** * Checks whether or not the lower bound of this {@link yfiles.router.Interval interval} is greater than the upper bound of the given interval. - * @param {yfiles.router.Interval} other the interval to compare - * @returns {boolean} true if the current interval is on the right of the given one, false otherwise + * @param other the interval to compare + * @returns true if the current interval is on the right of the given one, false otherwise */ isGreaterThan(other:yfiles.router.Interval):boolean; /** * Checks whether or not the upper bound of this {@link yfiles.router.Interval interval} is smaller than the lower bound of the given interval. - * @param {yfiles.router.Interval} other the interval to compare - * @returns {boolean} true if the current interval is on the left of the given one, false otherwise + * @param other the interval to compare + * @returns true if the current interval is on the left of the given one, false otherwise */ isLessThan(other:yfiles.router.Interval):boolean; /** @@ -110313,15 +104620,14 @@ declare namespace system{ /** * This class describes the obstacles that are used by implementations of {@link yfiles.router.IObstaclePartition} to subdivide an * area into {@link yfiles.router.PartitionCell}s. - * @class yfiles.router.Obstacle + * @class */ export interface Obstacle extends Object{} export class Obstacle { /** * Creates a new {@link yfiles.router.Obstacle} instance with the given bounds and additional data. - * @param {yfiles.algorithms.YRectangle} bounds the bounds of the obstacle - * @param {Object} data the additional data associated to the obstacle - * @constructor + * @param bounds the bounds of the obstacle + * @param data the additional data associated to the obstacle */ constructor(bounds:yfiles.algorithms.YRectangle,data:Object); /** @@ -110344,27 +104650,25 @@ declare namespace system{ * exits a {@link yfiles.router.PartitionCell partition cell}. *

      * @see yfiles.router.PathSearch - * @class yfiles.router.OrthogonalInterval + * @class */ export interface OrthogonalInterval extends Object{} export class OrthogonalInterval { /** * Creates a new {@link yfiles.router.OrthogonalInterval} instance using the from and to value as interval bounds. - * @param {number} from the start of the interval bounds - * @param {number} to the end of the interval bounds - * @param {number} location the location in the two-dimensional coordinate system - * @param {boolean} isVertical true if the orthogonal interval is vertical, false if it is horizontal + * @param from the start of the interval bounds + * @param to the end of the interval bounds + * @param location the location in the two-dimensional coordinate system + * @param isVertical true if the orthogonal interval is vertical, false if it is horizontal * @throws {Stubs.Exceptions.ArgumentError} if the given range is null - * @constructor */ constructor(from:number,to:number,location:number,isVertical:boolean); /** * Creates a new {@link yfiles.router.OrthogonalInterval} instance with the given interval bounds. - * @param {yfiles.router.Interval} range the given range - * @param {number} location the location in the two-dimensional coordinate system - * @param {boolean} isVertical true if the orthogonal interval is vertical, false if it is horizontal + * @param range the given range + * @param location the location in the two-dimensional coordinate system + * @param isVertical true if the orthogonal interval is vertical, false if it is horizontal * @throws {Stubs.Exceptions.ArgumentError} if the given range is null - * @constructor */ constructor(range:yfiles.router.Interval,location:number,isVertical:boolean); /** @@ -110374,9 +104678,9 @@ declare namespace system{ * range of both intervals. If it is horizontal, it will have the same vertical location as i2 and the shared horizontal * range of both intervals. The orthogonal intervals must have same orientation. *

      - * @param {yfiles.router.OrthogonalInterval} i1 the first orthogonal interval - * @param {yfiles.router.OrthogonalInterval} i2 the second orthogonal interval - * @returns {yfiles.router.OrthogonalInterval} the shared orthogonal interval of both given orthogonal intervals + * @param i1 the first orthogonal interval + * @param i2 the second orthogonal interval + * @returns the shared orthogonal interval of both given orthogonal intervals * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations * @see yfiles.router.OrthogonalInterval#intersects * @static @@ -110389,9 +104693,9 @@ declare namespace system{ * range of both orthogonal intervals. If it is horizontal, it will have the same vertical location as i2 and the shared * vertical range of both orthogonal intervals. The orthogonal intervals must have same orientation. *

      - * @param {yfiles.router.OrthogonalInterval} i1 the first orthogonal interval - * @param {yfiles.router.OrthogonalInterval} i2 the second orthogonal interval - * @returns {yfiles.router.OrthogonalInterval} the union of both given orthogonal intervals + * @param i1 the first orthogonal interval + * @param i2 the second orthogonal interval + * @returns the union of both given orthogonal intervals * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations * @see yfiles.router.OrthogonalInterval#intersects * @static @@ -110404,8 +104708,8 @@ declare namespace system{ * interval's range. The location of both orthogonal intervals is ignored. The orthogonal intervals must have the same * orientation. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @returns {boolean} true if this orthogonal interval is fully covered by the other orthogonal interval, false otherwise + * @param other the other orthogonal interval + * @returns true if this orthogonal interval is fully covered by the other orthogonal interval, false otherwise * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations * @see yfiles.router.PartitionCell */ @@ -110415,8 +104719,8 @@ declare namespace system{ *

      * The orthogonal intervals must have different orientations. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @returns {boolean} true if this orthogonal interval crosses the given one, false otherwise + * @param other the other orthogonal interval + * @returns true if this orthogonal interval crosses the given one, false otherwise * @throws {Stubs.Exceptions.ArgumentError} if the given orthogonal intervals have the same orientation */ crosses(other:yfiles.router.OrthogonalInterval):boolean; @@ -110425,8 +104729,8 @@ declare namespace system{ *

      * The orthogonal intervals must have the same orientation. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @returns {number} 0 if the orthogonal intervals intersect each other, otherwise the minimal distance between the orthogonal intervals is + * @param other the other orthogonal interval + * @returns 0 if the orthogonal intervals {@link #intersects intersect} each other, otherwise the minimal distance between the orthogonal intervals is * returned * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations */ @@ -110437,8 +104741,8 @@ declare namespace system{ * If both orthogonal intervals cover the same range, they are considered the same. The location of both orthogonal * intervals is ignored. The orthogonal intervals must have the same orientation. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @returns {boolean} true if the orthogonal intervals cover the same range, false otherwise + * @param other the other orthogonal interval + * @returns true if the orthogonal intervals cover the same range, false otherwise * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations * @see yfiles.router.PartitionCell */ @@ -110451,9 +104755,9 @@ declare namespace system{ * intersection size. The location of both orthogonal intervals is ignored. The orthogonal intervals must have the same * orientation. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @param {number} [minIntersection=0] the minimum size of the intersection - * @returns {boolean} true if this interval intersects the given other orthogonal interval, false otherwise + * @param other the other orthogonal interval + * @param [minIntersection=0] the minimum size of the intersection + * @returns true if this interval intersects the given other orthogonal interval, false otherwise * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations * @see yfiles.router.PartitionCell */ @@ -110468,8 +104772,8 @@ declare namespace system{ * If the intervals have different orientations, the Manhattan distance is the sum of the distances between one interval's * range and the other interval's location. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @returns {number} the Manhattan distance between this interval and the given one + * @param other the other orthogonal interval + * @returns the Manhattan distance between this interval and the given one */ manhattanDistanceTo(other:yfiles.router.OrthogonalInterval):number; /** @@ -110514,15 +104818,15 @@ declare namespace system{ /** * This class is a type-safe enumeration used for defining the border of a {@link yfiles.router.PartitionCell}. * @see yfiles.router.PartitionCell#createBorderInterval - * @class yfiles.router.PartitionCellBorder + * @class */ export interface PartitionCellBorder extends Object{} export class PartitionCellBorder { /** * Returns the type of the border that is passed through when entering a {@link yfiles.router.PartitionCell} in the given * direction. - * @param {yfiles.layout.Direction} direction the direction in which a {@link yfiles.router.PartitionCell} has been entered - * @returns {yfiles.router.PartitionCellBorder} the type of the border that is passed through when entering a {@link yfiles.router.PartitionCell} + * @param direction the direction in which a {@link } has been entered + * @returns the type of the border that is passed through when entering a {@link } * @see yfiles.router.PartitionCell * @static */ @@ -110530,8 +104834,8 @@ declare namespace system{ /** * Returns the type of the border that is passed through when exiting a {@link yfiles.router.PartitionCell} in the given * direction. - * @param {yfiles.layout.Direction} direction the direction in which a {@link yfiles.router.PartitionCell} has been exited - * @returns {yfiles.router.PartitionCellBorder} the type of the border that is passed through when exiting a {@link yfiles.router.PartitionCell} + * @param direction the direction in which a {@link } has been exited + * @returns the type of the border that is passed through when exiting a {@link } * @see yfiles.router.PartitionCell * @static */ @@ -110541,8 +104845,8 @@ declare namespace system{ *

      * The border type corresponds to the {@link yfiles.layout.PortCandidate#direction direction} of the given {@link yfiles.layout.PortCandidate}. *

      - * @param {yfiles.layout.PortCandidate} pc the port candidate for which the border type is returned - * @returns {yfiles.router.PartitionCellBorder} the type of the border that is defined by the given port candidate + * @param pc the port candidate for which the border type is returned + * @returns the type of the border that is defined by the given port candidate * @see yfiles.layout.PortCandidate * @static */ @@ -110552,8 +104856,8 @@ declare namespace system{ *

      * The border type corresponds to the {@link yfiles.layout.PortConstraint#side side} of the given {@link yfiles.layout.PortConstraint}. *

      - * @param {yfiles.layout.PortConstraint} pc the port constraint for which the border type is returned - * @returns {yfiles.router.PartitionCellBorder} the type of the border that is defined by the given port constraint + * @param pc the port constraint for which the border type is returned + * @returns the type of the border that is defined by the given port constraint * @see yfiles.layout.PortConstraint * @static */ @@ -110607,28 +104911,26 @@ declare namespace system{ * {@link yfiles.router.PartitionCell#removeData}, respectively. *

      * @see yfiles.router.PartitionCellKeys - * @class yfiles.router.PartitionCell + * @class */ export interface PartitionCell extends Object{} export class PartitionCell { /** * Creates a new {@link yfiles.router.PartitionCell} instance of the given {@link yfiles.router.IPartition} with the given bounds. - * @param {number} x the x-coordinate of the upper-left corner of the partition cell - * @param {number} y the y-coordinate of the upper-left corner of the partition cell - * @param {number} width the width of the partition cell - * @param {number} height the height of the partition cell - * @param {yfiles.router.IPartition} partition the partition to which the partition cell belongs + * @param x the x-coordinate of the upper-left corner of the partition cell + * @param y the y-coordinate of the upper-left corner of the partition cell + * @param width the width of the partition cell + * @param height the height of the partition cell + * @param partition the partition to which the partition cell belongs * @see yfiles.router.IPartition - * @constructor */ constructor(x:number,y:number,width:number,height:number,partition:yfiles.router.IPartition); /** * Creates a new {@link yfiles.router.PartitionCell} of the given {@link yfiles.router.IPartition} with the location and the size of the * given rectangle. - * @param {yfiles.algorithms.YRectangle} bounds the bounds describing the size and location of the partition cell - * @param {yfiles.router.IPartition} partition the partition to which the partition cell belongs + * @param bounds the bounds describing the size and location of the partition cell + * @param partition the partition to which the partition cell belongs * @see yfiles.router.IPartition - * @constructor */ constructor(bounds:yfiles.algorithms.YRectangle,partition:yfiles.router.IPartition); /** @@ -110650,15 +104952,15 @@ declare namespace system{ *
    • {@link yfiles.router.PartitionCellBorder#NORTH}
    • *
    • {@link yfiles.router.PartitionCellBorder#SOUTH}
    • *
    - * @param {yfiles.router.PartitionCellBorder} border a border of this partition cell - * @returns {yfiles.router.OrthogonalInterval} an {@link yfiles.router.OrthogonalInterval} that defines the location, the size and the orientation of the given border + * @param border a border of this partition cell + * @returns an {@link } that defines the location, the size and the orientation of the given border * @see yfiles.router.PartitionCellBorder */ createBorderInterval(border:yfiles.router.PartitionCellBorder):yfiles.router.OrthogonalInterval; /** * Returns the additional data associated with the given key for this {@link yfiles.router.PartitionCell}. - * @param {Object} key the key whose associated data will be returned - * @returns {Object} the additional data associated with the given key or null if there is no data associated with the given key + * @param key the key whose associated data will be returned + * @returns the additional data associated with the given key or null if there is no data associated with the given key * @see yfiles.router.PartitionCell#putData * @see yfiles.router.PartitionCell#removeData * @see yfiles.router.PartitionCell#clearData @@ -110667,9 +104969,9 @@ declare namespace system{ getData(key:Object):Object; /** * Stores the additional data associated with the given key for this {@link yfiles.router.PartitionCell}. - * @param {Object} key the key with which the additional data will be associated - * @param {Object} data the additional data - * @returns {Object} the previous data associated with the given key or null if there was no data associated with the given key + * @param key the key with which the additional data will be associated + * @param data the additional data + * @returns the previous data associated with the given key or null if there was no data associated with the given key * @see yfiles.router.PartitionCell#getData * @see yfiles.router.PartitionCell#removeData * @see yfiles.router.PartitionCell#clearData @@ -110678,8 +104980,8 @@ declare namespace system{ putData(key:Object,data:Object):Object; /** * Removes the additional data associated with the given key for this {@link yfiles.router.PartitionCell}. - * @param {Object} key the key for which the associated data will be removed - * @returns {Object} the additional data associated with the given key or null if there is no data associated with the given key + * @param key the key for which the associated data will be removed + * @returns the additional data associated with the given key or null if there is no data associated with the given key * @see yfiles.router.PartitionCell#getData * @see yfiles.router.PartitionCell#putData * @see yfiles.router.PartitionCell#clearData @@ -110740,7 +105042,7 @@ declare namespace system{ * In order to get the data of the {@link yfiles.router.PartitionCell} that is associated with the given key, method {@link yfiles.router.PartitionCell#getData} * should be used. *

    - * @class yfiles.router.PartitionCellKeys + * @class * @static */ export interface PartitionCellKeys extends Object{} @@ -110825,42 +105127,41 @@ declare namespace system{ *

    * @see yfiles.router.PathSearch * @see yfiles.router.PathSearchResult - * @class yfiles.router.Path + * @class */ export interface Path extends Object{} export class Path { /** * Creates a new instance of {@link yfiles.router.Path} for the given edge, {@link yfiles.router.CellEntrance cell entrances} and cost. - * @param {yfiles.algorithms.Edge} edge the edge for which the path was calculated - * @param {yfiles.collections.IList.} entrances the list of {@link yfiles.router.CellEntrance} objects describing the edge path from source node to target node - * @param {number} cost the overall cost of this path - * @constructor + * @param edge the edge for which the path was calculated + * @param entrances the list of {@link } objects describing the edge path from source node to target node + * @param cost the overall cost of this path */ constructor(edge:yfiles.algorithms.Edge,entrances:yfiles.collections.IList,cost:number); /** * Returns the {@link yfiles.router.CellEntrance} at the given position of this path. - * @param {number} position the position of the {@link yfiles.router.CellEntrance} to return - * @returns {yfiles.router.CellEntrance} the {@link yfiles.router.CellEntrance} at the given position of this path + * @param position the position of the {@link } to return + * @returns the {@link } at the given position of this path * @see yfiles.router.Path#setEntrance */ getEntrance(position:number):yfiles.router.CellEntrance; /** * Returns the number of {@link yfiles.router.CellEntrance} objects in this path. - * @returns {number} the number of {@link yfiles.router.CellEntrance} objects in this path + * @returns the number of {@link } objects in this path */ length():number; /** * Returns the position of the first occurrence of the given {@link yfiles.router.CellEntrance} in this path, or -1 if this path * does not contain this {@link yfiles.router.CellEntrance}. - * @param {yfiles.router.CellEntrance} entrance the {@link yfiles.router.CellEntrance} for which the position is retrieved - * @returns {number} the position of the first occurrence of the given {@link yfiles.router.CellEntrance} in this path, or -1 if this path does not - * contain this {@link yfiles.router.CellEntrance} + * @param entrance the {@link } for which the position is retrieved + * @returns the position of the first occurrence of the given {@link } in this path, or -1 if this path does not + * contain this {@link } */ positionOf(entrance:yfiles.router.CellEntrance):number; /** * Replaces the {@link yfiles.router.CellEntrance} at the given position of this path with the given {@link yfiles.router.CellEntrance}. - * @param {number} position the position of the {@link yfiles.router.CellEntrance} to replace - * @param {yfiles.router.CellEntrance} entrance the {@link yfiles.router.CellEntrance} to be stored at the given position + * @param position the position of the {@link } to replace + * @param entrance the {@link } to be stored at the given position * @see yfiles.router.Path#getEntrance */ setEntrance(position:number,entrance:yfiles.router.CellEntrance):void; @@ -110904,13 +105205,12 @@ declare namespace system{ *

    * @see yfiles.router.PathSearch#addPathSearchExtension * @see yfiles.router.PathSearch#addAdditionalEnterIntervalCalculator - * @class yfiles.router.PathSearch + * @class */ export interface PathSearch extends Object{} export class PathSearch { /** * Creates a new instance of {@link yfiles.router.PathSearch}. - * @constructor */ constructor(); /** @@ -110920,8 +105220,8 @@ declare namespace system{ * {@link yfiles.router.CellEntrance}s with narrowed intervals to the queue. The interval is more specific and will be judged with * lower costs. *

    - * @param {yfiles.router.IEnterIntervalCalculator} enterIntervalCalculator the calculator to add - * @returns {boolean} true if the calculator was successfully added, false otherwise + * @param enterIntervalCalculator the calculator to add + * @returns true if the calculator was successfully added, false otherwise */ addAdditionalEnterIntervalCalculator(enterIntervalCalculator:yfiles.router.IEnterIntervalCalculator):boolean; /** @@ -110929,8 +105229,8 @@ declare namespace system{ *

    * An extension can influence the pathfinding process by adding costs for entering certain {@link yfiles.router.CellEntrance}s. *

    - * @param {yfiles.router.PathSearchExtension} extension the extension to add to this path search - * @returns {boolean} true if the extension has been added, false otherwise + * @param extension the extension to add to this path search + * @returns true if the extension has been added, false otherwise */ addPathSearchExtension(extension:yfiles.router.PathSearchExtension):boolean; /** @@ -110944,14 +105244,14 @@ declare namespace system{ * The costs for the given enter intervals are retrieved from all registered * {@link yfiles.router.PathSearchExtension}s. The calculation stops when it reaches the given maximum cost value. *

    - * @param {yfiles.router.CellEntrance} currentEntrance the current cell entrance - * @param {yfiles.router.PartitionCell} enteredCell the partition cell to enter - * @param {Array.} enterIntervals the different entering intervals of the entered cell - * @param {Array.} lastEdgeCellInfos the information about how the last cell was crossed - * @param {yfiles.router.PathSearchContext} context the context information - * @param {Array.} costs the array in which the calculated costs for entering the neighbor cell via the according enter intervals shall be + * @param currentEntrance the current cell entrance + * @param enteredCell the partition cell to enter + * @param enterIntervals the different entering intervals of the entered cell + * @param lastEdgeCellInfos the information about how the last cell was crossed + * @param context the context information + * @param costs the array in which the calculated costs for entering the neighbor cell via the according enter intervals shall be * written - * @param {Array.} maxAllowedCosts the maximum costs an enter interval may induce. If this cost is exceeded, no further additional costs for this interval + * @param maxAllowedCosts the maximum costs an enter interval may induce. If this cost is exceeded, no further additional costs for this interval * are calculated. Note that the entries in this array get modified during cost calculation * @see yfiles.router.PathSearchExtension#calculateCosts * @protected @@ -110967,9 +105267,9 @@ declare namespace system{ *

    * The heuristic costs for the given entrance are retrieved from all registered {@link yfiles.router.PathSearchExtension}s. *

    - * @param {yfiles.router.CellEntrance} entrance the current entrance - * @param {yfiles.router.PathSearchContext} context the context information - * @returns {number} the heuristic costs for the rest of the path if the given entrance is used + * @param entrance the current entrance + * @param context the context information + * @returns the heuristic costs for the rest of the path if the given entrance is used * @see yfiles.router.PathSearchExtension#calculateHeuristicCosts * @protected */ @@ -110999,9 +105299,9 @@ declare namespace system{ *

    * The decreaseFactor takes values from [0,1], where 0 means no reduction while 1 means the strongest reduction. *

    - * @param {yfiles.router.PenaltySettings} penaltySettings the penalty settings whose penalties shall be reduced - * @param {number} decreaseFactor the factor with values between 0 and 1 that indicates how strong to reduce the penalties - * @param {yfiles.router.PathSearchContext} context the context information of the current path search + * @param penaltySettings the penalty settings whose penalties shall be reduced + * @param decreaseFactor the factor with values between 0 and 1 that indicates how strong to reduce the penalties + * @param context the context information of the current path search * @protected */ decreasePenaltySettings(penaltySettings:yfiles.router.PenaltySettings,decreaseFactor:number,context:yfiles.router.PathSearchContext):void; @@ -111014,7 +105314,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.PathSearch#findPathsForCurrentEdge} and may be overridden to use a custom * finalization step. *

    - * @param {yfiles.router.Path} path the path to finalize + * @param path the path to finalize * @protected */ finalizePath(path:yfiles.router.Path):void; @@ -111035,7 +105335,7 @@ declare namespace system{ * At last, the extensions are asked to finalize the path search result using their {@link yfiles.router.PathSearchExtension#finalizePathSearchResult} * callback. *

    - * @param {yfiles.router.PathSearchContext} context the context to use during the path search + * @param context the context to use during the path search * @see yfiles.router.PathSearchContext#edges * @see yfiles.router.PathSearchContext#pathSearchResult */ @@ -111055,7 +105355,7 @@ declare namespace system{ * It is called by {@link yfiles.router.PathSearch#findPaths} and may be overridden to skip certain edges or implement a custom * path search. *

    - * @param {yfiles.router.PathSearchContext} context the context information needed for finding a path + * @param context the context information needed for finding a path * @protected */ findPathsForCurrentEdge(context:yfiles.router.PathSearchContext):void; @@ -111064,8 +105364,8 @@ declare namespace system{ *

    * The path is finalized if the {@link yfiles.router.PathSearch} chose it as the best result for the edge. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the path is returned - * @returns {yfiles.router.Path} the finalized path for the given edge or null if no path has been found and finalized + * @param edge the edge for which the path is returned + * @returns the finalized path for the given edge or null if no path has been found and finalized */ getFinalizedPath(edge:yfiles.algorithms.Edge):yfiles.router.Path; /** @@ -111093,9 +105393,9 @@ declare namespace system{ * This method is called during cost calculation. It may be overridden to change the interval handling for the * {@link yfiles.router.CellEntrance}s. *

    - * @param {yfiles.router.CellEntrance} currentEntrance the current cell entrance - * @param {yfiles.router.PartitionCell} neighborCell the neighboring cell that is handled. - * @param {yfiles.router.PathSearchContext} context the context information + * @param currentEntrance the current cell entrance + * @param neighborCell the neighboring cell that is handled. + * @param context the context information * @see yfiles.router.PathSearch#calculateCosts * @see yfiles.router.PathSearch#calculateHeuristicCosts * @protected @@ -111106,36 +105406,35 @@ declare namespace system{ *

    * This method also calls {@link yfiles.router.PathSearchExtension#initialize} for all registered path search extensions. *

    - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration that the path search shall use + * @param configuration the configuration that the path search shall use */ init(configuration:yfiles.router.PathSearchConfiguration):void; /** * Removes the given interval calculator from the list of registered {@link yfiles.router.IEnterIntervalCalculator}s. - * @param {yfiles.router.IEnterIntervalCalculator} enterIntervalCalculator the calculator to remove - * @returns {boolean} true if an interval calculator was removed as a result of this call, false if the given calculator was not part of the + * @param enterIntervalCalculator the calculator to remove + * @returns true if an interval calculator was removed as a result of this call, false if the given calculator was not part of the * list */ removeAdditionalEnterIntervalCalculator(enterIntervalCalculator:yfiles.router.IEnterIntervalCalculator):boolean; /** * Removes the given extension from the list of {@link yfiles.router.PathSearchExtension}s. - * @param {yfiles.router.PathSearchExtension} extension the extension to remove from the path search - * @returns {boolean} true if an extension was removed as a result of this call, false if the given extension was not contained in the list + * @param extension the extension to remove from the path search + * @returns true if an extension was removed as a result of this call, false if the given extension was not contained in the list */ removePathSearchExtension(extension:yfiles.router.PathSearchExtension):boolean; static $class:yfiles.lang.Class; } /** * This class contains the basic configuration used by path search algorithms. - * @class yfiles.router.PathSearchConfiguration + * @class */ export interface PathSearchConfiguration extends Object{} export class PathSearchConfiguration { /** * Creates a new instance of {@link yfiles.router.PathSearchConfiguration} used for a path search. - * @param {yfiles.layout.LayoutGraph} graph the graph containing the edges whose path will be searched - * @param {yfiles.layout.GroupingSupport} grouping the grouping information of the graph - * @param {yfiles.router.EdgeRouter} edgeRouter the edge routing algorithm using this configuration - * @constructor + * @param graph the graph containing the edges whose path will be searched + * @param grouping the grouping information of the graph + * @param edgeRouter the edge routing algorithm using this configuration */ constructor(graph:yfiles.layout.LayoutGraph,grouping:yfiles.layout.GroupingSupport,edgeRouter:yfiles.router.EdgeRouter); /** @@ -111165,27 +105464,26 @@ declare namespace system{ *

    * Most notably, the context provides access to the edge that is currently being routed (see {@link yfiles.router.PathSearchContext#currentEdge}). *

    - * @class yfiles.router.PathSearchContext + * @class */ export interface PathSearchContext extends Object{} export class PathSearchContext { /** * Creates a new instance of {@link yfiles.router.PathSearchContext}. - * @param {yfiles.router.PathSearch} pathSearch the path search that uses this context - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration used for the path search - * @constructor + * @param pathSearch the path search that uses this context + * @param configuration the configuration used for the path search */ constructor(pathSearch:yfiles.router.PathSearch,configuration:yfiles.router.PathSearchConfiguration); /** * Adds an additional source cell of the {@link yfiles.router.PathSearchContext#currentEdge current edge} if it is not already contained in the list of source cells. - * @param {yfiles.router.PartitionCell} cell the new source cell to add + * @param cell the new source cell to add * @see yfiles.router.PathSearchContext#sourceCellCount * @see yfiles.router.PathSearchContext#getSourceCell */ addSourceCell(cell:yfiles.router.PartitionCell):void; /** * Adds an additional target cell of the {@link yfiles.router.PathSearchContext#currentEdge current edge} if it is not already contained in the list of target cells. - * @param {yfiles.router.PartitionCell} cell the new target cell to add + * @param cell the new target cell to add * @see yfiles.router.PathSearchContext#targetCellCount * @see yfiles.router.PathSearchContext#getTargetCell */ @@ -111193,46 +105491,46 @@ declare namespace system{ /** * Returns the source cell with the given index in the list of all cells that are covered by the source node of the * {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @param {number} index the index of the source cell - * @returns {yfiles.router.PartitionCell} the source cell with the given index in the list of all source cells + * @param index the index of the source cell + * @returns the source cell with the given index in the list of all source cells */ getSourceCell(index:number):yfiles.router.PartitionCell; /** * Returns the target cell with the given index in the list of all cells that are covered by the target node of the * {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @param {number} index the index of the target cell - * @returns {yfiles.router.PartitionCell} the target cell with the given index in the list of all cells that are covered by the target node of the {@link yfiles.router.PathSearchContext#currentEdge current edge} + * @param index the index of the target cell + * @returns the target cell with the given index in the list of all cells that are covered by the target node of the {@link #currentEdge current edge} */ getTargetCell(index:number):yfiles.router.PartitionCell; /** * Determines whether or not the given cell is a source cell of the {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @param {yfiles.router.PartitionCell} cell the cell - * @returns {boolean} true if the given cell is in the list of source cells, false otherwise + * @param cell the cell + * @returns true if the given cell is in the list of source cells, false otherwise * @see yfiles.router.PathSearchContext#sourceCellCount * @see yfiles.router.PathSearchContext#getSourceCell */ isSourceCell(cell:yfiles.router.PartitionCell):boolean; /** * Determines whether or not the given cell is a target cell of the {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @param {yfiles.router.PartitionCell} cell the cell - * @returns {boolean} true if the given cell is in the list of target cells, false otherwise + * @param cell the cell + * @returns true if the given cell is in the list of target cells, false otherwise * @see yfiles.router.PathSearchContext#targetCellCount * @see yfiles.router.PathSearchContext#getTargetCell */ isTargetCell(cell:yfiles.router.PartitionCell):boolean; /** * Specifies the edges that shall be routed. - * @param {yfiles.algorithms.EdgeList} edges the list of edges that shall be routed + * @param edges the list of edges that shall be routed */ setEdges(edges:yfiles.algorithms.EdgeList):void; /** * Returns the number of all cells that are covered by the source node of the {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @returns {number} the number of all cells that are covered by the source node + * @returns the number of all cells that are covered by the source node */ sourceCellCount():number; /** * Returns the number of all cells that are covered by the target node of the {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @returns {number} the number of all cells that are covered by the target node + * @returns the number of all cells that are covered by the target node */ targetCellCount():number; /** @@ -111308,13 +105606,12 @@ declare namespace system{ * * @see yfiles.router.PathSearch#addPathSearchExtension * @see yfiles.router.PathSearchContext#currentEdge - * @class yfiles.router.PathSearchExtension + * @class */ export interface PathSearchExtension extends Object{} export class PathSearchExtension { /** * Creates a new instance of {@link yfiles.router.PathSearchExtension}. - * @constructor */ constructor(); /** @@ -111325,7 +105622,7 @@ declare namespace system{ * implementation doesn't add any {@link yfiles.router.CellEntrance}s. It may be overridden to add {@link yfiles.router.CellEntrance}s with * specific enter intervals, e.g., to consider {@link yfiles.layout.PortConstraint}s. *

    - * @param {yfiles.collections.IList.} allStartEntrances a list of all previously generated entrances + * @param allStartEntrances a list of all previously generated entrances */ appendStartEntrances(allStartEntrances:yfiles.collections.IList):void; /** @@ -111344,13 +105641,13 @@ declare namespace system{ * This implementation doesn't add any costs. It may be overridden to add costs, e.g., if entering through the given * interval would create a bend. *

    - * @param {yfiles.router.CellEntrance} currentEntrance the entrance that was used for entering the current cell - * @param {yfiles.router.PartitionCell} enteredCell the neighboring cell that shall be entered - * @param {yfiles.router.OrthogonalInterval} enterInterval the interval that shall be used for entering the neighboring cell - * @param {yfiles.router.EdgeCellInfo} edgeCellInfo the information about how the current cell would be traversed if the neighboring cell would be entered by this enter + * @param currentEntrance the entrance that was used for entering the current cell + * @param enteredCell the neighboring cell that shall be entered + * @param enterInterval the interval that shall be used for entering the neighboring cell + * @param edgeCellInfo the information about how the current cell would be traversed if the neighboring cell would be entered by this enter * interval - * @param {number} maxAllowedCosts the maximum allowed costs for this enter interval - * @returns {number} the costs for entering the neighboring cell via the enter interval + * @param maxAllowedCosts the maximum allowed costs for this enter interval + * @returns the costs for entering the neighboring cell via the enter interval * @protected */ calculateCosts(currentEntrance:yfiles.router.CellEntrance,enteredCell:yfiles.router.PartitionCell,enterInterval:yfiles.router.OrthogonalInterval,edgeCellInfo:yfiles.router.EdgeCellInfo,maxAllowedCosts:number):number; @@ -111365,8 +105662,8 @@ declare namespace system{ * This implementation doesn't add any costs. It may be overridden to add some heuristic costs, e.g., if the edge would * have to bend to reach the target node from the given {@link yfiles.router.CellEntrance}. *

    - * @param {yfiles.router.CellEntrance} entrance the entrance to calculate the heuristic costs for the rest of the path - * @returns {number} the minimal costs that will arise to finish the path if the given cell entrance is used as next step + * @param entrance the entrance to calculate the heuristic costs for the rest of the path + * @returns the minimal costs that will arise to finish the path if the given cell entrance is used as next step */ calculateHeuristicCosts(entrance:yfiles.router.CellEntrance):number; /** @@ -111379,8 +105676,8 @@ declare namespace system{ * start entrances with less specific intervals more expensive. For example, intervals that allow more than just the {@link yfiles.layout.PortConstraint} * location to connect to the source node become more expensive. *

    - * @param {yfiles.router.CellEntrance} startEntrance the start entrance for which the cost is calculated - * @returns {number} the cost for starting the path in the given entrance + * @param startEntrance the start entrance for which the cost is calculated + * @returns the cost for starting the path in the given entrance */ calculateStartEntranceCost(startEntrance:yfiles.router.CellEntrance):number; /** @@ -111393,7 +105690,7 @@ declare namespace system{ * This implementation does nothing. It may be overridden to reset some edge specific information, e.g., removing * previously added listeners. *

    - * @param {yfiles.router.PathSearchContext} context the context containing the current edge for which the path search has been canceled + * @param context the context containing the current edge for which the path search has been canceled * @see yfiles.router.PathSearchExtension#initializeCurrentEdge * @see yfiles.router.PathSearchExtension#finalizeEdges */ @@ -111413,7 +105710,7 @@ declare namespace system{ * This implementation does nothing. It may be overridden to add/reset some edge specific information, e.g., removing * previously added listeners or adding new start entrances. *

    - * @param {yfiles.router.PathSearchContext} context the context containing the current edge for which the path search has been finished + * @param context the context containing the current edge for which the path search has been finished * @see yfiles.router.PathSearchExtension#initializeCurrentEdge * @see yfiles.router.PathSearchExtension#finalizeEdges */ @@ -111423,7 +105720,7 @@ declare namespace system{ *

    * This callback notifies the extension if enough paths have been found for all edges in the context's edge list. *

    - * @param {yfiles.router.PathSearchContext} context the context containing the list of edges for which paths have been found + * @param context the context containing the list of edges for which paths have been found * @see yfiles.router.PathSearchContext#edges */ finalizeEdges(context:yfiles.router.PathSearchContext):void; @@ -111437,7 +105734,7 @@ declare namespace system{ * This implementation does nothing. It may be overridden to collect some information about the given path that may * influence the path search of later edges. *

    - * @param {yfiles.router.Path} path the path found for the current edge in the context + * @param path the path found for the current edge in the context * @see yfiles.router.PathSearchContext#currentEdge */ finalizePath(path:yfiles.router.Path):void; @@ -111453,7 +105750,7 @@ declare namespace system{ * next list of edges to route or ends the path search by calling * {@link yfiles.router.PathSearchExtension#cleanUp}. This implementation does nothing. *

    - * @param {yfiles.router.PathSearchResult} pathSearchResult the path search result for the edge in the current context's edge list + * @param pathSearchResult the path search result for the edge in the current context's edge list * @see yfiles.router.PathSearchExtension#initializeEdges * @see yfiles.router.PathSearchExtension#cleanUp */ @@ -111464,7 +105761,7 @@ declare namespace system{ * This method is the first one to be called by the {@link yfiles.router.PathSearch}. It may be overridden to initialize this * extension with necessary settings like {@link yfiles.layout.GroupingSupport}. *

    - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration to use for the following path searches + * @param configuration the configuration to use for the following path searches */ initialize(configuration:yfiles.router.PathSearchConfiguration):void; /** @@ -111476,7 +105773,7 @@ declare namespace system{ *

    * It may be overridden to initialize/reset the settings for the current edge (e.g. minimum distances). *

    - * @param {yfiles.router.PathSearchContext} context the context containing the current edge + * @param context the context containing the current edge * @see yfiles.router.PathSearchContext#currentEdge */ initializeCurrentEdge(context:yfiles.router.PathSearchContext):void; @@ -111489,7 +105786,7 @@ declare namespace system{ *

    * It may be overridden to initialize/reset the settings for the routed edges (e.g. minimum distances). *

    - * @param {yfiles.router.PathSearchContext} context the context containing the list of edges for which paths shall be found + * @param context the context containing the list of edges for which paths shall be found * @see yfiles.router.PathSearchContext#edges */ initializeEdges(context:yfiles.router.PathSearchContext):void; @@ -111505,8 +105802,8 @@ declare namespace system{ * {@link yfiles.router.CellEntrance}s as valid targets. It may be overridden to only activate the target if the route fulfills a * certain condition. *

    - * @param {yfiles.router.CellEntrance} entrance the entrance to decide if it is a valid target entrance - * @returns {boolean} true if the path may end with this entrance, false otherwise + * @param entrance the entrance to decide if it is a valid target entrance + * @returns true if the path may end with this entrance, false otherwise */ isValidTargetEntrance(entrance:yfiles.router.CellEntrance):boolean; /** @@ -111534,14 +105831,13 @@ declare namespace system{ * These are used by the {@link yfiles.router.ChannelBasedPathRouting} algorithm to calculate the final segment locations for the * segments of an edge path. *

    - * @class yfiles.router.PathSearchResult + * @class */ export interface PathSearchResult extends Object{} export class PathSearchResult { /** * Creates a new instance of {@link yfiles.router.PathSearchResult}. - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration used for the path search - * @constructor + * @param configuration the configuration used for the path search */ constructor(configuration:yfiles.router.PathSearchConfiguration); /** @@ -111550,8 +105846,8 @@ declare namespace system{ * If the given edge shall be routed but no path has been set for it, yet, null is returned. If no {@link yfiles.router.EdgeInfo} * has been created for the path by this context before, a new one is instantiated, otherwise the stored one is returned. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the {@link yfiles.router.EdgeInfo} will be returned - * @returns {yfiles.router.EdgeInfo} an {@link yfiles.router.EdgeInfo} describing the path of the edge + * @param edge the edge for which the {@link } will be returned + * @returns an {@link } describing the path of the edge * @see yfiles.router.PathSearchResult#setPath */ getEdgeInfo(edge:yfiles.algorithms.Edge):yfiles.router.EdgeInfo; @@ -111561,20 +105857,20 @@ declare namespace system{ * If no {@link yfiles.router.EdgeInfo} has been created for this path by this context before, a new one is instantiated, otherwise * the stored one is returned. *

    - * @param {yfiles.router.Path} path the path for which the {@link yfiles.router.EdgeInfo} will be returned - * @returns {yfiles.router.EdgeInfo} an {@link yfiles.router.EdgeInfo} describing the given path + * @param path the path for which the {@link } will be returned + * @returns an {@link } describing the given path */ getEdgeInfo(path:yfiles.router.Path):yfiles.router.EdgeInfo; /** * Returns the previously registered path found for the edge. - * @param {yfiles.algorithms.Edge} edge the edge for which the path is provided - * @returns {yfiles.router.Path} the previously registered path found for the edge or null if no path has been registered, yet + * @param edge the edge for which the path is provided + * @returns the previously registered path found for the edge or null if no path has been registered, yet */ getPath(edge:yfiles.algorithms.Edge):yfiles.router.Path; /** * Specifies a found path for an edge. - * @param {yfiles.algorithms.Edge} edge the edge for which the path is set - * @param {yfiles.router.Path} path the found path + * @param edge the edge for which the path is set + * @param path the found path */ setPath(edge:yfiles.algorithms.Edge,path:yfiles.router.Path):void; static $class:yfiles.lang.Class; @@ -111593,13 +105889,12 @@ declare namespace system{ * {@link yfiles.router.PenaltySettings#OPTIMIZATION_BALANCED}, {@link yfiles.router.PenaltySettings#OPTIMIZATION_EDGE_BENDS}, {@link yfiles.router.PenaltySettings#OPTIMIZATION_EDGE_LENGTHS} * and {@link yfiles.router.PenaltySettings#OPTIMIZATION_EDGE_CROSSINGS}. *

    - * @class yfiles.router.PenaltySettings + * @class */ export interface PenaltySettings extends Object{} export class PenaltySettings { /** * Creates a new instance of {@link yfiles.router.PenaltySettings}. - * @constructor */ constructor(); /** @@ -111608,7 +105903,7 @@ declare namespace system{ * This implementation uses method {@link yfiles.router.PenaltySettings#newInstance} to obtain a new instance which adopts all * settings. *

    - * @returns {yfiles.router.PenaltySettings} a copy of this instance + * @returns a copy of this instance */ createCopy():yfiles.router.PenaltySettings; /** @@ -111618,7 +105913,7 @@ declare namespace system{ * {@link yfiles.router.PenaltySettings#createCopy}. Subclasses can override this method in order to return a more specialized * version. *

    - * @returns {yfiles.router.PenaltySettings} a specialized {@link yfiles.router.PenaltySettings} + * @returns a specialized {@link } * @protected */ newInstance():yfiles.router.PenaltySettings; @@ -112034,15 +106329,14 @@ declare namespace system{ * segment can be influenced by the {@link yfiles.router.PolylineLayoutStage#maximumNonOrthogonalSegmentRatio maximum non-orthogonal segment ratio} and the {@link yfiles.router.PolylineLayoutStage#preferredPolylineSegmentLength preferred polyline segment length}. The new * octilinear segments maintain a {@link yfiles.router.PolylineLayoutStage#minimumNodeToEdgeDistance minimum distance} between the edges and all nodes in the graph if possible. *

    - * @class yfiles.router.PolylineLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface PolylineLayoutStage extends yfiles.layout.LayoutStageBase{} export class PolylineLayoutStage { /** * Creates a new instance of {@link yfiles.router.PolylineLayoutStage} using the given {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] the core layout routine - * @constructor + * @param [coreLayouter=null] the core layout routine */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -112120,15 +106414,14 @@ declare namespace system{ * The {@link yfiles.router.SegmentGroup} contains the {@link yfiles.router.SegmentGroup#commonLocationRange common location range} for the edge group and provides a {@link yfiles.router.SegmentGroup#commonSegmentInfo common segment info} * representing the grouped segments. *

    - * @class yfiles.router.SegmentGroup + * @class */ export interface SegmentGroup extends Object{} export class SegmentGroup { /** * Creates a new instance of {@link yfiles.router.SegmentGroup} that contains the given segments and a range to place them. - * @param {yfiles.router.Interval} commonLocationRange the location range of the given {@link yfiles.router.SegmentInfo}s - * @param {yfiles.collections.IList.} segmentInfos the list containing the grouped {@link yfiles.router.SegmentInfo}s - * @constructor + * @param commonLocationRange the location range of the given {@link }s + * @param segmentInfos the list containing the grouped {@link }s */ constructor(commonLocationRange:yfiles.router.Interval,segmentInfos:yfiles.collections.IList); /** @@ -112161,40 +106454,38 @@ declare namespace system{ *

    * Most notably, it stores the {@link yfiles.router.SegmentInfoBase#direction direction} of the segment and the {@link yfiles.router.SegmentInfoBase#locationRange interval} that restricts the location of the segment. *

    - * @class yfiles.router.SegmentInfo + * @class * @extends {yfiles.router.SegmentInfoBase} */ export interface SegmentInfo extends yfiles.router.SegmentInfoBase{} export class SegmentInfo { /** * Creates a new instance of {@link yfiles.router.SegmentInfo} with the given information. - * @param {yfiles.algorithms.Edge} edge the edge to which the segment of this info belongs - * @param {number} segmentIndex the index of the segment to which this info belongs - * @param {yfiles.layout.Direction} direction the direction to which the segment of this info points - * @param {yfiles.router.Interval} locationRange the range within which the common location of this segment has to lie - * @param {yfiles.router.Interval} minExtension the minimum interval in extension direction this segment is known to intersect - * @param {yfiles.router.Interval} maxExtension the maximum interval in extension direction this segment will span - * @param {yfiles.collections.IList.} cellSegmentInfos the list of {@link yfiles.router.CellSegmentInfo} objects upon which this segment info is built - * @constructor + * @param edge the edge to which the segment of this info belongs + * @param segmentIndex the index of the segment to which this info belongs + * @param direction the direction to which the segment of this info points + * @param locationRange the range within which the common location of this segment has to lie + * @param minExtension the minimum interval in extension direction this segment is known to intersect + * @param maxExtension the maximum interval in extension direction this segment will span + * @param cellSegmentInfos the list of {@link } objects upon which this segment info is built */ constructor(edge:yfiles.algorithms.Edge,segmentIndex:number,direction:yfiles.layout.Direction,locationRange:yfiles.router.Interval,minExtension:yfiles.router.Interval,maxExtension:yfiles.router.Interval,cellSegmentInfos:yfiles.collections.IList); /** * Creates a new instance of {@link yfiles.router.SegmentInfo} using a {@link yfiles.algorithms.LineSegment} to describe the edge segment. - * @param {yfiles.algorithms.Edge} edge the edge to which the segment of this info belongs - * @param {number} segmentIndex the index of the segment to which this info belongs - * @param {yfiles.algorithms.LineSegment} segment a line segment describing the edge segment - * @constructor + * @param edge the edge to which the segment of this info belongs + * @param segmentIndex the index of the segment to which this info belongs + * @param segment a line segment describing the edge segment */ constructor(edge:yfiles.algorithms.Edge,segmentIndex:number,segment:yfiles.algorithms.LineSegment); /** * Returns the number of {@link yfiles.router.CellSegmentInfo} of this segment info. - * @returns {number} the number of {@link yfiles.router.CellSegmentInfo} of this segment info + * @returns the number of {@link } of this segment info */ cellSegmentInfoCount():number; /** * Returns the {@link yfiles.router.CellSegmentInfo} at the given index of this segment info. - * @param {number} index the index of the {@link yfiles.router.CellSegmentInfo} to return - * @returns {yfiles.router.CellSegmentInfo} the {@link yfiles.router.CellSegmentInfo} at the given index of this segment info + * @param index the index of the {@link } to return + * @returns the {@link } at the given index of this segment info */ getCellSegmentInfo(index:number):yfiles.router.CellSegmentInfo; /** @@ -112219,20 +106510,19 @@ declare namespace system{ * Most notably, {@link yfiles.router.SegmentInfoBase} stores the {@link yfiles.router.SegmentInfoBase#direction direction} to which the segment points and the {@link yfiles.router.SegmentInfoBase#locationRange interval} describing * possible locations and extensions of a segment. *

    - * @class yfiles.router.SegmentInfoBase + * @class */ export interface SegmentInfoBase extends Object{} export class SegmentInfoBase { /** * Creates a new instance of {@link yfiles.router.SegmentInfoBase}. - * @param {yfiles.algorithms.Edge} edge the edge to which the segment of this info belongs - * @param {number} segmentIndex the index of the segment to which this info belongs - * @param {yfiles.layout.Direction} direction the direction to which the segment of this info points - * @param {yfiles.router.Interval} locationRange the range within which the common location of this segment has to lie - * @param {yfiles.router.Interval} minExtension the minimum interval in extension direction this segment is known to intersect - * @param {yfiles.router.Interval} maxExtension the maximum interval in extension direction this segment will span + * @param edge the edge to which the segment of this info belongs + * @param segmentIndex the index of the segment to which this info belongs + * @param direction the direction to which the segment of this info points + * @param locationRange the range within which the common location of this segment has to lie + * @param minExtension the minimum interval in extension direction this segment is known to intersect + * @param maxExtension the maximum interval in extension direction this segment will span * @protected - * @constructor */ constructor(edge:yfiles.algorithms.Edge,segmentIndex:number,direction:yfiles.layout.Direction,locationRange:yfiles.router.Interval,minExtension:yfiles.router.Interval,maxExtension:yfiles.router.Interval); /** @@ -112240,11 +106530,10 @@ declare namespace system{ *

    * This constructor is meant to be used for fixed orthogonal edge segments. *

    - * @param {yfiles.algorithms.Edge} edge the edge to which this segment info belongs - * @param {number} segmentIndex the index of the segment to which this info belongs - * @param {yfiles.algorithms.LineSegment} segment a line segment describing the edge segment + * @param edge the edge to which this segment info belongs + * @param segmentIndex the index of the segment to which this info belongs + * @param segment a line segment describing the edge segment * @protected - * @constructor */ constructor(edge:yfiles.algorithms.Edge,segmentIndex:number,segment:yfiles.algorithms.LineSegment); /** @@ -112340,39 +106629,35 @@ declare namespace system{ * a default group ID is used. Therefore, all such edges ending at the same node belong to the same group. *

    * @see yfiles.router.BusRouter#EDGE_DESCRIPTOR_DP_KEY - * @class yfiles.router.BusDescriptor + * @class */ export interface BusDescriptor extends Object{} export class BusDescriptor { /** * Creates a new instance of {@link yfiles.router.BusDescriptor} for the specified parameters. - * @param {Object} busID the ID of the bus to which the associated edge belongs - * @param {boolean} fixed true if associated edge is fixed, false otherwise - * @param {Object} sourceGroupID the group ID of the source side - * @param {Object} targetGroupID the group ID of the target side - * @constructor + * @param busID the ID of the bus to which the associated edge belongs + * @param fixed true if associated edge is fixed, false otherwise + * @param sourceGroupID the group ID of the source side + * @param targetGroupID the group ID of the target side */ constructor(busID:Object,fixed:boolean,sourceGroupID:Object,targetGroupID:Object); /** * Creates a new instance of {@link yfiles.router.BusDescriptor} for the specified parameters and default group IDs. - * @param {Object} busID the ID of the bus to which the associated edge belongs - * @param {boolean} fixed true if associated edge is fixed, false otherwise - * @constructor + * @param busID the ID of the bus to which the associated edge belongs + * @param fixed true if associated edge is fixed, false otherwise */ constructor(busID:Object,fixed:boolean); /** * Creates a new instance of {@link yfiles.router.BusDescriptor} for the specified parameters and marks it as not fixed. - * @param {Object} busID the ID of the bus to which the associated edge belongs - * @param {Object} sourceGroupID the group ID of the source side - * @param {Object} targetGroupID the group ID of the target side - * @constructor + * @param busID the ID of the bus to which the associated edge belongs + * @param sourceGroupID the group ID of the source side + * @param targetGroupID the group ID of the target side */ constructor(busID:Object,sourceGroupID:Object,targetGroupID:Object); /** * Creates a new instance of {@link yfiles.router.BusDescriptor} for the specified bus ID which is marked as not fixed and uses the * default edge group IDs. - * @param {Object} busID the ID of the bus to which the associated edge belongs - * @constructor + * @param busID the ID of the bus to which the associated edge belongs */ constructor(busID:Object); /** @@ -112427,7 +106712,7 @@ declare namespace system{ * unique ID which identifies the bus to which it is associated. This is the representation expected by * {@link yfiles.router.BusRouter}. *

    - * @class yfiles.router.BusRepresentations + * @class */ export interface BusRepresentations extends Object{} export class BusRepresentations { @@ -112443,12 +106728,12 @@ declare namespace system{ * these paths are ambiguous. In this case, an arbitrary tree is computed from the hub's subgraph which defines all the * paths. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph of the bus - * @param {Array.} hubEdgesLists an array of {@link yfiles.algorithms.EdgeList}s each containing the edges of a bus - * @param {yfiles.algorithms.IDataProvider} hubMarker a {@link yfiles.algorithms.IDataProvider} that marks hub nodes - * @param {yfiles.algorithms.IDataProvider} fixedMarker a {@link yfiles.algorithms.IDataProvider} that marks fixed edges - * @param {yfiles.algorithms.IDataAcceptor} descriptorAcceptor a {@link yfiles.algorithms.IDataAcceptor} for storing the created bus descriptors - * @returns {yfiles.algorithms.EdgeList} a list of the created edges + * @param graph the graph of the bus + * @param hubEdgesLists an array of {@link }s each containing the edges of a bus + * @param hubMarker a {@link } that marks hub nodes + * @param fixedMarker a {@link } that marks fixed edges + * @param descriptorAcceptor a {@link } for storing the created bus descriptors + * @returns a list of the created edges * @static */ static replaceHubsBySubgraph(graph:yfiles.layout.LayoutGraph,hubEdgesLists:yfiles.algorithms.EdgeList[],hubMarker:yfiles.algorithms.IDataProvider,fixedMarker:yfiles.algorithms.IDataProvider,descriptorAcceptor:yfiles.algorithms.IDataAcceptor):yfiles.algorithms.EdgeList; @@ -112457,10 +106742,10 @@ declare namespace system{ *

    * This method delegates to {@link yfiles.router.BusRepresentations#replaceHubsBySubgraph}. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph of the bus - * @param {yfiles.algorithms.IDataProvider} hubMarker a {@link yfiles.algorithms.IDataProvider} that marks hub nodes - * @param {yfiles.algorithms.IDataAcceptor} descriptorAcceptor a {@link yfiles.algorithms.IDataAcceptor} for storing the created bus descriptors - * @returns {yfiles.algorithms.EdgeList} a list of the created edges + * @param graph the graph of the bus + * @param hubMarker a {@link } that marks hub nodes + * @param descriptorAcceptor a {@link } for storing the created bus descriptors + * @returns a list of the created edges * @see yfiles.router.BusRepresentations#replaceHubsBySubgraph * @see yfiles.router.BusRepresentations#toEdgeLists * @static @@ -112469,22 +106754,21 @@ declare namespace system{ /** * Changes the representation of buses from complete subgraphs to hubs by replacing intersection points by hubs. *

    - * The edges of the given graph must form an orthogonal, cycle-free bus, otherwise an {@link Stubs.Exceptions.InvalidOperationError} - * is thrown. + * The edges of the given graph must form an orthogonal, cycle-free bus, otherwise an {@link yfiles.lang.Exception} is thrown. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph where each bus is represented by a complete subgraph of the corresponding nodes - * @param {yfiles.algorithms.IEdgeCursor} edgeCursor an {@link yfiles.algorithms.IEdgeCursor} of the regular edges - * @param {yfiles.algorithms.IDataProvider} descriptorProvider a {@link yfiles.algorithms.IDataProvider} that provides a {@link yfiles.router.BusDescriptor} for each edge - * @param {yfiles.algorithms.IDataAcceptor} busIDAcceptor an optional {@link yfiles.algorithms.IDataAcceptor} that stores the bus ID for each new edge + * @param graph the graph where each bus is represented by a complete subgraph of the corresponding nodes + * @param edgeCursor an {@link } of the regular edges + * @param descriptorProvider a {@link } that provides a {@link } for each edge + * @param busIDAcceptor an optional {@link } that stores the bus ID for each new edge * @throws {Stubs.Exceptions.InvalidOperationError} if the path of an edge is not orthogonal or if some paths form a cycle * @static */ static replaceSubgraphByHubs(graph:yfiles.layout.LayoutGraph,edgeCursor:yfiles.algorithms.IEdgeCursor,descriptorProvider:yfiles.algorithms.IDataProvider,busIDAcceptor:yfiles.algorithms.IDataAcceptor):void; /** * Calculates for every bus represented by hubs a list of all of its edges. - * @param {yfiles.algorithms.Graph} graph the graph where buses are represented by means of hubs - * @param {yfiles.algorithms.IDataProvider} hubMarker a {@link yfiles.algorithms.IDataProvider} which marks hub nodes - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s where each list contains all edges of a bus + * @param graph the graph where buses are represented by means of hubs + * @param hubMarker a {@link } which marks hub nodes + * @returns an array of {@link }s where each list contains all edges of a bus * @static */ static toEdgeLists(graph:yfiles.algorithms.Graph,hubMarker:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList[]; @@ -112585,14 +106869,13 @@ declare namespace system{ * {@link yfiles.router.BusDescriptor#fixed corresponding BusDescriptor property}. The paths of edges which are not marked as fixed are calculated by the algorithm. * The structure induced by the fixed edges must be orthogonal and cycle-free. *

    - * @class yfiles.router.BusRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface BusRouter extends yfiles.layout.LayoutStageBase{} export class BusRouter { /** * Creates a new instance of {@link yfiles.router.BusRouter} with default settings. - * @constructor */ constructor(); /** @@ -112789,24 +107072,23 @@ declare namespace system{ * has to be registered with the graph to mark all edges that should be routed by the algorithm. The routes of the other * edges remain unchanged. If there is no such key registered, the algorithm routes all edges. *

    - * @class yfiles.router.ChannelEdgeRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface ChannelEdgeRouter extends yfiles.layout.LayoutStageBase{} export class ChannelEdgeRouter { /** * Creates a new {@link yfiles.router.ChannelEdgeRouter} instance with default settings. - * @constructor */ constructor(); /** * Checks the sizes of the nodes to be non-zero. - * @param {yfiles.layout.LayoutGraph} g The graph to check. + * @param g The graph to check. * @protected */ checkNodeSize(g:yfiles.layout.LayoutGraph):void; /** - * Data provider key for marking the edges that should be routed. + * Data provider key for marking the edges that should be routed *

    * If this key is not registered with the graph, the algorithm will route all edges. *

    @@ -112876,30 +107158,28 @@ declare namespace system{ * This edge routing algorithm is realized as a {@link yfiles.layout.ILayoutStage} which can be applied to a graph directly or * using a {@link yfiles.router.OrganicEdgeRouter#coreLayout core layout algorithm}. *

    - * @class yfiles.router.OrganicEdgeRouter + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface OrganicEdgeRouter extends Object,yfiles.layout.ILayoutStage{} export class OrganicEdgeRouter { /** * Creates a new {@link yfiles.router.OrganicEdgeRouter} with the given {@link yfiles.router.OrganicEdgeRouter#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} core the core layout algorithm - * @constructor + * @param core the core layout algorithm */ constructor(core:yfiles.layout.ILayoutAlgorithm); /** * Creates a new {@link yfiles.router.OrganicEdgeRouter} instance with the default settings. - * @constructor */ constructor(); /** * Performs the organic routing of the edges of the input graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** * Checks the sizes of the nodes to be non-zero. - * @param {yfiles.layout.LayoutGraph} g The graph to check. + * @param g The graph to check. * @protected */ checkNodeSize(g:yfiles.layout.LayoutGraph):void; @@ -112908,7 +107188,7 @@ declare namespace system{ *

    * The edges will keep a greater distance to the nodes. Therefore, they won't cross them. *

    - * @returns {yfiles.layout.ILayoutStage} the {@link yfiles.layout.ILayoutStage} that resizes the nodes + * @returns the {@link } that resizes the nodes */ createNodeEnlargementStage():yfiles.layout.ILayoutStage; /** @@ -112980,14 +107260,13 @@ declare namespace system{ * The edges whose paths have to be routed can be defined registering a {@link yfiles.algorithms.IDataProvider} with key * {@link yfiles.router.OrthogonalPatternEdgeRouter#DEFAULT_AFFECTED_EDGES_DP_KEY}. *

    - * @class yfiles.router.OrthogonalPatternEdgeRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface OrthogonalPatternEdgeRouter extends yfiles.layout.LayoutStageBase{} export class OrthogonalPatternEdgeRouter { /** * Creates a new instance of {@link yfiles.router.OrthogonalPatternEdgeRouter} with default settings. - * @constructor */ constructor(); /** @@ -112996,11 +107275,11 @@ declare namespace system{ * This method is called by {@link yfiles.router.OrthogonalPatternEdgeRouter#calculateCost}. The default implementation multiplies * the number of bends with the according {@link yfiles.router.OrthogonalPatternEdgeRouter#bendCost costs}. It may be overridden to change the calculation of these costs. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the costs are calculated - * @param {yfiles.algorithms.YList} path the path of the given edge - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} the costs for the bends of this path + * @param edge the edge for which the costs are calculated + * @param path the path of the given edge + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns the costs for the bends of this path * @protected */ calculateBendCost(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; @@ -113012,11 +107291,11 @@ declare namespace system{ * {@link yfiles.layout.PortCandidate}s and monotonic path restrictions. It may be overridden to apply a different set of costs or * a different weighting. *

    - * @param {yfiles.algorithms.Edge} edge the edge whose costs to calculate - * @param {yfiles.algorithms.YList} path the edge's path - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} the sum of all costs for this edge's path + * @param edge the edge whose costs to calculate + * @param path the edge's path + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns the sum of all costs for this edge's path * @protected */ calculateCost(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; @@ -113028,11 +107307,11 @@ declare namespace system{ * crossings between edge segments and nodes and sum up the costs. It may be overridden to use a different combination of * costs. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the costs are calculated - * @param {yfiles.algorithms.YList} path the path of the given edge - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} the overall crossing costs of the given path, including edge crossings, edge overlaps and node crossings + * @param edge the edge for which the costs are calculated + * @param path the path of the given edge + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns the overall crossing costs of the given path, including edge crossings, edge overlaps and node crossings * @protected */ calculateCrossingCosts(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; @@ -113043,11 +107322,11 @@ declare namespace system{ * costs between 0 for short paths and 1 for long paths. Hence, it has relatively little impact on the overall costs. The * method may be overridden to introduce a different weighting of the edge length. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the costs are calculated - * @param {yfiles.algorithms.YList} path the path of the given edge - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} the costs for the length of the given path + * @param edge the edge for which the costs are calculated + * @param path the path of the given edge + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns the costs for the length of the given path * @protected */ calculateEdgeLength(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; @@ -113057,11 +107336,11 @@ declare namespace system{ * This method is called by {@link yfiles.router.OrthogonalPatternEdgeRouter#calculateCost}. The default implementation will return * the {@link yfiles.layout.PortCandidate#cost candidates' costs}. It may be overridden to change the calculation of these costs. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the costs are calculated - * @param {yfiles.algorithms.YList} path the path of the given edge - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} the costs for the {@link yfiles.layout.PortCandidate}s + * @param edge the edge for which the costs are calculated + * @param path the path of the given edge + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns the costs for the {@link }s * @protected */ calculatePortCandidateCost(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; @@ -113074,22 +107353,22 @@ declare namespace system{ * source and target ports share the same node side. In this manner, paths with different source and target directions are * cheaper and thus preferred. The method may be overridden to change the calculation of this penalty. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the costs are calculated - * @param {yfiles.algorithms.YList} path the path of the given edge - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} an extra penalty for specific self-loop paths + * @param edge the edge for which the costs are calculated + * @param path the path of the given edge + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns an extra penalty for specific self-loop paths * @protected */ calculateSelfLoopSelfSidePenaltyCost(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; /** * Checks the sizes of the nodes to be non-zero. - * @param {yfiles.layout.LayoutGraph} g The graph to check. + * @param g The graph to check. * @protected */ checkNodeSize(g:yfiles.layout.LayoutGraph):void; /** - * Data provider key for determining which edges are routed. + * Data provider key for determining which edges are routed * @const * @static * @type {yfiles.algorithms.EdgeDpKey.} @@ -113223,14 +107502,13 @@ declare namespace system{ * Method {@link yfiles.router.OrthogonalSegmentDistributionStage#lockFirstAndLastSegment} can be used to guarantee that the first and last segment of an edge won't be distributed. So, ports can easily * be maintained without setting explicit strong {@link yfiles.layout.PortConstraint}s or fixed {@link yfiles.layout.PortCandidate}s. *

    - * @class yfiles.router.OrthogonalSegmentDistributionStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface OrthogonalSegmentDistributionStage extends yfiles.layout.LayoutStageBase{} export class OrthogonalSegmentDistributionStage { /** * Creates a new instance of {@link yfiles.router.OrthogonalSegmentDistributionStage} with default settings. - * @constructor */ constructor(); /** @@ -113238,13 +107516,13 @@ declare namespace system{ *

    * The grid coordinates will be multiples of the {@link yfiles.router.OrthogonalSegmentDistributionStage#gridSpacing grid spacing} added to this origin. *

    - * @param {number} offsetX the x-coordinate of the grid origin - * @param {number} offsetY the y-coordinate of the grid origin + * @param offsetX the x-coordinate of the grid origin + * @param offsetY the y-coordinate of the grid origin * @see yfiles.router.OrthogonalSegmentDistributionStage#gridRouting */ setGridOrigin(offsetX:number,offsetY:number):void; /** - * Data provider key for determining which edges are distributed. + * Data provider key for determining which edges are distributed * @const * @static * @type {yfiles.algorithms.EdgeDpKey.} @@ -113345,21 +107623,20 @@ declare namespace system{ *

    * Thus, it guarantees that ports are always in the interior of the nodes or on their borders. *

    - * @class yfiles.router.SnapOuterPortsToNodeBorderStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface SnapOuterPortsToNodeBorderStage extends yfiles.layout.LayoutStageBase{} export class SnapOuterPortsToNodeBorderStage { /** * Creates a new instance of {@link yfiles.router.SnapOuterPortsToNodeBorderStage}. - * @constructor */ constructor(); static $class:yfiles.lang.Class; } /** * Specifies custom data for the {@link yfiles.router.BusRouter}. - * @class yfiles.router.BusRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface BusRouterData extends yfiles.layout.LayoutData{} @@ -113421,7 +107698,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.ChannelEdgeRouter}. - * @class yfiles.router.ChannelEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface ChannelEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113437,7 +107714,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.OrganicEdgeRouter}. - * @class yfiles.router.OrganicEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface OrganicEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113459,7 +107736,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.OrthogonalPatternEdgeRouter}. - * @class yfiles.router.OrthogonalPatternEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface OrthogonalPatternEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113511,7 +107788,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.ParallelEdgeRouter}. - * @class yfiles.router.ParallelEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface ParallelEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113542,7 +107819,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.EdgeRouter}. - * @class yfiles.router.PolylineEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface PolylineEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113656,7 +107933,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.StraightLineEdgeRouter}. - * @class yfiles.router.StraightLineEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface StraightLineEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113694,6 +107971,5332 @@ declare namespace system{ targetPortConstraints:yfiles.layout.ItemMapping; static $class:yfiles.lang.Class; } + }export namespace partial{ + export enum EdgeRoutingStrategy{ + /** + * A routing strategy that produces orthogonal routes for partial edges and inter-edges. + *

    + * A route of an edge is called orthogonal if it only consists of vertical and horizontal segments. + *

    + *

    + * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. + *

    + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + */ + ORTHOGONAL, + /** + * A routing strategy that produces straight-line routes for partial edges and inter-edges. + *

    + * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. + *

    + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + */ + STRAIGHTLINE, + /** + * Automatically chooses a suitable routing strategy for partial edges and inter-edges by analyzing the routes of the fixed + * edges. If, for example, all fixed edges have orthogonal edge routes, inter-edges will be routed orthogonally, too. + *

    + * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. + *

    + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + */ + AUTOMATIC, + /** + * A routing strategy that produces organic routes for partial edges and inter-edges. + *

    + * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. + *

    + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + */ + ORGANIC, + /** + * A routing strategy that produces octilinear routes for partial edges and inter-edges. + *

    + * A route of an edge is called octilinear if the slope of each segment is a multiple of 45 degrees. + *

    + *

    + * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. + *

    + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + */ + OCTILINEAR + } + export enum ComponentAssignmentStrategy{ + /** + * A component assignment strategy that assigns each partial node to a separate subgraph component. + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + */ + SINGLE, + /** + * A component assignment strategy where the subgraph components correspond to the connected components of the graph + * induced by the partial elements. + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + */ + CONNECTED, + /** + * A component assignment strategy where the subgraph components correspond to the clusters computed by a clustering + * algorithm based on {@link yfiles.algorithms.Groups#edgeBetweennessClustering edge betweenness centrality}. + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + */ + CLUSTERING, + /** + * A component assignment strategy where the subgraph components are defined by the user. Two partial nodes are considered + * to be in the same component if the {@link yfiles.algorithms.IDataProvider} associated with key {@link yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY} + * returns the same object for both of them. + * @see yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + */ + CUSTOMIZED + } + export enum SubgraphPlacement{ + /** + * A positioning strategy which tries to place each subgraph component close to the barycenter of its graph neighbors. + * @see yfiles.partial.PartialLayout#subgraphPlacement + */ + BARYCENTER, + /** + * A positioning strategy which tries to place each subgraph component close to its original position. + * @see yfiles.partial.PartialLayout#subgraphPlacement + */ + FROM_SKETCH + } + export enum LayoutOrientation{ + /** + * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each + * predecessor of a node v is placed above v and each successor below v. + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + TOP_TO_BOTTOM, + /** + * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each + * predecessor of a node v is placed below v and each successor above v. + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + BOTTOM_TO_TOP, + /** + * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each + * predecessor of a node v is placed to the left of v and each successor to the right of v. + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + LEFT_TO_RIGHT, + /** + * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each + * predecessor of a node v is placed to the right of v and each successor to the left of v. + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + RIGHT_TO_LEFT, + /** + * Layout orientation specifier where the algorithm automatically detects the layout orientation. + *

    + * The algorithm analyzes the flow direction of fixed edges in the current drawing. If there is no common flow direction, + * the results are the same as for {@link yfiles.partial.LayoutOrientation#NONE}. Otherwise, the layout orientation is either + * {@link yfiles.partial.LayoutOrientation#TOP_TO_BOTTOM}, {@link yfiles.partial.LayoutOrientation#BOTTOM_TO_TOP}, {@link yfiles.partial.LayoutOrientation#LEFT_TO_RIGHT} + * or {@link yfiles.partial.LayoutOrientation#RIGHT_TO_LEFT}. + *

    + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + AUTO_DETECT, + /** + * Layout orientation specifier where the layout orientation is completely ignored. + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + NONE + } + /** + * This class represents a partial layout algorithm which changes the coordinates for a given set of graph elements (called + * partial elements) only. + *

    + * The location and size of the remaining elements (called fixed elements) is not allowed to be changed.Layout Style + *

    + *

    + * This partial layout algorithm offers a kind of generic partial layout support for other existing layout algorithms. + * Hence, its layout style heavily depends on the selected {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm} as well as the specified {@link yfiles.partial.PartialLayout#edgeRouter edge router} or + * {@link yfiles.partial.PartialLayout#edgeRoutingStrategy edge routing strategy}. + *

    + *

    + * The partial layout is suitable for applications where users may incrementally add new elements to an existing drawing. + * The added elements should be arranged so that they fit best possible into the given diagram without making any changes + * to the already existing layout. Hence, the so-called mental map of the existing drawing is preserved. + *

    + *

    + * {@graph {"ann":{"s":[60,30],"d":1},"n":[[49.74,127.62,295.26,342.38,2,[[49.74,150,295.26,22.38,"Group"]]],[270,425,[[291.33,449.35,17.35,18.7,"16"]]],[270,375,[[291.33,399.35,17.35,18.7,"18"]]],[200,375,[[221.33,399.35,17.35,18.7,"19"]]],[64.74,405.17,1,[[86.07,429.52,17.35,18.7,"13"]]],[200,265,[[221.33,289.35,17.35,18.7,"20"]]],[100,215,[[124.66,239.35,10.67,18.7,"2"]]],[100,165,[[124.66,189.35,10.67,18.7,"3"]]],[100,265,[[121.33,289.35,17.35,18.7,"22"]]],[-420.63,317.87,375.21,302.93,3,[[-420.63,340.25,375.21,22.38,"Group"]]],[-179.98,534.8,1,[[-155.31,559.15,10.67,18.7,"6"]]],[-163.42,363.25,1,[[-142.09,387.6,17.35,18.7,"12"]]],[-371.63,364.65,1,[[-346.96,389,10.67,18.7,"8"]]],[-333.29,532.76,1,[[-308.62,557.11,10.67,18.7,"9"]]],[-176.17,453.25,1,[[-154.84,477.6,17.35,18.7,"11"]]],[370,215,[[394.66,239.35,10.67,18.7,"1"]]],[370,165,[[394.66,189.35,10.67,18.7,"4"]]],[-130.4,215,1,[[-105.74,239.35,10.67,18.7,"5"]]],[-224.19,264.44,1,[[-199.52,288.79,10.67,18.7,"7"]]],[370,425,[[391.33,449.35,17.35,18.7,"10"]]],[370,265,[[391.33,289.35,17.35,18.7,"14"]]],[370,375,[[391.33,399.35,17.35,18.7,"15"]]],[270,505,[[291.33,529.35,17.35,18.7,"17"]]],[440,165,[[461.33,189.35,17.35,18.7,"21"]]]],"e":[[13,12,0,-15,0,15],[13,14],[10,13,-30,4,0,0],[14,11],[6,7,0,-15,0,15],[5,8,-30,0,30,0],[1,2,0,-15,0,15],[2,3,-30,0,30,0],[4,3],[15,6,-30,0,30,0],[15,16,0,-15,0,15],[7,16,30,0,-30,0],[6,17],[17,18],[18,12],[10,19],[15,20,0,15,0,-15],[19,21,0,-15,0,15],[21,20,0,-15,0,15],[19,1,-30,0,30,0],[1,22,0,15,0,-15],[20,5,-30,0,30,0],[16,23,30,0,-30,0],[11,4,-30,0,0,0]],"vp":[-421.0,127.0,921.0,494.0]}} The input graph where marked nodes denote the partial elements that were incrementally added to the existing diagram. {@graph {"ann":{"s":[60,30],"d":1},"n":[[67.37,127.62,260,342.38,2,[[67.37,150,260,22.38,"Group"]]],[252.37,425,[[273.7,449.35,17.35,18.7,"16"]]],[252.37,375,[[273.7,399.35,17.35,18.7,"18"]]],[182.37,375,[[203.7,399.35,17.35,18.7,"19"]]],[182.37,321,1,[[203.7,345.35,17.35,18.7,"13"]]],[182.37,265,[[203.7,289.35,17.35,18.7,"20"]]],[82.37,215,[[107.03,239.35,10.67,18.7,"2"]]],[82.37,165,[[107.03,189.35,10.67,18.7,"3"]]],[82.37,265,[[103.7,289.35,17.35,18.7,"22"]]],[-147.05,387.62,180,185.56,3,[[-147.05,410,180,22.38,"Group"]]],[-42.05,425,1,[[-17.38,449.35,10.67,18.7,"6"]]],[-42.05,474.19,1,[[-20.72,498.54,17.35,18.7,"12"]]],[-132.05,425,1,[[-107.38,449.35,10.67,18.7,"8"]]],[-132.05,474.19,1,[[-107.38,498.54,10.67,18.7,"9"]]],[-42.05,528.19,1,[[-20.72,552.54,17.35,18.7,"11"]]],[352.37,215,[[377.03,239.35,10.67,18.7,"1"]]],[352.37,165,[[377.03,189.35,10.67,18.7,"4"]]],[-13.63,215,1,[[11.03,239.35,10.67,18.7,"5"]]],[-13.63,265,1,[[11.03,289.35,10.67,18.7,"7"]]],[352.37,425,[[373.7,449.35,17.35,18.7,"10"]]],[352.37,265,[[373.7,289.35,17.35,18.7,"14"]]],[352.37,375,[[373.7,399.35,17.35,18.7,"15"]]],[252.37,505,[[273.7,529.35,17.35,18.7,"17"]]],[422.37,165,[[443.7,189.35,17.35,18.7,"21"]]]],"e":[[13,12,0,-15,0,15],[13,14,0,15,-30,0,[-102.05,543.19]],[10,13,-30,0,30,0,[-54.55,440,-54.55,489.19]],[14,11,0,-15,0,15],[6,7,0,-15,0,15],[5,8,-30,0,30,0],[1,2,0,-15,0,15],[2,3,-30,0,30,0],[4,3,0,15,0,-15],[15,6,-30,0,30,0],[15,16,0,-15,0,15],[7,16,30,0,-30,0],[6,17,-30,0,30,0],[17,18,0,15,0,-15],[18,12,-30,0,0,-15,[-102.05,280]],[10,19,30,0,0,15,[27.95,440,27.95,474,382.37,474]],[15,20,0,15,0,-15],[19,21,0,-15,0,15],[21,20,0,-15,0,15],[19,1,-30,0,30,0],[1,22,0,15,0,-15],[20,5,-30,0,30,0],[16,23,30,0,-30,0],[11,4,30,5.2,-30,0,[119.87,494.39,119.87,336]]],"vp":[-148.0,127.0,631.0,447.0]}} + * The result of a partial layout run with {@link yfiles.partial.PartialLayout#componentAssignmentStrategy component assignment strategy} set to {@link yfiles.partial.ComponentAssignmentStrategy#SINGLE} + * and with {@link yfiles.partial.PartialLayout#considerNodeAlignment node alignment} enabled.Features + *

    + *

    + * Similar to the layout style, the supported feature set mainly depends on the features supported by the specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm} + * as well as the specified {@link yfiles.partial.PartialLayout#edgeRouter edge router} or {@link yfiles.partial.PartialLayout#edgeRoutingStrategy edge routing strategy}. The internal step that {@link yfiles.partial.PartialLayout#placeSubgraphs places the components} can handle + * group nodes as well as minimum distance constraints. Furthermore, it is able to consider node labels. + *

    + *

    + * Concept The layout algorithm tries to place the partial elements such that the resulting drawing (including the fixed elements) + * has a good quality with respect to common graph drawing aesthetics. + *

    + *

    + * The layout algorithm handles each selected graph element as partial element. For this, it looks up the {@link yfiles.algorithms.IDataProvider} + * keys {@link yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY} and {@link yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY}. Partial + * node elements can be assigned to the so-called subgraph components. During the layout process each subgraph induced by the nodes of a + * component is first laid out using the specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm}. Then, the different components are placed + * one-by-one onto the drawing area such that the number of overlaps among graph elements is small. The user can specify + * different objectives for finding 'good' positions for subgraph components (see {@link yfiles.partial.PartialLayout#subgraphPlacement}), e.g., {@link yfiles.partial.SubgraphPlacement#BARYCENTER} + * specifies that the component should be placed close to the barycenter of its graph neighbors and {@link yfiles.partial.SubgraphPlacement#FROM_SKETCH} + * specifies that the component should be placed close to its original position. + *

    + *

    + * Method {@link yfiles.partial.PartialLayout#componentAssignmentStrategy} allows to specify the strategy that assigns partial nodes to subgraph components. Possible values are + * {@link yfiles.partial.ComponentAssignmentStrategy#CLUSTERING}, {@link yfiles.partial.ComponentAssignmentStrategy#CONNECTED}, {@link yfiles.partial.ComponentAssignmentStrategy#SINGLE} + * and + * {@link yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED}. The last value allows to use a customized component assignment. + * Note that nodes of a component cannot be assigned to different group nodes. + *

    + *

    + * Furthermore, the user can specify the edge routing strategy (see {@link yfiles.partial.PartialLayout#edgeRoutingStrategy}) that is used for routing partial edges and edges + * between different subgraph components (so-called inter-edges). Possible values are {@link yfiles.partial.EdgeRoutingStrategy#ORGANIC}, + * {@link yfiles.partial.EdgeRoutingStrategy#ORTHOGONAL}, {@link yfiles.partial.EdgeRoutingStrategy#STRAIGHTLINE}, {@link yfiles.partial.EdgeRoutingStrategy#OCTILINEAR} + * and {@link yfiles.partial.EdgeRoutingStrategy#AUTOMATIC}. + *

    + * @class + * @extends {yfiles.layout.LayoutStageBase} + */ + export interface PartialLayout extends yfiles.layout.LayoutStageBase{} + export class PartialLayout { + /** + * Creates a new instance of {@link yfiles.partial.PartialLayout} which uses the specified {@link yfiles.layout.ILayoutAlgorithm} instance + * as the core layout algorithm. + *

    + * This instance is applied to each subgraph component, see {@link yfiles.partial.PartialLayout#componentAssignmentStrategy}. + *

    + * @param [subgraphLayouter=null] the layout algorithm that is applied to the subgraph components + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + */ + constructor(subgraphLayouter?:yfiles.layout.ILayoutAlgorithm); + /** + * This method is called each time when edges are routed with an edge router. + *

    + * Subclasses may modify the configuration of the given edge router instance. + *

    + *

    + * The type of the given instance depends on the edge routing strategy, i.e., if the routing strategy is set to {@link yfiles.partial.EdgeRoutingStrategy#OCTILINEAR} + * or {@link yfiles.partial.EdgeRoutingStrategy#ORTHOGONAL} it's an instance of {@link yfiles.router.EdgeRouter}, if the routing strategy + * is set to {@link yfiles.partial.EdgeRoutingStrategy#ORGANIC} it's an instance of {@link yfiles.organic.OrganicLayout}, and, if the + * routing strategy is set to {@link yfiles.partial.EdgeRoutingStrategy#STRAIGHTLINE} it's an instance of a private + * {@link yfiles.router.StraightLineEdgeRouter}. If the edge routing strategy is set to + * {@link yfiles.partial.EdgeRoutingStrategy#AUTOMATIC}, the layout algorithm chooses one of the above strategies that best fits + * the routing style of the fixed edges. + *

    + * @param edgeRouter the instance used for routing the edges + * @see yfiles.partial.PartialLayout#edgeRouter + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + * @protected + */ + configureEdgeRouter(edgeRouter:yfiles.layout.ILayoutAlgorithm):void; + /** + * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and calculates the layout for the given subgraph component using the + * specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm}. + *

    + * It is called once for each subgraph component. + *

    + *

    + * Subclasses may implement a custom layout strategy or add some additional data. + *

    + * @param subGraph the subgraph component + * @protected + */ + layoutSubgraph(subGraph:yfiles.layout.LayoutGraph):void; + /** + * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and places the subgraph components one-by-one onto the drawing area. + *

    + * Therefore, it considers the {@link yfiles.partial.PartialLayout#subgraphPlacement specified objective} for finding a suitable position. + *

    + *

    + * Subclasses may implement a custom placement strategy or add some additional data. However, they must not modify the + * given subgraph component lists. + *

    + * @param graph the input graph + * @param subgraphComponents each entry contains a {@link } that induces a subgraph component + * @protected + */ + placeSubgraphs(graph:yfiles.layout.LayoutGraph,subgraphComponents:yfiles.algorithms.NodeList[]):void; + /** + * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and routes all partial edges that connect two fixed elements. + *

    + * It either uses a {@link yfiles.partial.PartialLayout#edgeRouter custom edge router} or an internal edge router that produces routes according to the specified + * {@link yfiles.partial.PartialLayout#edgeRoutingStrategy routing strategy}. + *

    + *

    + * Subclasses may implement a custom routing strategy or add some additional data. + *

    + * @param graph the subgraph of the input graph induced by the fixed nodes + * @param partialEdges the {@link list of partial edges} to be routed + * @protected + */ + routeEdgesBetweenFixedElements(graph:yfiles.layout.LayoutGraph,partialEdges:yfiles.algorithms.EdgeList):void; + /** + * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and routes all inter-edges. + *

    + * Inter-edges are edges between different subgraph components including edges between fixed and partial elements. For the routing, + * this method uses the edge router instance set with method {@link yfiles.partial.PartialLayout#edgeRouter}. If no edge router was specified by the user, it uses an + * internal edge router with routing strategy {@link yfiles.partial.PartialLayout#edgeRoutingStrategy}. + *

    + *

    + * Subclasses may implement a custom routing strategy or add some additional data. + *

    + * @param graph the relevant subgraph + * @param interEdges the {@link list of inter-edges} to be routed + * @protected + */ + routeInterEdges(graph:yfiles.layout.LayoutGraph,interEdges:yfiles.algorithms.EdgeList):void; + /** + * Data provider key for marking partial nodes + * @see yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static AFFECTED_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for specifying the edges that should be considered to be directed + *

    + * If a layout orientation is specified (i.e., {@link yfiles.partial.PartialLayout#layoutOrientation} is not + * {@link yfiles.partial.LayoutOrientation#NONE}), the algorithm tries to route directed edges such that they adhere to that + * orientation. + *

    + * @see yfiles.partial.PartialLayout#layoutOrientation + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static DIRECTED_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Data provider key for marking partial edges + * @see yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static AFFECTED_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Data provider key for obtaining the edges that should be routed by the edge router + * @see yfiles.partial.PartialLayout#edgeRouter + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static ROUTE_EDGE_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Data provider key for defining custom subgraph components + * @see yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static COMPONENT_ID_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets the {@link yfiles.layout.ILayoutAlgorithm} instance that is applied to each subgraph component. + *

    + * More precisely, during the layout process each subgraph induced by the (partial) nodes of a component (see + * {@link yfiles.partial.PartialLayout#componentAssignmentStrategy}) is first laid out using this instance. + *

    + * @type {yfiles.layout.ILayoutAlgorithm} + */ + coreLayout:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the preferred time limit (in milliseconds) for the layout algorithm. + *

    + * The specified value has to be greater than or equal to 0. If the value is 0x7FFFFFFF, the time is not limited. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the maximum duration is negative + * @type {number} + */ + maximumDuration:number; + /** + * Gets or sets whether or not edges between different subgraph components should be routed immediately. + *

    + * If this option is enabled, edges are routed during the placement of the subgraph components, i.e., immediately after a + * component is placed, its edges to other already placed components are routed. Otherwise, these edges are routed in a + * separate step after placing all subgraph components. Hence, while enabling this option usually leads to shorter edge + * routes, the placement of subgraph components is less compact. + *

    + * @see yfiles.partial.PartialLayout#routeInterEdges + * @see yfiles.partial.PartialLayout#placeSubgraphs + * @type {boolean} + */ + routeInterEdgesImmediately:boolean; + /** + * Gets or sets whether or not a subgraph component may be placed within another subgraph component. + *

    + * Enabling this option leads to more compact layout results but requires more runtime. + *

    + * @type {boolean} + */ + componentCompaction:boolean; + /** + * Gets or sets whether or not fixed (non-partial) group nodes may be resized. + *

    + * Enabling this option may lead to better results if there are fixed group nodes, since there is more space for the + * partial elements. + *

    + * @type {boolean} + */ + resizeFixedGroups:boolean; + /** + * Gets or sets the objective used for finding 'good' positions for subgraph components. + * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined positioning strategies + * @type {yfiles.partial.SubgraphPlacement} + */ + subgraphPlacement:yfiles.partial.SubgraphPlacement; + /** + * Gets or sets the minimum distance between two adjacent nodes. + *

    + * The specified value has to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the distance is negative + * @type {number} + */ + minimumNodeDistance:number; + /** + * Gets or sets whether or not partial nodes should be aligned. + *

    + * If this option is enabled, the algorithm tries to align the center of partial nodes with other nodes. + *

    + * @type {boolean} + */ + considerNodeAlignment:boolean; + /** + * Gets or sets the strategy that assigns partial nodes to subgraph components. + *

    + * The specified core layouter (see {@link yfiles.partial.PartialLayout#coreLayout}) independently calculates the layout for each such subgraph component. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined assignment strategies. + * @see yfiles.partial.PartialLayout#coreLayout + * @type {yfiles.partial.ComponentAssignmentStrategy} + */ + componentAssignmentStrategy:yfiles.partial.ComponentAssignmentStrategy; + /** + * Gets or sets whether or not a postprocessing step should be applied to reduce the number of directed edges that do not + * comply with the specified layout orientation. + * @see yfiles.partial.PartialLayout#layoutOrientation + * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY + * @type {boolean} + */ + optimizeOrientation:boolean; + /** + * Gets or sets the custom edge router instance that is used for partial edges and edges between different subgraph + * components (so-called inter-edges). + * @see yfiles.partial.PartialLayout#ROUTE_EDGE_DP_KEY + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + * @type {yfiles.layout.ILayoutAlgorithm} + */ + edgeRouter:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the routing strategy that is used for partial edges and edges between different subgraph components + * (so-called inter-edges). + * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined routing strategies + * @see yfiles.partial.PartialLayout#edgeRouter + * @type {yfiles.partial.EdgeRoutingStrategy} + */ + edgeRoutingStrategy:yfiles.partial.EdgeRoutingStrategy; + /** + * Gets or sets the layout orientation that is considered during the placement of partial elements. + *

    + * More precisely, the algorithm tries to place each {@link yfiles.partial.PartialLayout#componentAssignmentStrategy subgraph component} such that each predecessor of a component's node v + * is placed before v and each successor after v with respect to the layout orientation. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified orientation does not match one of the predefined orientations + * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY + * @type {yfiles.partial.LayoutOrientation} + */ + layoutOrientation:yfiles.partial.LayoutOrientation; + /** + * Gets or sets whether or not subgraph components are mirrored to improve the layout quality. + *

    + * If enabled, the algorithm checks for each component which of the four possible mirrorings minimizes the edge length. + *

    + * @type {boolean} + */ + allowMirroring:boolean; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.partial.PartialLayout}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface PartialLayoutData extends yfiles.layout.LayoutData{} + export class PartialLayoutData { + constructor(); + /** + * Gets or sets the collection of nodes placed by the layout. + * @see yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + affectedNodes:yfiles.layout.ItemCollection; + /** + * Gets or sets the collection of edges placed by the layout. + * @see yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + affectedEdges:yfiles.layout.ItemCollection; + /** + * Gets or sets the collection of edges that are considered as directed by the layout. + *

    + * Only if the {@link yfiles.partial.PartialLayout#layoutOrientation} is not {@link yfiles.partial.LayoutOrientation#NONE} the directedness of edges has an effect. + *

    + * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + directedEdges:yfiles.layout.ItemCollection; + /** + * Gets or sets the mapping from partial nodes to an object defining their component assignment. + *

    + * All partial nodes associated with the same object are assigned to the same subgraph component. + *

    + * @see yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY + * @see yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + * @type {yfiles.layout.ItemMapping.} + */ + componentIds:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. + * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodeHalos:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to their source {@link yfiles.layout.PortConstraint}. + * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + sourcePortConstraints:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to their target {@link yfiles.layout.PortConstraint}. + * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + targetPortConstraints:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to a collection of their source port {@link yfiles.layout.PortCandidate candidates}. + * @see yfiles.layout.PortCandidate#SOURCE_PORT_CANDIDATE_COLLECTION_DP_KEY + * @type {yfiles.layout.ItemMapping.>} + */ + sourcePortCandidates:yfiles.layout.ItemMapping>; + /** + * Gets or sets a mapping from edges to a collection of their target port {@link yfiles.layout.PortCandidate candidates}. + * @see yfiles.layout.PortCandidate#TARGET_PORT_CANDIDATE_COLLECTION_DP_KEY + * @type {yfiles.layout.ItemMapping.>} + */ + targetPortCandidates:yfiles.layout.ItemMapping>; + /** + * Gets or sets the AbortHandler used during the layout. + * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY + * @type {yfiles.algorithms.AbortHandler} + */ + abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the partition grid layout data. + * @type {yfiles.layout.PartitionGridData} + */ + partitionGridData:yfiles.layout.PartitionGridData; + static $class:yfiles.lang.Class; + } + }export namespace tree{ + /** + * Encapsulates information bound to a node while the algorithm calculates a layout. + * @class + */ + export interface BalloonLayoutNodeInfo extends Object{} + export class BalloonLayoutNodeInfo { + /** + * The upper angle of the subtree wedge rooted at the node. + * @type {number} + */ + upperAngle:number; + /** + * The lower angle of the subtree wedge rooted at the node. + * @type {number} + */ + lowerAngle:number; + /** + * The angle of the gap to the wedge of the previous child node. + * @type {number} + */ + gapAngle:number; + /** + * The distance of the node to its root node. + * @type {number} + */ + dist:number; + /** + * Gets the sum of all wedge angles of the subtree rooted at this node. + * @type {number} + */ + angleSum:number; + static $class:yfiles.lang.Class; + } + /** + * A tree layout algorithm that arranges the subtrees of the tree in a balloon-like fashion. + *

    + * Layout Style {@link yfiles.tree.BalloonLayout} is designed to arrange directed and undirected tree graphs. Subtrees rooted at a node are + * placed in a radial fashion around their root node. All direct children of one node can be placed on a common circle + * around their parent node (depending on the {@link yfiles.tree.BalloonLayout#childAlignmentPolicy alignment policy}). Therefore, subtrees look like balloons or stars, + * especially if subtrees have similar sizes. The edges of the tree are drawn as straight lines. {@graph {"ann":{"s":[30,30],"d":1,"c":1},"n":[[765.94,466.2],[616.19,1035.44],[858.96,1192.81],[289.45,1092.35],[983.21,685.48],[390.63,1191.59],[1141.69,322.61],[1215.22,473.98],[599.06,923.71],[924.21,1082.3],[291.41,844.85],[1077.22,396.06],[999.14,1284.78],[391.43,1274.01],[324.89,753.04],[236.05,1223.63],[930.33,1330.15],[1013.36,1203.58],[1165.73,539.9],[1084.13,551.52],[612.56,192.18],[1004.03,1061.74],[901.39,675.54],[684.7,152.3],[1022.85,458.01],[190.18,1336.4],[767.32,1282.66],[473.05,1190.8],[684.09,233.13],[385.33,871.88],[1139.17,442.18],[925.13,116.39],[353.13,675.6],[334.78,932.43],[685.33,1291.17],[152.25,1056.81],[427.86,640.81],[1239.04,331.19],[1006.49,764.55],[934.86,198.24],[732.68,1169.96],[1046.6,632.79],[412.14,1021.39],[1266.98,538.13],[716.32,76.19],[1068.06,1329.99],[76.94,1090.32],[792.51,44.73],[576.22,1141.17],[944.59,280.09],[718.72,987.86],[132.38,1277.64],[1007.52,113.83],[318.35,600.87],[686.08,946.6],[0,1060.76],[621.34,1239.22],[684.87,0],[47.38,1167.26],[929.76,34.1],[866.88,1320.91],[425.22,944.01],[1181.1,233.18],[374.69,793.72],[118.75,981.5],[903.65,1002.48],[532.13,493.99],[200.85,981.73],[760.81,183.93],[633.38,1355.17],[1177.35,621.5],[775.83,1364.64],[784.35,1446.63],[1237.23,394.55],[272.59,1334.67],[974.02,603.57],[457.46,831.99],[159.13,1412.75],[260.6,752.11],[1069.67,256.55],[1044.67,310.87],[1121.63,226.96],[1225.82,272.87],[597.56,111.13],[530.37,198.46],[610.06,274.57],[555.63,251.79],[547.23,141.92],[1062.07,709.49],[929.94,748.38],[843.55,104.61],[857.02,162.82],[1295.93,457.26],[193.97,837.29],[246.66,931.74],[206.06,892.47],[214.43,784.65],[979.61,1149.06],[838.99,1066.04],[786.55,1086.86],[172.43,1172.3],[317.44,1231.28],[428.9,1117.65],[872.95,52.59],[984.14,58.85],[987.6,170.17],[521.61,289.78],[410.77,300.73],[412.02,412.1],[523.07,420.56],[465.9,437.92],[389.75,356.66],[464.06,273.7],[553.17,340.51],[472.17,355.73]],"e":[[0,1],[1,2],[1,3],[0,4],[3,5],[0,6],[6,7],[1,8],[2,9],[3,10],[6,11],[2,12],[5,13],[10,14],[3,15],[12,16],[12,17],[7,18],[18,19],[0,20],[9,21],[4,22],[20,23],[11,24],[15,25],[2,26],[5,27],[20,28],[10,29],[7,30],[0,31],[14,32],[10,33],[26,34],[3,35],[32,36],[6,37],[4,38],[31,39],[2,40],[4,41],[3,42],[7,43],[23,44],[12,45],[35,46],[44,47],[1,48],[39,49],[1,50],[25,51],[31,52],[32,53],[1,54],[46,55],[34,56],[44,57],[46,58],[31,59],[2,60],[29,61],[6,62],[10,63],[35,64],[9,65],[0,66],[3,67],[23,68],[34,69],[18,70],[26,71],[71,72],[7,73],[25,74],[4,75],[29,76],[25,77],[10,78],[6,79],[6,80],[6,81],[6,82],[20,83],[20,84],[20,85],[20,86],[20,87],[4,88],[4,89],[31,90],[31,91],[7,92],[10,93],[10,94],[10,95],[10,96],[2,97],[2,98],[2,99],[3,100],[3,101],[3,102],[31,103],[31,104],[31,105],[0,114],[114,106],[114,107],[114,108],[114,109],[114,110],[114,111],[114,112],[114,113]],"vp":[0.0,0.0,1326.0,1477.0]}} Sample balloon-drawing of + * a large tree obtained with default settings {@graph {"ann":{"s":[20,20],"d":1,"c":1},"n":[[302.82,325.51,70,70,[[323.15,369.86,29.35,18.7,"Root"]]],[467.87,433.16,35,35],[555.28,457.63,[[581.09,480.55,27.36,18.7,0.20775573281806076,-0.978180737635551,"Leaf"]]],[539.95,490.69,[[558.57,519.19,27.36,18.7,0.6124052098749311,-0.7905440271851036,"Leaf"]]],[511.78,513.79,[[521.49,544.2,27.36,18.7,0.8952174454926904,-0.4456295830457645,"Leaf"]]],[617.42,438.44,[[645.7,457.5,27.36,18.7,-0.01562900399598557,-0.9998778596579152,"Leaf"]]],[604.25,500.42,[[626.78,526.54,27.36,18.7,0.42067550054279435,-0.9072111789672069,"Leaf"]]],[168.96,426.6,35,35],[122.16,495.14,[[108.91,545.35,27.36,18.7,-0.7471310564613752,-0.6646767518658294,"Leaf"]]],[101.02,465.46,[[72.6,501.56,27.36,18.7,-0.38380727069642384,-0.9234132222144982,"Leaf"]]],[94.89,429.54,[[58.95,446.33,27.36,18.7,0.0558744858236695,-0.9984378006836183,"Leaf"]]],[108.08,558.63,[[104.38,613.01,27.36,18.7,-0.8765491095440469,-0.48131243341257923,"Leaf"]]],[60.74,516.51,[[39.11,560.52,27.36,18.7,-0.5800788870754927,-0.8145603014935467,"Leaf"]]],[472.4,260.75,35,35],[534.73,207.69,[[563.84,210.51,27.36,18.7,-0.7413022827299817,-0.6711713086979497,"Leaf"]]],[555.61,237.55,[[585.94,249.4,27.36,18.7,-0.3757344582282841,-0.9267273692407589,"Leaf"]]],[561.43,273.52,[[588.93,294.02,27.36,18.7,0.06458526120504259,-0.997912192547559,"Leaf"]]],[549.36,144.32,[[576.39,143.07,27.36,18.7,-0.8723155432038684,-0.48894334343044304,"Leaf"]]],[596.34,186.85,[[626.56,194.12,27.36,18.7,-0.5729485100623841,-0.8195913645331399,"Leaf"]]],[316.53,515.88,35,35],[349.51,601,[[356.29,631.15,27.36,18.7,0.9501038773669919,-0.3119336823945245,"Leaf"]]],[313.23,604.36,[[326.48,660.69,27.36,18.7,-0.9912225732921417,-0.1322036693745865,"Leaf"]]],[279.09,591.61,[[271.88,644.75,27.36,18.7,-0.8351387927609661,-0.5500392684397689,"Leaf"]]],[397.33,645.07,[[408.68,675.44,27.36,18.7,0.8566078613378385,-0.5159679950289693,"Leaf"]]],[337.13,664.84,[[339.49,693.76,27.36,18.7,0.9957417304784997,-0.09218680048511825,"Leaf"]]],[52.71,198.2,[[17.59,197.15,27.36,18.7,0.42857629306653433,-0.9035055954565794,"Leaf"]]],[39,260.06,[[3.57,279.73,27.36,18.7,-0.006902939255060647,-0.9999761744309916,"Leaf"]]],[145.3,185.63,[[126.97,158.82,27.36,18.7,0.8990721607310399,-0.43780046801987216,"Leaf"]]],[116.92,208.49,[[85.4,197.66,27.36,18.7,0.6192806018773118,-0.7851697498875478,"Leaf"]]],[101.3,241.41,[[64.86,250.7,27.36,18.7,0.21628395104715628,-0.9763305037329477,"Leaf"]]],[173.56,251.58,35,35],[321.26,36.12,[[318.14,1.56,27.36,18.7,0.9965082870714412,-0.08349391473599899,"Leaf"]]],[260.88,55.36,[[239.7,30.94,27.36,18.7,0.861077857359917,-0.5084731296385823,"Leaf"]]],[378.65,109.85,[[406.52,110,27.36,18.7,-0.8303070560332068,-0.557306192950939,"Leaf"]]],[344.63,96.81,[[366.44,90.16,27.36,18.7,-0.9900311505600138,-0.14084857443657478,"Leaf"]]],[308.31,99.85,[[295.59,69.34,27.36,18.7,0.9527898006751772,-0.30363068970273144,"Leaf"]]],[325.62,170.19,35,35],[620.15,245.57,[[649.55,261.91,27.36,18.7,-0.15959409597274285,-0.9871827209441234,"Leaf"]]],[565.45,550.51,[[579.72,580.47,27.36,18.7,0.7732871466592579,-0.6340559823955481,"Leaf"]]],[36.42,458,[[3.15,484.87,27.36,18.7,-0.1682027041762925,-0.9857524285071697,"Leaf"]]],[91.95,148.45,[[66.13,128.88,27.36,18.7,0.7787908142925284,-0.6272837217508362,"Leaf"]]],[383.99,45.04,[[409.22,41.45,27.36,18.7,-0.933684654259895,-0.3580963088326663,"Leaf"]]],[274.32,656.46,[[277.16,712.35,27.36,18.7,-0.9367740425600954,-0.34993484134280844,"Leaf"]]]],"e":[[0,1,[],[[405.66,401.96,61.37,18.7,0.5213485166954306,-0.8533438487148509,"Root-Edge"]]],[1,2],[1,3],[1,4],[1,5],[1,6],[0,7,[],[[268.23,398.95,61.37,18.7,0.4834440722369951,0.8753752504034548,"Root-Edge"]]],[7,8],[7,9],[7,10],[7,11],[7,12],[0,13,[],[[407.74,322.69,61.37,18.7,-0.4757866709710364,-0.8795607106540735,"Root-Edge"]]],[13,14],[13,15],[13,16],[13,17],[13,18],[0,19,[],[[336.08,439.99,61.37,18.7,0.999759704932882,0.02192104907427582,"Root-Edge"]]],[19,20],[19,21],[19,22],[19,23],[19,24],[0,30,[],[[270.35,318.48,61.37,18.7,-0.5287754007295448,0.8487617896579165,"Root-Edge"]]],[30,29],[30,28],[30,27],[30,26],[30,25],[0,36,[],[[340.26,281.05,61.37,18.7,-0.9995303423338449,-0.030644652942837143,"Root-Edge"]]],[36,35],[36,34],[36,33],[36,32],[36,31],[13,37],[1,38],[7,39],[30,40],[36,41],[19,42]],"vp":[-1.0,0.0,678.0,722.0]}} Sample balloon-drawing featuring interleaved child placement and ray-like + * node labels ConceptThe algorithm executes the following steps: + *

    + *
      + *
    1. Select a root node according to the specified {@link yfiles.tree.BalloonLayout#rootNodePolicy root policy}.
    2. + *
    3. Determine the placement of subtrees around the root using a bottom-up recursive approach (starting with leaf nodes).
    4. + *
    5. Assign the actual coordinates of nodes, again using a recursive approach (starting with the root node).
    6. + *
    + *

    + * Features + *

    + *

    + * The algorithm features integrated {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling edge labeling} as well as {@link yfiles.tree.BalloonLayout#integratedNodeLabeling node labeling}. Edge labels and node labels are placed + * automatically without generating overlaps with other labels or graph elements. There are different {@link yfiles.tree.BalloonLayout#nodeLabelingPolicy ways} to place node + * labels. Edge labeling will take the settings of {@link yfiles.layout.PreferredPlacementDescriptor} into account. + *

    + *

    + * Defining a {@link yfiles.tree.BalloonLayout#preferredChildWedge preferred wedge angle} has a great influence on the layout style. Subtrees rooted at a node get a certain + * amount of radial space to be placed around the parent node, such that a preferred angle close to 360 degrees will + * generate drawings where subtrees look like balloons, while an angle close to 180 degrees could be chosen to get drawings + * where subtrees look like semicircles. + *

    + *

    + * Since it is computationally not very complex, {@link yfiles.tree.BalloonLayout} is very well suited for large tree graphs. It + * performs well even for huge graphs. + *

    + *

    + * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} + * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. These edges + * will later be reinserted and routed separately. + *

    + * @class + * @extends {yfiles.layout.MultiStageLayout} + */ + export interface BalloonLayout extends yfiles.layout.MultiStageLayout{} + export class BalloonLayout { + /** + * Creates a new {@link yfiles.tree.BalloonLayout} instance with default settings. + */ + constructor(); + /** + * Calculates the wedge angle that has to be reserved for the subtree rooted at the given node scaling the {@link yfiles.tree.BalloonLayoutNodeInfo#dist distance} with + * the given scale factor. + *

    + * Given some {@link yfiles.tree.BalloonLayoutNodeInfo#dist distance} the {@link yfiles.tree.BalloonLayoutNodeInfo#upperAngle upper angle} and {@link yfiles.tree.BalloonLayoutNodeInfo#lowerAngle lower angle} of the wedge belonging to the subtree rooted at root will be + * calculated and stored in the {@link yfiles.tree.BalloonLayoutNodeInfo} instance associated with root + * ({@link yfiles.tree.BalloonLayout#getInfo}). + *

    + *

    + * This method may be overridden to perform a custom wedge angle assignment scheme. The method is called when + * {@link yfiles.tree.BalloonLayout#calculateChildArrangement arranging child nodes}. Large edge labels on the incoming edge to root need to be considered, if {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling integrated edge labeling} + * should still work properly. + *

    + * @param root the node for which the wedge angles are calculated + * @param [scaleFactor=1.0] a factor to be applied to the {@link #dist distance} of root + * @returns the sum of the upper and lower wedge angle of the subtree rooted at the given root node + * @see yfiles.tree.BalloonLayout#calculateChildArrangement + * @protected + */ + calculateAngles(root:yfiles.algorithms.Node,scaleFactor?:number):number; + /** + * Calculates a child node arrangement for a given root node of the tree. + *

    + * During the arrangement, child nodes of root will be {@link yfiles.tree.BalloonLayout#sortChildNodes sorted}. Furthermore, distances of the child nodes will be chosen + * such that the wedge of the subtree of root fits into the preferred wedge angle, which is either defined via {@link yfiles.tree.BalloonLayout#preferredRootWedge} or {@link yfiles.tree.BalloonLayout#preferredChildWedge}. + * Calculated distances are stored in {@link yfiles.tree.BalloonLayoutNodeInfo#dist}. + *

    + *

    + * The angle values - upper and lower wedge angle - may also be updated during this process and stored in {@link yfiles.tree.BalloonLayoutNodeInfo#upperAngle} + * and {@link yfiles.tree.BalloonLayoutNodeInfo#lowerAngle}, respectively. To compute the angles of wedges, method {@link yfiles.tree.BalloonLayout#calculateAngles} + * is used. + *

    + *

    + * This method may be overridden to perform a custom child node arrangement. If support for available features like {@link yfiles.tree.BalloonLayout#interleavedMode interleaving} + * should be maintained, then these features need to be carefully considered during the arrangement. + *

    + * @param root the node for whose children to compute an arrangement + * @protected + */ + calculateChildArrangement(root:yfiles.algorithms.Node):void; + /** + * Determines the root node of {@link yfiles.tree.BalloonLayout#graph} according to the chosen {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy}. + *

    + * This method may be overridden to implement some other strategy for choosing the root node of the input graph. It is + * called before the rest of the layout process within {@link yfiles.tree.BalloonLayout#applyLayoutCore}. + *

    + * @returns the root node of {@link #graph} + * @see yfiles.tree.BalloonLayout#rootNodePolicy + * @protected + */ + determineRoot():yfiles.algorithms.Node; + /** + * Returns the {@link yfiles.tree.BalloonLayoutNodeInfo} object associated with the given node while the layout algorithm is + * active. + *

    + * The returned object contains detailed information describing the placement of a node in the layout being computed, e.g., + * a node's distance to its parent or the wedge angle of the subtree rooted at a node. + *

    + *

    + * Subclasses may want to override this method to realize another node information setup. This method is called throughout + * the algorithm, each time some information associated with a node needs to be retrieved or stored. + *

    + * @param node the node whose information object should be retrieved + * @returns the {@link } instance associated to the given node + * @see yfiles.tree.BalloonLayoutNodeInfo + */ + getInfo(node:yfiles.algorithms.Node):yfiles.tree.BalloonLayoutNodeInfo; + /** + * Returns the preferred radial amount (wedge) in degrees that child nodes may in total occupy around the given node. + *

    + * The wedge angle controls the degree to which the child nodes may radiate from the center of layout. A value close to 360 + * means that the child nodes may radiate in (almost) any direction from their parent node, edge lengths can in consequence + * stay rather small. On the other hand, a small value means that children are restricted to a small angle; thus, edges + * lengths (and drawings) may become large. + *

    + *

    + * This method returns the {@link yfiles.tree.BalloonLayout#preferredRootWedge preferred root wedge} if node root was selected as global root node ({@link yfiles.tree.BalloonLayout#rootNodePolicy}). Otherwise, it either + * returns {@link yfiles.tree.BalloonLayout#preferredChildWedge} or if the given node has an outdegree equal to 2, it returns the minimum of {@link yfiles.tree.BalloonLayout#preferredChildWedge} and 180. + *

    + *

    + * This method may be overridden to provide a custom child wedge function. + *

    + * @param root the node to get the preferred wedge angle for + * @returns the preferred wedge angle for root in degrees + * @see yfiles.tree.BalloonLayout#preferredChildWedge + * @see yfiles.tree.BalloonLayout#preferredRootWedge + * @protected + */ + getPreferredChildWedge(root:yfiles.algorithms.Node):number; + /** + * Sorts the child nodes (successors) of the given node. + *

    + * This implementation uses the original node coordinates if {@link yfiles.tree.BalloonLayout#fromSketchMode From Sketch mode} is enabled. Otherwise it uses {@link yfiles.tree.BalloonLayout#comparer the specified comparator} + * to sort the outgoing edges and thus the children of root. If there is no such comparator, then the sorting depends on + * whether or not the child nodes are placed in an {@link yfiles.tree.BalloonLayout#interleavedMode interleaved} fashion: + *

    + *
      + *
    • Normal: Children are sorted according to the chosen {@link yfiles.tree.BalloonLayout#childOrderingPolicy child ordering policy}.
    • + *
    • + * Interleaved: Children are sorted such that the resulting interleaved node placement is compact, while children inducing + * larger subgraphs are placed next to smaller ones. + *
    • + *
    + *

    + * This method may be overridden to realize a custom child node ordering. It gets called in method {@link yfiles.tree.BalloonLayout#calculateChildArrangement} + * before coordinates are assigned and just after the wedge sizes for all subtrees rooted at root are determined. + *

    + * @param root the node whose child nodes will be sorted + * @protected + */ + sortChildNodes(root:yfiles.algorithms.Node):void; + /** + * Data provider key for marking nodes whose child nodes should be placed in an interleaved fashion + *

    + * This {@link yfiles.algorithms.IDataProvider} allows to individually configure the interleaving feature for each node in the + * graph. + *

    + * @see yfiles.tree.BalloonLayout#interleavedMode + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static INTERLEAVED_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for marking the node that will be used as root node of the tree + * @see yfiles.tree.BalloonLayout#rootNodePolicy + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * The layout graph being acted upon. + * @protected + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + /** + * Gets or sets the {@link yfiles.collections.IComparer.} instance that determines the order of the outgoing edges for each node of the tree. + *

    + * If no {@link yfiles.collections.IComparer.} is specified (i.e. the {@link yfiles.collections.IComparer.} is null), the outgoing edges will be sorted according to the current + * {@link yfiles.tree.BalloonLayout#childOrderingPolicy child ordering policy}. + *

    + * @see yfiles.tree.BalloonLayout#childOrderingPolicy + * @see yfiles.tree.BalloonLayout#fromSketchMode + * @type {yfiles.collections.IComparer.} + */ + comparer:yfiles.collections.IComparer; + /** + * Gets or sets the child ordering policy for sorting the child nodes around their parents. + *

    + * The sorting policy can affect the compactness of drawings. Advantageous orderings allow adjacent subtrees to be close + * together and can thus make the whole layout more compact. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an unknown ordering policy is given + * @see yfiles.tree.BalloonLayout#fromSketchMode + * @see yfiles.tree.BalloonLayout#comparer + * @type {yfiles.tree.ChildOrderingPolicy} + */ + childOrderingPolicy:yfiles.tree.ChildOrderingPolicy; + /** + * Gets or sets the minimum distance to be kept between the nodes in the tree. + *

    + * The distance needs to be a non-negative integer value. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given minimum distance is negative + * @see yfiles.tree.BalloonLayout#allowOverlaps + * @type {number} + */ + minimumNodeDistance:number; + /** + * Gets or sets whether or not to consider the given coordinates of the input diagram when arranging the tree. + *

    + * Enabling this feature, the original circular order of child nodes around their parent nodes will be maintained according + * to the initial coordinates when determining the order of the child nodes. + *

    + * @type {boolean} + */ + fromSketchMode:boolean; + /** + * Gets or sets the root node selection policy of this layout algorithm. + *

    + * The policy determines which node is chosen as (virtual) tree root during the layout process. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an unknown root node policy is given + * @type {yfiles.tree.RootNodePolicy} + */ + rootNodePolicy:yfiles.tree.RootNodePolicy; + /** + * Gets or sets the preferred radial amount (wedge) in degrees that child nodes may in total occupy around their parent + * node. + *

    + * The wedge angle controls the degree to which the child nodes may radiate from the center of layout. A value close to 360 + * means that the child nodes may radiate in (almost) any direction from their parent node, edge lengths can in consequence + * stay rather small. On the other hand, a small value means that children are restricted to a small angle; thus, edge + * lengths (and drawings) may become large. + *

    + *

    + * The minimum allowed wedge angle is 1 and the maximum allowed value is 359. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given angle is smaller than 1 or larger than 359 + * @see yfiles.tree.BalloonLayout#preferredRootWedge + * @type {number} + */ + preferredChildWedge:number; + /** + * Gets or sets the preferred radial amount (wedge) in degrees that child nodes may in total occupy around the global + * root. + *

    + * This property allows to separately control the wedge angle for the designated root node of the tree, while {@link yfiles.tree.BalloonLayout#preferredChildWedge} controls the + * angles of all child nodes. The root node will be determined depending on the {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy}. + *

    + *

    + * The minimum allowed root wedge angle is 1 and the maximum allowed value is 360. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given angle is smaller than 1 or larger than 360 + * @see yfiles.tree.BalloonLayout#preferredChildWedge + * @type {number} + */ + preferredRootWedge:number; + /** + * Gets or sets whether or not (partially) overlapping nodes are allowed. + *

    + * If overlaps are allowed, the resulting layouts can become significantly more compact. Overlaps will mostly occur at the + * borders of nodes. Nodes will not be totally covered by other nodes. + *

    + * @type {boolean} + */ + allowOverlaps:boolean; + /** + * Gets or sets the factor defining how compact layout results will potentially be, where a smaller factor produces + * potentially more compact layouts. + *

    + * The algorithm tries to optimize the child node arrangement around each tree node such that each subtree is as close to + * its root as possible, while still fitting into the {@link yfiles.tree.BalloonLayout#preferredChildWedge preferred wedge angle} and not overlapping with adjacent subtrees. + *

    + *

    + * High compactness factor values induce the optimization procedure to be less strict and accept less optimal results, + * while low factor values mean that the optimization will only stop when being nearly optimal. Thus, lower values lead to + * a potentially higher runtime. + *

    + *

    + * The minimum factor value is 0.05 and the maximum is 1.0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the factor is smaller than 0.05 or greater than 1.0 + * @type {number} + */ + compactnessFactor:number; + /** + * Gets or sets the minimum length that this layout algorithm assigns to edges of the graph. + *

    + * A lower minimum edge length allows generally more compact layouts. It has the highest effect if most nodes of the graph + * have a low degree, as the minimum can potentially be met for such graphs. + *

    + *

    + * The minimum length must be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given length is negative + * @type {number} + */ + minimumEdgeLength:number; + /** + * Gets or sets whether or not the layout algorithm reserves space for node labels. + *

    + * The size of nodes will temporarily be adjusted such that the label is included. Therefore, result drawings may get + * significantly larger if this feature is enabled. + *

    + * @type {boolean} + */ + considerNodeLabels:boolean; + /** + * Gets or sets the mode for child node arrangement. + *

    + * Child nodes are either placed interleaved or on a single layer around their parent node. Interleaved placement means + * that child nodes are placed around their common parent in two different layers in an alternating fashion. For example, + * the first child is on the inner layer, the second child on the outer layer, the third one again on the inner layer, + * etc. + *

    + *

    + * Independent of this mode, the alignment of child nodes on the same layer is still defined by the {@link yfiles.tree.BalloonLayout#childAlignmentPolicy alignment policy}. + * However, {@link yfiles.tree.ChildAlignmentPolicy#SMART} is only supported for non-interleaved arrangement. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode for interleaved arrangement is given + * @see yfiles.tree.BalloonLayout#childAlignmentPolicy + * @type {yfiles.tree.InterleavedMode} + */ + interleavedMode:yfiles.tree.InterleavedMode; + /** + * Gets or sets the child alignment policy for this layout algorithm. + *

    + * This policy influences the distance of child nodes to their parent nodes and the alignment of children with the same + * parent. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an unknown policy is given + * @type {yfiles.tree.ChildAlignmentPolicy} + */ + childAlignmentPolicy:yfiles.tree.ChildAlignmentPolicy; + /** + * Gets or sets whether or not the layout algorithm automatically places node labels. + *

    + * If enabled, this layout algorithm will calculate the positions for the node labels assuring that no overlaps occur. + *

    + *

    + * Different labeling strategies may be selected using {@link yfiles.tree.BalloonLayout#nodeLabelingPolicy}. + *

    + * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy + * @type {boolean} + */ + integratedNodeLabeling:boolean; + /** + * Gets or sets whether or not the layout algorithm automatically places edge labels. + *

    + * If enabled, this layout algorithm will calculate the positions for the edge labels assuring that no overlaps occur. + *

    + * @type {boolean} + */ + integratedEdgeLabeling:boolean; + /** + * Gets or sets the policy defining how node labels are placed by the integrated node labeling mechanism (for example, the + * desired label orientation). + * @throws {Stubs.Exceptions.ArgumentError} if an unknown labeling policy is given + * @see yfiles.tree.BalloonLayout#integratedNodeLabeling + * @type {yfiles.tree.NodeLabelingPolicy} + */ + nodeLabelingPolicy:yfiles.tree.NodeLabelingPolicy; + /** + * Gets or sets the distance between node labels belonging to the same node. + *

    + * It also defines the distance between labels and the node they belong to in case of label placement outside of the node + * (e.g. for {@link yfiles.tree.NodeLabelingPolicy#RAY_LIKE ray-like label placement}). + *

    + *

    + * The spacing must have a non-negative value. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given spacing value is negative + * @see yfiles.tree.BalloonLayout#integratedNodeLabeling + * @type {number} + */ + nodeLabelSpacing:number; + /** + * Gets or sets the distance between edge labels belonging to the same edge as well as the distance of the edge labels to + * the target node of the edge. + *

    + * The spacing must have a non-negative value. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given label spacing value is negative + * @see yfiles.tree.BalloonLayout#integratedEdgeLabeling + * @type {number} + */ + edgeLabelSpacing:number; + /** + * Gets or sets whether or not chains are drawn straight or not. + *

    + * A chain is defined as a tree node with exactly one child node. If this feature is enabled, then the incoming edge and + * outgoing edge of the chain will have the same orientation, i.e., the whole chain looks straight. + *

    + *

    + * Straightening all chains can lead to smoother, more symmetric results. + *

    + * @type {boolean} + */ + chainStraighteningMode:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. + * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled + * @see yfiles.layout.MultiStageLayout#componentLayout + * @see yfiles.layout.ComponentLayout + * @type {boolean} + */ + componentLayoutEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for hiding group nodes is activated. + * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled + * @see yfiles.layout.MultiStageLayout#hideGroupsStage + * @see yfiles.layout.HideGroupsStage + * @type {boolean} + */ + hideGroupsStageEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} that modifies the orientation of the layout is activated. + * @see yfiles.layout.MultiStageLayout#orientationLayoutEnabled + * @see yfiles.layout.MultiStageLayout#orientationLayout + * @see yfiles.layout.MultiStageLayout#layoutOrientation + * @see yfiles.layout.OrientationLayout + * @type {boolean} + */ + orientationLayoutEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter + * @see yfiles.router.ParallelEdgeRouter + * @type {boolean} + */ + parallelEdgeRouterEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. + * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled + * @see yfiles.layout.MultiStageLayout#selfLoopRouter + * @see yfiles.layout.SelfLoopRouter + * @type {boolean} + */ + selfLoopRouterEnabled:boolean; + static $class:yfiles.lang.Class; + } + export enum FillStyle{ + /** + * Style specifier which defines that rows/columns are aligned with their leading side. + * @see yfiles.tree.AspectRatioNodePlacer#fillStyle + */ + LEADING, + /** + * Style specifier which defines that rows/columns are aligned with their center. + * @see yfiles.tree.AspectRatioNodePlacer#fillStyle + */ + CENTERED, + /** + * Style specifier which defines that rows/columns are justified to have the same width/height. + * @see yfiles.tree.AspectRatioNodePlacer#fillStyle + */ + JUSTIFY, + /** + * Style specifier which defines that rows/columns are aligned with their trailing side. + * @see yfiles.tree.AspectRatioNodePlacer#fillStyle + */ + TRAILING + } + export enum RootPlacement{ + /** + * A root placement specifier for placing the root centered above its subtree, depending on the actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + */ + TOP, + /** + * A root placement specifier for placing the root in the upper left corner of the subtree bounds with respect to the + * actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. + *

    + * Whether the root is placed entirely beside the subtree with no horizontal overlaps or entirely above the subtree without + * vertical overlaps will be determined by the layout of the subtree. The layout algorithm tries to minimize the bounds of + * the subtree. + *

    + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + * @see yfiles.tree.RootPlacement#CORNER_TOP + * @see yfiles.tree.RootPlacement#CORNER_SIDE + */ + CORNER, + /** + * A root placement specifier for placing the root in the upper left corner of the subtree bounds with respect to the + * actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. + *

    + * The root is placed entirely beside the subtree with no horizontal overlaps. This might by important if the root's height + * is very large while its width is small. + *

    + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + */ + CORNER_SIDE, + /** + * A root placement specifier for placing the root of a subtree in the upper left corner of the subtree bounds with respect + * to the actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. + *

    + * The root is placed entirely above the subtree with no vertical overlaps. This might by important if the root's width is + * very large while its height is small. + *

    + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + */ + CORNER_TOP + } + export enum SubtreeArrangement{ + /** + * A direction specifier for placing the child nodes next to each other in direction of the actual + * {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}, with the edges connecting in the direction of flow. + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY + */ + HORIZONTAL, + /** + * A direction specifier for placing the child nodes above each other in direction of the actual + * {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}, with the edges connecting orthogonally to the direction of flow. + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY + */ + VERTICAL + } + export enum InterleavedMode{ + /** + * A child placement mode where all child nodes are placed around their parent with equal distances. + * @see yfiles.tree.BalloonLayout#interleavedMode + */ + OFF, + /** + * A child placement mode where nodes are placed in an interleaved fashion, that is, with two different, alternating + * distances to the parent node. + * @see yfiles.tree.BalloonLayout#interleavedMode + */ + ALL_NODES, + /** + * A child placement mode where child nodes of selected nodes are placed in an interleaved fashion, that is, with two + * different, alternating distances to the parent node. + *

    + * All other nodes are placed without interleaving. The node selection can be specified by registering an appropriate {@link yfiles.algorithms.IDataProvider} + * for key {@link yfiles.tree.BalloonLayout#INTERLEAVED_NODES_DP_KEY}. + *

    + * @see yfiles.tree.BalloonLayout#interleavedMode + */ + MARKED_NODES + } + export enum NodeLabelingPolicy{ + /** + * Node labeling policy for ray-like label placement at nodes with zero or one child node. + *

    + * Labels belonging to leaf nodes and nodes with exactly one successor (thus forming a sort of chain) will not be oriented + * horizontal but ray-like; they get the same orientation as their nodes' incoming edge. The labels of the other nodes will + * be oriented horizontally and placed at the center of the corresponding node. + *

    + * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy + */ + RAY_LIKE, + /** + * Node labeling policy for ray-like label placement at leaf nodes. + *

    + * Labels corresponding to leaf nodes get the same orientation as their nodes' incoming edge and are placed outside the + * node (without overlaps). The labels of the other nodes will be oriented horizontally and placed at the center of the + * corresponding node. + *

    + * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy + */ + RAY_LIKE_LEAVES, + /** + * Node labeling policy for horizontal label placement at all nodes. + *

    + * The node labels are placed at the center of the corresponding node. + *

    + * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy + */ + HORIZONTAL + } + export enum ChildAlignmentPolicy{ + /** + * Alignment policy to align child nodes rooted at the same parent such that the border of their convex hull has the same + * distance to the parent node's center. + * @see yfiles.tree.BalloonLayout#childAlignmentPolicy + */ + PLAIN, + /** + * Alignment policy to align child nodes rooted at the same parent such that each child has the same center-to-center + * distance to the parent node. + *

    + * All nodes will be placed on a common radius around their parent, respective to their center coordinates. + *

    + * @see yfiles.tree.BalloonLayout#childAlignmentPolicy + */ + SAME_CENTER, + /** + * Alignment policy for aligning child nodes such that the distances to their parent are kept short and drawings can + * potentially become more compact. + *

    + * This policy realizes the exact same child alignment as {@link yfiles.tree.ChildAlignmentPolicy#PLAIN} if there are no edge + * labels associated with edges going to child nodes or if {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling integrated edge labeling} is disabled. + *

    + *

    + * If edge labels need to be considered, edge labels will be added to the convex hull of the child node to which the edge + * connects. This means that child nodes connected with a labeled edge will be aligned at the border where the edge label + * begins. In consequence, edge labels will be aligned with neighboring edge labels as well as neighboring child nodes if a + * child node has no edge label at its incoming edge. + *

    + *

    + * This alignment strategy is especially effective if large edge labels need to be considered while drawings should still + * be compact and distances from parent to child nodes short. + *

    + * @see yfiles.tree.BalloonLayout#childAlignmentPolicy + */ + COMPACT, + /** + * Alignment policy to align child nodes rooted at the same parent using a mixture of the other policies and aiming to + * achieve symmetry and compactness at the same time. + *

    + * Similar to + * {@link yfiles.tree.ChildAlignmentPolicy#SAME_CENTER}, this policy aims to achieve alignments featuring equal distances between + * parent and child node centers. However, a much larger distance for all child nodes caused by single large subtrees is + * avoided by this policy. In such cases, the smaller subtrees may be placed on a common radius and the large subtrees are + * placed with different distances. + *

    + * @see yfiles.tree.BalloonLayout#childAlignmentPolicy + */ + SMART + } + export enum ChildOrderingPolicy{ + /** + * Child ordering policy which orders child nodes depending on their subtree size such that large subtrees are placed next + * to small ones in order to save space. + *

    + * The actual area of a subtree is used as the subtree size. The smallest subtree is placed next to the largest subtree, + * followed by the second smallest subtree and so on. This way, drawings can become more compact, because the adjacent + * placement of large subtrees is avoided (which would require edges to become longer for subtrees to fit next to each + * other). + *

    + * @see yfiles.tree.BalloonLayout#childOrderingPolicy + */ + COMPACT, + /** + * Child ordering policy which sorts the child nodes according to their wedge angles. + *

    + * The node with the greatest angle gets median position in the sorting order. The smaller the wedges, the farther away a + * node will be placed from the median position. Using this policy, the produced results are often more symmetric. + *

    + * @see yfiles.tree.BalloonLayout#childOrderingPolicy + */ + SYMMETRIC + } + export enum RootNodePolicy{ + /** + * Root node policy for choosing a node with indegree 0 as root node of the tree. + *

    + * The selection of the root node will happen according to {@link yfiles.algorithms.Trees#getRoot}. + *

    + * @see yfiles.tree.BalloonLayout#rootNodePolicy + * @see yfiles.algorithms.Trees#getRoot + */ + DIRECTED_ROOT, + /** + * Root node policy for choosing the center node as root node of the tree. + *

    + * A {@link yfiles.algorithms.Trees#getCenterRoot center node} induces a minimum depth tree when being used as the root of that tree. + *

    + * @see yfiles.tree.BalloonLayout#rootNodePolicy + * @see yfiles.algorithms.Trees#getCenterRoot + */ + CENTER_ROOT, + /** + * Root node policy for choosing a weighted center node as root node of the tree. + *

    + * A {@link yfiles.algorithms.Trees#getWeightedCenterNode weighted center node} is a node which is part of the greatest number of all undirected paths in a graph. + *

    + * @see yfiles.tree.BalloonLayout#rootNodePolicy + */ + WEIGHTED_CENTER_ROOT, + /** + * Root node policy for choosing a custom node as the root node of the tree. + *

    + * The root node is specified using a {@link yfiles.algorithms.IDataProvider} registered with the graph with key + * {@link yfiles.tree.BalloonLayout#SELECTED_ROOT_DP_KEY}. + *

    + * @see yfiles.tree.BalloonLayout#rootNodePolicy + */ + SELECTED_ROOT + } + export enum ChildPlacement{ + /** + * Placement specifier which defines that subtrees are placed one below the other and left of the root node. + * @see yfiles.tree.DefaultNodePlacer#childPlacement + */ + VERTICAL_TO_LEFT, + /** + * Placement specifier which defines that subtrees are placed one below the other and right of the root node. + * @see yfiles.tree.DefaultNodePlacer#childPlacement + */ + VERTICAL_TO_RIGHT, + /** + * Placement specifier which defines that subtrees are placed horizontally next to each other and above the root node. + * @see yfiles.tree.DefaultNodePlacer#childPlacement + */ + HORIZONTAL_UPWARD, + /** + * Placement specifier which defines that subtrees are placed horizontally next to each other and below the root node. + * @see yfiles.tree.DefaultNodePlacer#childPlacement + */ + HORIZONTAL_DOWNWARD + } + export enum RootAlignment{ + /** + * Alignment specifier which defines that the root node is placed ahead of all its child subtrees. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed ahead (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) of the combined bounding box of all subtrees without labels. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + LEADING_OFFSET, + /** + * Alignment specifier which defines that the root node is placed aligned with its first subtree. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed aligned with the bounding box of its first (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) subtree. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + LEADING, + /** + * Alignment specifier which defines that the root node is placed aligned with the center of its subtrees. + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + CENTER, + /** + * Alignment specifier which defines that the root node is placed at the median of the connection points to its subtrees. + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + MEDIAN, + /** + * Alignment specifier which defines that the root node is placed aligned with its last subtree. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed aligned with the bounding box of its last (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) subtree. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + TRAILING, + /** + * Alignment specifier which defines that the root is placed after all its subtree. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed after (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) of the combined bounding box of all subtrees without labels. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + TRAILING_OFFSET, + /** + * Alignment specifier which defines that the root is placed after all its subtrees, centered on the bus. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed after (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) of the combined bounding box of all subtrees without labels. The + * bus leaves directly from the root node. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + TRAILING_ON_BUS, + /** + * Alignment specifier which defines that the root is placed ahead of all its subtrees, centered on the bus. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed ahead (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) of the combined bounding box of all subtrees without labels. The + * bus leaves directly from the root node. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + LEADING_ON_BUS + } + export enum RoutingStyle{ + /** + * Routing style specifier which defines that edge paths are routed orthogonally with the bends located in the channel + * between the root node and the child nodes. + * @see yfiles.tree.DefaultNodePlacer#routingStyle + */ + FORK, + /** + * Routing style specifier which defines that edge paths are routed orthogonally with just one bend. + *

    + * Edges will leave the root node at its sides and bend exactly above the according child node. If the child node is placed + * directly below the root node, the edge will bend inside of the root node and leave it at the bottom. + *

    + * @see yfiles.tree.DefaultNodePlacer#routingStyle + */ + FORK_AT_ROOT, + /** + * Routing style specifier which defines that edge paths are routed with a straight segment to the center of the child + * nodes. + * @see yfiles.tree.DefaultNodePlacer#routingStyle + */ + STRAIGHT, + /** + * Routing style constant which defines that edge paths are routed with a straight segment to the connector of the {@link yfiles.tree.SubtreeShape} + * of the child nodes. + * @see yfiles.tree.DefaultNodePlacer#routingStyle + */ + POLYLINE + } + export enum PortAssignmentMode{ + /** + * A port assignment specifier that defines that + * {@link yfiles.layout.PortConstraint}s are considered. Ports are placed using the following rules: + *
      + *
    • edges without a {@link yfiles.layout.PortConstraint} are anchored at the center of the node
    • + *
    • edges with a weak {@link yfiles.layout.PortConstraint} are anchored at the center of their specified side
    • + *
    • edges with a strong {@link yfiles.layout.PortConstraint} are anchored at their initial coordinates
    • + *
    + *

    + * If edges with + * {@link yfiles.layout.PortConstraint}s are grouped, all edges in the same group will use the port coordinates of the first edge + * in the group. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + PORT_CONSTRAINT, + /** + * A port assignment specifier which defines that edges are distributed evenly at the northern side of their nodes. + *

    + * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the + * distribution. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + DISTRIBUTED_NORTH, + /** + * A port assignment specifier which defines that edges are distributed evenly at the southern side of their nodes. + *

    + * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the + * distribution. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + DISTRIBUTED_SOUTH, + /** + * A port assignment specifier which defines that edges are distributed evenly at the eastern side of their nodes. + *

    + * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the + * distribution. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + DISTRIBUTED_EAST, + /** + * A port assignment specifier which defines that edges are distributed evenly at the western side of their nodes. + *

    + * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the + * distribution. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + DISTRIBUTED_WEST, + /** + * A port assignment specifier which defines that all ports are reset to the center of their nodes. + */ + NONE + } + export enum ConnectorDirection{ + /** + * A direction constant that describes that the last connector segment points up. The edge from the parent will connect to + * the north of the {@link yfiles.tree.SubtreeShape}. + * @see yfiles.tree.SubtreeShape#connectorDirection + */ + NORTH, + /** + * A direction constant that describes that the last connector segment points to the right. The edge from the parent will + * connect to the east of the {@link yfiles.tree.SubtreeShape}. + * @see yfiles.tree.SubtreeShape#connectorDirection + */ + EAST, + /** + * A direction constant that describes that the last connector segment points down. The edge from the parent will connect + * to the south of the {@link yfiles.tree.SubtreeShape}. + * @see yfiles.tree.SubtreeShape#connectorDirection + */ + SOUTH, + /** + * A direction constant that describes that the last connector segment points to the left. The edge from the parent will + * connect to the west of the {@link yfiles.tree.SubtreeShape}. + * @see yfiles.tree.SubtreeShape#connectorDirection + */ + WEST + } + export enum BorderLineSide{ + /** + * Side constant that defines the index of the northern border line. + * @see yfiles.tree.SubtreeShape#getBorderLine + */ + NORTH, + /** + * Side constant that defines the index of the eastern border line. + * @see yfiles.tree.SubtreeShape#getBorderLine + */ + EAST, + /** + * Side constant that defines the index of the southern border line. + * @see yfiles.tree.SubtreeShape#getBorderLine + */ + SOUTH, + /** + * Side constant that defines the index of the western border line. + * @see yfiles.tree.SubtreeShape#getBorderLine + */ + WEST + } + export enum LayeredRoutingStyle{ + /** + * Routing style specifier which defines that edges consist of one straight segment. + * @see yfiles.tree.LayeredNodePlacer#routingStyle + */ + STRAIGHT, + /** + * Routing style specifier which defines that edges are routed in an orthogonal, bus-like fashion. + * @see yfiles.tree.LayeredNodePlacer#routingStyle + */ + ORTHOGONAL + } + export enum MultiParentRoutingStyle{ + /** + * Routing style for routing non-shared edge segments in a polyline fashion. + *

    + * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. + * This style only applies to the part of the edges where they split to connect to different multi-parents. + *

    + * @see yfiles.tree.MultiParentDescriptor#edgeStyle + */ + POLYLINE, + /** + * Routing style for routing non-shared edge segments in an orthogonal fashion. + *

    + * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. + * This style only applies to the part of the edges where they split to connect to different multi-parents. + *

    + * @see yfiles.tree.MultiParentDescriptor#edgeStyle + */ + ORTHOGONAL, + /** + * Routing style for routing non-shared edge segments straight. This style will route the part of the edges that doesn't + * share the same path directly from the center of the multi-parent to the common point of the edges in the multi-parent + * structure. + *

    + * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. + * This style only applies to the part of the edges where they split to connect to different multi-parents. + *

    + * @see yfiles.tree.MultiParentDescriptor#edgeStyle + */ + STRAIGHT + } + export enum ParentConnectorDirection{ + /** + * Direction specifier which indicates that no connector should be calculated. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + NONE, + /** + * Direction specifier which indicates that any direction can be used for the connector to the parent node. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + ANY, + /** + * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended + * by a segment that goes north. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + NORTH, + /** + * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended + * by a segment that goes east. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + EAST, + /** + * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended + * by a segment that goes south. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + SOUTH, + /** + * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended + * by a segment that goes west. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + WEST + } + export enum PortStyle{ + /** + * A constant defining that ports are placed at the center of the nodes. + *

    + * This constant uses (0,0) as port offset. + *

    + * @see yfiles.tree.ClassicTreeLayout#portStyle + */ + NODE_CENTER, + /** + * A constant defining that ports are placed at the center of the border of the nodes. + * @see yfiles.tree.ClassicTreeLayout#portStyle + */ + BORDER_CENTER, + /** + * A constant defining that ports are evenly distributed along the border of the nodes. + * @see yfiles.tree.ClassicTreeLayout#portStyle + */ + BORDER_DISTRIBUTED, + /** + * A constant defining that ports are assigned based on given {@link yfiles.layout.PortConstraint port constraints}. + * @see yfiles.tree.ClassicTreeLayout#portStyle + */ + PORT_CONSTRAINTS_AWARE + } + export enum EdgeRoutingStyle{ + /** + * A constant for routing the edges as straight-line segments. + * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle + */ + PLAIN, + /** + * A constant for routing the edges orthogonally in a bus-like fashion. + * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle + */ + ORTHOGONAL + } + export enum LeafPlacement{ + /** + * A policy for placing the leaf nodes in a stack-like fashion with balanced stack heights. + *

    + * In this context, a stack-like fashion means that leaf nodes that connect to the same parent node are placed one upon the + * other, resulting in horizontally compact layouts. + *

    + *

    + * This policy tries to balance stack heights, i.e., for each subtree that consists only of leaf nodes, {@link yfiles.tree.LeafPlacement#LEAVES_STACKED_RIGHT} + * or {@link yfiles.tree.LeafPlacement#LEAVES_STACKED_LEFT_AND_RIGHT} will be used depending on the number of leaves in the + * subtree. + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + LEAVES_STACKED, + /** + * A policy for placing the leaf nodes in a stack-like fashion using a single stack left. + *

    + * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the + * other, resulting in horizontally compact layouts. + *

    + *

    + * This policy uses a single stack that lies to the left relative to the center of the parent node. + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + LEAVES_STACKED_LEFT, + /** + * A policy for placing the leaf nodes in a stack-like fashion using a single stack right. + *

    + * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the + * other, resulting in horizontally compact layouts. + *

    + *

    + * This policy uses a single stack that lies to the right relative to the center of the parent node. + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + LEAVES_STACKED_RIGHT, + /** + * A policy for placing the leaf nodes in a stack-like fashion using two stacks. + *

    + * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the + * other, resulting in horizontally compact layouts. + *

    + *

    + * This policy distributes leaf nodes among two stacks, one to the left and one to the right relative to the center of the + * parent node. + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + LEAVES_STACKED_LEFT_AND_RIGHT, + /** + * A policy for placing the leaf nodes in a Dendrogram-like fashion. + *

    + * According to this policy, all leaf nodes are placed in one layer (i.e. all leaves are placed on one horizontal line in a + * top-to-bottom or in a bottom-to-top layout). + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + ALL_LEAVES_ON_SAME_LAYER, + /** + * A policy for placing the leaf nodes with the same parent in the same layer. + *

    + * For example, siblings are being placed on a horizontal line in a top-to-bottom or in a bottom-to-top layout. + *

    + *

    + * This policy produces vertically compact layouts. + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + SIBLINGS_ON_SAME_LAYER + } + /** + * This {@link yfiles.tree.INodePlacer} places the subtrees such that the overall aspect ratio of the arranged subtree will be + * close to a preferred aspect ratio. + *

    + * Layout Style The aspect ratio describes the relation between width and height of the subtree. To achieve the desired aspect ratio, + * this {@link yfiles.tree.INodePlacer} divides the child {@link yfiles.tree.SubtreeShape}s into as much rows as needed. The edges are + * either routed along the rows or along the columns. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[280,70],[70,140],[140,140],[210,140],[280,140],[70,210],[140,210],[210,210],[280,210],[70,280],[140,280],[210,280],[280,280]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[260,15,260,85]],[0,5,[50,15,50,155]],[0,6,[120,15,120,155]],[0,7,[190,15,190,155]],[0,8,[260,15,260,155]],[0,9,[50,15,50,225]],[0,10,[120,15,120,225]],[0,11,[190,15,190,225]],[0,12,[260,15,260,225]],[0,13,[50,15,50,295]],[0,14,[120,15,120,295]],[0,15,[190,15,190,295]],[0,16,[260,15,260,295]]],"vp":[0.0,0.0,310.0,310.0]}} + *

    + *

    + * Aspect ratio 1 + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[70,140],[140,140],[210,140],[70,210],[140,210],[210,210],[70,280],[140,280],[210,280],[70,350],[140,350],[210,350],[70,420]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[50,15,50,155]],[0,5,[120,15,120,155]],[0,6,[190,15,190,155]],[0,7,[50,15,50,225]],[0,8,[120,15,120,225]],[0,9,[190,15,190,225]],[0,10,[50,15,50,295]],[0,11,[120,15,120,295]],[0,12,[190,15,190,295]],[0,13,[50,15,50,365]],[0,14,[120,15,120,365]],[0,15,[190,15,190,365]],[0,16,[50,15,50,435]]],"vp":[0.0,0.0,240.0,450.0]}} + *

    + *

    + * Aspect ratio 0.5 + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[280,70],[350,70],[420,70],[490,70],[560,70],[70,140],[140,140],[210,140],[280,140],[350,140],[420,140],[490,140],[560,140]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[260,15,260,85]],[0,5,[330,15,330,85]],[0,6,[400,15,400,85]],[0,7,[470,15,470,85]],[0,8,[540,15,540,85]],[0,9,[50,15,50,155]],[0,10,[120,15,120,155]],[0,11,[190,15,190,155]],[0,12,[260,15,260,155]],[0,13,[330,15,330,155]],[0,14,[400,15,400,155]],[0,15,[470,15,470,155]],[0,16,[540,15,540,155]]],"vp":[0.0,0.0,590.0,170.0]}} + *

    + *

    + * Aspect ratio 2 + *

    + * @class + * @extends {yfiles.tree.NodePlacerBase} + * @implements {yfiles.tree.IFromSketchNodePlacer} + */ + export interface AspectRatioNodePlacer extends yfiles.tree.NodePlacerBase,yfiles.tree.IFromSketchNodePlacer{} + export class AspectRatioNodePlacer { + /** + * Creates a new instance of {@link yfiles.tree.AspectRatioNodePlacer} with default settings. + */ + constructor(); + /** + * Creates an {@link yfiles.collections.IComparer. edge comparator} which takes the initial coordinates of the nodes into account. + *

    + * This {@link yfiles.collections.IComparer.} defines the order of the outgoing edges of a node before the actual placement of the node's subtree is calculated. + * It also considers whether or not the rows are placed {@link yfiles.tree.AspectRatioNodePlacer#horizontal horiontally}. + *

    + * @returns the {@link } for the edges + */ + createFromSketchComparer():yfiles.collections.IComparer; + /** + * Gets or sets whether child nodes are distributed in horizontal rows or vertical columns. + * @type {boolean} + */ + horizontal:boolean; + /** + * Gets or sets the vertical distance between the {@link yfiles.tree.SubtreeShape}s. + *

    + * The nodes will be placed below each other, keeping this distance. + *

    + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + verticalDistance:number; + /** + * Gets or sets the horizontal distance between the {@link yfiles.tree.SubtreeShape}s. + *

    + * The nodes will be placed next to each other, keeping this distance. + *

    + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + horizontalDistance:number; + /** + * Gets or sets the preferred aspect ratio (width/height) for the subtrees. + *

    + * This ratio determines among how many rows/columns the nodes will be distributed. + *

    + *

    + * The aspect ratio needs to be positive. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified aspect ratio is 0 or negative + * @type {number} + */ + aspectRatio:number; + /** + * Gets or sets how rows/columns are aligned with each other. + * @throws {Stubs.Exceptions.ArgumentError} if an unknown fill style is specified + * @type {yfiles.tree.FillStyle} + */ + fillStyle:yfiles.tree.FillStyle; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.AspectRatioTreeLayout} arranges tree graphs in a compact fashion. + *

    + * Layout Style This layout algorithm tries to generate compact tree layouts with a certain preferred aspect ratio. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[40,740],[360,740],[480,810],[400,810],[240,810],[80,810],[160,810],[560,810],[200,880],[200,940],[200,1000],[200,1060],[200,1120],[120,880],[120,940],[120,1000],[120,1060],[120,1120],[280,880],[280,940],[320,880],[320,940],[600,880],[600,940],[600,1000],[520,880],[520,940],[520,1000],[440,880],[440,940],[440,1000],[440,1060],[440,1120],[40,70],[390,70],[80,450],[80,640],[200,140],[200,450],[80,140],[150,680],[190,680],[240,210],[240,270],[240,330],[120,520],[120,580],[160,520],[160,580],[270,490],[270,550],[310,490],[310,550],[350,490],[350,550],[120,210],[120,270],[120,330],[120,390],[160,210],[160,270],[160,330],[430,610],[580,510],[430,510],[430,140],[510,140],[590,140],[470,610],[650,550],[500,550],[540,550],[630,210],[630,270],[630,330],[470,210],[470,270],[470,330],[470,390],[470,450],[550,210],[550,270],[550,330],[550,390],[550,450]],"e":[[0,1,-10,0,0,0,[5,50,5,720,55,720]],[0,2,-10,0,0,0,[5,50,5,720,375,720]],[2,3,-10,0,0,0,[365,790,495,790]],[2,4,-10,0,0,0,[365,790,415,790]],[1,5,-10,0,0,0,[45,790,255,790]],[1,6,-10,0,0,0,[45,790,95,790]],[1,7,-10,0,0,0,[45,790,175,790]],[2,8,-10,0,0,0,[365,790,575,790]],[7,9,-10,0,0,0,[165,860,215,860]],[7,10,-10,0,0,0,[165,860,165,920,215,920]],[7,11,-10,0,0,0,[165,860,165,980,215,980]],[7,12,-10,0,0,0,[165,860,165,1040,215,1040]],[7,13,-10,0,0,0,[165,860,165,1100,215,1100]],[6,14,-10,0,0,0,[85,860,135,860]],[6,15,-10,0,0,0,[85,860,85,920,135,920]],[6,16,-10,0,0,0,[85,860,85,980,135,980]],[6,17,-10,0,0,0,[85,860,85,1040,135,1040]],[6,18,-10,0,0,0,[85,860,85,1100,135,1100]],[5,19,-10,0,0,0,[245,860,295,860]],[5,20,-10,0,0,0,[245,860,245,920,295,920]],[5,21,-10,0,0,0,[245,860,335,860]],[5,22,-10,0,0,0,[245,860,245,920,335,920]],[8,23,-10,0,0,0,[565,860,615,860]],[8,24,-10,0,0,0,[565,860,565,920,615,920]],[8,25,-10,0,0,0,[565,860,565,980,615,980]],[3,26,-10,0,0,0,[485,860,535,860]],[3,27,-10,0,0,0,[485,860,485,920,535,920]],[3,28,-10,0,0,0,[485,860,485,980,535,980]],[4,29,-10,0,0,0,[405,860,455,860]],[4,30,-10,0,0,0,[405,860,405,920,455,920]],[4,31,-10,0,0,0,[405,860,405,980,455,980]],[4,32,-10,0,0,0,[405,860,405,1040,455,1040]],[4,33,-10,0,0,0,[405,860,405,1100,455,1100]],[0,34,-10,0,0,0,[5,50,55,50]],[0,35,-10,0,0,0,[5,50,405,50]],[34,36,-10,0,0,0,[45,120,45,430,95,430]],[34,37,-10,0,0,0,[45,120,45,620,95,620]],[34,38,-10,0,0,0,[45,120,215,120]],[34,39,-10,0,0,0,[45,120,45,430,215,430]],[34,40,-10,0,0,0,[45,120,95,120]],[37,41,0,-10,0,0,[130,645,130,660,165,660]],[37,42,0,-10,0,0,[130,645,130,660,205,660]],[38,43,-10,0,0,0,[205,190,255,190]],[38,44,-10,0,0,0,[205,190,205,250,255,250]],[38,45,-10,0,0,0,[205,190,205,310,255,310]],[36,46,-10,0,0,0,[85,500,135,500]],[36,47,-10,0,0,0,[85,500,85,560,135,560]],[36,48,-10,0,0,0,[85,500,175,500]],[36,49,-10,0,0,0,[85,500,85,560,175,560]],[39,50,0,-10,0,0,[250,455,250,470,285,470]],[39,51,0,-10,0,0,[250,455,250,530,285,530]],[39,52,0,-10,0,0,[250,455,250,470,325,470]],[39,53,0,-10,0,0,[250,455,250,530,325,530]],[39,54,0,-10,0,0,[250,455,250,470,365,470]],[39,55,0,-10,0,0,[250,455,250,530,365,530]],[40,56,-10,0,0,0,[85,190,135,190]],[40,57,-10,0,0,0,[85,190,85,250,135,250]],[40,58,-10,0,0,0,[85,190,85,310,135,310]],[40,59,-10,0,0,0,[85,190,85,370,135,370]],[40,60,-10,0,0,0,[85,190,175,190]],[40,61,-10,0,0,0,[85,190,85,250,175,250]],[40,62,-10,0,0,0,[85,190,85,310,175,310]],[35,63,-10,0,0,0,[395,120,395,590,445,590]],[35,64,-10,0,0,0,[395,120,395,490,595,490]],[35,65,-10,0,0,0,[395,120,395,490,445,490]],[35,66,-10,0,0,0,[395,120,445,120]],[35,67,-10,0,0,0,[395,120,525,120]],[35,68,-10,0,0,0,[395,120,605,120]],[35,69,-10,0,0,0,[395,120,395,590,485,590]],[64,70,0,-10,0,0,[630,515,630,530,665,530]],[65,71,0,-10,0,0,[480,515,480,530,515,530]],[65,72,0,-10,0,0,[480,515,480,530,555,530]],[68,73,-10,0,0,0,[595,190,645,190]],[68,74,-10,0,0,0,[595,190,595,250,645,250]],[68,75,-10,0,0,0,[595,190,595,310,645,310]],[66,76,-10,0,0,0,[435,190,485,190]],[66,77,-10,0,0,0,[435,190,435,250,485,250]],[66,78,-10,0,0,0,[435,190,435,310,485,310]],[66,79,-10,0,0,0,[435,190,435,370,485,370]],[66,80,-10,0,0,0,[435,190,435,430,485,430]],[67,81,-10,0,0,0,[515,190,565,190]],[67,82,-10,0,0,0,[515,190,515,250,565,250]],[67,83,-10,0,0,0,[515,190,515,310,565,310]],[67,84,-10,0,0,0,[515,190,515,370,565,370]],[67,85,-10,0,0,0,[515,190,515,430,565,430]]],"vp":[0.0,0.0,680.0,1150.0]}} + *

    + *

    + * Example layout with an aspect ratio of 0.5 + *

    + *

    + * Concept + *

    + *

    + * The layout algorithm starts from the root and recursively assigns coordinates to all tree nodes. In this manner, leaf + * nodes will be placed first, while each parent node is placed centered above its child nodes. + *

    + *

    + * Features + *

    + *

    + * The aspect ratio of each subtree can be specified individually. A {@link yfiles.algorithms.IDataProvider} registered with {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY} + * returns the aspect ratio for each local root node. + *

    + *

    + * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with + * key {@link yfiles.tree.AspectRatioTreeLayout#SELECTED_ROOT_DP_KEY}. + *

    + * @class + * @extends {yfiles.layout.MultiStageLayout} + */ + export interface AspectRatioTreeLayout extends yfiles.layout.MultiStageLayout{} + export class AspectRatioTreeLayout { + /** + * Creates a new {@link yfiles.tree.AspectRatioTreeLayout} instance with default settings. + */ + constructor(); + /** + * Adds bends to the given {@link yfiles.layout.IEdgeLayout}. + *

    + * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} for each edge, after the nodes are placed, to + * route the path of the edges. It may be overridden to apply a custom routing style. + *

    + * @param edgeLayout the layout of the edge that is routed + * @param localRoot the local root of the subtree + * @param child the child connected to the local root with the given edge + * @param rootPlacement the placement specifier of the local root + * @param routingPolicy the direction specifier for the routing + * @protected + */ + createBends(edgeLayout:yfiles.layout.IEdgeLayout,localRoot:yfiles.algorithms.Node,child:yfiles.algorithms.Node,rootPlacement:yfiles.tree.RootPlacement,routingPolicy:yfiles.tree.SubtreeArrangement):void; + /** + * Retrieves the aspect ratio for the subtree that is rooted at the given node. + *

    + * If there is an individual aspect ratio for the subtree provided by a {@link yfiles.algorithms.IDataProvider} registered with key + * {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY}, that ratio will be returned. Otherwise, the {@link yfiles.tree.AspectRatioTreeLayout#aspectRatio default aspect ratio} + * will be returned. + *

    + *

    + * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} before a subtree is arranged. It may be + * overridden to use another approach to define the aspect ratio for subtrees. + *

    + * @param localRoot the root node of the subtree + * @returns the aspect ratio of the subtree rooted at the local root node + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY + * @see yfiles.tree.AspectRatioTreeLayout#aspectRatio + * @protected + */ + getAspectRatio(localRoot:yfiles.algorithms.Node):number; + /** + * Retrieves the root placement for the subtree that is rooted at the given node. + *

    + * Either an individual root placement for the subtree (defined via a {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY}), or if there is none, the {@link yfiles.tree.AspectRatioTreeLayout#rootPlacement default root placement} is returned. + *

    + *

    + * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} after a subtree is arranged to align the + * local root node. It may be overridden to use another approach to define the root placement for a subtree. + *

    + * @param localRoot the root of the subtree + * @returns the root placement of the subtree + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + * @see yfiles.tree.AspectRatioTreeLayout#rootPlacement + * @protected + */ + getRootPlacement(localRoot:Object):yfiles.tree.RootPlacement; + /** + * Retrieves the routing for the subtree that is rooted at the given node. + *

    + * Either an individual routing for the subtree (defined via a {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY}), or if there is none, the {@link yfiles.tree.AspectRatioTreeLayout#subtreeArrangement default routing} is returned. + *

    + *

    + * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} to determine the direction of the subtrees. + * It may be overridden to use another approach to define the routing for a subtree. + *

    + * @param localRoot the root of the subtree + * @returns the routing policy for the subtree + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY + * @see yfiles.tree.AspectRatioTreeLayout#subtreeArrangement + * @protected + */ + getSubtreeArrangement(localRoot:Object):yfiles.tree.SubtreeArrangement; + /** + * Retrieves all children of the given local root. + *

    + * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} to arrange the subtrees below the local + * root. + *

    + * @param localRoot the root of a subtree + * @returns all successors of the given node + * @protected + */ + getSuccessors(localRoot:yfiles.algorithms.Node):yfiles.algorithms.INodeCursor; + /** + * Data provider key for specifying a target aspect ratio for each subtree + *

    + * The aspect ratio needs to be greater than 0. + *

    + *
      + *
    • aspect ratio 1: width and height of the layout should be the same
    • + *
    • aspect ratio between 0 and 1: the height of the layout should be greater than its width
    • + *
    • aspect ratio greater than 1: the width of the layout should be greater than its height
    • + *
    + *

    + * If no specific ratio is defined for a subtree, the layout algorithm falls back to the default {@link yfiles.tree.AspectRatioTreeLayout#aspectRatio aspect ratio}. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SUBTREE_ASPECT_RATIO_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for specifying the placement of each subtree root + *

    + * If no root placement is specified for one of the subtree roots, the default {@link yfiles.tree.AspectRatioTreeLayout#rootPlacement root placement} will be used. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static ROOT_PLACEMENT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for specifying the routing direction for each subtree root + *

    + * The children in a subtree are arranged either horizontally or vertically. The edges are routed to the top of the child + * nodes or at the side, respectively. Directions depend on the {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation} and refer to {@link yfiles.layout.LayoutOrientation#TOP_TO_BOTTOM} + * for this description. + *

    + *

    + * If no specific routing policy is specified for a subtree root, the layout algorithm uses the default {@link yfiles.tree.AspectRatioTreeLayout#subtreeArrangement routing direction}. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SUBTREE_ROUTING_POLICY_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for marking the node that will be used as root node of the tree + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * The input graph this algorithm is handling. + * @protected + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + /** + * Gets or sets the horizontal distance between adjacent nodes. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + horizontalDistance:number; + /** + * Gets or sets the vertical distance between adjacent nodes. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + verticalDistance:number; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. + * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled + * @see yfiles.layout.MultiStageLayout#componentLayout + * @see yfiles.layout.ComponentLayout + * @type {boolean} + */ + componentLayoutEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for hiding group nodes is activated. + * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled + * @see yfiles.layout.MultiStageLayout#hideGroupsStage + * @see yfiles.layout.HideGroupsStage + * @type {boolean} + */ + hideGroupsStageEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter + * @see yfiles.router.ParallelEdgeRouter + * @type {boolean} + */ + parallelEdgeRouterEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. + * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled + * @see yfiles.layout.MultiStageLayout#selfLoopRouter + * @see yfiles.layout.SelfLoopRouter + * @type {boolean} + */ + selfLoopRouterEnabled:boolean; + /** + * Gets or sets the {@link yfiles.collections.IComparer.} that will be used for sorting the {@link yfiles.algorithms.Node#sortOutEdges outgoing edges} of each local root in the tree before they are being + * arranged. + * @type {yfiles.collections.IComparer.} + */ + comparer:yfiles.collections.IComparer; + /** + * Gets or sets the default aspect ratio for this {@link yfiles.tree.AspectRatioTreeLayout}. + *

    + * This aspect ratio is used for all subtrees for which there is no specific aspect ratio defined in a {@link yfiles.algorithms.IDataProvider} + * registered with {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY}. + *

    + *

    + * The aspect ratio needs to have a positive value. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified aspect ratio is 0 or negative + * @type {number} + */ + aspectRatio:number; + /** + * Gets or sets the desired placement of the tree's root node. + * @throws {Stubs.Exceptions.ArgumentError} if an unknown placement specifiers is set + * @type {yfiles.tree.RootPlacement} + */ + rootPlacement:yfiles.tree.RootPlacement; + /** + * Gets or sets how the children of a local root are arranged and how the edges between them are routed. + * @throws {Stubs.Exceptions.ArgumentError} if the specified routing policy is unknown + * @type {yfiles.tree.SubtreeArrangement} + */ + subtreeArrangement:yfiles.tree.SubtreeArrangement; + /** + * Gets or sets the preferred distance between any two bends of an edge. + *

    + * Additionally, the preferred bend distance governs the distance between the first and last edges and the corresponding + * ports. + *

    + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + bendDistance:number; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.AssistantNodePlacer} places nodes that are marked as assistants left and right of their parents and all + * other nodes below the assistant nodes. + *

    + * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[75,0],[100,171],[50,171],[0,171],[150,171],[110,50,1],[40,100,1],[40,50,1]],"e":[[0,1,[90,150.5,115,150.5]],[0,2,[90,150.5,65,150.5]],[0,3,[90,150.5,15,150.5]],[0,4,[90,150.5,165,150.5]],[0,5,[90,65]],[0,6,[90,115]],[0,7,[90,65]]],"vp":[0.0,0.0,180.0,201.0]}} + *

    + *

    + * Assistants are marked + *

    + *

    + * Concept This {@link yfiles.tree.INodePlacer} delegates the placement of all assistant nodes to an instance of + * {@link yfiles.tree.LeftRightNodePlacer}. The non-assistant nodes are handled by another {@link yfiles.tree.AssistantNodePlacer#childNodePlacer node placer}. To be able to do this, {@link yfiles.tree.AssistantNodePlacer} + * uses a {@link yfiles.tree.IProcessor} which prepares the graph for node placing. + *

    + *

    + * A {@link yfiles.algorithms.IDataProvider} that is registered using {@link yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY} returns + * true for assistant nodes and false for all other nodes. + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface AssistantNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class AssistantNodePlacer { + /** + * Creates a new {@link yfiles.tree.AssistantNodePlacer} instance that uses the transformation defined by the given matrix. + * @param modificationMatrix the transformation matrix + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new {@link yfiles.tree.AssistantNodePlacer} instance with default settings. + */ + constructor(); + /** + * Creates a {@link yfiles.collections.IComparer.} that compares outgoing edges connecting to assistant nodes and edges connecting to non-assistant nodes + * separately. + * @param assistantComparer the {@link } for edges connecting to assistant nodes + * @param childComparer the {@link } for edges connecting to non-assistant nodes + * @returns a {@link } that compares edges to assistant nodes separately from edges to non-assistant nodes + * @static + */ + static createCompoundComparer(assistantComparer:yfiles.collections.IComparer,childComparer:yfiles.collections.IComparer):yfiles.collections.IComparer; + /** + * Data provider key for marking which nodes are placed as assistants + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static ASSISTANT_NODE_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets the spacing between subtrees for the delegate {@link yfiles.tree.INodePlacer}. + *

    + * The spacing needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given spacing is negative + * @type {number} + */ + spacing:number; + /** + * Gets or sets the {@link yfiles.tree.INodePlacer} instance that places the non-assistant children. + *

    + * These non-assistant child nodes will be placed below the assistant child nodes and are arranged by the given + * {@link yfiles.tree.INodePlacer}. Non-assistant child nodes are the ones that are not marked in the {@link yfiles.algorithms.IDataProvider} + * registered with {@link yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY}. + *

    + * @see yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY + * @type {yfiles.tree.INodePlacer} + */ + childNodePlacer:yfiles.tree.INodePlacer; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.BusNodePlacer} creates a bus to which all child nodes and the local root node are connected. + *

    + * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[40,0],[140,0],[190,0],[50,70],[0,70],[100,70],[150,70],[90,0,1]],"e":[[7,0,[105,50,55,50]],[7,1,[105,50,155,50]],[7,2,[105,50,205,50]],[7,3,[105,50,65,50]],[7,4,[105,50,15,50]],[7,5,[105,50,115,50]],[7,6,[105,50,165,50]]],"vp":[0.0,0.0,220.0,100.0]}} + *

    + *

    + * The root node is marked + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface BusNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class BusNodePlacer { + /** + * Creates a new {@link yfiles.tree.BusNodePlacer} instance that uses the transformation defined by the given matrix. + * @param modificationMatrix the transformation matrix + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new instance of {@link yfiles.tree.BusNodePlacer} with default settings. + */ + constructor(); + static $class:yfiles.lang.Class; + } + /** + * This layout algorithm arranges graphs with a tree structure. + *

    + * Layout Style {@link yfiles.tree.ClassicTreeLayout} is designed to arrange directed and undirected trees that have a unique root node. All + * children are placed below their parent in relation to the main layout direction. The edges of the graph are routed as + * straight-line segments or in an orthogonal bus-like fashion. + *

    + *

    + * Tree layout algorithms are commonly used for visualizing relational data and for producing diagrams of high quality that + * are able to reveal possible hierarchic properties of the graph. More precisely, they find applications in dataflow + * analysis, software engineering, bioinformatics and business administration. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[215.62,70],[365.62,0],[706.25,210],[25,140],[331.25,140],[100,280],[512.5,210],[325,280],[762.5,280],[200,210],[150,350],[400,350],[825,350],[350,350],[25,210],[900,420],[700,420],[100,350],[575,280],[575,350],[600,420],[200,280],[150,420],[25,280],[550,420],[300,420],[850,420],[800,420],[400,420],[200,350],[350,420],[50,350],[500,420],[100,420],[750,420],[450,420],[0,420],[50,420],[200,420],[650,280],[250,420],[650,420],[650,350]],"e":[[1,0,0,15,0,-15,[230.62,50]],[1,2,0,15,0,-15,[721.25,50]],[1,3,0,15,0,-15,[40,50]],[0,4,0,15,0,-15,[346.25,120]],[0,5,0,15,0,-15,[115,120]],[4,6,0,15,0,-15,[527.5,190]],[4,7,0,15,0,-15,[340,190]],[2,8,0,15,0,-15,[777.5,260]],[4,9,0,15,0,-15,[215,190]],[4,10,0,15,0,-15,[165,190]],[7,11,0,15,0,-15,[415,330]],[8,12,0,15,0,-15,[840,330]],[7,13,0,15,0,-15,[365,330]],[3,14,0,15,0,-15],[12,15,0,15,0,-15,[915,400]],[8,16,0,15,0,-15,[715,330]],[5,17,0,15,0,-15],[6,18,0,15,0,-15,[590,260]],[18,19,0,15,0,-15],[19,20,0,15,0,-15,[615,400]],[9,21,0,15,0,-15],[10,22,0,15,0,-15],[14,23,0,15,0,-15],[19,24,0,15,0,-15,[565,400]],[7,25,0,15,0,-15,[315,330]],[12,26,0,15,0,-15,[865,400]],[12,27,0,15,0,-15,[815,400]],[11,28,0,15,0,-15],[21,29,0,15,0,-15],[13,30,0,15,0,-15],[23,31,0,15,0,-15,[65,330]],[6,32,0,15,0,-15,[515,260]],[17,33,0,15,0,-15],[12,34,0,15,0,-15,[765,400]],[6,35,0,15,0,-15,[465,260]],[23,36,0,15,0,-15,[15,330]],[31,37,0,15,0,-15],[29,38,0,15,0,-15],[2,39,0,15,0,-15,[665,260]],[7,40,0,15,0,-15,[265,330]],[39,42,0,15,0,-15],[42,41,0,15,0,-15]],"vp":[0.0,0.0,930.0,450.0]}} A Dendrogram {@graph {"ann":{"s":[30,30],"d":1},"n":[[983.12,0],[495,85],[495,170],[151.25,170],[495,240],[42.5,255],[85,325],[0,325],[520,310],[470,310],[520,380],[135,395],[470,380],[85,395],[520,450],[35,395],[185,240,265,270,2],[260,255],[320,325],[405,395],[320,395],[370,465],[320,465],[235,395],[270,465],[200,325],[570,155,560,510,2],[670,170],[1060,240],[670,240],[1060,310],[670,325],[585,240],[1085,380],[670,395],[670,465],[620,325],[1035,380],[720,310,295,340,2],[810,325],[920,395],[835,395],[920,465],[785,395],[835,465],[970,535],[920,535],[735,395],[735,465],[870,535],[920,605],[1150,70,440,495,2],[1471.25,85],[1545,155],[1397.5,155],[1510,240],[1435,240],[1460,310],[1360,240],[1460,380],[1485,450],[1410,310],[1360,310],[1435,450],[1510,310],[1360,380],[1435,520],[1165,225,175,230,2],[1230,240],[1280,310],[1230,310],[1180,310],[1265,380,60,60,2],[1280,395]],"e":[[0,1,[998.12,50,510,50]],[1,2],[1,3,[510,135,166.25,135]],[2,4],[3,5,[166.25,220,57.5,220]],[5,6,[57.5,305,100,305]],[5,7,[57.5,305,15,305]],[4,8,[510,290,535,290]],[4,9,[510,290,485,290]],[8,10],[6,11,[100,375,150,375]],[9,12],[6,13],[10,14],[6,15,[100,375,50,375]],[3,17,[166.25,220,275,220]],[17,18,[275,305,335,305]],[18,19,[335,375,420,375]],[18,20],[20,21,[335,445,385,445]],[20,22],[18,23,[335,375,250,375]],[20,24,[335,445,285,445]],[17,25,[275,305,215,305]],[1,27,[510,135,685,135]],[27,28,[685,220,1075,220]],[27,29],[28,30],[29,31],[27,32,[685,220,600,220]],[30,33,[1075,360,1100,360]],[31,34],[34,35],[29,36,[685,290,635,290]],[30,37,[1075,360,1050,360]],[29,39,[685,290,825,290]],[39,40,[825,375,935,375]],[39,41,[825,375,850,375]],[40,42],[39,43,[825,375,800,375]],[41,44],[42,45,[935,515,985,515]],[42,46],[39,47,[825,375,750,375]],[47,48],[42,49,[935,515,885,515]],[46,50],[0,52,[998.12,50,1486.25,50]],[52,53,[1486.25,135,1560,135]],[52,54,[1486.25,135,1412.5,135]],[54,55,[1412.5,205,1525,205]],[54,56,[1412.5,205,1450,205]],[56,57,[1450,290,1475,290]],[54,58,[1412.5,205,1375,205]],[57,59],[59,60,[1475,430,1500,430]],[56,61,[1450,290,1425,290]],[58,62],[59,63,[1475,430,1450,430]],[55,64],[62,65],[63,66],[54,68,[1412.5,205,1245,205]],[68,69,[1245,290,1295,290]],[68,70],[68,71,[1245,290,1195,290]],[69,73]],"vp":[0.0,0.0,1590.0,665.0]}} A graph containing group nodes {@graph {"ann":{"s":[30,30],"d":1},"n":[[4.33,440.22],[74.33,418.34,73.78,73.78],[188.11,41,48,48],[197.11,417.95],[298,245.33],[298,445.67],[389.89,393.78,73.78,73.78],[411.78,146.89],[298,25],[411.78,243.78],[411.78,293.78],[298,590.56],[503.67,100,73.78,73.78],[197.11,708.56],[188.11,821.45,48,48],[525.56,415.67],[525.56,243.78],[399.84,13.06,53.88,53.88],[276.11,661.67,73.78,73.78],[411.78,343.78],[411.78,497.56],[402.78,547.56,48,48],[402.78,615.56,48,48],[298,755.45],[525.56,472.56],[525.56,293.78],[629.39,243.78],[525.56,0],[525.56,50],[525.56,522.56],[298,805.45],[617.45,485.62,53.88,53.88],[629.39,50],[411.78,755.45],[711.33,38.06,53.88,53.88],[629.39,559.5],[298,75],[411.78,683.56],[525.56,599.56],[411.78,805.45],[723.27,559.5],[629.39,293.78],[525.56,193.78],[723.27,497.56],[298,855.45],[525.56,649.56]],"e":[[0,1],[1,2,[168.11,455.22,168.11,65]],[1,3,[168.11,455.22,168.11,432.95]],[3,4,[256.11,432.95,256.11,260.33]],[3,5,[256.11,432.95,256.11,460.67]],[5,6,[369.89,460.67,369.89,430.67]],[4,7,[369.89,260.33,369.89,161.89]],[2,8,[256.11,65,256.11,40]],[4,9,[369.89,260.33,369.89,258.78]],[4,10,[369.89,260.33,369.89,308.78]],[3,11,[256.11,432.95,256.11,605.56]],[7,12,[483.67,161.89,483.67,136.89]],[1,13,[168.11,455.22,168.11,723.56]],[1,14,[168.11,455.22,168.11,845.45]],[6,15],[9,16],[8,17],[13,18,[256.11,723.56,256.11,698.56]],[4,19,[369.89,260.33,369.89,358.78]],[5,20,[369.89,460.67,369.89,512.56]],[11,21,[369.89,605.56,369.89,571.56]],[11,22,[369.89,605.56,369.89,639.56]],[13,23,[256.11,723.56,256.11,770.45]],[20,24,[483.67,512.56,483.67,487.56]],[10,25],[16,26],[17,27,[483.67,40,483.67,15]],[17,28,[483.67,40,483.67,65]],[20,29,[483.67,512.56,483.67,537.56]],[14,30,[256.11,845.45,256.11,820.45]],[29,31,[597.45,537.56,597.45,512.56]],[28,32],[23,33],[32,34],[29,35,[597.45,537.56,597.45,574.5]],[2,36,[256.11,65,256.11,90]],[18,37],[22,38,[483.67,639.56,483.67,614.56]],[30,39],[35,40],[25,41],[7,42,[483.67,161.89,483.67,208.78]],[31,43],[14,44,[256.11,845.45,256.11,870.45]],[22,45,[483.67,639.56,483.67,664.56]]],"vp":[4.0,0.0,762.0,886.0]}} Left-to-right layout with global layeringConcept + *

    + *

    + * The layout algorithm starts from the root and recursively assigns coordinates to all tree nodes. In this manner, leaf + * nodes will be placed first, while each parent node is placed centered above its children. + *

    + *

    + * Features + *

    + *

    + * The layout algorithm supports custom sorting of sibling nodes by using a specific {@link yfiles.tree.NodeOrderComparer}. Each + * tree node may have an individual {@link yfiles.tree.NodeOrderComparer} that is stored in a {@link yfiles.algorithms.IDataProvider} + * registered with the graph with {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY}. If this {@link yfiles.tree.NodeOrderComparer} + * uses the initial coordinates of the nodes, it allows the incremental insertion of child nodes while keeping the relative + * locations of the other nodes. + *

    + *

    + * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with + * key {@link yfiles.tree.ClassicTreeLayout#SELECTED_ROOT_DP_KEY}. + *

    + *

    + * {@link yfiles.tree.ClassicTreeLayout} can be configured to {@link yfiles.tree.ClassicTreeLayout#considerNodeLabels reserve space for node labels}. It can also {@link yfiles.tree.ClassicTreeLayout#integratedEdgeLabeling place edge labels along edges} + * such that the labels won't overlap with other graph elements. Edge labels are placed according to the information stored + * in a {@link yfiles.layout.PreferredPlacementDescriptor} instance. However, the placement along the edge will only affect the + * order of multiple labels at the same edge. The algorithm will always place the labels close to the target node. + *

    + *

    + * Grouping of nodes can also be handled by this layout algorithm. It is important that a group node contains a whole + * subtree. Otherwise, the group nodes may overlap with each other or with other nodes. Furthermore, the user may specify + * minimum size constraints for each group node using {@link yfiles.algorithms.IDataProvider} key + * {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY}. + *

    + *

    + * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} + * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. After the + * layout calculation, the stage will reinsert the edges that were removed and route them separately. + *

    + * @class + * @extends {yfiles.layout.MultiStageLayout} + */ + export interface ClassicTreeLayout extends yfiles.layout.MultiStageLayout{} + export class ClassicTreeLayout { + /** + * Creates a new {@link yfiles.tree.ClassicTreeLayout} instance with default settings. + */ + constructor(); + /** + * Data provider key for marking the node that will be used as root node of the tree + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets whether or not a global layering is enforced, that is, each node spans exactly one layer. + *

    + * If it is enabled, the algorithm ensures that nodes never span more than one layer. Otherwise, nodes with larger size + * might span two or more layers such that a more compact layout is produced. + *

    + *

    + * This setting can be advantageous, if the hierarchical structure of the tree should be emphasized. + *

    + * @see yfiles.tree.ClassicTreeLayout#verticalAlignment + * @see yfiles.tree.ClassicTreeLayout#verticalAlignment + * @type {boolean} + */ + enforceGlobalLayering:boolean; + /** + * Gets or sets the layout policy for leaf nodes. + * @throws {Stubs.Exceptions.ArgumentError} if the specified policy is unknown + * @type {yfiles.tree.LeafPlacement} + */ + leafPlacement:yfiles.tree.LeafPlacement; + /** + * Gets or sets whether or not group nodes are handled by the layout algorithm. + * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled + * @type {boolean} + */ + groupingSupported:boolean; + /** + * Gets or sets the {@link yfiles.collections.IComparer.} instance that is used for sorting the outgoing edges of each node of the tree. + *

    + * This comparator defines the relative order of the child nodes in the layout. + *

    + * @type {yfiles.collections.IComparer.} + */ + comparer:yfiles.collections.IComparer; + /** + * Gets or sets the port assignment policy that will be applied. + * @type {yfiles.tree.PortStyle} + */ + portStyle:yfiles.tree.PortStyle; + /** + * Gets or sets the edge routing style used by this layout algorithm. + *

    + * If {@link yfiles.tree.EdgeRoutingStyle#PLAIN} is set, the edges will be routed as straight-line segments. If {@link yfiles.tree.EdgeRoutingStyle#ORTHOGONAL} + * is set, all edges will be routed orthogonally in a bus-like fashion. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an invalid layout style is provided + * @type {yfiles.tree.EdgeRoutingStyle} + */ + edgeRoutingStyle:yfiles.tree.EdgeRoutingStyle; + /** + * Gets or sets the minimum horizontal distance between adjacent nodes within the same layer. + * @throws {Stubs.Exceptions.ArgumentError} if the given distance is negative + * @type {number} + */ + minimumNodeDistance:number; + /** + * Gets or sets the minimum distance between two adjacent layers. + * @throws {Stubs.Exceptions.ArgumentError} if the given distance is negative + * @type {number} + */ + minimumLayerDistance:number; + /** + * Gets or sets whether or not the layout algorithm reserves space for node labels. + * @type {boolean} + */ + considerNodeLabels:boolean; + /** + * Gets or sets whether or not the layout algorithm reserves space for edge labels and places them. + *

    + * To define the desired placement for each label add a {@link yfiles.layout.PreferredPlacementDescriptor} on + * {@link yfiles.layout.IEdgeLabelLayout}. + *

    + *

    + * This method is a convenience method that assures that the {@link yfiles.layout.MultiStageLayout#labeling label layouter} is of type {@link yfiles.layout.LabelLayoutTranslator} + * and {@link yfiles.layout.LabelLayoutTranslator#translateEdgeLabels} is set to true. + *

    + * @type {boolean} + */ + integratedEdgeLabeling:boolean; + /** + * Gets or sets the vertical bus alignment for orthogonally routed edge buses. + *

    + * The bus alignment determines the relative position of an edge bus between two subsequent layers. The value of this + * property must lie within the interval [0,1] where: + *

    + *
      + *
    • A value of 0 places the bus at the top, directly below the parent node.
    • + *
    • A value of 0.5 places the bus in the middle between parent and child nodes.
    • + *
    • A value of 1 places the bus at the bottom, directly above the child nodes.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if busAlignment is not in [0,1] + * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle + * @see yfiles.tree.ClassicTreeLayout#enforceGlobalLayering + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @type {number} + */ + busAlignment:number; + /** + * Gets or sets the vertical alignment of the nodes within their corresponding layers. + *

    + * The value for the vertical alignment is considered as relative to the height of the corresponding layer, which is + * determined by the maximum height of the nodes that belong to the particular layer. + *

    + *

    + * The value of this property must lie within the interval [0,1], where: + *

    + *
      + *
    • A value of 0 corresponds to top-alignment.
    • + *
    • A value of 0.5 corresponds to center-alignment.
    • + *
    • A value of 1 corresponds to bottom-alignment.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if vertical alignment value does not lie within [0,1] + * @see yfiles.tree.ClassicTreeLayout#enforceGlobalLayering + * @type {number} + */ + verticalAlignment:number; + /** + * Gets or sets the modification matrix used for rotating / mirroring the layout. + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. + * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled + * @see yfiles.layout.MultiStageLayout#componentLayout + * @see yfiles.layout.ComponentLayout + * @type {boolean} + */ + componentLayoutEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter + * @see yfiles.router.ParallelEdgeRouter + * @type {boolean} + */ + parallelEdgeRouterEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. + * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled + * @see yfiles.layout.MultiStageLayout#selfLoopRouter + * @see yfiles.layout.SelfLoopRouter + * @type {boolean} + */ + selfLoopRouterEnabled:boolean; + static $class:yfiles.lang.Class; + } + /** + * {@link yfiles.tree.DefaultNodePlacer} is the default implementation of interface {@link yfiles.tree.INodePlacer}. + *

    + * Layout Style The layout style can be customized in several ways. Subtrees sharing the same local root node are either placed above + * or below each other. {@graph {"ann":{"s":[30,30],"d":1},"n":[[135,0],[0,70],[70,70],[120,149],[170,149],[220,149],[270,149],[70,199],[120,278],[170,278],[220,278],[270,278]],"e":[[0,1,0,15,0,0,[150,50,15,50]],[1,2],[2,3,-11.25,15,0,0,[73.75,116,135,133]],[2,4,-3.75,15,0,0,[81.25,116,185,133]],[2,5,3.75,15,0,0,[88.75,116,235,133]],[2,6,11.25,15,0,0,[96.25,116,285,133]],[1,7,[50,85,50,214]],[7,8,-11.25,15,0,0,[73.75,245,135,262]],[7,9,-3.75,15,0,0,[81.25,245,185,262]],[7,10,3.75,15,0,0,[88.75,245,235,262]],[7,11,11.25,15,0,0,[96.25,245,285,262]]],"vp":[0.0,0.0,300.0,308.0]}} + *

    + *

    + * Each layer in the tree uses different configurations of {@link yfiles.tree.DefaultNodePlacer} + *

    + *

    + * Features + *

    + *

    + * {@link yfiles.tree.SubtreeShape}s can be arranged in each main direction specified in + * {@link yfiles.tree.DefaultNodePlacer#childPlacement}. That way, the subtrees of the same graph can have different directions. + *

    + *

    + * This node placer aligns the local root node according to a chosen {@link yfiles.tree.DefaultNodePlacer#rootAlignment alignment}. + *

    + *

    + * There are various {@link yfiles.tree.DefaultNodePlacer#routingStyle routing styles} that result in different edge routes. + *

    + * @class + * @extends {yfiles.tree.NodePlacerBase} + * @implements {yfiles.tree.IFromSketchNodePlacer} + * @implements {yfiles.lang.ICloneable} + */ + export interface DefaultNodePlacer extends yfiles.tree.NodePlacerBase,yfiles.tree.IFromSketchNodePlacer,yfiles.lang.ICloneable{} + export class DefaultNodePlacer { + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with custom settings. + * @param childPlacement the child placement specifier describing the style of the arrangement + * @param rootAlignment the alignment specifier describing how the root node is aligned with its child nodes + * @param routingStyle the routing style specifier + * @param verticalDistance the vertical distance between the {@link }s + * @param horizontalDistance the horizontal distance between the {@link }s + * @param minFirstSegmentLength the minimum length of the first edge segment (connected to the root node) + * @param minLastSegmentLength the minimum length of the last edge segment (connected to the child node) + * @param minSlope the minimum slope between the root node and the {@link }s + * @param minSlopeHeight the minimum vertical height of sloped edge segments + * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment or the routing style is unknown or if the horizontal/vertical distance + * or the minimum first/last segment length or the minimum slope or the minimum vertical height is negative + * @see yfiles.tree.DefaultNodePlacer#childPlacement + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + * @see yfiles.tree.DefaultNodePlacer#routingStyle + * @see yfiles.tree.DefaultNodePlacer#verticalDistance + * @see yfiles.tree.DefaultNodePlacer#horizontalDistance + * @see yfiles.tree.DefaultNodePlacer#minimumFirstSegmentLength + * @see yfiles.tree.DefaultNodePlacer#minimumLastSegmentLength + * @see yfiles.tree.DefaultNodePlacer#minimumSlope + * @see yfiles.tree.DefaultNodePlacer#minimumSlopeHeight + */ + constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,routingStyle:yfiles.tree.RoutingStyle,verticalDistance:number,horizontalDistance:number,minFirstSegmentLength:number,minLastSegmentLength:number,minSlope:number,minSlopeHeight:number); + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#rootAlignment root alignment}, {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} + * and {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. + * @param childPlacement the child placement specifier describing the style of the arrangement + * @param rootAlignment the alignment specifier describing how the root node is aligned with its child nodes + * @param routingStyle the routing style specifier + * @param verticalDistance the vertical distance between the {@link }s + * @param horizontalDistance the horizontal distance between the {@link }s + * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment or the routing style is unknown or if the horizontal/vertical distance + * is negative + * @see yfiles.tree.DefaultNodePlacer#childPlacement + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + * @see yfiles.tree.DefaultNodePlacer#routingStyle + * @see yfiles.tree.DefaultNodePlacer#verticalDistance + * @see yfiles.tree.DefaultNodePlacer#horizontalDistance + */ + constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,routingStyle:yfiles.tree.RoutingStyle,verticalDistance:number,horizontalDistance:number); + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#rootAlignment root alignment}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} and + * {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. + * @param childPlacement the child placement specifier describing the style of the arrangement + * @param rootAlignment the alignment specifier describing how the root node is aligned with its child nodes + * @param verticalDistance the vertical distance between the {@link }s + * @param horizontalDistance the horizontal distance between the {@link }s + * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment specifier is unknown or if the horizontal/vertical distance is + * negative + * @see yfiles.tree.DefaultNodePlacer#childPlacement + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + * @see yfiles.tree.DefaultNodePlacer#verticalDistance + * @see yfiles.tree.DefaultNodePlacer#horizontalDistance + */ + constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,verticalDistance:number,horizontalDistance:number); + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} and {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. + * @param childPlacement the child placement specifier describing the style of the arrangement + * @param verticalDistance the vertical distance between the {@link }s + * @param horizontalDistance the horizontal distance between the {@link }s + * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier is unknown or if the horizontal/vertical distance is negative + * @see yfiles.tree.DefaultNodePlacer#childPlacement + * @see yfiles.tree.DefaultNodePlacer#verticalDistance + * @see yfiles.tree.DefaultNodePlacer#horizontalDistance + */ + constructor(childPlacement:yfiles.tree.ChildPlacement,verticalDistance:number,horizontalDistance:number); + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with default settings. + */ + constructor(); + /** + * Calculates the bends for the connector to the parent node. + *

    + * This implementation adds bends to the connector for edges that route the edges around the child node in case there are + * {@link yfiles.layout.PortConstraint}s that conflict with the direction of the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}. + *

    + *

    + * This method is called in {@link yfiles.tree.DefaultNodePlacer#placeSubtreeOfNode} to route the edges after the + * {@link yfiles.tree.SubtreeShape}s are arranged. It may be overridden to customize the routing style. + *

    + * @param graph the input graph + * @param localRoot the local root node whose connector is calculated and stored in the given subtree shape + * @param rootLayout the {@link } of the root node + * @param subtreeShape the shape of the whole subtree of the local root + * @param parentEdge the incoming edge of the local root node that will be the connector for the given subtree shape + * @param parentEdgeLayout the current {@link } of the connector edge + * @param direction the direction specifier as defined in the {@link } interface which should be used for the connector + * @see yfiles.tree.NodePlacerBase#determineChildConnectors + * @protected + */ + calculateParentConnector(graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,rootLayout:yfiles.layout.INodeLayout,subtreeShape:yfiles.tree.SubtreeShape,parentEdge:yfiles.algorithms.Edge,parentEdgeLayout:yfiles.layout.IEdgeLayout,direction:number):void; + /** + * Calculates the routing of the source side of the edge to the given child node. + *

    + * This method delegates to {@link yfiles.tree.DefaultNodePlacer#calculateSourceEdgeLayout} if the {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style} is not + * {@link yfiles.tree.RoutingStyle#FORK}. It may be overridden to implement a custom routing style. + *

    + * @param rootLayout the {@link } of the local root node + * @param childShape the {@link } instance of the corresponding child's subtree + * @param edge the edge + * @param rootForkCoordinate the y-coordinate of the first bend of the edge if the placement is horizontal, the x-coordinate otherwise + * @param childForkCoordinate the y-coordinate of the second (= last) bend of the edge if the placement is horizontal, the x-coordinate otherwise + * @protected + */ + calculateSlopedSourceEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge,childForkCoordinate:number,rootForkCoordinate:number):void; + /** + * Calculates the routing of the source side of the edge to the given child node. + *

    + * This implementation adds bends to the {@link yfiles.layout.IEdgeLayout} of the given edge according to the specified {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style} + * and {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}. It also updates the target points in the {@link yfiles.tree.SubtreeShape}. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultNodePlacer#calculateSlopedSourceEdgeLayout} to route the edges. It may be + * overridden to implement a custom edge routing style. + *

    + * @param rootLayout the {@link } of the local root node + * @param childShape the {@link } of the child's subtree that is connected through the given edge + * @param edge the edge + * @protected + */ + calculateSourceEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge):void; + /** + * Calculates the routing of the target side of the edge to the given child node. + *

    + * This implementation just resets the current {@link yfiles.layout.IEdgeLayout}. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultNodePlacer#placeSubtreeOfNode} after the {@link yfiles.tree.SubtreeShape shapes} of the local root's children + * are placed. It may be overridden to add some {@link yfiles.tree.SubtreeShape#addTargetPoint target points} to the edge. + *

    + * @param rootLayout the {@link } of the local root node + * @param childShape the {@link } of the child's subtree that is connected through the given edge + * @param edge the edge + * @protected + */ + calculateTargetEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge):void; + /** + * Creates a {@link yfiles.collections.IComparer.} for outgoing edges which takes the initial coordinates of the edges' targets into account. + *

    + * Child nodes are sorted in a way that the layout will resemble the current arrangement of the nodes. This is especially + * useful for interactive or incremental layout calculation. + *

    + * @returns a {@link } that considers the initial coordinates of the nodes + */ + createComparer():yfiles.collections.IComparer; + /** + * Delegates to {@link yfiles.tree.DefaultNodePlacer#createComparer}. + * @returns the From Sketch {@link } + * @see yfiles.tree.DefaultNodePlacer#createComparer + */ + createFromSketchComparer():yfiles.collections.IComparer; + /** + * Gets or sets the direction in which the child nodes are placed with respect to their parent node. + *

    + * Subtrees can be placed below, above, left or right of their roots. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an unknown placement specifier is set + * @type {yfiles.tree.ChildPlacement} + */ + childPlacement:yfiles.tree.ChildPlacement; + /** + * Gets or sets how the root node is aligned with its children and their {@link yfiles.tree.SubtreeShape}s. + * @throws {Stubs.Exceptions.ArgumentError} if an unknown root alignment specifier is set + * @type {yfiles.tree.RootAlignment} + */ + rootAlignment:yfiles.tree.RootAlignment; + /** + * Gets or sets the relative vertical alignment of nodes with the same parent. + *

    + * All values between 0 and 1 result in a valid alignment. + *

    + *
      + *
    • 0 - nodes are top-aligned
    • + *
    • 0.5 - nodes are center-aligned
    • + *
    • 1 - nodes are bottom-aligned
    • + *
    + *

    + * Values outside the interval [0,1] will result in a more compact node placement with unaligned nodes. + *

    + * @type {number} + */ + verticalAlignment:number; + /** + * Gets or sets the style in which edge paths are routed. + * @throws {Stubs.Exceptions.ArgumentError} if the specified routing style is unknown + * @type {yfiles.tree.RoutingStyle} + */ + routingStyle:yfiles.tree.RoutingStyle; + /** + * Gets or sets the vertical distance between nodes or {@link yfiles.tree.SubtreeShape}s. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + verticalDistance:number; + /** + * Gets or sets the minimum length for the first segment of an edge. + *

    + * During layout calculation, the edges of the tree are directed. Hence, the first segment is always the segment that is + * attached to the source, which is the local root node. + *

    + *

    + * The length needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the minimum segment length is negative + * @type {number} + */ + minimumFirstSegmentLength:number; + /** + * Gets or sets the minimum length for the last segment of an edge. + *

    + * During layout calculation, the edges of the tree are directed. Hence, the last segment is always the segment that is + * attached to the target, which is a child node. + *

    + *

    + * The length needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the minimum segment length is negative + * @type {number} + */ + minimumLastSegmentLength:number; + /** + * Gets or sets the minimum slope of the edge segments. + *

    + * These sloped segments are between the vertical first and last segment of the edge. + *

    + *

    + * The segments may become steeper but they will have at least the specified slope. Negative minimum slopes can lead to + * edge routes looking like spider legs. + *

    + * @see yfiles.tree.DefaultNodePlacer#minimumSlopeHeight + * @type {number} + */ + minimumSlope:number; + /** + * Gets or sets the minimum height for sloped edge segments. + *

    + * These sloped segments are between the vertical first and last segment of the edge. + *

    + *

    + * The segments may become steeper to reach the specified height. + *

    + * @see yfiles.tree.DefaultNodePlacer#minimumSlope + * @type {number} + */ + minimumSlopeHeight:number; + /** + * Gets or sets the horizontal distance between nodes or {@link yfiles.tree.SubtreeShape}s. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + horizontalDistance:number; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.DefaultPortAssignment} provides some simple {@link yfiles.tree.DefaultPortAssignment#mode port assignment styles}. + *

    + * Ports are either {@link yfiles.tree.PortAssignmentMode#NONE centered} on the node, distributed at one side of the node or placed considering + * {@link yfiles.layout.PortConstraint}s. + *

    + * @class + * @implements {yfiles.tree.IPortAssignment} + */ + export interface DefaultPortAssignment extends Object,yfiles.tree.IPortAssignment{} + export class DefaultPortAssignment { + /** + * Creates a new {@link yfiles.tree.DefaultPortAssignment} instance using the given port assignment mode and ratio between the + * border and the ports and the gap between the ports themselves. + * @param mode one of the predefined port assignment specifiers + * @param [ratio=0.5] the ratio of the distance between outer ports and the border to the distance between any two ports + * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode is specified or if the specified ratio is negative + */ + constructor(mode:yfiles.tree.PortAssignmentMode,ratio?:number); + /** + * Creates a new {@link yfiles.tree.DefaultPortAssignment} instance with default settings. + */ + constructor(); + /** + * Assigns relative coordinates to the source port of the outgoing edge to a child of the given node. + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignPorts} for each outgoing edge of the given node. It may + * be overridden to assign a custom location to the source port of outgoing edges. + *

    + * @param graph the input graph + * @param node the node + * @param edge the edge to the child node + * @param index the zero-based index of the child edge + * @see yfiles.layout.IEdgeLayout#sourcePoint + * @protected + */ + assignChildEdgeSourcePort(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge,index:number):void; + /** + * Assigns relative coordinates to the target port of the incoming edge from the parent of the given node. + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignPorts} if the given node has a parent node. It may be + * overridden to assign a custom location to the target port of the incoming edge. + *

    + * @param graph the input graph + * @param node the node + * @param edge the edge from the parent node + * @see yfiles.layout.IEdgeLayout#targetPoint + * @protected + */ + assignParentEdgeTargetPort(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge):void; + /** + * Places the ports of edges connecting to the given node according to the {@link yfiles.tree.DefaultPortAssignment#mode port assignment mode}. + * @param graph the input graph + * @param node the node whose adjacent edges' ports should be placed + * @see yfiles.tree.DefaultPortAssignment#mode + */ + assignPorts(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; + /** + * Determines the distance between the outer ports and the border of the node. + *

    + * This implementation calculates the gap according to the number of edges at one side of the node. It also includes the + * {@link yfiles.tree.DefaultPortAssignment#borderGapToPortGapRatio ratio between border gap and port gap}. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} to calculate the location of the + * first port. It may be overridden to implement a different distribution of ports on the node's side. + *

    + * @param sideLength the width/height of the side + * @param edgeCount the number of edges that connect to this side + * @returns the absolute gap to be used on both sides of the ports + * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort + * @see yfiles.tree.DefaultPortAssignment#borderGapToPortGapRatio + * @protected + */ + getPortBorderGap(sideLength:number,edgeCount:number):number; + /** + * Determines the distance between two adjacent ports. + *

    + * This implementation calculates the gap according to the number of edges at one side of the node. The edges are + * distributed keeping the given gap to the border of the node. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} to calculate the distance between + * two ports. It may be overridden to implement a different distribution of ports on the node's side. + *

    + * @param sideLength the width/height of the side + * @param edgeCount the number of edges/ports that connect to this side + * @param portBorderGap the port border gap (i.e. calculated by {@link #getPortBorderGap}) + * @returns the absolute distance to be used between two adjacent ports + * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort + * @see yfiles.tree.DefaultPortAssignment#getPortBorderGap + * @protected + */ + getPortDistanceDelta(sideLength:number,edgeCount:number,portBorderGap:number):number; + /** + * Retrieves the source {@link yfiles.layout.PortConstraint} for the given edge. + *

    + * This implementation accesses the {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY}. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} in + * {@link yfiles.tree.PortAssignmentMode#PORT_CONSTRAINT}. + *

    + * @param graph the input graph + * @param edge the edge + * @param index the index of the child that is the target of the given edge + * @returns the source {@link } or null if no source {@link } is specified + * @see yfiles.layout.PortConstraint + * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY + * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort + * @protected + */ + getSourcePortConstraint(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,index:number):yfiles.layout.PortConstraint; + /** + * Retrieves the target {@link yfiles.layout.PortConstraint} for the given edge. + *

    + * This implementation accesses the {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY}. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignParentEdgeTargetPort} in + * {@link yfiles.tree.PortAssignmentMode#PORT_CONSTRAINT}. + *

    + * @param graph the input graph + * @param edge the edge + * @returns the target {@link } or null if no target {@link } is specified + * @see yfiles.layout.PortConstraint + * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY + * @see yfiles.tree.DefaultPortAssignment#assignParentEdgeTargetPort + * @protected + */ + getTargetPortConstraint(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):yfiles.layout.PortConstraint; + /** + * Gets or sets the mode that describes how ports are placed. + * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode is specified + * @type {yfiles.tree.PortAssignmentMode} + */ + mode:yfiles.tree.PortAssignmentMode; + /** + * Gets or sets the ratio of the border gap (distance between the outer ports to the node border) to the port gap (distance between adjacent + * ports). + *

    + * The ratio must have a positive value. When the ratio is 0 the ports will be distributed along the whole side of the node + * without a gap between the last port and the corner. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified ratio is negative + * @type {number} + */ + borderGapToPortGapRatio:number; + /** + * Gets or sets whether or not the port assignment should reverse the order of the ports. + *

    + * The normal order is from left to right and from top to bottom. It will be reversed if this option is enabled. + *

    + * @type {boolean} + */ + reversedPortOrder:boolean; + static $class:yfiles.lang.Class; + } + /** + * {@link yfiles.tree.DelegatingNodePlacer} delegates the arrangement of the children to two different {@link yfiles.tree.INodePlacer}s. + *

    + * Layout Style This {@link yfiles.tree.INodePlacer} can, for example, be used for creating mind maps or a playing schedule of a sports + * competition. {@graph {"ann":{"s":[130,30],"d":1},"n":[[662,400,[[669.97,424.35,114.05,18.7]]],[662,175,[[669.97,199.35,114.05,18.7]]],[662,625,[[685.65,649.35,82.7,18.7]]],[812,175,[[829.98,199.35,94.04,18.7]]],[982,275,[[999.98,299.35,94.04,18.7]]],[812,625,[[835.65,649.35,82.7,18.7]]],[512,175,[[519.97,199.35,114.05,18.7]]],[982,725,[[1010.64,749.35,72.71,18.7]]],[1152,775,[[1180.64,799.35,72.71,18.7]]],[1322,800,[[1341.97,824.35,90.05,18.7]]],[982,75,[[1004.32,99.35,85.37,18.7]]],[1152,675,[[1163.65,699.35,106.71,18.7]]],[1152,325,[[1177.32,349.35,79.36,18.7]]],[982,525,[[1005.65,549.35,82.7,18.7]]],[1152,125,[[1190.32,149.35,53.37,18.7]]],[1152,575,[[1175.65,599.35,82.7,18.7]]],[1322,350,[[1347.32,374.35,79.36,18.7]]],[1322,150,[[1343.65,174.35,86.7,18.7]]],[1322,300,[[1347.32,324.35,79.36,18.7]]],[1152,225,[[1169.98,249.35,94.04,18.7]]],[1152,25,[[1174.32,49.35,85.37,18.7]]],[342,75,[[372.66,99.35,68.69,18.7]]],[1152,475,[[1165.65,499.35,102.7,18.7]]],[1322,500,[[1326,524.35,122.06,18.7]]],[1322,250,[[1339.98,274.35,94.04,18.7]]],[1322,600,[[1330.31,624.35,113.38,18.7]]],[172,25,[[188.64,49.35,96.72,18.7]]],[342,275,[[349.97,299.35,114.05,18.7]]],[2,0,[[26.32,24.35,81.36,18.7]]],[1322,550,[[1345.65,574.35,82.7,18.7]]],[172,125,[[202.66,149.35,68.69,18.7]]],[1322,200,[[1344.32,224.35,85.36,18.7]]],[2,100,[[32.32,124.35,69.37,18.7]]],[1322,450,[[1335.65,474.35,102.7,18.7]]],[1322,750,[[1350.64,774.35,72.71,18.7]]],[512,625,[[532.65,649.35,88.69,18.7]]],[172,225,[[179.97,249.35,114.05,18.7]]],[1322,700,[[1329.63,724.35,114.74,18.7]]],[172,325,[[200.98,349.35,72.03,18.7]]],[1322,50,[[1344.32,74.35,85.37,18.7]]],[2,300,[[4.98,324.35,124.05,18.7]]],[2,50,[[18.64,74.35,96.72,18.7]]],[2,150,[[32.66,174.35,68.69,18.7]]],[1322,650,[[1333.65,674.35,106.71,18.7]]],[1322,0,[[1356.66,24.35,60.69,18.7]]],[1322,100,[[1360.32,124.35,53.37,18.7]]],[342,525,[[347.31,549.35,119.39,18.7]]],[172,475,[[171.97,499.35,130.06,18.7]]],[2,350,[[30.98,374.35,72.03,18.7]]],[2,450,[[1.97,474.35,130.06,18.7]]],[342,725,[[362.65,749.35,88.69,18.7]]],[2,200,[[25.31,224.35,83.37,18.7]]],[172,575,[[177.31,599.35,119.39,18.7]]],[172,675,[[197.32,699.35,79.35,18.7]]],[2,500,[[15.98,524.35,102.04,18.7]]],[2,550,[[14.63,574.35,104.73,18.7]]],[2,600,[[7.31,624.35,119.39,18.7]]],[2,250,[[9.97,274.35,114.05,18.7]]],[172,775,[[192.65,799.35,88.69,18.7]]],[2,750,[[22.65,774.35,88.69,18.7]]],[2,800,[[16.64,824.35,100.72,18.7]]],[2,650,[[11.97,674.35,110.07,18.7]]],[2,700,[[27.32,724.35,79.35,18.7]]]],"e":[[0,1],[0,2],[1,3],[3,4,[954,190,954,290]],[2,5],[1,6],[5,7,[954,640,954,740]],[7,8,[1124,740,1124,790]],[8,9,[1294,790,1294,815]],[3,10,[954,190,954,90]],[7,11,[1124,740,1124,690]],[4,12,[1124,290,1124,340]],[5,13,[954,640,954,540]],[10,14,[1124,90,1124,140]],[13,15,[1124,540,1124,590]],[12,16,[1294,340,1294,365]],[14,17,[1294,140,1294,165]],[12,18,[1294,340,1294,315]],[4,19,[1124,290,1124,240]],[10,20,[1124,90,1124,40]],[6,21,[500,190,500,90]],[13,22,[1124,540,1124,490]],[22,23,[1294,490,1294,515]],[19,24,[1294,240,1294,265]],[15,25,[1294,590,1294,615]],[21,26,[330,90,330,40]],[6,27,[500,190,500,290]],[26,28,[160,40,160,15]],[15,29,[1294,590,1294,565]],[21,30,[330,90,330,140]],[19,31,[1294,240,1294,215]],[30,32,[160,140,160,115]],[22,33,[1294,490,1294,465]],[8,34,[1294,790,1294,765]],[2,35],[27,36,[330,290,330,240]],[11,37,[1294,690,1294,715]],[27,38,[330,290,330,340]],[20,39,[1294,40,1294,65]],[38,40,[160,340,160,315]],[26,41,[160,40,160,65]],[30,42,[160,140,160,165]],[11,43,[1294,690,1294,665]],[20,44,[1294,40,1294,15]],[14,45,[1294,140,1294,115]],[35,46,[500,640,500,540]],[46,47,[330,540,330,490]],[38,48,[160,340,160,365]],[47,49,[160,490,160,465]],[35,50,[500,640,500,740]],[36,51,[160,240,160,215]],[46,52,[330,540,330,590]],[50,53,[330,740,330,690]],[47,54,[160,490,160,515]],[52,55,[160,590,160,565]],[52,56,[160,590,160,615]],[36,57,[160,240,160,265]],[50,58,[330,740,330,790]],[58,59,[160,790,160,765]],[58,60,[160,790,160,815]],[53,61,[160,690,160,665]],[53,62,[160,690,160,715]]],"vp":[1.0,0.0,1451.0,830.0]}} + *

    + *

    + * There are two subtrees that are placed above and below the root; Both subtrees consist of two subtrees that are placed + * left and right of their local root + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface DelegatingNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class DelegatingNodePlacer { + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with default settings using the given modification matrix and the + * given node placers as delegates. + * @param modificationMatrix the transformation matrix + * @param placerUpperLeft the first delegate {@link } which places the left subtrees + * @param placerLowerRight the second delegate {@link } which places the right subtrees + * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,placerUpperLeft:yfiles.tree.INodePlacer,placerLowerRight:yfiles.tree.INodePlacer); + /** + * Returns all upper-left children of the local root node. + *

    + * Which children belong to this list is determined using the {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY}. If no such {@link yfiles.algorithms.IDataProvider} is registered, the + * first half of the children is returned. + *

    + *

    + * These children are placed using the {@link yfiles.tree.INodePlacer} returned by {@link yfiles.tree.DelegatingNodePlacer#primaryPlacer}. + *

    + * @param localRoot the local root node + * @param graph the input graph + * @returns the list of upper-left child {@link }s + * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY + */ + primaryChildren(localRoot:yfiles.algorithms.Node,graph:yfiles.layout.LayoutGraph):yfiles.algorithms.NodeList; + /** + * Returns all lower-right children of the local root node. + *

    + * Which children belong to this list is determined using the {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY}. If no such {@link yfiles.algorithms.IDataProvider} is registered, the + * second half of the children is returned. + *

    + *

    + * These children are placed using the {@link yfiles.tree.INodePlacer} returned by {@link yfiles.tree.DelegatingNodePlacer#secondaryPlacer}. + *

    + * @param localRoot the local root node + * @param graph the input graph + * @returns the list of lower-right child {@link }s + * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY + */ + secondaryChildren(localRoot:yfiles.algorithms.Node,graph:yfiles.layout.LayoutGraph):yfiles.algorithms.NodeList; + /** + * Data provider key for dividing the children into two sets + *

    + * If there is no {@link yfiles.algorithms.IDataProvider} registered with this key, half of the nodes are placed left of the root + * and the remaining nodes are placed right of the root. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static PRIMARY_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets the {@link yfiles.tree.INodePlacer} instance that will arrange the lower-right part of the graph. + * @see yfiles.tree.DelegatingNodePlacer#primaryPlacer + * @see yfiles.tree.DelegatingNodePlacer#secondaryChildren + * @type {yfiles.tree.INodePlacer} + */ + secondaryPlacer:yfiles.tree.INodePlacer; + /** + * Gets the {@link yfiles.tree.INodePlacer} instance that will arrange the upper-left part of the graph. + * @see yfiles.tree.DelegatingNodePlacer#secondaryPlacer + * @see yfiles.tree.DelegatingNodePlacer#primaryChildren + * @type {yfiles.tree.INodePlacer} + */ + primaryPlacer:yfiles.tree.INodePlacer; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.DendrogramNodePlacer} arranges subtrees as dendrograms. + *

    + * Layout Style This {@link yfiles.tree.INodePlacer} arranges nodes from top to bottom. It arranges subtrees in such a way that all subtrees of + * a single local root are aligned with their bottom border. {@graph {"ann":{"s":[30,30],"d":1},"n":[[212.5,0],[400,70],[450,140],[300,210],[400,210],[450,210],[150,140],[25,70],[200,280],[150,280],[50,210],[450,280],[350,280],[25,140],[100,210],[400,280],[0,280],[300,280],[50,280],[100,280],[250,280]],"e":[[0,1,[227.5,50,415,50]],[1,2,[415,120,465,120]],[0,3,[227.5,50,315,50]],[1,4],[2,5],[0,6,[227.5,50,165,50]],[0,7,[227.5,50,40,50]],[6,8,[165,190,215,190]],[6,9],[5,11],[1,12,[415,120,365,120]],[7,13],[13,10,[40,190,65,190]],[6,14,[165,190,115,190]],[4,15],[13,16,[40,190,15,190]],[3,17],[10,18],[14,19],[0,20,[227.5,50,265,50]]],"vp":[0.0,0.0,480.0,310.0]}} + *

    + *

    + * Note: This implementation does not support {@link yfiles.layout.PortConstraint}s. + *

    + * @class + * @implements {yfiles.tree.IFromSketchNodePlacer} + */ + export interface DendrogramNodePlacer extends Object,yfiles.tree.IFromSketchNodePlacer{} + export class DendrogramNodePlacer { + /** + * Creates a new {@link yfiles.tree.DendrogramNodePlacer} instance with default settings. + */ + constructor(); + /** + * Creates a {@link yfiles.collections.IComparer.} that sorts outgoing edges according to the x-coordinate of their target nodes. + *

    + * This {@link yfiles.collections.IComparer.} can be used for achieving a From Sketch layout. + *

    + * @returns the {@link } + * @see yfiles.tree.DendrogramNodePlacer#createFromSketchComparer + */ + createComparer():yfiles.collections.IComparer; + /** + * Creates a {@link yfiles.collections.IComparer.} for the edges which takes the initial x-coordinates of the nodes into account. + *

    + * This implementation delegates to {@link yfiles.tree.DendrogramNodePlacer#createComparer}. + *

    + * @returns the {@link } for the edges + * @see yfiles.tree.DendrogramNodePlacer#createComparer + */ + createFromSketchComparer():yfiles.collections.IComparer; + /** + * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. + *

    + * This implementation returns null. Hence, no pre- or post-processing is done. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns null + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Provides {@link yfiles.tree.ParentConnectorDirection#NORTH} for all children. + *

    + * Edges will always connect to the top of the child nodes. + *

    + * @param localRoot the local root node + * @param connectorMap the map that is used for storing the direction specifiers of the child nodes + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Arranges the {@link yfiles.tree.SubtreeShape SubtreeShapes} of the local root and its children as a dendrogram. + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the combined shape of the whole subtree rooted at the given local root node + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + /** + * Gets or sets the minimum distance between the {@link yfiles.tree.SubtreeShape} of a root node and the bus connecting to all of + * its children. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + minimumRootDistance:number; + /** + * Gets or sets the minimum horizontal distance between adjacent {@link yfiles.tree.SubtreeShape SubtreeShapes}. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + minimumSubtreeDistance:number; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.DoubleLineNodePlacer} arranges the children of a local root alternating in two lines. + *

    + * Layout Style This {@link yfiles.tree.INodePlacer} arranges nodes from top to bottom. It places the subtrees in two horizontal lines below + * the root. They are distributed in an alternating fashion, i.e., adjacent subtrees are in different lines. + *

    + *

    + * This node placer is especially useful for leaves with a large width. + *

    + *

    + * {@graph {"ann":{"s":[141.67,30],"d":1},"n":[[298.33,0,60,30],[0,60],[85.83,99.9],[171.67,60],[257.5,99.9],[343.33,60],[429.17,99.9],[515,60]],"e":[[0,1,[70.83,15]],[0,2,[156.67,15]],[0,3,[242.5,15]],[0,4],[0,5,[414.17,15]],[0,6,[500,15]],[0,7,[585.83,15]]],"vp":[0.0,0.0,657.0,130.0]}} + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface DoubleLineNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class DoubleLineNodePlacer { + /** + * Creates a new {@link yfiles.tree.DoubleLineNodePlacer} instance whose direction is specified by the given modification matrix. + * @param modificationMatrix the transformation matrix for this {@link } + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new {@link yfiles.tree.DoubleLineNodePlacer} instance with the default settings. + */ + constructor(); + /** + * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. + * @type {yfiles.tree.RootNodeAlignment} + */ + rootAlignment:yfiles.tree.RootNodeAlignment; + /** + * Gets or sets the ratio of the {@link yfiles.tree.RotatableNodePlacerBase#spacing spacing} between the root and the children in the upper line and the spacing between the + * two lines of subtrees. + * @type {number} + */ + doubleLineSpacingRatio:number; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.tree.FreeNodePlacer} is a simple pseudo-placer. + *

    + * The children of local root nodes are not moved. The {@link yfiles.tree.INodePlacer} just merges their rotated shapes and routes + * the edges. + *

    + *

    + * This {@link yfiles.tree.INodePlacer} may be useful if a local root node does not have any children or you want to place them + * manually. + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface FreeNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class FreeNodePlacer { + /** + * Creates a new instance of {@link yfiles.tree.FreeNodePlacer} with default settings. + */ + constructor(); + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.GridNodePlacer} arranges the shapes of the children of a local root in a grid. + *

    + * Layout Style The grid consists of a number of rows. The subtrees are assigned to the rows using a {@link yfiles.algorithms.IDataProvider} + * that is registered with the graph with {@link yfiles.tree.GridNodePlacer#ROW_INDEX_DP_KEY}. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[50,140],[50,210],[50,70],[100,140],[100,210],[100,70],[150,140],[150,210],[150,70],[200,140],[200,210],[200,70]],"e":[[0,1,[40,15,40,120,65,120]],[0,2,[40,15,40,190,65,190]],[0,3,[40,15,40,50,65,50]],[0,4,[40,15,40,120,115,120]],[0,5,[40,15,40,190,115,190]],[0,6,[40,15,40,50,115,50]],[0,7,[40,15,40,120,165,120]],[0,8,[40,15,40,190,165,190]],[0,9,[40,15,40,50,165,50]],[0,10,[40,15,40,120,215,120]],[0,11,[40,15,40,190,215,190]],[0,12,[40,15,40,50,215,50]]],"vp":[0.0,0.0,230.0,240.0]}} + *

    + *

    + * Child nodes placed in a grid using three rows and four columns + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface GridNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class GridNodePlacer { + /** + * Creates a new {@link yfiles.tree.GridNodePlacer} instance with the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} and {@link yfiles.tree.GridNodePlacer#rootAlignment root alignment}. + * @param modificationMatrix the transformation matrix for this {@link } + * @param rootAlignment the alignment of the local root with its subtrees + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,rootAlignment:yfiles.tree.RootNodeAlignment); + /** + * Creates a new {@link yfiles.tree.GridNodePlacer} instance whose direction is specified by the given modification matrix. + * @param modificationMatrix the transformation matrix for this {@link } + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new {@link yfiles.tree.GridNodePlacer} with default settings. + */ + constructor(); + /** + * Data provider key for assigning nodes to the rows in the grid + *

    + * If no {@link yfiles.algorithms.IDataProvider} is registered with this key, all nodes will be placed in the same row. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static ROW_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. + * @type {yfiles.tree.RootNodeAlignment} + */ + rootAlignment:yfiles.tree.RootNodeAlignment; + static $class:yfiles.lang.Class; + } + /** + * This {@link yfiles.tree.INodePlacer} places the children of a local root in groups. + *

    + * The groups are determined by the grouping of the edges that connect the children to its root. The placement of the + * groups is specified by a {@link yfiles.tree.INodePlacer} which will consider grouped children as one child. The children within + * a group are placed by another {@link yfiles.tree.INodePlacer}. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[70.15,0,91.19,30],[0,91],[111,91],[201.5,91],[0,141],[111,141],[201.5,141]],"e":[[0,1,-30,15,0,0,[85.75,50,50,50,50,106]],[0,2,0,15,0,0,[115.75,50,91,50,91,106]],[0,3,30,15,0,0,[145.75,50,181.5,50,181.5,106]],[0,4,-30,15,0,0,[85.75,50,50,50,50,156]],[0,5,0,15,0,0,[115.75,50,91,50,91,156]],[0,6,30,15,0,0,[145.75,50,181.5,50,181.5,156]]],"vp":[0.0,0.0,232.0,171.0]}} There are three edge groups whose target nodes are placed above each other + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + * @class + * @implements {yfiles.tree.INodePlacer} + */ + export interface GroupedNodePlacer extends Object,yfiles.tree.INodePlacer{} + export class GroupedNodePlacer { + /** + * Creates a new {@link yfiles.tree.GroupedNodePlacer} instance. + * @param groupPlacer the {@link } which places the child groups + * @param childPlacer the {@link } which places the children within their group + */ + constructor(groupPlacer:yfiles.tree.INodePlacer,childPlacer:yfiles.tree.INodePlacer); + /** + * Creates a {@link yfiles.tree.IProcessor} that prepares the graph for edge grouping. + *

    + * In a pre-processing step, the {@link yfiles.tree.IProcessor} inserts a dummy node for each edge group and connects it to the + * local root and the edges of the according group. The child node placer is assigned to those dummy nodes and will arrange + * them during the layout calculation. + *

    + *

    + * The changes to the graph are restored in a post-processing step. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns the {@link } responsible for preparing the graph + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Delegates to the {@link yfiles.tree.INodePlacer} responsible for arranging the nodes in one group. + * @param localRoot the local root node + * @param connectorMap the map used for storing the direction specifiers of the child nodes + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Places the groups of {@link yfiles.tree.SubtreeShape}s according to their group IDs. + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the merged {@link }s of the local root and its children + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.tree.IFromSketchNodePlacer} arranges the subtrees while taking the initial locations of the nodes into account. + *

    + * It provides a {@link yfiles.collections.IComparer.} which sorts the outgoing edges of a node according to the initial coordinates of their target nodes. + * Keeping the original order of nodes, this {@link yfiles.collections.IComparer.} allows to incrementally add new nodes to the graph. + *

    + * @interface + * @implements {yfiles.tree.INodePlacer} + */ + export interface IFromSketchNodePlacer extends Object,yfiles.tree.INodePlacer{ + /** + * Creates an {@link yfiles.collections.IComparer. edge comparator} which takes the initial coordinates of the nodes into account. + *

    + * This {@link yfiles.collections.IComparer.} defines the order of the outgoing edges of a node before the actual placement of the node's subtree is + * calculated. + *

    + * @returns the {@link } for the edges + * @abstract + */ + createFromSketchComparer():yfiles.collections.IComparer; + } + var IFromSketchNodePlacer:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A {@link yfiles.tree.INodePlacer} is responsible for the arrangement of a local root node and all of its subtrees. + *

    + * Subtrees are represented as {@link yfiles.tree.SubtreeShape SubtreeShape}s with a connecting edge to the root of the subtree. + *

    + *

    + * Implementations of this interface have to: + *

    + *
      + *
    • + * arrange the {@link yfiles.tree.SubtreeShape SubtreeShapes} and the root node (only the relative position matters, shapes can be placed at any absolute + * location, {@link yfiles.tree.TreeLayout} will perform the final alignment). + *
    • + *
    • + * perform the edge routing from the root node to all child nodes with respect to the connector provided by the + * {@link yfiles.tree.SubtreeShape SubtreeShapes} + *
    • + *
    • calculate the union of the {@link yfiles.tree.SubtreeShape SubtreeShapes} and the shape of the root node as well as any added edges
    • + *
    • initialize the connector of the root node with respect to the preferred connection direction
    • + *
    • return the {@link yfiles.tree.SubtreeShape SubtreeShape} for the subtree including the local root
    • + *
    + * @interface + */ + export interface INodePlacer extends Object{ + /** + * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. + *

    + * This method is called by {@link yfiles.tree.TreeLayout} before arranging the {@link yfiles.tree.SubtreeShape SubtreeShapes}. If no pre- or post-processing is + * needed, this method may return null. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns a {@link } instance or null + * @abstract + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. + *

    + * This method is called by {@link yfiles.tree.TreeLayout} before the {@link yfiles.tree.SubtreeShape SubtreeShapes} for the children of the local root node are + * calculated. The direction specifiers are stored in the given map for all child nodes of the local root. + *

    + * @param localRoot the local root node + * @param connectorMap the map that must be used for storing the direction specifiers of the child nodes + * @abstract + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Arranges the {@link yfiles.tree.SubtreeShape SubtreeShapes} of the local root and its children and routes the edges that connect them. + *

    + * This method is the main method of the tree layout algorithm. It is called by {@link yfiles.tree.TreeLayout} in each recursion + * step to place the local root in relation to its children. Their shapes will be merged into one + * {@link yfiles.tree.SubtreeShape SubtreeShape}, which is returned by this method. + *

    + *

    + * The {@link yfiles.tree.SubtreeShape SubtreeShape} for the local root can be obtained from the nodeShapeProvider. subtreeShapeProvider contains the {@link yfiles.tree.SubtreeShape SubtreeShapes} + * assigned to the child nodes. + *

    + *

    + * Due to the order in which the tree nodes are processed, it is guaranteed that at the time of the invocation of this + * method the {@link yfiles.tree.SubtreeShape SubtreeShape} of every descendant node has already been calculated. + *

    + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the combined shape of the whole subtree + * @abstract + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + } + var INodePlacer:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A {@link yfiles.tree.IPortAssignment} places the ports of edges connecting to the same node. + *

    + * Classes implementing this interface are responsible for the assignment of the edges' ports. {@link yfiles.tree.INodePlacer} + * instances need to obey the currently set ports. + *

    + * @interface + */ + export interface IPortAssignment extends Object{ + /** + * Places the ports of edges connecting to the given node. + *

    + * This method is called by {@link yfiles.tree.TreeLayout} before the actual layout calculation takes place. It assigns both the + * single incoming edge's target port as well as all source ports of all outgoing child edges. + *

    + * @param graph the graph + * @param node the node whose adjacent edges' ports should be set + * @abstract + */ + assignPorts(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; + } + var IPortAssignment:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A {@link yfiles.tree.IProcessor} provides the possibility for each {@link yfiles.tree.INodePlacer} to prepare (and clean up) the graph + * for the children of the local root. + *

    + * It is created by {@link yfiles.tree.INodePlacer#createProcessor} and called by the {@link yfiles.tree.TreeLayout} before and after the + * actual arrangement of the nodes. + *

    + *

    + * A {@link yfiles.tree.IProcessor} may change values within the + * {@link yfiles.algorithms.IDataMap}s for its children. It can also temporarily change the graph by hiding nodes or adding dummy + * nodes. + *

    + * @interface + */ + export interface IProcessor extends Object{ + /** + * This method is called by the {@link yfiles.tree.TreeLayout} after the layout has finished. + *

    + * It can be used for cleanup tasks. + *

    + *

    + * Changes on the graph structure that have been made in {@link yfiles.tree.IProcessor#preProcess} can be undone here. + *

    + * @abstract + */ + postProcess():void; + /** + * Performs preparations for the actual tree layout in a pre-processing step. + *

    + * This method is called by {@link yfiles.tree.TreeLayout} before the {@link yfiles.tree.INodePlacer}s are called recursively. A {@link yfiles.tree.IProcessor} + * may change some settings within this method. This can be used for specifying values for the children of the local root, + * manipulate the graph structure or do anything else that needs to be done. + *

    + * @param nodePlacerDataProvider the map that stores a {@link } instance for each node + * @param portAssignmentDataProvider The map that stores a {@link } instance for each node + * @param childComparatorProvider the map that stores a {@link } instance for each node + * @abstract + */ + preProcess(nodePlacerDataProvider:yfiles.algorithms.IDataMap,portAssignmentDataProvider:yfiles.algorithms.IDataMap,childComparatorProvider:yfiles.algorithms.IDataMap):void; + } + var IProcessor:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A {@link yfiles.tree.LayeredNodePlacer} arranges the nodes of a subtree respecting layers. + *

    + * Layout Style Nodes that have the same depth in the tree will be placed in the same horizontal layer. They will be vertically + * {@link yfiles.tree.LayeredNodePlacer#verticalAlignment aligned}. {@graph {"ann":{"s":[30,30],"d":1},"n":[[245.52,0],[69.46,77.5],[7.5,162.5],[181.42,240,45,45],[57.5,155,45,45],[0,240,45,45],[246.42,77.5],[406.58,70,45,45],[181.42,155,45,45],[246.42,155,45,45],[375.88,247.5],[7.5,332.5],[122.5,158.04,38.92,38.92],[409.62,158.04,38.92,38.92],[311.42,162.5],[65,247.5],[443.38,243.04,38.92,38.92],[138.92,332.5],[338.92,325,45,45],[311.42,247.5],[403.92,328.04,38.92,38.92],[188.92,332.5],[238.92,332.5]],"e":[[0,1,[260.52,42,84.46,42]],[1,2,[84.46,127,22.5,127]],[1,4,[84.46,127,80,127]],[2,5],[0,6,[260.52,42,261.42,42]],[0,7,[260.52,42,429.08,42]],[6,8,[261.42,127,203.92,127]],[8,3],[6,9,[261.42,127,268.92,127]],[5,11],[1,12,[84.46,127,141.96,127]],[7,13],[13,10,[429.08,212,390.88,212]],[6,14,[261.42,127,326.42,127]],[4,15],[13,16,[429.08,212,462.83,212]],[3,17,[203.92,297,153.92,297]],[10,18,[390.88,297,361.42,297]],[14,19],[10,20,[390.88,297,423.38,297]],[3,21],[3,22,[203.92,297,253.92,297]]],"vp":[0.0,0.0,483.0,370.0]}} + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface LayeredNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class LayeredNodePlacer { + /** + * Creates a new {@link yfiles.tree.LayeredNodePlacer} instance whose direction is specified by the given modification matrix. + *

    + * The given ID identifies different {@link yfiles.tree.LayeredNodePlacer} instances that share the same layer heights. + *

    + * @param modificationMatrix the transformation matrix for this {@link } + * @param id the {@link } ID + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,id:Object); + /** + * Creates a new {@link yfiles.tree.LayeredNodePlacer} instance with the default settings. + */ + constructor(); + /** + * Gets or sets whether or not the layering is done dendrogram-like. + *

    + * When enabled, leaves are placed in the same layer and remaining tree nodes are assigned to a layer as close to their + * children as possible. + *

    + * @type {boolean} + */ + dendrogramStyle:boolean; + /** + * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. + * @type {yfiles.tree.RootNodeAlignment} + */ + rootAlignment:yfiles.tree.RootNodeAlignment; + /** + * Gets or sets the relative vertical alignment of nodes within their respective layers. + *

    + * A value of 0 means that nodes are top-aligned; a value of 0.5 means that nodes are center-aligned; a value of 1 means + * that nodes are bottom-aligned; + *

    + *

    + * Values for a valid vertical alignment are in the range [0..1]. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified alignment is outside [0..1] + * @type {number} + */ + verticalAlignment:number; + /** + * Gets the ID of this {@link yfiles.tree.LayeredNodePlacer}. + *

    + * The ID is used for identifying + * {@link yfiles.tree.LayeredNodePlacer}s that share information about the layer height. Using different IDs allows aligned layouts + * within different subtrees. + *

    + * @type {Object} + */ + id:Object; + /** + * Gets or sets the distance between two adjacent layers. + *

    + * The spacing needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified spacing is negative + * @type {number} + */ + layerSpacing:number; + /** + * Gets or sets the routing style for the edges in the subtree. + * @throws {Stubs.Exceptions.ArgumentError} if the specified routing style specifier is unknown + * @type {yfiles.tree.LayeredRoutingStyle} + */ + routingStyle:yfiles.tree.LayeredRoutingStyle; + /** + * Gets or sets the vertical bus alignment for orthogonally routed edges. + *

    + * The bus alignment determines the relative position of an edge bus in between two subsequent layers of nodes. + *

    + *

    + * Values for a valid vertical alignment are in the range [0..1], such that: + *

    + *
      + *
    • A value of 0.0 places the bus at the top, right below the parent node.
    • + *
    • A value of 0.5 places the bus in the middle between parent and child nodes.
    • + *
    • A value of 1.0 places the bus at the bottom, right above the child nodes.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if the specified alignment is outside [0..1] + * @type {number} + */ + busAlignment:number; + /** + * Gets or sets whether or not straight edges are extended to avoid label overlaps. + *

    + * If enabled, polyline connectors between the parent and its children are added to the according subtree shape. Node or + * edge labels will not be crossed. + *

    + * @type {boolean} + */ + polylineLabeling:boolean; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.tree.LeafNodePlacer} creates a {@link yfiles.tree.SubtreeShape SubtreeShape} for a leaf node and routes its incoming edge at the target side. + * @class + * @implements {yfiles.tree.INodePlacer} + */ + export interface LeafNodePlacer extends Object,yfiles.tree.INodePlacer{} + export class LeafNodePlacer { + /** + * Creates a new {@link yfiles.tree.LeafNodePlacer} instance with default settings. + */ + constructor(); + /** + * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. + *

    + * This implementation returns null. Hence, no pre- or post-processing is done. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns null + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Does nothing because leaf nodes don't have children so there are no child connectors. + * @param localRoot the local root node + * @param connectorMap the map that must be used for storing the direction specifiers of the child nodes + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Creates a {@link yfiles.tree.SubtreeShape} for the local root node (a leaf node in this case) and adds target points to the + * incoming edge. + *

    + * The incoming edge is routed according to possibly assigned {@link yfiles.layout.PortConstraint}s. + *

    + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the {@link } of the leaf node including the connector + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.LeftRightNodePlacer} arranges the children in a subtree on the left and the right of a vertical bus. + *

    + * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[35,0],[0,50],[70,50],[0,100],[70,100],[0,150],[70,150],[0,200],[70,200],[35,250]],"e":[[0,1,[50,65]],[0,2,[50,65]],[0,3,[50,115]],[0,4,[50,115]],[0,5,[50,165]],[0,6,[50,165]],[0,7,[50,215]],[0,8,[50,215]],[0,9]],"vp":[0.0,0.0,100.0,280.0]}} + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface LeftRightNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class LeftRightNodePlacer { + /** + * Creates a new {@link yfiles.tree.LeftRightNodePlacer} instance using the given modification matrix. + * @param modificationMatrix the transformation matrix for this {@link } + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new {@link yfiles.tree.LeftRightNodePlacer} instance with default settings. + */ + constructor(); + /** + * Creates a special {@link yfiles.algorithms.IDataProvider} that determines whether a given node is placed left or right of the + * parent node. + *

    + * This {@link yfiles.algorithms.IDataProvider} can be registered with the graph with key + * {@link yfiles.tree.LeftRightNodePlacer#LEFT_RIGHT_DP_KEY}. It calculates the side with respect to the initial coordinates of the + * nodes in the graph, considering the orientation of the subtree. + *

    + *

    + * If a node is assigned to the left side, this {@link yfiles.algorithms.IDataProvider} will return true. For the right side, it + * will return false. + *

    + * @param nodePlacerMap a {@link } containing the corresponding {@link }s for the node + * @returns + * @static + */ + static createLeftRightDataProvider(nodePlacerMap:yfiles.algorithms.IDataProvider):yfiles.algorithms.IDataProvider; + /** + * Data provider key for assigning nodes to the left or the right side of the bus + *

    + * If no {@link yfiles.algorithms.IDataProvider} is specified using this key, the nodes will be placed alternating from left to + * right. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static LEFT_RIGHT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets the horizontal distance between nodes or subtrees. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + horizontalDistance:number; + /** + * Gets or sets the vertical distance between nodes or subtrees. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + verticalDistance:number; + /** + * Sets a uniform horizontal and vertical spacing between subtrees. + *

    + * This method sets the given distance value for the {@link yfiles.tree.LeftRightNodePlacer#horizontalDistance horizontal spacing} and for the {@link yfiles.tree.LeftRightNodePlacer#verticalDistance vertical spacing}. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified spacing value is negative + * @see yfiles.tree.LeftRightNodePlacer#horizontalDistance + * @see yfiles.tree.LeftRightNodePlacer#verticalDistance + * @type {number} + */ + spacing:number; + /** + * Gets or sets whether or not the last child is placed centered, aligned with the bus and below the other child nodes. + *

    + * When enabled, the last child will always be centered independent of the number of siblings. + *

    + * @type {boolean} + */ + placeLastOnBottom:boolean; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.MultiParentDescriptor} provides style information for multi-parent structures. + *

    + * This class is used by {@link yfiles.tree.TreeLayout} to determine the desired layout of nodes that constitute a multi-parent + * structure. All nodes of such a structure are placed side by side and the incident edges are routed over common points + * for incoming edges and for outgoing edges. + *

    + *

    + * {@graph {"ann":{"s":[40,40],"d":1},"n":[[411.25,0],[682.5,85],[210,155],[612.5,165],[35,225],[577.5,235],[385,320.5],[682.5,155,40,60],[70,305],[210,85],[0,295,40,60],[0,385],[210,225],[700,320.5],[175,295],[245,295],[315,225],[752.5,165],[420,405.5],[647.5,235],[752.5,235],[770,406],[140,380.5,40,60],[210,390.5],[315,295,40,60],[490,405.5],[175,485.5],[455,320.5],[481.25,0],[700,406],[560,406],[630,406],[560,491],[630,491],[525,320.5],[280,380.5,40,60],[70,390.5]],"e":[[0,1,[431.25,55.5,466.25,55.5,466.25,70,702.5,70]],[1,3,[702.5,140,632.5,140]],[2,4,[230,210,55,210]],[3,5,[632.5,220,597.5,220]],[5,6,[597.5,290,475,290,475,305,405,305]],[1,7],[4,8,[55,280,90,280]],[0,9,[431.25,55.5,466.25,55.5,466.25,70,230,70]],[9,2],[4,10,[55,280,20,280]],[10,11],[2,12],[5,13,[597.5,290,720,290]],[12,14,[230,280,195,280]],[12,15,[230,280,265,280]],[2,16,[230,210,335,210]],[1,17,[702.5,140,772.5,140]],[6,18,[405,376,475,376,475,390.5,440,390.5]],[3,19,[632.5,220,667.5,220]],[17,20],[13,21,[720,375.5,790,375.5]],[14,22,[195,365,160,365]],[14,23,[195,365,230,365]],[16,24],[6,25,[405,376,475,376,475,390.5,510,390.5]],[22,26,[160,456,195,456]],[23,26,[230,456,195,456]],[5,27,[597.5,290,475,290]],[27,18,[475,390.5,440,390.5]],[27,25,[475,390.5,510,390.5]],[28,9,[501.25,55.5,466.25,55.5,466.25,70,230,70]],[28,1,[501.25,55.5,466.25,55.5,466.25,70,702.5,70]],[13,29],[13,30,[720,375.5,615,375.5,615,390.5,580,390.5]],[13,31,[720,375.5,615,375.5,615,390.5,650,390.5]],[30,32,[580,461.5,615,461.5,615,476,580,476]],[31,32,[650,461.5,615,461.5,615,476,580,476]],[30,33,[580,461.5,615,461.5,615,476,650,476]],[31,33,[650,461.5,615,461.5,615,476,650,476]],[5,34,[597.5,290,475,290,475,305,545,305]],[34,18,[545,376,475,376,475,390.5,440,390.5]],[34,25,[545,376,475,376,475,390.5,510,390.5]],[14,35,[195,365,300,365]],[35,26,[300,456,195,456]],[14,36,[195,365,90,365]],[36,26,[90,456,195,456]]],"vp":[0.0,0.0,810.0,531.0]}} + *

    + *

    + * A tree graph containing multi-parent structures + *

    + * @see yfiles.tree.TreeLayout#MULTI_PARENT_DESCRIPTOR_DP_KEY + * @class + */ + export interface MultiParentDescriptor extends Object{} + export class MultiParentDescriptor { + /** + * Creates a new {@link yfiles.tree.MultiParentDescriptor} instance with default settings. + */ + constructor(); + /** + * Gets or sets the minimum distance between two nodes belonging to the same multi-parent structure. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given node distance is negative + * @type {number} + */ + minimumNodeDistance:number; + /** + * Gets or sets the minimum distance between the nodes of a multi-parent structure and the bus connecting these nodes. + *

    + * In case the edge style is not orthogonal, the bus only consists of a common point. + *

    + *

    + * The minimum distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given bus distance is negative + * @type {number} + */ + minimumBusDistance:number; + /** + * Gets or sets the relative vertical alignment of nodes belonging to the same multi-parent structure. + *

    + * A value of 0 means that nodes are top-aligned; a value of 1 means that nodes are bottom-aligned; a value of 0.5 means + * that nodes are center-aligned. + *

    + *

    + * Values outside the interval [0,1] will result in a compact node placement with unaligned nodes, especially when labels + * are considered. + *

    + * @type {number} + */ + verticalAlignment:number; + /** + * Gets or sets the routing style for edges that connect to nodes which constitute a multi-parent structure. + * @throws {Stubs.Exceptions.ArgumentError} if the given routing style is unknown + * @type {yfiles.tree.MultiParentRoutingStyle} + */ + edgeStyle:yfiles.tree.MultiParentRoutingStyle; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.NodeOrderComparer} compares edges according to a specified order. + *

    + * It obtains the order from a {@link yfiles.algorithms.IDataProvider} registered with the graph with key + * {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY}. + *

    + *

    + * Various tree layout algorithms can use this {@link yfiles.collections.IComparer.} to influence the resulting layout. To achieve this, use this comparator and + * assign it to the comparator property of the layout algorithm classes. + *

    + * @see yfiles.tree.ClassicTreeLayout#comparer + * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer + * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY + * @see yfiles.tree.BalloonLayout#comparer + * @see yfiles.tree.AspectRatioTreeLayout#comparer + * @see yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY + * @class + * @implements {yfiles.collections.IComparer.} + */ + export interface NodeOrderComparer extends Object,yfiles.collections.IComparer{} + export class NodeOrderComparer { + /** + * Creates a new {@link yfiles.tree.NodeOrderComparer} instance. + */ + constructor(); + /** + * Compares two edges according to their index in the order specified using a {@link yfiles.algorithms.IDataProvider}. + *

    + * Target nodes for which the {@link yfiles.algorithms.IDataProvider} registered with {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY} + * returns null or an {@link Object} that does not implement {@link yfiles.lang.IComparable} are treated as being smaller than other target + * nodes. + *

    + * @param edge1 the first edge + * @param edge2 the second edge + * @returns + * @see yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY + */ + compare(edge1:Object,edge2:Object):number; + /** + * Data provider key for registering an order for each node in the graph + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static NODE_ORDER_COMPARABLE_DP_KEY:yfiles.algorithms.NodeDpKey; + static $class:yfiles.lang.Class; + } + /** + * Abstract base class for implementations of the {@link yfiles.tree.INodePlacer} interface. + *

    + * This class provides convenience methods for sub-tasks that are often used during the arrangement of a local root and its + * children. It also offers prepared implementations for the methods of the {@link yfiles.tree.INodePlacer} interface. + *

    + *

    + * Subclasses just need to override the following two abstract methods: {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} and + * {@link yfiles.tree.NodePlacerBase#determineChildConnectors}. + *

    + * @class + * @implements {yfiles.tree.INodePlacer} + * @implements {yfiles.lang.ICloneable} + */ + export interface NodePlacerBase extends Object,yfiles.tree.INodePlacer,yfiles.lang.ICloneable{} + export class NodePlacerBase { + /** + * Creates a new instance of {@link yfiles.tree.NodePlacerBase}. + */ + constructor(); + /** + * Returns a clone of this {@link yfiles.tree.INodePlacer} instance. + * @returns an exact copy of this {@link } instance + */ + clone():Object; + /** + * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. + *

    + * This implementation returns null. Hence, no pre- or post-processing will be done. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns null + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Determines a connector direction for the given child node. + *

    + * This method is used in {@link yfiles.tree.NodePlacerBase#determineChildConnectors} and must be implemented by subclasses. + *

    + * @param child the child node + * @returns a direction specifier as defined in the {@link } interface + * @protected + * @abstract + */ + determineChildConnector(child:yfiles.algorithms.Node):yfiles.tree.ParentConnectorDirection; + /** + * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. + *

    + * This implementation uses {@link yfiles.tree.NodePlacerBase#determineChildConnector} to retrieve the direction for the + * connectors. + *

    + * @param localRoot the local root node + * @param connectorMap the map that must be used for storing the direction specifiers of the child nodes + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Returns the {@link yfiles.tree.SubtreeShape} for the given node. + *

    + * This is a convenience method that retrieves a {@link yfiles.tree.SubtreeShape} for a single node from the corresponding + * {@link yfiles.algorithms.IDataProvider}. + *

    + *

    + * This method is used in {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} for retrieving the {@link yfiles.tree.SubtreeShape}s for + * the local root nodes. It may be overridden to return a custom implementation of {@link yfiles.tree.SubtreeShape}. + *

    + * @param node the node + * @returns the {@link } for the given node + * @protected + */ + getNodeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; + /** + * Returns the {@link yfiles.tree.SubtreeShape} for the subtree rooted at the given node. + *

    + * This is a convenience method that retrieves a {@link yfiles.tree.SubtreeShape} of a complete subtree from the corresponding + * {@link yfiles.algorithms.IDataProvider}. + *

    + *

    + * This method is used in {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} for retrieving the {@link yfiles.tree.SubtreeShape}s for + * the subtrees that are arranged. It may be overridden to return a custom implementation of {@link yfiles.tree.SubtreeShape}. + *

    + * @param node the local root node + * @returns the {@link } of the subtree rooted at the given local root node + * @protected + */ + getSubtreeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; + /** + * Initializes the local data structures and then delegates the work to the abstract variant of this method + * ({@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode}) + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the merged {@link } for the subtree rooted at the local root node + * @see yfiles.tree.NodePlacerBase#placeSubtreeOfNode + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + /** + * Arranges the local root relative to the {@link yfiles.tree.SubtreeShape} of its children. + *

    + * This is the main method that must be implemented by subclasses. It is called by + * {@link yfiles.tree.NodePlacerBase#placeSubtree}. + *

    + * @param localRoot the local root node + * @param parentConnectorDirection the direction of the connector + * @returns a {@link } instance that describes the shape of the whole subtree rooted at the given local root + * @protected + * @abstract + */ + placeSubtreeOfNode(localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + /** + * The graph instance this class is working on. + * @protected + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.tree.RootNodeAlignment} describes how a local root node is arranged in relation to its children. + *

    + * The actual placement depends on the orientation of the subtree rooted at the current local root node. All descriptions + * of the provided alignments refer to the top-to-bottom orientation described by + * {@link yfiles.tree.RotatableNodePlacerMatrix#DEFAULT}. In this case, the subtrees are placed below the local root and the local + * root is aligned horizontally above them. + *

    + * @class + */ + export interface RootNodeAlignment extends Object{} + export class RootNodeAlignment { + /** + * Calculates the common bounds of the given subtree shapes. + *

    + * This method can be used when placing the local root above its subtrees in method + * {@link yfiles.tree.RootNodeAlignment#placeParentHorizontal}. + *

    + * @param shapes a list of rotated subtree shapes + * @returns the rectangle describing the bounds containing all given shapes + * @protected + * @static + */ + static getBounds(shapes:yfiles.collections.IList):yfiles.algorithms.Rectangle2D; + /** + * Moves the shape of the local root to a suitable position relative to the children's shapes. + *

    + * The movement should only be done on the x-axis (horizontally). + *

    + *

    + * This method is called by {@link yfiles.tree.RotatableNodePlacerBase}s when they {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode place the subtrees}. + *

    + * @param rootShape the shape of the local root node that will be moved + * @param shapes a list of rotated subtree shapes, representing the shapes of the child nodes + * @param shapeBounds accumulated bounds of the shapes of all child nodes + * @param spacing the spacing value that should be used + * @protected + * @abstract + */ + placeParentHorizontal(rootShape:yfiles.tree.RotatedSubtreeShape,shapes:yfiles.collections.IList,shapeBounds:yfiles.algorithms.Rectangle2D,spacing:number):void; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} at the center of the subtrees. + *

    + * The root node is placed centered above its whole subgraph. To determine the alignment, only {@link yfiles.layout.INodeLayout}s + * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static CENTER:yfiles.tree.RootNodeAlignment; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} at the median child node. + *

    + * The root node is placed above the median of its children. To determine the alignment, only {@link yfiles.layout.INodeLayout}s + * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static MEDIAN:yfiles.tree.RootNodeAlignment; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} left of the children. + *

    + * The local root node leaves a distance specified by the given spacing to the leftmost child. To determine the alignment, + * only {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in + * {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static LEADING:yfiles.tree.RootNodeAlignment; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} right of the children. + *

    + * The root node leaves a distance specified by the given spacing to the rightmost child. To determine the alignment, only + * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in + * {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static TRAILING:yfiles.tree.RootNodeAlignment; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} at the left side. + *

    + * The root node is placed left aligned with its leftmost child. To determine the alignment, only + * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in + * {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static LEFT:yfiles.tree.RootNodeAlignment; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} at the right side. + *

    + * The root node is placed right aligned with its rightmost child. To determine the alignment, only + * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in + * {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static RIGHT:yfiles.tree.RootNodeAlignment; + /** + * Horizontal alignment at the center of the children. + *

    + * The root node is placed centered over its direct children. To determine the alignment, only {@link yfiles.layout.INodeLayout}s + * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static CENTER_OVER_CHILDREN:yfiles.tree.RootNodeAlignment; + /** + * An array containing all supported {@link yfiles.tree.RootNodeAlignment}s. + * @const + * @static + * @type {Array.} + */ + static ALL:yfiles.tree.RootNodeAlignment[]; + static $class:yfiles.lang.Class; + } + /** + * A matrix describes the rotation of the subtree handled by {@link yfiles.tree.RotatableNodePlacerBase}. + *

    + * Subtrees may be rotated or mirrored. Also, matrices offering a combination of rotation and mirroring are provided. + *

    + * @class + */ + export interface RotatableNodePlacerMatrix extends Object{} + export class RotatableNodePlacerMatrix { + /** + * Compares the values of the current {@link yfiles.tree.RotatableNodePlacerMatrix} with the values of the given + * {@link yfiles.tree.RotatableNodePlacerMatrix}. + * @param other the matrix + * @returns true if this matrix and the given other matrix contain the same values, false otherwise + */ + equalValues(other:yfiles.tree.RotatableNodePlacerMatrix):boolean; + /** + * Multiplies this {@link yfiles.tree.RotatableNodePlacerMatrix} with the given other {@link yfiles.tree.RotatableNodePlacerMatrix}. + * @param other the other matrix + * @returns the product of both matrices + */ + multiply(other:yfiles.tree.RotatableNodePlacerMatrix):yfiles.tree.RotatableNodePlacerMatrix; + /** + * The identity matrix which does not apply any rotation or mirroring. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static DEFAULT:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a counter-clockwise rotation by 90 degrees. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static ROT90:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a rotation by 180 degrees. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static ROT180:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a counter-clockwise rotation by 270 degrees. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static ROT270:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a horizontal mirroring. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static MIR_HOR:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a vertical mirroring. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static MIR_VERT:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a horizontal mirroring and a counter-clockwise rotation by 90 degrees. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static MIR_HOR_ROT90:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a vertical mirroring and a counter-clockwise rotation by 90 degrees. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static MIR_VERT_ROT90:yfiles.tree.RotatableNodePlacerMatrix; + static $class:yfiles.lang.Class; + } + /** + * Abstract base class for {@link yfiles.tree.INodePlacer}s that support rotations of the subtrees. + *

    + * The direction specified in this {@link yfiles.tree.RotatableNodePlacerBase} (defined by a + * {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix transformation matrix}) rotates the subtree that is placed. This is the final direction of this subtree. Rotations are + * not accumulated. + *

    + *

    + * {@link yfiles.tree.INodePlacer}s of this type will only implement the default direction (i.e. top-to-bottom). The other + * directions are calculated using the specified modification {@link yfiles.tree.RotatableNodePlacerMatrix}. The direction used by + * the implementing + * {@link yfiles.tree.INodePlacer}s is called the model direction while the actual direction in the graph is the real direction. + *

    + *

    + * Note that using rotatable {@link yfiles.tree.INodePlacer}s has some pitfalls. Calculations must be aware of the rotations. + * Especially operations on {@link yfiles.algorithms.BorderLine}s should not be called directly (e.g. + * {@link yfiles.algorithms.BorderLine#mergeWithMin}, {@link yfiles.algorithms.BorderLine#mergeWithMax}). The corresponding methods of {@link yfiles.tree.RotatableNodePlacerBase} + * already support the different directions. + *

    + *

    + * Subclasses just need to override the following two abstract methods: {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} + * and {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors}. + *

    + * @class + * @implements {yfiles.tree.IFromSketchNodePlacer} + */ + export interface RotatableNodePlacerBase extends Object,yfiles.tree.IFromSketchNodePlacer{} + export class RotatableNodePlacerBase { + /** + * Creates a new instance of {@link yfiles.tree.RotatableNodePlacerBase} whose direction is specified by the given modification + * matrix. + * @param modificationMatrix the transformation matrix for the {@link } + * @protected + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a {@link yfiles.collections.IComparer.} for outgoing edges that takes the rotation into account. + * @returns the {@link } that considers the rotation + */ + createComparer():yfiles.collections.IComparer; + /** + * Delegates to {@link yfiles.tree.RotatableNodePlacerBase#createComparer}. + * @returns the From Sketch {@link } + * @see yfiles.tree.RotatableNodePlacerBase#createComparer + */ + createFromSketchComparer():yfiles.collections.IComparer; + /** + * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. + *

    + * This implementation returns null. Hence, no pre- or post-processing is done. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns null + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Determines a connector direction for the given child node. + *

    + * This method is called by {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors} and must be implemented by + * subclasses. Implementations can assume the default direction (top-to-bottom) for their arrangement. + *

    + * @param child the child node + * @returns a direction specifier as defined in the {@link } interface + * @protected + * @abstract + */ + determineChildConnector(child:yfiles.algorithms.Node):yfiles.tree.ParentConnectorDirection; + /** + * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. + *

    + * This implementation uses {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnector} and the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} to + * retrieve the direction for the connectors. + *

    + * @param localRoot the local root + * @param connectorMap the map that must be used for storing the direction specifiers of the child nodes + * @see yfiles.tree.RotatableNodePlacerBase#determineChildConnector + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Returns the rotated subtree shape for the given node. + *

    + * This is a convenience method that retrieves a rotated subtree shape for a single node from the corresponding + * {@link yfiles.algorithms.IDataProvider}. This shape may be modified and returned by + * {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}. + *

    + * @param node the node + * @returns the subtree shape for the given node + * @protected + */ + getNodeShape(node:yfiles.algorithms.Node):yfiles.tree.RotatedSubtreeShape; + /** + * Returns the target {@link yfiles.layout.PortConstraint} for the local root's incoming edge. + *

    + * This method translates the {@link yfiles.layout.PortConstraint} according to the rotation described by the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. + * It should be used instead of {@link yfiles.layout.PortConstraint#getTPC}. + *

    + *

    + * This method may be used in {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} to route the edges to the according + * port. It may be overridden to provide constant {@link yfiles.layout.PortConstraint}s for each node. + *

    + * @param localRoot the local root + * @returns the {@link } for the incoming edge of the local root or {@link #ANY} if no {@link } + * is assigned for that edge + * @protected + */ + getPortConstraint(localRoot:yfiles.algorithms.Node):yfiles.layout.PortConstraint; + /** + * Returns the absolute source point of the given edge depending on the rotation of this {@link yfiles.tree.INodePlacer}. + *

    + * This method translates the source point according to the rotation described by the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. It should be + * used instead of {@link yfiles.layout.LayoutGraph#getSourcePointAbs}. + *

    + *

    + * It can be used in an implementation of {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}. + *

    + * @param edge the edge whose absolute source point should be calculated + * @returns the translated absolute source point for the given edge and current modification matrix + * @protected + */ + getSourcePointAbs(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; + /** + * Returns the rotated subtree shape for the subtree rooted at the given node. + *

    + * This is a convenience method that retrieves a subtree shape of a complete subtree from the corresponding + * {@link yfiles.algorithms.IDataProvider}. + *

    + * @param node the local root node + * @returns the rotated subtree shape of the subtree rooted at the given local root node + * @protected + */ + getSubtreeShape(node:yfiles.algorithms.Node):yfiles.tree.RotatedSubtreeShape; + /** + * Initializes the local data structures and then delegates the work to the abstract variant of this method + * ({@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}). + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the merged {@link } for the subtree rooted at the local root node + * @see yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + /** + * Arranges the local root relative to the rotated subtree shapes of its children. + *

    + * This is the main method that must be implemented by subclasses. For calculations and locations subclasses should use the + * corresponding methods of {@link yfiles.tree.RotatableNodePlacerBase} which already consider the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. + *

    + * @param localRoot the local root node + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the merged subtree shape that contains the local root node and all its children + * @protected + * @abstract + */ + placeSubtreeOfNode(localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.RotatedSubtreeShape; + /** + * Translates the given real direction of the resulting layout to the model direction of this + * {@link yfiles.tree.RotatableNodePlacerBase}. + *

    + * This method is used in {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} to be able to retrieve the model direction + * for the connector + *

    + * @param realDirection the real direction + * @returns the model direction + * @throws {Stubs.Exceptions.ArgumentError} if translation for the given real direction is not implemented + * @protected + */ + translateDirectionToModel(realDirection:yfiles.tree.ParentConnectorDirection):number; + /** + * Translates the given model direction to the real direction in the resulting layout. + *

    + * This method is used in {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors} to be able to return the real + * connector direction. + *

    + * @param modelDirection the model direction + * @returns the real direction + * @throws {Stubs.Exceptions.ArgumentError} if translation for the given model direction is not implemented + * @protected + */ + translateDirectionToReal(modelDirection:yfiles.tree.ParentConnectorDirection):number; + /** + * Translates a point from the real layout direction to the model direction using the given modification matrix. + * @param modificationMatrix the modification matrix to use for the translation + * @param realWorldPoint the point with coordinates from the real world + * @returns the translated point with coordinates from the model + * @static + */ + static translatePoint(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,realWorldPoint:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * The graph instance this {@link yfiles.tree.INodePlacer} is working on. + * @protected + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + /** + * The provider of {@link yfiles.tree.SubtreeShape}s for whole subtrees. + * @protected + * @type {yfiles.algorithms.IDataProvider} + */ + subtreeShapeProvider:yfiles.algorithms.IDataProvider; + /** + * The provider of {@link yfiles.tree.SubtreeShape}s for single nodes. + * @protected + * @type {yfiles.algorithms.IDataProvider} + */ + nodeShapeProvider:yfiles.algorithms.IDataProvider; + /** + * The list containing the created children. + * @protected + * @type {yfiles.collections.IList.} + */ + createdChildren:yfiles.collections.IList; + /** + * Gets the modification matrix that defines the direction of the subtree. + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix; + /** + * Gets or sets the spacing between subtrees. + *

    + * The spacing needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given spacing is negative + * @type {number} + */ + spacing:number; + static $class:yfiles.lang.Class; + } + /** + * Decorates a SubtreeShape and provides rotated access on it. + * @class + */ + export interface RotatedSubtreeShape extends Object{} + export class RotatedSubtreeShape { + /** + * For testing purposes only + * @protected + */ + constructor(); + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.SimpleNodePlacer} arranges all children of a local root in a single row. + *

    + * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[50,50],[235,50],[370,50],[720,50],[100,100],[770,100],[285,100],[420,50],[520,50],[570,100],[670,100],[150,150],[720,150],[470,100],[335,100],[620,150],[820,150],[520,150],[185,100]],"e":[[0,1,[65,15]],[0,2,[250,15]],[0,3,[385,15]],[0,4,[735,15]],[1,5,[115,65]],[4,6,[785,65]],[2,7,[300,65]],[0,8,[435,15]],[0,9,[535,15]],[9,10,[585,65]],[9,11,[685,65]],[5,12,[165,115]],[11,13,[735,115]],[8,14,[485,65]],[2,15,[350,65]],[10,16,[635,115]],[6,17,[835,115]],[14,18,[535,115]],[1,19,[200,65]]],"vp":[0.0,0.0,850.0,180.0]}} + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface SimpleNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class SimpleNodePlacer { + /** + * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance that uses the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} and {@link yfiles.tree.SimpleNodePlacer#rootAlignment root alignment}. + * @param modificationMatrix the transformation matrix for this {@link } + * @param rootAlignment the alignment for the local root in relation to its subtrees + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,rootAlignment:yfiles.tree.RootNodeAlignment); + /** + * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance that uses the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. + * @param modificationMatrix the transformation matrix for this {@link } + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance with default settings. + */ + constructor(); + /** + * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlignment} that defines how the root node is aligned with its children and their shapes. + * @type {yfiles.tree.RootNodeAlignment} + */ + rootAlignment:yfiles.tree.RootNodeAlignment; + /** + * Gets or sets the relative vertical alignment of nodes with the same parent. + *

    + * All values between 0 and 1 result in a valid alignment. + *

    + *
      + *
    • 0 - nodes are top-aligned
    • + *
    • 0.5 - nodes are center-aligned
    • + *
    • 1 - nodes are bottom-aligned
    • + *
    + *

    + * Values outside the interval [0,1] may result in a more compact node placement with unaligned nodes, especially when + * labels are considered. + *

    + * @type {number} + */ + verticalAlignment:number; + /** + * Gets or sets whether or not a bus is created in the space between the parent and its children. + * @type {boolean} + */ + createBus:boolean; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.TreeComponentLayout} arranges tree-like subgraph structures in a mixed layout style. + *

    + * {@graph {"ann":{"s":[37.5,37.5],"d":1},"n":[[-18.75,231.25],[56.25,231.25],[131.25,231.25],[-18.75,631.25],[631.25,231.25],[631.25,631.25],[131.25,631.25],[-18.75,-18.75],[631.25,-18.75],[631.25,131.25],[631.25,56.25],[131.25,406.25],[131.25,556.25],[447.5,75,1],[560,162.5,1],[497.5,162.5,1],[391.25,343.75,1],[328.75,343.75,1],[247.5,500,1],[247.5,587.5,1],[310,500,1],[310,587.5,1],[266.25,343.75,1],[272.5,75,1],[385,162.5,1],[322.5,162.5,1],[97.5,75,1],[210,162.5,1],[147.5,162.5,1]],"e":[[0,1,18.75,-0,-18.75,-0],[1,2,18.75,-0,-18.75,-0],[0,3,-0,18.75,-0,-18.75],[2,4,18.75,-0,-18.75,-0],[4,5,-0,18.75,-0,-18.75],[5,6,-18.75,-0,18.75,-0],[6,3,-18.75,-0,18.75,-0],[0,7,-0,-18.75,-0,18.75],[7,8,18.75,-0,-18.75,-0],[4,9,-0,-18.75,-0,18.75],[8,10,-0,18.75,-0,-18.75],[10,9,-0,18.75,-0,-18.75],[11,2,-0,-18.75,-0,18.75],[11,12,-0,18.75,-0,-18.75],[6,12,-0,-18.75,-0,18.75],[7,13,18.75,12.5,0,0,[52.5,12.5,52.5,50,466.25,50]],[13,14,-13.75,0,-0,-0,[452.5,137.5,578.75,137.5]],[13,15,-13.75,0,-0,-0,[452.5,137.5,516.25,137.5]],[2,16,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,410,318.75]],[2,17,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,347.5,318.75]],[11,18,18.75,-0,0,0,[202.5,425,202.5,475,266.25,475]],[11,19,18.75,-0,0,0,[202.5,425,202.5,562.5,266.25,562.5]],[11,20,18.75,-0,0,0,[202.5,425,202.5,475,328.75,475]],[11,21,18.75,-0,0,0,[202.5,425,202.5,562.5,328.75,562.5]],[2,22,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,285,318.75]],[7,23,18.75,12.5,0,0,[52.5,12.5,52.5,50,291.25,50]],[23,24,-13.75,0,-0,-0,[277.5,137.5,403.75,137.5]],[23,25,-13.75,0,-0,-0,[277.5,137.5,341.25,137.5]],[7,26,18.75,12.5,0,0,[52.5,12.5,52.5,50,116.25,50]],[26,27,-13.75,0,-0,-0,[102.5,137.5,228.75,137.5]],[26,28,-13.75,0,-0,-0,[102.5,137.5,166.25,137.5]]],"vp":[-19.0,-19.0,688.0,688.0]}} + *

    + *

    + * The tree components are marked + *

    + * @class + * @implements {yfiles.layout.ILayoutStage} + */ + export interface TreeComponentLayout extends Object,yfiles.layout.ILayoutStage{} + export class TreeComponentLayout { + /** + * Creates a new {@link yfiles.tree.TreeComponentLayout} instance using the specified layouter for arranging the subtrees. + * @param treeCoreLayouter the layout algorithm used for arranging the tree components + * @throws {Stubs.Exceptions.ArgumentError} if the specified layout algorithm is null + */ + constructor(treeCoreLayouter:yfiles.layout.ILayoutAlgorithm); + /** + * Finds the tree components inside the given graph and applies a {@link yfiles.tree.TreeComponentLayout#treeComponentCoreLayout tree layout} to them. + * @param graph the input graph + */ + applyLayout(graph:yfiles.layout.LayoutGraph):void; + /** + * Delegates the layout calculation to the {@link yfiles.tree.TreeComponentLayout#coreLayout core layout algorithm} and handles the dummy nodes. + *

    + * The dummy nodes are marked using the given {@link yfiles.algorithms.IDataProvider}. + *

    + *

    + * This implementation just registers the dummy node {@link yfiles.algorithms.IDataProvider} with the graph with key + * {@link yfiles.tree.TreeComponentLayout#DUMMY_NODE_DP_KEY}, executes the core layout algorithm and finally removes the data + * provider again. + *

    + *

    + * This method is called by {@link yfiles.tree.TreeComponentLayout#applyLayout} to invoke the core layout algorithm. It may be + * overridden to customize the handling of the dummy nodes. + *

    + * @param graph the input graph + * @param dummyDp the {@link } which marks the dummy nodes + * @protected + */ + applyLayoutUsingDummies(graph:yfiles.layout.LayoutGraph,dummyDp:yfiles.algorithms.IDataProvider):void; + /** + * Data provider key for identifying dummy nodes during the layout calculation + *

    + * This {@link yfiles.algorithms.IDataProvider} is registered and also removed in + * {@link yfiles.tree.TreeComponentLayout#applyLayoutUsingDummies}. + *

    + * @see yfiles.tree.TreeComponentLayout#applyLayoutUsingDummies + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static DUMMY_NODE_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * + * @type {yfiles.layout.ILayoutAlgorithm} + */ + coreLayout:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the layout algorithm that is applied to tree components. + * @type {yfiles.layout.ILayoutAlgorithm} + */ + treeComponentCoreLayout:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets whether or not tree component arrangement is improved by changing the orientation of components. + * @type {boolean} + */ + optimizeOrientation:boolean; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.tree.SubtreeShape} represents the position and the borders of a subtree. + *

    + * {@link yfiles.tree.INodePlacer}s will move {@link yfiles.tree.SubtreeShape}s and use the borders to calculate distances between the + * subtrees. When two subtrees are placed in relation to their common root, their + * {@link yfiles.tree.SubtreeShape}s are merged to represent the new subtree. + *

    + *

    + * The borders on each side of the {@link yfiles.tree.SubtreeShape} are modeled with + * {@link yfiles.algorithms.BorderLine}s. The resulting area includes the borders of each node and edge in the corresponding + * subtree. It can also contain the bounds of labels belonging to those nodes and edges. + *

    + *

    + * The {@link yfiles.tree.SubtreeShape} also describes a connector defining the location to which the edge from its parent is + * attached. It is possible to add some bends (target points) at the end of this edge and include them in the + * {@link yfiles.tree.SubtreeShape}. During layout calculation, the last target point is the connection point for the edge. + *

    + * @see yfiles.tree.SubtreeShape#getBorderLine + * @see yfiles.tree.SubtreeShape#connectorX + * @see yfiles.tree.SubtreeShape#connectorY + * @see yfiles.tree.SubtreeShape#addBoundsToShape + * @see yfiles.tree.SubtreeShape#addTargetPoint + * @class + * @final + */ + export interface SubtreeShape extends Object{} + export class SubtreeShape { + /** + * Extends this {@link yfiles.tree.SubtreeShape} instance by the given rectangle. + *

    + * The border lines are updated with this segment. + *

    + * @param x the x-coordinate of the upper-left corner of the rectangle + * @param y the y-coordinate of the upper-left corner of the rectangle + * @param width the width of the rectangle + * @param height the height of the rectangle + * @see yfiles.tree.SubtreeShape#getBorderLine + */ + addBoundsToShape(x:number,y:number,width:number,height:number):void; + /** + * Adds all edge segments of the given edge to this {@link yfiles.tree.SubtreeShape} instance. + *

    + * The border lines are updated. + *

    + * @param graph the input graph + * @param edge the given edge + * @see yfiles.tree.SubtreeShape#getBorderLine + * @see yfiles.tree.SubtreeShape#addLineSegment + */ + addEdgeSegments(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; + /** + * Extends this {@link yfiles.tree.SubtreeShape} instance by the given segment. + *

    + * The border lines are updated with this segment. + *

    + * @param x1 the x-coordinate of the first point of the segment + * @param y1 the y-coordinate of the first point of the segment + * @param x2 the x-coordinate of the second point of the segment + * @param y2 the y-coordinate of the second point of the segment + * @see yfiles.tree.SubtreeShape#getBorderLine + * @see yfiles.tree.SubtreeShape#addEdgeSegments + * @see yfiles.tree.SubtreeShape#updateConnectorShape + */ + addLineSegment(x1:number,y1:number,x2:number,y2:number):void; + /** + * Adds another point to the connector. + *

    + * The points will appear as bend of the incoming edge. Points are added in reverse direction of the edge. Hence, the last + * target point is further away from the target node than the points before. + *

    + * @param x the current x-coordinate of the point + * @param y the current y-coordinate of the point + */ + addTargetPoint(x:number,y:number):void; + /** + * Appends all target points that have previously been added to this shape to the given {@link yfiles.layout.IEdgeLayout} + * instance. + *

    + * This method is used by {@link yfiles.tree.INodePlacer} instances for the final edge paths. + *

    + * @param edgeLayout the {@link } that will be modified + * @see yfiles.tree.SubtreeShape#addTargetPoint + */ + appendTargetPoints(edgeLayout:yfiles.layout.IEdgeLayout):void; + /** + * Copies the state of this {@link yfiles.tree.SubtreeShape} instance to the given shape applying a modification matrix. + * @param toShape the given shape that gets the assigned values + * @param modificationMatrix the matrix that may add geometrical modifications + */ + assignValuesTo(toShape:yfiles.tree.SubtreeShape,modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix):void; + /** + * Creates a clone of this {@link yfiles.tree.SubtreeShape} instance, modifying it using the provided modification matrix. + * @param matrix the matrix that defines the modification for the new instance + * @returns the clone of this {@link } instance + * @see yfiles.tree.RotatableNodePlacerMatrix#DEFAULT + */ + createCopy(matrix:yfiles.tree.RotatableNodePlacerMatrix):yfiles.tree.SubtreeShape; + /** + * Returns the {@link yfiles.algorithms.BorderLine} instance that describes the {@link yfiles.tree.SubtreeShape} at the given side. + * @param index one of the predefined borderline directions + * @returns the {@link } instance for the given side + * @throws {Stubs.Exceptions.ArgumentError} if the given index is invalid + */ + getBorderLine(index:number):yfiles.algorithms.BorderLine; + /** + * Merges the given {@link yfiles.tree.SubtreeShape} instance with this {@link yfiles.tree.SubtreeShape} instance. + *

    + * The border lines are updated. + *

    + * @param other the {@link } to be merged with this {@link } + */ + mergeWith(other:yfiles.tree.SubtreeShape):void; + /** + * Moves this {@link yfiles.tree.SubtreeShape} instance and its connector by the given offsets. + *

    + * Border lines are updated. + *

    + * @param dx the delta x-offset by which this shape will be moved + * @param dy the delta y-offset by which this shape will be moved + */ + move(dx:number,dy:number):void; + /** + * Adds the line segments of the connector to the bounds of this {@link yfiles.tree.SubtreeShape} instance. + *

    + * The line segments result from the target points. + *

    + * @see yfiles.tree.SubtreeShape#addTargetPoint + */ + updateConnectorShape():void; + /** + * Gets the bounds of the {@link yfiles.layout.INodeLayout} of the root node of this {@link yfiles.tree.SubtreeShape} instance. + * @type {yfiles.algorithms.Rectangle2D} + */ + coreBounds:yfiles.algorithms.Rectangle2D; + /** + * Gets the current bounds of this {@link yfiles.tree.SubtreeShape} instance. + * @type {yfiles.algorithms.Rectangle2D} + */ + bounds:yfiles.algorithms.Rectangle2D; + /** + * Gets the current x-coordinate of the connection point to which the layout algorithm connects the ingoing edge. + *

    + * The connection point can change when target points are added to the {@link yfiles.tree.SubtreeShape} instance. + *

    + * @see yfiles.tree.SubtreeShape#addTargetPoint + * @see yfiles.tree.SubtreeShape#appendTargetPoints + * @type {number} + */ + connectorX:number; + /** + * Gets the current y-coordinate of the connection point to which the layout algorithm connects the ingoing edge. + *

    + * The connection point can change when target points are added to the {@link yfiles.tree.SubtreeShape} instance. + *

    + * @see yfiles.tree.SubtreeShape#addTargetPoint + * @see yfiles.tree.SubtreeShape#appendTargetPoints + * @type {number} + */ + connectorY:number; + /** + * Gets the direction of the last connector segment. + * @type {yfiles.tree.ConnectorDirection} + */ + connectorDirection:yfiles.tree.ConnectorDirection; + /** + * Gets the current minimum x-coordinate of this {@link yfiles.tree.SubtreeShape} instance. + * @type {number} + */ + minX:number; + /** + * Gets the current minimum y-coordinate of this {@link yfiles.tree.SubtreeShape} instance. + * @type {number} + */ + minY:number; + /** + * Gets the current maximum x-coordinate of this {@link yfiles.tree.SubtreeShape} instance. + * @type {number} + */ + maxX:number; + /** + * Gets the current maximum y-coordinate of this {@link yfiles.tree.SubtreeShape} instance. + * @type {number} + */ + maxY:number; + /** + * Gets the current x-coordinate of the origin of this {@link yfiles.tree.SubtreeShape} instance. + *

    + * The origin is defined as the upper left corner of the {@link yfiles.layout.INodeLayout} of the local root of this shape. + *

    + * @type {number} + */ + originX:number; + /** + * Gets the current y-coordinate of the origin of this {@link yfiles.tree.SubtreeShape} instance. + *

    + * The origin is defined as the upper left corner of the {@link yfiles.layout.INodeLayout} of the local root of this shape. + *

    + * @type {number} + */ + originY:number; + static $class:yfiles.lang.Class; + } + /** + * This layout algorithm arranges graphs with a tree structure. + *

    + * Layout Style {@link yfiles.tree.TreeLayout} provides multiple different arrangements of trees and subtrees. It is easy to customize the + * {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY order of edges}, the {@link yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY port assignment} and the {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY arrangement of the nodes} for each subtree. + *

    + *

    + * Tree layout algorithms are commonly applied to visualize relational data and produce diagrams of high quality that are + * able to reveal possible hierarchic properties of the graph. More precisely, they find applications in dataflow analysis, + * software engineering, bioinformatics and business administration. + *

    + *

    + * {@graph {"ann": {"s": [37.5,37.5], "d": 1},"n": [[209.96,0], [71.88,77.5], [348.04,77.5], [348.04,155], [202.77,232.5], [172.5,310], [71.88,232.5], [115,387.5], [115,310], [233.04,310], [71.88,155], [348.04,232.5], [319.29,310], [376.79,310], [463.04,232.5], [491.79,310], [434.29,310], [28.75,310], [57.5,387.5], [0,387.5], [376.79,387.5], [261.79,387.5], [204.29,387.5]], "e": [[0,1], [0,2], [2,3], [3,4], [4,5], [6,8], [8,7], [4,9], [1,10], [10,6], [3,11], [11,12], [11,13], [3,14], [14,15], [14,16], [6,17], [17,18], [17,19], [13,20], [9,21], [9,22]], "vp": [0.0,0.0,530.0,425.0]}} Example graph with a layout calculated by {@link yfiles.tree.TreeLayout} using default settings {@graph {"ann": {"s": [60,30], "d": 1},"n": [[1190,0], [0,50], [160,120], [80,120], [240,120], [120,190], [200,190], [280,190], [160,310], [80,310], [240,310], [120,240], [200,240], [280,240], [330,50], [460,256.6], [410,306.6], [510,306.6], [410,356.6], [510,356.6], [460,406.6], [650,441.6], [410,491.6], [490,491.6], [570,491.6], [710,50], [790,100], [870,170], [950,170], [1030,170], [1110,170], [1190,170], [870,240], [950,240], [1030,240], [1110,240], [1190,240], [870,310], [950,310], [1030,310], [1110,310], [1190,310], [870,380], [950,380], [1030,380], [1110,380], [1190,380], [430,120], [500,170], [540,206.6], [580,170], [620,206.6], [660,170], [80,520], [160,430], [160,480], [226.6,405], [226.6,455], [160,380], [790,465], [870,430], [950,430], [950,500], [1030,465], [870,500]], "e": [[0,1,[30,15]], [1,2,[30,100,190,100]], [2,3,[190,170,110,170]], [2,4,[190,170,270,170]], [2,5,[190,170,150,170]], [2,6,[190,170,230,170]], [2,7,[190,170,310,170]], [1,8,[30,360,190,360]], [8,9,[190,290,110,290]], [8,10,[190,290,270,290]], [8,11,[190,290,150,290]], [8,12,[190,290,230,290]], [8,13,[190,290,310,290]], [0,14,[360,15]], [14,15,[360,271.6]], [15,16,[490,321.6]], [15,17,[490,321.6]], [15,18,[490,371.6]], [15,19,[490,371.6]], [15,20], [14,21,[360,456.6]], [21,22,[440,456.6]], [21,23,[520,456.6]], [21,24,[600,456.6]], [0,25,[740,15]], [25,26,[740,115]], [26,27,[860,115,860,150,900,150]], [26,28,[860,115,860,150,980,150]], [26,29,[860,115,860,150,1060,150]], [26,30,[860,115,860,150,1140,150]], [26,31,[860,115,860,150,1220,150]], [26,32,[860,115,860,220,900,220]], [26,33,[860,115,860,220,980,220]], [26,34,[860,115,860,220,1060,220]], [26,35,[860,115,860,220,1140,220]], [26,36,[860,115,860,220,1220,220]], [26,37,[860,115,860,290,900,290]], [26,38,[860,115,860,290,980,290]], [26,39,[860,115,860,290,1060,290]], [26,40,[860,115,860,290,1140,290]], [26,41,[860,115,860,290,1220,290]], [26,42,[860,115,860,360,900,360]], [26,43,[860,115,860,360,980,360]], [26,44,[860,115,860,360,1060,360]], [26,45,[860,115,860,360,1140,360]], [26,46,[860,115,860,360,1220,360]], [14,47,[360,100,410,100,410,135]], [47,48,[530,135]], [47,49,[570,135]], [47,50,[610,135]], [47,51,[650,135]], [47,52,[690,135]], [1,53,[30,535]], [53,54,[110,445]], [53,55,[110,495]], [53,56,[110,420]], [53,57,[110,470]], [53,58,[110,395]], [25,59,[740,480]], [59,60,[900,480]], [59,61,[980,480]], [59,62,[980,480]], [59,63], [59,64,[900,480]]], "vp": [0.0,0.0,1250.0,550.0]}} Tree layout using different + * {@link yfiles.tree.INodePlacer}s and rotationsConcept + *

    + *

    + * The layout algorithm starts from the leaves and continues with their parents, then with the parents of the parents and + * so on. When a node is processed, the algorithm will use the corresponding {@link yfiles.tree.INodePlacer} instance to move its + * children (along with their subtrees) to a suitable position and to route the outgoing edges of this node. Then, the next + * local root node will be processed. + *

    + *

    + * To avoid moving all nodes several times and to know the area that the subtrees occupy, the layout algorithm uses + * {@link yfiles.tree.SubtreeShape}s. These {@link yfiles.tree.SubtreeShape}s are moved and merged during layout calculation. + *

    + *

    + * Features + *

    + *

    + * Each subtree can have a different style of node placement. {@link yfiles.tree.INodePlacer}s are responsible for arranging + * subtrees and their common root node. They can be specified separately for each local root with a {@link yfiles.algorithms.IDataProvider} + * registered with the graph using key {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY}. + *

    + *

    + * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with + * key {@link yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY}. + *

    + *

    + * The layout algorithm can be configured to reserve space for node labels and place the edge labels along edges such that + * the labels won't overlap with other graph elements. Edge labels are placed according to the information stored in a {@link yfiles.layout.PreferredPlacementDescriptor} + * instance. However, the placement along the edge will only affect the order of multiple labels at the same edge. The + * algorithm will always place the labels close to the target node. + *

    + *

    + * Grouping of nodes can also be handled by this layout algorithm. It is important that a group node contains a whole + * subtree. Otherwise, the group nodes may overlap with each other or with other nodes. Furthermore, the user may specify + * minimum size constraints for each group node using {@link yfiles.algorithms.IDataProvider} key + * {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY}. + *

    + *

    + * {@link yfiles.tree.TreeLayout} supports custom sorting of the outgoing edges of a node. For example, a {@link yfiles.tree.INodePlacer} + * instance that implements {@link yfiles.tree.IFromSketchNodePlacer} provides a comparator that keeps the current order of + * siblings, allowing to extend the graph incrementally. + *

    + *

    + * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} + * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. After the + * layout calculation, the stage will reinsert the edges that were removed and route them separately. + *

    + * @class + * @extends {yfiles.layout.MultiStageLayout} + */ + export interface TreeLayout extends yfiles.layout.MultiStageLayout{} + export class TreeLayout { + /** + * Creates a new {@link yfiles.tree.TreeLayout} instance with default settings. + */ + constructor(); + /** + * Creates a {@link yfiles.tree.SubtreeShape} for the given node that consists only of the bounds of this particular node. + *

    + * It may also include node labels or {@link yfiles.layout.NodeHalo}s. + *

    + *

    + * This method may be overridden to return a custom {@link yfiles.tree.SubtreeShape} for the given node. + *

    + * @param node the given node + * @returns a {@link } instance + */ + createNodeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; + /** + * Returns a list of edges that need to be reversed in order to obtain a valid rooted and directed tree from the input + * graph. + *

    + * The root node of the tree is either a node marked by a {@link yfiles.algorithms.IDataProvider} registered with the graph with + * key {@link yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY} or is defined according to {@link yfiles.algorithms.Trees#getRoot}. + *

    + *

    + * This method is called initially to calculate a rooted tree from the input graph. It may be overridden to apply a custom + * algorithm that determines which edges need to be reversed. + *

    + * @returns a list of edges that need to be reversed + * @see yfiles.tree.TreeLayout#reverseEdges + * @protected + */ + directTree():yfiles.algorithms.EdgeList; + /** + * Returns the {@link yfiles.tree.INodePlacer} instance that is used for the placement of the local root node and the + * {@link yfiles.tree.SubtreeShape}s. + *

    + * The method may be overridden to return custom {@link yfiles.tree.INodePlacer} instances. It is possible to return a shared + * instance for multiple different nodes because the instances are not used after subsequent calls to this method. + *

    + *

    + * The current implementation returns the {@link yfiles.tree.INodePlacer} defined by the {@link yfiles.algorithms.IDataProvider} registered + * with key {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY}. It falls back to the default {@link yfiles.tree.INodePlacer} if there is no + * specific {@link yfiles.tree.INodePlacer} for the given node. + *

    + * @param localRoot the root of the local subtree + * @returns the {@link } instance that places the subtree below the given local root node + * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY + * @see yfiles.tree.TreeLayout#defaultNodePlacer + * @protected + */ + getNodePlacer(localRoot:yfiles.algorithms.Node):yfiles.tree.INodePlacer; + /** + * Returns the {@link yfiles.collections.IComparer.} instance that will sort the outgoing edges connecting to the given node. + *

    + * The {@link yfiles.collections.IComparer.} can be null in case the initial edge order shall be used. + *

    + *

    + * The method may be overridden to return custom {@link yfiles.collections.IComparer.} instances. It is possible to return a shared instance for multiple + * different nodes because the instances are not used after subsequent calls to this method. + *

    + *

    + * The current implementation returns the {@link yfiles.collections.IComparer.} defined in the {@link yfiles.algorithms.IDataProvider} registered with key + * {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY}. It falls back to the default {@link yfiles.collections.IComparer.} if there is no specific {@link yfiles.collections.IComparer.} for the given + * node. + *

    + * @param localRoot the root of the local subtree + * @returns the {@link } or null that sorts the outgoing edges of the given node + * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY + * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer + */ + getOutEdgeComparer(localRoot:yfiles.algorithms.Node):yfiles.collections.IComparer; + /** + * Returns the {@link yfiles.tree.IPortAssignment} instance that places the ports of the connecting edges of the given node. + *

    + * The method may be overridden to return customized {@link yfiles.tree.IPortAssignment} instances. It is possible to return a + * shared instance for multiple different nodes because the instances are not used after subsequent calls to this method. + *

    + *

    + * The current implementation returns the {@link yfiles.tree.IPortAssignment} defined by the {@link yfiles.algorithms.IDataProvider} + * registered with key {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY}. It falls back to the default {@link yfiles.tree.IPortAssignment} + * if there is no specific {@link yfiles.tree.IPortAssignment} for the given node. + *

    + * @param localRoot the root of the local subtree + * @returns the {@link } instance that assigns the ports of the edges at the given node + * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY + * @see yfiles.tree.TreeLayout#defaultPortAssignment + * @protected + */ + getPortAssignment(localRoot:yfiles.algorithms.Node):yfiles.tree.IPortAssignment; + /** + * Returns an array of the nodes that will be laid out. + *

    + * The given node will be considered as the root of the tree. The order of the elements ensures that no parent is processed + * before one of its successors. + *

    + *

    + * This method may be overridden to change the order in which the nodes (and their subtrees) are handled. However, it is + * important to keep the parents after the successors. Only siblings can change places. + *

    + * @param root the node to be considered as root of the tree + * @returns an array of nodes that will be laid out + * @protected + */ + getRootsArray(root:yfiles.algorithms.Node):yfiles.algorithms.Node[]; + /** + * Provides access to the {@link yfiles.tree.SubtreeShape} for the given node. + *

    + * The {@link yfiles.tree.SubtreeShape} contains information about the current extent and location of the subtree rooted at the + * node. It should only be modified during the layout of the parent node. Also, it won't be initialized before the layout + * of the corresponding subtree is calculated. + *

    + *

    + * This method updates the {@link yfiles.tree.SubtreeShape} in {@link yfiles.tree.TreeLayout#layoutRoot}. + *

    + * @param localRoot the root of the subtree + * @returns the {@link } instance if it has already been calculated, null otherwise + * @protected + */ + getSubtreeShape(localRoot:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; + /** + * Calculates the layout for the given root node and its subtrees. + *

    + * This method is invoked for each node in the tree exactly once. Thus, children are always handled before their parents. + * In this manner, the subtrees already have a layout and can be arranged with their parent. + *

    + *

    + * To retrieve the shapes of the subtrees of all children of the local root, this method uses + * {@link yfiles.tree.TreeLayout#getSubtreeShape}. + *

    + *

    + * The method may be overridden to add configuration code. + *

    + * @param localRoot the root of the subtree that whose layout is calculated + * @returns the combined {@link } of the local root node and all of its children and connecting edges + * @protected + */ + layoutRoot(localRoot:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; + /** + * Reverses the direction of given edges. + *

    + * This method will be called initially after the {@link yfiles.tree.TreeLayout#directTree} method and finally after the layout has + * been calculated. It may be overridden to additionally reverse data that depends on the direction of the edges. + *

    + * @param reversedEdges the edges that will be reversed + * @protected + */ + reverseEdges(reversedEdges:yfiles.algorithms.EdgeList):void; + /** + * Data provider key for specifying a child node placer for each node + * @see yfiles.tree.TreeLayout#defaultNodePlacer + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static NODE_PLACER_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for assigning ports to nodes + * @see yfiles.tree.TreeLayout#defaultPortAssignment + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static PORT_ASSIGNMENT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for specifying the comparator for the outgoing edges + * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.>} + */ + static OUT_EDGE_COMPARER_DP_KEY:yfiles.algorithms.NodeDpKey>; + /** + * Data provider key for defining the priority of critical edges + *

    + * The layout algorithm tries to align each node pair that is connected by a critical edge (integer value > + * 0). This feature can, for example, be used for highlighting different edge paths that are important for a user. + * Conflicts between different critical edges are always resolved in favor of the higher priority. + *

    + *

    + * Critical edges will always align the centers of source and target node, thus replacing the current root alignment of the + * {@link yfiles.tree.INodePlacer}. + *

    + *

    + * The critical edge may not be straight if subtrees are rotated or port constraints are assigned. + *

    + *

    + * This feature is only supported by the following {@link yfiles.tree.INodePlacer}s: + *

    + *
      + *
    • {@link yfiles.tree.DefaultNodePlacer}
    • + *
    • {@link yfiles.tree.SimpleNodePlacer}
    • + *
    • {@link yfiles.tree.LayeredNodePlacer}
    • + *
    • {@link yfiles.tree.DoubleLineNodePlacer}
    • + *
    • {@link yfiles.tree.DendrogramNodePlacer}
    • + *
    + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static CRITICAL_EDGE_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Data provider key for retrieving descriptors for nodes in multi-parent structures + *

    + * The returned descriptor affects the layout of the multi-parent structure. + *

    + * @see yfiles.tree.TreeLayout#multiParentAllowed + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static MULTI_PARENT_DESCRIPTOR_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for marking the node that will be used as root node of the tree + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * The input graph for which a layout is calculated. + * @protected + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + /** + * Gets or sets whether or not group nodes are handled by the layout algorithm. + * @type {boolean} + */ + groupingSupported:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. + * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled + * @see yfiles.layout.MultiStageLayout#componentLayout + * @see yfiles.layout.ComponentLayout + * @type {boolean} + */ + componentLayoutEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter + * @see yfiles.router.ParallelEdgeRouter + * @type {boolean} + */ + parallelEdgeRouterEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. + * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled + * @see yfiles.layout.MultiStageLayout#selfLoopRouter + * @see yfiles.layout.SelfLoopRouter + * @type {boolean} + */ + selfLoopRouterEnabled:boolean; + /** + * Gets a {@link yfiles.algorithms.IDataAcceptor} that can overwrite the source {@link yfiles.layout.PortConstraint port contraint} temporarily used during the layout. + *

    + * This method sets temporary source {@link yfiles.layout.PortConstraint}s, e.g., after edge reversal. It may be overridden to + * handle those {@link yfiles.layout.PortConstraint}s separately. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY + * @type {yfiles.algorithms.IDataAcceptor} + */ + sourcePortConstraintDataAcceptor:yfiles.algorithms.IDataAcceptor; + /** + * Gets a {@link yfiles.algorithms.IDataAcceptor} that can overwrite the target {@link yfiles.layout.PortConstraint port contraint} temporarily used during the layout. + *

    + * This method sets temporary target {@link yfiles.layout.PortConstraint}s, e.g., after edge reversal. It may be overridden to + * handle those {@link yfiles.layout.PortConstraint}s separately. + *

    + * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY + * @protected + * @type {yfiles.algorithms.IDataAcceptor} + */ + targetPortConstraintDataAcceptor:yfiles.algorithms.IDataAcceptor; + /** + * Gets a {@link yfiles.algorithms.IDataAcceptor} that can be used for temporarily overwriting the source group information used + * during the layout. + *

    + * This method may be overridden to handle those edge groups separately. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @protected + * @type {yfiles.algorithms.IDataAcceptor} + */ + sourceGroupDataAcceptor:yfiles.algorithms.IDataAcceptor; + /** + * Gets a {@link yfiles.algorithms.IDataAcceptor} that can be used for temporarily overwriting the target group information used + * during the layout. + *

    + * This method may be overridden to handle those edge groups separately. + *

    + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + * @protected + * @type {yfiles.algorithms.IDataAcceptor} + */ + targetGroupDataAcceptor:yfiles.algorithms.IDataAcceptor; + /** + * Gets or sets the default {@link yfiles.tree.INodePlacer} instance that arranges all subtrees that do not have a specific {@link yfiles.tree.INodePlacer} + * assigned using a {@link yfiles.algorithms.IDataProvider}. + * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.INodePlacer} is set to null + * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY + * @type {yfiles.tree.INodePlacer} + */ + defaultNodePlacer:yfiles.tree.INodePlacer; + /** + * Gets or sets the default {@link yfiles.tree.INodePlacer} instance that places the leaf nodes of the tree. + * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.INodePlacer} is set to null + * @see yfiles.tree.TreeLayout#defaultNodePlacer + * @type {yfiles.tree.INodePlacer} + */ + defaultLeafPlacer:yfiles.tree.INodePlacer; + /** + * Gets or sets the default {@link yfiles.tree.IPortAssignment} instance for all subtrees that do not have a specific {@link yfiles.tree.IPortAssignment} + * assigned using a {@link yfiles.algorithms.IDataProvider}. + * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.IPortAssignment} is set to null + * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY + * @type {yfiles.tree.IPortAssignment} + */ + defaultPortAssignment:yfiles.tree.IPortAssignment; + /** + * Gets or sets the default {@link yfiles.collections.IComparer.} instance that sorts the outgoing edges in all subtrees that do not have a specific {@link yfiles.collections.IComparer.} assigned + * using a {@link yfiles.algorithms.IDataProvider}. + * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY + * @type {yfiles.collections.IComparer.} + */ + defaultOutEdgeComparer:yfiles.collections.IComparer; + /** + * Gets or sets whether or not the layout algorithm reserves space for node labels. + *

    + * If this feature is enabled, the {@link yfiles.tree.SubtreeShape} of the nodes will also hold the shapes of its labels. + *

    + * @type {boolean} + */ + considerNodeLabels:boolean; + /** + * Gets or sets whether or not edge labels are placed by the layout algorithm. + *

    + * If this is enabled, the {@link yfiles.tree.SubtreeShape}s of the subtrees are extended by the edge labels. + *

    + *

    + * The layout algorithm uses the information of {@link yfiles.layout.PreferredPlacementDescriptor} for an edge label to determine + * the corresponding placement. However, edge labels are always placed at the target side of the edge. The placement along + * the edge only affects the order of the edge labels at the same edge. + *

    + * @type {boolean} + */ + integratedEdgeLabeling:boolean; + /** + * Gets or sets whether or not multi-parent structures are allowed for this tree layout. + *

    + * If multi-parent structures are allowed, the directed input graph may contain structures of multiple nodes that share the + * same predecessors as well as the same successors. All nodes belonging to such a structure are placed side by side and + * the incident edges are routed in a bus-style manner. + *

    + * @type {boolean} + */ + multiParentAllowed:boolean; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.TreeReductionStage} temporarily reduces general graphs to trees. + *

    + * Layout Style + *

    + *

    + * This stage prepares a non-tree graph such that it can be processed by a tree layout algorithm. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[150,0],[260,70],[210,70],[260,140],[310,210],[335,280],[75,70],[285,280],[25,70],[25,140],[75,140],[150,70],[25,210],[185,280],[175,140],[50,280],[0,280],[210,210],[235,280],[125,140]],"e":[[0,1,[165,50,275,50]],[0,2,[165,50,225,50]],[1,3],[3,4,[275,190,325,190]],[4,5,[325,260,350,260]],[0,6,[165,50,90,50]],[4,7,[325,260,300,260]],[0,8,[165,50,40,50]],[8,9],[6,10],[0,11],[9,12],[11,14,[165,120,190,120]],[12,15,[40,260,65,260]],[12,16,[40,260,15,260]],[3,17,[275,190,225,190]],[17,13,[225,260,200,260]],[17,18,[225,260,250,260]],[11,19,[165,120,140,120]],[2,11,1],[12,13,1],[17,14,1]],"vp":[0.0,0.0,365.0,310.0]}} + *

    + *

    + * The non-tree edges are marked + *

    + *

    + * Concept This {@link yfiles.layout.ILayoutStage} works in three steps: + *

    + *
      + *
    1. Remove some edges to get a tree or forest from the graph
    2. + *
    3. Invoke the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} which supports tree graph handling
    4. + *
    5. Reinsert all previously removed edges
    6. + *
    7. + * Optionally route these edges using the non-tree edge router and place their labels using the non-tree edge labeling + * algorithm. + *
    8. + *
    + *

    + * Features + *

    + *

    + * The routing of the temporarily hidden non-tree edges can be customized by specifying an {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter edge routing algorithm} for those + * edges. Similarly, the placement of edge labels of non-tree edges can be delegated to a custom + * {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm edge labeling algorithm}. As default, both custom algorithms are not specified and, thus, non-tree edges are not routed + * and edge labels not placed. + *

    + *

    + * This stage is also able to handle multi-parent structures, i.e., structures of multiple nodes that share the same + * predecessors as well as the same successors. More precisely, if the specified {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} supports + * multi-parent structures (see {@link yfiles.tree.TreeLayout#multiParentAllowed}) and option {@link yfiles.tree.TreeReductionStage#multiParentAllowed} is enabled, this stage does not hide such structures, i.e., the multi-parent + * structures are passed to the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + *

    + *

    + * Non-tree edges can also be bundled together such that their common parts are to some degree merged into a bundled part. + * The edge bundling can be specified by means of method {@link yfiles.tree.TreeReductionStage#edgeBundling}. + *

    + * @class + * @extends {yfiles.layout.LayoutStageBase} + */ + export interface TreeReductionStage extends yfiles.layout.LayoutStageBase{} + export class TreeReductionStage { + /** + * Creates a new {@link yfiles.tree.TreeReductionStage} instance with the given core layout algorithm and default settings. + * @param core the core layout algorithm + */ + constructor(core:yfiles.layout.ILayoutAlgorithm); + /** + * Creates a new {@link yfiles.tree.TreeReductionStage} instance with default settings. + */ + constructor(); + /** + * Creates a routing algorithm that routes edges as a single straight segment. + *

    + * The created instance can be used for {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter routing non-tree edges}. + *

    + * @returns an edge routing algorithm that produces straight-line edges + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter + */ + createStraightLineRouter():yfiles.layout.ILayoutAlgorithm; + /** + * Routes all edges that do not belong to the chosen spanning tree. + *

    + * This method is called by {@link yfiles.tree.TreeReductionStage#applyLayout} after the tree was arranged by the + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It may be overridden to apply custom edge routes. + *

    + * @param graph the graph containing tree and non-tree edges + * @param nonTreeEdgeMap the {@link } that marks all non-tree edges in the graph + * @protected + */ + routeNonTreeEdges(graph:yfiles.layout.LayoutGraph,nonTreeEdgeMap:yfiles.algorithms.IEdgeMap):void; + /** + * Data provider key for explicitly marking (some) edges that should not be considered for the tree + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static NON_TREE_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Gets or sets whether or not multi-parent structures (structures of multiple nodes that share the same predecessors as + * well as the same successors) are allowed. + *

    + * More precisely, if this option is enabled and the specified {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} can handle multi-parent structures + * (see {@link yfiles.tree.TreeLayout#multiParentAllowed}), this stage does not hide such structures, but the multi-parent structures are passed on to the {@link yfiles.layout.LayoutStageBase#coreLayout} core layout + * algorithm}. + *

    + * @type {boolean} + */ + multiParentAllowed:boolean; + /** + * Gets or sets the edge routing algorithm that is applied to all non-tree edges. + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeSelectionKey + * @type {yfiles.layout.ILayoutAlgorithm} + */ + nonTreeEdgeRouter:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that will be used by the {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter non-tree edge routing algorithm} + * to determine the edges that need to be routed. + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter + * @type {Object} + */ + nonTreeEdgeSelectionKey:Object; + /** + * Gets or sets the labeling algorithm that is applied to all edge labels that belong to non-tree edges. + *

    + * It is required that a suitable {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelSelectionKey edge label selection key} is set. Otherwise, the edge labeling algorithm might also place + * labels of tree edges. + *

    + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeLabelSelectionKey + * @type {yfiles.layout.ILayoutAlgorithm} + */ + nonTreeEdgeLabelingAlgorithm:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used by the {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm non-tree edge labeling algorithm} + * to determine which edge labels it should place. + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm + * @type {Object} + */ + nonTreeEdgeLabelSelectionKey:Object; + /** + * Gets the {@link yfiles.layout.EdgeBundling} instance that defines the settings of the edge bundling feature. + *

    + * The specified {@link yfiles.layout.EdgeBundling} defines global bundling properties. Settings for individual edges can be + * defined by assigning an {@link yfiles.layout.EdgeBundleDescriptor} to an edge using a {@link yfiles.algorithms.IDataProvider} registered + * with key {@link yfiles.layout.EdgeBundling#EDGE_BUNDLE_DESCRIPTOR_DP_KEY}. To enable bundling for all non-tree edges, set a {@link yfiles.layout.EdgeBundling#defaultBundleDescriptor default bundle descriptor} + * which has {@link yfiles.layout.EdgeBundleDescriptor#bundled bundling} enabled. + *

    + *

    + * If the graph contains self-loops that belong to the set of non-tree edges, the stage will invoke the router defined for + * the non-tree edges in order to route them. In the case where this is not desired, the user has to hide them from the + * stage and route them afterwards as desired. + *

    + * @type {yfiles.layout.EdgeBundling} + */ + edgeBundling:yfiles.layout.EdgeBundling; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.tree.AspectRatioTreeLayout}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface AspectRatioTreeLayoutData extends yfiles.layout.LayoutData{} + export class AspectRatioTreeLayoutData { + constructor(); + /** + * Gets or sets the mapping from nodes to the aspect ratio of their sub tree. + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + subtreeAspectRatios:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes with sub trees to their placements. + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + * @see yfiles.tree.AspectRatioTreeLayout#getRootPlacement + * @type {yfiles.layout.ItemMapping.} + */ + rootPlacements:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to the routing policies of their sub trees. + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY + * @see yfiles.tree.AspectRatioTreeLayout#getSubtreeArrangement + * @type {yfiles.layout.ItemMapping.} + */ + subtreeRoutingPolicies:yfiles.layout.ItemMapping; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.tree.BalloonLayout}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface BalloonLayoutData extends yfiles.layout.LayoutData{} + export class BalloonLayoutData { + constructor(); + /** + * Gets or sets the collection of nodes that should be arranged in an interleaved fashion. + * @see yfiles.tree.BalloonLayout#INTERLEAVED_NODES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + interleavedNodes:yfiles.layout.ItemCollection; + /** + * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. + * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodeHalos:yfiles.layout.ItemMapping; + /** + * Gets or sets the AbortHandler used during the layout. + * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY + * @type {yfiles.algorithms.AbortHandler} + */ + abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the mapping for marking the node that will be used as root node of the tree. + *

    + * The custom root node selection induced by this property is only considered if the {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy} is set to + * {@link yfiles.tree.RootNodePolicy#SELECTED_ROOT}. + *

    + * @see yfiles.tree.BalloonLayout#SELECTED_ROOT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + treeRoot:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.tree.TreeLayout}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface TreeLayoutData extends yfiles.layout.LayoutData{} + export class TreeLayoutData { + constructor(); + /** + * Gets or sets the mapping from nodes to their {@link yfiles.tree.INodePlacer}. + * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodePlacers:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to their {@link yfiles.tree.IPortAssignment}. + * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + portAssignments:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to comparison functions used to sort the nodes' outgoing edges. + * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + outEdgeComparers:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. + * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodeHalos:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to their source {@link yfiles.layout.PortConstraint}. + * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + sourcePortConstraints:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to their target {@link yfiles.layout.PortConstraint}. + * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + targetPortConstraints:yfiles.layout.ItemMapping; + /** + * Gets or sets the collection of nodes the {@link yfiles.tree.AssistantNodePlacer} considers as assistants. + *

    + * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.AssistantNodePlacer} . + *

    + * @see yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + assistantNodes:yfiles.layout.ItemCollection; + /** + * Gets or sets the collection of nodes the {@link yfiles.tree.DelegatingNodePlacer} places with its {@link yfiles.tree.DelegatingNodePlacer#primaryPlacer}. + *

    + * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.DelegatingNodePlacer} . + *

    + * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + delegatingNodePlacersPrimaryNodes:yfiles.layout.ItemCollection; + /** + * Gets or sets a mapping from nodes to a boolean value that specifies whether a node should be placed left of the bus + * (true) or right of the bus (false). + *

    + * This mapping is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns a {@link yfiles.tree.LeftRightNodePlacer} . + *

    + * @see yfiles.tree.LeftRightNodePlacer#LEFT_RIGHT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + leftRightPlacersLeftNodes:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to the index of the row the {@link yfiles.tree.GridNodePlacer} shall place the node in. + *

    + * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.GridNodePlacer} . + *

    + * @see yfiles.tree.GridNodePlacer#ROW_INDEX_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + gridNodePlacerRowIndices:yfiles.layout.ItemMapping; + /** + * Gets or sets the AbortHandler used during the layout. + * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY + * @type {yfiles.algorithms.AbortHandler} + */ + abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the mapping for marking the node that will be used as root node of the tree. + * @see yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + treeRoot:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.tree.TreeReductionStage}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface TreeReductionStageData extends yfiles.layout.LayoutData{} + export class TreeReductionStageData { + constructor(); + /** + * Gets or sets the collection of edges explicitly marked as not belonging to a tree. + * @see yfiles.tree.TreeReductionStage#NON_TREE_EDGES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + nonTreeEdges:yfiles.layout.ItemCollection; + /** + * Gets or sets the mapping of edges to their {@link yfiles.layout.EdgeBundleDescriptor}. + *

    + * Bundling together multiple edges means that their common parts are to some degree merged into a bundled part. At the + * source and target point, the edges are again clearly split. + *

    + *

    + * If an edge is mapped to null, the {@link yfiles.layout.EdgeBundling#defaultBundleDescriptor default descriptor} is used. + *

    + * @see yfiles.layout.EdgeBundleDescriptor + * @see yfiles.tree.TreeReductionStage#edgeBundling + * @type {yfiles.layout.ItemMapping.} + */ + edgeBundleDescriptors:yfiles.layout.ItemMapping; + static $class:yfiles.lang.Class; + } }export namespace genealogy{ /** * This layout algorithm arranges genealogical graphs (family trees). @@ -113710,7 +113313,7 @@ declare namespace system{ *

    * In order to determine whether a node represents an individual or a partnership, a {@link yfiles.algorithms.IDataProvider} has to * be registered with key {@link yfiles.genealogy.FamilyTreeLayout#FAMILY_TYPE_DP_KEY}. If this {@link yfiles.algorithms.IDataProvider} is - * missing, an {@link Stubs.Exceptions.ArgumentError} will be thrown. + * missing, an {@link yfiles.lang.Exception} will be thrown. *

    *

    * This {@link yfiles.algorithms.IDataProvider} provides: @@ -113726,7 +113329,7 @@ declare namespace system{ *

    * A {@link yfiles.genealogy.FamilyType#FAMILY} node links all members of a family. It can only have two incoming edges from the * parents. Two nodes of the same type (families or individuals) cannot be directly connected. If the input graph violates - * these specifications, a {@link yfiles.algorithms.InvalidGraphStructureError} exception will be thrown. + * these specifications, a {@link yfiles.lang.Exception} exception will be thrown. *

    *

    * The layout is calculated basically in two steps: @@ -113751,14 +113354,13 @@ declare namespace system{ * The location of {@link yfiles.genealogy.FamilyType#FAMILY} nodes can be {@link yfiles.genealogy.FamilyTreeLayout#familyNodesAlwaysBelow specified} in relation to the partners. This placement * can be set independently for {@link yfiles.genealogy.FamilyTreeLayout#partnerlessBelow parents}. *

    - * @class yfiles.genealogy.FamilyTreeLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface FamilyTreeLayout extends yfiles.layout.MultiStageLayout{} export class FamilyTreeLayout { /** * Creates a new instance of {@link yfiles.genealogy.FamilyTreeLayout} with default settings. - * @constructor */ constructor(); /** @@ -113915,7 +113517,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.genealogy.FamilyTreeLayout}. - * @class yfiles.genealogy.FamilyTreeLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface FamilyTreeLayoutData extends yfiles.layout.LayoutData{} @@ -113934,65 +113536,64 @@ declare namespace system{ /** * This class is a default implementation of interface {@link yfiles.multipage.IElementFactory}. * @see yfiles.multipage.IElementFactory - * @class yfiles.multipage.DefaultElementFactory + * @class * @implements {yfiles.multipage.IElementFactory} */ export interface DefaultElementFactory extends Object,yfiles.multipage.IElementFactory{} export class DefaultElementFactory { /** * Creates a new instance of {@link yfiles.multipage.DefaultElementFactory}. - * @constructor */ constructor(); /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {yfiles.algorithms.Node} connector - * @param {yfiles.algorithms.Node} opposite - * @param {Object} origEdgeId - * @param {boolean} atTarget - * @returns {yfiles.algorithms.Edge} + * @param context + * @param connector + * @param opposite + * @param origEdgeId + * @param atTarget + * @returns */ createConnectorEdge(context:yfiles.multipage.LayoutContext,connector:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,origEdgeId:Object,atTarget:boolean):yfiles.algorithms.Edge; /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {yfiles.algorithms.YList} edgeIds - * @param {Object} representedNodeId - * @returns {yfiles.algorithms.Node} + * @param context + * @param edgeIds + * @param representedNodeId + * @returns */ createConnectorNode(context:yfiles.multipage.LayoutContext,edgeIds:yfiles.algorithms.YList,representedNodeId:Object):yfiles.algorithms.Node; /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {yfiles.algorithms.Node} proxyNode - * @param {yfiles.algorithms.Node} opposite - * @param {Object} replacingEdgeId - * @param {Object} origNodeId - * @returns {yfiles.algorithms.Edge} + * @param context + * @param proxyNode + * @param opposite + * @param replacingEdgeId + * @param origNodeId + * @returns */ createProxyEdge(context:yfiles.multipage.LayoutContext,proxyNode:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,replacingEdgeId:Object,origNodeId:Object):yfiles.algorithms.Edge; /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {Object} origNodeId - * @returns {yfiles.algorithms.Node} + * @param context + * @param origNodeId + * @returns */ createProxyNode(context:yfiles.multipage.LayoutContext,origNodeId:Object):yfiles.algorithms.Node; /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {yfiles.algorithms.Node} proxyReference - * @param {yfiles.algorithms.Node} opposite - * @param {Object} referencingCopyId - * @returns {yfiles.algorithms.Edge} + * @param context + * @param proxyReference + * @param opposite + * @param referencingCopyId + * @returns */ createProxyReferenceEdge(context:yfiles.multipage.LayoutContext,proxyReference:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,referencingCopyId:Object):yfiles.algorithms.Edge; /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {Object} referringProxyId - * @returns {yfiles.algorithms.Node} + * @param context + * @param referringProxyId + * @returns */ createProxyReferenceNode(context:yfiles.multipage.LayoutContext,referringProxyId:Object):yfiles.algorithms.Node; /** @@ -114005,11 +113606,11 @@ declare namespace system{ *

    * Subclasses may implement this method to use custom size values. *

    - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {Object} id the element ID - * @param {number} type the type of the node to be created - * @returns {yfiles.algorithms.YDimension} the default size of the new node + * @param id the element ID + * @param type the type of the node to be created + * @returns the default size of the new node * @protected */ getDefaultNodeSize(context:yfiles.multipage.LayoutContext,id:Object,type:number):yfiles.algorithms.YDimension; @@ -114219,13 +113820,13 @@ declare namespace system{ *

    * Such an edge connects the given {@link yfiles.multipage.NodeType#CONNECTOR connector} and opposite node. *

    - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {yfiles.algorithms.Node} connector the endpoint of the edge that represents the connector node - * @param {yfiles.algorithms.Node} opposite the other endpoint of the edge - * @param {Object} origEdgeId the ID of the edge that is split by the connector edge - * @param {boolean} atTarget true if the connector node is the target of the edge, false otherwise - * @returns {yfiles.algorithms.Edge} the created connector edge + * @param connector the endpoint of the edge that represents the connector node + * @param opposite the other endpoint of the edge + * @param origEdgeId the ID of the edge that is split by the connector edge + * @param atTarget true if the connector node is the target of the edge, false otherwise + * @returns the created connector edge * @see yfiles.multipage.EdgeType#CONNECTOR * @see yfiles.multipage.NodeType#CONNECTOR * @see yfiles.multipage.LayoutContext#createEdge @@ -114234,11 +113835,11 @@ declare namespace system{ createConnectorEdge(context:yfiles.multipage.LayoutContext,connector:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,origEdgeId:Object,atTarget:boolean):yfiles.algorithms.Edge; /** * Callback method for creating a node of type {@link yfiles.multipage.NodeType#CONNECTOR}. - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {yfiles.algorithms.YList} edgesIds a {@link yfiles.algorithms.YList list} that contains the IDs of edges that are split by this connector - * @param {Object} representedNodeId the ID of the node that is represented by this connector - * @returns {yfiles.algorithms.Node} the created connector node + * @param edgesIds a {@link list} that contains the IDs of edges that are split by this connector + * @param representedNodeId the ID of the node that is represented by this connector + * @returns the created connector node * @see yfiles.multipage.NodeType#CONNECTOR * @see yfiles.multipage.LayoutContext#createNode * @see yfiles.multipage.INodeInfo#representedNode @@ -114250,13 +113851,13 @@ declare namespace system{ *

    * Such an edge should connect the given {@link yfiles.multipage.NodeType#PROXY proxy} and opposite node. *

    - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {yfiles.algorithms.Node} proxyNode the endpoint of the edge that represents the proxy node - * @param {yfiles.algorithms.Node} opposite the other endpoint of the new edge - * @param {Object} replacingEdgeId the ID of the related edge that is connected to the original node - * @param {Object} origNodeId the ID of the original node to which the proxy node refers - * @returns {yfiles.algorithms.Edge} the created proxy edge + * @param proxyNode the endpoint of the edge that represents the proxy node + * @param opposite the other endpoint of the new edge + * @param replacingEdgeId the ID of the related edge that is connected to the original node + * @param origNodeId the ID of the original node to which the proxy node refers + * @returns the created proxy edge * @see yfiles.multipage.EdgeType#PROXY * @see yfiles.multipage.NodeType#PROXY * @see yfiles.multipage.LayoutContext#createEdge @@ -114265,10 +113866,10 @@ declare namespace system{ createProxyEdge(context:yfiles.multipage.LayoutContext,proxyNode:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,replacingEdgeId:Object,origNodeId:Object):yfiles.algorithms.Edge; /** * Callback method for creating a node of type {@link yfiles.multipage.NodeType#PROXY}. - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {Object} origNodeId the ID of the node for which a proxy has to be created - * @returns {yfiles.algorithms.Node} the created proxy node + * @param origNodeId the ID of the node for which a proxy has to be created + * @returns the created proxy node * @see yfiles.multipage.LayoutContext#createNode * @see yfiles.multipage.NodeType#PROXY_REFERENCE * @see yfiles.multipage.NodeType#PROXY @@ -114280,12 +113881,12 @@ declare namespace system{ *

    * Such an (undirected) edge should connect the given {@link yfiles.multipage.NodeType#PROXY_REFERENCE proxy reference} and opposite node. *

    - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {yfiles.algorithms.Node} proxyReference the endpoint of the edge that represents the proxy reference node - * @param {yfiles.algorithms.Node} opposite the other endpoint of the new edge - * @param {Object} referencingCopyId the ID of the proxy node that is referenced by the proxy reference node - * @returns {yfiles.algorithms.Edge} the created proxy reference edge + * @param proxyReference the endpoint of the edge that represents the proxy reference node + * @param opposite the other endpoint of the new edge + * @param referencingCopyId the ID of the proxy node that is referenced by the proxy reference node + * @returns the created proxy reference edge * @see yfiles.multipage.EdgeType#PROXY_REFERENCE * @see yfiles.multipage.NodeType#PROXY_REFERENCE * @see yfiles.multipage.LayoutContext#createEdge @@ -114294,10 +113895,10 @@ declare namespace system{ createProxyReferenceEdge(context:yfiles.multipage.LayoutContext,proxyReference:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,referencingCopyId:Object):yfiles.algorithms.Edge; /** * Callback method for creating a node of type {@link yfiles.multipage.NodeType#PROXY_REFERENCE}. - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {Object} referringProxyId the ID of the proxy to which the created node refers - * @returns {yfiles.algorithms.Node} the new proxy reference node + * @param referringProxyId the ID of the proxy to which the created node refers + * @returns the new proxy reference node * @see yfiles.multipage.NodeType#PROXY_REFERENCE * @see yfiles.multipage.LayoutContext#createNode * @see yfiles.multipage.NodeType#PROXY @@ -114316,29 +113917,29 @@ declare namespace system{ export interface IElementInfoManager extends Object{ /** * Returns the edge information object of the given edge. - * @param {yfiles.algorithms.Edge} edge the edge for which the information object should be returned - * @returns {yfiles.multipage.IEdgeInfo} the edge information object of the given edge + * @param edge the edge for which the information object should be returned + * @returns the edge information object of the given edge * @abstract */ getEdgeInfo(edge:yfiles.algorithms.Edge):yfiles.multipage.IEdgeInfo; /** * Returns the edge label information object of the given edge label layout. - * @param {yfiles.layout.IEdgeLabelLayout} edgeLabelLayout the edge label layout for which the information object should be returned - * @returns {yfiles.multipage.IEdgeLabelInfo} the edge label information object of the given edge label layout + * @param edgeLabelLayout the edge label layout for which the information object should be returned + * @returns the edge label information object of the given edge label layout * @abstract */ getEdgeLabelInfo(edgeLabelLayout:yfiles.layout.IEdgeLabelLayout):yfiles.multipage.IEdgeLabelInfo; /** * Returns the node information object of the given node. - * @param {yfiles.algorithms.Node} node the node for which the information object should be returned - * @returns {yfiles.multipage.INodeInfo} the node information object of the given node + * @param node the node for which the information object should be returned + * @returns the node information object of the given node * @abstract */ getNodeInfo(node:yfiles.algorithms.Node):yfiles.multipage.INodeInfo; /** * Returns the node label layout information object of the given node label layout. - * @param {yfiles.layout.INodeLabelLayout} nodeLabelLayout the node label layout for which the information object should be returned - * @returns {yfiles.multipage.INodeLabelInfo} the node label information object of the given node label layout + * @param nodeLabelLayout the node label layout for which the information object should be returned + * @returns the node label information object of the given node label layout * @abstract */ getNodeLabelInfo(nodeLabelLayout:yfiles.layout.INodeLabelLayout):yfiles.multipage.INodeLabelInfo; @@ -114354,7 +113955,7 @@ declare namespace system{ export interface ILayoutCallback extends Object{ /** * Invoked from {@link yfiles.multipage.MultiPageLayout#applyLayout} when a new multi-page layout has been calculated. - * @param {yfiles.multipage.MultiPageLayoutResult} result the result of the layout calculation + * @param result the result of the layout calculation * @see yfiles.multipage.MultiPageLayout#applyLayout * @abstract */ @@ -114453,101 +114054,101 @@ declare namespace system{ *

    * It provides several methods to access data as well as adding and removing elements. *

    - * @class yfiles.multipage.LayoutContext + * @class * @implements {yfiles.multipage.IElementInfoManager} */ export interface LayoutContext extends Object,yfiles.multipage.IElementInfoManager{} export class LayoutContext { /** * Adds a label to a given edge. - * @param {yfiles.layout.IEdgeLabelLayout} label the label that should be added to the given edge - * @param {yfiles.algorithms.Edge} labeledElement the edge to which the label should be added + * @param label the label that should be added to the given edge + * @param labeledElement the edge to which the label should be added */ addEdgeLabel(label:yfiles.layout.IEdgeLabelLayout,labeledElement:yfiles.algorithms.Edge):void; /** * Adds a label to a given node. - * @param {yfiles.layout.INodeLabelLayout} label the label that should be added to the given node - * @param {yfiles.algorithms.Node} labeledElement the node to which the label should be added + * @param label the label that should be added to the given node + * @param labeledElement the node to which the label should be added */ addNodeLabel(label:yfiles.layout.INodeLabelLayout,labeledElement:yfiles.algorithms.Node):void; /** * All methods of the {@link yfiles.multipage.IElementFactory} have to use this method to create an edge. - * @param {yfiles.algorithms.Node} source the source of the edge - * @param {yfiles.algorithms.Node} target the target of the edge - * @param {Object} sameDataElementId the ID of the edge whose data should be copied to the created edge (or null if no data should be copied) - * @returns {yfiles.algorithms.Edge} the created edge + * @param source the source of the edge + * @param target the target of the edge + * @param sameDataElementId the ID of the edge whose data should be copied to the created edge (or null if no data should be copied) + * @returns the created edge * @see yfiles.multipage.IElementFactory */ createEdge(source:yfiles.algorithms.Node,target:yfiles.algorithms.Node,sameDataElementId:Object):yfiles.algorithms.Edge; /** * All methods of the {@link yfiles.multipage.IElementFactory} have to use this method to create a node. - * @param {Object} sameDataElementId the ID of the node whose data should be copied to the created node (or null if no data should be copied) - * @returns {yfiles.algorithms.Node} the created node + * @param sameDataElementId the ID of the node whose data should be copied to the created node (or null if no data should be copied) + * @returns the created node * @see yfiles.multipage.IElementFactory */ createNode(sameDataElementId:Object):yfiles.algorithms.Node; /** * - * @param {yfiles.algorithms.Edge} edge - * @returns {yfiles.multipage.IEdgeInfo} + * @param edge + * @returns */ getEdgeInfo(edge:yfiles.algorithms.Edge):yfiles.multipage.IEdgeInfo; /** * - * @param {yfiles.layout.IEdgeLabelLayout} edgeLabelLayout - * @returns {yfiles.multipage.IEdgeLabelInfo} + * @param edgeLabelLayout + * @returns */ getEdgeLabelInfo(edgeLabelLayout:yfiles.layout.IEdgeLabelLayout):yfiles.multipage.IEdgeLabelInfo; /** * - * @param {yfiles.algorithms.Node} node - * @returns {yfiles.multipage.INodeInfo} + * @param node + * @returns */ getNodeInfo(node:yfiles.algorithms.Node):yfiles.multipage.INodeInfo; /** * - * @param {yfiles.layout.INodeLabelLayout} nodeLabelLayout - * @returns {yfiles.multipage.INodeLabelInfo} + * @param nodeLabelLayout + * @returns */ getNodeLabelInfo(nodeLabelLayout:yfiles.layout.INodeLabelLayout):yfiles.multipage.INodeLabelInfo; /** * Returns the edge of the input graph with the given ID or null if there is no such edge. - * @param {Object} id the ID of the edge that should be returned - * @returns {yfiles.algorithms.Edge} the edge of the input graph with the given ID or null if there is no such edge + * @param id the ID of the edge that should be returned + * @returns the edge of the input graph with the given ID or null if there is no such edge */ getOriginalEdge(id:Object):yfiles.algorithms.Edge; /** * Returns the node of the input graph with the given ID or null if there is no such node. - * @param {Object} id the ID of the node that should be returned - * @returns {yfiles.algorithms.Node} the node of the input graph with the given ID or null if there is no such node + * @param id the ID of the node that should be returned + * @returns the node of the input graph with the given ID or null if there is no such node */ getOriginalNode(id:Object):yfiles.algorithms.Node; /** * Returns the edge of a page graph (a graph that represents the result of the multi-page layout) with the given ID or null * if there is no such edge. - * @param {Object} id the ID of the edge that should be returned - * @returns {yfiles.algorithms.Edge} the edge of a page graph with the given ID or null if there is no such edge + * @param id the ID of the edge that should be returned + * @returns the edge of a page graph with the given ID or null if there is no such edge */ getPageEdge(id:Object):yfiles.algorithms.Edge; /** * Returns the node of a page graph (a graph that represents the result of the multi-page layout) with the given ID or null * if there is no such node. - * @param {Object} id the ID of the node that should be returned - * @returns {yfiles.algorithms.Node} the node of a page graph with the given ID or null if there is no such node + * @param id the ID of the node that should be returned + * @returns the node of a page graph with the given ID or null if there is no such node */ getPageNode(id:Object):yfiles.algorithms.Node; /** * Removes a label from a given edge. - * @param {yfiles.layout.IEdgeLabelLayout} label the label that should be removed - * @param {yfiles.algorithms.Edge} labeledElement the edge owning the label - * @returns {boolean} + * @param label the label that should be removed + * @param labeledElement the edge owning the label + * @returns */ removeEdgeLabel(label:yfiles.layout.IEdgeLabelLayout,labeledElement:yfiles.algorithms.Edge):boolean; /** * Removes a label from a given node. - * @param {yfiles.layout.INodeLabelLayout} label the label that should be removed - * @param {yfiles.algorithms.Node} labeledElement the node owning the label - * @returns {boolean} + * @param label the label that should be removed + * @param labeledElement the node owning the label + * @returns */ removeNodeLabel(label:yfiles.layout.INodeLabelLayout,labeledElement:yfiles.algorithms.Node):boolean; /** @@ -114611,15 +114212,14 @@ declare namespace system{ * not specify a return value. Therefore, client code has to {@link yfiles.multipage.MultiPageLayout#layoutCallback register} a {@link yfiles.multipage.ILayoutCallback} that is invoked * when the algorithm has calculated a new multi-page result. *

    - * @class yfiles.multipage.MultiPageLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface MultiPageLayout extends yfiles.layout.LayoutStageBase{} export class MultiPageLayout { /** * Creates a new {@link yfiles.multipage.MultiPageLayout} instance. - * @param {yfiles.layout.ILayoutAlgorithm} core the layout algorithm used for a single page - * @constructor + * @param core the layout algorithm used for a single page */ constructor(core:yfiles.layout.ILayoutAlgorithm); /** @@ -114631,10 +114231,10 @@ declare namespace system{ *

    * Subclasses may implement a custom layout strategy for this step. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} incrementalNodesDP a {@link yfiles.algorithms.IDataProvider} that returns a boolean value indicating whether or not a node is marked; the positions + * @param graph the input graph + * @param incrementalNodesDP a {@link } that returns a boolean value indicating whether or not a node is marked; the positions * of the non-marked nodes are not allowed to change - * @param {yfiles.multipage.LayoutContext} context the current layout context + * @param context the current layout context * @see yfiles.multipage.LayoutContext * @protected */ @@ -114645,8 +114245,8 @@ declare namespace system{ * Unlike method {@link yfiles.multipage.MultiPageLayout#applyLayout}, this method ignores the registered {@link yfiles.multipage.MultiPageLayout#layoutCallback layout callback} and * directly returns the calculated {@link yfiles.multipage.MultiPageLayoutResult}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.multipage.MultiPageLayoutResult} an instance of {@link yfiles.multipage.MultiPageLayoutResult} that represents the result of the layout run + * @param graph the input graph + * @returns an instance of {@link } that represents the result of the layout run * @throws {Stubs.Exceptions.ArgumentError} if for one of the keys {@link yfiles.multipage.MultiPageLayout#NODE_ID_DP_KEY}, {@link yfiles.multipage.MultiPageLayout#EDGE_ID_DP_KEY}, * {@link yfiles.multipage.MultiPageLayout#NODE_LABEL_ID_DP_KEY} and {@link yfiles.multipage.MultiPageLayout#EDGE_LABEL_ID_DP_KEY} no {@link yfiles.algorithms.IDataProvider} * is registered with the given graph @@ -114662,7 +114262,7 @@ declare namespace system{ *

    * Subclasses may create a custom implementation of the element factory. *

    - * @returns {yfiles.multipage.IElementFactory} the created element factory + * @returns the created element factory * @see yfiles.multipage.MultiPageLayout#elementFactory * @see yfiles.multipage.MultiPageLayout#elementFactory * @see yfiles.multipage.IElementFactory @@ -114678,32 +114278,33 @@ declare namespace system{ *

    * Subclasses may implement a custom remove/restore strategy. *

    - * @param {yfiles.algorithms.Node} connector1 the first connector of the connector pair - * @param {yfiles.algorithms.Node} connector2 the second connector of the connector pair - * @param {yfiles.algorithms.YList} originalEdgeIds the IDs of the original edges that have to be restored - * @param {yfiles.multipage.LayoutContext} context the current layout context - * @returns {boolean} true if the removal of the connector pair was successful, false otherwise + * @param connector1 the first connector of the connector pair + * @param connector2 the second connector of the connector pair + * @param originalEdgeIds the IDs of the original edges that have to be restored + * @param context the current layout context + * @returns true if the removal of the connector pair was successful, false otherwise * @see yfiles.multipage.MultiPageLayout#routeRestoredEdges * @protected */ removeConnectorPair(connector1:yfiles.algorithms.Node,connector2:yfiles.algorithms.Node,originalEdgeIds:yfiles.algorithms.YList,context:yfiles.multipage.LayoutContext):boolean; /** - * This method is called by {@link yfiles.multipage.MultiPageLayout#removeConnectorPair} to route the restored edges. + * This method is called whenever some single edges have to be routed without changing the position of nodes (e.g., by {@link yfiles.multipage.MultiPageLayout#removeConnectorPair} + * to route the restored edges). *

    * It has to guarantee that the routes are fully contained within the given bounding rectangle. *

    *

    * Subclasses may implement a custom routing strategy for the restored edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the relevant graph - * @param {yfiles.algorithms.IDataProvider} selectedEdgesDP a {@link yfiles.algorithms.IDataProvider} that returns a boolean value indicating whether or not an edge should be rerouted - * @param {yfiles.algorithms.YRectangle} boundingRectangle the edge routes should be fully contained within this rectangle + * @param graph the relevant graph + * @param selectedEdgesDP a {@link } that returns a boolean value indicating whether or not an edge should be rerouted + * @param boundingRectangle the edge routes should be fully contained within this rectangle * @see yfiles.multipage.MultiPageLayout#removeConnectorPair * @protected */ routeRestoredEdges(graph:yfiles.layout.LayoutGraph,selectedEdgesDP:yfiles.algorithms.IDataProvider,boundingRectangle:yfiles.algorithms.YRectangle):void; /** - * Data provider key for assigning a cluster ID to common (non-group) nodes. + * Data provider key for assigning a cluster ID to common (non-group) nodes * @see yfiles.multipage.MultiPageLayout#strictClusterSeparation * @const * @static @@ -114711,35 +114312,35 @@ declare namespace system{ */ static NODE_CLUSTER_ID_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for mapping each node of the input graph to a unique ID. + * Data provider key for mapping each node of the input graph to a unique ID * @const * @static * @type {yfiles.algorithms.NodeDpKey.} */ static NODE_ID_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for mapping each edge of the input graph to a unique ID. + * Data provider key for mapping each edge of the input graph to a unique ID * @const * @static * @type {yfiles.algorithms.EdgeDpKey.} */ static EDGE_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for mapping each edge label of the input graph to a unique ID. + * Data provider key for mapping each edge label of the input graph to a unique ID * @const * @static * @type {yfiles.algorithms.IEdgeLabelLayoutDpKey.} */ static EDGE_LABEL_ID_DP_KEY:yfiles.algorithms.IEdgeLabelLayoutDpKey; /** - * Data provider key for mapping each node label of the input graph to a unique ID. + * Data provider key for mapping each node label of the input graph to a unique ID * @const * @static * @type {yfiles.algorithms.INodeLabelLayoutDpKey.} */ static NODE_LABEL_ID_DP_KEY:yfiles.algorithms.INodeLabelLayoutDpKey; /** - * Data provider key for specifying the type of multi-edges. + * Data provider key for specifying the type of multi-edges *

    * If {@link yfiles.multipage.MultiPageLayout#edgeBundleModeMask} & {@link yfiles.multipage.EdgeBundleModes#DISTINGUISH_TYPES} == 1, multi-edges (edges with same endpoints) associated with * different types (objects) are distinguished, i.e., they are split by different connector pairs (see @@ -114851,33 +114452,33 @@ declare namespace system{ * {@link yfiles.multipage.MultiPageLayout#applyLayout}. In the latter case, a {@link yfiles.multipage.ILayoutCallback} has to be {@link yfiles.multipage.MultiPageLayout#layoutCallback set} * before starting the layout run. *

    - * @class yfiles.multipage.MultiPageLayoutResult + * @class * @implements {yfiles.multipage.IElementInfoManager} */ export interface MultiPageLayoutResult extends Object,yfiles.multipage.IElementInfoManager{} export class MultiPageLayoutResult { /** * - * @param {yfiles.algorithms.Edge} edge - * @returns {yfiles.multipage.IEdgeInfo} + * @param edge + * @returns */ getEdgeInfo(edge:yfiles.algorithms.Edge):yfiles.multipage.IEdgeInfo; /** * - * @param {yfiles.layout.IEdgeLabelLayout} edgeLabelLayout - * @returns {yfiles.multipage.IEdgeLabelInfo} + * @param edgeLabelLayout + * @returns */ getEdgeLabelInfo(edgeLabelLayout:yfiles.layout.IEdgeLabelLayout):yfiles.multipage.IEdgeLabelInfo; /** * - * @param {yfiles.algorithms.Node} node - * @returns {yfiles.multipage.INodeInfo} + * @param node + * @returns */ getNodeInfo(node:yfiles.algorithms.Node):yfiles.multipage.INodeInfo; /** * - * @param {yfiles.layout.INodeLabelLayout} nodeLabelLayout - * @returns {yfiles.multipage.INodeLabelInfo} + * @param nodeLabelLayout + * @returns */ getNodeLabelInfo(nodeLabelLayout:yfiles.layout.INodeLabelLayout):yfiles.multipage.INodeLabelInfo; /** @@ -114885,8 +114486,8 @@ declare namespace system{ *

    * A page graph is a subgraph of the input graph whose layout fits the {@link yfiles.multipage.MultiPageLayout#maximumPageSize specified maximum page size}. *

    - * @param {number} pageNo the given page number - * @returns {yfiles.layout.LayoutGraph} the page graph associated with the given page number + * @param pageNo the given page number + * @returns the page graph associated with the given page number * @throws {Stubs.Exceptions.IndexOutOfRangeError} if pageNo >= pageCount or pageNo < 0 * @see yfiles.multipage.MultiPageLayoutResult#pageCount */ @@ -114896,7 +114497,7 @@ declare namespace system{ *

    * Each page contains a {@link yfiles.multipage.MultiPageLayoutResult#getPage page graph} whose layout fits the {@link yfiles.multipage.MultiPageLayout#maximumPageSize specified maximum page size}. *

    - * @returns {number} the number of available pages + * @returns the number of available pages * @see yfiles.multipage.MultiPageLayoutResult#getPage */ pageCount():number; @@ -114904,7 +114505,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.multipage.MultiPageLayout}. - * @class yfiles.multipage.MultiPageLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface MultiPageLayoutData extends yfiles.layout.LayoutData{} @@ -115001,14 +114602,13 @@ declare namespace system{ * groups. Edge bundling is supported only if {@link yfiles.circular.CircularLayout#partitionStyle partition layout style} is set to {@link yfiles.circular.PartitionStyle#CYCLE} and {@link yfiles.circular.CircularLayout#layoutStyle layout style} * is other than {@link yfiles.circular.LayoutStyle#BCC_ISOLATED}. *

    - * @class yfiles.circular.CircularLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface CircularLayout extends yfiles.layout.MultiStageLayout{} export class CircularLayout { /** * Creates a new {@link yfiles.circular.CircularLayout} instance with the default settings. - * @constructor */ constructor(); /** @@ -115248,14 +114848,13 @@ declare namespace system{ *
  • The radius can be determined automatically. A specified {@link yfiles.circular.SingleCycleLayout#minimumRadius minimum radius} will be obeyed when choosing the radius.
  • *
  • The radius can be chosen manually. To do so, disable the {@link yfiles.circular.SingleCycleLayout#automaticRadius automatic radius selection} and specify the custom radius via {@link yfiles.circular.SingleCycleLayout#fixedRadius}.
  • * - * @class yfiles.circular.SingleCycleLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface SingleCycleLayout extends yfiles.layout.MultiStageLayout{} export class SingleCycleLayout { /** * Creates a new {@link yfiles.circular.SingleCycleLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -115312,9 +114911,8 @@ declare namespace system{ */ automaticRadius:boolean; /** - * Gets or sets the {@link yfiles.algorithms.INodeSequencer} that will be used for determining the order of the nodes for the - * circle placement. - * @throws {Stubs.Exceptions.ArgumentError} if the specified {@link yfiles.algorithms.INodeSequencer} is null + * Gets or sets the custom {@link yfiles.algorithms.INodeSequencer} that will be used for determining the order of the nodes for + * the circle placement. * @type {yfiles.algorithms.INodeSequencer} */ nodeSequencer:yfiles.algorithms.INodeSequencer; @@ -115347,7 +114945,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.circular.CircularLayout}. - * @class yfiles.circular.CircularLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface CircularLayoutData extends yfiles.layout.LayoutData{} @@ -115412,18 +115010,17 @@ declare namespace system{ * is registered with the graph with key {@link yfiles.orthogonal.OrthogonalLayout#EDGE_LAYOUT_DESCRIPTOR_DP_KEY}. *

    * @see yfiles.orthogonal.OrthogonalLayout#EDGE_LAYOUT_DESCRIPTOR_DP_KEY - * @class yfiles.orthogonal.EdgeLayoutDescriptor + * @class */ export interface EdgeLayoutDescriptor extends Object{} export class EdgeLayoutDescriptor { /** * Creates a new instance of {@link yfiles.orthogonal.EdgeLayoutDescriptor} with the default settings. - * @constructor */ constructor(); /** * Creates a copy of this {@link yfiles.orthogonal.EdgeLayoutDescriptor} instance. - * @returns {yfiles.orthogonal.EdgeLayoutDescriptor} a copy of this {@link yfiles.orthogonal.EdgeLayoutDescriptor} instance + * @returns a copy of this {@link } instance */ createCopy():yfiles.orthogonal.EdgeLayoutDescriptor; /** @@ -115592,14 +115189,13 @@ declare namespace system{ * {@link yfiles.orthogonal.OrthogonalLayout#faceMaximization}, respectively. The drawback when these settings are enabled is that the running time of the algorithm may be * drastically increased. *

    - * @class yfiles.orthogonal.OrthogonalLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface OrthogonalLayout extends yfiles.layout.MultiStageLayout{} export class OrthogonalLayout { /** * Creates a new {@link yfiles.orthogonal.OrthogonalLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -115609,7 +115205,7 @@ declare namespace system{ * This method may be overridden to create a new {@link yfiles.orthogonal.EdgeLayoutDescriptor} instance with different * configuration settings. *

    - * @returns {yfiles.orthogonal.EdgeLayoutDescriptor} a new {@link yfiles.orthogonal.EdgeLayoutDescriptor} instance + * @returns a new {@link } instance * @protected */ createEdgeLayoutDescriptor():yfiles.orthogonal.EdgeLayoutDescriptor; @@ -115827,14 +115423,13 @@ declare namespace system{ *

    * Octilinear routing of edges can be supported by appending {@link yfiles.router.PolylineLayoutStage}. *

    - * @class yfiles.orthogonal.CompactOrthogonalLayout + * @class * @extends {yfiles.layout.PartitionLayout} */ export interface CompactOrthogonalLayout extends yfiles.layout.PartitionLayout{} export class CompactOrthogonalLayout { /** * Creates a new {@link yfiles.orthogonal.CompactOrthogonalLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -115867,7 +115462,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.orthogonal.OrthogonalLayout}. - * @class yfiles.orthogonal.OrthogonalLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface OrthogonalLayoutData extends yfiles.layout.LayoutData{} @@ -115910,6 +115505,14 @@ declare namespace system{ * @type {yfiles.algorithms.AbortHandler} */ abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; static $class:yfiles.lang.Class; } }export namespace radial{ @@ -115930,6 +115533,7 @@ declare namespace system{ /** * Specifier for a center nodes policy which chooses the node with the highest weighted centrality as center node. * @see yfiles.radial.RadialLayout#centerNodesPolicy + * @see yfiles.algorithms.Trees#getWeightedCenterNode */ WEIGHTED_CENTRALITY, /** @@ -115983,13 +115587,12 @@ declare namespace system{ * layout algorithm will return a {@link yfiles.radial.RadialLayoutNodeInfo} object with appropriately filled fields for each {@link yfiles.algorithms.Node} * when the layout is calculated. *

    - * @class yfiles.radial.RadialLayoutNodeInfo + * @class */ export interface RadialLayoutNodeInfo extends Object{} export class RadialLayoutNodeInfo { /** * Creates a new {@link yfiles.radial.RadialLayoutNodeInfo} instance. - * @constructor */ constructor(); /** @@ -116059,14 +115662,13 @@ declare namespace system{ * value. If the layer spacing is 0, the radii are chosen such that all nodes fit on their corresponding circles. A minimum * layer distance is specified by {@link yfiles.radial.RadialLayout#minimumLayerDistance}. *

    - * @class yfiles.radial.RadialLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface RadialLayout extends yfiles.layout.MultiStageLayout{} export class RadialLayout { /** * Creates a new {@link yfiles.radial.RadialLayout} instance with the default settings. - * @constructor */ constructor(); /** @@ -116184,7 +115786,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.radial.RadialLayout}. - * @class yfiles.radial.RadialLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface RadialLayoutData extends yfiles.layout.LayoutData{} @@ -116259,14 +115861,13 @@ declare namespace system{ * independent. *

    * @see yfiles.seriesparallel.SeriesParallelLayout#defaultOutEdgeComparer - * @class yfiles.seriesparallel.DefaultOutEdgeComparer + * @class * @implements {yfiles.collections.IComparer.} */ export interface DefaultOutEdgeComparer extends Object,yfiles.collections.IComparer{} export class DefaultOutEdgeComparer { /** * Creates a {@link yfiles.seriesparallel.DefaultOutEdgeComparer} instance with default settings. - * @constructor */ constructor(); /** @@ -116275,9 +115876,9 @@ declare namespace system{ * The order of edges is kept unless there are * {@link yfiles.layout.PortConstraint}s assigned. Then the edges will be sorted to avoid edge crossings. *

    - * @param {Object} o1 the first edge - * @param {Object} o2 the second edge - * @returns {number} the order of the given two edges + * @param o1 the first edge + * @param o2 the second edge + * @returns the order of the given two edges */ compare(o1:Object,o2:Object):number; static $class:yfiles.lang.Class; @@ -116298,7 +115899,7 @@ declare namespace system{ * @see yfiles.layout.PortConstraint * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - * @class yfiles.seriesparallel.DefaultPortAssignment + * @class * @implements {yfiles.seriesparallel.IPortAssignment} */ export interface DefaultPortAssignment extends Object,yfiles.seriesparallel.IPortAssignment{} @@ -116306,21 +115907,19 @@ declare namespace system{ /** * Creates a new {@link yfiles.seriesparallel.DefaultPortAssignment} instance using the given {@link yfiles.seriesparallel.DefaultPortAssignment#mode mode} and a given value for the {@link yfiles.seriesparallel.DefaultPortAssignment#borderGapToPortGapRatio ratio} * of the gap between the border and the ports to the gap between the ports themselves. - * @param {yfiles.seriesparallel.PortAssignmentMode} mode one of the predefined port assignment modes - * @param {number} [ratio=0.5] the ratio of the distance between outer ports and the border to the distance between any two ports + * @param mode one of the predefined port assignment modes + * @param [ratio=0.5] the ratio of the distance between outer ports and the border to the distance between any two ports * @throws {Stubs.Exceptions.ArgumentError} if the given mode is unknown or the given ratio is negative - * @constructor */ constructor(mode:yfiles.seriesparallel.PortAssignmentMode,ratio?:number); /** * Creates a new {@link yfiles.seriesparallel.DefaultPortAssignment} with default settings. - * @constructor */ constructor(); /** * Places the ports of edges connecting to the given node according to the {@link yfiles.seriesparallel.DefaultPortAssignment#mode port assignment mode}. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node whose adjacent edges' ports should be placed + * @param graph the input graph + * @param node the node whose adjacent edges' ports should be placed * @see yfiles.seriesparallel.DefaultPortAssignment#mode */ assignPorts(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; @@ -116334,9 +115933,9 @@ declare namespace system{ * This method is called by {@link yfiles.seriesparallel.DefaultPortAssignment#assignPorts} to calculate the location of the first * port. It may be overridden to implement a different distribution of ports on the node's side. *

    - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges that connect to this side - * @returns {number} the absolute gap to be used on both sides of the ports + * @param sideLength the width/height of the side + * @param edgeCount the number of edges that connect to this side + * @returns the absolute gap to be used on both sides of the ports * @see yfiles.seriesparallel.DefaultPortAssignment#assignPorts * @see yfiles.seriesparallel.DefaultPortAssignment#borderGapToPortGapRatio * @protected @@ -116352,10 +115951,10 @@ declare namespace system{ * This method is called by {@link yfiles.seriesparallel.DefaultPortAssignment#assignPorts} to calculate the distance between two * ports. It may be overridden to implement a different distribution of ports on the node's side. *

    - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges/ports that connect to this side - * @param {number} portBorderGap the port border gap (i.e. calculated by {@link yfiles.seriesparallel.DefaultPortAssignment#getPortBorderGap}) - * @returns {number} the absolute distance to be used between two adjacent ports + * @param sideLength the width/height of the side + * @param edgeCount the number of edges/ports that connect to this side + * @param portBorderGap the port border gap (i.e. calculated by {@link #getPortBorderGap}) + * @returns the absolute distance to be used between two adjacent ports * @see yfiles.seriesparallel.DefaultPortAssignment#assignPorts * @see yfiles.seriesparallel.DefaultPortAssignment#getPortBorderGap * @protected @@ -116406,18 +116005,17 @@ declare namespace system{ *

    * @see yfiles.seriesparallel.SeriesParallelLayout#EDGE_LAYOUT_DESCRIPTOR_DP_KEY * @see yfiles.seriesparallel.SeriesParallelLayout#defaultEdgeLayoutDescriptor - * @class yfiles.seriesparallel.EdgeLayoutDescriptor + * @class */ export interface EdgeLayoutDescriptor extends Object{} export class EdgeLayoutDescriptor { /** * Creates a new instance of {@link yfiles.seriesparallel.EdgeLayoutDescriptor} with default settings. - * @constructor */ constructor(); /** * Creates a copy of this {@link yfiles.seriesparallel.EdgeLayoutDescriptor} instance. - * @returns {yfiles.seriesparallel.EdgeLayoutDescriptor} a copy of this {@link yfiles.seriesparallel.EdgeLayoutDescriptor} instance + * @returns a copy of this {@link } instance */ createCopy():yfiles.seriesparallel.EdgeLayoutDescriptor; /** @@ -116519,8 +116117,8 @@ declare namespace system{ *

    * This method is called by {@link yfiles.seriesparallel.SeriesParallelLayout} before the actual layout of the graph takes place. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph instance the node is part of - * @param {yfiles.algorithms.Node} node the node whose incident edges' ports are assigned + * @param graph the graph instance the node is part of + * @param node the node whose incident edges' ports are assigned * @see yfiles.seriesparallel.SeriesParallelLayout#OUT_EDGE_COMPARER_DP_KEY * @see yfiles.seriesparallel.SeriesParallelLayout#defaultOutEdgeComparer * @abstract @@ -116605,14 +116203,13 @@ declare namespace system{ * edges from the input graph until a series-parallel graph is obtained. The edges that were removed will be routed * separately afterwards. *

    - * @class yfiles.seriesparallel.SeriesParallelLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface SeriesParallelLayout extends yfiles.layout.MultiStageLayout{} export class SeriesParallelLayout { /** * Creates a new {@link yfiles.seriesparallel.SeriesParallelLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -116620,8 +116217,8 @@ declare namespace system{ *

    * The current implementation detects the series-parallel graph structure in linear time. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {boolean} true if the given graph is series-parallel, false otherwise + * @param graph the input graph + * @returns true if the given graph is series-parallel, false otherwise * @static */ static isSeriesParallelGraph(graph:yfiles.algorithms.Graph):boolean; @@ -116871,7 +116468,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.seriesparallel.SeriesParallelLayout}. - * @class yfiles.seriesparallel.SeriesParallelLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface SeriesParallelLayoutData extends yfiles.layout.LayoutData{} @@ -116914,10 +116511,19 @@ declare namespace system{ * @type {yfiles.algorithms.AbortHandler} */ abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; static $class:yfiles.lang.Class; } }} +type yfiles_namespace = typeof yfiles; declare module 'yfiles/algorithms' { export = yfiles; } declare module 'yfiles/complete' { export = yfiles; } declare module 'yfiles/lang' { export = yfiles.lang; } @@ -116940,4 +116546,4 @@ declare module 'yfiles/view-editor' { export = yfiles; } declare module 'yfiles/view-folding' { export = yfiles; } declare module 'yfiles/view-graphml' { export = yfiles; } declare module 'yfiles/view-layout-bridge' { export = yfiles; } -declare module 'yfiles/view-table' { export = yfiles; } +declare module 'yfiles/view-table' { export = yfiles; } \ No newline at end of file diff --git a/types/yfiles/yfiles-tests.ts b/types/yfiles/yfiles-tests.ts index 9f227aced5..05e284529c 100644 --- a/types/yfiles/yfiles-tests.ts +++ b/types/yfiles/yfiles-tests.ts @@ -118,6 +118,7 @@ class BasicTest { let a21 = new yfiles.styles.ArcEdgeStyle(); let a22 = new yfiles.tree.AspectRatioTreeLayout(); let a23 = new yfiles.view.GraphComponent(); + let yfilesNamespace : yfiles_namespace; } testsForVersion2001() {