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 / View.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  7.3 KB  |  382 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.Point;
  7. import java.awt.Rectangle;
  8. import java.awt.Shape;
  9. import javax.swing.SwingConstants;
  10. import javax.swing.event.DocumentEvent;
  11. import javax.swing.event.DocumentEvent.EventType;
  12. import javax.swing.text.Position.Bias;
  13.  
  14. public abstract class View implements SwingConstants {
  15.    public static final int BadBreakWeight = 0;
  16.    public static final int GoodBreakWeight = 1000;
  17.    public static final int ExcellentBreakWeight = 2000;
  18.    public static final int ForcedBreakWeight = 3000;
  19.    public static final int X_AXIS = 0;
  20.    public static final int Y_AXIS = 1;
  21.    static final Position.Bias[] sharedBiasReturn = new Position.Bias[1];
  22.    private View parent;
  23.    private Element elem;
  24.  
  25.    public View(Element var1) {
  26.       this.elem = var1;
  27.    }
  28.  
  29.    public View getParent() {
  30.       return this.parent;
  31.    }
  32.  
  33.    public boolean isVisible() {
  34.       return true;
  35.    }
  36.  
  37.    public abstract float getPreferredSpan(int var1);
  38.  
  39.    public float getMinimumSpan(int var1) {
  40.       int var2 = this.getResizeWeight(var1);
  41.       return var2 == 0 ? this.getPreferredSpan(var1) : 0.0F;
  42.    }
  43.  
  44.    public float getMaximumSpan(int var1) {
  45.       int var2 = this.getResizeWeight(var1);
  46.       return var2 == 0 ? this.getPreferredSpan(var1) : (float)Integer.MAX_VALUE;
  47.    }
  48.  
  49.    public void preferenceChanged(View var1, boolean var2, boolean var3) {
  50.       View var4 = this.getParent();
  51.       if (var4 != null) {
  52.          var4.preferenceChanged(this, var2, var3);
  53.       }
  54.  
  55.    }
  56.  
  57.    public float getAlignment(int var1) {
  58.       return 0.5F;
  59.    }
  60.  
  61.    public abstract void paint(Graphics var1, Shape var2);
  62.  
  63.    public void setParent(View var1) {
  64.       this.parent = var1;
  65.    }
  66.  
  67.    public int getViewCount() {
  68.       return 0;
  69.    }
  70.  
  71.    public View getView(int var1) {
  72.       return null;
  73.    }
  74.  
  75.    public void removeAll() {
  76.       this.replace(0, this.getViewCount(), (View[])null);
  77.    }
  78.  
  79.    public void remove(int var1) {
  80.       this.replace(var1, 1, (View[])null);
  81.    }
  82.  
  83.    public void insert(int var1, View var2) {
  84.       View[] var3 = new View[]{var2};
  85.       this.replace(var1, 0, var3);
  86.    }
  87.  
  88.    public void append(View var1) {
  89.       View[] var2 = new View[]{var1};
  90.       this.replace(this.getViewCount(), 0, var2);
  91.    }
  92.  
  93.    public void replace(int var1, int var2, View[] var3) {
  94.    }
  95.  
  96.    public int getViewIndex(int var1, Position.Bias var2) {
  97.       return -1;
  98.    }
  99.  
  100.    public Shape getChildAllocation(int var1, Shape var2) {
  101.       return null;
  102.    }
  103.  
  104.    public int getNextVisualPositionFrom(int var1, Position.Bias var2, Shape var3, int var4, Position.Bias[] var5) throws BadLocationException {
  105.       var5[0] = Bias.Forward;
  106.       switch (var4) {
  107.          case 1:
  108.          case 5:
  109.             JTextComponent var6 = (JTextComponent)this.getContainer();
  110.             Caret var7 = var6 != null ? var6.getCaret() : null;
  111.             Point var8;
  112.             if (var7 != null) {
  113.                var8 = var7.getMagicCaretPosition();
  114.             } else {
  115.                var8 = null;
  116.             }
  117.  
  118.             int var9;
  119.             if (var8 == null) {
  120.                Rectangle var10 = var6.modelToView(var1);
  121.                var9 = var10 == null ? 0 : var10.x;
  122.             } else {
  123.                var9 = var8.x;
  124.             }
  125.  
  126.             if (var4 == 1) {
  127.                var1 = Utilities.getPositionAbove(var6, var1, var9);
  128.             } else {
  129.                var1 = Utilities.getPositionBelow(var6, var1, var9);
  130.             }
  131.             break;
  132.          case 2:
  133.          case 4:
  134.          case 6:
  135.          default:
  136.             throw new IllegalArgumentException("Bad direction: " + var4);
  137.          case 3:
  138.             if (var1 == -1) {
  139.                var1 = this.getStartOffset();
  140.             } else {
  141.                var1 = Math.min(var1 + 1, this.getDocument().getLength());
  142.             }
  143.             break;
  144.          case 7:
  145.             if (var1 == -1) {
  146.                var1 = Math.max(0, this.getEndOffset() - 1);
  147.             } else {
  148.                var1 = Math.max(0, var1 - 1);
  149.             }
  150.       }
  151.  
  152.       return var1;
  153.    }
  154.  
  155.    public abstract Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException;
  156.  
  157.    public Shape modelToView(int var1, Position.Bias var2, int var3, Position.Bias var4, Shape var5) throws BadLocationException {
  158.       Shape var6 = this.modelToView(var1, var5, var2);
  159.       Object var7;
  160.       if (var3 == this.getEndOffset()) {
  161.          try {
  162.             var7 = this.modelToView(var3, var5, var4);
  163.          } catch (BadLocationException var11) {
  164.             var7 = null;
  165.          }
  166.  
  167.          if (var7 == null) {
  168.             Rectangle var8 = var5 instanceof Rectangle ? (Rectangle)var5 : var5.getBounds();
  169.             var7 = new Rectangle(var8.x + var8.width - 1, var8.y, 1, var8.height);
  170.          }
  171.       } else {
  172.          var7 = this.modelToView(var3, var5, var4);
  173.       }
  174.  
  175.       Rectangle var12 = var6.getBounds();
  176.       Rectangle var9 = var7 instanceof Rectangle ? (Rectangle)var7 : ((Shape)var7).getBounds();
  177.       if (var12.y != var9.y) {
  178.          Rectangle var10 = var5 instanceof Rectangle ? (Rectangle)var5 : var5.getBounds();
  179.          var12.x = var10.x;
  180.          var12.width = var10.width;
  181.       }
  182.  
  183.       var12.add(var9);
  184.       return var12;
  185.    }
  186.  
  187.    public abstract int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4);
  188.  
  189.    public void insertUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  190.       if (this.getViewCount() > 0) {
  191.          Element var4 = this.getElement();
  192.          DocumentEvent.ElementChange var5 = var1.getChange(var4);
  193.          if (var5 != null && !this.updateChildren(var5, var1, var3)) {
  194.             var5 = null;
  195.          }
  196.  
  197.          this.forwardUpdate(var5, var1, var2, var3);
  198.          this.updateLayout(var5, var1, var2);
  199.       }
  200.  
  201.    }
  202.  
  203.    public void removeUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  204.       if (this.getViewCount() > 0) {
  205.          Element var4 = this.getElement();
  206.          DocumentEvent.ElementChange var5 = var1.getChange(var4);
  207.          if (var5 != null && !this.updateChildren(var5, var1, var3)) {
  208.             var5 = null;
  209.          }
  210.  
  211.          this.forwardUpdate(var5, var1, var2, var3);
  212.          this.updateLayout(var5, var1, var2);
  213.       }
  214.  
  215.    }
  216.  
  217.    public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  218.       if (this.getViewCount() > 0) {
  219.          Element var4 = this.getElement();
  220.          DocumentEvent.ElementChange var5 = var1.getChange(var4);
  221.          if (var5 != null && !this.updateChildren(var5, var1, var3)) {
  222.             var5 = null;
  223.          }
  224.  
  225.          this.forwardUpdate(var5, var1, var2, var3);
  226.          this.updateLayout(var5, var1, var2);
  227.       }
  228.  
  229.    }
  230.  
  231.    public Document getDocument() {
  232.       return this.elem.getDocument();
  233.    }
  234.  
  235.    public int getStartOffset() {
  236.       return this.elem.getStartOffset();
  237.    }
  238.  
  239.    public int getEndOffset() {
  240.       return this.elem.getEndOffset();
  241.    }
  242.  
  243.    public Element getElement() {
  244.       return this.elem;
  245.    }
  246.  
  247.    public Graphics getGraphics() {
  248.       Container var1 = this.getContainer();
  249.       return ((Component)var1).getGraphics();
  250.    }
  251.  
  252.    public AttributeSet getAttributes() {
  253.       return this.elem.getAttributes();
  254.    }
  255.  
  256.    public View breakView(int var1, int var2, float var3, float var4) {
  257.       return this;
  258.    }
  259.  
  260.    public View createFragment(int var1, int var2) {
  261.       return this;
  262.    }
  263.  
  264.    public int getBreakWeight(int var1, float var2, float var3) {
  265.       return var3 > this.getPreferredSpan(var1) ? 1000 : 0;
  266.    }
  267.  
  268.    public int getResizeWeight(int var1) {
  269.       return 0;
  270.    }
  271.  
  272.    public void setSize(float var1, float var2) {
  273.    }
  274.  
  275.    public Container getContainer() {
  276.       View var1 = this.getParent();
  277.       return var1 != null ? var1.getContainer() : null;
  278.    }
  279.  
  280.    public ViewFactory getViewFactory() {
  281.       View var1 = this.getParent();
  282.       return var1 != null ? var1.getViewFactory() : null;
  283.    }
  284.  
  285.    protected boolean updateChildren(DocumentEvent.ElementChange var1, DocumentEvent var2, ViewFactory var3) {
  286.       Element[] var4 = var1.getChildrenRemoved();
  287.       Element[] var5 = var1.getChildrenAdded();
  288.       View[] var6 = null;
  289.       if (var5 != null) {
  290.          var6 = new View[var5.length];
  291.  
  292.          for(int var7 = 0; var7 < var5.length; ++var7) {
  293.             var6[var7] = var3.create(var5[var7]);
  294.          }
  295.       }
  296.  
  297.       int var9 = 0;
  298.       int var8 = var1.getIndex();
  299.       if (var4 != null) {
  300.          var9 = var4.length;
  301.       }
  302.  
  303.       this.replace(var8, var9, var6);
  304.       return true;
  305.    }
  306.  
  307.    protected void forwardUpdate(DocumentEvent.ElementChange var1, DocumentEvent var2, Shape var3, ViewFactory var4) {
  308.       Element var5 = this.getElement();
  309.       int var6 = var2.getOffset();
  310.       int var7 = this.getViewIndex(var6, Bias.Forward);
  311.       if (var7 == -1 && var2.getType() == EventType.REMOVE && var6 >= this.getEndOffset()) {
  312.          var7 = this.getViewCount() - 1;
  313.       }
  314.  
  315.       int var8 = var7;
  316.       View var9 = var7 >= 0 ? this.getView(var7) : null;
  317.       if (var9 != null && var9.getStartOffset() == var6 && var6 > 0) {
  318.          var7 = Math.max(var7 - 1, 0);
  319.       }
  320.  
  321.       if (var2.getType() != EventType.REMOVE) {
  322.          var8 = this.getViewIndex(var6 + var2.getLength(), Bias.Forward);
  323.          if (var8 < 0) {
  324.             var8 = this.getViewCount() - 1;
  325.          }
  326.       }
  327.  
  328.       int var10 = var8 + 1;
  329.       int var11 = var10;
  330.       Element[] var12 = var1 != null ? var1.getChildrenAdded() : null;
  331.       if (var12 != null && var12.length > 0) {
  332.          var10 = var1.getIndex();
  333.          var11 = var10 + var12.length - 1;
  334.       }
  335.  
  336.       var7 = Math.max(var7, 0);
  337.  
  338.       for(int var13 = var7; var13 <= var8; ++var13) {
  339.          if (var13 < var10 || var13 > var11) {
  340.             var9 = this.getView(var13);
  341.             if (var9 != null) {
  342.                Shape var14 = this.getChildAllocation(var13, var3);
  343.                this.forwardUpdateToView(var9, var2, var14, var4);
  344.             }
  345.          }
  346.       }
  347.  
  348.    }
  349.  
  350.    protected void forwardUpdateToView(View var1, DocumentEvent var2, Shape var3, ViewFactory var4) {
  351.       DocumentEvent.EventType var5 = var2.getType();
  352.       if (var5 == EventType.INSERT) {
  353.          var1.insertUpdate(var2, var3, var4);
  354.       } else if (var5 == EventType.REMOVE) {
  355.          var1.removeUpdate(var2, var3, var4);
  356.       } else {
  357.          var1.changedUpdate(var2, var3, var4);
  358.       }
  359.  
  360.    }
  361.  
  362.    protected void updateLayout(DocumentEvent.ElementChange var1, DocumentEvent var2, Shape var3) {
  363.       if (var1 != null && var3 != null) {
  364.          this.preferenceChanged((View)null, true, true);
  365.          Container var4 = this.getContainer();
  366.          if (var4 != null) {
  367.             ((Component)var4).repaint();
  368.          }
  369.       }
  370.  
  371.    }
  372.  
  373.    public Shape modelToView(int var1, Shape var2) throws BadLocationException {
  374.       return this.modelToView(var1, var2, Bias.Forward);
  375.    }
  376.  
  377.    public int viewToModel(float var1, float var2, Shape var3) {
  378.       sharedBiasReturn[0] = Bias.Forward;
  379.       return this.viewToModel(var1, var2, var3, sharedBiasReturn);
  380.    }
  381. }
  382.