* Cache a list of eligible drop controllers, sorted by relative DOM positions * of their respective drop targets. Called at the beginning of each drag operation, * or whenever drop target eligibility has changed while dragging. * * @param boundaryPanel boundary area for drop target eligibility considerations * @param context the current drag context """ def resetCache(self, boundaryPanel, context): ArrayList list = ArrayList() if context.draggable is not None: WidgetArea boundaryArea = WidgetArea(boundaryPanel, None) for Iterator iterator = dropControllerList.iterator(); iterator.hasNext();: DropController dropController = (DropController) iterator.next() Candidate candidate = Candidate(dropController) if DOMUtil.isOrContains(context.draggable.getElement(), candidate.getDropTarget().getElement())) { continue if candidate.getTargetArea().intersects(boundaryArea): list.add(candidate) sortedCandidates = (Candidate[]) list.toArray(Candidate[list.size()]) Arrays.sort(sortedCandidates)