HTMLInfo class

HTMLInfo is used to show and hide custom HTML page elements, such as a context menu, tooltip, or text editor made of HTML.

Properties that can be set to an HTMLInfo include:

  • TextEditingTool#defaultTextEditor
  • TextBlock#textEditor
  • GraphObject#contextMenu
  • Diagram#contextMenu
  • GraphObject#toolTip
  • Diagram#toolTip

When a context menu is set to an instance of HTMLInfo, ContextMenuTool#showContextMenu and ContextMenuTool#hideContextMenu call #show and #hide respectively. You may define #mainElement instead of #hide in order to automatically use a default hide method.

When a tooltip is set to an instance of HTMLInfo, ToolManager#showToolTip and ToolManager#hideToolTip call #show and #hide respectively.

When a text editor is set to an instance of HTMLInfo, TextEditingTool#doActivate calls #show and TextEditingTool#doDeactivate calls #hide.

For HTMLInfo to work, you must define #show and either #hide or #mainElement. Typical usage will also stop the ContextMenuTool once the desired context action occurs, typically by calling diagram.currentTool.stopTool();.

Example usage of HTMLInfo can be found in the Custom Context Menu and HTML LightBox Context Menu samples, the Custom TextEditingTool sample, and the Text Editor implementation extension.

Here is the outline for typical usage of HTMLInfo as a context menu:

// Assign an HTMLInfo to the Diagram:
myDiagram.contextMenu = $(go.HTMLInfo, {
  show: showContextMenu,
  hide: hideContextMenu
});

function showContextMenu(obj, diagram, tool) {
  // Show the context menu HTML element:
  SomeDOMElement.style.display = "block";

  // Also show relevant buttons given the current state
  // and the GraphObject obj; if null, the context menu is for the whole Diagram
}

function hideContextMenu() {
  SomeDOMElement.style.display = "none";
}

function buttonClick() {
  // do some action when a context menu button is clicked

  // then:
  myDiagram.currentTool.stopTool();
}

By default, TextEditingTool#defaultTextEditor is an instance of HTMLInfo. You can see its default implementation details here.

Available extensions
Annotations
  • @JS()
  • @staticInterop

Constructors

HTMLInfo.new()
factory

Properties

hashCode int
The hash code for this object.
no setterinherited
hide ↔ void Function(Diagram, Tool)?

Available on HTMLInfo, provided by the HTMLInfo$Typings extension

Gets or sets the function to call when an HTMLInfo is to be hidden. The function should "hide" the HTMLInfo, either by removing any traces of it or otherwise returning the page state to one where the HTMLInfo content is no longer considered active.
getter/setter pair
mainElement HTMLElement?

Available on HTMLInfo, provided by the HTMLInfo$Typings extension

Gets or sets the primary HTML Element that represents this HTMLInfo. In a context menu, this would be the outermost HTML element, the one which typically shows and hides. If this is set and #hide is not, HTMLInfo will automatically execute:
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
show ↔ void Function(GraphObject, Diagram, Tool)?

Available on HTMLInfo, provided by the HTMLInfo$Typings extension

Gets or sets the function to call when an HTMLInfo is to be shown, such as when used as the GraphObject#contextMenu or Diagram#toolTip or TextBlock#textEditor.
getter/setter pair
valueFunction ↔ dynamic Function()?

Available on HTMLInfo, provided by the HTMLInfo$Typings extension

Gets or sets a function that returns the primary value associated with this HTMLInfo, such as the string value of a text editor, which would be solicited by the TextEditingTool.
getter/setter pair

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited