Interface DesignableDelegate

All Known Implementing Classes:
BlockDiagramItemDelegate, JComponentItemDelegate, StandaloneDelegate

public interface DesignableDelegate
Defines many functions required for the design panel to interact with a DesignableContainer.
  • Method Details

    • getBounds

      Rectangle2D getBounds(JComponent item, JComponent relativeTo, Rectangle2D rect)
      Fetch the current bounds of the given item, relative to the supplied JComponent. If the rect argument is null, a new Rectangle should be instantiated and returned. Otherwise, rect should be modified and returned to avoid unnecessary Rectangle instantiation, because this function is called very frequently.
    • getShapeBounds

      Shape getShapeBounds(JComponent item, JComponent relativeTo, Rectangle rect)
      Return non-rectangular bounds of the given item relative to the supplied JComponent. If the bounds happen to be rectangular, you may alter the supplied rectangle to avoid instantiating a new shape.
    • getOffsettingParent

      JComponent getOffsettingParent(JComponent source)
      Find the parent component for whose bounds the component is relative to.
    • isOffsettingParent

      boolean isOffsettingParent(JComponent container)
      Tests whether this container is an offsetting parent or not
    • isMovable

      boolean isMovable(JComponent item)
      Defines whether or not an item is inherently movable or not. Note that a normally movable object that is currently "locked" would still return true for this function.
    • isLocked

      boolean isLocked(JComponent item)
      Returns whether a normally movable object is currently locked or not
    • isRotateCapable

      boolean isRotateCapable(JComponent item)
      Returns whether or not an item supports being rotated.
    • isContainer

      boolean isContainer(JComponent item)
      Determines whether any given object is a container. That is - whether it contains other selectable objects inside itself.
      Parameters:
      item - The item to test
      Returns:
      true if item is a container.
    • findObjectsAt

      List<JComponent> findObjectsAt(DesignableContainer container, Point point)
      Performs a basic "hit-test" to find objects in a container underneath a point.
      Parameters:
      point - The point in question, relative to the DesignableContainer
    • findChildren

      Iterator<? extends JComponent> findChildren(JComponent container)
      Returns an iterator that iterates through the children of the given container in decreasing Z-order (highest layer to lowest layer)
    • getChildCount

      int getChildCount(JComponent container)
      Returns the count of the number of items currently held in the given container
    • getParent

      JComponent getParent(JComponent child)
      Finds the given item's parent in the container hierarchy
    • moveObject

      void moveObject(JComponent object, Point2D newLocation)
      Move the given item to the new location. Location is relative to its parent. This is used for realtime, transient moves, so it shouldn't add an undo action.
    • scaleObject

      void scaleObject(JComponent object, Rectangle2D newBounds)
      Scale the given item to the new bounds. Bounds location is relative to its parent. This is used for realtime, transient scales, so it shouldn't add an undo action.
    • rotateObject

      void rotateObject(JComponent object, double angle, Point2D rotationAnchor)
      Rotate the object around the given point by the angle specified.
      Parameters:
      object - The object to rotate.
      angle - The angle to rotate, specified in radians.
      rotationAnchor - The rotation center, relative to the object's parent.
    • getRotationAnchor

      Point2D getRotationAnchor(JComponent object)
      Get the initial or last-used rotation anchor for an object. Point should be specified as a percentage of the object's bounds relative to its position. For example, the center of its bounding rectangle is (0.5, 0.5)
    • setRotationAnchor

      void setRotationAnchor(JComponent object, Point2D point)
      When the rotation anchor gets moved, this is used to store the rotation anchor so that it can be retrieved next time the object is selected.
    • setZOrderPosition

      void setZOrderPosition(JComponent item, int position)
    • notifyObjectsMoved

      void notifyObjectsMoved(List<JComponent> objects, Map<JComponent,Rectangle2D> originalPositions)
    • notifyObjectsRotated

      void notifyObjectsRotated(List<JComponent> objects, double angle, Point2D rotationAnchor)
    • getName

      String getName(JComponent object)
      Returns the "name" of the object.
    • copyMove

      void copyMove(List<JComponent> objects, double dX, double dY)
    • addObject

      void addObject(JComponent parent, JComponent newChild, Rectangle2D newBounds)
      Adds the child into the given parent (which must be a container) at the given bounds, relative to the parent. If the bounds rectangle is null, then the component is assumed to already have it's location set on it.