home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import java.awt.FontMetrics;
- import java.awt.Shape;
- import java.text.BreakIterator;
- import javax.swing.event.DocumentEvent;
- import javax.swing.text.AttributeSet;
- import javax.swing.text.BadLocationException;
- import javax.swing.text.Document;
- import javax.swing.text.Element;
- import javax.swing.text.GlyphView;
- import javax.swing.text.LabelView;
- import javax.swing.text.Segment;
- import javax.swing.text.View;
- import javax.swing.text.ViewFactory;
- import javax.swing.text.html.CSS.Attribute;
-
- public class InlineView extends LabelView {
- private boolean nowrap;
- private AttributeSet attr;
-
- public InlineView(Element var1) {
- super(var1);
- StyleSheet var2 = this.getStyleSheet();
- this.attr = var2.getViewAttributes(this);
- }
-
- public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- super.changedUpdate(var1, var2, var3);
- StyleSheet var4 = this.getStyleSheet();
- this.attr = var4.getViewAttributes(this);
- ((View)this).preferenceChanged((View)null, true, true);
- }
-
- public AttributeSet getAttributes() {
- return this.attr;
- }
-
- public int getBreakWeight(int var1, float var2, float var3) {
- return this.nowrap ? 0 : super.getBreakWeight(var1, var2, var3);
- }
-
- float getLongestWordSpan() {
- float var1 = 0.0F;
-
- try {
- Document var2 = ((View)this).getDocument();
- int var3 = ((GlyphView)this).getStartOffset();
- int var4 = ((GlyphView)this).getEndOffset();
- if (var4 > var3) {
- Segment var5 = new Segment();
- var2.getText(var3, var4 - var3, var5);
- int var6 = var3;
- int var7 = var3;
- BreakIterator var8 = BreakIterator.getWordInstance();
- var8.setText(var5);
- int var9 = var8.first();
-
- for(int var10 = var8.next(); var10 != -1; var10 = var8.next()) {
- if (var10 - var9 > var7 - var6) {
- var6 = var9;
- var7 = var10;
- }
-
- var9 = var10;
- }
-
- if (var7 - var6 > 0) {
- FontMetrics var11 = ((LabelView)this).getFontMetrics();
- int var12 = var5.offset + var6 - var5.getBeginIndex();
- var1 = (float)var11.charsWidth(var5.array, var12, var7 - var6);
- }
- }
- } catch (BadLocationException var13) {
- }
-
- return var1;
- }
-
- protected void setPropertiesFromAttributes() {
- super.setPropertiesFromAttributes();
- AttributeSet var1 = this.getAttributes();
- Object var2 = var1.getAttribute(Attribute.TEXT_DECORATION);
- boolean var3 = var2 != null ? var2.toString().indexOf("underline") >= 0 : false;
- ((LabelView)this).setUnderline(var3);
- boolean var4 = var2 != null ? var2.toString().indexOf("line-through") >= 0 : false;
- ((LabelView)this).setStrikeThrough(var4);
- Object var5 = var1.getAttribute(Attribute.VERTICAL_ALIGN);
- var4 = var5 != null ? var5.toString().indexOf("sup") >= 0 : false;
- ((LabelView)this).setSuperscript(var4);
- var4 = var5 != null ? var5.toString().indexOf("sub") >= 0 : false;
- ((LabelView)this).setSubscript(var4);
- Object var6 = var1.getAttribute(Attribute.WHITE_SPACE);
- if (var6 != null && var6.equals("nowrap")) {
- this.nowrap = true;
- } else {
- this.nowrap = false;
- }
-
- }
-
- protected StyleSheet getStyleSheet() {
- HTMLDocument var1 = (HTMLDocument)((View)this).getDocument();
- return var1.getStyleSheet();
- }
- }
-