home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / text / TableView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  2.8 KB  |  98 lines

  1. package com.sun.java.swing.text;
  2.  
  3. public class TableView extends BoxView {
  4.    int[] colWidths;
  5.  
  6.    public TableView(Element var1) {
  7.       super(var1, 1);
  8.    }
  9.  
  10.    protected TableRow createTableRow(Element var1) {
  11.       return new TableRow(this, var1);
  12.    }
  13.  
  14.    protected TableCell createTableCell(Element var1) {
  15.       return new TableCell(this, var1);
  16.    }
  17.  
  18.    int getColumnSpan(int var1) {
  19.       return this.colWidths[var1];
  20.    }
  21.  
  22.    int getRowSpan(int var1) {
  23.       View var2 = ((CompositeView)this).getView(var1);
  24.       return (int)var2.getPreferredSpan(1);
  25.    }
  26.  
  27.    protected void loadChildren(ViewFactory var1) {
  28.       Element var2 = ((View)this).getElement();
  29.       int var3 = var2.getElementCount();
  30.       if (var3 > 0) {
  31.          View[] var4 = new View[var3];
  32.  
  33.          for(int var5 = 0; var5 < var3; ++var5) {
  34.             var4[var5] = this.createTableRow(var2.getElement(var5));
  35.          }
  36.  
  37.          ((BoxView)this).replace(0, 0, var4);
  38.       }
  39.  
  40.       for(int var11 = 0; var11 < var3; ++var11) {
  41.          View var12 = ((CompositeView)this).getView(var11);
  42.  
  43.          for(int var6 = 0; var6 < var12.getViewCount(); ++var6) {
  44.             View var7 = var12.getView(var6);
  45.             if (var7 instanceof TableCell) {
  46.                TableCell var8 = (TableCell)var7;
  47.                if (var8.getColumnCount() > 1 || var8.getRowCount() > 1) {
  48.                   for(int var9 = var11; var9 < var11 + var8.getRowCount(); ++var11) {
  49.                      for(int var10 = var6; var10 < var6 + var8.getColumnCount(); ++var10) {
  50.                         if (var9 != 0 && var10 != 0) {
  51.                            this.addProxy(var9, var10, var8);
  52.                         }
  53.                      }
  54.                   }
  55.                }
  56.             }
  57.          }
  58.       }
  59.  
  60.       this.calculateGrid();
  61.    }
  62.  
  63.    void calculateGrid() {
  64.       int var1 = 0;
  65.       int var2 = ((CompositeView)this).getViewCount();
  66.  
  67.       for(int var3 = 0; var3 < var2; ++var3) {
  68.          View var4 = ((CompositeView)this).getView(var3);
  69.          var1 = Math.max(var1, var4.getViewCount());
  70.       }
  71.  
  72.       this.colWidths = new int[var1];
  73.  
  74.       for(int var9 = 0; var9 < var2; ++var9) {
  75.          View var5 = ((CompositeView)this).getView(var9);
  76.          var1 = var5.getViewCount();
  77.  
  78.          for(int var6 = 0; var6 < var1; ++var6) {
  79.             TableCell var7 = (TableCell)var5.getView(var6);
  80.             this.colWidths[var6] = Math.max(var7.getPreferredColumnSpan(), this.colWidths[var6]);
  81.          }
  82.  
  83.          var5.preferenceChanged((View)null, true, false);
  84.       }
  85.  
  86.    }
  87.  
  88.    void addProxy(int var1, int var2, TableCell var3) {
  89.       TableRow var4 = (TableRow)((CompositeView)this).getView(var1);
  90.       ((CompositeView)var4).insert(var2, new ProxyCell(this, var3));
  91.    }
  92.  
  93.    protected void layout(int var1, int var2) {
  94.       this.calculateGrid();
  95.       super.layout(var1, var2);
  96.    }
  97. }
  98.