home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import java.awt.Graphics;
- import java.awt.Rectangle;
- import java.awt.Shape;
- import javax.swing.SizeRequirements;
- import javax.swing.event.DocumentEvent;
- import javax.swing.text.AttributeSet;
- import javax.swing.text.BoxView;
- import javax.swing.text.CompositeView;
- import javax.swing.text.Element;
- import javax.swing.text.View;
- import javax.swing.text.ViewFactory;
- import javax.swing.text.html.CSS.Attribute;
-
- public class BlockView extends BoxView {
- private AttributeSet attr;
- private StyleSheet.BoxPainter painter;
- private CSS.LengthValue cssWidth;
- private CSS.LengthValue cssHeight;
-
- public BlockView(Element var1, int var2) {
- super(var1, var2);
- }
-
- public void setParent(View var1) {
- super.setParent(var1);
- this.setPropertiesFromAttributes();
- }
-
- protected SizeRequirements calculateMajorAxisRequirements(int var1, SizeRequirements var2) {
- if (var2 == null) {
- var2 = new SizeRequirements();
- }
-
- if (!this.spanSetFromAttributes(var1, var2)) {
- var2 = super.calculateMajorAxisRequirements(var1, var2);
- }
-
- return var2;
- }
-
- protected SizeRequirements calculateMinorAxisRequirements(int var1, SizeRequirements var2) {
- if (var2 == null) {
- var2 = new SizeRequirements();
- }
-
- if (!this.spanSetFromAttributes(var1, var2)) {
- var2 = super.calculateMinorAxisRequirements(var1, var2);
- }
-
- if (var1 == 0) {
- Object var3 = this.getAttributes().getAttribute(Attribute.TEXT_ALIGN);
- if (var3 != null) {
- String var4 = var3.toString();
- if (var4.equals("center")) {
- var2.alignment = 0.5F;
- } else if (var4.equals("right")) {
- var2.alignment = 1.0F;
- } else {
- var2.alignment = 0.0F;
- }
- }
- }
-
- return var2;
- }
-
- boolean isPercentage(int var1, AttributeSet var2) {
- if (var1 == 0) {
- if (this.cssWidth != null) {
- return this.cssWidth.isPercentage();
- }
- } else if (this.cssHeight != null) {
- return this.cssHeight.isPercentage();
- }
-
- return false;
- }
-
- boolean spanSetFromAttributes(int var1, SizeRequirements var2) {
- if (var1 == 0) {
- if (this.cssWidth != null && !this.cssWidth.isPercentage()) {
- var2.minimum = var2.preferred = var2.maximum = (int)this.cssWidth.getValue();
- return true;
- }
- } else if (this.cssHeight != null && !this.cssHeight.isPercentage()) {
- var2.minimum = var2.preferred = var2.maximum = (int)this.cssHeight.getValue();
- return true;
- }
-
- return false;
- }
-
- protected void layoutMinorAxis(int var1, int var2, int[] var3, int[] var4) {
- int var5 = ((CompositeView)this).getViewCount();
- CSS.Attribute var6 = var2 == 0 ? Attribute.WIDTH : Attribute.HEIGHT;
-
- for(int var7 = 0; var7 < var5; ++var7) {
- View var8 = ((CompositeView)this).getView(var7);
- int var9 = (int)var8.getMinimumSpan(var2);
- int var10 = (int)var8.getMaximumSpan(var2);
- AttributeSet var11 = var8.getAttributes();
- CSS.LengthValue var12 = (CSS.LengthValue)var11.getAttribute(var6);
- if (var12 != null && var12.isPercentage()) {
- var9 = (int)var12.getValue((float)var1);
- var10 = var9;
- }
-
- if (var10 < var1) {
- float var13 = var8.getAlignment(var2);
- var3[var7] = (int)((float)(var1 - var10) * var13);
- var4[var7] = var10;
- } else {
- var3[var7] = 0;
- var4[var7] = Math.max(var9, var1);
- }
- }
-
- }
-
- public void paint(Graphics var1, Shape var2) {
- Rectangle var3 = (Rectangle)var2;
- this.painter.paint(var1, (float)var3.x, (float)var3.y, (float)var3.width, (float)var3.height, this);
- super.paint(var1, var3);
- }
-
- public AttributeSet getAttributes() {
- if (this.attr == null) {
- StyleSheet var1 = this.getStyleSheet();
- this.attr = var1.getViewAttributes(this);
- }
-
- return this.attr;
- }
-
- public int getResizeWeight(int var1) {
- switch (var1) {
- case 0:
- return 1;
- case 1:
- return 0;
- default:
- throw new IllegalArgumentException("Invalid axis: " + var1);
- }
- }
-
- public float getAlignment(int var1) {
- switch (var1) {
- case 0:
- return 0.0F;
- case 1:
- if (((CompositeView)this).getViewCount() == 0) {
- return 0.0F;
- }
-
- float var2 = ((BoxView)this).getPreferredSpan(1);
- View var3 = ((CompositeView)this).getView(0);
- float var4 = var3.getPreferredSpan(1);
- float var5 = (int)var2 != 0 ? var4 * var3.getAlignment(1) / var2 : 0.0F;
- return var5;
- default:
- throw new IllegalArgumentException("Invalid axis: " + var1);
- }
- }
-
- public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- super.changedUpdate(var1, var2, var3);
- int var4 = var1.getOffset();
- if (var4 <= ((View)this).getStartOffset() && var4 + var1.getLength() >= ((View)this).getEndOffset()) {
- this.setPropertiesFromAttributes();
- }
-
- }
-
- protected void setPropertiesFromAttributes() {
- StyleSheet var1 = this.getStyleSheet();
- this.attr = var1.getViewAttributes(this);
- this.painter = var1.getBoxPainter(this.attr);
- if (this.attr != null) {
- ((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)));
- }
-
- this.cssWidth = (CSS.LengthValue)this.attr.getAttribute(Attribute.WIDTH);
- this.cssHeight = (CSS.LengthValue)this.attr.getAttribute(Attribute.HEIGHT);
- }
-
- protected StyleSheet getStyleSheet() {
- HTMLDocument var1 = (HTMLDocument)((View)this).getDocument();
- return var1.getStyleSheet();
- }
- }
-