home *** CD-ROM | disk | FTP | other *** search
- package sun.awt.windows;
-
- import java.awt.AWTPermission;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Insets;
- import java.awt.Point;
- import java.awt.datatransfer.DataFlavor;
- import java.awt.datatransfer.Transferable;
- import java.awt.datatransfer.UnsupportedFlavorException;
- import java.awt.dnd.DropTarget;
- import java.awt.dnd.DropTargetContext;
- import java.awt.dnd.DropTargetDragEvent;
- import java.awt.dnd.DropTargetDropEvent;
- import java.awt.dnd.DropTargetEvent;
- import java.awt.dnd.InvalidDnDOperationException;
- import java.awt.dnd.peer.DropTargetContextPeer;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.ObjectInputStream;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Modifier;
- import java.rmi.MarshalledObject;
- import java.security.AccessControlContext;
- import java.security.AccessController;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Map;
- import sun.awt.Mutex;
- import sun.awt.SunToolkit;
-
- final class WDropTargetContextPeer implements DropTargetContextPeer, Transferable, Runnable {
- private static final int DISPATCH_NONE = 0;
- private static final int DISPATCH_ENTER = 1;
- private static final int DISPATCH_MOTION = 2;
- private static final int DISPATCH_CHANGED = 3;
- private static final int DISPATCH_EXIT = 4;
- private static final int DISPATCH_DROP = 5;
- private static final Object _globalLock = new Object();
- private static Transferable currentJVMLocalSourceTransferable = null;
- private static AccessControlContext currentJVMLocalSourceACtxt = null;
- static final int STATUS_NONE = 0;
- static final int STATUS_WAIT = 1;
- static final int STATUS_ACCEPT = 2;
- static final int STATUS_REJECT = -1;
- private static WDropTargetContextPeer dropTargetContextPeer;
- private Component currentC;
- private DropTarget currentDT;
- private DropTargetContext currentDTC;
- private String[] currentT;
- private int currentA;
- private int currentDA;
- private int nativeDragContext;
- private Transferable local;
- private int messagePending = 0;
- private Component currentNC;
- private int currentX;
- private int currentY;
- private int currentSA;
- int dropStatus = 0;
- boolean dropComplete = false;
- Object lock = new Object();
- Mutex syncLock = new Mutex();
- // $FF: synthetic field
- static Class class$java$io$InputStream;
- // $FF: synthetic field
- static Class class$java$lang$String;
-
- static void setCurrentJVMLocalSourceTransferable(Transferable var0) throws InvalidDnDOperationException {
- Object var1 = _globalLock;
- synchronized(var1) {
- if (var0 != null && currentJVMLocalSourceTransferable != null) {
- throw new InvalidDnDOperationException();
- } else {
- currentJVMLocalSourceTransferable = var0;
- currentJVMLocalSourceACtxt = var0 != null ? AccessController.getContext() : null;
- }
- }
- }
-
- static Transferable getJVMLocalSourceTransferable() {
- Object var0 = null;
- Object var1 = _globalLock;
- synchronized(var1) {
- if (currentJVMLocalSourceTransferable != null && !currentJVMLocalSourceACtxt.equals(AccessController.getContext())) {
- AccessController.checkPermission(new AWTPermission("acceptDropBetweenAccessControllerContexts"));
- }
-
- Transferable var4 = currentJVMLocalSourceTransferable;
- return var4;
- }
- }
-
- static WDropTargetContextPeer getWDropTargetContextPeer() {
- Object var0 = _globalLock;
- synchronized(var0) {
- dropTargetContextPeer = new WDropTargetContextPeer();
- }
-
- return dropTargetContextPeer;
- }
-
- private static ByteArrayInputStream getMemoryStream(byte[] var0, String var1) {
- return new ByteArrayInputStream(var0);
- }
-
- private static FileInputStream getFileStream(String var0, String var1, int var2) throws IOException {
- return new WDropTargetContextPeerFileStream(var0, var1, var2);
- }
-
- private static Object getIStream(int var0, String var1) throws IOException {
- return new WDropTargetContextPeerIStream(var0, var1);
- }
-
- private static List getList(Object[] var0) {
- return Arrays.asList(var0);
- }
-
- public DropTarget getDropTarget() {
- Object var1 = this.lock;
- synchronized(var1) {
- DropTarget var2 = this.currentDT;
- return var2;
- }
- }
-
- public void setTargetActions(int var1) {
- Object var2 = this.lock;
- synchronized(var2) {
- this.currentA = var1 & 1073741827;
- }
- }
-
- public int getTargetActions() {
- Object var1 = this.lock;
- synchronized(var1) {
- int var2 = this.currentA;
- return var2;
- }
- }
-
- public void setAutoscrollInsets(Insets var1) {
- }
-
- public void setAutoscrollDelay(int var1) {
- }
-
- public boolean doesPlatformImplementAutoscrolling() {
- return false;
- }
-
- public Transferable getTransferable() {
- return this;
- }
-
- public DataFlavor[] getTransferDataFlavors() {
- DataFlavor[] var1;
- if (this.local != null) {
- var1 = this.local.getTransferDataFlavors();
- } else {
- Object var2 = this.lock;
- synchronized(var2) {
- Object[] var3 = this.currentDT.getFlavorMap().getFlavorsForNatives(this.currentT).values().toArray();
- var1 = new DataFlavor[var3.length];
- System.arraycopy(var3, 0, var1, 0, var3.length);
- }
- }
-
- return var1;
- }
-
- public boolean isDataFlavorSupported(DataFlavor var1) {
- if (this.local != null) {
- return this.local.isDataFlavorSupported(var1);
- } else {
- DataFlavor[] var2 = this.getTransferDataFlavors();
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- if (var2[var3].equals(var1)) {
- return true;
- }
- }
-
- return false;
- }
- }
-
- public Object getTransferData(DataFlavor var1) throws UnsupportedFlavorException, IOException, InvalidDnDOperationException {
- if (this.local != null) {
- return this.local.getTransferData(var1);
- } else {
- Object var2 = null;
- Object var3 = this.lock;
- String var16;
- synchronized(var3) {
- if (this.dropStatus != 2 || this.dropComplete) {
- throw new InvalidDnDOperationException("No drop current");
- }
-
- Map var4 = this.currentDT.getFlavorMap().getNativesForFlavors(new DataFlavor[]{var1});
- if ((var16 = (String)var4.get(var1)) == null) {
- throw new UnsupportedFlavorException(var1);
- }
-
- int var5;
- for(var5 = 0; var5 < this.currentT.length && !this.currentT[var5].equals(var16); ++var5) {
- }
-
- if (var5 == this.currentT.length) {
- throw new UnsupportedFlavorException(var1);
- }
- }
-
- Object var17 = this.getData(this.nativeDragContext, var16);
- if (var17 == null) {
- throw new IOException("no native data was transferred");
- } else if (var17 instanceof List) {
- return var17;
- } else if (var1.isRepresentationClassInputStream()) {
- Class var21 = var1.getRepresentationClass();
- if ((class$java$io$InputStream == null ? (class$java$io$InputStream = class$("java.io.InputStream")) : class$java$io$InputStream).equals(var21)) {
- return (InputStream)var17;
- } else {
- Object var24 = null;
-
- try {
- var25 = (Constructor[])AccessController.doPrivileged(new 1(this, var21));
- } catch (SecurityException var11) {
- ((Throwable)var11).printStackTrace();
- throw new IOException(((Throwable)var11).getMessage());
- }
-
- Constructor var27 = null;
-
- for(int var28 = 0; var28 < var25.length; ++var28) {
- if (Modifier.isPublic(var25[var28].getModifiers())) {
- Class[] var9 = var25[var28].getParameterTypes();
- if (var9 != null && var9.length == 1 && (class$java$io$InputStream == null ? (class$java$io$InputStream = class$("java.io.InputStream")) : class$java$io$InputStream).equals(var9[0])) {
- var27 = var25[var28];
- break;
- }
- }
- }
-
- if (var27 == null) {
- throw new InvalidDnDOperationException("cant find <init>(Ljava/io/InputStream;)V for class: " + var21.getName());
- } else {
- try {
- return var27.newInstance((InputStream)var17);
- } catch (Exception var10) {
- ((Throwable)var10).printStackTrace();
- throw new InvalidDnDOperationException(((Throwable)var10).getMessage());
- }
- }
- }
- } else if (var1.isRepresentationClassRemote()) {
- if (this.currentDA != 1073741824) {
- throw new InvalidDnDOperationException("only ACTION_LINK is permissable for transfer java.rmi.Remote objects");
- } else {
- try {
- InputStream var20 = (InputStream)var17;
- Object var23 = ((MarshalledObject)(new ObjectInputStream(var20)).readObject()).get();
- var20.close();
- return var23;
- } catch (Exception var12) {
- ((Throwable)var12).printStackTrace();
- throw new InvalidDnDOperationException(((Throwable)var12).getMessage());
- }
- }
- } else if (var1.isRepresentationClassSerializable()) {
- try {
- InputStream var19 = (InputStream)var17;
- Object var22 = (new ObjectInputStream(var19)).readObject();
- var19.close();
- return var22;
- } catch (Exception var13) {
- ((Throwable)var13).printStackTrace();
- throw new InvalidDnDOperationException(((Throwable)var13).getMessage());
- }
- } else if ((class$java$lang$String == null ? (class$java$lang$String = class$("java.lang.String")) : class$java$lang$String).equals(var1.getRepresentationClass())) {
- try {
- InputStream var18 = (InputStream)var17;
- ByteArrayOutputStream var6 = new ByteArrayOutputStream();
- int var7 = 0;
- byte[] var8 = new byte[64];
-
- while((var7 = var18.read(var8)) != -1) {
- var6.write(var8, 0, var7);
- }
-
- return new String(var6.toByteArray());
- } catch (Exception var14) {
- ((Throwable)var14).printStackTrace();
- throw new InvalidDnDOperationException(((Throwable)var14).getMessage());
- }
- } else {
- throw new IOException("getTransferData() failed");
- }
- }
- }
-
- public boolean isTransferableJVMLocal() {
- return this.local != null || getJVMLocalSourceTransferable() != null;
- }
-
- public void run() {
- this.syncLock.lock();
- int var1 = this.messagePending;
- this.syncLock.unlock();
- switch (var1) {
- case 1:
- this.processEnterMessage();
- break;
- case 2:
- case 3:
- this.processMotionMessage(var1);
- break;
- case 4:
- this.processExitMessage();
- break;
- case 5:
- this.processDropMessage();
- return;
- }
-
- this.syncLock.lock();
- if (this.messagePending != 0) {
- this.messagePending = 0;
- WToolkit.quitSecondaryEventLoop();
- }
-
- this.syncLock.unlock();
- }
-
- private int handleEnterMessage(Component var1, int var2, int var3, int var4, int var5, String[] var6, int var7) {
- this.syncLock.lock();
-
- while(this.messagePending != 0) {
- this.syncLock.unlock();
- WToolkit.startSecondaryEventLoop();
- this.syncLock.lock();
- }
-
- this.nativeDragContext = var7;
- this.currentNC = var1;
- this.currentT = var6;
- this.currentX = var2;
- this.currentY = var3;
- this.currentSA = var5;
- this.currentDA = var4;
- this.messagePending = 1;
- SunToolkit.executeOnEventHandlerThread(var1, this);
-
- while(this.messagePending != 0) {
- this.syncLock.unlock();
- WToolkit.startSecondaryEventLoop();
- this.syncLock.lock();
- }
-
- int var8 = this.currentA;
- this.syncLock.unlock();
- return var8;
- }
-
- private void processEnterMessage() {
- DropTarget var2 = null;
- Point var4 = null;
- this.local = getJVMLocalSourceTransferable();
- Object var5 = this.currentNC.getTreeLock();
- Component var1;
- boolean var3;
- synchronized(var5) {
- try {
- var1 = this.findComponentAt((Container)this.currentNC, this.currentX, this.currentY);
- } catch (ClassCastException var17) {
- var1 = this.currentNC.locate(this.currentX, this.currentY);
- }
-
- var3 = var1 != null && var1.isShowing() && (var2 = var1.getDropTarget()) != null && var2.isActive();
- if (var3) {
- var4 = this.translate(this.currentNC, this.currentX, this.currentY, var1);
- }
- }
-
- Object var6 = this.lock;
- synchronized(var6) {
- if (this.currentDTC != null) {
- this.currentDTC.removeNotify();
- this.currentDTC = null;
- }
- }
-
- if (var3) {
- Object var8 = this.lock;
- synchronized(var8) {
- this.currentC = var1;
- this.currentDT = var2;
- this.currentDTC = this.currentDT.getDropTargetContext();
- this.currentDTC.addNotify(this);
- this.currentA = var2.getDefaultActions();
- }
-
- try {
- var2.dragEnter(new DropTargetDragEvent(this.currentDTC, var4, this.currentDA, this.currentSA));
- } catch (Exception var15) {
- ((Throwable)var15).printStackTrace();
- Object var10 = this.lock;
- synchronized(var10) {
- this.currentA = 0;
- }
- }
- } else {
- Object var20 = this.lock;
- synchronized(var20) {
- this.currentDT = null;
- this.currentDTC = null;
- this.currentA = 0;
- }
- }
-
- }
-
- private void handleExitMessage(Component var1, int var2) {
- this.syncLock.lock();
-
- while(this.messagePending != 0) {
- this.syncLock.unlock();
- WToolkit.startSecondaryEventLoop();
- this.syncLock.lock();
- }
-
- this.nativeDragContext = var2;
- this.messagePending = 4;
- SunToolkit.executeOnEventHandlerThread(var1, this);
-
- while(this.messagePending != 0) {
- this.syncLock.unlock();
- WToolkit.startSecondaryEventLoop();
- this.syncLock.lock();
- }
-
- this.syncLock.unlock();
- }
-
- private void processExitMessage() {
- DropTarget var1 = null;
- DropTargetContext var2 = null;
- Object var3 = this.lock;
- synchronized(var3) {
- if (this.currentC != null) {
- DropTarget var4 = this.currentC.getDropTarget();
- if (var4 == null) {
- this.currentC = null;
- this.currentDT = null;
- this.currentT = null;
- if (this.currentDTC != null) {
- this.currentDTC.removeNotify();
- }
-
- this.currentDTC = null;
- return;
- }
-
- if (var4 != this.currentDT) {
- if (this.currentDTC != null) {
- this.currentDTC.removeNotify();
- }
-
- var1 = this.currentDT = var4;
- var2 = this.currentDTC = var4.getDropTargetContext();
- this.currentDTC.addNotify(this);
- } else {
- var1 = this.currentDT;
- var2 = this.currentDTC;
- }
- }
- }
-
- if (var1 != null && var1.isActive()) {
- try {
- var1.dragExit(new DropTargetEvent(var2));
- } catch (Exception var17) {
- ((Throwable)var17).printStackTrace();
- } finally {
- Object var8 = this.lock;
- synchronized(var8) {
- this.currentA = 0;
- this.currentSA = 0;
- this.currentDA = 0;
- this.currentC = null;
- this.currentDT = null;
- this.currentT = null;
- this.currentDTC.removeNotify();
- this.currentDTC = null;
- this.local = null;
- }
- }
- }
-
- }
-
- private int handleMotionMessage(Component var1, int var2, int var3, int var4, int var5, String[] var6, int var7) {
- this.syncLock.lock();
-
- while(this.messagePending != 0) {
- this.syncLock.unlock();
- WToolkit.startSecondaryEventLoop();
- this.syncLock.lock();
- }
-
- this.nativeDragContext = var7;
- this.currentNC = var1;
- this.currentT = var6;
- this.currentX = var2;
- this.currentY = var3;
- this.currentSA = var5;
- int var8 = this.currentDA;
- this.currentDA = var4;
- this.messagePending = var8 == this.currentDA ? 2 : 3;
- SunToolkit.executeOnEventHandlerThread(var1, this);
-
- while(this.messagePending != 0) {
- this.syncLock.unlock();
- WToolkit.startSecondaryEventLoop();
- this.syncLock.lock();
- }
-
- int var9 = this.currentA;
- this.syncLock.unlock();
- return var9;
- }
-
- private void processMotionMessage(int var1) {
- Component var2 = null;
- Object var3 = null;
- Point var4 = null;
- boolean var5 = false;
- boolean var6 = false;
- Object var7 = null;
- DropTargetContext var8 = null;
- DropTarget var9 = null;
- if (this.currentC != null) {
- boolean var10 = false;
- Object var11 = this.currentNC.getTreeLock();
- Point var78;
- DropTarget var79;
- synchronized(var11) {
- try {
- var2 = this.findComponentAt((Container)this.currentNC, this.currentX, this.currentY);
- } catch (ClassCastException var73) {
- var2 = this.currentNC.locate(this.currentX, this.currentY);
- }
-
- var78 = this.translate(this.currentNC, this.currentX, this.currentY, this.currentC);
- var10 = this.currentC.equals(var2);
- if (!var10 && var2 != null) {
- var4 = this.translate(this.currentNC, this.currentX, this.currentY, var2);
- var6 = var2.isShowing() && (var9 = var2.getDropTarget()) != null && var9.isActive();
- }
-
- Object var12 = this.lock;
- synchronized(var12) {
- if ((var79 = this.currentC.getDropTarget()) == null) {
- this.currentDTC.removeNotify();
- this.currentC = null;
- this.currentDTC = null;
- this.currentT = null;
- } else {
- if (this.currentDT != var79) {
- if (this.currentDTC != null) {
- this.currentDTC.removeNotify();
- }
-
- this.currentDT = var79;
- this.currentDTC = null;
- }
-
- var8 = this.currentDT.getDropTargetContext();
- if (var8 != this.currentDTC) {
- if (this.currentDTC != null) {
- this.currentDTC.removeNotify();
- }
-
- (this.currentDTC = var8).addNotify(this);
- }
-
- var5 = this.currentC.isShowing() && var79.isActive();
- }
- }
- }
-
- if (var5) {
- if (var10) {
- try {
- if (var1 == 2) {
- var79.dragOver(new DropTargetDragEvent(var8, var78, this.currentDA, this.currentSA));
- } else {
- var79.dropActionChanged(new DropTargetDragEvent(var8, var78, this.currentDA, this.currentSA));
- }
- } catch (Exception var64) {
- ((Throwable)var64).printStackTrace();
- Object var13 = this.lock;
- synchronized(var13) {
- this.currentA = 0;
- }
- } finally {
- return;
- }
-
- return;
- }
-
- try {
- var79.dragExit(new DropTargetEvent(var8));
- } catch (Exception var71) {
- ((Throwable)var71).printStackTrace();
- } finally {
- Object var17 = this.lock;
- synchronized(var17) {
- this.currentDTC.removeNotify();
- this.currentDTC = null;
- this.currentC = null;
- this.currentT = null;
- this.currentA = 0;
- }
- }
- } else {
- Object var86 = this.lock;
- synchronized(var86) {
- this.currentA = 0;
- }
- }
- }
-
- if (var2 == null) {
- Object var83 = this.currentNC.getTreeLock();
- synchronized(var83) {
- try {
- var2 = this.findComponentAt((Container)this.currentNC, this.currentX, this.currentY);
- } catch (ClassCastException var69) {
- var2 = this.currentNC.locate(this.currentX, this.currentY);
- }
-
- var6 = var2 != null && var2.isShowing() && (var9 = var2.getDropTarget()) != null && var9.isActive();
- if (var6) {
- var4 = this.translate(this.currentNC, this.currentX, this.currentY, var2);
- }
- }
- }
-
- if (var6) {
- Object var84 = this.lock;
- DropTarget var80;
- synchronized(var84) {
- this.currentC = var2;
- var80 = this.currentDT = var9;
- var8 = this.currentDTC = var9.getDropTargetContext();
- this.currentDTC.addNotify(this);
- this.currentA = var9.getDefaultActions();
- }
-
- try {
- var80.dragEnter(new DropTargetDragEvent(var8, var4, this.currentDA, this.currentSA));
- } catch (Exception var67) {
- ((Throwable)var67).printStackTrace();
- Object var25 = this.lock;
- synchronized(var25) {
- this.currentA = 0;
- }
- }
- } else {
- Object var85 = this.lock;
- synchronized(var85) {
- this.currentC = null;
- this.currentDT = null;
- this.currentDTC = null;
- this.currentA = 0;
- }
- }
-
- }
-
- private void handleDropMessage(Component var1, int var2, int var3, int var4, int var5, String[] var6, int var7) {
- this.syncLock.lock();
-
- while(this.messagePending != 0) {
- this.syncLock.unlock();
- WToolkit.startSecondaryEventLoop();
- this.syncLock.lock();
- }
-
- this.nativeDragContext = var7;
- this.currentNC = var1;
- this.currentT = var6;
- this.currentX = var2;
- this.currentY = var3;
- this.currentSA = var5;
- this.currentDA = var4;
- this.messagePending = 5;
- SunToolkit.executeOnEventHandlerThread(var1, this);
-
- while(this.messagePending != 0) {
- this.syncLock.unlock();
- WToolkit.startSecondaryEventLoop();
- this.syncLock.lock();
- }
-
- this.syncLock.unlock();
- }
-
- private void processDropMessage() {
- Object var1 = null;
- Point var2 = null;
- boolean var3 = false;
- DropTarget var4 = null;
- Object var5 = this.currentNC.getTreeLock();
- Component var35;
- synchronized(var5) {
- try {
- var35 = this.findComponentAt((Container)this.currentNC, this.currentX, this.currentY);
- } catch (ClassCastException var29) {
- var35 = this.currentNC.locate(this.currentX, this.currentY);
- }
-
- var3 = var35 != null && var35.isShowing() && (var4 = var35.getDropTarget()) != null && var4.isActive();
- if (var3) {
- var2 = this.translate(this.currentNC, this.currentX, this.currentY, var35);
- }
- }
-
- Object var6 = this.lock;
- synchronized(var6) {
- this.dropStatus = 1;
- this.dropComplete = false;
- }
-
- if (var3) {
- boolean var9 = false;
- Object var10 = this.lock;
- DropTargetContext var8;
- synchronized(var10) {
- this.currentC = var35;
- this.currentDT = var4;
- var8 = var4.getDropTargetContext();
- if (this.currentDTC != null) {
- this.currentDTC.removeNotify();
- }
-
- (this.currentDTC = var8).addNotify(this);
- }
-
- Object var11 = _globalLock;
- synchronized(var11) {
- if ((this.local = getJVMLocalSourceTransferable()) != null) {
- setCurrentJVMLocalSourceTransferable((Transferable)null);
- }
- }
-
- try {
- var4.dragExit(new DropTargetEvent(var8));
- var4.drop(new DropTargetDropEvent(var8, var2, this.currentDA, this.currentSA, this.local != null));
- } catch (Exception var27) {
- ((Throwable)var27).printStackTrace();
- var9 = true;
- } finally {
- Object var15 = this.lock;
- synchronized(var15) {
- if (this.dropStatus == 1 || var9) {
- this.rejectDrop();
- }
-
- }
- }
- } else {
- this.rejectDrop();
- }
-
- }
-
- public void acceptDrag(int var1) {
- Object var2 = this.lock;
- synchronized(var2) {
- if (this.currentDT == null) {
- throw new IllegalArgumentException("no drag pending");
- } else {
- this.currentA = this.mapOperation(this.currentDT, var1);
- }
- }
- }
-
- public void rejectDrag() {
- Object var1 = this.lock;
- synchronized(var1) {
- if (this.currentDT == null) {
- throw new IllegalArgumentException("no drag pending");
- } else {
- this.currentA = 0;
- }
- }
- }
-
- public void acceptDrop(int var1) {
- if (var1 == 0) {
- throw new IllegalArgumentException("invalid acceptDrop() action");
- } else {
- Object var2 = this.lock;
- synchronized(var2) {
- if (this.dropStatus != 1) {
- throw new InvalidDnDOperationException("invalid acceptDrop()");
- } else {
- this.currentDA = this.currentA = this.mapOperation(this.currentDT, var1 & this.currentSA);
- this.dropStatus = 2;
- this.dropComplete = false;
- this.dropDispatched();
- }
- }
- }
- }
-
- public void rejectDrop() {
- Object var1 = this.lock;
- synchronized(var1) {
- if (this.dropStatus != 1) {
- throw new InvalidDnDOperationException("invalid rejectDrop()");
- }
-
- this.dropStatus = -1;
- }
-
- this.dropComplete(false);
- }
-
- private int mapOperation(DropTarget var1, int var2) {
- int[] var3 = new int[]{2, 1, 1073741824};
- int var4 = 0;
-
- for(int var5 = 0; var5 < var3.length; ++var5) {
- if ((var2 & var3[var5]) == var3[var5]) {
- var4 = var3[var5];
- break;
- }
- }
-
- return var4;
- }
-
- public void dropComplete(boolean var1) {
- Object var2 = this.lock;
- synchronized(var2) {
- if (this.dropStatus == 0) {
- throw new InvalidDnDOperationException("No Drop pending");
- }
-
- if (this.currentDTC != null) {
- this.currentDTC.removeNotify();
- }
-
- this.currentC = null;
- this.currentDT = null;
- this.currentDTC = null;
- this.currentT = null;
- this.currentA = 0;
- Object var3 = _globalLock;
- synchronized(var3) {
- currentJVMLocalSourceTransferable = null;
- }
-
- this.dropStatus = 0;
- this.dropComplete = true;
- }
-
- this.dropDispatched();
- this.dropDone(this.nativeDragContext, var1 ? this.currentDA : 0);
- this.currentDA = 0;
- this.nativeDragContext = 0;
- }
-
- int getDropStatus() {
- Object var1 = this.lock;
- synchronized(var1) {
- int var2 = this.dropStatus;
- return var2;
- }
- }
-
- private Point translate(Component var1, int var2, int var3, Component var4) {
- Object var5 = var4;
- int var6 = 0;
-
- int var7;
- for(var7 = 0; !var5.equals(var1); var5 = ((Component)var5).getParent()) {
- Point var8 = ((Component)var5).getLocation();
- var6 += var8.x;
- var7 += var8.y;
- }
-
- return new Point(var2 - var6, var3 - var7);
- }
-
- private void dropDispatched() {
- this.syncLock.lock();
- if (this.messagePending == 5) {
- this.messagePending = 0;
- WToolkit.quitSecondaryEventLoop();
- }
-
- this.syncLock.unlock();
- }
-
- private native Object getData(int var1, String var2);
-
- private native void dropDone(int var1, int var2);
-
- private native Component findComponentAt(Container var1, int var2, int var3);
-
- static native void Initialize();
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
- }
-