home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / text / html / BlockView.class (.txt) next >
Encoding:
Java Class File  |  1979-12-31  |  4.3 KB  |  193 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.awt.Graphics;
  4. import java.awt.Rectangle;
  5. import java.awt.Shape;
  6. import javax.swing.SizeRequirements;
  7. import javax.swing.event.DocumentEvent;
  8. import javax.swing.text.AttributeSet;
  9. import javax.swing.text.BoxView;
  10. import javax.swing.text.CompositeView;
  11. import javax.swing.text.Element;
  12. import javax.swing.text.View;
  13. import javax.swing.text.ViewFactory;
  14. import javax.swing.text.html.CSS.Attribute;
  15.  
  16. public class BlockView extends BoxView {
  17.    private AttributeSet attr;
  18.    private StyleSheet.BoxPainter painter;
  19.    private CSS.LengthValue cssWidth;
  20.    private CSS.LengthValue cssHeight;
  21.  
  22.    public BlockView(Element var1, int var2) {
  23.       super(var1, var2);
  24.    }
  25.  
  26.    public void setParent(View var1) {
  27.       super.setParent(var1);
  28.       this.setPropertiesFromAttributes();
  29.    }
  30.  
  31.    protected SizeRequirements calculateMajorAxisRequirements(int var1, SizeRequirements var2) {
  32.       if (var2 == null) {
  33.          var2 = new SizeRequirements();
  34.       }
  35.  
  36.       if (!this.spanSetFromAttributes(var1, var2)) {
  37.          var2 = super.calculateMajorAxisRequirements(var1, var2);
  38.       }
  39.  
  40.       return var2;
  41.    }
  42.  
  43.    protected SizeRequirements calculateMinorAxisRequirements(int var1, SizeRequirements var2) {
  44.       if (var2 == null) {
  45.          var2 = new SizeRequirements();
  46.       }
  47.  
  48.       if (!this.spanSetFromAttributes(var1, var2)) {
  49.          var2 = super.calculateMinorAxisRequirements(var1, var2);
  50.       }
  51.  
  52.       if (var1 == 0) {
  53.          Object var3 = this.getAttributes().getAttribute(Attribute.TEXT_ALIGN);
  54.          if (var3 != null) {
  55.             String var4 = var3.toString();
  56.             if (var4.equals("center")) {
  57.                var2.alignment = 0.5F;
  58.             } else if (var4.equals("right")) {
  59.                var2.alignment = 1.0F;
  60.             } else {
  61.                var2.alignment = 0.0F;
  62.             }
  63.          }
  64.       }
  65.  
  66.       return var2;
  67.    }
  68.  
  69.    boolean isPercentage(int var1, AttributeSet var2) {
  70.       if (var1 == 0) {
  71.          if (this.cssWidth != null) {
  72.             return this.cssWidth.isPercentage();
  73.          }
  74.       } else if (this.cssHeight != null) {
  75.          return this.cssHeight.isPercentage();
  76.       }
  77.  
  78.       return false;
  79.    }
  80.  
  81.    boolean spanSetFromAttributes(int var1, SizeRequirements var2) {
  82.       if (var1 == 0) {
  83.          if (this.cssWidth != null && !this.cssWidth.isPercentage()) {
  84.             var2.minimum = var2.preferred = var2.maximum = (int)this.cssWidth.getValue();
  85.             return true;
  86.          }
  87.       } else if (this.cssHeight != null && !this.cssHeight.isPercentage()) {
  88.          var2.minimum = var2.preferred = var2.maximum = (int)this.cssHeight.getValue();
  89.          return true;
  90.       }
  91.  
  92.       return false;
  93.    }
  94.  
  95.    protected void layoutMinorAxis(int var1, int var2, int[] var3, int[] var4) {
  96.       int var5 = ((CompositeView)this).getViewCount();
  97.       CSS.Attribute var6 = var2 == 0 ? Attribute.WIDTH : Attribute.HEIGHT;
  98.  
  99.       for(int var7 = 0; var7 < var5; ++var7) {
  100.          View var8 = ((CompositeView)this).getView(var7);
  101.          int var9 = (int)var8.getMinimumSpan(var2);
  102.          int var10 = (int)var8.getMaximumSpan(var2);
  103.          AttributeSet var11 = var8.getAttributes();
  104.          CSS.LengthValue var12 = (CSS.LengthValue)var11.getAttribute(var6);
  105.          if (var12 != null && var12.isPercentage()) {
  106.             var9 = (int)var12.getValue((float)var1);
  107.             var10 = var9;
  108.          }
  109.  
  110.          if (var10 < var1) {
  111.             float var13 = var8.getAlignment(var2);
  112.             var3[var7] = (int)((float)(var1 - var10) * var13);
  113.             var4[var7] = var10;
  114.          } else {
  115.             var3[var7] = 0;
  116.             var4[var7] = Math.max(var9, var1);
  117.          }
  118.       }
  119.  
  120.    }
  121.  
  122.    public void paint(Graphics var1, Shape var2) {
  123.       Rectangle var3 = (Rectangle)var2;
  124.       this.painter.paint(var1, (float)var3.x, (float)var3.y, (float)var3.width, (float)var3.height, this);
  125.       super.paint(var1, var3);
  126.    }
  127.  
  128.    public AttributeSet getAttributes() {
  129.       if (this.attr == null) {
  130.          StyleSheet var1 = this.getStyleSheet();
  131.          this.attr = var1.getViewAttributes(this);
  132.       }
  133.  
  134.       return this.attr;
  135.    }
  136.  
  137.    public int getResizeWeight(int var1) {
  138.       switch (var1) {
  139.          case 0:
  140.             return 1;
  141.          case 1:
  142.             return 0;
  143.          default:
  144.             throw new IllegalArgumentException("Invalid axis: " + var1);
  145.       }
  146.    }
  147.  
  148.    public float getAlignment(int var1) {
  149.       switch (var1) {
  150.          case 0:
  151.             return 0.0F;
  152.          case 1:
  153.             if (((CompositeView)this).getViewCount() == 0) {
  154.                return 0.0F;
  155.             }
  156.  
  157.             float var2 = ((BoxView)this).getPreferredSpan(1);
  158.             View var3 = ((CompositeView)this).getView(0);
  159.             float var4 = var3.getPreferredSpan(1);
  160.             float var5 = (int)var2 != 0 ? var4 * var3.getAlignment(1) / var2 : 0.0F;
  161.             return var5;
  162.          default:
  163.             throw new IllegalArgumentException("Invalid axis: " + var1);
  164.       }
  165.    }
  166.  
  167.    public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  168.       super.changedUpdate(var1, var2, var3);
  169.       int var4 = var1.getOffset();
  170.       if (var4 <= ((View)this).getStartOffset() && var4 + var1.getLength() >= ((View)this).getEndOffset()) {
  171.          this.setPropertiesFromAttributes();
  172.       }
  173.  
  174.    }
  175.  
  176.    protected void setPropertiesFromAttributes() {
  177.       StyleSheet var1 = this.getStyleSheet();
  178.       this.attr = var1.getViewAttributes(this);
  179.       this.painter = var1.getBoxPainter(this.attr);
  180.       if (this.attr != null) {
  181.          ((CompositeView)this).setInsets((short)((int)this.painter.getInset(1, this)), (short)((int)this.painter.getInset(2, this)), (short)((int)this.painter.getInset(3, this)), (short)((int)this.painter.getInset(4, this)));
  182.       }
  183.  
  184.       this.cssWidth = (CSS.LengthValue)this.attr.getAttribute(Attribute.WIDTH);
  185.       this.cssHeight = (CSS.LengthValue)this.attr.getAttribute(Attribute.HEIGHT);
  186.    }
  187.  
  188.    protected StyleSheet getStyleSheet() {
  189.       HTMLDocument var1 = (HTMLDocument)((View)this).getDocument();
  190.       return var1.getStyleSheet();
  191.    }
  192. }
  193.