1 /*
   2  * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  20  * CA 95054 USA or visit www.sun.com if you need additional information or
  21  * have any questions.
  22  */
  23 
  24 /**
  25  * @test
  26  * @bug 6195901 6195923 6195928 6195933 6491273 6888734
  27  * @summary No SecurityException should be thrown when printing to a file
  28             using the given policy.
  29             Print to file option should be selected.
  30  * @run main/othervm/policy=policy SecurityDialogTest
  31  */
  32 import java.awt.*;
  33 import java.awt.event.*;
  34 import java.util.*;
  35 import java.io.*;
  36 
  37 
  38 public class SecurityDialogTest extends Frame implements ActionListener {
  39     // Declare things used in the test, like buttons and labels here
  40 
  41     Button nativeDlg, setSecurity;
  42         boolean isNative = true;
  43 
  44     public SecurityDialogTest() {
  45 
  46         nativeDlg = new Button("Print Dialog");
  47         nativeDlg.addActionListener(this);
  48         setSecurity = new Button("Toggle Dialog");
  49         setSecurity.addActionListener(this);
  50         add("South", nativeDlg);
  51         add("North", setSecurity);
  52         setSize(300, 300);
  53         setVisible(true);
  54     }
  55 
  56     public static void main(String args[]) {
  57         System.out.println("Native dialog is the default");
  58         SecurityDialogTest test = new SecurityDialogTest();
  59     }
  60 
  61     public void actionPerformed(ActionEvent e) {
  62 
  63         if (e.getSource() == setSecurity) {
  64             if (isNative) {
  65                 isNative = false;
  66                 System.out.println("Common dialog is the default");
  67 
  68             } else {
  69                 isNative = true;
  70                 System.out.println("Native dialog is the default");
  71             }
  72             return;
  73         }
  74 
  75         JobAttributes  ja = new JobAttributes();
  76         PageAttributes pa = new PageAttributes();
  77 
  78         if (isNative) {
  79             ja.setDialog(JobAttributes.DialogType.NATIVE);
  80         } else {
  81             ja.setDialog(JobAttributes.DialogType.COMMON);
  82         }
  83         ja.setDestination(JobAttributes.DestinationType.FILE);
  84         ja.setFileName("mohan.ps");
  85 
  86 
  87         PrintJob pjob = getToolkit().getPrintJob(this, null, ja, pa);
  88 
  89         if (pjob != null) {
  90             Graphics pg = pjob.getGraphics();
  91             System.out.println("PJOB: " + pjob);
  92             if (pg != null) {
  93                 System.out.println("Printer Graphics: " + pg);
  94                 this.printAll(pg);
  95                 pg.dispose();
  96             } else {
  97                 System.out.println("Printer Graphics is null");
  98             }
  99             pjob.end();
 100             System.out.println("DONE");
 101         } else {
 102             System.out.println("PJOB is null");
 103         }
 104     }
 105 }