home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 August / PCO0897.ISO / filesbbs / os2 / fp1os2.arj / OS2 / DATA / 49 / C / 0 / F_26836 / SJModalMessageBox.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-05-15  |  2.0 KB  |  77 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.Dialog;
  6. import java.awt.Event;
  7. import java.awt.FlowLayout;
  8. import java.awt.Frame;
  9. import java.awt.Label;
  10. import java.awt.Panel;
  11. import java.awt.Window;
  12.  
  13. class SJModalMessageBox extends Dialog {
  14.    private Button aOkBut;
  15.    private Button aCancelBut;
  16.    private boolean bBlock;
  17.    private boolean bResult;
  18.  
  19.    public SJModalMessageBox(Frame var1, String var2, String var3) {
  20.       this(var1, var2, var3, false);
  21.    }
  22.  
  23.    public SJModalMessageBox(Frame var1, String var2, String var3, boolean var4) {
  24.       super(var1, var2, true);
  25.       this.bResult = false;
  26.       ((Container)this).setLayout(new BorderLayout());
  27.       ((Container)this).add("Center", new Label(var3));
  28.       Panel var5 = new Panel();
  29.       ((Container)var5).setLayout(new FlowLayout(1));
  30.       ((Container)var5).add(this.aOkBut = new Button("OK"));
  31.       if (var4) {
  32.          ((Container)var5).add(this.aCancelBut = new Button("CANCEL"));
  33.       }
  34.  
  35.       ((Container)this).add("South", var5);
  36.       ((Window)this).pack();
  37.    }
  38.  
  39.    public boolean action(Event var1, Object var2) {
  40.       if (var1.target == this.aOkBut) {
  41.          this.bResult = true;
  42.          this.UnBlock();
  43.          ((Component)this).hide();
  44.          ((Window)this).dispose();
  45.          return true;
  46.       } else if (var1.target == this.aCancelBut) {
  47.          this.bResult = false;
  48.          this.UnBlock();
  49.          ((Component)this).hide();
  50.          ((Window)this).dispose();
  51.          return true;
  52.       } else {
  53.          return false;
  54.       }
  55.    }
  56.  
  57.    private synchronized void UnBlock() {
  58.       this.bBlock = false;
  59.       this.notifyAll();
  60.    }
  61.  
  62.    public synchronized boolean ShowIt() {
  63.       ((Component)this).resize(400, 150);
  64.       ((Window)this).show();
  65.       this.bBlock = true;
  66.  
  67.       try {
  68.          while(this.bBlock) {
  69.             this.wait();
  70.          }
  71.       } catch (InterruptedException var1) {
  72.       }
  73.  
  74.       return this.bResult;
  75.    }
  76. }
  77.