/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* <p>
* TBC
* </p>
*
* @since JDK1.3.1
*
*/
private long nativeCtxt;
private int sourceActions;
private static boolean dragDropInProgress = false;
private static boolean discardingMouseEvents = false;
/*
* dispatch constants
*/
/**
* construct a new SunDragSourceContextPeer
*/
} else {
}
}
/**
* Synchro messages in AWT
*/
public void startSecondaryEventLoop(){}
public void quitSecondaryEventLoop(){}
/**
* initiate a DnD operation ...
*/
throws InvalidDnDOperationException {
/* Fix for 4354044: don't initiate a drag if event sequence provided by
* DragGestureRecognizer is empty */
throw new InvalidDnDOperationException("DragGestureEvent has a null trigger");
}
cursor = c;
dragImageOffset = p;
/*
* Fix for 4613903.
* Filter out all mouse events that are currently on the event queue.
*/
discardingMouseEvents = true;
public void run() {
discardingMouseEvents = false;
}
});
}
/**
* set cursor
*/
synchronized (this) {
cursor = c;
// NOTE: native context can be null at this point.
// setNativeCursor() should handle it properly.
}
}
}
/**
* return cursor
*/
return cursor;
}
/**
* Returns the drag image. If there is no image to drag,
* the returned value is {@code null}
*
* @return the reference to the drag image
*/
return dragImage;
}
/**
* Returns an anchor offset for the image to drag.
*
* @return a {@code Point} object that corresponds
* to coordinates of an anchor offset of the image
* relative to the upper left corner of the image.
* The point {@code (0,0)} returns by default.
*/
if (dragImageOffset == null) {
}
return new Point(dragImageOffset);
}
/**
* downcall into native code
*/
int cType);
} else {
}
}
return trigger;
}
return component;
}
nativeCtxt = ctxt;
}
protected synchronized long getNativeContext() {
return nativeCtxt;
}
return dragSourceContext;
}
/**
* Notify the peer that the transferables' DataFlavors have changed.
*
* No longer useful as the transferables are determined at the time
* of the drag.
*/
public void transferablesFlavorsChanged() {
}
final int modifiers,
final int x, final int y,
final int dispatchType) {
final int dropAction =
modifiers, x, y);
}
/**
* upcall from native code
*/
final int modifiers,
final int x, final int y) {
}
/**
* upcall from native code
*/
final int modifiers,
final int x, final int y) {
}
/**
* upcall from native code
*/
final int modifiers,
final int x, final int y) {
}
/**
* upcall from native code
*/
protected final void dragExit(final int x, final int y) {
new DragSourceEvent(getDragSourceContext(), x, y);
}
/**
* upcall from native code
*/
final int modifiers,
final int x, final int y) {
}
/**
* upcall from native code via implemented class (do)
*/
final int operations,
final int x, final int y) {
success, x, y);
setNativeContext(0);
}
public static void setDragDropInProgress(boolean b)
throws InvalidDnDOperationException {
if (dragDropInProgress == b) {
throw new InvalidDnDOperationException(getExceptionMessage(b));
}
synchronized (SunDragSourceContextPeer.class) {
if (dragDropInProgress == b) {
throw new InvalidDnDOperationException(getExceptionMessage(b));
}
dragDropInProgress = b;
}
}
/**
* Filters out all mouse events that were on the java event queue when
* startDrag was called.
*/
if (!(mouseEvent instanceof SunDropTargetEvent)) {
return false;
}
}
return true;
}
public static void checkDragDropInProgress()
throws InvalidDnDOperationException {
if (dragDropInProgress) {
throw new InvalidDnDOperationException(getExceptionMessage(true));
}
}
return b ? "Drag and drop in progress" : "No drag in progress";
}
final int supportedActions) {
/*
* Fix for 4285634.
* Calculate the drop action to match Motif DnD behavior.
* If the user selects an operation (by pressing a modifier key),
* return the selected operation or ACTION_NONE if the selected
* operation is not supported by the drag source.
* If the user doesn't select an operation search the set of operations
* supported by the drag source for ACTION_MOVE, then for
* ACTION_COPY, then for ACTION_LINK and return the first operation
* found.
*/
case InputEvent.CTRL_DOWN_MASK:
case InputEvent.SHIFT_DOWN_MASK:
default:
}
}
return dropAction & supportedActions;
}
private void cleanup() {
}
private final int dispatchType;
switch (dispatchType) {
case DISPATCH_ENTER:
case DISPATCH_MOTION:
case DISPATCH_CHANGED:
case DISPATCH_MOUSE_MOVED:
if (!(event instanceof DragSourceDragEvent)) {
}
break;
case DISPATCH_EXIT:
break;
case DISPATCH_FINISH:
if (!(event instanceof DragSourceDropEvent)) {
}
break;
default:
throw new IllegalArgumentException("Dispatch type: " +
}
this.dispatchType = dispatchType;
}
public void run() {
try {
switch (dispatchType) {
case DISPATCH_ENTER:
break;
case DISPATCH_MOTION:
break;
case DISPATCH_CHANGED:
break;
case DISPATCH_EXIT:
break;
case DISPATCH_MOUSE_MOVED:
break;
case DISPATCH_FINISH:
try {
} finally {
SunDragSourceContextPeer.this.cleanup();
}
break;
default:
throw new IllegalStateException("Dispatch type: " +
}
} finally {
}
}
}
}