< prev index next >
java/awt/Scrollbar/ScrollbarMouseWheelTest/ScrollbarMouseWheelTest.java
Print this page
*** 1,32 ****
/*
! test 1.2 98/08/05
! @bug 4449139
! @summary test MouseWheelEvent generation by Scrollbar component
! @author : area=Scrollbar
! @run applet ScrollbarMouseWheelTest.html
! */
- import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
! public class ScrollbarMouseWheelTest extends Applet implements
! MouseWheelListener, WindowListener
! {
final static String tk = Toolkit.getDefaultToolkit().getClass().getName();
final static int REPS = 5;
// There is a bug on Windows: 4616935.
// Wheel events comes to every component in the hierarchy so we should
// check a platform.
// There are two scrollbars within one Panel and both accept 5 clicks, so
// Panel would accept 5*2 clicks on Windows.
final static int PANEL_REPS = tk.equals("sun.awt.windows.WToolkit")? REPS * 2: REPS;
- static boolean testDone = false;
-
- Frame frame;
Scrollbar sb1;
Scrollbar sb2;
Panel pnl;
class Sema {
boolean flag;
--- 1,48 ----
/*
! * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
! * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
! *
! * This code is free software; you can redistribute it and/or modify it
! * under the terms of the GNU General Public License version 2 only, as
! * published by the Free Software Foundation.
! *
! * This code is distributed in the hope that it will be useful, but WITHOUT
! * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
! * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
! * version 2 for more details (a copy is included in the LICENSE file that
! * accompanied this code).
! *
! * You should have received a copy of the GNU General Public License version
! * 2 along with this work; if not, write to the Free Software Foundation,
! * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
! *
! * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
! * or visit www.oracle.com if you need additional information or have any
! * questions.
! */
import java.awt.*;
import java.awt.event.*;
! /**
! * @test
! * @bug 4449139
! * @summary test MouseWheelEvent generation by Scrollbar component
! */
! public final class ScrollbarMouseWheelTest
! implements MouseWheelListener, WindowListener {
!
final static String tk = Toolkit.getDefaultToolkit().getClass().getName();
final static int REPS = 5;
// There is a bug on Windows: 4616935.
// Wheel events comes to every component in the hierarchy so we should
// check a platform.
// There are two scrollbars within one Panel and both accept 5 clicks, so
// Panel would accept 5*2 clicks on Windows.
final static int PANEL_REPS = tk.equals("sun.awt.windows.WToolkit")? REPS * 2: REPS;
Scrollbar sb1;
Scrollbar sb2;
Panel pnl;
class Sema {
boolean flag;
*** 38,77 ****
Robot robot;
int sb1upevents, sb2upevents, pnlupevents;
int sb1downevents, sb2downevents, pnldownevents;
! public void init()
! {
! //Create instructions for the user here, as well as set up
! // the environment -- set the layout manager, add buttons,
! // etc.
!
! this.setLayout (new BorderLayout ());
!
! String[] instructions =
! {
! "This is an AUTOMATIC test",
! "simply wait until it is done"
! };
! Sysout.createDialog( );
! Sysout.printInstructions( instructions );
!
! }//End init()
!
! public void start ()
! {
!
! //Get things going. Request focus, set size, et cetera
! setSize (200,200);
! show();
!
! //What would normally go into main() will probably go here.
! //Use System.out.println for diagnostic messages that you want
! //to read after the test is done.
! //Use Sysout.println for messages you want the tester to read.
// Move mouse to upper-right area
try {
robot = new Robot();
} catch (AWTException e) {
System.out.println("Problem creating Robot. FAIL.");
--- 54,68 ----
Robot robot;
int sb1upevents, sb2upevents, pnlupevents;
int sb1downevents, sb2downevents, pnldownevents;
! public static void main(final String[] args) {
! new ScrollbarMouseWheelTest().test();
! }
+ public void test() {
// Move mouse to upper-right area
try {
robot = new Robot();
} catch (AWTException e) {
System.out.println("Problem creating Robot. FAIL.");
*** 79,103 ****
}
robot.setAutoDelay(500);
robot.setAutoWaitForIdle(true);
- robot.mouseMove(150, 200);
// Show test Frame
Frame frame = new Frame("ScrollbarMouseWheelTest");
frame.addWindowListener(this);
pnl = new Panel();
! pnl.setLayout(new GridLayout(1,2));
pnl.addMouseWheelListener(this);
sb1 = new Scrollbar();
sb1.addMouseWheelListener(this);
pnl.add(sb1);
sb2 = new Scrollbar();
pnl.add(sb2);
frame.add(pnl);
frame.setSize(200, 400);
frame.setVisible(true);
frame.toFront();
// When Frame is active, start testing (handled in windowActivated())
while (true) {
--- 70,94 ----
}
robot.setAutoDelay(500);
robot.setAutoWaitForIdle(true);
// Show test Frame
Frame frame = new Frame("ScrollbarMouseWheelTest");
frame.addWindowListener(this);
pnl = new Panel();
! pnl.setLayout(new GridLayout(1, 2));
pnl.addMouseWheelListener(this);
sb1 = new Scrollbar();
sb1.addMouseWheelListener(this);
pnl.add(sb1);
sb2 = new Scrollbar();
pnl.add(sb2);
frame.add(pnl);
frame.setSize(200, 400);
+ frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.toFront();
// When Frame is active, start testing (handled in windowActivated())
while (true) {
*** 105,168 ****
if (sema.getVal()) {
break;
}
}
}
! doTest();
!
! Sysout.println("Test done.");
if (sb1upevents == REPS &&
sb2upevents == 0 &&
pnlupevents == PANEL_REPS &&
sb1downevents == REPS &&
sb2downevents == 0 &&
pnldownevents == PANEL_REPS) {
! Sysout.println("PASSED.");
} else {
System.out.println("Test Failed:" +
"\n\tsb1upevents =" + sb1upevents +
"\n\tsb2upevents = " + sb2upevents +
"\n\tpnlupevents = " + pnlupevents +
"\n\tsb1downevents =" + sb1downevents +
"\n\tsb2downevents = " + sb2downevents +
"\n\tpnldownevents = " + pnldownevents);
throw new RuntimeException("Test FAILED.");
}
- }// start()
-
- public void doTest() {
- if (!testDone) {
- // up on sb1
- testComp(sb1, true);
- // down on sb1
- testComp(sb1, false);
- // up on sb2
- testComp(sb2, true);
- // down on sb2
- testComp(sb2, false);
- }
- else {
- Sysout.println("Skipping test - already done");
- }
}
public void testComp(Component comp, boolean up) {
! int loop;
! Rectangle bounds;
!
! bounds = comp.getBounds();
! robot.mouseMove(bounds.x + bounds.width / 2,
! bounds.y + bounds.height / 2);
! for (loop = 0; loop < REPS; loop++) {
! Sysout.println("Robot.mouseWheel() on " + comp.getName());
robot.mouseWheel(up ? -1 : 1);
}
}
public void mouseWheelMoved(MouseWheelEvent mwe) {
Component src = mwe.getComponent();
! Sysout.println("mouseWheelMoved() on " + src.getName());
if (mwe.getWheelRotation() == -1) {
if (src == sb1) {
sb1upevents++;
} else if (src == sb2) {
sb2upevents++;
--- 96,147 ----
if (sema.getVal()) {
break;
}
}
}
! // up on sb1
! testComp(sb1, true);
! // down on sb1
! testComp(sb1, false);
! // up on sb2
! testComp(sb2, true);
! // down on sb2
! testComp(sb2, false);
! frame.dispose();
! System.out.println("Test done.");
if (sb1upevents == REPS &&
sb2upevents == 0 &&
pnlupevents == PANEL_REPS &&
sb1downevents == REPS &&
sb2downevents == 0 &&
pnldownevents == PANEL_REPS) {
! System.out.println("PASSED.");
} else {
System.out.println("Test Failed:" +
"\n\tsb1upevents =" + sb1upevents +
"\n\tsb2upevents = " + sb2upevents +
"\n\tpnlupevents = " + pnlupevents +
"\n\tsb1downevents =" + sb1downevents +
"\n\tsb2downevents = " + sb2downevents +
"\n\tpnldownevents = " + pnldownevents);
throw new RuntimeException("Test FAILED.");
}
}
public void testComp(Component comp, boolean up) {
! Point loc = comp.getLocationOnScreen();
! robot.mouseMove(loc.x + comp.getWidth() / 2,
! loc.y + comp.getHeight() / 2);
! for (int loop = 0; loop < REPS; loop++) {
! System.out.println("Robot.mouseWheel() on " + comp.getName());
robot.mouseWheel(up ? -1 : 1);
}
}
public void mouseWheelMoved(MouseWheelEvent mwe) {
Component src = mwe.getComponent();
! System.out.println("mouseWheelMoved() on " + src.getName());
if (mwe.getWheelRotation() == -1) {
if (src == sb1) {
sb1upevents++;
} else if (src == sb2) {
sb2upevents++;
*** 196,340 ****
public void windowClosing(WindowEvent we) {}
public void windowDeactivated(WindowEvent we) {}
public void windowDeiconified(WindowEvent we) {}
public void windowIconified(WindowEvent we) {}
public void windowOpened(WindowEvent we) {}
!
!
!
! }// class ScrollbarMouseWheelTest
!
!
! /****************************************************
! Standard Test Machinery
! DO NOT modify anything below -- it's a standard
! chunk of code whose purpose is to make user
! interaction uniform, and thereby make it simpler
! to read and understand someone else's test.
! ****************************************************/
!
! /**
! This is part of the standard test machinery.
! It creates a dialog (with the instructions), and is the interface
! for sending text messages to the user.
! To print the instructions, send an array of strings to Sysout.createDialog
! WithInstructions method. Put one line of instructions per array entry.
! To display a message for the tester to see, simply call Sysout.println
! with the string to be displayed.
! This mimics System.out.println but works within the test harness as well
! as standalone.
! */
!
! class Sysout
! {
! private static TestDialog dialog;
!
! public static void createDialogWithInstructions( String[] instructions )
! {
! dialog = new TestDialog( new Frame(), "Instructions" );
! dialog.printInstructions( instructions );
! dialog.show();
! }
!
! public static void createDialog( )
! {
! dialog = new TestDialog( new Frame(), "Instructions" );
! String[] defInstr = { "Instructions will appear here. ", "" } ;
! dialog.printInstructions( defInstr );
! dialog.show();
! }
!
!
! public static void printInstructions( String[] instructions )
! {
! dialog.printInstructions( instructions );
! }
!
!
! public static void println( String messageIn )
! {
! dialog.displayMessage( messageIn );
! }
!
! }// Sysout class
!
! /**
! This is part of the standard test machinery. It provides a place for the
! test instructions to be displayed, and a place for interactive messages
! to the user to be displayed.
! To have the test instructions displayed, see Sysout.
! To have a message to the user be displayed, see Sysout.
! Do not call anything in this dialog directly.
! */
! class TestDialog extends Dialog
! {
!
! TextArea instructionsText;
! TextArea messageText;
! int maxStringLength = 80;
!
! //DO NOT call this directly, go through Sysout
! public TestDialog( Frame frame, String name )
! {
! super( frame, name );
! int scrollBoth = TextArea.SCROLLBARS_BOTH;
! instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
! add( "North", instructionsText );
!
! messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
! add("South", messageText);
!
! pack();
! setLocation(300,0);
!
! show();
! }// TestDialog()
!
! //DO NOT call this directly, go through Sysout
! public void printInstructions( String[] instructions )
! {
! //Clear out any current instructions
! instructionsText.setText( "" );
!
! //Go down array of instruction strings
!
! String printStr, remainingStr;
! for( int i=0; i < instructions.length; i++ )
! {
! //chop up each into pieces maxSringLength long
! remainingStr = instructions[ i ];
! while( remainingStr.length() > 0 )
! {
! //if longer than max then chop off first max chars to print
! if( remainingStr.length() >= maxStringLength )
! {
! //Try to chop on a word boundary
! int posOfSpace = remainingStr.
! lastIndexOf( ' ', maxStringLength - 1 );
!
! if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
!
! printStr = remainingStr.substring( 0, posOfSpace + 1 );
! remainingStr = remainingStr.substring( posOfSpace + 1 );
! }
! //else just print
! else
! {
! printStr = remainingStr;
! remainingStr = "";
! }
!
! instructionsText.append( printStr + "\n" );
!
! }// while
!
! }// for
!
! }//printInstructions()
!
! //DO NOT call this directly, go through Sysout
! public void displayMessage( String messageIn )
! {
! messageText.append( messageIn + "\n" );
! }
!
! }// TestDialog class
--- 175,180 ----
public void windowClosing(WindowEvent we) {}
public void windowDeactivated(WindowEvent we) {}
public void windowDeiconified(WindowEvent we) {}
public void windowIconified(WindowEvent we) {}
public void windowOpened(WindowEvent we) {}
! }// class ScrollbarMouseWheelTest
< prev index next >