Class DefaultTagDropHandler

java.lang.Object
com.inductiveautomation.factorypmi.designer.beaninfo.tags.AbstractBindingTagDropHandler
com.inductiveautomation.factorypmi.designer.beaninfo.tags.DefaultTagDropHandler
All Implemented Interfaces:
TagDropHandler
Direct Known Subclasses:
TextComponentTagDropHandler

public class DefaultTagDropHandler extends AbstractBindingTagDropHandler
A TagDropHandler that has a framework to install property bindings between the target component and the dropped tag
  • Constructor Details

    • DefaultTagDropHandler

      public DefaultTagDropHandler(BeanInfo beanInfo)
  • Method Details

    • addBinding

      public void addBinding(Property<?> prop, String propName)
      Adds a binding configuration to bind the given component property to the given tag property. Binding will be bidirectional if the property
    • addOneWayBinding

      public void addOneWayBinding(Property<?> prop, String propName)
    • addBinding

      public void addBinding(Property<?> prop, String propName, boolean forceNonBinding)
    • createBasicBindConfig

      public DefaultTagDropHandler.BindConfiguration createBasicBindConfig(String propName, boolean forceNonBinding)
    • addBinding

      public void addBinding(Property<?> prop, DefaultTagDropHandler.BindConfiguration desc)
    • removeBinding

      public void removeBinding(Property<?> prop)
    • handleDrop

      public boolean handleDrop(DesignerContext context, List<NodeBrowseInfo> nodes, JComponent bean, DropTargetDropEvent dropEvent)
      Adds property bindings according to this handler's binding map. If the dropped tag is for a TagProp other than Value, then that property is used as the value and no other bindings are processed
      Returns:
      a boolean indicating whether or not the drop was successfully handled.
    • handleValueDrop

      protected boolean handleValueDrop(DesignerContext context, NodeBrowseInfo node, JComponent bean)
      This is used to handle most drops. If this is called, you are guaranteed that path is a non-null, non-folder, value property tag path. The default implementation adds simple tag bindings that were defined through calls to addBinding()
    • handlePropertyPathDrop

      protected boolean handlePropertyPathDrop(DesignerContext context, NodeBrowseInfo node, JComponent bean)
      This is called when the drop is an attribute path that isn't the Value property
    • processValueBinding

      protected boolean processValueBinding(DesignerContext context, NodeBrowseInfo tag, JComponent bean, DefaultTagDropHandler.BindConfiguration desc)
      This is called for the value property path for a standard tag drop. The default simply calls processPropertyBinding. (treats value like any other binding)
    • processBinding

      protected boolean processBinding(DesignerContext context, NodeBrowseInfo node, JComponent bean, DefaultTagDropHandler.BindConfiguration desc)
      This is called for each binding defined if the drop is a standard tag drop, except for the Value property
    • processBinding

      protected boolean processBinding(DesignerContext context, TagPath path, Property<?> property, JComponent bean, String propName, boolean nonBidirectional)
      Convenience function for drop handlers that subvert the normal way of doing things to do a quick binding