home *** CD-ROM | disk | FTP | other *** search
/ PC Master 5 / PC MASTER 5.iso / INTERNET / KIT / WIN95 / MSIE30.EXE / ieakjava.exe / classr.exe / com / ms / awt / DialogLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-01-31  |  2.8 KB  |  124 lines

  1. package com.ms.awt;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Dimension;
  6. import java.awt.Font;
  7. import java.awt.FontMetrics;
  8. import java.awt.Insets;
  9. import java.awt.Label;
  10. import java.awt.LayoutManager;
  11. import java.awt.Rectangle;
  12. import java.util.Hashtable;
  13.  
  14. public class DialogLayout implements LayoutManager {
  15.    protected Hashtable m_map = new Hashtable();
  16.    protected int m_width;
  17.    protected int m_height;
  18.  
  19.    protected void Construct(Container var1, int var2, int var3) {
  20.       Rectangle var4 = new Rectangle(0, 0, var2, var3);
  21.       this.mapRectangle(var4, this.getCharWidth(var1), this.getCharHeight(var1));
  22.       this.m_width = var4.width;
  23.       this.m_height = var4.height;
  24.    }
  25.  
  26.    public Dimension preferredLayoutSize(Container var1) {
  27.       return new Dimension(this.m_width, this.m_height);
  28.    }
  29.  
  30.    public void setShape(Component var1, int var2, int var3, int var4, int var5) {
  31.       this.m_map.put(var1, new Rectangle(var2, var3, var4, var5));
  32.    }
  33.  
  34.    public void setShape(Component var1, Rectangle var2) {
  35.       this.m_map.put(var1, new Rectangle(var2.x, var2.y, var2.width, var2.height));
  36.    }
  37.  
  38.    public Rectangle getShape(Component var1) {
  39.       Rectangle var2 = (Rectangle)this.m_map.get(var1);
  40.       return new Rectangle(var2.x, var2.y, var2.width, var2.height);
  41.    }
  42.  
  43.    public void addLayoutComponent(String var1, Component var2) {
  44.    }
  45.  
  46.    public DialogLayout(Container var1, int var2, int var3) {
  47.       this.Construct(var1, var2, var3);
  48.    }
  49.  
  50.    public DialogLayout(Container var1, Dimension var2) {
  51.       this.Construct(var1, var2.width, var2.height);
  52.    }
  53.  
  54.    protected int getCharHeight(Container var1) {
  55.       FontMetrics var2 = ((Component)var1).getFontMetrics(((Component)var1).getFont());
  56.       int var3 = var2.getHeight();
  57.       return var3;
  58.    }
  59.  
  60.    public Dimension getDialogSize() {
  61.       return new Dimension(this.m_width, this.m_height);
  62.    }
  63.  
  64.    public void removeLayoutComponent(Component var1) {
  65.    }
  66.  
  67.    public Dimension minimumLayoutSize(Container var1) {
  68.       return new Dimension(this.m_width, this.m_height);
  69.    }
  70.  
  71.    public void layoutContainer(Container var1) {
  72.       int var2 = var1.countComponents();
  73.       Rectangle var3 = new Rectangle();
  74.       int var4 = this.getCharHeight(var1);
  75.       int var5 = this.getCharWidth(var1);
  76.       Insets var6 = var1.insets();
  77.       ((Component)var1).getFontMetrics(((Component)var1).getFont());
  78.  
  79.       for(int var7 = 0; var7 < var2; ++var7) {
  80.          Component var8 = var1.getComponent(var7);
  81.          Rectangle var9 = (Rectangle)this.m_map.get(var8);
  82.          if (var9 != null) {
  83.             var3.x = var9.x;
  84.             var3.y = var9.y;
  85.             var3.height = var9.height;
  86.             var3.width = var9.width;
  87.             this.mapRectangle(var3, var5, var4);
  88.             if (var8 instanceof Label) {
  89.                var3.x -= 12;
  90.                var3.width += 12;
  91.             }
  92.  
  93.             var3.x += var6.left;
  94.             var3.y += var6.top;
  95.             var8.reshape(var3.x, var3.y, var3.width, var3.height);
  96.          }
  97.       }
  98.  
  99.    }
  100.  
  101.    protected int getCharWidth(Container var1) {
  102.       Object var2 = ((Component)var1).getFont();
  103.       if (var2 == null) {
  104.          var2 = new FontX("Helv", 0, 8);
  105.       }
  106.  
  107.       FontMetrics var3 = ((Component)var1).getFontMetrics((Font)var2);
  108.       String var4 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  109.       int var5 = var3.stringWidth(var4) / var4.length();
  110.       if (var5 <= 0) {
  111.          var5 = 1;
  112.       }
  113.  
  114.       return var5;
  115.    }
  116.  
  117.    protected void mapRectangle(Rectangle var1, int var2, int var3) {
  118.       var1.x = var1.x * var2 / 4;
  119.       var1.y = var1.y * var3 / 8;
  120.       var1.width = var1.width * var2 / 4;
  121.       var1.height = var1.height * var3 / 8;
  122.    }
  123. }
  124.