home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 May / PCO_5_97.ISO / FilesBBS / OS2 / CSIME.ARJ / CSIME.ZIP / csime / mug / ui / MultipleChoiceDialog.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-02-09  |  3.0 KB  |  105 lines

  1. package mug.ui;
  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.Frame;
  12. import java.awt.GridBagConstraints;
  13. import java.awt.GridBagLayout;
  14. import java.awt.GridLayout;
  15. import java.awt.Insets;
  16. import java.awt.Panel;
  17. import java.awt.Window;
  18.  
  19. public class MultipleChoiceDialog extends Dialog {
  20.    private CheckboxGroup _cbg;
  21.    private Callback _callback;
  22.  
  23.    public MultipleChoiceDialog(Frame var1, boolean var2, String var3, String[] var4, Callback var5) {
  24.       super(var1, var2);
  25.       this._callback = var5;
  26.       this.init(var3, var4);
  27.    }
  28.  
  29.    public MultipleChoiceDialog(Frame var1, String var2, boolean var3, String var4, String[] var5, Callback var6) {
  30.       super(var1, var2, var3);
  31.       this._callback = var6;
  32.       this.init(var4, var5);
  33.    }
  34.  
  35.    public Insets insets() {
  36.       Insets var1 = super.insets();
  37.       return new Insets(var1.top + 15, var1.left + 15, var1.bottom + 15, var1.right + 15);
  38.    }
  39.  
  40.    private void init(String var1, String[] var2) {
  41.       ((Container)this).setLayout(new GridBagLayout());
  42.       GridBagConstraints var3 = new GridBagConstraints();
  43.       var3.gridwidth = 0;
  44.       this.constrain(new MultiLineLabel(var1, 1), var3);
  45.       GridBagPanel var4 = new GridBagPanel();
  46.       var3.anchor = 17;
  47.       this._cbg = new CheckboxGroup();
  48.  
  49.       for(int var5 = 0; var5 < var2.length; ++var5) {
  50.          Checkbox var6 = new Checkbox(var2[var5], this._cbg, var5 == 0);
  51.          var4.constrain(var6, var3);
  52.       }
  53.  
  54.       var3.anchor = 10;
  55.       this.constrain(var4, var3);
  56.       Panel var7 = new Panel();
  57.       ((Container)var7).setLayout(new FlowLayout(1, 10, 5));
  58.       ((Container)var7).add(new Button("Ok"));
  59.       ((Container)var7).add(new Button("Cancel"));
  60.       this.constrain(var7, var3);
  61.       ((Window)this).pack();
  62.    }
  63.  
  64.    private void constrain(Component var1, GridBagConstraints var2) {
  65.       GridBagLayout var3 = (GridBagLayout)((Container)this).getLayout();
  66.       var3.setConstraints(var1, var2);
  67.       ((Container)this).add(var1);
  68.    }
  69.  
  70.    private Panel createChoices(String[] var1) {
  71.       Panel var2 = new Panel();
  72.       ((Container)var2).setLayout(new GridLayout(var1.length, 1));
  73.       this._cbg = new CheckboxGroup();
  74.  
  75.       for(int var3 = 0; var3 < var1.length; ++var3) {
  76.          ((Container)var2).add(new Checkbox(var1[var3], this._cbg, var3 == 0));
  77.       }
  78.  
  79.       return var2;
  80.    }
  81.  
  82.    public boolean handleEvent(Event var1) {
  83.       if (var1.id == 201) {
  84.          ((Window)this).dispose();
  85.          return true;
  86.       } else {
  87.          return super.handleEvent(var1);
  88.       }
  89.    }
  90.  
  91.    public boolean action(Event var1, Object var2) {
  92.       if (var1.target instanceof Button) {
  93.          String var3 = this._cbg.getCurrent().getLabel();
  94.          ((Window)this).dispose();
  95.          if (((String)var2).equals("Ok") && this._callback != null) {
  96.             this._callback.execute(this, var3);
  97.          }
  98.  
  99.          return true;
  100.       } else {
  101.          return false;
  102.       }
  103.    }
  104. }
  105.