com.sun.rave.designtime.markup
Interface MarkupMouseRegion

All Superinterfaces:
DisplayItem
All Known Implementing Classes:
BasicMarkupMouseRegion

public interface MarkupMouseRegion
extends DisplayItem

A MarkupMouseRegion represents a portion (sub-region) of a markup component's rendered markup that has special design-time behavior. This special behavior may include a name, description, right-click context menu, and/or custom behavior in response to mouse clicks.

An instance of MarkupMouseRegion is associated with a particular sub-region of markup via a unique attribute name-value pair. The 'MarkupDesignInfo.annoteRender' method adds the additional design-time only attributes to the markup, as well as supplies an array of these MarkupMouseRegion instances.

IMPLEMENTED BY THE COMPONENT AUTHOR - This interface is designed to be implemented by the component (bean) author. BasicMarkupMouseRegion is available for convenient subclassing.

Version:
1.0
Author:
Joe Nuxoll
See Also:
BasicMarkupMouseRegion

Method Summary
 boolean canLinkBeans(DesignBean targetBean, DesignBean sourceBean, java.lang.Class sourceClass)
          This method is called when an object from a design surface or palette is being dragged 'over' a region represented by this MarkupMouseRegion.
 DisplayAction[] getContextItems()
          Returns an array of DisplayAction objects - used to render a right-click context menu when the user right-clicks on this mouse region.
 boolean isClickable()
          Returns true if this markup region wishes to respond to a mouse click (or series of clicks).
 Result linkBeans(DesignBean targetBean, DesignBean sourceBean)
          This method is called when an object from a design surface or palette has been dropped 'on' a region represented by this MarkupMouseRegion (to establish a link).
 Result regionClicked(int clickCount)
          This method is called when a user clicks the mouse within the bounds of this mouse region.
 
Methods inherited from interface com.sun.rave.designtime.DisplayItem
getDescription, getDisplayName, getHelpKey, getLargeIcon, getSmallIcon
 

Method Detail

canLinkBeans


public boolean canLinkBeans(DesignBean targetBean,
                            DesignBean sourceBean,
                            java.lang.Class sourceClass)
This method is called when an object from a design surface or palette is being dragged 'over' a region represented by this MarkupMouseRegion. If the 'sourceBean' or 'sourceClass' is of interest to the 'targetBean' instance (they can be "linked"), this method should return true. The user will then be presented with visual cues that this is an appropriate place to 'drop' the item and establish a link. If the user decides to drop the item on this targetBean, the 'linkBeans' method will be called. Note that the 'sourceBean' argument may be null if this drag operation is originating from the palette, because an instance of the bean will not have been created yet.

Parameters:
targetBean - The DesignBean instance that the user is 'hovering' the mouse over
sourceBean - The DesignBean instance that the user may potentially 'drop' to link - may be null if this drag operation originated from the palette, because the instance will not have been created yet
sourceClass - The class type of the object that the user may potentially 'drop' to link
Returns:
true if the 'targetBean' cares to have an instance of type 'sourceClass' linked to it, false if not
See Also:
linkBeans(DesignBean, DesignBean)

getContextItems


public DisplayAction[] getContextItems()
Returns an array of DisplayAction objects - used to render a right-click context menu when the user right-clicks on this mouse region.

Returns:
An array of DisplayAction objects

isClickable


public boolean isClickable()
Returns true if this markup region wishes to respond to a mouse click (or series of clicks).

Returns:
true if mouse clicks should be sent to this mouse region, false if not
See Also:
regionClicked(int)

linkBeans


public Result linkBeans(DesignBean targetBean,
                        DesignBean sourceBean)

This method is called when an object from a design surface or palette has been dropped 'on' a region represented by this MarkupMouseRegion (to establish a link). This method will not be called unless the corresponding 'canLinkBeans' method call returned true. Typically, this results in property settings on potentially both of the DesignBean objects.

Parameters:
targetBean - The target DesignBean instance that the user has 'dropped' an object onto to establish a link
sourceBean - The DesignBean instance that has been 'dropped'
Returns:
A Result object, indicating success or failure and including messages for the user
See Also:
canLinkBeans(DesignBean, DesignBean, Class)

regionClicked


public Result regionClicked(int clickCount)
This method is called when a user clicks the mouse within the bounds of this mouse region. This method is only called if the 'isClickable()' method returns true.

Parameters:
clickCount - The count of mouse clicks
Returns:
A Result object
See Also:
isClickable()