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

  1. package javax.swing.text;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Rectangle;
  9. import java.awt.Shape;
  10. import java.awt.Toolkit;
  11. import javax.swing.text.Position.Bias;
  12.  
  13. class GlyphPainter1 extends GlyphView.GlyphPainter {
  14.    FontMetrics metrics;
  15.  
  16.    public float getSpan(GlyphView var1, int var2, int var3, TabExpander var4, float var5) {
  17.       this.sync(var1);
  18.       Segment var6 = var1.getText(var2, var3);
  19.       int var7 = Utilities.getTabbedTextWidth(var6, this.metrics, (int)var5, var4, var2);
  20.       return (float)var7;
  21.    }
  22.  
  23.    public float getHeight(GlyphView var1) {
  24.       this.sync(var1);
  25.       return (float)this.metrics.getHeight();
  26.    }
  27.  
  28.    public float getAscent(GlyphView var1) {
  29.       this.sync(var1);
  30.       return (float)this.metrics.getAscent();
  31.    }
  32.  
  33.    public float getDescent(GlyphView var1) {
  34.       this.sync(var1);
  35.       return (float)this.metrics.getDescent();
  36.    }
  37.  
  38.    public void paint(GlyphView var1, Graphics var2, Shape var3, int var4, int var5) {
  39.       this.sync(var1);
  40.       TabExpander var7 = var1.getTabExpander();
  41.       Rectangle var8 = var3 instanceof Rectangle ? (Rectangle)var3 : var3.getBounds();
  42.       int var9 = var8.x;
  43.       int var10 = var1.getStartOffset();
  44.       if (var10 != var4) {
  45.          Segment var6 = var1.getText(var10, var4);
  46.          int var11 = Utilities.getTabbedTextWidth(var6, this.metrics, var9, var7, var10);
  47.          var9 += var11;
  48.       }
  49.  
  50.       int var13 = var8.y + this.metrics.getHeight() - this.metrics.getDescent();
  51.       Segment var12 = var1.getText(var4, var5);
  52.       var2.setFont(this.metrics.getFont());
  53.       Utilities.drawTabbedText(var12, var9, var13, var2, var7, var4);
  54.    }
  55.  
  56.    public Shape modelToView(GlyphView var1, int var2, Position.Bias var3, Shape var4) throws BadLocationException {
  57.       this.sync(var1);
  58.       Rectangle var5 = var4 instanceof Rectangle ? (Rectangle)var4 : var4.getBounds();
  59.       int var6 = var1.getStartOffset();
  60.       int var7 = var1.getEndOffset();
  61.       TabExpander var8 = var1.getTabExpander();
  62.       if (var2 == var7) {
  63.          return new Rectangle(var5.x + var5.width, var5.y, 0, this.metrics.getHeight());
  64.       } else if (var2 >= var6 && var2 <= var7) {
  65.          Segment var9 = var1.getText(var6, var2);
  66.          int var10 = Utilities.getTabbedTextWidth(var9, this.metrics, var5.x, var8, var6);
  67.          return new Rectangle(var5.x + var10, var5.y, 0, this.metrics.getHeight());
  68.       } else {
  69.          throw new BadLocationException("modelToView - can't convert", var7);
  70.       }
  71.    }
  72.  
  73.    public int viewToModel(GlyphView var1, float var2, float var3, Shape var4, Position.Bias[] var5) {
  74.       this.sync(var1);
  75.       Rectangle var6 = var4 instanceof Rectangle ? (Rectangle)var4 : var4.getBounds();
  76.       int var7 = var1.getStartOffset();
  77.       int var8 = var1.getEndOffset();
  78.       TabExpander var9 = var1.getTabExpander();
  79.       Segment var10 = var1.getText(var7, var8);
  80.       int var11 = Utilities.getTabbedTextOffset(var10, this.metrics, var6.x, (int)var2, var9, var7);
  81.       int var12 = var7 + var11;
  82.       if (var12 == var8) {
  83.          var5[0] = Bias.Backward;
  84.       } else {
  85.          var5[0] = Bias.Forward;
  86.       }
  87.  
  88.       return var12;
  89.    }
  90.  
  91.    public int getBoundedPosition(GlyphView var1, int var2, float var3, float var4) {
  92.       this.sync(var1);
  93.       TabExpander var5 = var1.getTabExpander();
  94.       Segment var6 = var1.getText(var2, var1.getEndOffset());
  95.       int var7 = Utilities.getTabbedTextOffset(var6, this.metrics, (int)var3, (int)(var3 + var4), var5, var2, false);
  96.       int var8 = var2 + var7;
  97.       return var8;
  98.    }
  99.  
  100.    void sync(GlyphView var1) {
  101.       Font var2 = var1.getFont();
  102.       if (this.metrics == null || !var2.equals(this.metrics.getFont())) {
  103.          Container var4 = ((View)var1).getContainer();
  104.          Toolkit var3;
  105.          if (var4 != null) {
  106.             var3 = ((Component)var4).getToolkit();
  107.          } else {
  108.             var3 = Toolkit.getDefaultToolkit();
  109.          }
  110.  
  111.          this.metrics = var3.getFontMetrics(var2);
  112.       }
  113.  
  114.    }
  115. }
  116.