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 / HRuleView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  4.9 KB  |  196 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.awt.Graphics;
  4. import java.awt.Insets;
  5. import java.awt.Rectangle;
  6. import java.awt.Shape;
  7. import java.util.Enumeration;
  8. import javax.swing.BorderFactory;
  9. import javax.swing.border.Border;
  10. import javax.swing.event.DocumentEvent;
  11. import javax.swing.text.AttributeSet;
  12. import javax.swing.text.BadLocationException;
  13. import javax.swing.text.Element;
  14. import javax.swing.text.Position;
  15. import javax.swing.text.StyleConstants;
  16. import javax.swing.text.View;
  17. import javax.swing.text.ViewFactory;
  18. import javax.swing.text.Position.Bias;
  19. import javax.swing.text.html.CSS.Attribute;
  20.  
  21. class HRuleView extends View {
  22.    private Border bevel;
  23.    private float topMargin;
  24.    private float bottomMargin;
  25.    private float leftMargin;
  26.    private float rightMargin;
  27.    private int alignment = 0;
  28.    private String noshade = null;
  29.    private int size = 0;
  30.    private CSS.LengthValue widthValue;
  31.    private static final int SPACE_ABOVE = 3;
  32.    private static final int SPACE_BELOW = 3;
  33.    private AttributeSet attr;
  34.  
  35.    public HRuleView(Element var1) {
  36.       super(var1);
  37.       this.setPropertiesFromAttributes();
  38.    }
  39.  
  40.    protected void setPropertiesFromAttributes() {
  41.       StyleSheet var1 = ((HTMLDocument)((View)this).getDocument()).getStyleSheet();
  42.       AttributeSet var2 = ((View)this).getElement().getAttributes();
  43.       this.attr = var1.getViewAttributes(this);
  44.       this.alignment = 0;
  45.       this.size = 0;
  46.       this.noshade = null;
  47.       this.widthValue = null;
  48.  
  49.       Object var4;
  50.       for(Enumeration var3 = this.attr.getAttributeNames(); var3.hasMoreElements(); var4 = var3.nextElement()) {
  51.       }
  52.  
  53.       if (this.attr != null) {
  54.          this.alignment = StyleConstants.getAlignment(this.attr);
  55.          this.noshade = (String)var2.getAttribute("noshade");
  56.          var4 = this.attr.getAttribute("size");
  57.          if (var4 != null && var4 instanceof String) {
  58.             this.size = Integer.parseInt((String)var4);
  59.          }
  60.  
  61.          var4 = this.attr.getAttribute(Attribute.WIDTH);
  62.          if (var4 != null && var4 instanceof CSS.LengthValue) {
  63.             this.widthValue = (CSS.LengthValue)var4;
  64.          }
  65.  
  66.          this.topMargin = this.getLength(Attribute.MARGIN_TOP, this.attr);
  67.          this.bottomMargin = this.getLength(Attribute.MARGIN_BOTTOM, this.attr);
  68.          this.leftMargin = this.getLength(Attribute.MARGIN_LEFT, this.attr);
  69.          this.rightMargin = this.getLength(Attribute.MARGIN_RIGHT, this.attr);
  70.       } else {
  71.          this.topMargin = this.bottomMargin = this.leftMargin = this.rightMargin = 0.0F;
  72.       }
  73.  
  74.       if (this.bevel == null) {
  75.          this.bevel = BorderFactory.createLoweredBevelBorder();
  76.       }
  77.  
  78.    }
  79.  
  80.    private float getLength(CSS.Attribute var1, AttributeSet var2) {
  81.       CSS.LengthValue var3 = (CSS.LengthValue)var2.getAttribute(var1);
  82.       float var4 = var3 != null ? var3.getValue() : 0.0F;
  83.       return var4;
  84.    }
  85.  
  86.    public void paint(Graphics var1, Shape var2) {
  87.       Rectangle var3 = var2.getBounds();
  88.       int var4 = 0;
  89.       int var5 = var3.y + 3 + (int)this.topMargin;
  90.       int var6 = var3.width - (int)(this.leftMargin + this.rightMargin);
  91.       if (this.widthValue != null) {
  92.          var6 = (int)this.widthValue.getValue((float)var6);
  93.       }
  94.  
  95.       int var7 = var3.height - (6 + (int)this.topMargin + (int)this.bottomMargin);
  96.       if (this.size > 0) {
  97.          var7 = this.size;
  98.       }
  99.  
  100.       switch (this.alignment) {
  101.          case 0:
  102.          default:
  103.             var4 = var3.x + (int)this.leftMargin;
  104.             break;
  105.          case 1:
  106.             var4 = var3.x + var3.width / 2 - var6 / 2;
  107.             break;
  108.          case 2:
  109.             var4 = var3.x + var3.width - var6 - (int)this.rightMargin;
  110.       }
  111.  
  112.       if (this.noshade == "#DEFAULT") {
  113.          var1.fillRect(var4, var5, var6, var7);
  114.       } else {
  115.          this.bevel.paintBorder(((View)this).getContainer(), var1, var4, var5, var6, var7);
  116.       }
  117.  
  118.    }
  119.  
  120.    public float getPreferredSpan(int var1) {
  121.       Insets var2 = this.bevel.getBorderInsets(((View)this).getContainer());
  122.       switch (var1) {
  123.          case 0:
  124.             return (float)(var2.left + var2.right);
  125.          case 1:
  126.             if (this.size > 0) {
  127.                return (float)(this.size + 3 + 3) + this.topMargin + this.bottomMargin;
  128.             } else {
  129.                if (this.noshade == "#DEFAULT") {
  130.                   return 7.0F + this.topMargin + this.bottomMargin;
  131.                }
  132.  
  133.                return (float)(var2.top + var2.bottom + 3 + 3) + this.topMargin + this.bottomMargin;
  134.             }
  135.          default:
  136.             throw new IllegalArgumentException("Invalid axis: " + var1);
  137.       }
  138.    }
  139.  
  140.    public int getResizeWeight(int var1) {
  141.       if (var1 == 0) {
  142.          return 1;
  143.       } else {
  144.          return var1 == 1 ? 0 : 0;
  145.       }
  146.    }
  147.  
  148.    public int getBreakWeight(int var1, float var2, float var3) {
  149.       return var1 == 0 ? 3000 : 0;
  150.    }
  151.  
  152.    public View breakView(int var1, int var2, float var3, float var4) {
  153.       return null;
  154.    }
  155.  
  156.    public Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException {
  157.       int var4 = ((View)this).getStartOffset();
  158.       int var5 = ((View)this).getEndOffset();
  159.       if (var1 >= var4 && var1 <= var5) {
  160.          Rectangle var6 = var2.getBounds();
  161.          if (var1 == var5) {
  162.             var6.x += var6.width;
  163.          }
  164.  
  165.          var6.width = 0;
  166.          return var6;
  167.       } else {
  168.          return null;
  169.       }
  170.    }
  171.  
  172.    public int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4) {
  173.       Rectangle var5 = (Rectangle)var3;
  174.       if (var1 < (float)(var5.x + var5.width / 2)) {
  175.          var4[0] = Bias.Forward;
  176.          return ((View)this).getStartOffset();
  177.       } else {
  178.          var4[0] = Bias.Backward;
  179.          return ((View)this).getEndOffset();
  180.       }
  181.    }
  182.  
  183.    public AttributeSet getAttributes() {
  184.       return this.attr;
  185.    }
  186.  
  187.    public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  188.       super.changedUpdate(var1, var2, var3);
  189.       int var4 = var1.getOffset();
  190.       if (var4 <= ((View)this).getStartOffset() && var4 + var1.getLength() >= ((View)this).getEndOffset()) {
  191.          this.setPropertiesFromAttributes();
  192.       }
  193.  
  194.    }
  195. }
  196.