KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > print > CPrinter


1 /******************************************************************************
2  * The contents of this file are subject to the Compiere License Version 1.1
3  * ("License"); You may not use this file except in compliance with the License
4  * You may obtain a copy of the License at http://www.compiere.org/license.html
5  * Software distributed under the License is distributed on an "AS IS" basis,
6  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
7  * the specific language governing rights and limitations under the License.
8  * The Original Code is Compiere ERP & CRM Business Solution
9  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
10  * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
11  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
12  * Contributor(s): ______________________________________.
13  *****************************************************************************/

14 package org.compiere.print;
15
16 import javax.swing.*;
17 import java.awt.*;
18 import java.awt.event.*;
19 import java.awt.print.*;
20 import javax.print.*;
21
22 import org.compiere.swing.*;
23 import org.compiere.util.*;
24
25 /**
26  * Compiere Printer Selection
27  *
28  * @author Jorg Janke
29  * @version $Id: CPrinter.java,v 1.4 2003/08/18 15:54:21 jjanke Exp $
30  */

31 public class CPrinter extends CComboBox implements ActionListener
32 {
33     /**
34      * Create PrinterJob
35      */

36     public CPrinter()
37     {
38         super(getPrinterNames());
39         // Set Default
40
setValue(Ini.getProperty(Ini.P_PRINTER));
41         this.addActionListener(this);
42     } // CPrinter
43

44     /**
45      * Action Listener
46      * @param e event
47      */

48     public void actionPerformed (ActionEvent e)
49     {
50
51     } // actionPerformed
52

53     /**
54      * Get PrintService
55      * @return print service
56      */

57     public PrintService getPrintService()
58     {
59         String JavaDoc currentService = (String JavaDoc)getSelectedItem();
60         for (int i = 0; i < s_services.length; i++)
61         {
62             if (s_services[i].getName().equals(currentService))
63                 return s_services[i];
64         }
65         return PrintServiceLookup.lookupDefaultPrintService();
66     } // getPrintService
67

68
69     /*************************************************************************/
70
71     /** Available Printer Services */
72 // private static PrintService[] s_services = PrinterJob.lookupPrintServices();
73
private static PrintService[] s_services = PrintServiceLookup.lookupPrintServices(null,null);
74
75     /**
76      * Get Print (Services) Names
77      * @return Printer Name array
78      */

79     public static String JavaDoc[] getPrinterNames()
80     {
81         String JavaDoc[] retValue = new String JavaDoc[s_services.length];
82         for (int i = 0; i < s_services.length; i++)
83             retValue[i] = s_services[i].getName();
84         return retValue;
85     } // getPrintServiceNames
86

87     /*************************************************************************/
88
89     /**
90      * Return default PrinterJob
91      * @return PrinterJob
92      */

93     public static PrinterJob getPrinterJob()
94     {
95         return getPrinterJob(Ini.getProperty(Ini.P_PRINTER));
96     } // getPrinterJob
97

98     /**
99      * Return PrinterJob with selected printer name.
100      * @param printerName if null, get default printer (Ini)
101      * @return PrinterJob
102      */

103     public static PrinterJob getPrinterJob (String JavaDoc printerName)
104     {
105         PrinterJob pj = PrinterJob.getPrinterJob();
106         PrintService ps = null;
107
108         // find printer service
109
if (printerName == null || printerName.length() == 0)
110             printerName = Ini.getProperty(Ini.P_PRINTER);
111         if (printerName != null && printerName.length() != 0)
112         {
113         // System.out.println("CPrinter.getPrinterJob - searching " + printerName);
114
for (int i = 0; i < s_services.length; i++)
115             {
116                 String JavaDoc serviceName = s_services[i].getName();
117                 if (printerName.equals(serviceName))
118                 {
119                     ps = s_services[i];
120         // System.out.println("CPrinter.getPrinterJob - found " + printerName);
121
break;
122                 }
123         // System.out.println("CPrinter.getPrinterJob - not: " + serviceName);
124
}
125         } // find printer service
126

127         try
128         {
129             if (ps != null)
130                 pj.setPrintService(ps);
131         }
132         catch (Exception JavaDoc e)
133         {
134             System.err.println("CPrinter.getPrinterJob - " + e.toString());
135         }
136         //
137
String JavaDoc serviceName = pj.getPrintService().getName();
138         if (printerName != null && !printerName.equals(serviceName))
139             System.err.println("CPrinter.getPrinterJob - Not found: " + printerName + " - Used: " + serviceName);
140         return pj;
141     } // getPrinterJob
142

143
144 } // CPrinter
145
Popular Tags