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 / WrappedPlainView$WrappedLine.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.9 KB  |  169 lines

  1. package javax.swing.text;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Graphics;
  6. import java.awt.Rectangle;
  7. import java.awt.Shape;
  8. import javax.swing.event.DocumentEvent;
  9. import javax.swing.text.Position.Bias;
  10.  
  11. class WrappedPlainView$WrappedLine extends View {
  12.    int nlines;
  13.    // $FF: synthetic field
  14.    private final WrappedPlainView this$0;
  15.  
  16.    WrappedPlainView$WrappedLine(WrappedPlainView var1, Element var2) {
  17.       super(var2);
  18.       this.this$0 = var1;
  19.    }
  20.  
  21.    final int calculateLineCount() {
  22.       int var1 = 0;
  23.       int var2 = ((View)this).getEndOffset();
  24.  
  25.       int var4;
  26.       for(int var3 = ((View)this).getStartOffset(); var3 < var2; var3 = var4 == var3 ? var2 : var4) {
  27.          ++var1;
  28.          var4 = this.this$0.calculateBreakPosition(var3, var2);
  29.       }
  30.  
  31.       return var1;
  32.    }
  33.  
  34.    public float getPreferredSpan(int var1) {
  35.       switch (var1) {
  36.          case 0:
  37.             return (float)this.this$0.getWidth();
  38.          case 1:
  39.             if (this.nlines == 0 || this.this$0.widthChanging) {
  40.                this.nlines = this.calculateLineCount();
  41.             }
  42.  
  43.             int var2 = this.nlines * this.this$0.metrics.getHeight();
  44.             return (float)var2;
  45.          default:
  46.             throw new IllegalArgumentException("Invalid axis: " + var1);
  47.       }
  48.    }
  49.  
  50.    public void paint(Graphics var1, Shape var2) {
  51.       Rectangle var3 = (Rectangle)var2;
  52.       int var4 = var3.y + this.this$0.metrics.getAscent();
  53.       int var5 = var3.x;
  54.       JTextComponent var6 = (JTextComponent)((View)this).getContainer();
  55.       Highlighter var7 = var6.getHighlighter();
  56.       LayeredHighlighter var8 = var7 instanceof LayeredHighlighter ? (LayeredHighlighter)var7 : null;
  57.       int var9 = ((View)this).getEndOffset();
  58.  
  59.       for(int var10 = ((View)this).getStartOffset(); var10 < var9; var4 += this.this$0.metrics.getHeight()) {
  60.          int var11 = this.this$0.calculateBreakPosition(var10, var9);
  61.          if (var8 != null) {
  62.             if (var11 == var9) {
  63.                var8.paintLayeredHighlights(var1, var10, var11 - 1, var2, var6, this);
  64.             } else {
  65.                var8.paintLayeredHighlights(var1, var10, var11, var2, var6, this);
  66.             }
  67.          }
  68.  
  69.          this.this$0.drawLine(var10, var11, var1, var5, var4);
  70.          var10 = var11 == var10 ? var9 : var11;
  71.       }
  72.  
  73.    }
  74.  
  75.    public Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException {
  76.       Rectangle var4 = var2.getBounds();
  77.       var4.height = this.this$0.metrics.getHeight();
  78.       var4.width = 1;
  79.       int var5 = ((View)this).getEndOffset();
  80.       int var6 = ((View)this).getStartOffset();
  81.  
  82.       for(int var7 = var3 == Bias.Forward ? var1 : Math.max(var6, var1 - 1); var6 < var5; var4.y += var4.height) {
  83.          int var8 = this.this$0.calculateBreakPosition(var6, var5);
  84.          if (var1 >= var6 && var7 < var8) {
  85.             this.this$0.loadText(var6, var1);
  86.             var4.x += Utilities.getTabbedTextWidth(this.this$0.lineBuffer, this.this$0.metrics, var4.x, this.this$0, var6);
  87.             return var4;
  88.          }
  89.  
  90.          if (var8 == var5 && var1 == var5) {
  91.             if (var1 > var6) {
  92.                this.this$0.loadText(var6, var1);
  93.                var4.x += Utilities.getTabbedTextWidth(this.this$0.lineBuffer, this.this$0.metrics, var4.x, this.this$0, var6);
  94.             }
  95.  
  96.             return var4;
  97.          }
  98.  
  99.          var6 = var8 == var6 ? var5 : var8;
  100.       }
  101.  
  102.       throw new BadLocationException((String)null, var1);
  103.    }
  104.  
  105.    public int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4) {
  106.       var4[0] = Bias.Forward;
  107.       Rectangle var5 = (Rectangle)var3;
  108.       Document var6 = ((View)this).getDocument();
  109.       int var7 = (int)var1;
  110.       int var8 = (int)var2;
  111.       if (var8 < var5.y) {
  112.          return ((View)this).getStartOffset();
  113.       } else if (var8 > var5.y + var5.height) {
  114.          return ((View)this).getEndOffset() - 1;
  115.       } else {
  116.          var5.height = this.this$0.metrics.getHeight();
  117.          int var9 = ((View)this).getEndOffset();
  118.  
  119.          for(int var10 = ((View)this).getStartOffset(); var10 < var9; var5.y += var5.height) {
  120.             int var11 = this.this$0.calculateBreakPosition(var10, var9);
  121.             if (var8 >= var5.y && var8 < var5.y + var5.height) {
  122.                if (var7 < var5.x) {
  123.                   return var10;
  124.                }
  125.  
  126.                if (var7 > var5.x + var5.width) {
  127.                   return var11;
  128.                }
  129.  
  130.                int var12 = Utilities.getTabbedTextOffset(this.this$0.lineBuffer, this.this$0.metrics, var5.x, var7, this.this$0, var10);
  131.                return Math.min(var10 + var12, var9 - 1);
  132.             }
  133.  
  134.             var10 = var11 == var10 ? var9 : var11;
  135.          }
  136.  
  137.          return ((View)this).getEndOffset() - 1;
  138.       }
  139.    }
  140.  
  141.    public void insertUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  142.       int var4 = this.calculateLineCount();
  143.       if (this.nlines != var4) {
  144.          this.nlines = var4;
  145.          this.this$0.preferenceChanged(this, false, true);
  146.          ((View)this).getContainer().repaint();
  147.       } else if (var2 != null) {
  148.          Container var5 = ((View)this).getContainer();
  149.          Rectangle var6 = (Rectangle)var2;
  150.          ((Component)var5).repaint(var6.x, var6.y, var6.width, var6.height);
  151.       }
  152.  
  153.    }
  154.  
  155.    public void removeUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  156.       int var4 = this.calculateLineCount();
  157.       if (this.nlines != var4) {
  158.          this.nlines = var4;
  159.          this.this$0.preferenceChanged(this, false, true);
  160.          ((View)this).getContainer().repaint();
  161.       } else if (var2 != null) {
  162.          Container var5 = ((View)this).getContainer();
  163.          Rectangle var6 = (Rectangle)var2;
  164.          ((Component)var5).repaint(var6.x, var6.y, var6.width, var6.height);
  165.       }
  166.  
  167.    }
  168. }
  169.