home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 August / PCO0897.ISO / filesbbs / os2 / fp1os2.arj / OS2 / DATA / 49 / C / 0 / F_26836 / SJModalQuestionBox.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-05-15  |  1.9 KB  |  72 lines

  1. import java.awt.BorderLayout;
  2. import java.awt.Button;
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Event;
  6. import java.awt.FlowLayout;
  7. import java.awt.Frame;
  8. import java.awt.Label;
  9. import java.awt.Panel;
  10. import java.awt.Window;
  11.  
  12. class SJModalQuestionBox extends Frame {
  13.    private boolean bBlock;
  14.    private boolean bReturn = false;
  15.    private Button aYesButton;
  16.    private Button aNoButton;
  17.  
  18.    public SJModalQuestionBox(String var1, String var2) {
  19.       super(var1);
  20.       this.CreateControls(var2);
  21.    }
  22.  
  23.    private final void CreateControls(String var1) {
  24.       ((Container)this).setLayout(new BorderLayout());
  25.       ((Container)this).add("Center", new Label(var1));
  26.       Panel var2 = new Panel();
  27.       ((Container)var2).setLayout(new FlowLayout(1));
  28.       ((Container)var2).add(this.aYesButton = new Button("Yes"));
  29.       ((Container)var2).add(this.aNoButton = new Button("No"));
  30.       ((Container)this).add("South", var2);
  31.       ((Window)this).pack();
  32.    }
  33.  
  34.    private synchronized void UnBlock() {
  35.       this.bBlock = false;
  36.       this.notifyAll();
  37.    }
  38.  
  39.    public synchronized boolean ShowIt() {
  40.       ((Component)this).resize(400, 200);
  41.       ((Window)this).show();
  42.       this.bBlock = true;
  43.  
  44.       try {
  45.          while(this.bBlock) {
  46.             this.wait();
  47.          }
  48.       } catch (InterruptedException var1) {
  49.       }
  50.  
  51.       return this.bReturn;
  52.    }
  53.  
  54.    public boolean action(Event var1, Object var2) {
  55.       if (var1.target == this.aYesButton) {
  56.          ((Component)this).hide();
  57.          ((Frame)this).dispose();
  58.          this.bReturn = true;
  59.          this.UnBlock();
  60.          return true;
  61.       } else if (var1.target == this.aNoButton) {
  62.          ((Component)this).hide();
  63.          ((Frame)this).dispose();
  64.          this.bReturn = false;
  65.          this.UnBlock();
  66.          return true;
  67.       } else {
  68.          return false;
  69.       }
  70.    }
  71. }
  72.