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