java类java.awt.dnd.DnDConstants的实例源码

CategoryTest.java 文件源码 项目:incubator-netbeans 阅读 29 收藏 0 点赞 0 评论 0
public void testDropItemBefore() throws IOException {
    PaletteActions actions = new DummyActions();
    PaletteController pc = PaletteFactory.createPalette( getRootFolderName(), actions );
    Model model = pc.getModel();

    Category[] categories = model.getCategories();

    Category srcCat = categories[0];
    Item[] srcItemsBefore = srcCat.getItems();
    Item dropItem = srcItemsBefore[0];

    Category tgtCat = categories[1];
    Item[] tgtItemsBefore = tgtCat.getItems();
    Item target = tgtItemsBefore[5];

    tgtCat.dropItem( dropItem.cut(), DnDConstants.ACTION_COPY_OR_MOVE, target, true );

    //force all nodes in the palette to update their children
    pc.refresh();
    categories = model.getCategories();
    srcCat = categories[0];
    tgtCat = categories[1];

    Item[] srcItemsAfter = srcCat.getItems();
    Item[] tgtItemsAfter = tgtCat.getItems();

    assertEquals( srcItemsBefore.length, srcItemsAfter.length+1 );
    for( int i=0; i<srcItemsAfter.length; i++ ) {
        assertEquals( srcItemsBefore[i+1].getName(), srcItemsAfter[i].getName() );
    }

    assertEquals( tgtItemsBefore.length, tgtItemsAfter.length-1 );
    assertEquals( target.getName(), tgtItemsAfter[5+1].getName() );
    assertEquals( dropItem.getName(), tgtItemsAfter[5].getName() );
}
MotifDnDConstants.java 文件源码 项目:jdk8u-jdk 阅读 23 收藏 0 点赞 0 评论 0
public static int getMotifActionsForJavaActions(int javaActions) {
    int motifActions = MOTIF_DND_NOOP;

    if ((javaActions & DnDConstants.ACTION_MOVE) != 0) {
        motifActions |= MOTIF_DND_MOVE;
    }
    if ((javaActions & DnDConstants.ACTION_COPY) != 0) {
        motifActions |= MOTIF_DND_COPY;
    }
    if ((javaActions & DnDConstants.ACTION_LINK) != 0) {
        motifActions |= MOTIF_DND_LINK;
    }

    return motifActions;
}
DragAndDropHandlerTest.java 文件源码 项目:incubator-netbeans 阅读 30 收藏 0 点赞 0 评论 0
public void testCanDrop() throws Exception {
    PaletteActions actions = new DummyActions();
    PaletteController pc = PaletteFactory.createPalette( getRootFolderName(), actions );
    Model model = pc.getModel();

    Category cat = model.getCategories()[0];

    DragAndDropHandler handler = DragAndDropHandler.getDefault();

    DataFlavor[] flavors = new DataFlavor[] { PaletteController.ITEM_DATA_FLAVOR };
    assertTrue( handler.canDrop( cat.getLookup(), flavors, DnDConstants.ACTION_COPY_OR_MOVE ) );

    flavors = new DataFlavor[] { new DataFlavor( "text/xml" )  };
    assertFalse( handler.canDrop( cat.getLookup(), flavors, DnDConstants.ACTION_COPY_OR_MOVE ) );
}
DragAndDropHandlerTest.java 文件源码 项目:incubator-netbeans 阅读 22 收藏 0 点赞 0 评论 0
public void testDoDropItemToOtherCategory() throws Exception {
    PaletteActions actions = new DummyActions();
    PaletteController pc = PaletteFactory.createPalette( getRootFolderName(), actions );
    Model model = pc.getModel();

    Category[] categories = model.getCategories();

    Category srcCat = categories[0];
    Item[] srcItemsBefore = srcCat.getItems();
    Item dropItem = srcItemsBefore[0];

    Category tgtCat = categories[1];
    Item[] tgtItemsBefore = tgtCat.getItems();
    Item target = tgtItemsBefore[5];

    DragAndDropHandler handler = DragAndDropHandler.getDefault();

    assertTrue( handler.doDrop( tgtCat.getLookup(), dropItem.cut(), DnDConstants.ACTION_COPY_OR_MOVE, 5 ) );

    //force all nodes in the palette to update their children
    pc.refresh();
    categories = model.getCategories();
    srcCat = categories[0];
    tgtCat = categories[1];

    Item[] srcItemsAfter = srcCat.getItems();
    Item[] tgtItemsAfter = tgtCat.getItems();

    assertEquals( srcItemsBefore.length, srcItemsAfter.length+1 );
    for( int i=0; i<srcItemsAfter.length; i++ ) {
        assertEquals( srcItemsBefore[i+1].getName(), srcItemsAfter[i].getName() );
    }

    assertEquals( tgtItemsBefore.length, tgtItemsAfter.length-1 );
    assertEquals( target.getName(), tgtItemsAfter[5+1].getName() );
    assertEquals( dropItem.getName(), tgtItemsAfter[5].getName() );
}
DnDSupport.java 文件源码 项目:incubator-netbeans 阅读 25 收藏 0 点赞 0 评论 0
public void register(Component c) {
    synchronized( recognizers ) {
        DragGestureRecognizer dgr = recognizers.get( c );
        if( null == dgr ) {
            dgr = dragSource.createDefaultDragGestureRecognizer(c, DnDConstants.ACTION_MOVE, this);
            recognizers.put( c, dgr );
        }
    }
}
DnDSupport.java 文件源码 项目:incubator-netbeans 阅读 24 收藏 0 点赞 0 评论 0
public void dragEnter(DropTargetDragEvent e) {
    if( e.isDataFlavorSupported( buttonDataFlavor ) || e.isDataFlavorSupported( actionDataFlavor ) ) {
        e.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
        isButtonDrag = true; //in case use is dragging something from the customizer window
    } else if( e.isDataFlavorSupported( toolbarDataFlavor ) ) {
        e.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
    } else {
        e.rejectDrag();
    }
}
DnDSupport.java 文件源码 项目:incubator-netbeans 阅读 24 收藏 0 点赞 0 评论 0
public void dragOver(DropTargetDragEvent e) {
    if( e.isDataFlavorSupported( buttonDataFlavor ) || e.isDataFlavorSupported( actionDataFlavor ) ) {
        updateDropGesture( e );
        if( !validateDropPosition() ) {
            e.rejectDrag();
        } else {
            e.acceptDrag( DnDConstants.ACTION_COPY_OR_MOVE );
        }
    } else if( e.isDataFlavorSupported( toolbarDataFlavor ) ) {
        e.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
    } else {
        e.rejectDrag();
    }
}
SunDropTargetContextPeer.java 文件源码 项目:jdk8u-jdk 阅读 22 收藏 0 点赞 0 评论 0
/**
 * acceptDrag
 */

