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 } |