home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / text / TableView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  4.1 KB  |  188 lines

  1. package javax.swing.text;
  2.  
  3. import java.awt.Rectangle;
  4. import javax.swing.SizeRequirements;
  5.  
  6. public abstract class TableView extends BoxView {
  7.    int[] columnSpans;
  8.    int[] columnOffsets;
  9.    SizeRequirements[] columnRequirements;
  10.  
  11.    public TableView(Element var1) {
  12.       super(var1, 1);
  13.    }
  14.  
  15.    void addProxy(int var1, int var2, TableCell var3) {
  16.       TableRow var4 = (TableRow)((CompositeView)this).getView(var1);
  17.       if (var4 != null) {
  18.          int var5 = ((CompositeView)var4).getViewCount();
  19.  
  20.          for(int var6 = ((CompositeView)var4).getViewCount(); var6 < var2; ++var6) {
  21.             ((CompositeView)var4).insert(var6, new ProxyCell(this, ((View)this).getElement()));
  22.          }
  23.  
  24.          ((CompositeView)var4).insert(var2, new ProxyCell(this, var3));
  25.       }
  26.  
  27.    }
  28.  
  29.    protected SizeRequirements calculateMinorAxisRequirements(int var1, SizeRequirements var2) {
  30.       int var3 = 0;
  31.       int var4 = ((CompositeView)this).getViewCount();
  32.  
  33.       for(int var5 = 0; var5 < var4; ++var5) {
  34.          View var6 = ((CompositeView)this).getView(var5);
  35.          var3 = Math.max(var3, var6.getViewCount());
  36.       }
  37.  
  38.       this.columnSpans = new int[var3];
  39.       this.columnOffsets = new int[var3];
  40.       this.columnRequirements = new SizeRequirements[var3];
  41.  
  42.       for(int var16 = 0; var16 < var3; ++var16) {
  43.          this.columnRequirements[var16] = new SizeRequirements();
  44.       }
  45.  
  46.       for(int var7 = 0; var7 < var4; ++var7) {
  47.          View var8 = ((CompositeView)this).getView(var7);
  48.          var3 = var8.getViewCount();
  49.  
  50.          for(int var9 = 0; var9 < var3; ++var9) {
  51.             View var10 = var8.getView(var9);
  52.             SizeRequirements var11 = this.columnRequirements[var9];
  53.             var11.minimum = Math.max((int)var10.getMinimumSpan(var1), var11.minimum);
  54.             var11.preferred = Math.max((int)var10.getPreferredSpan(var1), var11.preferred);
  55.             var11.maximum = Math.max((int)var10.getMaximumSpan(var1), var11.maximum);
  56.             if (var10 instanceof GridCell) {
  57.                GridCell var12 = (GridCell)var10;
  58.                var12.setGridLocation(var7, var9);
  59.             }
  60.          }
  61.       }
  62.  
  63.       if (var2 == null) {
  64.          var2 = new SizeRequirements();
  65.       }
  66.  
  67.       long var17 = 0L;
  68.       long var18 = 0L;
  69.       long var19 = 0L;
  70.  
  71.       for(int var14 = 0; var14 < var3; ++var14) {
  72.          SizeRequirements var15 = this.columnRequirements[var14];
  73.          var17 += (long)var15.minimum;
  74.          var18 += (long)var15.preferred;
  75.          var19 += (long)var15.maximum;
  76.       }
  77.  
  78.       var2.minimum = (int)var17;
  79.       var2.preferred = (int)var18;
  80.       var2.maximum = (int)var19;
  81.       var2.alignment = 0.0F;
  82.       return var2;
  83.    }
  84.  
  85.    protected TableCell createTableCell(Element var1) {
  86.       return new TableCell(this, var1);
  87.    }
  88.  
  89.    protected TableRow createTableRow(Element var1) {
  90.       return new TableRow(this, var1);
  91.    }
  92.  
  93.    int getColumnCount() {
  94.       return this.columnSpans.length;
  95.    }
  96.  
  97.    int getColumnSpan(int var1) {
  98.       return this.columnSpans[var1];
  99.    }
  100.  
  101.    int getRowCount() {
  102.       return ((CompositeView)this).getViewCount();
  103.    }
  104.  
  105.    int getRowSpan(int var1) {
  106.       return var1 < ((CompositeView)this).getViewCount() ? ((BoxView)this).getSpan(1, var1) : 0;
  107.    }
  108.  
  109.    protected View getViewAtPosition(int var1, Rectangle var2) {
  110.       int var3 = ((CompositeView)this).getViewCount();
  111.  
  112.       for(int var4 = 0; var4 < var3; ++var4) {
  113.          View var5 = ((CompositeView)this).getView(var4);
  114.          int var6 = var5.getStartOffset();
  115.          int var7 = var5.getEndOffset();
  116.          if (var1 >= var6 && var1 < var7) {
  117.             if (var2 != null) {
  118.                ((BoxView)this).childAllocation(var4, var2);
  119.             }
  120.  
  121.             return var5;
  122.          }
  123.       }
  124.  
  125.       if (var1 == ((View)this).getEndOffset()) {
  126.          View var8 = ((CompositeView)this).getView(var3 - 1);
  127.          if (var2 != null) {
  128.             ((BoxView)this).childAllocation(var3 - 1, var2);
  129.          }
  130.  
  131.          return var8;
  132.       } else {
  133.          return null;
  134.       }
  135.    }
  136.  
  137.    protected void layoutColumns(int var1, int[] var2, int[] var3, SizeRequirements[] var4) {
  138.       SizeRequirements.calculateTiledPositions(var1, (SizeRequirements)null, var4, var2, var3);
  139.    }
  140.  
  141.    protected void layoutMinorAxis(int var1, int var2, int[] var3, int[] var4) {
  142.       this.layoutColumns(var1, this.columnOffsets, this.columnSpans, this.columnRequirements);
  143.       super.layoutMinorAxis(var1, var2, var3, var4);
  144.    }
  145.  
  146.    protected void loadChildren(ViewFactory var1) {
  147.       Element var2 = ((View)this).getElement();
  148.       int var3 = var2.getElementCount();
  149.  
  150.       for(int var4 = 0; var4 < var3; ++var4) {
  151.          TableRow var5 = this.createTableRow(var2.getElement(var4));
  152.          if (var5 != null) {
  153.             ((CompositeView)this).append(var5);
  154.          }
  155.       }
  156.  
  157.       this.loadProxyCells();
  158.    }
  159.  
  160.    void loadProxyCells() {
  161.       int var1 = ((CompositeView)this).getViewCount();
  162.  
  163.       for(int var2 = 0; var2 < var1; ++var2) {
  164.          View var3 = ((CompositeView)this).getView(var2);
  165.  
  166.          for(int var4 = 0; var4 < var3.getViewCount(); ++var4) {
  167.             View var5 = var3.getView(var4);
  168.             if (var5 instanceof TableCell) {
  169.                TableCell var6 = (TableCell)var5;
  170.                if (var6.getColumnCount() > 1 || var6.getRowCount() > 1) {
  171.                   int var7 = var2 + var6.getRowCount();
  172.                   int var8 = var4 + var6.getColumnCount();
  173.  
  174.                   for(int var9 = var2; var9 < var7; ++var9) {
  175.                      for(int var10 = var4; var10 < var8; ++var10) {
  176.                         if (var9 != var2 || var10 != var4) {
  177.                            this.addProxy(var9, var10, var6);
  178.                         }
  179.                      }
  180.                   }
  181.                }
  182.             }
  183.          }
  184.       }
  185.  
  186.    }
  187. }
  188.