home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / awt / print / PrintControl.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  13.1 KB  |  364 lines

  1. package sun.awt.print;
  2.  
  3. import java.awt.Dialog;
  4. import java.awt.Frame;
  5. import java.awt.JobAttributes;
  6. import java.awt.PageAttributes;
  7. import java.awt.PrintJob;
  8. import java.awt.JobAttributes.DefaultSelectionType;
  9. import java.awt.JobAttributes.DestinationType;
  10. import java.awt.JobAttributes.DialogType;
  11. import java.awt.JobAttributes.MultipleDocumentHandlingType;
  12. import java.awt.PageAttributes.MediaType;
  13. import java.io.FilePermission;
  14. import java.security.AccessController;
  15. import javax.swing.LookAndFeel;
  16. import javax.swing.UIManager;
  17. import javax.swing.UnsupportedLookAndFeelException;
  18. import sun.awt.DebugHelper;
  19.  
  20. public abstract class PrintControl {
  21.    public static final PageAttributes.MediaType[] SIZES;
  22.    public static final int[] WIDTHS;
  23.    public static final int[] LENGTHS;
  24.    private static final DebugHelper dbg;
  25.    private static final double CM_TO_IN = 2.54;
  26.    protected Frame dialogOwner;
  27.    protected String doctitle;
  28.    private JobAttributes jobAttributes;
  29.    private PageAttributes pageAttributes;
  30.    private String options = "";
  31.    private FilePermission printToFilePermission;
  32.    private boolean printToFileEnabled = false;
  33.    // $FF: synthetic field
  34.    static Class class$sun$awt$print$PrintControl;
  35.  
  36.    public PrintControl(Frame var1, String var2, JobAttributes var3, PageAttributes var4) {
  37.       this.dialogOwner = var1;
  38.       this.doctitle = var2 != null ? var2 : "";
  39.       this.jobAttributes = var3 != null ? var3 : new JobAttributes();
  40.       this.pageAttributes = var4 != null ? var4 : new PageAttributes();
  41.       int[][] var5 = this.jobAttributes.getPageRanges();
  42.       int var6 = var5[0][0];
  43.       int var7 = var5[var5.length - 1][1];
  44.       this.jobAttributes.setPageRanges(new int[][]{{var6, var7}});
  45.       this.jobAttributes.setToPage(var7);
  46.       this.jobAttributes.setFromPage(var6);
  47.       if (var1 != null || var3 != null && var3.getDialog() != DialogType.NATIVE) {
  48.          int[] var8 = this.pageAttributes.getPrinterResolution();
  49.          if (var8[0] != var8[1]) {
  50.             throw new IllegalArgumentException("Differing cross feed and feed resolutions not supported.");
  51.          } else {
  52.             JobAttributes.DestinationType var9 = this.jobAttributes.getDestination();
  53.             if (var9 == DestinationType.FILE) {
  54.                this.throwPrintToFile();
  55.                this.printToFileEnabled = true;
  56.             } else {
  57.                this.printToFileEnabled = this.checkPrintToFile();
  58.             }
  59.  
  60.          }
  61.       } else {
  62.          throw new NullPointerException("frame");
  63.       }
  64.    }
  65.  
  66.    public final PageAttributes.ColorType getColorAttrib() {
  67.       return this.pageAttributes.getColor();
  68.    }
  69.  
  70.    public final void setColorAttrib(PageAttributes.ColorType var1) {
  71.       this.pageAttributes.setColor(var1);
  72.    }
  73.  
  74.    public final int getCopiesAttrib() {
  75.       return this.jobAttributes.getCopies();
  76.    }
  77.  
  78.    public final void setCopiesAttrib(int var1) {
  79.       this.jobAttributes.setCopies(var1);
  80.    }
  81.  
  82.    public final JobAttributes.DefaultSelectionType getSelectAttrib() {
  83.       return this.jobAttributes.getDefaultSelection();
  84.    }
  85.  
  86.    public final void setSelectAttrib(JobAttributes.DefaultSelectionType var1) {
  87.       this.jobAttributes.setDefaultSelection(var1);
  88.    }
  89.  
  90.    public final JobAttributes.DestinationType getDestAttrib() {
  91.       return this.jobAttributes.getDestination();
  92.    }
  93.  
  94.    public final void setDestAttrib(JobAttributes.DestinationType var1) {
  95.       this.jobAttributes.setDestination(var1);
  96.    }
  97.  
  98.    public final JobAttributes.DialogType getDialogAttrib() {
  99.       return this.jobAttributes.getDialog();
  100.    }
  101.  
  102.    public final String getFileNameAttrib() {
  103.       return this.jobAttributes.getFileName();
  104.    }
  105.  
  106.    public final void setFileNameAttrib(String var1) {
  107.       this.jobAttributes.setFileName(var1);
  108.    }
  109.  
  110.    public final int getFromPageAttrib() {
  111.       return this.jobAttributes.getFromPage();
  112.    }
  113.  
  114.    public final void setFromPageAttrib(int var1) {
  115.       this.jobAttributes.setFromPage(var1);
  116.       this.jobAttributes.setPageRanges(new int[][]{{var1, this.jobAttributes.getToPage()}});
  117.    }
  118.  
  119.    public final int getMaxPageAttrib() {
  120.       return this.jobAttributes.getMaxPage();
  121.    }
  122.  
  123.    public final int getMediaAttrib() {
  124.       return this.pageAttributes.getMedia().hashCode();
  125.    }
  126.  
  127.    public final void setMediaAttrib(int var1) {
  128.       this.pageAttributes.setMedia(SIZES[var1]);
  129.    }
  130.  
  131.    public final int getMinPageAttrib() {
  132.       return this.jobAttributes.getMinPage();
  133.    }
  134.  
  135.    public final JobAttributes.MultipleDocumentHandlingType getMDHAttrib() {
  136.       return this.jobAttributes.getMultipleDocumentHandling();
  137.    }
  138.  
  139.    public final void setMDHAttrib(JobAttributes.MultipleDocumentHandlingType var1) {
  140.       this.jobAttributes.setMultipleDocumentHandling(var1);
  141.    }
  142.  
  143.    public final String getOptions() {
  144.       return this.options;
  145.    }
  146.  
  147.    public final void setOptions(String var1) {
  148.       this.options = var1 != null ? var1 : "";
  149.    }
  150.  
  151.    public final PageAttributes.OrientationRequestedType getOrientAttrib() {
  152.       return this.pageAttributes.getOrientationRequested();
  153.    }
  154.  
  155.    public final void setOrientAttrib(PageAttributes.OrientationRequestedType var1) {
  156.       this.pageAttributes.setOrientationRequested(var1);
  157.    }
  158.  
  159.    public final PageAttributes.OriginType getOriginAttrib() {
  160.       return this.pageAttributes.getOrigin();
  161.    }
  162.  
  163.    public final PageAttributes.PrintQualityType getQualityAttrib() {
  164.       return this.pageAttributes.getPrintQuality();
  165.    }
  166.  
  167.    public final void setQualityAttrib(PageAttributes.PrintQualityType var1) {
  168.       this.pageAttributes.setPrintQuality(var1);
  169.    }
  170.  
  171.    public final String getPrinterAttrib() {
  172.       String var1 = this.jobAttributes.getPrinter();
  173.       return var1 != null ? var1 : this.getDefaultPrinterName();
  174.    }
  175.  
  176.    public final void setPrinterAttrib(String var1) {
  177.       this.jobAttributes.setPrinter(var1);
  178.    }
  179.  
  180.    public final boolean getPrintToFileEnabled() {
  181.       return this.printToFileEnabled;
  182.    }
  183.  
  184.    public final int getResAttrib() {
  185.       int[] var1 = this.pageAttributes.getPrinterResolution();
  186.       return var1[2] == 3 ? var1[0] : (int)((double)var1[0] * 2.54);
  187.    }
  188.  
  189.    public JobAttributes.SidesType getSidesAttrib() {
  190.       return this.jobAttributes.getSides();
  191.    }
  192.  
  193.    public void setSidesAttrib(JobAttributes.SidesType var1) {
  194.       this.jobAttributes.setSides(var1);
  195.    }
  196.  
  197.    public int getToPageAttrib() {
  198.       return this.jobAttributes.getToPage();
  199.    }
  200.  
  201.    public void setToPageAttrib(int var1) {
  202.       this.jobAttributes.setToPage(var1);
  203.       this.jobAttributes.setPageRanges(new int[][]{{this.jobAttributes.getFromPage(), var1}});
  204.    }
  205.  
  206.    public PrintJob initJob() {
  207.       if (this.getDialogAttrib() == DialogType.COMMON) {
  208.          return this.initJobWithCommonDialog();
  209.       } else {
  210.          return this.getDialogAttrib() == DialogType.NATIVE ? this.initJobWithNativeDialog() : this.createPrintJob();
  211.       }
  212.    }
  213.  
  214.    public abstract String getDefaultPrinterName();
  215.  
  216.    public abstract boolean getCapabilities(PrinterCapabilities var1);
  217.  
  218.    public abstract void getPrinterList(PrinterListUpdatable var1);
  219.  
  220.    protected final PrintJob initJobWithCommonDialog() {
  221.       LookAndFeel var1 = UIManager.getLookAndFeel();
  222.  
  223.       try {
  224.          UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
  225.       } catch (ClassNotFoundException var7) {
  226.       } catch (IllegalAccessException var8) {
  227.       } catch (InstantiationException var9) {
  228.       } catch (UnsupportedLookAndFeelException var10) {
  229.       }
  230.  
  231.       PrintDialog var2 = (PrintDialog)AccessController.doPrivileged(new 1(this));
  232.       var2.setDocumentTitle(this.doctitle);
  233.       var2.setDestType(this.getDestAttrib());
  234.       var2.setDestString(DestinationType.PRINTER, this.getPrinterAttrib());
  235.       var2.setDestString(DestinationType.FILE, this.getFileNameAttrib());
  236.       var2.setPrintToFileEnabled(this.getPrintToFileEnabled());
  237.       var2.setOptionsString(this.getOptions());
  238.       var2.setPrintRange(this.getSelectAttrib());
  239.       var2.setMinMaxPage(this.getMinPageAttrib(), this.getMaxPageAttrib());
  240.       var2.setFromPage(this.getFromPageAttrib());
  241.       var2.setToPage(this.getToPageAttrib());
  242.       var2.setCopies(this.getCopiesAttrib());
  243.       var2.setCollate(this.getMDHAttrib() == MultipleDocumentHandlingType.SEPARATE_DOCUMENTS_COLLATED_COPIES);
  244.       var2.setMedia(SIZES[this.getMediaAttrib()]);
  245.       var2.setOrientation(this.getOrientAttrib());
  246.       var2.setColor(this.getColorAttrib());
  247.       var2.setQuality(this.getQualityAttrib());
  248.       var2.setSides(this.getSidesAttrib());
  249.       PrintJob var3 = var2.getPrintJob();
  250.       ((Dialog)var2).dispose();
  251.  
  252.       try {
  253.          UIManager.setLookAndFeel(var1);
  254.       } catch (UnsupportedLookAndFeelException var6) {
  255.       }
  256.  
  257.       return var3;
  258.    }
  259.  
  260.    protected PrintJob initJobWithNativeDialog() {
  261.       return this.initJobWithCommonDialog();
  262.    }
  263.  
  264.    protected abstract PrintJob createPrintJob();
  265.  
  266.    protected PrintJob createPrintJob(PrintDialog var1) {
  267.       JobAttributes var2 = this.jobAttributes;
  268.       PageAttributes var3 = this.pageAttributes;
  269.       this.jobAttributes = (JobAttributes)this.jobAttributes.clone();
  270.       this.pageAttributes = (PageAttributes)this.pageAttributes.clone();
  271.       this.doctitle = var1.getDocumentTitle();
  272.       this.setDestAttrib(var1.getDestType());
  273.       String var4 = var1.getDestString(DestinationType.PRINTER);
  274.       if (var4 != null && !var4.equals("")) {
  275.          this.setPrinterAttrib(var4);
  276.       }
  277.  
  278.       if (this.getDestAttrib() == DestinationType.FILE) {
  279.          String var5 = var1.getDestString(DestinationType.FILE);
  280.          if (var5 != null && !var5.equals("")) {
  281.             this.setFileNameAttrib(var5);
  282.          }
  283.       }
  284.  
  285.       String var10 = var1.getOptionsString();
  286.       if (var10 != null && !var10.equals("")) {
  287.          this.setOptions(var10);
  288.       }
  289.  
  290.       this.setSelectAttrib(var1.getPrintRange());
  291.       if (this.getSelectAttrib() == DefaultSelectionType.RANGE) {
  292.          this.setToPageAttrib(var1.getToPage());
  293.          this.setFromPageAttrib(var1.getFromPage());
  294.       }
  295.  
  296.       int var6 = var1.getCopies();
  297.       if (var6 > 0) {
  298.          this.setCopiesAttrib(var6);
  299.       }
  300.  
  301.       this.setMDHAttrib(var1.getCollate() ? MultipleDocumentHandlingType.SEPARATE_DOCUMENTS_COLLATED_COPIES : MultipleDocumentHandlingType.SEPARATE_DOCUMENTS_UNCOLLATED_COPIES);
  302.       this.setMediaAttrib(var1.getMedia().hashCode());
  303.       this.setOrientAttrib(var1.getOrientation());
  304.       this.setColorAttrib(var1.getColor());
  305.       this.setQualityAttrib(var1.getQuality());
  306.       this.setSidesAttrib(var1.getSides());
  307.  
  308.       PrintJob var7;
  309.       try {
  310.          var7 = this.createPrintJob();
  311.       } catch (IllegalArgumentException var9) {
  312.          this.jobAttributes = var2;
  313.          this.pageAttributes = var3;
  314.          throw var9;
  315.       }
  316.  
  317.       if (var7 != null) {
  318.          var2.set(this.jobAttributes);
  319.          var3.set(this.pageAttributes);
  320.       }
  321.  
  322.       this.jobAttributes = var2;
  323.       this.pageAttributes = var3;
  324.       return var7;
  325.    }
  326.  
  327.    private boolean checkPrintToFile() {
  328.       try {
  329.          this.throwPrintToFile();
  330.          return true;
  331.       } catch (SecurityException var2) {
  332.          return false;
  333.       }
  334.    }
  335.  
  336.    private void throwPrintToFile() {
  337.       SecurityManager var1 = System.getSecurityManager();
  338.       if (var1 != null) {
  339.          if (this.printToFilePermission == null) {
  340.             this.printToFilePermission = new FilePermission("<<ALL FILES>>", "read,write");
  341.          }
  342.  
  343.          var1.checkPermission(this.printToFilePermission);
  344.       }
  345.  
  346.    }
  347.  
  348.    // $FF: synthetic method
  349.    static Class class$(String var0) {
  350.       try {
  351.          return Class.forName(var0);
  352.       } catch (ClassNotFoundException var2) {
  353.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  354.       }
  355.    }
  356.  
  357.    static {
  358.       SIZES = new PageAttributes.MediaType[]{MediaType.ISO_4A0, MediaType.ISO_2A0, MediaType.ISO_A0, MediaType.ISO_A1, MediaType.ISO_A2, MediaType.ISO_A3, MediaType.ISO_A4, MediaType.ISO_A5, MediaType.ISO_A6, MediaType.ISO_A7, MediaType.ISO_A8, MediaType.ISO_A9, MediaType.ISO_A10, MediaType.ISO_B0, MediaType.ISO_B1, MediaType.ISO_B2, MediaType.ISO_B3, MediaType.ISO_B4, MediaType.ISO_B5, MediaType.ISO_B6, MediaType.ISO_B7, MediaType.ISO_B8, MediaType.ISO_B9, MediaType.ISO_B10, MediaType.JIS_B0, MediaType.JIS_B1, MediaType.JIS_B2, MediaType.JIS_B3, MediaType.JIS_B4, MediaType.JIS_B5, MediaType.JIS_B6, MediaType.JIS_B7, MediaType.JIS_B8, MediaType.JIS_B9, MediaType.JIS_B10, MediaType.ISO_C0, MediaType.ISO_C1, MediaType.ISO_C2, MediaType.ISO_C3, MediaType.ISO_C4, MediaType.ISO_C5, MediaType.ISO_C6, MediaType.ISO_C7, MediaType.ISO_C8, MediaType.ISO_C9, MediaType.ISO_C10, MediaType.ISO_DESIGNATED_LONG, MediaType.EXECUTIVE, MediaType.FOLIO, MediaType.INVOICE, MediaType.LEDGER, MediaType.NA_LETTER, MediaType.NA_LEGAL, MediaType.QUARTO, MediaType.A, MediaType.B, MediaType.C, MediaType.D, MediaType.E, MediaType.NA_10X15_ENVELOPE, MediaType.NA_10X14_ENVELOPE, MediaType.NA_10X13_ENVELOPE, MediaType.NA_9X12_ENVELOPE, MediaType.NA_9X11_ENVELOPE, MediaType.NA_7X9_ENVELOPE, MediaType.NA_6X9_ENVELOPE, 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.INVITE_ENVELOPE, MediaType.ITALY_ENVELOPE, MediaType.MONARCH_ENVELOPE, MediaType.PERSONAL_ENVELOPE};
  359.       WIDTHS = new int[]{4768, 3370, 2384, 1684, 1191, 842, 595, 420, 298, 210, 147, 105, 74, 2835, 2004, 1417, 1001, 709, 499, 354, 249, 176, 125, 88, 2920, 2064, 1460, 1032, 729, 516, 363, 258, 181, 128, 91, 2599, 1837, 1298, 918, 649, 459, 323, 230, 162, 113, 79, 312, 522, 612, 396, 792, 612, 612, 609, 612, 792, 1224, 1584, 2448, 720, 720, 720, 648, 648, 504, 432, 279, 297, 324, 342, 360, 624, 312, 279, 261};
  360.       LENGTHS = new int[]{6741, 4768, 3370, 2384, 1684, 1191, 842, 595, 420, 298, 210, 147, 105, 4008, 2835, 2004, 1417, 1001, 729, 499, 354, 249, 176, 125, 4127, 2920, 2064, 1460, 1032, 729, 516, 363, 258, 181, 128, 3677, 2599, 1837, 1298, 918, 649, 459, 323, 230, 162, 113, 624, 756, 936, 612, 1224, 792, 1008, 780, 792, 1224, 1584, 2448, 3168, 1080, 1008, 936, 864, 792, 648, 648, 639, 684, 747, 792, 828, 624, 652, 540, 468};
  361.       dbg = DebugHelper.create(class$sun$awt$print$PrintControl == null ? (class$sun$awt$print$PrintControl = class$("sun.awt.print.PrintControl")) : class$sun$awt$print$PrintControl);
  362.    }
  363. }
  364.