/** Enables/disables dropping support. * @param state true means drops into view are allowed, * false forbids any drops into this view. */ public void setDropTarget(boolean state) { // create drop support if needed if (dropActive && (dropSupport == null)) { dropSupport = new OutlineViewDropSupport(this, outline, dropTargetPopupAllowed); } // activate / deactivate support according to the state dropActive = state; if (dropSupport != null) { dropSupport.activate(dropActive); } }
/** User drags over us */ public void dragOver(DropTargetDragEvent dtde) { log("dragOver " + dtde); // NOI18N // bugfix #34483; jdk1.4.1 on w2k could calls dragOver() before dragEnter() // (jkdbug fixed in 1.4.2) // this check make dragOver/Enter more robust checkStoredGlassPane(); dropIndex = -1; // set a status and cursor of dnd action doDragOver(dtde); }
int row = view.getOutline().rowAtPoint(p); int column = view.getOutline().columnAtPoint(p); log("doDragOver row == " + row + " column == " + column); // NOI18N if (canDrop(dropNode, dropAction, dtde.getTransferable())) { removeDropLine(); return ; } else { dropNode = getNodeForDrop(p); log("doDragOver dropNode == " + dropNode); // NOI18N dropIndex = -1; dtde.rejectDrag(); removeDropLine(); log("nodeArea == " + nodeArea); // NOI18N if (nodeArea != null) { pointAt = DragDropUtilities.NODE_CENTRAL; log("dropNode is parent 1"); // NOI18N dropNode = dropNode.getParentNode(); isParentNodeDrop = true; view.getOutline().convertRowIndexToModel(row)); if (LOGABLE) { log("tp == " + tp); //NOI18N
boolean dropResult = true; try { log("drop"); stopDragging(); Node dropNode = getNodeForDrop(dtde.getLocation()); if (LOGABLE) { log("drop dropNode == " + dropNode); ); if (!canDrop(dropNode, dropAction, dtde.getTransferable())) { if (canReorder(dropNode, dragNodes)) { performReorder(dropNode, dragNodes, lowerNodeIdx, upperNodeIdx); dtde.acceptDrop(dropAction); } else { log(ptCut[i].getName()+", "+System.identityHashCode(ptCut[i])); log(ptCopy[i].getName()+", "+System.identityHashCode(ptCopy[i])); if (canReorder(dropNode, dragNodes)) { final Node tempDropNode = dropNode; final int tmpUpper = upperNodeIdx; if (canReorder(dropNode, diffNodes) && lowerNodeIdx >= 0 && upperNodeIdx >= 0 ) { performReorder(dropNode, diffNodes, lowerNodeIdx, upperNodeIdx);
private void performReorder(final Node folder, Node[] dragNodes, int lNode, int uNode) { try { Index indexCookie = folder.getCookie (Index.class); log("performReorder indexCookie == " + indexCookie); if (!containsNumber(indexes, indexesLength, i)) { perm[i] = k++; if (!containsNumber(indexes, indexesLength, i)) { perm[i] = k++;
/** Activates or deactivates Drag support on asociated JTree * component * @param active true if the support should be active, false * otherwise */ public void activate(boolean active) { if (this.active == active) { return; } this.active = active; if (GraphicsEnvironment.isHeadless()) { return; } getDropTarget().setActive(active); //we want to support drop into scroll pane's free area and treat it as 'root node drop' if( null == outerDropTarget ) { outerDropTarget = new DropTarget(view.getViewport(), view.getAllowedDropActions(), this, false); } outerDropTarget.setActive(active); }
/** User is starting to drag over us */ public void dragEnter(DropTargetDragEvent dtde) { log("dragEnter " + dtde); // NOI18N checkStoredGlassPane(); dropIndex = -1; // set a status and cursor of dnd action doDragOver(dtde); }