Path: blob/master/test/jdk/java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java
41152 views
/*1* Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/222324/*25* @test26* @bug 8055836 8057694 805575227* @summary Check if Print and Page Setup dialogs lock other windows;28* check also correctness of modal behavior for other dialogs.29*30* @run applet/manual=yesno PrintDialogsTest.html31*/323334import java.applet.Applet;35import java.awt.*;3637import java.awt.event.ActionEvent;38import java.awt.event.ActionListener;394041public class PrintDialogsTest extends Applet implements ActionListener {4243private Button btnTest;44private Checkbox cbPage, cbPrint,45cbNullDlg, cbNullFrm, cbHiddDlg, cbHiddFrm, cbDlg, cbFrm,46cbModal, cbAppModal, cbTKModal, cbDocModal, cbModeless, cbNonModal;4748private CheckboxGroup groupDialog, groupParent, groupModType;495051public void actionPerformed(ActionEvent e) {5253if (!btnTest.equals(e.getSource())) { return; }5455boolean isPrintDlg = groupDialog.getSelectedCheckbox().equals(cbPrint);5657Test.DialogParent p = null;58Checkbox cbParent = groupParent.getSelectedCheckbox();59if (cbParent.equals(cbNullDlg)) {60p = Test.DialogParent.NULL_DIALOG;61} else if (cbParent.equals(cbNullFrm)) {62p = Test.DialogParent.NULL_FRAME;63} else if (cbParent.equals(cbHiddDlg)) {64p = Test.DialogParent.HIDDEN_DIALOG;65} else if (cbParent.equals(cbHiddFrm)) {66p = Test.DialogParent.HIDDEN_FRAME;67} else if (cbParent.equals(cbDlg)) {68p = Test.DialogParent.DIALOG;69} else if (cbParent.equals(cbFrm)) {70p = Test.DialogParent.FRAME;71}7273boolean modal = false;74Dialog.ModalityType type = null;75Checkbox cbModType = groupModType.getSelectedCheckbox();76if (cbModType.equals(cbModal)) {77modal = true;78} else if (cbModType.equals(cbNonModal)) {79modal = false;80} else if (cbModType.equals(cbAppModal)) {81type = Dialog.ModalityType.APPLICATION_MODAL;82} else if (cbModType.equals(cbDocModal)) {83type = Dialog.ModalityType.DOCUMENT_MODAL;84} else if (cbModType.equals(cbTKModal)) {85type = Dialog.ModalityType.TOOLKIT_MODAL;86} else if (cbModType.equals(cbModeless)) {87type = Dialog.ModalityType.MODELESS;88}8990if (type == null) {91(new Test(isPrintDlg, modal, p)).start();92} else {93(new Test(isPrintDlg, type, p)).start();94}95}9697private void createGUI() {9899setLayout(new BorderLayout());100101setSize(350, 200);102Panel panel = new Panel();103panel.setLayout(new GridLayout(18, 1));104105btnTest = new Button("Start test");106btnTest.addActionListener(this);107panel.add(btnTest);108109110panel.add(new Label("Dialog parent:"));111groupParent = new CheckboxGroup();112cbNullDlg = new Checkbox("NULL Dialog" , groupParent, true );113cbNullFrm = new Checkbox("NULL Frame" , groupParent, false);114cbHiddDlg = new Checkbox("Hidden Dialog", groupParent, false);115cbHiddFrm = new Checkbox("Hidden Frame" , groupParent, false);116cbDlg = new Checkbox("Dialog" , groupParent, false);117cbFrm = new Checkbox("Frame" , groupParent, false);118119panel.add(cbNullDlg);120panel.add(cbNullFrm);121panel.add(cbHiddDlg);122panel.add(cbHiddFrm);123panel.add(cbDlg);124panel.add(cbFrm);125126panel.add(new Label("Dialog modality type:"));127groupModType = new CheckboxGroup();128cbModal = new Checkbox("Modal" , groupModType, true );129cbNonModal = new Checkbox("Non-modal" , groupModType, false);130cbAppModal = new Checkbox("Application modal", groupModType, false);131cbDocModal = new Checkbox("Document modal" , groupModType, false);132cbTKModal = new Checkbox("Toolkit modal" , groupModType, false);133cbModeless = new Checkbox("Modeless" , groupModType, false);134135panel.add(cbModal);136panel.add(cbNonModal);137panel.add(cbAppModal);138panel.add(cbDocModal);139panel.add(cbTKModal);140panel.add(cbModeless);141add(panel);142143panel.add(new Label("Print dialog type:"));144groupDialog = new CheckboxGroup();145cbPage = new Checkbox("Page Setup", groupDialog, true);146cbPrint = new Checkbox("Print", groupDialog, false);147panel.add(cbPage);148panel.add(cbPrint);149150validate();151setVisible(true);152}153154public void start() {155try {156EventQueue.invokeAndWait(this::createGUI);157} catch (Exception e) {}158}159}160161162