OSDN Git Service

Support Polish language thanks to Monika Viste
[sudokuki/sudokuki.git] / src / classes / net / jankenpoi / sudokuki / ui / swing / PrintAction.java
1 /*
2  * Sudokuki - essential sudoku game
3  * Copyright (C) 2007-2016 Sylvain Vedrenne
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  * 
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  * 
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 package net.jankenpoi.sudokuki.ui.swing;
19
20 import java.awt.event.ActionEvent;
21 import java.awt.print.Printable;
22 import java.awt.print.PrinterException;
23 import java.awt.print.PrinterJob;
24
25 import javax.swing.AbstractAction;
26
27 @SuppressWarnings("serial")
28 public class PrintAction extends AbstractAction {
29
30         private Printable grid;
31         
32         public PrintAction(SwingGrid grid) {
33                 this.grid = grid;
34         }
35
36         @Override
37         public void actionPerformed(ActionEvent e) {
38                 PrinterJob job = PrinterJob.getPrinterJob();
39                 job.setPrintable(grid);
40                 boolean doPrint = job.printDialog();
41                 if (doPrint) {
42                           try {
43                                job.print();
44                           } catch (PrinterException pEx) {
45                            /* The job did not successfully complete */
46                                   pEx.printStackTrace();
47                           }
48                         }
49         }
50
51 }