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

  1. package javax.swing.text;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.Rectangle;
  8. import java.awt.Shape;
  9. import javax.swing.BoundedRangeModel;
  10. import javax.swing.JTextField;
  11. import javax.swing.event.DocumentEvent;
  12.  
  13. public class FieldView extends PlainView {
  14.    public FieldView(Element var1) {
  15.       super(var1);
  16.    }
  17.  
  18.    protected FontMetrics getFontMetrics() {
  19.       Container var1 = ((View)this).getContainer();
  20.       return ((Component)var1).getFontMetrics(((Component)var1).getFont());
  21.    }
  22.  
  23.    protected Shape adjustAllocation(Shape var1) {
  24.       if (var1 != null) {
  25.          Rectangle var2 = var1.getBounds();
  26.          int var3 = (int)this.getPreferredSpan(1);
  27.          int var4 = (int)this.getPreferredSpan(0);
  28.          if (var2.height != var3) {
  29.             int var5 = var2.height - var3;
  30.             var2.y += var5 / 2;
  31.             var2.height -= var5;
  32.          }
  33.  
  34.          Container var13 = ((View)this).getContainer();
  35.          if (var13 instanceof JTextField) {
  36.             JTextField var6 = (JTextField)var13;
  37.             BoundedRangeModel var7 = var6.getHorizontalVisibility();
  38.             int var8 = Math.max(var4, var2.width);
  39.             int var9 = var7.getValue();
  40.             int var10 = Math.min(var8, var2.width - 1);
  41.             if (var9 + var10 > var8) {
  42.                var9 = var8 - var10;
  43.             }
  44.  
  45.             var7.setRangeProperties(var9, var10, var7.getMinimum(), var8, false);
  46.             if (var4 < var2.width) {
  47.                int var11 = var2.width - 1 - var4;
  48.                int var12 = ((JTextField)var13).getHorizontalAlignment();
  49.                if (Utilities.isLeftToRight(var13)) {
  50.                   if (var12 == 10) {
  51.                      var12 = 2;
  52.                   } else if (var12 == 11) {
  53.                      var12 = 4;
  54.                   }
  55.                } else if (var12 == 10) {
  56.                   var12 = 4;
  57.                } else if (var12 == 11) {
  58.                   var12 = 2;
  59.                }
  60.  
  61.                switch (var12) {
  62.                   case 0:
  63.                      var2.x += var11 / 2;
  64.                      var2.width -= var11;
  65.                      break;
  66.                   case 4:
  67.                      var2.x += var11;
  68.                      var2.width -= var11;
  69.                }
  70.             } else {
  71.                var2.width = var4;
  72.                var2.x -= var7.getValue();
  73.             }
  74.          }
  75.  
  76.          return var2;
  77.       } else {
  78.          return null;
  79.       }
  80.    }
  81.  
  82.    void updateVisibilityModel() {
  83.       Container var1 = ((View)this).getContainer();
  84.       if (var1 instanceof JTextField) {
  85.          JTextField var2 = (JTextField)var1;
  86.          BoundedRangeModel var3 = var2.getHorizontalVisibility();
  87.          int var4 = (int)this.getPreferredSpan(0);
  88.          int var5 = var3.getExtent();
  89.          int var6 = Math.max(var4, var5);
  90.          var5 = var5 == 0 ? var6 : var5;
  91.          int var7 = var6 - var5;
  92.          int var8 = var3.getValue();
  93.          if (var8 + var5 > var6) {
  94.             var8 = var6 - var5;
  95.          }
  96.  
  97.          var7 = Math.max(0, Math.min(var7, var8));
  98.          var3.setRangeProperties(var7, var5, 0, var6, false);
  99.       }
  100.  
  101.    }
  102.  
  103.    public void paint(Graphics var1, Shape var2) {
  104.       Rectangle var3 = (Rectangle)var2;
  105.       var1.clipRect(var3.x, var3.y, var3.width, var3.height);
  106.       super.paint(var1, var2);
  107.    }
  108.  
  109.    Shape adjustPaintRegion(Shape var1) {
  110.       return this.adjustAllocation(var1);
  111.    }
  112.  
  113.    public float getPreferredSpan(int var1) {
  114.       switch (var1) {
  115.          case 0:
  116.             Segment var2 = ((PlainView)this).getLineBuffer();
  117.             Document var3 = ((View)this).getDocument();
  118.  
  119.             int var4;
  120.             try {
  121.                var3.getText(0, var3.getLength(), var2);
  122.                var4 = Utilities.getTabbedTextWidth(var2, this.getFontMetrics(), 0, this, 0);
  123.             } catch (BadLocationException var6) {
  124.                var4 = 0;
  125.             }
  126.  
  127.             return (float)var4;
  128.          default:
  129.             return super.getPreferredSpan(var1);
  130.       }
  131.    }
  132.  
  133.    public int getResizeWeight(int var1) {
  134.       return var1 == 0 ? 1 : 0;
  135.    }
  136.  
  137.    public Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException {
  138.       return super.modelToView(var1, this.adjustAllocation(var2), var3);
  139.    }
  140.  
  141.    public int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4) {
  142.       return super.viewToModel(var1, var2, this.adjustAllocation(var3), var4);
  143.    }
  144.  
  145.    public void insertUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  146.       super.insertUpdate(var1, this.adjustAllocation(var2), var3);
  147.       this.updateVisibilityModel();
  148.    }
  149.  
  150.    public void removeUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  151.       super.removeUpdate(var1, this.adjustAllocation(var2), var3);
  152.       this.updateVisibilityModel();
  153.    }
  154. }
  155.