src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java

Print this page




 597                 XDropTargetProtocol dropProtocol = (XDropTargetProtocol)dropProtocols.next();
 598                 dropProtocol.unregisterDropTarget(window);
 599             }
 600         } else {
 601             unregisterEmbeddedDropSite(toplevel, window);
 602         }
 603     }
 604 
 605     public void registerXEmbedClient(long canvasWindow, long clientWindow) {
 606         // If the client has an associated XDnD drop site, add a drop target
 607         // to the XEmbedCanvasPeer's target to route drag notifications to the
 608         // client.
 609 
 610         XDragSourceProtocol xdndDragProtocol =
 611             XDragAndDropProtocols.getDragSourceProtocol(XDragAndDropProtocols.XDnD);
 612         XDragSourceProtocol.TargetWindowInfo info =
 613             xdndDragProtocol.getTargetWindowInfo(clientWindow);
 614         if (info != null &&
 615             info.getProtocolVersion() >= XDnDConstants.XDND_MIN_PROTOCOL_VERSION) {
 616 
 617             if (logger.isLoggable(PlatformLogger.FINE)) {
 618                 logger.fine("        XEmbed drop site will be registered for " + Long.toHexString(clientWindow));
 619             }
 620             registerEmbeddedDropSite(canvasWindow, clientWindow);
 621 
 622             Iterator dropTargetProtocols =
 623                 XDragAndDropProtocols.getDropTargetProtocols();
 624 
 625             while (dropTargetProtocols.hasNext()) {
 626                 XDropTargetProtocol dropTargetProtocol =
 627                     (XDropTargetProtocol)dropTargetProtocols.next();
 628                 dropTargetProtocol.registerEmbeddedDropSite(clientWindow);
 629             }
 630 
 631             if (logger.isLoggable(PlatformLogger.FINE)) {
 632                 logger.fine("        XEmbed drop site has been registered for " + Long.toHexString(clientWindow));
 633             }
 634         }
 635     }
 636 
 637     public void unregisterXEmbedClient(long canvasWindow, long clientWindow) {
 638         if (logger.isLoggable(PlatformLogger.FINE)) {
 639             logger.fine("        XEmbed drop site will be unregistered for " + Long.toHexString(clientWindow));
 640         }
 641         Iterator dropTargetProtocols =
 642             XDragAndDropProtocols.getDropTargetProtocols();
 643 
 644         while (dropTargetProtocols.hasNext()) {
 645             XDropTargetProtocol dropTargetProtocol =
 646                 (XDropTargetProtocol)dropTargetProtocols.next();
 647             dropTargetProtocol.unregisterEmbeddedDropSite(clientWindow);
 648         }
 649 
 650         unregisterEmbeddedDropSite(canvasWindow, clientWindow);
 651 
 652         if (logger.isLoggable(PlatformLogger.FINE)) {
 653             logger.fine("        XEmbed drop site has beed unregistered for " + Long.toHexString(clientWindow));
 654         }
 655     }
 656 
 657     /**************** Delayed drop site registration *******************************/
 658 
 659     private void addDelayedRegistrationEntry(final long window) {
 660         Long lWindow = Long.valueOf(window);
 661         Runnable runnable = new Runnable() {
 662                 public void run() {
 663                     removeDelayedRegistrationEntry(window);
 664                     registerDropSite(window);
 665                 }
 666             };
 667 
 668         XToolkit.awtLock();
 669         try {
 670             removeDelayedRegistrationEntry(window);
 671             delayedRegistrationMap.put(lWindow, runnable);
 672             XToolkit.schedule(runnable, DELAYED_REGISTRATION_PERIOD);


 597                 XDropTargetProtocol dropProtocol = (XDropTargetProtocol)dropProtocols.next();
 598                 dropProtocol.unregisterDropTarget(window);
 599             }
 600         } else {
 601             unregisterEmbeddedDropSite(toplevel, window);
 602         }
 603     }
 604 
 605     public void registerXEmbedClient(long canvasWindow, long clientWindow) {
 606         // If the client has an associated XDnD drop site, add a drop target
 607         // to the XEmbedCanvasPeer's target to route drag notifications to the
 608         // client.
 609 
 610         XDragSourceProtocol xdndDragProtocol =
 611             XDragAndDropProtocols.getDragSourceProtocol(XDragAndDropProtocols.XDnD);
 612         XDragSourceProtocol.TargetWindowInfo info =
 613             xdndDragProtocol.getTargetWindowInfo(clientWindow);
 614         if (info != null &&
 615             info.getProtocolVersion() >= XDnDConstants.XDND_MIN_PROTOCOL_VERSION) {
 616 
 617             if (logger.isLoggable(PlatformLogger.Level.FINE)) {
 618                 logger.fine("        XEmbed drop site will be registered for " + Long.toHexString(clientWindow));
 619             }
 620             registerEmbeddedDropSite(canvasWindow, clientWindow);
 621 
 622             Iterator dropTargetProtocols =
 623                 XDragAndDropProtocols.getDropTargetProtocols();
 624 
 625             while (dropTargetProtocols.hasNext()) {
 626                 XDropTargetProtocol dropTargetProtocol =
 627                     (XDropTargetProtocol)dropTargetProtocols.next();
 628                 dropTargetProtocol.registerEmbeddedDropSite(clientWindow);
 629             }
 630 
 631             if (logger.isLoggable(PlatformLogger.Level.FINE)) {
 632                 logger.fine("        XEmbed drop site has been registered for " + Long.toHexString(clientWindow));
 633             }
 634         }
 635     }
 636 
 637     public void unregisterXEmbedClient(long canvasWindow, long clientWindow) {
 638         if (logger.isLoggable(PlatformLogger.Level.FINE)) {
 639             logger.fine("        XEmbed drop site will be unregistered for " + Long.toHexString(clientWindow));
 640         }
 641         Iterator dropTargetProtocols =
 642             XDragAndDropProtocols.getDropTargetProtocols();
 643 
 644         while (dropTargetProtocols.hasNext()) {
 645             XDropTargetProtocol dropTargetProtocol =
 646                 (XDropTargetProtocol)dropTargetProtocols.next();
 647             dropTargetProtocol.unregisterEmbeddedDropSite(clientWindow);
 648         }
 649 
 650         unregisterEmbeddedDropSite(canvasWindow, clientWindow);
 651 
 652         if (logger.isLoggable(PlatformLogger.Level.FINE)) {
 653             logger.fine("        XEmbed drop site has beed unregistered for " + Long.toHexString(clientWindow));
 654         }
 655     }
 656 
 657     /**************** Delayed drop site registration *******************************/
 658 
 659     private void addDelayedRegistrationEntry(final long window) {
 660         Long lWindow = Long.valueOf(window);
 661         Runnable runnable = new Runnable() {
 662                 public void run() {
 663                     removeDelayedRegistrationEntry(window);
 664                     registerDropSite(window);
 665                 }
 666             };
 667 
 668         XToolkit.awtLock();
 669         try {
 670             removeDelayedRegistrationEntry(window);
 671             delayedRegistrationMap.put(lWindow, runnable);
 672             XToolkit.schedule(runnable, DELAYED_REGISTRATION_PERIOD);