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 / AsyncBoxView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  6.2 KB  |  326 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.Shape;
  7. import javax.swing.event.DocumentEvent;
  8. import javax.swing.text.Position.Bias;
  9.  
  10. public class AsyncBoxView extends View {
  11.    int axis;
  12.    ChildVector stats = new ChildVector();
  13.    float majorSpan;
  14.    float minorSpan;
  15.    protected ChildLocator locator;
  16.    float topInset;
  17.    float bottomInset;
  18.    float leftInset;
  19.    float rightInset;
  20.    ChildState minRequest;
  21.    ChildState prefRequest;
  22.    boolean majorChanged;
  23.    boolean minorChanged;
  24.    Runnable flushTask;
  25.    ChildState changing;
  26.  
  27.    public AsyncBoxView(Element var1, int var2) {
  28.       super(var1);
  29.       this.axis = var2;
  30.       this.locator = new ChildLocator(this);
  31.       this.flushTask = new FlushTask(this);
  32.       this.minorSpan = 32767.0F;
  33.    }
  34.  
  35.    public int getMajorAxis() {
  36.       return this.axis;
  37.    }
  38.  
  39.    public int getMinorAxis() {
  40.       return this.axis == 0 ? 1 : 0;
  41.    }
  42.  
  43.    public float getTopInset() {
  44.       return this.topInset;
  45.    }
  46.  
  47.    public void setTopInset(float var1) {
  48.       this.topInset = var1;
  49.    }
  50.  
  51.    public float getBottomInset() {
  52.       return this.bottomInset;
  53.    }
  54.  
  55.    public void setBottomInset(float var1) {
  56.       this.bottomInset = var1;
  57.    }
  58.  
  59.    public float getLeftInset() {
  60.       return this.leftInset;
  61.    }
  62.  
  63.    public void setLeftInset(float var1) {
  64.       this.leftInset = var1;
  65.    }
  66.  
  67.    public float getRightInset() {
  68.       return this.rightInset;
  69.    }
  70.  
  71.    public void setRightInset(float var1) {
  72.       this.rightInset = var1;
  73.    }
  74.  
  75.    protected ChildState getChildState(int var1) {
  76.       ChildVector var2 = this.stats;
  77.       synchronized(var2) {
  78.          ChildState var3 = this.stats.getChildState(var1);
  79.          return var3;
  80.       }
  81.    }
  82.  
  83.    protected LayoutQueue getLayoutQueue() {
  84.       return LayoutQueue.getDefaultQueue();
  85.    }
  86.  
  87.    protected ChildState createChildState(View var1) {
  88.       return new ChildState(this, var1);
  89.    }
  90.  
  91.    protected synchronized void majorRequirementChange(ChildState var1, float var2) {
  92.       this.majorSpan += var2;
  93.       this.majorChanged = true;
  94.    }
  95.  
  96.    protected synchronized void minorRequirementChange(ChildState var1) {
  97.       this.minorChanged = true;
  98.    }
  99.  
  100.    protected synchronized void flushRequirementChanges() {
  101.       if (this.majorChanged || this.minorChanged) {
  102.          View var1 = ((View)this).getParent();
  103.          if (var1 != null) {
  104.             boolean var2;
  105.             boolean var3;
  106.             if (this.axis == 0) {
  107.                var2 = this.majorChanged;
  108.                var3 = this.minorChanged;
  109.             } else {
  110.                var3 = this.majorChanged;
  111.                var2 = this.minorChanged;
  112.             }
  113.  
  114.             var1.preferenceChanged(this, var2, var3);
  115.             this.majorChanged = false;
  116.             this.minorChanged = false;
  117.             Container var4 = ((View)this).getContainer();
  118.             if (var4 != null) {
  119.                ((Component)var4).repaint();
  120.             }
  121.          }
  122.       }
  123.  
  124.    }
  125.  
  126.    public void replace(int var1, int var2, View[] var3) {
  127.       ChildVector var4 = this.stats;
  128.       synchronized(var4) {
  129.          LayoutQueue var5 = this.getLayoutQueue();
  130.          ChildState[] var6 = new ChildState[var3.length];
  131.  
  132.          for(int var7 = 0; var7 < var6.length; ++var7) {
  133.             var6[var7] = this.createChildState(var3[var7]);
  134.          }
  135.  
  136.          this.stats.replace(var1, var2, var6);
  137.          if (var6.length != 0) {
  138.             for(int var8 = 0; var8 < var6.length; ++var8) {
  139.                var5.addTask(var6[var8]);
  140.             }
  141.  
  142.             var5.addTask(this.flushTask);
  143.          }
  144.  
  145.       }
  146.    }
  147.  
  148.    protected void loadChildren(ViewFactory var1) {
  149.       Element var2 = ((View)this).getElement();
  150.       int var3 = var2.getElementCount();
  151.       if (var3 > 0) {
  152.          View[] var4 = new View[var3];
  153.  
  154.          for(int var5 = 0; var5 < var3; ++var5) {
  155.             var4[var5] = var1.create(var2.getElement(var5));
  156.          }
  157.  
  158.          this.replace(0, 0, var4);
  159.       }
  160.  
  161.    }
  162.  
  163.    protected synchronized int getViewIndexAtPosition(int var1, Position.Bias var2) {
  164.       boolean var3 = var2 == Bias.Backward;
  165.       var1 = var3 ? Math.max(0, var1 - 1) : var1;
  166.       Element var4 = ((View)this).getElement();
  167.       return var4.getElementIndex(var1);
  168.    }
  169.  
  170.    protected void updateLayout(DocumentEvent.ElementChange var1, DocumentEvent var2, Shape var3) {
  171.       if (var1 != null) {
  172.          int var4 = Math.max(var1.getIndex() - 1, 0);
  173.          ChildState var5 = this.getChildState(var4);
  174.          this.locator.childChanged(var5);
  175.       }
  176.  
  177.    }
  178.  
  179.    public void setParent(View var1) {
  180.       super.setParent(var1);
  181.       if (var1 != null && this.getViewCount() == 0) {
  182.          ViewFactory var2 = ((View)this).getViewFactory();
  183.          this.loadChildren(var2);
  184.       }
  185.  
  186.    }
  187.  
  188.    public synchronized void preferenceChanged(View var1, boolean var2, boolean var3) {
  189.       if (var1 == null) {
  190.          ((View)this).getParent().preferenceChanged(this, var2, var3);
  191.       } else {
  192.          if (this.changing != null) {
  193.             View var4 = this.changing.getChildView();
  194.             if (var4 == var1) {
  195.                this.changing.preferenceChanged(var2, var3);
  196.                return;
  197.             }
  198.          }
  199.  
  200.          int var7 = this.getViewIndexAtPosition(var1.getStartOffset(), Bias.Forward);
  201.          ChildState var5 = this.getChildState(var7);
  202.          var5.preferenceChanged(var2, var3);
  203.          LayoutQueue var6 = this.getLayoutQueue();
  204.          var6.addTask(var5);
  205.          var6.addTask(this.flushTask);
  206.       }
  207.  
  208.    }
  209.  
  210.    public void setSize(float var1, float var2) {
  211.       float var3;
  212.       if (this.axis == 0) {
  213.          var3 = var2 - this.getTopInset() - this.getBottomInset();
  214.       } else {
  215.          var3 = var1 - this.getLeftInset() - this.getRightInset();
  216.       }
  217.  
  218.       if (var3 != this.minorSpan) {
  219.          this.minorSpan = var3;
  220.          int var4 = this.getViewCount();
  221.          LayoutQueue var5 = this.getLayoutQueue();
  222.  
  223.          for(int var6 = 0; var6 < var4; ++var6) {
  224.             ChildState var7 = this.getChildState(var6);
  225.             javax.swing.text.AsyncBoxView.ChildState.access$002(var7, false);
  226.             var5.addTask(var7);
  227.          }
  228.  
  229.          var5.addTask(this.flushTask);
  230.       }
  231.  
  232.    }
  233.  
  234.    public void paint(Graphics var1, Shape var2) {
  235.       ChildLocator var3 = this.locator;
  236.       synchronized(var3) {
  237.          this.locator.setAllocation(var2);
  238.          this.locator.paintChildren(var1);
  239.       }
  240.    }
  241.  
  242.    public float getPreferredSpan(int var1) {
  243.       if (var1 == this.axis) {
  244.          return this.majorSpan;
  245.       } else if (this.prefRequest != null) {
  246.          View var2 = this.prefRequest.getChildView();
  247.          return var2.getPreferredSpan(var1);
  248.       } else {
  249.          return var1 == 0 ? this.getLeftInset() + this.getRightInset() + 30.0F : this.getTopInset() + this.getBottomInset() + 30.0F;
  250.       }
  251.    }
  252.  
  253.    public float getMinimumSpan(int var1) {
  254.       if (var1 == this.axis) {
  255.          return this.getPreferredSpan(var1);
  256.       } else if (this.minRequest != null) {
  257.          View var2 = this.minRequest.getChildView();
  258.          return var2.getMinimumSpan(var1);
  259.       } else {
  260.          return var1 == 0 ? this.getLeftInset() + this.getRightInset() + 5.0F : this.getTopInset() + this.getBottomInset() + 5.0F;
  261.       }
  262.    }
  263.  
  264.    public float getMaximumSpan(int var1) {
  265.       return var1 == this.axis ? this.getPreferredSpan(var1) : 32767.0F;
  266.    }
  267.  
  268.    public int getViewCount() {
  269.       ChildVector var1 = this.stats;
  270.       synchronized(var1) {
  271.          int var2 = this.stats.size();
  272.          return var2;
  273.       }
  274.    }
  275.  
  276.    public View getView(int var1) {
  277.       ChildVector var2 = this.stats;
  278.       synchronized(var2) {
  279.          if (var1 >= 0 && var1 < this.stats.size()) {
  280.             ChildState var3 = this.stats.getChildState(var1);
  281.             View var4 = var3.getChildView();
  282.             return var4;
  283.          } else {
  284.             return null;
  285.          }
  286.       }
  287.    }
  288.  
  289.    public Shape getChildAllocation(int var1, Shape var2) {
  290.       Shape var3 = this.locator.getChildAllocation(var1, var2);
  291.       return var3;
  292.    }
  293.  
  294.    public int getViewIndex(int var1, Position.Bias var2) {
  295.       return this.getViewIndexAtPosition(var1, var2);
  296.    }
  297.  
  298.    public Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException {
  299.       int var4 = this.getViewIndexAtPosition(var1, var3);
  300.       Shape var5 = this.locator.getChildAllocation(var4, var2);
  301.       ChildState var6 = this.getChildState(var4);
  302.       synchronized(var6) {
  303.          View var8 = var6.getChildView();
  304.          Shape var9 = var8.modelToView(var1, var5, var3);
  305.          return var9;
  306.       }
  307.    }
  308.  
  309.    public int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4) {
  310.       ChildLocator var8 = this.locator;
  311.       int var6;
  312.       Shape var7;
  313.       synchronized(var8) {
  314.          var6 = this.locator.getViewIndexAtPoint(var1, var2, var3);
  315.          var7 = this.locator.getChildAllocation(var6, var3);
  316.       }
  317.  
  318.       ChildState var9 = this.getChildState(var6);
  319.       synchronized(var9) {
  320.          View var11 = var9.getChildView();
  321.          int var5 = var11.viewToModel(var1, var2, var7, var4);
  322.          return var5;
  323.       }
  324.    }
  325. }
  326.