Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/javax/print/attribute/ServiceDialogTest.java
41149 views
1
/*
2
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
25
/**
26
* @test
27
* @bug 4910388 4871089 4998624
28
* @summary Confirm that
29
* 1. After choosing Reverse Landscape in the system default print
30
* Print Service (2nd in the list), it
31
* will reset to portrait in "Test Printer"
32
* 2. Print To File button is not cleared when switching between the
33
* 2nd service (system default printer) and Test Printer.
34
* 3. Make sure "Postscript" printer is the default and make sure the
35
* "print to file" button is disabled. File Dialog should not be
36
* shown after pressing print button.
37
*
38
* @run main/manual ServiceDialogTest
39
*/
40
import java.awt.*;
41
import javax.print.*;
42
import javax.print.attribute.standard.*;
43
import javax.print.attribute.*;
44
import javax.print.event.*;
45
import java.io.*;
46
import java.util.Locale;
47
48
public class ServiceDialogTest {
49
/**
50
* Constructor
51
*/
52
public ServiceDialogTest() {
53
super();
54
}
55
/**
56
* Starts the application.
57
*/
58
public static void main(java.lang.String[] args) {
59
ServiceDialogTest pd = new ServiceDialogTest();
60
PrintService services[] = new PrintService[3];
61
services[1] = PrintServiceLookup.lookupDefaultPrintService();
62
63
FileOutputStream fos = null;
64
File f = null;
65
String mType = "application/postscript";
66
DocFlavor flavor = DocFlavor.INPUT_STREAM.JPEG;
67
try {
68
f = new File("streamexample.ps");
69
fos = new FileOutputStream(f);
70
StreamPrintServiceFactory[] factories = StreamPrintServiceFactory.lookupStreamPrintServiceFactories(flavor, mType);
71
if (factories.length > 0) {
72
services[0] = factories[0].getPrintService(fos);
73
} else {
74
throw new RuntimeException("No StreamPrintService available which would support "+flavor);
75
}
76
77
services[2] = new TestPrintService("Test Printer");
78
79
//System.out.println("is "+flavor+" supported? "+services[0].isDocFlavorSupported(flavor));
80
//System.out.println("is Orientation supported? "+services[0].isAttributeCategorySupported(OrientationRequested.class));
81
//System.out.println("is REVERSE PORTRAIT supported ? "+services[0].isAttributeValueSupported(OrientationRequested.REVERSE_PORTRAIT, flavor, null));
82
83
HashPrintRequestAttributeSet prSet = new HashPrintRequestAttributeSet();
84
prSet.add(new Destination(new File("./dest.prn").toURI()));
85
PrintService selService = ServiceUI.printDialog(null, 200, 200, services, services[0], flavor, prSet);
86
Attribute attr[] = prSet.toArray();
87
for (int x = 0; x < attr.length; x ++) {
88
System.out.println(attr[x]);
89
}
90
91
//DocPrintJob pj = service.createPrintJob();
92
//PrintDocument prDoc = new PrintDocument();
93
//pj.print(prDoc, null);
94
95
} catch (Exception e) {
96
e.printStackTrace();
97
}
98
}
99
}
100
101
102
class TestPrintService implements PrintService
103
{
104
105
private static DocFlavor textByteFlavor = null;
106
private static final DocFlavor supportedDocFlavors[] = (new DocFlavor[] {
107
javax.print.DocFlavor.INPUT_STREAM.JPEG
108
});
109
110
private static final Class serviceAttrCats[] = (new Class[] {
111
javax.print.attribute.standard.PrinterName.class
112
});
113
114
private static final Class otherAttrCats[] = (new Class [] {
115
javax.print.attribute.standard.Copies.class,
116
javax.print.attribute.standard.OrientationRequested.class,
117
javax.print.attribute.standard.Destination.class,
118
});
119
120
private String printer = null;
121
122
public TestPrintService() {
123
}
124
125
public TestPrintService(String printerName) {
126
if (printerName == null) {
127
throw new IllegalArgumentException("null printer name");
128
} else {
129
printer = printerName;
130
}
131
}
132
133
public String getName()
134
{
135
return printer;
136
}
137
138
139
public DocPrintJob createPrintJob()
140
{
141
return null;
142
}
143
144
public PrintServiceAttributeSet getUpdatedAttributes()
145
{
146
return null;
147
}
148
149
150
public void addPrintServiceAttributeListener(PrintServiceAttributeListener printserviceattributelistener)
151
{
152
}
153
154
public void removePrintServiceAttributeListener(PrintServiceAttributeListener printserviceattributelistener)
155
{
156
}
157
158
public PrintServiceAttribute getAttribute(Class category)
159
{
160
return null;
161
}
162
163
public PrintServiceAttributeSet getAttributes()
164
{
165
HashPrintServiceAttributeSet aSet = new HashPrintServiceAttributeSet();
166
return aSet;
167
}
168
169
public DocFlavor[] getSupportedDocFlavors()
170
{
171
int i = supportedDocFlavors.length;
172
DocFlavor adocflavor[] = new DocFlavor[i];
173
System.arraycopy(supportedDocFlavors, 0, adocflavor, 0, i);
174
return adocflavor;
175
}
176
177
public boolean isDocFlavorSupported(DocFlavor docflavor)
178
{
179
for (int i = 0; i < supportedDocFlavors.length; i++) {
180
if (docflavor.equals(supportedDocFlavors[i])) {
181
return true;
182
}
183
}
184
return false;
185
}
186
187
public Class[] getSupportedAttributeCategories()
188
{
189
int i = otherAttrCats.length;
190
Class aclass[] = new Class[i];
191
System.arraycopy(otherAttrCats, 0, aclass, 0, otherAttrCats.length);
192
return aclass;
193
}
194
195
public boolean isAttributeCategorySupported(Class category)
196
{
197
if (category == null) {
198
throw new NullPointerException("null category");
199
}
200
201
for (int i = 0; i < otherAttrCats.length; i++) {
202
if (category == otherAttrCats[i]) {
203
return true;
204
}
205
}
206
return false;
207
}
208
209
public boolean isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes) {
210
211
if (attrval == OrientationRequested.PORTRAIT)
212
return true;
213
else if (attrval == OrientationRequested.LANDSCAPE)
214
return true;
215
else
216
return false;
217
}
218
219
public Object getDefaultAttributeValue(Class category)
220
{
221
if (category == null) {
222
throw new NullPointerException("null category");
223
}
224
if (category == javax.print.attribute.standard.Copies.class)
225
return new Copies(1);
226
227
if (category == javax.print.attribute.standard.OrientationRequested.class)
228
return OrientationRequested.PORTRAIT;
229
230
return null;
231
}
232
233
public Object getSupportedAttributeValues(Class category, DocFlavor docflavor, AttributeSet attributeset)
234
{
235
if (category == null) {
236
throw new NullPointerException("null category");
237
}
238
239
if (docflavor != null) {
240
if (!isDocFlavorSupported(docflavor)) {
241
throw new IllegalArgumentException(docflavor + " is an unsupported flavor");
242
}
243
}
244
if (!isAttributeCategorySupported(category)) {
245
return null;
246
}
247
if (category == javax.print.attribute.standard.Copies.class ) {
248
return new CopiesSupported(1, 5);
249
}
250
if (category == javax.print.attribute.standard.OrientationRequested.class ) {
251
OrientationRequested req[] = { OrientationRequested.PORTRAIT, OrientationRequested.LANDSCAPE };
252
return req;
253
}
254
255
return null;
256
}
257
258
public AttributeSet getUnsupportedAttributes(DocFlavor docflavor, AttributeSet attributeset) {
259
260
if (docflavor != null && !isDocFlavorSupported(docflavor)) {
261
throw new IllegalArgumentException("flavor " + docflavor + "is not supported");
262
}
263
if (attributeset == null) {
264
return null;
265
}
266
267
HashAttributeSet hashattributeset = new HashAttributeSet();
268
Attribute attributearray[] = attributeset.toArray();
269
for (int i = 0; i < attributearray.length; i++) {
270
try {
271
Attribute attribute = attributearray[i];
272
if (!isAttributeCategorySupported(attribute.getCategory())) {
273
hashattributeset.add(attribute);
274
} else {
275
if (!isAttributeValueSupported(attribute, docflavor, attributeset)) {
276
hashattributeset.add(attribute);
277
}
278
}
279
}
280
catch (ClassCastException classcastexception) {
281
282
}
283
}
284
285
if (hashattributeset.isEmpty()) {
286
return null;
287
}
288
return hashattributeset;
289
}
290
291
public ServiceUIFactory getServiceUIFactory() {
292
return null;
293
}
294
295
public String toString() {
296
return "Printer : " + getName();
297
}
298
299
public boolean equals(Object obj) {
300
return obj == this || (obj instanceof TestPrintService) && ((TestPrintService)obj).getName().equals(getName());
301
}
302
303
public int hashCode() {
304
return getClass().hashCode() + getName().hashCode();
305
}
306
307
}
308
309