@Override
public boolean executeDrop(JTree targetTree, Object draggedNode, Object targetNode, int action) {
if (action == DnDConstants.ACTION_COPY) {
return false;
} else if (action == DnDConstants.ACTION_MOVE) {
if (canMove(draggedNode, targetNode)) {
if (draggedNode == targetNode)
return true;
listener.moveRequested(new Event(null), (AddTool) draggedNode, (AddTool) targetNode);
return true;
} else {
return false;
}
} else {
return false;
}
}
java类java.awt.dnd.DnDConstants的实例源码
ProjectExplorer.java 文件源码
项目:Logisim
阅读 31
收藏 0
点赞 0
评论 0
ImageTransferTest.java 文件源码
项目:jdk8u-jdk
阅读 21
收藏 0
点赞 0
评论 0
ImageDragSource() {
formats = retrieveFormatsToTest();
passedArray = new boolean[formats.length];
final DragSourceListener dsl = new DragSourceAdapter() {
public void dragDropEnd(DragSourceDropEvent e) {
System.err.println("Drop was successful=" + e.getDropSuccess());
notifyTransferSuccess(e.getDropSuccess());
if (++fi < formats.length) {
leaveFormat(formats[fi]);
}
}
};
new DragSource().createDefaultDragGestureRecognizer(frame,
DnDConstants.ACTION_COPY,
dge -> dge.startDrag(null, new ImageSelection(image), dsl));
leaveFormat(formats[fi]);
}
DragDropUtilities.java 文件源码
项目:incubator-netbeans
阅读 29
收藏 0
点赞 0
评论 0
/** Utility method.
* @return true if given node supports given action,
* false otherwise.
*/
static boolean checkNodeForAction(Node node, int dragAction) {
if (
node.canCut() &&
((dragAction == DnDConstants.ACTION_MOVE) || (dragAction == DnDConstants.ACTION_COPY_OR_MOVE))
) {
return true;
}
if (
node.canCopy() &&
((dragAction == DnDConstants.ACTION_COPY) || (dragAction == DnDConstants.ACTION_COPY_OR_MOVE) ||
(dragAction == DnDConstants.ACTION_LINK) || (dragAction == DnDConstants.ACTION_REFERENCE))
) {
return true;
}
// hmmm, conditions not satisfied..
return false;
}
CategoryTest.java 文件源码
项目:incubator-netbeans
阅读 32
收藏 0
点赞 0
评论 0
/**
* Test of moveItem method, of class org.netbeans.modules.palette.Category.
*/
public void testMoveItemAfter() throws IOException {
PaletteActions actions = new DummyActions();
PaletteController pc = PaletteFactory.createPalette( getRootFolderName(), actions );
Model model = pc.getModel();
Category[] categories = model.getCategories();
Category cat = categories[0];
Item[] itemsBeforeMove = cat.getItems();
Item source = itemsBeforeMove[0];
Item target = itemsBeforeMove[itemsBeforeMove.length-1];
cat.dropItem( createTransferable( source ), DnDConstants.ACTION_COPY_OR_MOVE, target, false );
Item[] itemsAfterMove = cat.getItems();
assertEquals( itemsBeforeMove.length, itemsAfterMove.length );
assertEquals( source.getName(), itemsAfterMove[itemsAfterMove.length-1].getName() );
assertEquals( itemsBeforeMove[1].getName(), itemsAfterMove[0].getName() );
assertEquals( target.getName(), itemsAfterMove[itemsAfterMove.length-1-1].getName() );
}
DragAndDropHandlerTest.java 文件源码
项目:incubator-netbeans
阅读 24
收藏 0
点赞 0
评论 0
public void testCanDropText() throws Exception {
PaletteActions actions = new DummyActions();
PaletteController pc = PaletteFactory.createPalette( getRootFolderName(), actions );
Model model = pc.getModel();
Category cat = model.getCategories()[0];
DragAndDropHandler handler = new TextDragAndDropHandler();
DataFlavor[] flavors = new DataFlavor[] { new DataFlavor( "text/xml" ) };
assertTrue( handler.canDrop( cat.getLookup(), flavors, DnDConstants.ACTION_COPY_OR_MOVE ) );
flavors = new DataFlavor[] { new DataFlavor( "text/html" ) };
assertTrue( handler.canDrop( cat.getLookup(), flavors, DnDConstants.ACTION_COPY_OR_MOVE ) );
flavors = new DataFlavor[] { new DataFlavor( "unsupported/mimetype" ) };
assertFalse( handler.canDrop( cat.getLookup(), flavors, DnDConstants.ACTION_COPY_OR_MOVE ) );
}
MissingDragExitEventTest.java 文件源码
项目:openjdk-jdk10
阅读 36
收藏 0
点赞 0
评论 0
private static void initAndShowUI() {
frame = new JFrame("Test frame");
frame.setSize(SIZE, SIZE);
frame.setLocationRelativeTo(null);
final JTextArea jta = new JTextArea();
jta.setBackground(Color.RED);
frame.add(jta);
jta.setText("1234567890");
jta.setFont(jta.getFont().deriveFont(150f));
jta.setDragEnabled(true);
jta.selectAll();
jta.setDropTarget(new DropTarget(jta, DnDConstants.ACTION_COPY,
new TestdropTargetListener()));
jta.addMouseListener(new TestMouseAdapter());
frame.setVisible(true);
}
XMouseDragGestureRecognizer.java 文件源码
项目:openjdk-jdk10
阅读 22
收藏 0
点赞 0
评论 0
/**
* Invoked when a mouse button is pressed on a component.
*/
public void mouseDragged(MouseEvent e) {
if (!events.isEmpty()) { // gesture pending
int dop = mapDragOperationFromModifiers(e);
if (dop == DnDConstants.ACTION_NONE) {
return;
}
MouseEvent trigger = (MouseEvent)events.get(0);
Point origin = trigger.getPoint();
Point current = e.getPoint();
int dx = Math.abs(origin.x - current.x);
int dy = Math.abs(origin.y - current.y);
if (dx > motionThreshold || dy > motionThreshold) {
fireDragGestureRecognized(dop, ((MouseEvent)getTriggerEvent()).getPoint());
} else
appendEvent(e);
}
}
XMouseDragGestureRecognizer.java 文件源码
项目:openjdk-jdk10
阅读 33
收藏 0
点赞 0
评论 0
/**
* determine the drop action from the event
*/
protected int mapDragOperationFromModifiers(MouseEvent e) {
int mods = e.getModifiersEx();
int btns = mods & ButtonMask;
// Do not allow right mouse button drag since Motif DnD does not
// terminate drag operation on right mouse button release.
if (!(btns == InputEvent.BUTTON1_DOWN_MASK ||
btns == InputEvent.BUTTON2_DOWN_MASK)) {
return DnDConstants.ACTION_NONE;
}
return
SunDragSourceContextPeer.convertModifiersToDropAction(mods,
getSourceActions());
}
WMouseDragGestureRecognizer.java 文件源码
项目:openjdk-jdk10
阅读 26
收藏 0
点赞 0
评论 0
/**
* determine the drop action from the event
*/
protected int mapDragOperationFromModifiers(MouseEvent e) {
int mods = e.getModifiersEx();
int btns = mods & ButtonMask;
// Prohibit multi-button drags.
if (!(btns == InputEvent.BUTTON1_DOWN_MASK ||
btns == InputEvent.BUTTON2_DOWN_MASK ||
btns == InputEvent.BUTTON3_DOWN_MASK)) {
return DnDConstants.ACTION_NONE;
}
return
SunDragSourceContextPeer.convertModifiersToDropAction(mods,
getSourceActions());
}
SubtitleDownloaderUI.java 文件源码
项目:SubtitleDownloader
阅读 21
收藏 0
点赞 0
评论 0
@Override
public void drop(DropTargetDropEvent dtde) {
dtde.acceptDrop(DnDConstants.ACTION_COPY);
try {
Transferable t = dtde.getTransferable();
DataFlavor[] dataFlavors = t.getTransferDataFlavors();
for (DataFlavor df : dataFlavors) {
if (df.isFlavorJavaFileListType()) {
File[] filesArray = (File[]) ((List<File>) t.getTransferData(df)).toArray();
pathNameTextField.setText(getFilesName(filesArray));
}
}
} catch (UnsupportedFlavorException e2) {
} catch (IOException ex) {
Logger.getLogger(SubtitleDownloaderUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
WMouseDragGestureRecognizer.java 文件源码
项目:jdk8u-jdk
阅读 36
收藏 0
点赞 0
评论 0
/**
* determine the drop action from the event
*/
protected int mapDragOperationFromModifiers(MouseEvent e) {
int mods = e.getModifiersEx();
int btns = mods & ButtonMask;
// Prohibit multi-button drags.
if (!(btns == InputEvent.BUTTON1_DOWN_MASK ||
btns == InputEvent.BUTTON2_DOWN_MASK ||
btns == InputEvent.BUTTON3_DOWN_MASK)) {
return DnDConstants.ACTION_NONE;
}
return
SunDragSourceContextPeer.convertModifiersToDropAction(mods,
getSourceActions());
}
SunDropTargetContextPeer.java 文件源码
项目:OpenJSharp
阅读 29
收藏 0
点赞 0
评论 0
/**
* mapOperation
*/
private int mapOperation(int operation) {
int[] operations = {
DnDConstants.ACTION_MOVE,
DnDConstants.ACTION_COPY,
DnDConstants.ACTION_LINK,
};
int ret = DnDConstants.ACTION_NONE;
for (int i = 0; i < operations.length; i++) {
if ((operation & operations[i]) == operations[i]) {
ret = operations[i];
break;
}
}
return ret;
}
XDnDDragSourceProtocol.java 文件源码
项目:jdk8u-jdk
阅读 26
收藏 0
点赞 0
评论 0
private boolean processXdndStatus(XClientMessageEvent xclient) {
int action = DnDConstants.ACTION_NONE;
/* Ignore XDnD messages from all other windows. */
if (xclient.get_data(0) != getTargetWindow()) {
return true;
}
if ((xclient.get_data(1) & XDnDConstants.XDND_ACCEPT_DROP_FLAG) != 0) {
/* This feature is new in XDnD version 2, but we can use it as XDnD
compliance only requires supporting version 3 and up. */
action = XDnDConstants.getJavaActionForXDnDAction(xclient.get_data(4));
}
getProtocolListener().handleDragReply(action);
return true;
}
XMouseDragGestureRecognizer.java 文件源码
项目:OpenJSharp
阅读 30
收藏 0
点赞 0
评论 0
/**
* Invoked when a mouse button is pressed on a component.
*/
public void mouseDragged(MouseEvent e) {
if (!events.isEmpty()) { // gesture pending
int dop = mapDragOperationFromModifiers(e);
if (dop == DnDConstants.ACTION_NONE) {
return;
}
MouseEvent trigger = (MouseEvent)events.get(0);
Point origin = trigger.getPoint();
Point current = e.getPoint();
int dx = Math.abs(origin.x - current.x);
int dy = Math.abs(origin.y - current.y);
if (dx > motionThreshold || dy > motionThreshold) {
fireDragGestureRecognized(dop, ((MouseEvent)getTriggerEvent()).getPoint());
} else
appendEvent(e);
}
}
XDragSourceContextPeer.java 文件源码
项目:OpenJSharp
阅读 25
收藏 0
点赞 0
评论 0
private void doUpdateTargetWindow(long subwindow, long time) {
long clientWindow = 0;
long proxyWindow = 0;
XDragSourceProtocol protocol = null;
boolean isReceiver = false;
if (subwindow != 0) {
clientWindow = findClientWindow(subwindow);
}
if (clientWindow != 0) {
Iterator dragProtocols = XDragAndDropProtocols.getDragSourceProtocols();
while (dragProtocols.hasNext()) {
XDragSourceProtocol dragProtocol = (XDragSourceProtocol)dragProtocols.next();
if (dragProtocol.attachTargetWindow(clientWindow, time)) {
protocol = dragProtocol;
break;
}
}
}
/* Update the global state. */
dragProtocol = protocol;
targetAction = DnDConstants.ACTION_NONE;
targetRootSubwindow = subwindow;
}
JTableRenderer.java 文件源码
项目:Tarski
阅读 22
收藏 0
点赞 0
评论 0
public void drop(DropTargetDropEvent e)
{
if (dragSource != null)
{
e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
Point p = e.getLocation();
int targetRow = rowAtPoint(p);
Object edge = graph.insertEdge(null, null, null,
dragSource.cell, JTableRenderer.this.cell, "sourceRow="
+ sourceRow + ";targetRow=" + targetRow);
graph.setSelectionCell(edge);
// System.out.println("clearing drag source");
dragSource = null;
e.dropComplete(true);
}
else
{
e.rejectDrop();
}
}
XDnDDragSourceProtocol.java 文件源码
项目:openjdk-jdk10
阅读 26
收藏 0
点赞 0
评论 0
private boolean processXdndStatus(XClientMessageEvent xclient) {
int action = DnDConstants.ACTION_NONE;
/* Ignore XDnD messages from all other windows. */
if (xclient.get_data(0) != getTargetWindow()) {
return true;
}
if ((xclient.get_data(1) & XDnDConstants.XDND_ACCEPT_DROP_FLAG) != 0) {
/* This feature is new in XDnD version 2, but we can use it as XDnD
compliance only requires supporting version 3 and up. */
action = XDnDConstants.getJavaActionForXDnDAction(xclient.get_data(4));
}
getProtocolListener().handleDragReply(action);
return true;
}
JDragDropList.java 文件源码
项目:pdfjumbler
阅读 23
收藏 0
点赞 0
评论 0
@Override
public boolean importData(TransferHandler.TransferSupport info) {
if (!info.isDrop()) {
return false;
}
if (!canImportHere(info)) {
if (
(JDragDropList.this.dropListener != null) &&
JDragDropList.this.dropListener.acceptDrop(JDragDropList.this, info)
) {
return JDragDropList.this.dropListener.handleDrop(JDragDropList.this, info);
} else {
return false;
}
}
JDDLTransferData<T> data = getData(info);
int destIndex = JDragDropList.this.getDropLocation().getIndex();
/*
System.err.print("[ ");
for (int index : data.getIndices()) {
System.err.print(index + " ");
}
System.err.print("] -> ");
System.err.println(destIndex);
*/
if ((info.getDropAction() & DnDConstants.ACTION_COPY) != 0) {
copyItems(data.getSourceList(), JDragDropList.this, data.getValuesList(), destIndex);
} else if ((info.getDropAction() & DnDConstants.ACTION_MOVE) != 0) {
moveItems(data.getSourceList(), JDragDropList.this, data.getIndices(), destIndex);
} else {
return false;
}
return true;
}
MissingEventsOnModalDialogTest.java 文件源码
项目:openjdk-jdk10
阅读 28
收藏 0
点赞 0
评论 0
private static void runTest() throws Exception {
Frame sourceFrame = createFrame("Source Frame", 100, 100);
Frame targetFrame = createFrame("Target Frame", 350, 350);
DragSource defaultDragSource
= DragSource.getDefaultDragSource();
defaultDragSource.createDefaultDragGestureRecognizer(sourceFrame,
DnDConstants.ACTION_COPY_OR_MOVE,
new TestDragGestureListener());
new DropTarget(targetFrame, DnDConstants.ACTION_COPY_OR_MOVE,
new TestDropTargetListener(targetFrame));
Robot robot = new Robot();
robot.setAutoDelay(50);
sourceFrame.toFront();
robot.waitForIdle();
Point point = getCenterPoint(sourceFrame);
robot.mouseMove(point.x, point.y);
robot.waitForIdle();
mouseDragAndDrop(robot, point, getCenterPoint(targetFrame));
long time = System.currentTimeMillis() + 1000;
while (!passed) {
if (time < System.currentTimeMillis()) {
sourceFrame.dispose();
targetFrame.dispose();
throw new RuntimeException("Mouse clicked event is lost!");
}
Thread.sleep(10);
}
sourceFrame.dispose();
targetFrame.dispose();
}
FileDropTargetListener.java 文件源码
项目:alevin-svn2
阅读 24
收藏 0
点赞 0
评论 0
@Override
public void dragOver(DropTargetDragEvent dtde) {
if ((dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor) || (uriFlavor != null && dtde
.isDataFlavorSupported(uriFlavor)))
&& canOpenFile())
dtde.acceptDrag(DnDConstants.ACTION_REFERENCE);
else
dtde.rejectDrag();
}
PackageViewChildren.java 文件源码
项目:incubator-netbeans
阅读 23
收藏 0
点赞 0
评论 0
/**
* Copy handling
*/
@Override
public Transferable clipboardCopy () throws IOException {
try {
return new PackageTransferable (this, DnDConstants.ACTION_COPY);
} catch (ClassNotFoundException e) {
throw new AssertionError(e);
}
}
PackageViewChildren.java 文件源码
项目:incubator-netbeans
阅读 29
收藏 0
点赞 0
评论 0
@Override
public Transferable clipboardCut () throws IOException {
try {
return new PackageTransferable (this, DnDConstants.ACTION_MOVE);
} catch (ClassNotFoundException e) {
throw new AssertionError(e);
}
}
AcceptAction.java 文件源码
项目:incubator-netbeans
阅读 19
收藏 0
点赞 0
评论 0
public State dragEnter (Widget widget, WidgetDropTargetDragEvent event) {
ConnectorState acceptable = provider.isAcceptable (widget, event.getPoint (), event.getTransferable ());
if (acceptable == ConnectorState.ACCEPT) {
event.acceptDrag (DnDConstants.ACTION_COPY_OR_MOVE);
return State.CONSUMED;
} else if (acceptable == ConnectorState.REJECT_AND_STOP) {
event.rejectDrag ();
return State.CONSUMED;
}
return State.REJECTED;
}
AcceptAction.java 文件源码
项目:incubator-netbeans
阅读 26
收藏 0
点赞 0
评论 0
public State dragOver (Widget widget, WidgetDropTargetDragEvent event) {
ConnectorState acceptable = provider.isAcceptable (widget, event.getPoint (), event.getTransferable ());
if (acceptable == ConnectorState.ACCEPT) {
event.acceptDrag (DnDConstants.ACTION_COPY_OR_MOVE);
return State.CONSUMED;
} else if (acceptable == ConnectorState.REJECT_AND_STOP) {
event.rejectDrag ();
return State.CONSUMED;
}
return State.REJECTED;
}
ImageTransferTest.java 文件源码
项目:openjdk-jdk10
阅读 21
收藏 0
点赞 0
评论 0
void checkImage(DropTargetDropEvent dtde) {
final Transferable t = dtde.getTransferable();
if (t.isDataFlavorSupported(DataFlavor.imageFlavor)) {
dtde.acceptDrop(DnDConstants.ACTION_COPY);
Image im;
try {
im = (Image) t.getTransferData(DataFlavor.imageFlavor);
System.err.println("getTransferData was successful");
} catch (Exception e) {
System.err.println("Can't getTransferData: " + e);
dtde.dropComplete(false);
notifyTransferSuccess(false);
return;
}
if (im == null) {
System.err.println("getTransferData returned null");
dtde.dropComplete(false);
notifyTransferSuccess(false);
} else if (areImagesIdentical(image, im)) {
dtde.dropComplete(true);
notifyTransferSuccess(true);
} else {
System.err.println("transferred image is different from initial image");
dtde.dropComplete(false);
notifyTransferSuccess(false);
}
} else {
System.err.println("imageFlavor is not supported by Transferable");
dtde.rejectDrop();
notifyTransferSuccess(false);
}
}
DragDropUtilities.java 文件源码
项目:incubator-netbeans
阅读 23
收藏 0
点赞 0
评论 0
/** Gets right transferable of given nodes (according to given
* drag action) and also converts the transferable.<br>
* Can be called only with correct action constant.
* @return The transferable.
*/
static Transferable getNodeTransferable(Node[] nodes, int dragAction)
throws IOException {
Transferable[] tArray = new Transferable[nodes.length];
for (int i = 0; i < nodes.length; i++) {
if ((dragAction & DnDConstants.ACTION_MOVE) != 0) {
tArray[i] = nodes[i].clipboardCut();
} else {
tArray[i] = nodes[i].drag ();
}
}
Transferable result;
if (tArray.length == 1) {
// only one node, so return regular single transferable
result = tArray[0];
} else {
// enclose the transferables into multi transferable
result = ExternalDragAndDrop.maybeAddExternalFileDnd( new Multi(tArray) );
}
Clipboard c = getClipboard();
if (c instanceof ExClipboard) {
return ((ExClipboard) c).convert(result);
} else {
return result;
}
}
QuietEditorPane.java 文件源码
项目:incubator-netbeans
阅读 19
收藏 0
点赞 0
评论 0
@Override
public void dragEnter(DropTargetDragEvent dtde) {
Collection<? extends ExternalDropHandler> handlers = Lookup.getDefault().lookupAll(ExternalDropHandler.class);
for (ExternalDropHandler handler : handlers) {
if (handler.canDrop(dtde)) {
dtde.acceptDrag(DnDConstants.ACTION_COPY);
isDragging = false;
return;
}
}
orig.dragEnter(dtde);
isDragging = true;
}
QuietEditorPane.java 文件源码
项目:incubator-netbeans
阅读 20
收藏 0
点赞 0
评论 0
@Override
public void dragOver(DropTargetDragEvent dtde) {
Collection<? extends ExternalDropHandler> handlers = Lookup.getDefault().lookupAll(ExternalDropHandler.class);
for (ExternalDropHandler handler : handlers) {
if (handler.canDrop(dtde)) {
dtde.acceptDrag(DnDConstants.ACTION_COPY);
isDragging = false;
return;
}
}
orig.dragOver(dtde);
isDragging = true;
}
SunDropTargetContextPeer.java 文件源码
项目:jdk8u-jdk
阅读 22
收藏 0
点赞 0
评论 0
/**
* rejectDrag
*/
public synchronized void rejectDrag() {
if (currentDT == null) {
throw new InvalidDnDOperationException("No Drag pending");
}
currentDA = DnDConstants.ACTION_NONE;
dragRejected = true;
}
WMouseDragGestureRecognizer.java 文件源码
项目:openjdk-jdk10
阅读 24
收藏 0
点赞 0
评论 0
/**
* Invoked when the mouse exits a component.
*/
@Override
public void mouseExited(MouseEvent e) {
if (!events.isEmpty()) { // gesture pending
int dragAction = mapDragOperationFromModifiers(e);
if (dragAction == DnDConstants.ACTION_NONE) {
events.clear();
}
}
}