home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.text;
-
- import com.sun.java.swing.event.DocumentEvent;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Rectangle;
- import java.awt.Shape;
- import java.awt.Toolkit;
-
- public class LabelView extends View implements TabableView {
- Font font;
- FontMetrics metrics;
- // $FF: renamed from: fg java.awt.Color
- Color field_0;
- Segment text = new Segment();
- boolean underline;
- TabExpander expander;
- // $FF: renamed from: x int
- int field_1;
-
- public LabelView(Element var1) {
- super(var1);
- }
-
- final void loadText(int var1, int var2) {
- try {
- Document var3 = ((View)this).getDocument();
- var3.getText(var1, var2 - var1, this.text);
- } catch (BadLocationException var4) {
- throw new StateInvariantError("LabelView: Stale view: " + var4);
- }
- }
-
- final void paintText(Graphics var1, Shape var2, int var3, int var4) {
- Rectangle var5 = var2.getBounds();
- this.sync();
- this.loadText(var3, var4);
- int var6 = var5.y + var5.height - this.metrics.getDescent();
- var1.setFont(this.font);
- var1.setColor(this.field_0);
- Utilities.drawTabbedText(this.text, var5.x, var6, var1, this.expander, var3);
- if (this.underline) {
- ++var6;
- var1.drawLine(var5.x, var6, var5.x + var5.width, var6);
- }
-
- }
-
- final void sync() {
- if (this.font == null) {
- Element var1 = ((View)this).getElement();
- Document var2 = ((View)this).getDocument();
- if (var2 instanceof StyledDocument) {
- StyledDocument var3 = (StyledDocument)var2;
- AttributeSet var4 = var1.getAttributes();
- this.font = var3.getFont(var4);
- this.field_0 = var3.getForeground(var4);
- this.underline = StyleConstants.isUnderline(var4);
- this.metrics = Toolkit.getDefaultToolkit().getFontMetrics(this.font);
- } else {
- throw new StateInvariantError("LabelView needs StyledDocument");
- }
- }
- }
-
- final float getPreferredSpan(int var1, int var2, int var3, int var4) {
- this.sync();
- switch (var1) {
- case 0:
- this.loadText(var2, var3);
- int var5 = Utilities.getTabbedTextWidth(this.text, this.metrics, var4, this.expander, var2);
- return (float)Math.max(var5, 1);
- case 1:
- return (float)this.metrics.getHeight();
- default:
- throw new IllegalArgumentException("Invalid axis: " + var1);
- }
- }
-
- Shape modelToView(int var1, Shape var2, int var3, int var4) throws BadLocationException {
- Rectangle var5 = var2.getBounds();
- if (var1 >= var3 && var1 <= var4) {
- this.loadText(var3, var1);
- this.sync();
- int var6 = Utilities.getTabbedTextWidth(this.text, this.metrics, var5.x, this.expander, var3);
- return new Rectangle(var5.x + var6, var5.y, 0, this.metrics.getHeight());
- } else {
- throw new BadLocationException("modelToView - can't convert", var4);
- }
- }
-
- int viewToModel(float var1, float var2, Shape var3, int var4, int var5) {
- Rectangle var6 = var3.getBounds();
- this.sync();
- this.loadText(var4, var5);
- int var7 = Utilities.getTabbedTextOffset(this.text, this.metrics, var6.x, (int)var1, this.expander, var4);
- return var4 + var7;
- }
-
- int getBreakWeight(int var1, float var2, float var3, int var4, int var5) {
- if (var1 != 0) {
- return super.getBreakWeight(var1, var2, var3);
- } else {
- this.sync();
- this.loadText(var4, var5);
- int var6 = Utilities.getTabbedTextOffset(this.text, this.metrics, (int)var2, (int)(var2 + var3), this.expander, var4);
- if (var6 == 0) {
- return 0;
- } else {
- for(int var7 = this.text.offset + Math.min(var6, this.text.count - 1); var7 >= this.text.offset; --var7) {
- char var8 = this.text.array[var7];
- if (Character.isWhitespace(var8)) {
- return 2000;
- }
- }
-
- return 1000;
- }
- }
- }
-
- public float getTabbedSpan(float var1, TabExpander var2) {
- this.expander = var2;
- this.field_1 = (int)var1;
- return this.getPreferredSpan(0, ((View)this).getStartOffset(), ((View)this).getEndOffset(), this.field_1);
- }
-
- public float getPartialSpan(int var1, int var2) {
- int var3 = 0;
-
- try {
- Segment var4 = new Segment();
- ((View)this).getDocument().getText(var1, var2, var4);
- var3 = Utilities.getTabbedTextWidth(var4, this.metrics, this.field_1, this.expander, var1);
- } catch (BadLocationException var5) {
- }
-
- return (float)var3;
- }
-
- public void paint(Graphics var1, Shape var2) {
- this.paintText(var1, var2, ((View)this).getStartOffset(), ((View)this).getEndOffset());
- }
-
- public float getPreferredSpan(int var1) {
- return this.getPreferredSpan(var1, ((View)this).getStartOffset(), ((View)this).getEndOffset(), this.field_1);
- }
-
- public float getAlignment(int var1) {
- if (var1 == 1) {
- float var2 = (float)this.metrics.getHeight();
- float var3 = (float)this.metrics.getDescent();
- float var4 = (var2 - var3) / var2;
- return var4;
- } else {
- return super.getAlignment(var1);
- }
- }
-
- public Shape modelToView(int var1, Shape var2) throws BadLocationException {
- return this.modelToView(var1, var2, ((View)this).getStartOffset(), ((View)this).getEndOffset());
- }
-
- public int viewToModel(float var1, float var2, Shape var3) {
- return this.viewToModel(var1, var2, var3, ((View)this).getStartOffset(), ((View)this).getEndOffset());
- }
-
- public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- this.font = null;
- }
-
- public int getBreakWeight(int var1, float var2, float var3) {
- return this.getBreakWeight(var1, var2, var3, ((View)this).getStartOffset(), ((View)this).getEndOffset());
- }
-
- public View breakView(int var1, int var2, float var3, float var4) {
- if (var1 != 0) {
- return this;
- } else {
- this.sync();
- this.loadText(var2, ((View)this).getEndOffset());
- int var5 = Utilities.getTabbedTextOffset(this.text, this.metrics, (int)var3, (int)(var3 + var4), this.expander, var2);
-
- for(int var6 = this.text.offset + Math.min(var5, this.text.count - 1); var6 >= this.text.offset; --var6) {
- char var7 = this.text.array[var6];
- if (Character.isWhitespace(var7)) {
- var5 = var6 - this.text.offset + 1;
- break;
- }
- }
-
- int var8 = var2 + var5;
- return new LabelFragment(this, ((View)this).getElement(), var2, var8);
- }
- }
-
- public View createFragment(int var1, int var2) {
- Element var3 = ((View)this).getElement();
- return new LabelFragment(this, var3, var1, var2);
- }
- }
-