DropListener Not Invoked
jgilbert Aug 12, 2009 3:48 PMFor some reason my drop listener is not getting called. It did start working very briefly for no apparent reason, but then stopped again.
I have included the code. Can anyone see any reason for this not to work?
I am using 3.3.1.GA and phaseTracker shows that all the phases are executed...
<rich:dragIndicator id="indicator" />
<h:form id="planningForm">
<h:panelGrid columns="2" width="100%"
columnClasses="planning-column,planning-column">
<h:panelGrid columns="1" width="100%">
<c:forEach items="#{milestonePlanner.milestones}" var="mile">
<tt:toggle-panel switchType="client"
id="m#{mile.milestone.id}TP" opened="true" rendered="true"
label="#{mile.milestone.name} (#{mile.milestone.date})">
<rich:dropSupport id="m#{mile.milestone.id}Drop" acceptedTypes="Ticket"
dropValue="#{mile.milestone}"
dropListener="#{milestonePlannerDropListener.processDrop}"
eventsQueue="viewQ"
reRender="planningForm">
</rich:dropSupport>
<h:dataTable value="#{mile.tickets}" var="tic">
<h:column>
<a4j:outputPanel layout="block">
<rich:dragSupport dragIndicator=":indicator"
dragType="Ticket" dragValue="#{tic}">
<rich:dndParam name="label" value="#{tic.title}" />
</rich:dragSupport>
<h:outputText value="#{tic.title}"></h:outputText>
</a4j:outputPanel>
</h:column>
</h:dataTable>
</tt:toggle-panel>
</c:forEach>
</h:panelGrid>
<tt:toggle-panel switchType="client" id="unscheduledTP"
opened="true" rendered="true" label="#{messages['Unscheduled']}">
<rich:dropSupport id="unscheduledDrop" acceptedTypes="Ticket"
dropValue="unscheduled"
dropListener="#{milestonePlannerDropListener.processDrop}"
eventsQueue="viewQ"
reRender="planningForm">
</rich:dropSupport>
<h:dataTable value="#{milestonePlanner.unscheduled}" var="tic">
<h:column>
<a4j:outputPanel layout="block">
<rich:dragSupport dragIndicator=":indicator"
dragType="Ticket" dragValue="#{tic}">
<rich:dndParam name="label" value="#{tic.title}" />
</rich:dragSupport>
<h:outputText value="#{tic.title}"></h:outputText>
</a4j:outputPanel>
</h:column>
</h:dataTable>
</tt:toggle-panel>
</h:panelGrid>
</h:form>
@Name("milestonePlanner")
@Scope(ScopeType.SESSION)
@AutoCreate
public class MilestonePlanner {
...
@Name("milestonePlannerDropListener")
@Scope(ScopeType.EVENT)
@AutoCreate
@Transactional
public static class MilestonePlannerDropListener implements DropListener {
public void processDrop(DropEvent dropEvent) {
Dropzone dropzone = (Dropzone) dropEvent.getComponent();
System.out.println("SRC: " + dropEvent.getSource());
scheduleTicket(dropEvent.getDragValue(), dropzone.getDropValue());
}
public void scheduleTicket(Object drapTicket, Object dropValue) {
System.out.println("DRAG: " + drapTicket + ", DROP: " + dropValue);
}
}
}