home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / text / FieldView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  3.1 KB  |  124 lines

  1. package com.sun.java.swing.text;
  2.  
  3. import com.sun.java.swing.BoundedRangeModel;
  4. import com.sun.java.swing.JTextField;
  5. import com.sun.java.swing.event.DocumentEvent;
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.FontMetrics;
  9. import java.awt.Graphics;
  10. import java.awt.Rectangle;
  11. import java.awt.Shape;
  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 var9 = ((View)this).getContainer();
  35.          if (var9 instanceof JTextField) {
  36.             JTextField var6 = (JTextField)var9;
  37.             BoundedRangeModel var7 = var6.getHorizontalVisibility();
  38.             var7.setMaximum(Math.max(var4, var2.width));
  39.             var7.setExtent(var2.width - 1);
  40.             if (var4 < var2.width) {
  41.                int var8 = var2.width - 1 - var4;
  42.                switch (((JTextField)var9).getHorizontalAlignment()) {
  43.                   case 0:
  44.                      var2.x += var8 / 2;
  45.                      var2.width -= var8;
  46.                      break;
  47.                   case 4:
  48.                      var2.x += var8;
  49.                      var2.width -= var8;
  50.                }
  51.             } else {
  52.                var2.width = var4;
  53.                var2.x -= var7.getValue();
  54.             }
  55.          }
  56.  
  57.          return var2;
  58.       } else {
  59.          return null;
  60.       }
  61.    }
  62.  
  63.    void updateVisibilityModel() {
  64.       Container var1 = ((View)this).getContainer();
  65.       if (var1 instanceof JTextField) {
  66.          JTextField var2 = (JTextField)var1;
  67.          BoundedRangeModel var3 = var2.getHorizontalVisibility();
  68.          int var4 = (int)this.getPreferredSpan(0);
  69.          int var5 = var3.getExtent();
  70.          int var6 = Math.max(var4, var5);
  71.          var5 = var5 == 0 ? var6 : var5;
  72.          int var7 = var6 - var5;
  73.          var3.setRangeProperties(var7, var5, 0, var6, false);
  74.       }
  75.  
  76.    }
  77.  
  78.    public void paint(Graphics var1, Shape var2) {
  79.       super.paint(var1, this.adjustAllocation(var2));
  80.    }
  81.  
  82.    public float getPreferredSpan(int var1) {
  83.       switch (var1) {
  84.          case 0:
  85.             Segment var2 = ((PlainView)this).getLineBuffer();
  86.             Document var3 = ((View)this).getDocument();
  87.  
  88.             int var4;
  89.             try {
  90.                var3.getText(0, var3.getLength(), var2);
  91.                var4 = Utilities.getTabbedTextWidth(var2, this.getFontMetrics(), 0, this, 0);
  92.             } catch (BadLocationException var5) {
  93.                var4 = 0;
  94.             }
  95.  
  96.             return (float)var4;
  97.          default:
  98.             return super.getPreferredSpan(var1);
  99.       }
  100.    }
  101.  
  102.    public int getResizeWeight(int var1) {
  103.       return var1 == 0 ? 1 : 0;
  104.    }
  105.  
  106.    public Shape modelToView(int var1, Shape var2) throws BadLocationException {
  107.       return super.modelToView(var1, this.adjustAllocation(var2));
  108.    }
  109.  
  110.    public int viewToModel(float var1, float var2, Shape var3) {
  111.       return super.viewToModel(var1, var2, this.adjustAllocation(var3));
  112.    }
  113.  
  114.    public void insertUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  115.       super.insertUpdate(var1, this.adjustAllocation(var2), var3);
  116.       this.updateVisibilityModel();
  117.    }
  118.  
  119.    public void removeUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  120.       super.removeUpdate(var1, this.adjustAllocation(var2), var3);
  121.       this.updateVisibilityModel();
  122.    }
  123. }
  124.