Class PreviewProperty


  • public class PreviewProperty
    extends Object
    Define a (key, value) pair property attached to a PreviewProperties instance.

    Preview properties are created by renderers to let users configure how items should be rendered. Each property should have a unique name and a type. Users should use the static createProperty() methods to create instances.

    Static default property names are defined in this class to help renderers to reuse external properties and have cleaner code.

    Properties can be grouped by categories, which default are PreviewProperty.CATEGORY_NODES, PreviewProperty.CATEGORY_EDGES, PreviewProperty.CATEGORY_NODE_LABELS, PreviewProperty.CATEGORY_EDGE_LABELS and PreviewProperty.CATEGORY_EDGE_ARROWS.

    Author:
    Mathieu Bastian
    See Also:
    Renderer.getProperties()
    • Field Detail

      • DIRECTED

        public static final String DIRECTED
        General Boolean property which indicates wheter the graph is directed
        See Also:
        Constant Field Values
      • BACKGROUND_COLOR

        public static final String BACKGROUND_COLOR
        General Color property of the background color
        See Also:
        Constant Field Values
      • VISIBILITY_RATIO

        public static final String VISIBILITY_RATIO
        General Float property which indicates the ratio of the visible graph used in preview. For instance if 0.5 only 50% of nodes items are built.
        See Also:
        Constant Field Values
      • MARGIN

        public static final String MARGIN
        General Float property in percentage (0-100) describing the margin size. For instance if the value is 4 the size of the margin is 4% of the total graph width.
        See Also:
        Constant Field Values
      • NODE_BORDER_WIDTH

        public static final String NODE_BORDER_WIDTH
        Node Float property defining the node border size.
        See Also:
        Constant Field Values
      • NODE_BORDER_COLOR

        public static final String NODE_BORDER_COLOR
        Node DependantColor property which defines the border color. A dependant color value is either the node's color or a custom color.
        See Also:
        Constant Field Values
      • NODE_OPACITY

        public static final String NODE_OPACITY
        Node Float property between 0-100 which defines the opacity. 100 means opaque.
        See Also:
        Constant Field Values
      • NODE_PER_NODE_OPACITY

        public static final String NODE_PER_NODE_OPACITY
        Node Boolean property indicating whether or not to use the opacity value defined as part of the Node color. If true, NODE_OPACITY will be ignored.
        See Also:
        Constant Field Values
      • SHOW_EDGES

        public static final String SHOW_EDGES
        Edge Boolean property defining whether to show edges.
        See Also:
        Constant Field Values
      • EDGE_THICKNESS

        public static final String EDGE_THICKNESS
        Edge Float property for the edge's thickness
        See Also:
        Constant Field Values
      • EDGE_CURVED

        public static final String EDGE_CURVED
        Edge Boolean property whether to draw curved edges. A false value means straight edges.
        See Also:
        Constant Field Values
      • EDGE_COLOR

        public static final String EDGE_COLOR
        Edge EdgeColor property defining the edge color. It could be the source's color, the target's color, a mixed color, the edge's original color or a custom color.
        See Also:
        Constant Field Values
      • EDGE_OPACITY

        public static final String EDGE_OPACITY
        Edge Float property between 0-100 which defines the opacity. 100 means opaque.
        See Also:
        Constant Field Values
      • EDGE_RESCALE_WEIGHT

        public static final String EDGE_RESCALE_WEIGHT
        Edge Boolean property defining whether edge's weight should be rescaled between fixed bounds.
        See Also:
        Constant Field Values
      • EDGE_RESCALE_WEIGHT_MIN

        public static final String EDGE_RESCALE_WEIGHT_MIN
        Edge float property defining the minimum weight when edge weight rescaling is enabled.
        See Also:
        Constant Field Values
      • EDGE_RESCALE_WEIGHT_MAX

        public static final String EDGE_RESCALE_WEIGHT_MAX
        Edge float property defining the minimum weight when edge weight rescaling is enabled.
        See Also:
        Constant Field Values
      • EDGE_RADIUS

        public static final String EDGE_RADIUS
        Edge Float property defining an extra distance between the node and the edge.
        See Also:
        Constant Field Values
      • SHOW_NODE_LABELS

        public static final String SHOW_NODE_LABELS
        Node Label Boolean property defining whether to show node labels.
        See Also:
        Constant Field Values
      • NODE_LABEL_FONT

        public static final String NODE_LABEL_FONT
        Node Label Font property defining node label's font.
        See Also:
        Constant Field Values
      • NODE_LABEL_PROPORTIONAL_SIZE

        public static final String NODE_LABEL_PROPORTIONAL_SIZE
        Node Label Boolean property defining whether to use node's size in label size calculation.
        See Also:
        Constant Field Values
      • NODE_LABEL_COLOR

        public static final String NODE_LABEL_COLOR
        Node Label DependantOriginalColor property defining the color label. The color could either be the node's color, the label original color if it has any or a custom color.
        See Also:
        Constant Field Values
      • NODE_LABEL_SHORTEN

        public static final String NODE_LABEL_SHORTEN
        Node Label Boolean property defining whether the label is shortened.
        See Also:
        Constant Field Values
      • NODE_LABEL_MAX_CHAR

        public static final String NODE_LABEL_MAX_CHAR
        Node Label Integer property defining the maximum number of characters.
        See Also:
        Constant Field Values
      • NODE_LABEL_OUTLINE_SIZE

        public static final String NODE_LABEL_OUTLINE_SIZE
        Node Label Outline Float property defining the outline size.
        See Also:
        Constant Field Values
      • NODE_LABEL_OUTLINE_OPACITY

        public static final String NODE_LABEL_OUTLINE_OPACITY
        Node Label Outline Float property between 0-100 which defines the opacity. 100 means opaque.
        See Also:
        Constant Field Values
      • NODE_LABEL_OUTLINE_COLOR

        public static final String NODE_LABEL_OUTLINE_COLOR
        Node Label Outline DependantColor property defining the outline color. The color can be the node's color or a custom color.
        See Also:
        Constant Field Values
      • SHOW_EDGE_LABELS

        public static final String SHOW_EDGE_LABELS
        Edge Label Boolean property defining whether to show edge labels.
        See Also:
        Constant Field Values
      • EDGE_LABEL_FONT

        public static final String EDGE_LABEL_FONT
        Edge Label Font property defining edge label's font.
        See Also:
        Constant Field Values
      • EDGE_LABEL_COLOR

        public static final String EDGE_LABEL_COLOR
        Edge Label DependantOriginalColor property defining the color label. The color could either be the edge's color, the label original color if it has any or a custom color.
        See Also:
        Constant Field Values
      • EDGE_LABEL_SHORTEN

        public static final String EDGE_LABEL_SHORTEN
        Edge Label Boolean property defining whether the label is shortened.
        See Also:
        Constant Field Values
      • EDGE_LABEL_MAX_CHAR

        public static final String EDGE_LABEL_MAX_CHAR
        Edge Label Integer property defining the maximum number of characters.
        See Also:
        Constant Field Values
      • EDGE_LABEL_OUTLINE_SIZE

        public static final String EDGE_LABEL_OUTLINE_SIZE
        Edge Label Outline Float property defining the outline size.
        See Also:
        Constant Field Values
      • EDGE_LABEL_OUTLINE_OPACITY

        public static final String EDGE_LABEL_OUTLINE_OPACITY
        Edge Label Outline Float property between 0-100 which defines the opacity. 100 means opaque.
        See Also:
        Constant Field Values
      • EDGE_LABEL_OUTLINE_COLOR

        public static final String EDGE_LABEL_OUTLINE_COLOR
        Edge Label Outline DependantColor property defining the outline color. The color can be the edge's color or a custom color.
        See Also:
        Constant Field Values
      • MOVING

        public static final String MOVING
        General Boolean property set as true when the user is panning the canvas. Helps to conditionally hide elements while moving to speed things up.
        See Also:
        Constant Field Values
      • CATEGORY_NODES

        public static final String CATEGORY_NODES
        Node category
      • CATEGORY_EDGES

        public static final String CATEGORY_EDGES
        Edge category
      • CATEGORY_NODE_LABELS

        public static final String CATEGORY_NODE_LABELS
        Node Label category
      • CATEGORY_EDGE_LABELS

        public static final String CATEGORY_EDGE_LABELS
        Edge Label category
      • CATEGORY_EDGE_ARROWS

        public static final String CATEGORY_EDGE_ARROWS
        Edge arrow category
    • Method Detail

      • createProperty

        public static PreviewProperty createProperty​(Object source,
                                                     String name)
        Create a new preview property. The name should be unique.
        Parameters:
        source - the property source, for instance the renderer
        name - the property's name
        Returns:
        a new preview property
      • createProperty

        public static PreviewProperty createProperty​(Object source,
                                                     String name,
                                                     Class type)
        Create a new preview property. The name should be unique. If the type is different from basic types (Integer, Float, Double, String, Boolean or Color) make sure to implement a PropertyEditor and register it:
        PropertyEditorManager.registerEditor(MyType.class, MyTypePropertyEditor.class);
        Parameters:
        source - the property source, for instance the renderer
        name - the property's name
        type - the property's value type
        Returns:
        a new preview property
      • createProperty

        public static PreviewProperty createProperty​(Object source,
                                                     String name,
                                                     Class type,
                                                     String displayName,
                                                     String description,
                                                     String category)
        Create a new preview property. The name should be unique. If the type is different from basic types (Integer, Float, Double, String, Boolean or Color) make sure to implement a PropertyEditor and register it:
        PropertyEditorManager.registerEditor(MyType.class, MyTypePropertyEditor.class);
        The category can be one of the default categories:
        • PreviewProperty.CATEGORY_NODES
        • PreviewProperty.CATEGORY_EDGES
        • PreviewProperty.CATEGORY_NODE_LABELS
        • PreviewProperty.CATEGORY_EDGE_LABELS
        • PreviewProperty.CATEGORY_EDGE_ARROWS
        Parameters:
        source - the property source, for instance the renderer
        name - the property's name
        type - the property's value type
        displayName - the property's display name
        description - the property's description
        category - the property's category
        Returns:
        a new preview property
      • createProperty

        public static PreviewProperty createProperty​(Object source,
                                                     String name,
                                                     Class type,
                                                     String displayName,
                                                     String description,
                                                     String category,
                                                     String... dependantProperties)
        Create a new preview property. The name should be unique. If the type is different from basic types (Integer, Float, Double, String, Boolean or Color) make sure to implement a PropertyEditor and register it:
        PropertyEditorManager.registerEditor(MyType.class, MyTypePropertyEditor.class);
        The category can be one of the default categories:
        • PreviewProperty.CATEGORY_NODES
        • PreviewProperty.CATEGORY_EDGES
        • PreviewProperty.CATEGORY_NODE_LABELS
        • PreviewProperty.CATEGORY_EDGE_LABELS
        • PreviewProperty.CATEGORY_EDGE_ARROWS
        The dependantProperties list is used to automatically disable the property if the dependant property is not selected. The dependant properties need to be Boolean type.
        Parameters:
        source - the property source, for instance the renderer
        name - the property's name
        type - the property's value type
        displayName - the property's display name
        description - the property's description
        category - the property's category
        dependantProperties - a list of boolean properties this property depend on
        Returns:
        a new preview property
      • getValue

        public <T> T getValue()
        Returns the property value.
        Type Parameters:
        T - the return type
        Returns:
        the property value or null
      • setValue

        public PreviewProperty setValue​(Object value)
        Sets this property value and return it. The value can be null.
        Parameters:
        value - the value to be set
        Returns:
        this property instance
      • getName

        public String getName()
        Returns the (unique) name of this property.
        Returns:
        the property's name
      • getType

        public Class getType()
        Returns the type of this property.
        Returns:
        this property's type
      • getDisplayName

        public String getDisplayName()
        Returns the display name of this property or null if not set.
        Returns:
        this property's display name or null
      • getDescription

        public String getDescription()
        Returns the description of this property or null if not set.
        Returns:
        this property's description or null
      • getSource

        public Object getSource()
        Returns the source object of this property.
        Returns:
        this property's source object
      • getCategory

        public String getCategory()
        Returns the category of this property or null if not set.
        Returns:
        this property's category or null