Class Margin

GoJS® Diagramming Components
version 3.0.1
by Northwoods Software®

A Margin represents a band of space outside or inside a rectangular area, with possibly different values on each of the four sides.

Example uses include GraphObject.margin, Panel.padding, and Diagram.padding.

Use the static functions Margin.parse and Margin.stringify to convert to and from a standard string representation that is independent of the current locale.

When an instance of this class is the value of a property of a GraphObject class or Diagram or CommandHandler or a Tool class, you should treat the object as if it were frozen or read-only -- you cannot modify its properties. This allows the property to return a value without allocating a new instance. If you need to do your own calculations with the value, call copy to make a new instance with the same values that you can modify.

Many methods modify the object's properties and then return a reference to "this" object. The only instance method to allocate a new object is the copy method. The static Margin.parse method also allocates a new object.

The "Debug" implementation of this class is significantly slower than the "Release" implementation, mostly due to additional error checking.

You cannot inherit from this class.

Index

Constructors

  • If zero arguments are supplied, zero is used for all four sides. If one argument is supplied, that number is used for all four sides. If two arguments are supplied, the top and bottom sides get the first value, and the left and right sides get the second value. Otherwise there must be four arguments, in the order: top, right, bottom, left.

    Parameters

    • Optional t: number

      the margin for the top side; if not supplied, all sides are zero.

    • Optional r: number

      the margin for the right side; if not supplied, all sides have the value of the first argument.

    • Optional b: number

      the margin for all bottom side; if not supplied, the top and bottom get the value of the first argument, and the right and left sides get the value of the second argument.

    • Optional l: number

      the margin for the left side; must be supplied if the third argument was supplied.

    Returns Margin

Accessors

  • Gets or sets the bottom value of this margin. Default is 0.

  • Gets or sets the left value of this margin. Default is 0.

  • Gets or sets the right value of this margin. Default is 0.

  • Gets or sets the top value of this margin. Default is 0.

Methods

  • Create a copy of this Margin, with the same values.

    Returns Margin

  • Indicates whether the given margin is equal to this Margin.

    Parameters

    • t: number

      top.

    • r: number

      right.

    • b: number

      bottom.

    • l: number

      left.

    Returns boolean

    True if the two Margins have identical Top and Right and Bottom and Left values, false otherwise.

    see

    equals

  • Indicates whether the given Margin is equal to this Margin.

    Parameters

    • m: Margin

      The Margin to compare to this Margin.

    Returns boolean

    True if the two Margins have identical Top and Right and Bottom and Left values, false otherwise.

  • True if this Margin has values that are real numbers and not infinity.

    Returns boolean

  • Modify this Margin so that its Top, Right, Bottom, and Left values are the same as the given Margin.

    Parameters

    Returns Margin

    this.

  • Modify this Margin with new Top, Right, Bottom, and Left values.

    Parameters

    • t: number

      top.

    • r: number

      right.

    • b: number

      bottom.

    • l: number

      left.

    Returns Margin

    this.

  • This static function can be used to read in a Margin from a string that was produced by Margin.stringify.

    go.Margin.parse("1 2 3 4") produces the Margin new go.Margin(1, 2, 3, 4).

    Parameters

    • str: string

    Returns Margin

  • This static function can be used to write out a Margin as a string that can be read by Margin.parse.

    go.Margin.stringify(new go.Margin(1, 2, 3, 4)) produces the string "1 2 3 4".

    Parameters

    Returns string

  • This static function returns a function that can be used as a back converter for a Binding to write out a Margin's values as numbers with a fixed number of digits after the decimal point.

    This is useful for limiting the size of JSON output and making it more legible. It might also be useful for regression testing.

    Example:

      new go.Binding("margin", "margin", go.Margin.parse, go.Margin.stringifyFixed(0))
    

    Parameters

    • digits: number

      must be a non-negative integer

    Returns ((val: Margin) => string)

    a function that converts a Margin to a string without so many decimals

      • (val: Margin): string
      • This static function returns a function that can be used as a back converter for a Binding to write out a Margin's values as numbers with a fixed number of digits after the decimal point.

        This is useful for limiting the size of JSON output and making it more legible. It might also be useful for regression testing.

        Example:

          new go.Binding("margin", "margin", go.Margin.parse, go.Margin.stringifyFixed(0))
        

        Parameters

        Returns string

        a function that converts a Margin to a string without so many decimals

        since

        3.0

    since

    3.0