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

  1. package java.awt;
  2.  
  3. import java.awt.peer.DialogPeer;
  4. import java.util.Enumeration;
  5. import java.util.Vector;
  6. import sun.awt.SunToolkit;
  7.  
  8. public class Dialog extends Window {
  9.    boolean resizable;
  10.    boolean modal;
  11.    String title;
  12.    private static final String base = "dialog";
  13.    private static int nameCounter;
  14.    private static final long serialVersionUID = 5920926903803293709L;
  15.    private Vector m_disabledWindows;
  16.    private Dialog m_previousModalDialog;
  17.  
  18.    public Dialog(Frame var1) {
  19.       this(var1, "", false);
  20.    }
  21.  
  22.    public Dialog(Frame var1, boolean var2) {
  23.       this(var1, "", var2);
  24.    }
  25.  
  26.    public Dialog(Frame var1, String var2) {
  27.       this(var1, var2, false);
  28.    }
  29.  
  30.    public Dialog(Frame var1, String var2, boolean var3) {
  31.       super(var1);
  32.       this.resizable = true;
  33.       if (var1 == null) {
  34.          throw new IllegalArgumentException("null parent frame");
  35.       } else {
  36.          super.name = "dialog" + nameCounter++;
  37.          this.title = var2;
  38.          this.modal = var3;
  39.       }
  40.    }
  41.  
  42.    public void addNotify() {
  43.       if (super.peer == null) {
  44.          super.peer = ((Window)this).getToolkit().createDialog(this);
  45.       }
  46.  
  47.       super.addNotify();
  48.    }
  49.  
  50.    public boolean isModal() {
  51.       return this.modal;
  52.    }
  53.  
  54.    public void setModal(boolean var1) {
  55.       this.modal = var1;
  56.    }
  57.  
  58.    public String getTitle() {
  59.       return this.title;
  60.    }
  61.  
  62.    public synchronized void setTitle(String var1) {
  63.       this.title = var1;
  64.       DialogPeer var2 = (DialogPeer)super.peer;
  65.       if (var2 != null) {
  66.          var2.setTitle(var1);
  67.       }
  68.  
  69.    }
  70.  
  71.    public void show() {
  72.       super.show();
  73.    }
  74.  
  75.    protected void __showDialog() {
  76.       Object var1 = Component.LOCK;
  77.       synchronized(var1){}
  78.  
  79.       try {
  80.          if (super.parent != null && super.parent.getPeer() == null) {
  81.             super.parent.addNotify();
  82.          }
  83.  
  84.          if (super.peer == null) {
  85.             this.addNotify();
  86.             Dimension var3 = ((Container)this).getMinimumSize();
  87.             if (var3.width > super.width || var3.height > super.height) {
  88.                ((Component)this).setSize(var3);
  89.             }
  90.          }
  91.  
  92.          ((Container)this).validate();
  93.       } catch (Throwable var5) {
  94.          throw var5;
  95.       }
  96.  
  97.       if (super.visible) {
  98.          ((Window)this).toFront();
  99.       } else {
  100.          super.visible = true;
  101.          if (this.isModal()) {
  102.             Window[] var6 = SunToolkit.getTopLevelWindows();
  103.             if (var6 == null) {
  104.                Frame var2 = (Frame)((Component)this).getParent();
  105.                int var8 = var2.ownedWindows.size() + 1;
  106.                var6 = new Window[var8];
  107.                var2.ownedWindows.copyInto(var6);
  108.                var6[var8 - 1] = var2;
  109.             }
  110.  
  111.             this.m_disabledWindows = new Vector(var6.length);
  112.  
  113.             for(int var7 = 0; var7 < var6.length; ++var7) {
  114.                Window var9 = var6[var7];
  115.                if (var9 != this && ((Component)var9).isVisible() && ((Component)var9).isEnabled()) {
  116.                   this.m_disabledWindows.addElement(var9);
  117.                   var9.enabled = false;
  118.                   ((Component)var9).getPeer().setEnabled(false);
  119.                }
  120.             }
  121.  
  122.             this.m_previousModalDialog = SunToolkit.swapTopModalDialog(this);
  123.          }
  124.  
  125.          super.peer.show();
  126.       }
  127.    }
  128.  
  129.    void __hideDialog() {
  130.       if (super.visible) {
  131.          if (this.isModal()) {
  132.             if (this.m_disabledWindows == null) {
  133.                return;
  134.             }
  135.  
  136.             Dialog var1 = SunToolkit.swapTopModalDialog(this.m_previousModalDialog);
  137.             if (var1 != this) {
  138.                System.out.println("java.awt.Dialog.__hideDialog(): self != this (self = " + var1 + "; this = " + this + ")");
  139.             }
  140.  
  141.             if (this.m_previousModalDialog != null) {
  142.                this.m_previousModalDialog.toFront();
  143.             }
  144.  
  145.             Enumeration var2 = this.m_disabledWindows.elements();
  146.  
  147.             while(var2.hasMoreElements()) {
  148.                Window var3 = (Window)var2.nextElement();
  149.                var3.enabled = true;
  150.                ((Component)var3).getPeer().setEnabled(true);
  151.             }
  152.          }
  153.  
  154.       }
  155.    }
  156.  
  157.    public boolean isResizable() {
  158.       return this.resizable;
  159.    }
  160.  
  161.    public synchronized void setResizable(boolean var1) {
  162.       this.resizable = var1;
  163.       DialogPeer var2 = (DialogPeer)super.peer;
  164.       if (var2 != null) {
  165.          var2.setResizable(var1);
  166.       }
  167.  
  168.    }
  169.  
  170.    protected String paramString() {
  171.       String var1 = super.paramString() + (this.modal ? ",modal" : ",modeless");
  172.       if (this.title != null) {
  173.          var1 = var1 + ",title=" + this.title;
  174.       }
  175.  
  176.       return var1;
  177.    }
  178. }
  179.