home *** CD-ROM | disk | FTP | other *** search
- package sun.awt.windows;
-
- import java.awt.Component;
- import java.awt.Dialog;
- import java.awt.Frame;
- import java.awt.JobAttributes;
- import java.awt.PageAttributes;
- import java.awt.PrintJob;
- import java.awt.PageAttributes.MediaType;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.TreeSet;
- import sun.awt.print.PrintControl;
- import sun.awt.print.PrinterCapabilities;
- import sun.awt.print.PrinterListUpdatable;
-
- class WPrintControl extends PrintControl {
- private static final PageAttributes.MediaType[] dmPaperToPrintControl;
- private WFramePeer dialogOwnerPeer = null;
- private static final double TENTHS_MM_TO_POINTS = 3.527777778;
- private static final HashMap mediaCache;
- private static final HashMap capabilitiesCache;
-
- public WPrintControl(Frame var1, String var2, JobAttributes var3, PageAttributes var4) {
- super(var1, var2, var3, var4);
- if (var1 != null) {
- this.dialogOwnerPeer = (WFramePeer)((Component)var1).getPeer();
- }
-
- }
-
- private native char _getWin32MediaAttrib(int var1, String var2);
-
- public char getWin32MediaAttrib() {
- return this._getWin32MediaAttrib(((PrintControl)this).getMediaAttrib(), ((PrintControl)this).getPrinterAttrib());
- }
-
- private int findWin32Media(int var1, int var2, int var3, boolean var4) {
- if (var1 >= 1 && var1 <= 41) {
- return !var4 || var1 != 32 && var1 != 39 && var1 != 40 ? dmPaperToPrintControl[var1 - 1].hashCode() : -1;
- } else {
- Integer var5 = (Integer)mediaCache.get(new CacheKey(this, var1, var2, var3));
- if (var5 != null) {
- int var13 = var5;
- if (!var4) {
- return var13;
- } else {
- int var14 = (int)((double)var2 / 3.527777778 + (double)0.5F);
- int var16 = (int)((double)var3 / 3.527777778 + (double)0.5F);
- return (var14 != PrintControl.WIDTHS[var13] || var16 != PrintControl.LENGTHS[var13]) && (var14 != PrintControl.LENGTHS[var13] || var16 != PrintControl.WIDTHS[var13]) ? -1 : var13;
- }
- } else {
- int var6 = (int)((double)var2 / 3.527777778 + (double)0.5F);
- int var7 = (int)((double)var3 / 3.527777778 + (double)0.5F);
- int var10 = Integer.MAX_VALUE;
- int var11 = -1;
-
- for(int var12 = 0; var12 < PrintControl.SIZES.length; ++var12) {
- int var8 = Math.abs(var6 - PrintControl.WIDTHS[var12]) + Math.abs(var7 - PrintControl.LENGTHS[var12]);
- int var9 = Math.abs(var6 - PrintControl.LENGTHS[var12]) + Math.abs(var7 - PrintControl.WIDTHS[var12]);
- var8 = var8 < var9 ? var8 : var9;
- if (var8 < var10) {
- var10 = var8;
- var11 = var12;
- if (var8 == 0) {
- break;
- }
- }
- }
-
- mediaCache.put(new CacheKey(this, var1, var2, var3), new Integer(var11));
- return var4 && var10 != 0 ? -1 : var11;
- }
- }
- }
-
- public void setWin32MediaAttrib(int var1, int var2, int var3) {
- ((PrintControl)this).setMediaAttrib(this.findWin32Media(var1, var2, var3, false));
- }
-
- public native String getDefaultPrinterName();
-
- private native boolean _getCapabilities(PrinterCapabilities var1);
-
- public boolean getCapabilities(PrinterCapabilities var1) {
- PrinterCapabilities var2 = (PrinterCapabilities)capabilitiesCache.get(var1.getPrinterName());
- if (var2 != null) {
- var1.set(var2);
- return true;
- } else if (!this._getCapabilities(var1)) {
- return false;
- } else {
- int[] var3 = var1.getSizes();
- if (var3 != null) {
- TreeSet var4 = new TreeSet();
-
- for(int var5 = 0; var5 < var3.length; ++var5) {
- if (var3[var5] != -1) {
- var4.add(new Integer(var3[var5]));
- }
- }
-
- int[] var6 = new int[var4.size()];
- Iterator var7 = var4.iterator();
-
- for(int var8 = 0; var7.hasNext(); ++var8) {
- var6[var8] = (Integer)var7.next();
- }
-
- var1.setSizes(var6);
- }
-
- capabilitiesCache.put(var1.getPrinterName(), var1);
- return true;
- }
- }
-
- private native String[] _getPrinterList();
-
- public void getPrinterList(PrinterListUpdatable var1) {
- (new Thread(new 1(this, var1))).start();
- }
-
- protected PrintJob initJobWithNativeDialog() {
- WPrintDialog var1 = new WPrintDialog(super.dialogOwner, this);
- PrintJob var2 = var1.initJob();
- ((Dialog)var1).dispose();
- return var2;
- }
-
- protected PrintJob createPrintJob() {
- return WPrintJob.createPrintJob(this);
- }
-
- private static native void initIDs();
-
- // $FF: synthetic method
- static String[] access$000(WPrintControl var0) {
- return var0._getPrinterList();
- }
-
- static {
- initIDs();
- dmPaperToPrintControl = new PageAttributes.MediaType[]{MediaType.NA_LETTER, MediaType.NA_LETTER, MediaType.LEDGER, MediaType.LEDGER, MediaType.NA_LEGAL, MediaType.INVOICE, MediaType.EXECUTIVE, MediaType.ISO_A3, MediaType.ISO_A4, MediaType.ISO_A4, MediaType.ISO_A5, MediaType.ISO_B4, MediaType.JIS_B5, MediaType.FOLIO, MediaType.QUARTO, MediaType.NA_10X14_ENVELOPE, MediaType.B, MediaType.NA_LETTER, MediaType.NA_NUMBER_9_ENVELOPE, MediaType.NA_NUMBER_10_ENVELOPE, MediaType.NA_NUMBER_11_ENVELOPE, MediaType.NA_NUMBER_12_ENVELOPE, MediaType.NA_NUMBER_14_ENVELOPE, MediaType.C, MediaType.D, MediaType.E, MediaType.ISO_DESIGNATED_LONG, MediaType.ISO_C5, MediaType.ISO_C3, MediaType.ISO_C4, MediaType.ISO_C6, MediaType.ITALY_ENVELOPE, MediaType.ISO_B4, MediaType.ISO_B5, MediaType.ISO_B6, MediaType.ITALY_ENVELOPE, MediaType.MONARCH_ENVELOPE, MediaType.PERSONAL_ENVELOPE, MediaType.NA_10X15_ENVELOPE, MediaType.NA_9X12_ENVELOPE, MediaType.FOLIO};
- mediaCache = new HashMap();
- capabilitiesCache = new HashMap();
- }
- }
-