src/share/classes/java/awt/Robot.java

Print this page




 150             if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
 151                 final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
 152                 for (int i = 0; i < buttonsNumber; i++){
 153                     tmpMask |= InputEvent.getMaskForButton(i+1);
 154                 }
 155             }
 156         }
 157         tmpMask |= InputEvent.BUTTON1_MASK|
 158             InputEvent.BUTTON2_MASK|
 159             InputEvent.BUTTON3_MASK|
 160             InputEvent.BUTTON1_DOWN_MASK|
 161             InputEvent.BUTTON2_DOWN_MASK|
 162             InputEvent.BUTTON3_DOWN_MASK;
 163         LEGAL_BUTTON_MASK = tmpMask;
 164     }
 165 
 166     /* determine if the security policy allows Robot's to be created */
 167     private void checkRobotAllowed() {
 168         SecurityManager security = System.getSecurityManager();
 169         if (security != null) {
 170             security.checkPermission(SecurityConstants.CREATE_ROBOT_PERMISSION);
 171         }
 172     }
 173 
 174     /* check if the given device is a screen device */
 175     private void checkIsScreenDevice(GraphicsDevice device) {
 176         if (device == null || device.getType() != GraphicsDevice.TYPE_RASTER_SCREEN) {
 177             throw new IllegalArgumentException("not a valid screen device");
 178         }
 179     }
 180 
 181     private transient Object anchor = new Object();
 182 
 183     static class RobotDisposer implements sun.java2d.DisposerRecord {
 184         private final RobotPeer peer;
 185         public RobotDisposer(RobotPeer peer) {
 186             this.peer = peer;
 187         }
 188         public void dispose() {
 189             if (peer != null) {
 190                 peer.dispose();


 449         bandmasks[2] = screenCapCM.getBlueMask();
 450 
 451         raster = Raster.createPackedRaster(buffer, translatedRect.width, translatedRect.height, translatedRect.width, bandmasks, null);
 452         SunWritableRaster.makeTrackable(buffer);
 453 
 454         image = new BufferedImage(screenCapCM, raster, false, null);
 455 
 456         return image;
 457     }
 458 
 459     private static void checkValidRect(Rectangle rect) {
 460         if (rect.width <= 0 || rect.height <= 0) {
 461             throw new IllegalArgumentException("Rectangle width and height must be > 0");
 462         }
 463     }
 464 
 465     private static void checkScreenCaptureAllowed() {
 466         SecurityManager security = System.getSecurityManager();
 467         if (security != null) {
 468             security.checkPermission(
 469                 SecurityConstants.READ_DISPLAY_PIXELS_PERMISSION);
 470         }
 471     }
 472 
 473     /*
 474      * Called after an event is generated
 475      */
 476     private void afterEvent() {
 477         autoWaitForIdle();
 478         autoDelay();
 479     }
 480 
 481     /**
 482      * Returns whether this Robot automatically invokes <code>waitForIdle</code>
 483      * after generating an event.
 484      * @return Whether <code>waitForIdle</code> is automatically called
 485      */
 486     public synchronized boolean isAutoWaitForIdle() {
 487         return isAutoWaitForIdle;
 488     }
 489 




 150             if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
 151                 final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
 152                 for (int i = 0; i < buttonsNumber; i++){
 153                     tmpMask |= InputEvent.getMaskForButton(i+1);
 154                 }
 155             }
 156         }
 157         tmpMask |= InputEvent.BUTTON1_MASK|
 158             InputEvent.BUTTON2_MASK|
 159             InputEvent.BUTTON3_MASK|
 160             InputEvent.BUTTON1_DOWN_MASK|
 161             InputEvent.BUTTON2_DOWN_MASK|
 162             InputEvent.BUTTON3_DOWN_MASK;
 163         LEGAL_BUTTON_MASK = tmpMask;
 164     }
 165 
 166     /* determine if the security policy allows Robot's to be created */
 167     private void checkRobotAllowed() {
 168         SecurityManager security = System.getSecurityManager();
 169         if (security != null) {
 170             security.checkPermission(SecurityConstants.AWT.CREATE_ROBOT_PERMISSION);
 171         }
 172     }
 173 
 174     /* check if the given device is a screen device */
 175     private void checkIsScreenDevice(GraphicsDevice device) {
 176         if (device == null || device.getType() != GraphicsDevice.TYPE_RASTER_SCREEN) {
 177             throw new IllegalArgumentException("not a valid screen device");
 178         }
 179     }
 180 
 181     private transient Object anchor = new Object();
 182 
 183     static class RobotDisposer implements sun.java2d.DisposerRecord {
 184         private final RobotPeer peer;
 185         public RobotDisposer(RobotPeer peer) {
 186             this.peer = peer;
 187         }
 188         public void dispose() {
 189             if (peer != null) {
 190                 peer.dispose();


 449         bandmasks[2] = screenCapCM.getBlueMask();
 450 
 451         raster = Raster.createPackedRaster(buffer, translatedRect.width, translatedRect.height, translatedRect.width, bandmasks, null);
 452         SunWritableRaster.makeTrackable(buffer);
 453 
 454         image = new BufferedImage(screenCapCM, raster, false, null);
 455 
 456         return image;
 457     }
 458 
 459     private static void checkValidRect(Rectangle rect) {
 460         if (rect.width <= 0 || rect.height <= 0) {
 461             throw new IllegalArgumentException("Rectangle width and height must be > 0");
 462         }
 463     }
 464 
 465     private static void checkScreenCaptureAllowed() {
 466         SecurityManager security = System.getSecurityManager();
 467         if (security != null) {
 468             security.checkPermission(
 469                 SecurityConstants.AWT.READ_DISPLAY_PIXELS_PERMISSION);
 470         }
 471     }
 472 
 473     /*
 474      * Called after an event is generated
 475      */
 476     private void afterEvent() {
 477         autoWaitForIdle();
 478         autoDelay();
 479     }
 480 
 481     /**
 482      * Returns whether this Robot automatically invokes <code>waitForIdle</code>
 483      * after generating an event.
 484      * @return Whether <code>waitForIdle</code> is automatically called
 485      */
 486     public synchronized boolean isAutoWaitForIdle() {
 487         return isAutoWaitForIdle;
 488     }
 489