public synchronized void acceptDrag(int dragOperation) {
    if (currentDT == null) {
        throw new InvalidDnDOperationException("No Drag pending");
    }
    currentDA = mapOperation(dragOperation);
    if (currentDA != DnDConstants.ACTION_NONE) {
        dragRejected = false;
    }
}
IndexedCustomizer.java 文件源码 项目:incubator-netbeans 阅读 23 收藏 0 点赞 0 评论 0
/** Initiating the drag */
public void dragGestureRecognized(DragGestureEvent dge) {
    // check allowed actions
    if ((dge.getDragAction() & DnDConstants.ACTION_MOVE) == 0) {
        return;
    }

    // prepare transferable and start the drag
    int index = comp.locationToIndex(dge.getDragOrigin());

    // no index, then no dragging...
    if (index < 0) {
        return;
    }

    //      System.out.println("Starting drag..."); // NOI18N
    // create our flavor for transferring the index
    myFlavor = new DataFlavor(
            String.class, NbBundle.getBundle(IndexedCustomizer.class).getString("IndexedFlavor")
        );

    try {
        dge.startDrag(DragSource.DefaultMoveDrop, new IndexTransferable(myFlavor, index), this);

        // remember the gesture
        this.dge = dge;
    } catch (InvalidDnDOperationException exc) {
        Logger.getLogger(IndexedCustomizer.class.getName()).log(Level.WARNING, null, exc);

        // PENDING notify user - cannot start the drag
    }
}
IndexedCustomizer.java 文件源码 项目:incubator-netbeans 阅读 29 收藏 0 点赞 0 评论 0
/** User drag over us */
public void dragOver(DropTargetDragEvent dtde) {
    if (!checkConditions(dtde)) {
        dtde.rejectDrag();

        if (lastIndex >= 0) {
            cellRenderer.draggingExit();
            comp.repaint(comp.getCellBounds(lastIndex, lastIndex));
            lastIndex = -1;
        }
    } else {
        dtde.acceptDrag(DnDConstants.ACTION_MOVE);

        int index = comp.locationToIndex(dtde.getLocation());

        if (lastIndex == index) {
            cellRenderer.draggingOver(index, ids.getDragGestureEvent().getDragOrigin(), dtde.getLocation());
        } else {
            if (lastIndex < 0) {
                lastIndex = index;
            }

            cellRenderer.draggingExit();
            cellRenderer.draggingEnter(index, ids.getDragGestureEvent().getDragOrigin(), dtde.getLocation());
            comp.repaint(comp.getCellBounds(lastIndex, index));
            lastIndex = index;
        }
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号