< prev index next >

test/jdk/java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java

Print this page




  73         f.setVisible(true);
  74 
  75         Robot r = Util.createRobot();
  76         Util.waitForIdle(r);
  77 
  78         // check exception without modal dialog
  79         MouseListener exceptionListener = new MouseAdapter()
  80         {
  81             @Override
  82             public void mousePressed(MouseEvent me)
  83             {
  84                 throw new RuntimeException(EXCEPTION_MESSAGE);
  85             }
  86         };
  87         f.addMouseListener(exceptionListener);
  88 
  89         exceptionHandled = false;
  90         Point fp = f.getLocationOnScreen();
  91         r.mouseMove(fp.x + f.getWidth() / 2, fp.y + f.getHeight() / 2);
  92         Util.waitForIdle(r);
  93         r.mousePress(InputEvent.BUTTON1_MASK);
  94         Util.waitForIdle(r);
  95         r.mouseRelease(InputEvent.BUTTON2_MASK);
  96         f.removeMouseListener(exceptionListener);
  97 
  98         if (!exceptionHandled)
  99         {
 100             throw new RuntimeException("Test FAILED: exception is not handled for frame");
 101         }
 102 
 103         // check exception with modal dialog
 104         final Dialog d = new Dialog(f, "D", true);
 105         d.setBounds(fp.x + 100, fp.y + 100, 400, 300);
 106         d.addMouseListener(exceptionListener);
 107         EventQueue.invokeLater(new Runnable()
 108         {
 109             @Override
 110             public void run()
 111             {
 112                 d.setVisible(true);
 113             }
 114         });
 115         Util.waitForIdle(r);
 116 
 117         exceptionHandled = false;
 118         Point dp = d.getLocationOnScreen();
 119         r.mouseMove(dp.x + d.getWidth() / 2, dp.y + d.getHeight() / 2);
 120         Util.waitForIdle(r);
 121         r.mousePress(InputEvent.BUTTON1_MASK);
 122         Util.waitForIdle(r);
 123         r.mouseRelease(InputEvent.BUTTON2_MASK);
 124         d.removeMouseListener(exceptionListener);
 125 
 126         if (!exceptionHandled)
 127         {
 128             throw new RuntimeException("Test FAILED: exception is not handled for modal dialog");
 129         }
 130 
 131         // check the dialog is still modal
 132         MouseListener pressedListener = new MouseAdapter()
 133         {
 134             @Override
 135             public void mousePressed(MouseEvent me)
 136             {
 137                 mousePressed = true;
 138             }
 139         };
 140         f.addMouseListener(pressedListener);
 141 
 142         mousePressed = false;
 143         r.mouseMove(fp.x + 50, fp.y + 50);
 144         Util.waitForIdle(r);
 145         r.mousePress(InputEvent.BUTTON1_MASK);
 146         Util.waitForIdle(r);
 147         r.mouseRelease(InputEvent.BUTTON1_MASK);
 148         Util.waitForIdle(r);
 149         f.removeMouseListener(pressedListener);
 150 
 151         if (mousePressed)
 152         {
 153             throw new RuntimeException("Test FAILED: modal dialog is not modal or visible after exception");
 154         }
 155 
 156         // test is passed
 157         d.dispose();
 158         f.dispose();
 159     }
 160 }


  73         f.setVisible(true);
  74 
  75         Robot r = Util.createRobot();
  76         Util.waitForIdle(r);
  77 
  78         // check exception without modal dialog
  79         MouseListener exceptionListener = new MouseAdapter()
  80         {
  81             @Override
  82             public void mousePressed(MouseEvent me)
  83             {
  84                 throw new RuntimeException(EXCEPTION_MESSAGE);
  85             }
  86         };
  87         f.addMouseListener(exceptionListener);
  88 
  89         exceptionHandled = false;
  90         Point fp = f.getLocationOnScreen();
  91         r.mouseMove(fp.x + f.getWidth() / 2, fp.y + f.getHeight() / 2);
  92         Util.waitForIdle(r);
  93         r.mousePress(InputEvent.BUTTON1_DOWN_MASK);
  94         Util.waitForIdle(r);
  95         r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
  96         f.removeMouseListener(exceptionListener);
  97 
  98         if (!exceptionHandled)
  99         {
 100             throw new RuntimeException("Test FAILED: exception is not handled for frame");
 101         }
 102 
 103         // check exception with modal dialog
 104         final Dialog d = new Dialog(f, "D", true);
 105         d.setBounds(fp.x + 100, fp.y + 100, 400, 300);
 106         d.addMouseListener(exceptionListener);
 107         EventQueue.invokeLater(new Runnable()
 108         {
 109             @Override
 110             public void run()
 111             {
 112                 d.setVisible(true);
 113             }
 114         });
 115         Util.waitForIdle(r);
 116 
 117         exceptionHandled = false;
 118         Point dp = d.getLocationOnScreen();
 119         r.mouseMove(dp.x + d.getWidth() / 2, dp.y + d.getHeight() / 2);
 120         Util.waitForIdle(r);
 121         r.mousePress(InputEvent.BUTTON1_DOWN_MASK);
 122         Util.waitForIdle(r);
 123         r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
 124         d.removeMouseListener(exceptionListener);
 125 
 126         if (!exceptionHandled)
 127         {
 128             throw new RuntimeException("Test FAILED: exception is not handled for modal dialog");
 129         }
 130 
 131         // check the dialog is still modal
 132         MouseListener pressedListener = new MouseAdapter()
 133         {
 134             @Override
 135             public void mousePressed(MouseEvent me)
 136             {
 137                 mousePressed = true;
 138             }
 139         };
 140         f.addMouseListener(pressedListener);
 141 
 142         mousePressed = false;
 143         r.mouseMove(fp.x + 50, fp.y + 50);
 144         Util.waitForIdle(r);
 145         r.mousePress(InputEvent.BUTTON1_DOWN_MASK);
 146         Util.waitForIdle(r);
 147         r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
 148         Util.waitForIdle(r);
 149         f.removeMouseListener(pressedListener);
 150 
 151         if (mousePressed)
 152         {
 153             throw new RuntimeException("Test FAILED: modal dialog is not modal or visible after exception");
 154         }
 155 
 156         // test is passed
 157         d.dispose();
 158         f.dispose();
 159     }
 160 }
< prev index next >