< prev index next >
src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java
Print this page
@@ -34,10 +34,11 @@
import java.security.PrivilegedAction;
import javax.print.*;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
+import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.Media;
import javax.print.attribute.standard.MediaPrintableArea;
import javax.print.attribute.standard.MediaSize;
import javax.print.attribute.standard.MediaSizeName;
import javax.print.attribute.standard.PageRanges;
@@ -192,13 +193,42 @@
if (rangeSelect == null || rangeSelect == SunPageSelection.RANGE) {
int[][] range = pageRangesAttr.getMembers();
// setPageRange will set firstPage and lastPage as called in getFirstPage
// and getLastPage
setPageRange(range[0][0] - 1, range[0][1] - 1);
+ } else {
+ // if rangeSelect is SunPageSelection.ALL
+ // then setPageRange appropriately
+ setPageRange(-1, -1);
+ }
+ }
}
+
+ private void setPageRangeAttribute(int from, int to, boolean isRangeSet) {
+ if (attributes != null) {
+ // since native Print use zero-based page indices,
+ // we need to store in 1-based format in attributes set
+ // but setPageRange again uses zero-based indices so it should be
+ // 1 less than pageRanges attribute
+ if (isRangeSet) {
+ attributes.add(new PageRanges(from+1, to+1));
+ attributes.add(SunPageSelection.RANGE);
+ setPageRange(from, to);
+ } else {
+ attributes.add(SunPageSelection.ALL);
}
+
}
+ }
+
+ private void setCopiesAttribute(int copies) {
+ if (attributes != null) {
+ attributes.add(new Copies(copies));
+ super.setCopies(copies);
+ }
+ }
+
volatile boolean onEventThread;
@Override
protected void cancelDoc() throws PrinterAbortException {
< prev index next >