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 / PrintDialog.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  19.4 KB  |  794 lines

  1. package sun.awt.print;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dialog;
  7. import java.awt.Dimension;
  8. import java.awt.EventQueue;
  9. import java.awt.FlowLayout;
  10. import java.awt.Frame;
  11. import java.awt.GridBagConstraints;
  12. import java.awt.GridBagLayout;
  13. import java.awt.GridLayout;
  14. import java.awt.Insets;
  15. import java.awt.JobAttributes;
  16. import java.awt.PageAttributes;
  17. import java.awt.PrintJob;
  18. import java.awt.Toolkit;
  19. import java.awt.Window;
  20. import java.awt.JobAttributes.DefaultSelectionType;
  21. import java.awt.JobAttributes.DestinationType;
  22. import java.awt.JobAttributes.SidesType;
  23. import java.awt.PageAttributes.ColorType;
  24. import java.awt.PageAttributes.OrientationRequestedType;
  25. import java.awt.PageAttributes.PrintQualityType;
  26. import java.awt.event.ActionEvent;
  27. import java.awt.event.ActionListener;
  28. import java.awt.event.ItemEvent;
  29. import java.awt.event.ItemListener;
  30. import java.net.URL;
  31. import java.security.AccessController;
  32. import java.util.EventObject;
  33. import java.util.MissingResourceException;
  34. import java.util.ResourceBundle;
  35. import javax.swing.ButtonGroup;
  36. import javax.swing.DefaultComboBoxModel;
  37. import javax.swing.ImageIcon;
  38. import javax.swing.JButton;
  39. import javax.swing.JCheckBox;
  40. import javax.swing.JComboBox;
  41. import javax.swing.JComponent;
  42. import javax.swing.JDialog;
  43. import javax.swing.JFileChooser;
  44. import javax.swing.JFrame;
  45. import javax.swing.JLabel;
  46. import javax.swing.JPanel;
  47. import javax.swing.JRadioButton;
  48. import javax.swing.JTabbedPane;
  49. import javax.swing.JTextField;
  50.  
  51. public class PrintDialog extends JDialog implements PrinterListUpdatable, ItemListener, ActionListener {
  52.    private static String[] sortedPrinterList = null;
  53.    private Frame parent;
  54.    private PrintControl printControl;
  55.    private PrintJob printJob;
  56.    private String fileName = "";
  57.    private int minPage = 0;
  58.    private int maxPage = Integer.MAX_VALUE;
  59.    private JTabbedPane tabs;
  60.    private JPanel printPanel;
  61.    private JLabel pagesLabel;
  62.    private ButtonGroup selectionGroup;
  63.    private JRadioButton selectionAllRB;
  64.    private JRadioButton selectionRangeRB;
  65.    private JPanel panelSelection;
  66.    private NumericField selectionFromText;
  67.    private JLabel selectionToLabel;
  68.    private NumericField selectionToText;
  69.    private JRadioButton selectionSelectionRB;
  70.    private JLabel copiesLabel;
  71.    private NumericField copiesText;
  72.    private JCheckBox collateCB;
  73.    private JLabel optionsLabel;
  74.    private JCheckBox titleSheetCB;
  75.    private JTextField titleSheetText;
  76.    private JLabel commandsLabel;
  77.    private JTextField commandsText;
  78.    private JLabel printToLabel;
  79.    private ButtonGroup printDestGroup;
  80.    private JRadioButton printerRB;
  81.    private JComboBox printerCmB;
  82.    private JRadioButton fileRB;
  83.    private JPanel spacingPanel1;
  84.    private JPanel spacingPanel2;
  85.    private JPanel propertiesPanel;
  86.    private JLabel orientationLabel;
  87.    private ButtonGroup orientationGroup;
  88.    private JPanel portraitPanel;
  89.    private JRadioButton portraitRB;
  90.    private OrientationLabel portraitLabel;
  91.    private JPanel landscapePanel;
  92.    private JRadioButton landscapeRB;
  93.    private OrientationLabel landscapeLabel;
  94.    private JLabel colorLabel;
  95.    private ButtonGroup colorGroup;
  96.    private JRadioButton colorRB;
  97.    private JRadioButton monochromeRB;
  98.    private JLabel paperLabel;
  99.    private JComboBox paperCmB;
  100.    private JCheckBox duplexCB;
  101.    private JCheckBox tumbleCB;
  102.    private JLabel qualityLabel;
  103.    private ButtonGroup qualityGroup;
  104.    private JRadioButton highQualityRB;
  105.    private JRadioButton normalQualityRB;
  106.    private JRadioButton draftQualityRB;
  107.    private JPanel spacingPanel3;
  108.    private JPanel buttonPanel;
  109.    private JPanel buttonLeftPanel;
  110.    private JPanel buttonRightPanel;
  111.    private JButton printButton;
  112.    private JButton cancelButton;
  113.    private JButton helpButton;
  114.    private ImageIcon landscapeIcon;
  115.    private ImageIcon portraitIcon;
  116.    private static ResourceBundle messageRB;
  117.    private static final MediaString[] ALL_SIZES;
  118.    private static final DefaultComboBoxModel ALL_SIZES_MODEL;
  119.    // $FF: synthetic field
  120.    static Class class$sun$awt$print$PrintDialog;
  121.  
  122.    static void initResource() {
  123.       AccessController.doPrivileged(new 1());
  124.    }
  125.  
  126.    static String getMsg(String var0) {
  127.       try {
  128.          return messageRB.getString(var0);
  129.       } catch (MissingResourceException var2) {
  130.          throw new Error("Fatal: Resource for PrintDialog is broken, There is no " + var0 + " key in resource");
  131.       }
  132.    }
  133.  
  134.    static char getMnemonic(String var0) {
  135.       String var1 = getMsg(var0 + ".mnemonic");
  136.       return var1 != null && var1.length() > 0 ? var1.charAt(0) : '\u0000';
  137.    }
  138.  
  139.    static URL getImageResource(String var0) {
  140.       try {
  141.          return (class$sun$awt$print$PrintDialog == null ? (class$sun$awt$print$PrintDialog = class$("sun.awt.print.PrintDialog")) : class$sun$awt$print$PrintDialog).getResource("resources/" + var0);
  142.       } catch (MissingResourceException var2) {
  143.          throw new Error("Fatal: Resource for PrintDialog is broken, There is no " + var0 + " key in resource");
  144.       }
  145.    }
  146.  
  147.    public PrintDialog(Frame var1, PrintControl var2) {
  148.       super(var1, getMsg("dialog.title"), true);
  149.       this.parent = var1;
  150.       this.printControl = var2;
  151.       ((JDialog)this).setDefaultCloseOperation(1);
  152.       ((JDialog)this).getContentPane().setLayout(new BorderLayout(6, 6));
  153.       this.tabs = new JTabbedPane();
  154.       ((JDialog)this).getContentPane().add("Center", this.tabs);
  155.       this.printPanel = new JPanel(new GridBagLayout());
  156.       this.initPrintPanel();
  157.       this.tabs.add(this.printPanel);
  158.       this.propertiesPanel = new JPanel(new GridBagLayout());
  159.       this.initPropertiesPanel();
  160.       this.tabs.add(this.propertiesPanel);
  161.       this.tabs.setSelectedIndex(0);
  162.       this.tabs.setSelectedComponent(this.printPanel);
  163.       this.tabs.setTitleAt(0, getMsg("tab.print"));
  164.       this.tabs.setTitleAt(1, getMsg("tab.properties"));
  165.       this.buttonPanel = new JPanel(new GridLayout(1, 1, 6, 6));
  166.       ((JDialog)this).getContentPane().add("South", this.buttonPanel);
  167.       this.buttonLeftPanel = new JPanel(new FlowLayout(1, 5, 5));
  168.       this.buttonPanel.add(this.buttonLeftPanel);
  169.       this.buttonRightPanel = new JPanel(new GridLayout(1, 3, 6, 6));
  170.       this.buttonPanel.add(this.buttonRightPanel);
  171.       this.buttonRightPanel.add(new JPanel());
  172.       this.printButton = new JButton(getMsg("button.print"));
  173.       this.printButton.setMnemonic(getMnemonic("button.print"));
  174.       this.printButton.addActionListener(this);
  175.       this.buttonRightPanel.add(this.printButton);
  176.       this.cancelButton = new JButton(getMsg("button.cancel"));
  177.       this.cancelButton.addActionListener(this);
  178.       this.buttonRightPanel.add(this.cancelButton);
  179.       this.helpButton = new JButton(getMsg("button.help"));
  180.       this.helpButton.addActionListener(this);
  181.       this.paperCmB.setPreferredSize(new Dimension(370, 20));
  182.       this.printerCmB.setPreferredSize(new Dimension(100, 20));
  183.       ((Dialog)this).setResizable(false);
  184.       ((JDialog)this).getRootPane().setDefaultButton(this.printButton);
  185.       this.setDefaultPrinter();
  186.       ((Window)this).pack();
  187.       ((JDialog)this).setLocationRelativeTo(var1);
  188.    }
  189.  
  190.    private void addComponent(JComponent var1, Container var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, Insets var11) {
  191.       GridBagConstraints var12 = new GridBagConstraints();
  192.       var12.gridx = var3;
  193.       var12.gridy = var4;
  194.       var12.gridwidth = var5;
  195.       var12.gridheight = var6;
  196.       var12.anchor = var9;
  197.       var12.fill = var10;
  198.       var12.insets = var11;
  199.       var12.weightx = (double)var7;
  200.       var12.weighty = (double)var8;
  201.       var2.add(var1, var12);
  202.    }
  203.  
  204.    private void initPrintPanel() {
  205.       this.pagesLabel = new JLabel(getMsg("label.pages"));
  206.       this.addComponent(this.pagesLabel, this.printPanel, 0, 0, 1, 1, 1, 1, 10, 2, new Insets(3, 6, 0, 0));
  207.       this.selectionGroup = new ButtonGroup();
  208.       this.selectionAllRB = new JRadioButton(getMsg("radiobutton.all"));
  209.       this.selectionAllRB.setMnemonic(getMnemonic("radiobutton.all"));
  210.       this.addComponent(this.selectionAllRB, this.printPanel, 1, 0, 1, 1, 1, 1, 10, 2, new Insets(3, 6, 0, 0));
  211.       this.selectionGroup.add(this.selectionAllRB);
  212.       this.selectionRangeRB = new JRadioButton(getMsg("radiobutton.range"));
  213.       this.selectionRangeRB.setMnemonic(getMnemonic("radiobutton.range"));
  214.       this.selectionRangeRB.addItemListener(this);
  215.       this.addComponent(this.selectionRangeRB, this.printPanel, 1, 1, 1, 1, 1, 1, 10, 2, new Insets(0, 6, 0, 0));
  216.       this.selectionGroup.add(this.selectionRangeRB);
  217.       this.selectionSelectionRB = new JRadioButton(getMsg("radiobutton.selection"));
  218.       this.selectionSelectionRB.setMnemonic(getMnemonic("radiobutton.selection"));
  219.       this.addComponent(this.selectionSelectionRB, this.printPanel, 1, 2, 1, 1, 1, 1, 10, 2, new Insets(0, 6, 5, 0));
  220.       this.selectionGroup.add(this.selectionSelectionRB);
  221.       this.panelSelection = new JPanel(new GridLayout(1, 1, 0, 0));
  222.       this.addComponent(this.panelSelection, this.printPanel, 2, 1, 1, 1, 0, 1, 10, 2, new Insets(0, 0, 0, 0));
  223.       this.selectionFromText = new NumericField();
  224.       this.selectionFromText.setEnabled(false);
  225.       this.panelSelection.add(this.selectionFromText);
  226.       this.selectionToLabel = new JLabel(getMsg("label.selection"), 0);
  227.       this.selectionToLabel.setForeground(this.selectionSelectionRB.getForeground());
  228.       this.panelSelection.add(this.selectionToLabel);
  229.       this.selectionToText = new NumericField();
  230.       this.selectionToText.setEnabled(false);
  231.       this.panelSelection.add(this.selectionToText);
  232.       this.copiesText = new NumericField();
  233.       this.addComponent(this.copiesText, this.printPanel, 1, 3, 1, 1, 1, 1, 10, 2, new Insets(0, 6, 5, 5));
  234.       this.copiesLabel = new JLabel(getMsg("label.copies"));
  235.       this.copiesLabel.setDisplayedMnemonic(getMnemonic("label.copies"));
  236.       this.copiesLabel.setLabelFor(this.copiesText);
  237.       this.addComponent(this.copiesLabel, this.printPanel, 0, 3, 1, 1, 1, 1, 10, 2, new Insets(0, 6, 6, 0));
  238.       this.collateCB = new JCheckBox(getMsg("checkbox.collate"));
  239.       this.collateCB.setMnemonic(getMnemonic("checkbox.collate"));
  240.       this.addComponent(this.collateCB, this.printPanel, 2, 3, 1, 1, 1, 1, 10, 2, new Insets(0, 0, 6, 0));
  241.       this.optionsLabel = new JLabel(getMsg("label.options"));
  242.       this.addComponent(this.optionsLabel, this.printPanel, 0, 4, 1, 1, 1, 1, 10, 2, new Insets(0, 6, 0, 0));
  243.       this.titleSheetCB = new JCheckBox(getMsg("checkbox.titlesheet"));
  244.       this.titleSheetCB.setMnemonic(getMnemonic("checkbox.titlesheet"));
  245.       this.titleSheetCB.addItemListener(this);
  246.       this.addComponent(this.titleSheetCB, this.printPanel, 1, 4, 1, 1, 1, 1, 10, 2, new Insets(0, 6, 0, 0));
  247.       this.titleSheetText = new JTextField();
  248.       this.addComponent(this.titleSheetText, this.printPanel, 2, 4, 3, 1, 3, 1, 10, 2, new Insets(0, 0, 0, 6));
  249.       this.commandsText = new JTextField();
  250.       this.addComponent(this.commandsText, this.printPanel, 2, 5, 3, 1, 3, 1, 10, 2, new Insets(0, 0, 5, 6));
  251.       this.commandsLabel = new JLabel(getMsg("label.commands"));
  252.       this.commandsLabel.setDisplayedMnemonic(getMnemonic("label.commands"));
  253.       this.commandsLabel.setLabelFor(this.commandsText);
  254.       this.addComponent(this.commandsLabel, this.printPanel, 1, 5, 1, 1, 1, 1, 10, 2, new Insets(0, 6, 5, 0));
  255.       this.printToLabel = new JLabel(getMsg("label.printdest"));
  256.       this.addComponent(this.printToLabel, this.printPanel, 0, 6, 1, 1, 1, 1, 10, 2, new Insets(0, 6, 0, 0));
  257.       this.printDestGroup = new ButtonGroup();
  258.       this.printerRB = new JRadioButton(getMsg("radiobutton.printer"));
  259.       this.printerRB.setMnemonic(getMnemonic("radiobutton.printer"));
  260.       this.printerRB.addItemListener(this);
  261.       this.addComponent(this.printerRB, this.printPanel, 1, 6, 1, 1, 1, 1, 10, 2, new Insets(0, 6, 0, 0));
  262.       this.printDestGroup.add(this.printerRB);
  263.       this.printerCmB = new JComboBox();
  264.       this.printerCmB.setEditable(true);
  265.       this.printerCmB.addItemListener(this);
  266.       this.printerCmB.setModel(new LoadingPrintersCBModel(this));
  267.       this.addComponent(this.printerCmB, this.printPanel, 2, 6, 3, 1, 1, 1, 10, 2, new Insets(0, 0, 0, 6));
  268.       this.fileRB = new JRadioButton(getMsg("radiobutton.file"));
  269.       this.fileRB.setMnemonic(getMnemonic("radiobutton.file"));
  270.       this.fileRB.addItemListener(this);
  271.       this.addComponent(this.fileRB, this.printPanel, 1, 7, 1, 1, 1, 1, 10, 2, new Insets(0, 6, 5, 0));
  272.       this.printDestGroup.add(this.fileRB);
  273.       this.spacingPanel1 = new JPanel();
  274.       this.addComponent(this.spacingPanel1, this.printPanel, 3, 1, 0, 1, 50, 1, 10, 0, new Insets(0, 0, 0, 0));
  275.       this.spacingPanel2 = new JPanel();
  276.       this.addComponent(this.spacingPanel2, this.printPanel, 0, 8, 1, 2, 0, 80, 10, 0, new Insets(0, 0, 0, 0));
  277.    }
  278.  
  279.    private void initPropertiesPanel() {
  280.       this.orientationLabel = new JLabel(getMsg("label.orientation"));
  281.       this.addComponent(this.orientationLabel, this.propertiesPanel, 0, 0, 1, 1, 1, 0, 10, 2, new Insets(6, 6, 0, 0));
  282.       this.orientationGroup = new ButtonGroup();
  283.       this.portraitPanel = new JPanel(new FlowLayout(0, 0, 0));
  284.       this.addComponent(this.portraitPanel, this.propertiesPanel, 1, 0, 1, 1, 1, 0, 10, 2, new Insets(6, 1, 0, 0));
  285.       this.portraitRB = new JRadioButton();
  286.       this.portraitRB.setHorizontalAlignment(0);
  287.       this.portraitPanel.add(this.portraitRB);
  288.       this.orientationGroup.add(this.portraitRB);
  289.       this.portraitLabel = new OrientationLabel(this, "label.portrait", this.portraitRB);
  290.       this.portraitLabel.setForeground(this.portraitRB.getForeground());
  291.       this.portraitIcon = new ImageIcon(getImageResource("orientPortrait.gif"));
  292.       this.portraitLabel.setIcon(this.portraitIcon);
  293.       this.portraitPanel.add(this.portraitLabel);
  294.       this.landscapePanel = new JPanel(new FlowLayout(0, 0, 0));
  295.       this.addComponent(this.landscapePanel, this.propertiesPanel, 1, 1, 1, 1, 0, 0, 10, 2, new Insets(0, 1, 0, 0));
  296.       this.landscapeRB = new JRadioButton();
  297.       this.landscapeRB.setHorizontalAlignment(0);
  298.       this.landscapePanel.add(this.landscapeRB);
  299.       this.orientationGroup.add(this.landscapeRB);
  300.       this.landscapeLabel = new OrientationLabel(this, "label.landscape", this.landscapeRB);
  301.       this.landscapeLabel.setForeground(this.landscapeRB.getForeground());
  302.       this.landscapeIcon = new ImageIcon(getImageResource("orientLandscape.gif"));
  303.       this.landscapeLabel.setIcon(this.landscapeIcon);
  304.       this.landscapePanel.add(this.landscapeLabel);
  305.       this.colorLabel = new JLabel(getMsg("label.color"));
  306.       this.addComponent(this.colorLabel, this.propertiesPanel, 0, 2, 1, 1, 1, 0, 10, 2, new Insets(0, 6, 0, 0));
  307.       this.colorGroup = new ButtonGroup();
  308.       this.colorRB = new JRadioButton(getMsg("radiobutton.color"));
  309.       this.colorRB.setMnemonic(getMnemonic("radiobutton.color"));
  310.       this.addComponent(this.colorRB, this.propertiesPanel, 1, 2, 1, 1, 1, 0, 10, 2, new Insets(6, 6, 0, 0));
  311.       this.colorGroup.add(this.colorRB);
  312.       this.monochromeRB = new JRadioButton(getMsg("radiobutton.monochrome"));
  313.       this.monochromeRB.setMnemonic(getMnemonic("radiobutton.monochrome"));
  314.       this.addComponent(this.monochromeRB, this.propertiesPanel, 1, 3, 1, 1, 1, 0, 10, 2, new Insets(0, 6, 5, 0));
  315.       this.colorGroup.add(this.monochromeRB);
  316.       this.paperCmB = new JComboBox();
  317.       this.paperCmB.setModel(ALL_SIZES_MODEL);
  318.       this.addComponent(this.paperCmB, this.propertiesPanel, 1, 4, 2, 1, 60, 0, 10, 2, new Insets(0, 6, 0, 0));
  319.       this.paperLabel = new JLabel(getMsg("label.paper"));
  320.       this.paperLabel.setDisplayedMnemonic(getMnemonic("label.paper"));
  321.       this.paperLabel.setLabelFor(this.paperCmB);
  322.       this.addComponent(this.paperLabel, this.propertiesPanel, 0, 4, 1, 1, 1, 0, 10, 2, new Insets(0, 6, 0, 0));
  323.       this.duplexCB = new JCheckBox(getMsg("checkbox.duplex"));
  324.       this.duplexCB.setMnemonic(getMnemonic("checkbox.duplex"));
  325.       this.duplexCB.addItemListener(this);
  326.       this.addComponent(this.duplexCB, this.propertiesPanel, 1, 5, 1, 1, 0, 0, 10, 2, new Insets(0, 6, 0, 0));
  327.       this.tumbleCB = new JCheckBox(getMsg("checkbox.tumble"));
  328.       this.tumbleCB.setMnemonic(getMnemonic("checkbox.tumble"));
  329.       this.addComponent(this.tumbleCB, this.propertiesPanel, 1, 6, 1, 1, 0, 0, 10, 2, new Insets(0, 22, 5, 0));
  330.       this.qualityLabel = new JLabel(getMsg("label.quality"));
  331.       this.addComponent(this.qualityLabel, this.propertiesPanel, 0, 7, 1, 1, 1, 0, 10, 2, new Insets(0, 6, 0, 0));
  332.       this.qualityGroup = new ButtonGroup();
  333.       this.highQualityRB = new JRadioButton(getMsg("radiobutton.highq"));
  334.       this.highQualityRB.setMnemonic(getMnemonic("radiobutton.highq"));
  335.       this.addComponent(this.highQualityRB, this.propertiesPanel, 1, 7, 1, 1, 1, 0, 10, 2, new Insets(0, 6, 0, 0));
  336.       this.qualityGroup.add(this.highQualityRB);
  337.       this.normalQualityRB = new JRadioButton(getMsg("radiobutton.normalq"));
  338.       this.normalQualityRB.setMnemonic(getMnemonic("radiobutton.normalq"));
  339.       this.addComponent(this.normalQualityRB, this.propertiesPanel, 1, 8, 1, 1, 1, 0, 10, 2, new Insets(0, 6, 0, 0));
  340.       this.qualityGroup.add(this.normalQualityRB);
  341.       this.draftQualityRB = new JRadioButton(getMsg("radiobutton.draftq"));
  342.       this.draftQualityRB.setMnemonic(getMnemonic("radiobutton.draftq"));
  343.       this.addComponent(this.draftQualityRB, this.propertiesPanel, 1, 9, 1, 1, 0, 0, 10, 2, new Insets(0, 6, 0, 0));
  344.       this.qualityGroup.add(this.draftQualityRB);
  345.       this.spacingPanel3 = new JPanel();
  346.       this.addComponent(this.spacingPanel3, this.propertiesPanel, 3, 0, 1, 1, 100, 0, 10, 0, new Insets(0, 0, 0, 0));
  347.    }
  348.  
  349.    private void setDefaultPrinter() {
  350.       String var1 = this.printControl.getDefaultPrinterName();
  351.       if (sortedPrinterList == null) {
  352.          if (var1 != null) {
  353.             this.printerCmB.insertItemAt(var1, 0);
  354.          }
  355.       } else {
  356.          this.printerCmB.setModel(new DefaultComboBoxModel(sortedPrinterList));
  357.          if (var1 != null) {
  358.             this.printerCmB.setSelectedItem(var1);
  359.          }
  360.       }
  361.  
  362.       if (var1 != null) {
  363.          PrinterCapabilities var2 = new PrinterCapabilities(var1);
  364.          this.updatePrinterCaps(this.printControl.getCapabilities(var2) ? var2 : null);
  365.       } else {
  366.          this.updatePrinterCaps((PrinterCapabilities)null);
  367.       }
  368.  
  369.       this.printControl.getPrinterList(this);
  370.    }
  371.  
  372.    public PrintJob getPrintJob() {
  373.       ((Component)this).setVisible(true);
  374.       PrintJob var1 = this.printJob;
  375.       this.printJob = null;
  376.       return var1;
  377.    }
  378.  
  379.    public JobAttributes.SidesType getSides() {
  380.       if (this.duplexCB.isSelected()) {
  381.          return this.tumbleCB.isSelected() ? SidesType.TWO_SIDED_SHORT_EDGE : SidesType.TWO_SIDED_LONG_EDGE;
  382.       } else {
  383.          return SidesType.ONE_SIDED;
  384.       }
  385.    }
  386.  
  387.    public void setSides(JobAttributes.SidesType var1) {
  388.       boolean var2 = var1 != SidesType.ONE_SIDED;
  389.       this.duplexCB.setSelected(var2);
  390.       if (var2) {
  391.          this.tumbleCB.setSelected(var1 == SidesType.TWO_SIDED_SHORT_EDGE);
  392.       }
  393.  
  394.    }
  395.  
  396.    public String getDocumentTitle() {
  397.       return this.titleSheetCB.isSelected() ? this.titleSheetText.getText() : null;
  398.    }
  399.  
  400.    public void setDocumentTitle(String var1) {
  401.       boolean var2 = var1 != null;
  402.       this.titleSheetCB.setSelected(var2);
  403.       if (var2) {
  404.          this.titleSheetText.setText(var1);
  405.       } else {
  406.          this.titleSheetText.setText("");
  407.       }
  408.  
  409.    }
  410.  
  411.    public JobAttributes.DestinationType getDestType() {
  412.       return this.printerRB.isSelected() ? DestinationType.PRINTER : DestinationType.FILE;
  413.    }
  414.  
  415.    public void setDestType(JobAttributes.DestinationType var1) {
  416.       if (var1 == DestinationType.PRINTER) {
  417.          this.printerRB.setSelected(true);
  418.       } else {
  419.          this.fileRB.setSelected(true);
  420.       }
  421.  
  422.    }
  423.  
  424.    public String getDestString(JobAttributes.DestinationType var1) {
  425.       return var1 == DestinationType.PRINTER ? this.printerCmB.getSelectedItem().toString() : this.fileName;
  426.    }
  427.  
  428.    public void setDestString(JobAttributes.DestinationType var1, String var2) {
  429.       if (var1 == DestinationType.PRINTER) {
  430.          this.printerCmB.setSelectedItem(var2);
  431.       } else {
  432.          this.fileName = var2 == null ? "" : var2;
  433.       }
  434.  
  435.    }
  436.  
  437.    public String getOptionsString() {
  438.       return this.commandsText.getText();
  439.    }
  440.  
  441.    public void setOptionsString(String var1) {
  442.       this.commandsText.setText(var1);
  443.    }
  444.  
  445.    public JobAttributes.DefaultSelectionType getPrintRange() {
  446.       if (this.selectionAllRB.isSelected()) {
  447.          return DefaultSelectionType.ALL;
  448.       } else {
  449.          return this.selectionRangeRB.isSelected() ? DefaultSelectionType.RANGE : DefaultSelectionType.SELECTION;
  450.       }
  451.    }
  452.  
  453.    public void setPrintRange(JobAttributes.DefaultSelectionType var1) {
  454.       if (var1 == DefaultSelectionType.ALL) {
  455.          this.selectionAllRB.setSelected(true);
  456.       } else if (var1 == DefaultSelectionType.RANGE) {
  457.          this.selectionRangeRB.setSelected(true);
  458.       } else {
  459.          this.selectionSelectionRB.setSelected(true);
  460.       }
  461.  
  462.    }
  463.  
  464.    public void setMinMaxPage(int var1, int var2) {
  465.       if (this.minPage != var1 || this.maxPage != var2) {
  466.          this.minPage = var1;
  467.          this.maxPage = var2;
  468.          if (this.getFromPage() < var1) {
  469.             this.setFromPage(var1);
  470.          }
  471.  
  472.          if (this.getToPage() > var2) {
  473.             this.setToPage(var2);
  474.          }
  475.  
  476.       }
  477.    }
  478.  
  479.    public int getFromPage() {
  480.       try {
  481.          return this.selectionFromText.getValue();
  482.       } catch (NumberFormatException var2) {
  483.          return 0;
  484.       }
  485.    }
  486.  
  487.    public void setFromPage(int var1) {
  488.       this.selectionFromText.setValue(var1);
  489.    }
  490.  
  491.    public int getToPage() {
  492.       try {
  493.          return this.selectionToText.getValue();
  494.       } catch (NumberFormatException var2) {
  495.          return 0;
  496.       }
  497.    }
  498.  
  499.    public void setToPage(int var1) {
  500.       this.selectionToText.setValue(var1);
  501.    }
  502.  
  503.    public int getCopies() {
  504.       try {
  505.          return this.copiesText.getValue();
  506.       } catch (NumberFormatException var2) {
  507.          return 0;
  508.       }
  509.    }
  510.  
  511.    public void setCopies(int var1) {
  512.       this.copiesText.setValue(var1);
  513.    }
  514.  
  515.    public boolean getCollate() {
  516.       return this.collateCB.isSelected();
  517.    }
  518.  
  519.    public void setCollate(boolean var1) {
  520.       this.collateCB.setSelected(var1);
  521.    }
  522.  
  523.    public PageAttributes.MediaType getMedia() {
  524.       return ((MediaString)this.paperCmB.getSelectedItem()).media;
  525.    }
  526.  
  527.    public void setMedia(PageAttributes.MediaType var1) {
  528.       this.paperCmB.setSelectedItem(new MediaString(var1));
  529.    }
  530.  
  531.    public PageAttributes.OrientationRequestedType getOrientation() {
  532.       return this.portraitRB.isSelected() ? OrientationRequestedType.PORTRAIT : OrientationRequestedType.LANDSCAPE;
  533.    }
  534.  
  535.    public void setOrientation(PageAttributes.OrientationRequestedType var1) {
  536.       if (var1 == OrientationRequestedType.PORTRAIT) {
  537.          this.portraitRB.setSelected(true);
  538.       } else {
  539.          this.landscapeRB.setSelected(true);
  540.       }
  541.  
  542.    }
  543.  
  544.    public PageAttributes.ColorType getColor() {
  545.       return this.colorRB.isSelected() ? ColorType.COLOR : ColorType.MONOCHROME;
  546.    }
  547.  
  548.    public void setColor(PageAttributes.ColorType var1) {
  549.       if (var1 == ColorType.COLOR) {
  550.          this.colorRB.setSelected(true);
  551.       } else {
  552.          this.monochromeRB.setSelected(true);
  553.       }
  554.  
  555.    }
  556.  
  557.    public PageAttributes.PrintQualityType getQuality() {
  558.       if (this.highQualityRB.isSelected()) {
  559.          return PrintQualityType.HIGH;
  560.       } else {
  561.          return this.normalQualityRB.isSelected() ? PrintQualityType.NORMAL : PrintQualityType.DRAFT;
  562.       }
  563.    }
  564.  
  565.    public void setQuality(PageAttributes.PrintQualityType var1) {
  566.       if (var1 == PrintQualityType.HIGH) {
  567.          this.highQualityRB.setSelected(true);
  568.       } else if (var1 == PrintQualityType.NORMAL) {
  569.          this.normalQualityRB.setSelected(true);
  570.       } else {
  571.          this.draftQualityRB.setSelected(true);
  572.       }
  573.  
  574.    }
  575.  
  576.    private void updatePrinterCaps(PrinterCapabilities var1) {
  577.       if (var1 != null) {
  578.          long var2 = var1.getCapabilities();
  579.          if ((var2 & 1L) != 0L) {
  580.             this.colorRB.setEnabled(true);
  581.             this.monochromeRB.setEnabled(true);
  582.          } else {
  583.             this.monochromeRB.setSelected(true);
  584.             this.colorRB.setEnabled(false);
  585.             this.monochromeRB.setEnabled(false);
  586.          }
  587.  
  588.          if ((var2 & 2L) != 0L) {
  589.             this.duplexCB.setEnabled(true);
  590.             this.tumbleCB.setEnabled(this.duplexCB.isSelected());
  591.          } else {
  592.             this.tumbleCB.setSelected(false);
  593.             this.duplexCB.setSelected(false);
  594.             this.tumbleCB.setEnabled(false);
  595.             this.duplexCB.setEnabled(false);
  596.          }
  597.  
  598.          if ((var2 & 4L) == 0L) {
  599.             this.paperCmB.setModel(ALL_SIZES_MODEL);
  600.          } else {
  601.             DefaultComboBoxModel var4 = (DefaultComboBoxModel)var1.getUserData();
  602.             if (var4 == null) {
  603.                int[] var5 = var1.getSizes();
  604.                MediaString[] var6 = new MediaString[var5.length];
  605.  
  606.                for(int var7 = 0; var7 < var5.length; ++var7) {
  607.                   var6[var7] = new MediaString(PrintControl.SIZES[var5[var7]]);
  608.                }
  609.  
  610.                var4 = new DefaultComboBoxModel(var6);
  611.                var1.setUserData(var4);
  612.             }
  613.  
  614.             this.paperCmB.setModel(var4);
  615.          }
  616.  
  617.          this.setMedia(PrintControl.SIZES[this.printControl.getMediaAttrib()]);
  618.       } else {
  619.          this.colorRB.setEnabled(true);
  620.          this.monochromeRB.setEnabled(true);
  621.          this.paperCmB.setModel(ALL_SIZES_MODEL);
  622.          this.duplexCB.setEnabled(true);
  623.          this.tumbleCB.setEnabled(this.duplexCB.isSelected());
  624.       }
  625.  
  626.       this.duplexCB.repaint();
  627.       this.tumbleCB.repaint();
  628.       this.colorRB.repaint();
  629.       this.monochromeRB.repaint();
  630.       this.paperCmB.repaint();
  631.    }
  632.  
  633.    public void updatePrinterList(String[] var1) {
  634.       if (var1 == null || var1 != sortedPrinterList) {
  635.          sortedPrinterList = var1;
  636.          EventQueue.invokeLater(new 2(this));
  637.       }
  638.    }
  639.  
  640.    public void itemStateChanged(ItemEvent var1) {
  641.       Object var2 = ((EventObject)var1).getSource();
  642.       if (var2 == this.selectionRangeRB) {
  643.          boolean var3 = this.selectionRangeRB.isSelected();
  644.          this.selectionFromText.setEnabled(var3);
  645.          this.selectionToText.setEnabled(var3);
  646.       } else if (var2 == this.titleSheetCB) {
  647.          this.titleSheetText.setEnabled(this.titleSheetCB.isSelected());
  648.       } else if (var2 != this.printerRB && var2 != this.fileRB) {
  649.          if (var2 == this.duplexCB) {
  650.             this.tumbleCB.setEnabled(this.duplexCB.isSelected());
  651.          } else {
  652.             String var6 = (String)this.printerCmB.getEditor().getItem();
  653.             if (var6 != null) {
  654.                PrinterCapabilities var7 = new PrinterCapabilities(var6);
  655.                this.updatePrinterCaps(this.printControl.getCapabilities(var7) ? var7 : null);
  656.             } else {
  657.                this.updatePrinterCaps((PrinterCapabilities)null);
  658.             }
  659.          }
  660.       } else {
  661.          boolean var5 = this.printerRB.isSelected();
  662.          this.printerCmB.setEnabled(var5);
  663.          String var4 = var5 ? "button.print" : "button.save";
  664.          this.printButton.setText(getMsg(var4));
  665.          this.printButton.setMnemonic(getMnemonic(var4));
  666.       }
  667.  
  668.    }
  669.  
  670.    public void actionPerformed(ActionEvent var1) {
  671.       Object var2 = ((EventObject)var1).getSource();
  672.       if (var2 == this.printButton) {
  673.          if (this.printerRB.isSelected()) {
  674.             this.actionPrint();
  675.          } else {
  676.             this.actionSave();
  677.          }
  678.       } else if (var2 == this.cancelButton) {
  679.          ((Component)this).setVisible(false);
  680.       }
  681.  
  682.    }
  683.  
  684.    private void actionPrint() {
  685.       if (this.getPrintRange() == DefaultSelectionType.RANGE) {
  686.          int var1 = this.getFromPage();
  687.          if (var1 < this.minPage || var1 > this.maxPage) {
  688.             this.selectionFromText.selectAll();
  689.             this.selectionFromText.requestFocus();
  690.             Toolkit.getDefaultToolkit().beep();
  691.             return;
  692.          }
  693.  
  694.          int var2 = this.getToPage();
  695.          if (var2 < this.minPage || var2 > this.maxPage || var2 < var1) {
  696.             this.selectionToText.selectAll();
  697.             this.selectionToText.requestFocus();
  698.             Toolkit.getDefaultToolkit().beep();
  699.             return;
  700.          }
  701.       }
  702.  
  703.       if (this.getCopies() < 1) {
  704.          this.copiesText.selectAll();
  705.          this.copiesText.requestFocus();
  706.          Toolkit.getDefaultToolkit().beep();
  707.       } else {
  708.          try {
  709.             this.printJob = this.printControl.createPrintJob(this);
  710.          } catch (IllegalArgumentException var4) {
  711.             PrintStatusDialog var6 = new PrintStatusDialog(this, getMsg("printstatus.error"), getMsg("printstatus.notfound"), getMsg("button.ok"));
  712.             ((JDialog)var6).setLocationRelativeTo(this);
  713.             ((Component)var6).setVisible(true);
  714.             this.printJob = null;
  715.          } catch (InternalError var5) {
  716.             if (!((Throwable)var5).getMessage().equals("No default printer installed")) {
  717.                throw var5;
  718.             }
  719.  
  720.             PrintStatusDialog var3 = new PrintStatusDialog(this, getMsg("printstatus.error"), getMsg("printstatus.noprinters"), getMsg("button.ok"));
  721.             ((JDialog)var3).setLocationRelativeTo(this);
  722.             ((Component)var3).setVisible(true);
  723.             this.printJob = null;
  724.          }
  725.  
  726.          if (this.printJob != null) {
  727.             ((Component)this).setVisible(false);
  728.          }
  729.  
  730.       }
  731.    }
  732.  
  733.    public void setPrintToFileEnabled(boolean var1) {
  734.       this.fileRB.setEnabled(var1);
  735.    }
  736.  
  737.    private void actionSave() {
  738.       SaveFileChooser var1 = (SaveFileChooser)AccessController.doPrivileged(new 3(this));
  739.       if (((JFileChooser)var1).showSaveDialog(this.parent) == 0) {
  740.          this.fileName = var1.getFileName();
  741.          this.actionPrint();
  742.       }
  743.  
  744.    }
  745.  
  746.    public static void main(String[] var0) {
  747.       JFrame var1 = new JFrame();
  748.       PrintDialog var2 = new PrintDialog(var1, (PrintControl)null);
  749.       ((Window)var2).addWindowListener(new 4());
  750.       ((Component)var2).setVisible(true);
  751.    }
  752.  
  753.    // $FF: synthetic method
  754.    static ResourceBundle access$002(ResourceBundle var0) {
  755.       messageRB = var0;
  756.       return var0;
  757.    }
  758.  
  759.    // $FF: synthetic method
  760.    static Class class$(String var0) {
  761.       try {
  762.          return Class.forName(var0);
  763.       } catch (ClassNotFoundException var2) {
  764.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  765.       }
  766.    }
  767.  
  768.    // $FF: synthetic method
  769.    static JComboBox access$100(PrintDialog var0) {
  770.       return var0.printerCmB;
  771.    }
  772.  
  773.    // $FF: synthetic method
  774.    static String[] access$200() {
  775.       return sortedPrinterList;
  776.    }
  777.  
  778.    // $FF: synthetic method
  779.    static String access$300(PrintDialog var0) {
  780.       return var0.fileName;
  781.    }
  782.  
  783.    static {
  784.       ALL_SIZES = new MediaString[PrintControl.SIZES.length];
  785.       initResource();
  786.  
  787.       for(int var0 = 0; var0 < ALL_SIZES.length; ++var0) {
  788.          ALL_SIZES[var0] = new MediaString(PrintControl.SIZES[var0]);
  789.       }
  790.  
  791.       ALL_SIZES_MODEL = new DefaultComboBoxModel(ALL_SIZES);
  792.    }
  793. }
  794.