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