Class PaletteNode

All Implemented Interfaces:
HasHandlers
Direct Known Subclasses:
EditNode

public class PaletteNode extends TreeNode
An object representing a component which the user may create dynamically within an application.

A PaletteNode expresses visual properties for how the palette will display it (eg title, icon) as well as instructions for creating the component the paletteNode represents (type, defaults).

Various types of palettes (ListPalette, TreePalette, MenuPalette, TilePalette) render a PaletteNode in different ways, and allow the user to trigger creation in different ways (eg drag and drop, or just click). All share a common pattern for how components are created from palettes.

Note that in a TreePalette, a PaletteNode is essentially a TreeNode and can have properties expected for a TreeNode (eg, showDropIcon). Likewise a PaletteNode in a MenuPalette can have the properties of a MenuItem, such as MenuItem.enableIf().

  • Constructor Details

    • PaletteNode

      public PaletteNode()
    • PaletteNode

      public PaletteNode(JavaScriptObject jsObj)
  • Method Details

    • getOrCreateRef

      public static PaletteNode getOrCreateRef(JavaScriptObject jsObj)
    • setAlwaysUsePlaceholder

      public PaletteNode setAlwaysUsePlaceholder(Boolean alwaysUsePlaceholder)
      If set to true, indicates that a Placeholder should always be shown in place of the actual component.
      Parameters:
      alwaysUsePlaceholder - New alwaysUsePlaceholder value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getAlwaysUsePlaceholder

      public Boolean getAlwaysUsePlaceholder()
      If set to true, indicates that a Placeholder should always be shown in place of the actual component.
      Returns:
      Current alwaysUsePlaceholder value. Default value is null
    • setCanDuplicate

      public PaletteNode setCanDuplicate(Boolean canDuplicate)
      If set to false, indicates that this node cannot be copy & pasted, including disallowing calls to EditContext.makePaletteNode() for EditNodes created from this PaletteNode.
      Parameters:
      canDuplicate - New canDuplicate value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getCanDuplicate

      public Boolean getCanDuplicate()
      If set to false, indicates that this node cannot be copy & pasted, including disallowing calls to EditContext.makePaletteNode() for EditNodes created from this PaletteNode.
      Returns:
      Current canDuplicate value. Default value is null
    • setCanvasDefaults

      public PaletteNode setCanvasDefaults(Canvas defaults)
      Defaults for the component to be created from this palette.

      For example, if type is "ListGrid", properties valid to pass to ListGrid.create().

      Note that event handlers or method overrides cannot be configured as defaults, as they cannot be serialized or restored. Instead, create a subclass that implements the desired behaviors, and use that subclass as type.

      See also Reflection for special concerns when making a GWT subclass usable in Component XML and Dashboards & Tools in general.

      Parameters:
      defaults - New defaults value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
      See Also:
    • getCanvasDefaults

      public Canvas getCanvasDefaults()
      Defaults for the component to be created from this palette.

      For example, if type is "ListGrid", properties valid to pass to ListGrid.create().

      Note that event handlers or method overrides cannot be configured as defaults, as they cannot be serialized or restored. Instead, create a subclass that implements the desired behaviors, and use that subclass as type.

      See also Reflection for special concerns when making a GWT subclass usable in Component XML and Dashboards & Tools in general.

      Returns:
      Current defaults value. Default value is null
    • setCanvasLiveObject

      public PaletteNode setCanvasLiveObject(Canvas liveObject)
      For a paletteNode which should be a "singleton", that is, always provides the exact same object (==) rather than a dynamically created copy, provide the singleton object as liveObject.

      Instead of dynamically creating an object from defaults, the liveObject will simply be assigned to EditNode.liveObject for the created editNode.

      Parameters:
      liveObject - New liveObject value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getCanvasLiveObject

      public Canvas getCanvasLiveObject()
      For a paletteNode which should be a "singleton", that is, always provides the exact same object (==) rather than a dynamically created copy, provide the singleton object as liveObject.

      Instead of dynamically creating an object from defaults, the liveObject will simply be assigned to EditNode.liveObject for the created editNode.

      Returns:
      Current liveObject value. Default value is null
    • setDrawItemDefaults

      public PaletteNode setDrawItemDefaults(DrawItem defaults)
      Defaults for the component to be created from this palette.

      For example, if type is "ListGrid", properties valid to pass to ListGrid.create().

      Note that event handlers or method overrides cannot be configured as defaults, as they cannot be serialized or restored. Instead, create a subclass that implements the desired behaviors, and use that subclass as type.

      See also Reflection for special concerns when making a GWT subclass usable in Component XML and Dashboards & Tools in general.

      Parameters:
      defaults - New defaults value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
      See Also:
    • getDrawItemDefaults

      public DrawItem getDrawItemDefaults()
      Defaults for the component to be created from this palette.

      For example, if type is "ListGrid", properties valid to pass to ListGrid.create().

      Note that event handlers or method overrides cannot be configured as defaults, as they cannot be serialized or restored. Instead, create a subclass that implements the desired behaviors, and use that subclass as type.

      See also Reflection for special concerns when making a GWT subclass usable in Component XML and Dashboards & Tools in general.

      Returns:
      Current defaults value. Default value is null
    • setDrawItemLiveObject

      public PaletteNode setDrawItemLiveObject(DrawItem liveObject)
      For a paletteNode which should be a "singleton", that is, always provides the exact same object (==) rather than a dynamically created copy, provide the singleton object as liveObject.

      Instead of dynamically creating an object from defaults, the liveObject will simply be assigned to EditNode.liveObject for the created editNode.

      Parameters:
      liveObject - New liveObject value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getDrawItemLiveObject

      public DrawItem getDrawItemLiveObject()
      For a paletteNode which should be a "singleton", that is, always provides the exact same object (==) rather than a dynamically created copy, provide the singleton object as liveObject.

      Instead of dynamically creating an object from defaults, the liveObject will simply be assigned to EditNode.liveObject for the created editNode.

      Returns:
      Current liveObject value. Default value is null
    • setDrawPaneDefaults

      public PaletteNode setDrawPaneDefaults(DrawPane defaults)
      Defaults for the component to be created from this palette.

      For example, if type is "ListGrid", properties valid to pass to ListGrid.create().

      Note that event handlers or method overrides cannot be configured as defaults, as they cannot be serialized or restored. Instead, create a subclass that implements the desired behaviors, and use that subclass as type.

      See also Reflection for special concerns when making a GWT subclass usable in Component XML and Dashboards & Tools in general.

      Parameters:
      defaults - New defaults value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
      See Also:
    • getDrawPaneDefaults

      public DrawPane getDrawPaneDefaults()
      Defaults for the component to be created from this palette.

      For example, if type is "ListGrid", properties valid to pass to ListGrid.create().

      Note that event handlers or method overrides cannot be configured as defaults, as they cannot be serialized or restored. Instead, create a subclass that implements the desired behaviors, and use that subclass as type.

      See also Reflection for special concerns when making a GWT subclass usable in Component XML and Dashboards & Tools in general.

      Returns:
      Current defaults value. Default value is null
    • setDrawPaneLiveObject

      public PaletteNode setDrawPaneLiveObject(DrawPane liveObject)
      For a paletteNode which should be a "singleton", that is, always provides the exact same object (==) rather than a dynamically created copy, provide the singleton object as liveObject.

      Instead of dynamically creating an object from defaults, the liveObject will simply be assigned to EditNode.liveObject for the created editNode.

      Parameters:
      liveObject - New liveObject value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getDrawPaneLiveObject

      public DrawPane getDrawPaneLiveObject()
      For a paletteNode which should be a "singleton", that is, always provides the exact same object (==) rather than a dynamically created copy, provide the singleton object as liveObject.

      Instead of dynamically creating an object from defaults, the liveObject will simply be assigned to EditNode.liveObject for the created editNode.

      Returns:
      Current liveObject value. Default value is null
    • setEditNodeProperties

      public PaletteNode setEditNodeProperties(EditNode editNodeProperties)
      Properties to be applied to the editNode when created.
      Parameters:
      editNodeProperties - New editNodeProperties value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getEditNodeProperties

      public EditNode getEditNodeProperties()
      Properties to be applied to the editNode when created.
      Returns:
      Current editNodeProperties value. Default value is null
    • setEditProxyProperties

      public PaletteNode setEditProxyProperties(EditProxy editProxyProperties)
      Properties to be applied to the liveObject.editProxy when created.
      Parameters:
      editProxyProperties - New editProxyProperties value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
      See Also:
    • getEditProxyProperties

      public EditProxy getEditProxyProperties()
      Properties to be applied to the liveObject.editProxy when created.
      Returns:
      Current editProxyProperties value. Default value is null
    • setFormItemDefaults

      public PaletteNode setFormItemDefaults(FormItem defaults)
      Defaults for the component to be created from this palette.

      For example, if type is "ListGrid", properties valid to pass to ListGrid.create().

      Note that event handlers or method overrides cannot be configured as defaults, as they cannot be serialized or restored. Instead, create a subclass that implements the desired behaviors, and use that subclass as type.

      See also Reflection for special concerns when making a GWT subclass usable in Component XML and Dashboards & Tools in general.

      Parameters:
      defaults - New defaults value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getFormItemDefaults

      public FormItem getFormItemDefaults()
      Defaults for the component to be created from this palette.

      For example, if type is "ListGrid", properties valid to pass to ListGrid.create().

      Note that event handlers or method overrides cannot be configured as defaults, as they cannot be serialized or restored. Instead, create a subclass that implements the desired behaviors, and use that subclass as type.

      See also Reflection for special concerns when making a GWT subclass usable in Component XML and Dashboards & Tools in general.

      Returns:
      Current defaults value. Default value is null
    • setFormItemLiveObject

      public PaletteNode setFormItemLiveObject(FormItem liveObject)
      For a paletteNode which should be a "singleton", that is, always provides the exact same object (==) rather than a dynamically created copy, provide the singleton object as liveObject.

      Instead of dynamically creating an object from defaults, the liveObject will simply be assigned to EditNode.liveObject for the created editNode.

      Parameters:
      liveObject - New liveObject value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getFormItemLiveObject

      public FormItem getFormItemLiveObject()
      For a paletteNode which should be a "singleton", that is, always provides the exact same object (==) rather than a dynamically created copy, provide the singleton object as liveObject.

      Instead of dynamically creating an object from defaults, the liveObject will simply be assigned to EditNode.liveObject for the created editNode.

      Returns:
      Current liveObject value. Default value is null
    • setIcon

      public PaletteNode setIcon(String icon)
      Icon for this paletteNode.
      Overrides:
      setIcon in class TreeNode
      Parameters:
      icon - New icon value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
      See Also:
    • getIcon

      public String getIcon()
      Icon for this paletteNode.
      Overrides:
      getIcon in class TreeNode
      Returns:
      Current icon value. Default value is null
      See Also:
    • setIdName

      public PaletteNode setIdName(String idName)
      Name used to create unique component ID. If not specified, type is used.

      Note: idName must follow all rules for a Identifier.

      Parameters:
      idName - New idName value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getIdName

      public String getIdName()
      Name used to create unique component ID. If not specified, type is used.

      Note: idName must follow all rules for a Identifier.

      Returns:
      Current idName value. Default value is null
    • setIdPrefix

      public PaletteNode setIdPrefix(String idPrefix)
      Deprecated.
      As of Smart GWT version 12.1, deprecated in favor of idName
      Prefix used to create unique component ID. If not specified, type is used.
      Parameters:
      idPrefix - New idPrefix value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getIdPrefix

      public String getIdPrefix()
      Deprecated.
      As of Smart GWT version 12.1, deprecated in favor of idName
      Prefix used to create unique component ID. If not specified, type is used.
      Returns:
      Current idPrefix value. Default value is null
    • setPlaceholderImage

      public PaletteNode setPlaceholderImage(String placeholderImage)
      Image to display in lieu of the usual placeholder text.
      Parameters:
      placeholderImage - New placeholderImage value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
      See Also:
    • getPlaceholderImage

      public String getPlaceholderImage()
      Image to display in lieu of the usual placeholder text.
      Returns:
      Current placeholderImage value. Default value is null
      See Also:
    • setPlaceholderProperties

      public PaletteNode setPlaceholderProperties(Label placeholderProperties)
      Properties to be applied to the liveObject when created as a Placeholder.
      Parameters:
      placeholderProperties - New placeholderProperties value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
      See Also:
    • getPlaceholderProperties

      public Label getPlaceholderProperties()
      Properties to be applied to the liveObject when created as a Placeholder.
      Returns:
      Current placeholderProperties value. Default value is null
    • setRecreateOnChange

      public PaletteNode setRecreateOnChange(Boolean recreateOnChange)
      If set to true, indicates instead of updating the changed property on the target live component a new live component is created with the current configured properties.

      This property is typically set when a custom component is being used that doesn't support setters for any or most of its properties and a change can be reflected by recreating the component.

      Individual properties of the target component can be marked similarly on the component's schema for more fine-grained control. See DataSourceField.recreateOnChange.

      Parameters:
      recreateOnChange - New recreateOnChange value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getRecreateOnChange

      public Boolean getRecreateOnChange()
      If set to true, indicates instead of updating the changed property on the target live component a new live component is created with the current configured properties.

      This property is typically set when a custom component is being used that doesn't support setters for any or most of its properties and a change can be reflected by recreating the component.

      Individual properties of the target component can be marked similarly on the component's schema for more fine-grained control. See DataSourceField.recreateOnChange.

      Returns:
      Current recreateOnChange value. Default value is null
    • setRequiredProperties

      public PaletteNode setRequiredProperties(String requiredProperties)
      Comma separated list of properties for this component that must be provided in EditNode.defaults before the component will be created. Otherwise a Placeholder will be used until the required properties are satisfied.
      Parameters:
      requiredProperties - New requiredProperties value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
    • getRequiredProperties

      public String getRequiredProperties()
      Comma separated list of properties for this component that must be provided in EditNode.defaults before the component will be created. Otherwise a Placeholder will be used until the required properties are satisfied.
      Returns:
      Current requiredProperties value. Default value is null
    • setTitle

      public PaletteNode setTitle(String title)
      Textual title for this paletteNode.
      Overrides:
      setTitle in class TreeNode
      Parameters:
      title - New title value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
      See Also:
    • getTitle

      public String getTitle()
      Textual title for this paletteNode.
      Overrides:
      getTitle in class TreeNode
      Returns:
      Current title value. Default value is null
      See Also:
    • setType

      public PaletteNode setType(String type)
      String this paletteNode creates, for example, "ListGrid".
      Parameters:
      type - New type value. Default value is null
      Returns:
      PaletteNode instance, for chaining setter calls
      See Also:
    • getType

      public String getType()
      String this paletteNode creates, for example, "ListGrid".
      Returns:
      Current type value. Default value is null
      See Also:
    • getLiveObject

      public Object getLiveObject()
      For a paletteNode which should be a "singleton", that is, always provides the exact same object (==) rather than a dynamically created copy, provide the singleton object as liveObject.

      Instead of dynamically creating an object from defaults, the liveObject will simply be assigned to EditNode.liveObject for the created editNode.

      Use the more specific live object getter API, such as getCanvasLiveObject() if you are sure of the type.

      Returns:
      Object
      See Also: