27 import sun.reflect.misc.ReflectUtil; 28 import sun.swing.SwingUtilities2; 29 import sun.swing.UIAction; 30 31 import java.applet.*; 32 33 import java.awt.*; 34 import java.awt.event.*; 35 import java.awt.dnd.DropTarget; 36 37 import java.lang.reflect.*; 38 39 import javax.accessibility.*; 40 import javax.swing.event.MenuDragMouseEvent; 41 import javax.swing.plaf.UIResource; 42 import javax.swing.text.View; 43 import java.security.AccessController; 44 import sun.security.action.GetPropertyAction; 45 46 import sun.awt.AppContext; 47 48 /** 49 * A collection of utility methods for Swing. 50 * 51 * @author unknown 52 * @since 1.2 53 */ 54 public class SwingUtilities implements SwingConstants 55 { 56 // These states are system-wide, rather than AppContext wide. 57 private static boolean canAccessEventQueue = false; 58 private static boolean eventQueueTested = false; 59 60 /** 61 * Indicates if we should change the drop target when a 62 * {@code TransferHandler} is set. 63 */ 64 private static boolean suppressDropSupport; 65 66 /** 388 p.x,p.y, 389 sourceMenuDragEvent.getXOnScreen(), 390 sourceMenuDragEvent.getYOnScreen(), 391 sourceMenuDragEvent.getClickCount(), 392 sourceMenuDragEvent.isPopupTrigger(), 393 sourceMenuDragEvent.getPath(), 394 sourceMenuDragEvent.getMenuSelectionManager()); 395 } 396 else { 397 newEvent = new MouseEvent(newSource, 398 sourceEvent.getID(), 399 sourceEvent.getWhen(), 400 sourceEvent.getModifiers() 401 | sourceEvent.getModifiersEx(), 402 p.x,p.y, 403 sourceEvent.getXOnScreen(), 404 sourceEvent.getYOnScreen(), 405 sourceEvent.getClickCount(), 406 sourceEvent.isPopupTrigger(), 407 sourceEvent.getButton()); 408 } 409 return newEvent; 410 } 411 412 413 /** 414 * Convert a point from a component's coordinate system to 415 * screen coordinates. 416 * 417 * @param p a Point object (converted to the new coordinate system) 418 * @param c a Component object 419 */ 420 @SuppressWarnings("deprecation") 421 public static void convertPointToScreen(Point p,Component c) { 422 Rectangle b; 423 int x,y; 424 425 do { 426 if(c instanceof JComponent) { 427 x = c.getX(); | 27 import sun.reflect.misc.ReflectUtil; 28 import sun.swing.SwingUtilities2; 29 import sun.swing.UIAction; 30 31 import java.applet.*; 32 33 import java.awt.*; 34 import java.awt.event.*; 35 import java.awt.dnd.DropTarget; 36 37 import java.lang.reflect.*; 38 39 import javax.accessibility.*; 40 import javax.swing.event.MenuDragMouseEvent; 41 import javax.swing.plaf.UIResource; 42 import javax.swing.text.View; 43 import java.security.AccessController; 44 import sun.security.action.GetPropertyAction; 45 46 import sun.awt.AppContext; 47 import sun.awt.AWTAccessor; 48 import sun.awt.AWTAccessor.MouseEventAccessor; 49 50 /** 51 * A collection of utility methods for Swing. 52 * 53 * @author unknown 54 * @since 1.2 55 */ 56 public class SwingUtilities implements SwingConstants 57 { 58 // These states are system-wide, rather than AppContext wide. 59 private static boolean canAccessEventQueue = false; 60 private static boolean eventQueueTested = false; 61 62 /** 63 * Indicates if we should change the drop target when a 64 * {@code TransferHandler} is set. 65 */ 66 private static boolean suppressDropSupport; 67 68 /** 390 p.x,p.y, 391 sourceMenuDragEvent.getXOnScreen(), 392 sourceMenuDragEvent.getYOnScreen(), 393 sourceMenuDragEvent.getClickCount(), 394 sourceMenuDragEvent.isPopupTrigger(), 395 sourceMenuDragEvent.getPath(), 396 sourceMenuDragEvent.getMenuSelectionManager()); 397 } 398 else { 399 newEvent = new MouseEvent(newSource, 400 sourceEvent.getID(), 401 sourceEvent.getWhen(), 402 sourceEvent.getModifiers() 403 | sourceEvent.getModifiersEx(), 404 p.x,p.y, 405 sourceEvent.getXOnScreen(), 406 sourceEvent.getYOnScreen(), 407 sourceEvent.getClickCount(), 408 sourceEvent.isPopupTrigger(), 409 sourceEvent.getButton()); 410 MouseEventAccessor meAccessor = AWTAccessor.getMouseEventAccessor(); 411 meAccessor.setCausedByTouchEvent(newEvent, 412 meAccessor.isCausedByTouchEvent(sourceEvent)); 413 } 414 return newEvent; 415 } 416 417 418 /** 419 * Convert a point from a component's coordinate system to 420 * screen coordinates. 421 * 422 * @param p a Point object (converted to the new coordinate system) 423 * @param c a Component object 424 */ 425 @SuppressWarnings("deprecation") 426 public static void convertPointToScreen(Point p,Component c) { 427 Rectangle b; 428 int x,y; 429 430 do { 431 if(c instanceof JComponent) { 432 x = c.getX(); |