< prev index next >
test/java/awt/print/Dialog/RestoreActiveWindowTest/RestoreActiveWindowTest.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2007, 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.
--- 1,7 ----
/*
! * Copyright (c) 2007, 2016, 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.
*** 20,231 ****
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
! test
! @bug 6365992 6379599
! @summary REG: Showing and disposing a native print dialog makes the main frame inactive, Win32
! @author Dmitry.Cherepanov@SUN.COM area=awt.printdialog
! @run applet/manual=yesno RestoreActiveWindowTest.html
! */
!
! import java.applet.Applet;
! import java.awt.*;
! import java.awt.event.*;
! import java.awt.print.*;
! import javax.print.attribute.*;
!
! public class RestoreActiveWindowTest extends Applet
! {
! Button showBtn1 = new Button("show a native print dialog");
! Button showBtn2 = new Button("show a native page dialog");
!
! public void init()
! {
! showBtn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
PrinterJob.getPrinterJob().printDialog();
}
});
! showBtn2.addActionListener(new ActionListener(){
! public void actionPerformed(ActionEvent ae){
PrinterJob.getPrinterJob().pageDialog(new PageFormat());
}
});
! add(showBtn1);
! add(showBtn2);
!
! String[] instructions = {
! "1.1) Click on 'show a native print dialog'. A native print dialog will come up.",
! "1.2) Click on the 'close'(X) button. The dialog will be closed.",
! "1.3) After the dialog closing another window should become the active window.",
! "1.4) If there no any active window then the test failed.",
! "2.1) Click on 'show a native page dialog'. A native page dialog will come up.",
! "2.2) Click on the 'close'(X) button. The dialog will be closed.",
! "2.3) After the dialog closing another window should become the active window.",
! "2.4) If there no any active window then the test failed.",
! "3) Test Passed."
! };
!
! Sysout.createDialogWithInstructions( instructions );
!
! }//End init()
!
! public void start ()
! {
! //Get things going. Request focus, set size, et cetera
! setSize (200,200);
! show();
!
! }// start()
!
! //The rest of this class is the actions which perform the test...
!
! //Use Sysout.println to communicate with the user NOT System.out!!
! //Sysout.println ("Something Happened!");
!
! }// class ManualYesNoTest
!
! /* Place other classes related to the test after this line */
!
!
!
!
!
! /****************************************************
! 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.setVisible(true);
! println( "Any messages for the tester will display here." );
}
! public static void createDialog( )
! {
! dialog = new TestDialog( new Frame(), "Instructions" );
! String[] defInstr = { "Instructions will appear here. ", "" } ;
! dialog.printInstructions( defInstr );
! dialog.setVisible(true);
! println( "Any messages for the tester will display here." );
}
-
-
- 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("Center", messageText);
!
! pack();
!
! setVisible(true);
! }// 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" );
! System.out.println(messageIn);
}
!
! }// TestDialog class
--- 20,195 ----
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
! * @test
! * @bug 6365992 6379599 8137137
! * @summary REG: Showing and disposing a native print dialog makes the main
! * frame inactive, Win32
! * @run main/manual RestoreActiveWindowTest
! */
!
! import java.awt.Frame;
! import java.awt.Button;
! import java.awt.GridBagLayout;
! import java.awt.Panel;
! import java.awt.TextArea;
! import java.awt.GridLayout;
! import java.awt.GridBagConstraints;
! import java.awt.Color;
! import java.awt.event.ActionEvent;
! import java.awt.event.ActionListener;
! import java.awt.print.PrinterJob;
! import java.awt.print.PageFormat;
!
! public class RestoreActiveWindowTest implements ActionListener {
!
! private static Frame mainFrame;
! private static Button printDialogButton;
! private static Button pageDialogButton;
! private static Frame instructionFrame;
! private static GridBagLayout layout;
! private static Panel mainControlPanel;
! private static Panel resultButtonPanel;
! private static TextArea instructionTextArea;
! private static Button passButton;
! private static Button failButton;
! private static Thread mainThread = null;
! private static boolean testPassed = false;
! private static boolean isInterrupted = false;
! private static final int testTimeOut = 300000;
!
! public void createAndShowGUI() {
! mainFrame = new Frame();
! mainFrame.setSize(200, 200);
! mainFrame.setLocationRelativeTo(null);
! mainFrame.setLayout(new GridLayout(2, 1));
!
! printDialogButton = new Button("show a native print dialog");
! pageDialogButton = new Button("show a native page dialog");
! printDialogButton.addActionListener(new ActionListener() {
! @Override
public void actionPerformed(ActionEvent ae) {
PrinterJob.getPrinterJob().printDialog();
}
});
! pageDialogButton.addActionListener(new ActionListener() {
! @Override
! public void actionPerformed(ActionEvent ae) {
PrinterJob.getPrinterJob().pageDialog(new PageFormat());
}
});
! mainFrame.add(printDialogButton);
! mainFrame.add(pageDialogButton);
! mainFrame.setVisible(true);
! }
!
! private void createInstructionUI() {
! instructionFrame = new Frame("Native Print Dialog and Page Dialog");
! layout = new GridBagLayout();
! mainControlPanel = new Panel(layout);
! resultButtonPanel = new Panel(layout);
!
! GridBagConstraints gbc = new GridBagConstraints();
! String instructions
! = "\nINSTRUCTIONS:\n"
! + "\n 1. Click on the 'show a native print dialog' button. A "
! + "native print dialog will come up."
! + "\n 2. Click on the 'Cancel' button on Mac OS X or "
! + "'close'(X) on other paltforms. Dialog will be closed."
! + "\n 3. After the dialog is closed another window should "
! + "become the active window."
! + "\n 4. If there no any active window then the test has "
! + "failed. Click on 'Fail' Button."
! + "\n 5. Click on the 'show a native page dialog' button. A "
! + "native page dialog will come up."
! + "\n 6. Click on the 'Cancel' button on Mac OS X or "
! + "'close'(X) on other paltforms. Dialog will be closed."
! + "\n 7. After the dialog is closed another window should "
! + "become the active window."
! + "\n 8. If there no any active window then the test has "
! + "failed. Click on 'Fail' Button."
! + "\n 9. Test Passed. Click on 'Pass' Button.";
!
! instructionTextArea = new TextArea(13, 80);
! instructionTextArea.setText(instructions);
! instructionTextArea.setEnabled(false);
! instructionTextArea.setBackground(Color.white);
!
! gbc.gridx = 0;
! gbc.gridy = 0;
! gbc.weightx = 0.5;
! gbc.fill = GridBagConstraints.HORIZONTAL;
! mainControlPanel.add(instructionTextArea, gbc);
!
! passButton = new Button("Pass");
! passButton.setName("Pass");
! passButton.addActionListener((ActionListener) this);
!
! failButton = new Button("Fail");
! failButton.setName("Fail");
! failButton.addActionListener((ActionListener) this);
!
! gbc.gridx = 0;
! gbc.gridy = 0;
! resultButtonPanel.add(passButton, gbc);
! gbc.gridx = 1;
! gbc.gridy = 0;
! resultButtonPanel.add(failButton, gbc);
! gbc.gridx = 0;
! gbc.gridy = 1;
! mainControlPanel.add(resultButtonPanel, gbc);
!
! instructionFrame.add(mainControlPanel);
! instructionFrame.pack();
! instructionFrame.setVisible(true);
}
! @Override
! public void actionPerformed(ActionEvent ae) {
! if (ae.getSource() instanceof Button) {
! Button btn = (Button) ae.getSource();
! switch (btn.getName()) {
! case "Pass":
! testPassed = true;
! isInterrupted = true;
! mainThread.interrupt();
! break;
! case "Fail":
! testPassed = false;
! isInterrupted = true;
! mainThread.interrupt();
! break;
}
}
}
! private static void cleanUp() {
! mainFrame.dispose();
! instructionFrame.dispose();
! }
! public static void main(String args[]) {
! RestoreActiveWindowTest printDialogs = new RestoreActiveWindowTest();
! printDialogs.createInstructionUI();
! printDialogs.createAndShowGUI();
! mainThread = Thread.currentThread();
! try {
! mainThread.sleep(testTimeOut);
! } catch (InterruptedException ex) {
! if (!testPassed) {
! throw new RuntimeException("Updating TrayIcon popup menu"
! + " items FAILED");
}
! } finally {
! cleanUp();
}
! if (!isInterrupted) {
! throw new RuntimeException("Test Timed out after "
! + testTimeOut / 1000 + " seconds");
}
! }
! }
< prev index next >