documentationfor yFiles for HTML 2.6

LabelDecorator

Helps in decorating the lookup method of ILabel instances by providing access to decorators for the most common types.

Inheritance Hierarchy
LabelDecorator

Remarks

Predefined LookupDecorator<TDecoratedType,TInterface> are made available through properties like e.g. highlightDecorator. Note that the list of possible decorations that are available using this class is not exhaustive in any way. This is merely a way to provide access to those interfaces that are more commonly being decorated by the developer.

Typically, a configured instance of this class is available through labelDecorator on the GraphDecorator which is returned by decorator on an IGraph.

This decorator can be used to conveniently decorate the lookup of ILabels in an IGraph. It serves as a factory for predefined LookupDecorator<TDecoratedType,TInterface> instances that are specifically useful for the ILabel type.

Examples

The label can be decorated in various ways. setImplementation decorates the label's lookup to return the same instance for each label.

graph.decorator.labelDecorator.editLabelHelperDecorator.setImplementation(
  new ConstantEditLabelHelper()
)

setImplementation with a predicate decorates the label's lookup only to return the same instance for each label for which the predicate returns true.

graph.decorator.labelDecorator.editLabelHelperDecorator.setImplementation(
  (label) => label.tag !== null,
  new ConstantEditLabelHelper()
)

setFactory calls the provided factory method to return a new instance of the queried type created for the given label or for labels for which the predicate returns true, respectively:

graph.decorator.labelDecorator.editLabelHelperDecorator.setFactory(
  (label) => new CustomEditLabelHelper(label)
)
graph.decorator.labelDecorator.editLabelHelperDecorator.setFactory(
  (label) => label.tag !== null,
  (label) => new CustomEditLabelHelper(label)
)

setImplementationWrapper calls the provided factory method to return a new instance of the queried type which wraps the default implementation, once for all labels and once only for labels for which the predicate returns true.

graph.decorator.labelDecorator.editLabelHelperDecorator.setImplementationWrapper(
  (label, original) => new EditLabelHelperWrapper(label, original)
)
graph.decorator.labelDecorator.editLabelHelperDecorator.setImplementationWrapper(
  (label) => label.tag !== null,
  (label, original) => new EditLabelHelperWrapper(label, original)
)graph.decorator.labelDecorator.editLabelHelperDecorator.setImplementationWrapper(
  (label, original) => new EditLabelHelperWrapper(label!, original)
)
graph.decorator.labelDecorator.editLabelHelperDecorator.setImplementationWrapper(
  (label) => label.tag !== null,
  (label, original) => new EditLabelHelperWrapper(label!, original)
)

Finally hideImplementation hides the default implementation by letting the lookup always return null for all labels and for labels for which the predicate returns true, respectively

graph.decorator.labelDecorator.editLabelHelperDecorator.hideImplementation()
graph.decorator.labelDecorator.editLabelHelperDecorator.hideImplementation(
  (label) => label.tag !== null
)

Each of these methods returns a IContextLookupChainLink which can be used to remove the modified behavior again:

/**
 * @param {!IGraph} graph
 */
registerLookup(graph) {
  this.chainLink =
    graph.decorator.labelDecorator.editLabelHelperDecorator.setFactory(
      (label) => new CustomEditLabelHelper(label)
    )
}

/**
 * @param {!IGraph} graph
 */
deregisterLookup(graph) {
  graph.decorator.labelDecorator.remove(this.chainLink)
}registerLookup(graph: IGraph): void {
  this.chainLink =
    graph.decorator.labelDecorator.editLabelHelperDecorator.setFactory(
      (label) => new CustomEditLabelHelper(label)
    )!
}

deregisterLookup(graph: IGraph): void {
  graph.decorator.labelDecorator.remove(this.chainLink)
}

Type Details

yfiles module
view-component
yfiles-umd modules
All view modules
Legacy UMD name
yfiles.graph.LabelDecorator

See Also

Constructors

Properties

Methods