< prev index next >
test/jdk/java/awt/Choice/PopupPosTest/PopupPosTest.java
Print this page
@@ -20,46 +20,40 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
- test
- @bug 5044150
+ @test
+ @key headful
+ @bug 5044150 8197811
@summary Tests that pupup doesn't popdown if no space to display under
@author andrei.dmitriev area=awt.choice
- @library /test/lib
- @build jdk.test.lib.Platform
- @run applet PopupPosTest.html
+ @run main PopupPosTest
*/
-import java.applet.Applet;
-import java.awt.*;
-import java.awt.event.*;
-
-import jdk.test.lib.Platform;
-
-public class PopupPosTest extends Applet
-{
- public void start ()
- {
- if (Platform.isOSX()) {
- // On OS X, popup isn't under the mouse
- return;
- }
- Frame frame = new TestFrame();
- }
-}
-
-class TestFrame extends Frame implements ItemListener {
- Robot robot;
- Toolkit tk = Toolkit.getDefaultToolkit();
- Choice choice = new Choice();
- boolean indexChanged = false;
- final static int INITIAL_ITEM = 99;
- volatile boolean stateChanged;
+import java.awt.Frame;
+import java.awt.Toolkit;
+import java.awt.Choice;
+import java.awt.Dimension;
+import java.awt.Robot;
+import java.awt.Point;
+import java.awt.Font;
+import java.awt.BorderLayout;
+import java.awt.event.ItemListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.InputEvent;
+
+public class PopupPosTest extends Frame implements ItemListener {
+ private Robot robot;
+ private Toolkit tk = Toolkit.getDefaultToolkit();
+ private Choice choice = new Choice();
+ private boolean indexChanged = false;
+ private final static int INITIAL_ITEM = 99;
+ private volatile boolean stateChanged;
- public TestFrame() {
+ private PopupPosTest() {
for (int i = 0; i < 100; i++) {
choice.addItem("Item Item Item " + i);
}
choice.addItemListener(this);
@@ -78,10 +72,11 @@
// fix for 6175418. When we take "choice.getHeight()/2"
// divider 2 is not sufficiently big to hit into the
// small box Choice. We should use bigger divider to get
// smaller value choice.getHeight()/i. 4 is sufficient.
Point pt = choice.getLocationOnScreen();
+ System.out.println("Choice size: " + choice.getSize());
// click on 1/4 of Choice's height
mouseMoveAndPressOnChoice(pt.x + choice.getWidth()/2,
pt.y + choice.getHeight()/4);
// click on center of Choice's height
@@ -105,11 +100,11 @@
}
if(stateChanged){
throw new RuntimeException("Test failed. ItemEvent was generated on a simple mouse click when the dropdown appears under mouse");
}
- }// start()
+ }
public void itemStateChanged(ItemEvent ie) {
System.out.println("choice.stateChanged = "+ ie);
stateChanged = true;
}
@@ -126,11 +121,11 @@
checkSelectedIndex();
}
public void openChoice(){
Point pt = choice.getLocationOnScreen();
- robot.mouseMove(pt.x + choice.getWidth() - choice.getHeight()/4,
+ robot.mouseMove(pt.x + choice.getWidth() - 10,
pt.y + choice.getHeight()/2);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(30);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.waitForIdle();
@@ -140,11 +135,16 @@
robot.keyRelease(KeyEvent.VK_ESCAPE);
robot.waitForIdle();
}
public void checkSelectedIndex(){
+ System.out.println("choice.getSelectedIndex = " + choice.getSelectedIndex());
if (choice.getSelectedIndex() != INITIAL_ITEM) {
System.out.println("choice.getSelectedIndex = "+ choice.getSelectedIndex());
indexChanged = true;
}
}
-}// class TestFrame
+
+ public static void main(String[] args) {
+ new PopupPosTest();
+ }
+}
< prev index next >