home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / text / FieldView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  3.2 KB  |  134 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 Shape adjustAllocation(Shape var1) {
  19.       if (var1 != null) {
  20.          Rectangle var2 = var1.getBounds();
  21.          int var3 = (int)this.getPreferredSpan(1);
  22.          int var4 = (int)this.getPreferredSpan(0);
  23.          if (var2.height != var3) {
  24.             int var5 = var2.height - var3;
  25.             var2.y += var5 / 2;
  26.             var2.height -= var5;
  27.          }
  28.  
  29.          Container var9 = ((View)this).getContainer();
  30.          if (var9 instanceof JTextField) {
  31.             JTextField var6 = (JTextField)var9;
  32.             BoundedRangeModel var7 = var6.getHorizontalVisibility();
  33.             var7.setMaximum(Math.max(var4, var2.width));
  34.             var7.setExtent(var2.width - 1);
  35.             if (var4 < var2.width) {
  36.                int var8 = var2.width - 1 - var4;
  37.                switch (((JTextField)var9).getHorizontalAlignment()) {
  38.                   case 0:
  39.                      var2.x += var8 / 2;
  40.                      var2.width -= var8;
  41.                   case 1:
  42.                   case 2:
  43.                   case 3:
  44.                   default:
  45.                      break;
  46.                   case 4:
  47.                      var2.x += var8;
  48.                      var2.width -= var8;
  49.                }
  50.             } else {
  51.                var2.width = var4;
  52.                var2.x -= var7.getValue();
  53.             }
  54.          }
  55.  
  56.          return var2;
  57.       } else {
  58.          return null;
  59.       }
  60.    }
  61.  
  62.    Shape adjustPaintRegion(Shape var1) {
  63.       return this.adjustAllocation(var1);
  64.    }
  65.  
  66.    protected FontMetrics getFontMetrics() {
  67.       Container var1 = ((View)this).getContainer();
  68.       return ((Component)var1).getFontMetrics(((Component)var1).getFont());
  69.    }
  70.  
  71.    public float getPreferredSpan(int var1) {
  72.       switch (var1) {
  73.          case 0:
  74.             Segment var2 = ((PlainView)this).getLineBuffer();
  75.             Document var3 = ((View)this).getDocument();
  76.  
  77.             int var4;
  78.             try {
  79.                var3.getText(0, var3.getLength(), var2);
  80.                var4 = Utilities.getTabbedTextWidth(var2, this.getFontMetrics(), 0, this, 0);
  81.             } catch (BadLocationException var5) {
  82.                var4 = 0;
  83.             }
  84.  
  85.             return (float)var4;
  86.          default:
  87.             return super.getPreferredSpan(var1);
  88.       }
  89.    }
  90.  
  91.    public int getResizeWeight(int var1) {
  92.       return var1 == 0 ? 1 : 0;
  93.    }
  94.  
  95.    public void insertUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  96.       super.insertUpdate(var1, this.adjustAllocation(var2), var3);
  97.       this.updateVisibilityModel();
  98.    }
  99.  
  100.    public Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException {
  101.       return super.modelToView(var1, this.adjustAllocation(var2), var3);
  102.    }
  103.  
  104.    public void paint(Graphics var1, Shape var2) {
  105.       Rectangle var3 = (Rectangle)var2;
  106.       var1.clipRect(var3.x, var3.y, var3.width, var3.height);
  107.       super.paint(var1, var2);
  108.    }
  109.  
  110.    public void removeUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  111.       super.removeUpdate(var1, this.adjustAllocation(var2), var3);
  112.       this.updateVisibilityModel();
  113.    }
  114.  
  115.    void updateVisibilityModel() {
  116.       Container var1 = ((View)this).getContainer();
  117.       if (var1 instanceof JTextField) {
  118.          JTextField var2 = (JTextField)var1;
  119.          BoundedRangeModel var3 = var2.getHorizontalVisibility();
  120.          int var4 = (int)this.getPreferredSpan(0);
  121.          int var5 = var3.getExtent();
  122.          int var6 = Math.max(var4, var5);
  123.          var5 = var5 == 0 ? var6 : var5;
  124.          int var7 = var6 - var5;
  125.          var3.setRangeProperties(var7, var5, 0, var6, false);
  126.       }
  127.  
  128.    }
  129.  
  130.    public int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4) {
  131.       return super.viewToModel(var1, var2, this.adjustAllocation(var3), var4);
  132.    }
  133. }
  134.