Droppable

Table of Contents

Overview

Since 3.0

The <ace:droppable> tag makes another component capable of accepting draggable components on its area and firing events when this occurs.

See the ICEfaces Showcase Live Demo of this component, complete with source code.

Getting Started

The component we want to make droppable is specified as the value of the for attribute.

<h:panelGroup id="drop" styleClass="drop-area">
</h:panelGroup>

<ace:droppable for="drop" />

Alernatively, the for value can be omitted and the parent component will be made droppable.

<h:panelGroup id="drop" styleClass="drop-area">
    <ace:droppable />
</h:panelGroup>

Attributes

TagLib Documentation
This section covers attributes involved in the typical use-cases for this component. For reference, the complete taglib documentation for this component is available here.

for Id of the component that will have the droppable behavior.

accept jQuery selector to define the set of acceptable draggables.

scope Keyword of this droppable component. Only draggables with the same keyword will be allowed to be dropped on this droppable.

tolerance Specifies the policy to determine when a draggable is considered to be 'over' the droppable. Possible values include: fit (draggable must be completely contained in droppable), intersect (> 50% of the draggable must be inside the droppable). pointer (cursor must be inside droppable) and touch (the draggable touches any part of the droppable).

Event Listeners

dropListener Method called whenever a draggable is moved into this droppable. The method receives a single DragDropEvent argument.

Client Behavior Events

drop Fired when a draggable component is dropped on this droppable component (default event).

JavaScript APIs

ICEfaces 3.x

The client side component object is exposed through the global variable name specified in the widgetVar attribute.

ICEfaces 4+

The "widgetVar" attribute on the ACE components has been removed in ICEfaces 4 and in its place a new "ice.ace.instance()" client JavaScript object lookup API has been introduced. The reason for this change is to enable lazy-initialization of the ACE component JavaScript objects to improve runtime performance and reduce browser memory use.

var widget = ice.ace.instance('frm:componentId);
The ice.ace.instance function requires the full client id of the component to be specified, such as "j_idt77:componentId" instead of just "componentId". To reduce the complexity of working with complete IDs with this function it may be preferable in some cases to use prependId="false" in the enclosing form (e.g. <h:form prependId="false">).
This component doesn't have a client-side API made specifically to be used by application developers. However, the component's internal methods and variables can be accessed in this way, including the underlying jQuery object and objects from underlying Javascript libraries (if applicable), and can be used for whatever purpose a developer might have in mind.
Javascript callbacks can be supplied in the onStart, onError, onSuccess, and onComplete attributes of the <ace:ajax /> tag for the drop event. The onStart callback must explicitly return true if the ajax event is to continue.

Keyboard and ARIA support

At the moment, there is no keyboard and ARIA suppport.

Known Issues

None.

Other Resources

None.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

© Copyright 2021 ICEsoft Technologies Canada Corp.