home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / sun / awt / motif / UPrintDialog.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  8.7 KB  |  340 lines

  1. package sun.awt.motif;
  2.  
  3. import java.awt.Button;
  4. import java.awt.Checkbox;
  5. import java.awt.CheckboxGroup;
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.Dialog;
  9. import java.awt.Event;
  10. import java.awt.FlowLayout;
  11. import java.awt.Font;
  12. import java.awt.Frame;
  13. import java.awt.GridBagConstraints;
  14. import java.awt.GridBagLayout;
  15. import java.awt.GridLayout;
  16. import java.awt.Insets;
  17. import java.awt.Label;
  18. import java.awt.Panel;
  19. import java.awt.PrintJob;
  20. import java.awt.TextField;
  21. import java.awt.Window;
  22. import java.util.MissingResourceException;
  23. import java.util.ResourceBundle;
  24.  
  25. class UPrintDialog extends Dialog {
  26.    public static final int WAITING = 0;
  27.    public static final int PRINT = 1;
  28.    public static final int CANCELLED = 2;
  29.    public int printStatus = 0;
  30.    private PrintControl printControl;
  31.    private PrintJob printJob;
  32.    private int destType;
  33.    private int orientation;
  34.    private int paperSize;
  35.    private Label docTitle;
  36.    private NumericField copiesField;
  37.    private CheckboxGroup destCBG;
  38.    private Checkbox[] destCB = new Checkbox[2];
  39.    private TextField[] destField = new TextField[2];
  40.    private static int FIELD_LEN = 28;
  41.    private Label bannerLbl;
  42.    private TextField bannerField;
  43.    private Label optionsLbl;
  44.    private TextField optionsField;
  45.    private CheckboxGroup orientCBG;
  46.    private Checkbox[] orientCB = new Checkbox[2];
  47.    private CheckboxGroup paperCBG;
  48.    private Checkbox[] paperCB = new Checkbox[4];
  49.    private Button printButton;
  50.    private Button cancelButton;
  51.    private static final String PRINT_LABEL = new String(getMsg("button.print"));
  52.    private static final String CANCEL_LABEL = new String(getMsg("button.cancel"));
  53.    private static ResourceBundle messageRB;
  54.  
  55.    static void initResource() {
  56.       try {
  57.          messageRB = ResourceBundle.getBundle("sun.awt.motif.resources.updialog");
  58.       } catch (MissingResourceException var0) {
  59.          throw new Error("Fatal: Resource for PrintDialog is missing.");
  60.       }
  61.    }
  62.  
  63.    static String getMsg(String var0) {
  64.       if (messageRB == null) {
  65.          initResource();
  66.       }
  67.  
  68.       try {
  69.          return messageRB.getString(var0);
  70.       } catch (MissingResourceException var1) {
  71.          throw new Error("Fatal: Resource for PrintDialog is broken, There is no " + var0 + " key in resource");
  72.       }
  73.    }
  74.  
  75.    private void addComponent(Component var1, Container var2, GridBagLayout var3, GridBagConstraints var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, Insets var12) {
  76.       var4.gridx = var5;
  77.       var4.gridy = var6;
  78.       var4.gridwidth = var7;
  79.       var4.anchor = var10;
  80.       var4.fill = var11;
  81.       var4.insets = var12;
  82.       var4.weightx = (double)var8;
  83.       var4.weighty = (double)var9;
  84.       var3.setConstraints(var1, var4);
  85.       var2.add(var1);
  86.    }
  87.  
  88.    public UPrintDialog(Frame var1, String var2) {
  89.       super(var1, var2, true);
  90.       Insets var5 = new Insets(0, 0, 0, 0);
  91.       Insets var6 = new Insets(10, 0, 0, 0);
  92.       Insets var7 = new Insets(8, 6, 0, 10);
  93.       Insets var8 = new Insets(0, 40, 0, 0);
  94.       Insets var9 = new Insets(10, 6, 0, 0);
  95.       Insets var10 = new Insets(0, 6, 10, 10);
  96.       Insets var11 = new Insets(0, 0, 0, 10);
  97.       GridBagLayout var13 = new GridBagLayout();
  98.       GridBagConstraints var14 = new GridBagConstraints();
  99.       ((Container)this).setLayout(var13);
  100.       Font var3 = ((Component)this).getFont();
  101.       Font var4 = new Font("Dialog", 1, var3.getSize());
  102.       ((Component)this).setFont(var4);
  103.       Label var12 = new Label(getMsg("label.print"), 2);
  104.       this.addComponent(var12, this, var13, var14, 0, 0, 1, 0, 1, 13, 0, var6);
  105.       this.docTitle = new Label("");
  106.       this.docTitle.setFont(var3);
  107.       this.addComponent(this.docTitle, this, var13, var14, 1, 0, 3, 1, 1, 17, 1, var9);
  108.       var12 = new Label(getMsg("label.copies"), 2);
  109.       this.addComponent(var12, this, var13, var14, 0, 1, 1, 0, 1, 13, 0, var6);
  110.       this.copiesField = new NumericField(3);
  111.       this.copiesField.setFont(var3);
  112.       this.addComponent(this.copiesField, this, var13, var14, 1, 1, 1, 0, 1, 17, 0, var9);
  113.       this.setNumCopies(1);
  114.       var12 = new Label(getMsg("label.printto"), 2);
  115.       this.addComponent(var12, this, var13, var14, 0, 2, 1, 0, 1, 13, 0, var6);
  116.       this.destCBG = new CheckboxGroup();
  117.       this.destCB[0] = new Checkbox(getMsg("checkbox.printer"), this.destCBG, true);
  118.       this.addComponent(this.destCB[0], this, var13, var14, 0, 3, 2, 0, 1, 17, 0, var8);
  119.       this.destField[0] = new TextField(FIELD_LEN);
  120.       this.destField[0].setFont(var3);
  121.       this.addComponent(this.destField[0], this, var13, var14, 2, 3, 2, 1, 1, 10, 2, var11);
  122.       this.destCB[1] = new Checkbox(getMsg("checkbox.file"), this.destCBG, false);
  123.       this.addComponent(this.destCB[1], this, var13, var14, 0, 4, 2, 0, 1, 17, 0, var8);
  124.       this.destField[1] = new TextField(FIELD_LEN);
  125.       this.destField[1].setFont(var3);
  126.       this.addComponent(this.destField[1], this, var13, var14, 2, 4, 2, 1, 1, 10, 2, var11);
  127.       this.destType = 0;
  128.       this.destField[1].disable();
  129.       this.bannerLbl = new Label(getMsg("label.banner"), 2);
  130.       this.addComponent(this.bannerLbl, this, var13, var14, 0, 5, 3, 0, 1, 13, 0, var6);
  131.       this.bannerField = new TextField(24);
  132.       this.bannerField.setFont(var3);
  133.       this.addComponent(this.bannerField, this, var13, var14, 3, 5, 1, 1, 1, 17, 2, var7);
  134.       this.optionsLbl = new Label(getMsg("label.commandoption"), 2);
  135.       this.addComponent(this.optionsLbl, this, var13, var14, 0, 6, 3, 0, 1, 13, 3, var5);
  136.       this.optionsField = new TextField(24);
  137.       this.optionsField.setFont(var3);
  138.       this.addComponent(this.optionsField, this, var13, var14, 3, 6, 1, 1, 1, 17, 2, var10);
  139.       Separator var15 = new Separator(100, 4, 0);
  140.       this.addComponent(var15, this, var13, var14, 0, 7, 4, 1, 1, 10, 2, var5);
  141.       Panel var16 = new Panel();
  142.       GridBagLayout var17 = new GridBagLayout();
  143.       ((Container)var16).setLayout(var17);
  144.       this.addComponent(var16, this, var13, var14, 0, 8, 4, 1, 1, 17, 2, var5);
  145.       var12 = new Label(getMsg("label.papersize"), 2);
  146.       this.addComponent(var12, var16, var17, var14, 0, 0, 1, 1, 1, 17, 0, var6);
  147.       Panel var18 = new Panel();
  148.       ((Container)var18).setLayout(new GridLayout(2, 2));
  149.       this.addComponent(var18, var16, var17, var14, 0, 1, 1, 1, 1, 10, 0, var10);
  150.       this.paperCBG = new CheckboxGroup();
  151.       this.paperCB[0] = new Checkbox(getMsg("checkbox.letter"), this.paperCBG, true);
  152.       ((Container)var18).add(this.paperCB[0]);
  153.       this.paperCB[2] = new Checkbox(getMsg("checkbox.executive"), this.paperCBG, false);
  154.       ((Container)var18).add(this.paperCB[2]);
  155.       this.paperCB[1] = new Checkbox(getMsg("checkbox.legal"), this.paperCBG, false);
  156.       ((Container)var18).add(this.paperCB[1]);
  157.       this.paperCB[3] = new Checkbox(getMsg("checkbox.a4"), this.paperCBG, false);
  158.       ((Container)var18).add(this.paperCB[3]);
  159.       this.paperSize = 0;
  160.       var12 = new Label(getMsg("label.orientation"), 2);
  161.       this.addComponent(var12, var16, var17, var14, 1, 0, 1, 1, 1, 17, 0, var6);
  162.       var18 = new Panel();
  163.       ((Container)var18).setLayout(new GridLayout(2, 1));
  164.       this.addComponent(var18, var16, var17, var14, 1, 1, 1, 1, 1, 10, 0, var10);
  165.       this.orientCBG = new CheckboxGroup();
  166.       this.orientCB[1] = new Checkbox(getMsg("checkbox.portrait"), this.orientCBG, true);
  167.       ((Container)var18).add(this.orientCB[1]);
  168.       this.orientCB[0] = new Checkbox(getMsg("checkbox.landscape"), this.orientCBG, false);
  169.       ((Container)var18).add(this.orientCB[0]);
  170.       this.orientation = 1;
  171.       var15 = new Separator(100, 4, 0);
  172.       this.addComponent(var15, this, var13, var14, 0, 9, 4, 1, 0, 17, 2, var5);
  173.       var18 = new Panel();
  174.       ((Container)var18).setLayout(new FlowLayout(1, 28, 10));
  175.       this.addComponent(var18, this, var13, var14, 0, 10, 4, 1, 0, 10, 0, var5);
  176.       ((Container)var18).add(this.printButton = new Button(PRINT_LABEL));
  177.       ((Container)var18).add(this.cancelButton = new Button(CANCEL_LABEL));
  178.       ((Window)this).pack();
  179.    }
  180.  
  181.    private void setupDestType(int var1) {
  182.       this.destField[this.destType].disable();
  183.       this.destField[var1].enable();
  184.       if (var1 == 0) {
  185.          this.bannerLbl.enable();
  186.          this.bannerField.enable();
  187.          this.optionsLbl.enable();
  188.          this.optionsField.enable();
  189.       } else {
  190.          this.bannerLbl.disable();
  191.          this.bannerField.disable();
  192.          this.optionsLbl.disable();
  193.          this.optionsField.disable();
  194.       }
  195.  
  196.       this.destType = var1;
  197.    }
  198.  
  199.    public PrintJob getPrintJob(PrintControl var1) {
  200.       this.printControl = var1;
  201.       this.printJob = null;
  202.       ((Dialog)this).show();
  203.       return this.printJob;
  204.    }
  205.  
  206.    public boolean action(Event var1, Object var2) {
  207.       if (var1.target instanceof Checkbox) {
  208.          for(int var3 = 0; var3 < 2; ++var3) {
  209.             if (var1.target == this.destCB[var3]) {
  210.                if (var3 != this.destType) {
  211.                   this.setupDestType(var3);
  212.                   this.destField[var3].requestFocus();
  213.                }
  214.  
  215.                return true;
  216.             }
  217.          }
  218.  
  219.          for(int var4 = 0; var4 < 2; ++var4) {
  220.             if (var1.target == this.orientCB[var4]) {
  221.                this.orientation = var4;
  222.                return true;
  223.             }
  224.          }
  225.  
  226.          for(int var5 = 0; var5 < 4; ++var5) {
  227.             if (var1.target == this.paperCB[var5]) {
  228.                this.paperSize = var5;
  229.                return true;
  230.             }
  231.          }
  232.       }
  233.  
  234.       if (PRINT_LABEL.equals(var2)) {
  235.          this.printStatus = 1;
  236.          this.printJob = this.printControl.createPrintJob(this.destType, this.getDestString(this.destType), this.getOptionsString(), this.getBannerString(), this.getPaperSize(), this.getOrientation(), this.getNumCopies());
  237.          if (this.printJob != null) {
  238.             ((Component)this).hide();
  239.          }
  240.  
  241.          return true;
  242.       } else if (CANCEL_LABEL.equals(var2)) {
  243.          this.printStatus = 2;
  244.          ((Component)this).hide();
  245.          return true;
  246.       } else {
  247.          return super.action(var1, var2);
  248.       }
  249.    }
  250.  
  251.    public boolean handleEvent(Event var1) {
  252.       if (var1.id == 201) {
  253.          this.printStatus = 2;
  254.          ((Component)this).hide();
  255.          return true;
  256.       } else {
  257.          return super.handleEvent(var1);
  258.       }
  259.    }
  260.  
  261.    public int getNumCopies() {
  262.       int var1 = 0;
  263.  
  264.       try {
  265.          var1 = this.copiesField.getValue();
  266.       } catch (NumberFormatException var2) {
  267.       }
  268.  
  269.       return var1;
  270.    }
  271.  
  272.    public int getDestType() {
  273.       return this.destType;
  274.    }
  275.  
  276.    public String getDestString(int var1) {
  277.       return this.destField[var1].getText();
  278.    }
  279.  
  280.    public String getBannerString() {
  281.       return this.bannerField.getText();
  282.    }
  283.  
  284.    public String getOptionsString() {
  285.       return this.optionsField.getText();
  286.    }
  287.  
  288.    public int getOrientation() {
  289.       return this.orientation;
  290.    }
  291.  
  292.    public int getPaperSize() {
  293.       return this.paperSize;
  294.    }
  295.  
  296.    public void setDocumentTitle(String var1) {
  297.       this.docTitle.setText(var1);
  298.    }
  299.  
  300.    public void setNumCopies(int var1) {
  301.       this.copiesField.setValue(var1);
  302.    }
  303.  
  304.    public void setDestType(int var1) {
  305.       if (var1 != this.destType) {
  306.          this.destCB[var1].setState(true);
  307.          this.setupDestType(var1);
  308.       }
  309.  
  310.    }
  311.  
  312.    public void setDestString(int var1, String var2) {
  313.       this.destField[var1].setText(var2);
  314.    }
  315.  
  316.    public void setBannerString(String var1) {
  317.       this.bannerField.setText(var1);
  318.    }
  319.  
  320.    public void setOptionsString(String var1) {
  321.       this.optionsField.setText(var1);
  322.    }
  323.  
  324.    public void setOrientation(int var1) {
  325.       if (var1 != this.orientation) {
  326.          this.orientation = var1;
  327.          this.orientCB[var1].setState(true);
  328.       }
  329.  
  330.    }
  331.  
  332.    public void setPaperSize(int var1) {
  333.       if (var1 != this.paperSize) {
  334.          this.paperSize = var1;
  335.          this.paperCB[var1].setState(true);
  336.       }
  337.  
  338.    }
  339. }
  340.