< prev index next >
src/java.desktop/windows/classes/sun/print/Win32PrintService.java
Print this page
@@ -23,10 +23,12 @@
* questions.
*/
package sun.print;
+import java.awt.GraphicsEnvironment;
+import java.awt.Toolkit;
import java.awt.Window;
import java.awt.print.PrinterJob;
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
@@ -52,10 +54,12 @@
import javax.print.attribute.standard.RequestingUserName;
import javax.print.attribute.standard.Chromaticity;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.CopiesSupported;
import javax.print.attribute.standard.Destination;
+import javax.print.attribute.standard.DialogOwner;
+import javax.print.attribute.standard.DialogTypeSelection;
import javax.print.attribute.standard.Fidelity;
import javax.print.attribute.standard.Media;
import javax.print.attribute.standard.MediaSizeName;
import javax.print.attribute.standard.MediaSize;
import javax.print.attribute.standard.MediaTray;
@@ -1040,10 +1044,14 @@
PrinterResolution[] supportedRes = getPrintResolutions();
if ((supportedRes!=null) && (supportedRes.length>0)) {
categList.add(PrinterResolution.class);
}
+ if (GraphicsEnvironment.isHeadless() == false) {
+ categList.add(DialogOwner.class);
+ categList.add(DialogTypeSelection.class);
+ }
return categList.toArray(new Class<?>[categList.size()]);
}
public boolean
isAttributeCategorySupported(Class<? extends Attribute> category)
@@ -1583,10 +1591,27 @@
boolean isColorSup = ((caps & DEVCAP_COLOR) != 0);
if ((!isColorSup && (attr == ColorSupported.SUPPORTED)) ||
(isColorSup && (attr == ColorSupported.NOT_SUPPORTED))) {
return false;
}
+ } else if (category == DialogTypeSelection.class) {
+ return true; // isHeadless was checked by category support
+ } else if (category == DialogOwner.class) {
+ DialogOwner owner = (DialogOwner)attr;
+ DialogTypeSelection dts = (attributes == null) ? null :
+ (DialogTypeSelection)attributes.get(DialogTypeSelection.class);
+ if (dts == DialogTypeSelection.NATIVE) {
+ return owner.getID() != 0;
+ } else {
+ if (owner.getID() != 0) {
+ return false;
+ } else if (owner.getOwner() != null) {
+ return true;
+ } else {
+ return Toolkit.getDefaultToolkit().isAlwaysOnTopSupported();
+ }
+ }
}
return true;
}
public AttributeSet getUnsupportedAttributes(DocFlavor flavor,
< prev index next >