home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text;
-
- import java.awt.Rectangle;
- import java.awt.Shape;
- import javax.swing.SizeRequirements;
- import javax.swing.event.DocumentEvent;
-
- public abstract class FlowView extends BoxView {
- protected int layoutSpan = 32767;
- protected View layoutPool;
- protected FlowStrategy strategy = new FlowStrategy();
-
- public FlowView(Element var1, int var2) {
- super(var1, var2);
- }
-
- public int getFlowAxis() {
- int var1 = ((BoxView)this).getAxis();
- return super.axis == 1 ? 0 : 1;
- }
-
- public int getFlowSpan(int var1) {
- return this.layoutSpan;
- }
-
- public int getFlowStart(int var1) {
- return 0;
- }
-
- protected abstract View createRow();
-
- protected void loadChildren(ViewFactory var1) {
- if (this.layoutPool == null) {
- this.layoutPool = new LogicalView(((View)this).getElement());
- }
-
- this.layoutPool.setParent(this);
- this.strategy.insertUpdate(this, (DocumentEvent)null, (Rectangle)null);
- }
-
- protected int getViewIndexAtPosition(int var1) {
- if (var1 >= ((View)this).getStartOffset() && var1 < ((View)this).getEndOffset()) {
- for(int var2 = ((CompositeView)this).getViewCount() - 1; var2 >= 0; --var2) {
- View var3 = ((CompositeView)this).getView(var2);
- if (var1 >= var3.getStartOffset() && var1 < var3.getEndOffset()) {
- return var2;
- }
- }
- }
-
- return -1;
- }
-
- protected void layout(int var1, int var2) {
- int var3 = this.getFlowAxis();
- int var4 = ((BoxView)this).getAxis();
- int var5 = var3 == 0 ? var1 : var2;
- if (this.layoutSpan != var5) {
- ((BoxView)this).layoutChanged(var3);
- ((BoxView)this).layoutChanged(((BoxView)this).getAxis());
- this.layoutSpan = var5;
- }
-
- if (!((BoxView)this).isAllocationValid()) {
- int var6 = var4 == 0 ? var1 : var2;
- this.strategy.layout(this);
- int var7 = (int)((BoxView)this).getPreferredSpan(var4);
- if (var6 != var7) {
- View var8 = ((View)this).getParent();
- var8.preferenceChanged(this, var4 == 0, var4 == 1);
- }
- }
-
- super.layout(var1, var2);
- }
-
- protected SizeRequirements calculateMinorAxisRequirements(int var1, SizeRequirements var2) {
- if (var2 == null) {
- var2 = new SizeRequirements();
- }
-
- float var3 = this.layoutPool.getPreferredSpan(var1);
- float var4 = this.layoutPool.getMinimumSpan(var1);
- float var5 = var1 == 0 ? (float)(((CompositeView)this).getLeftInset() + ((CompositeView)this).getRightInset()) : (float)(((CompositeView)this).getTopInset() + ((CompositeView)this).getBottomInset());
- var2.minimum = (int)(var5 + var4);
- var2.preferred = Math.max(var2.minimum, (int)var3);
- var2.maximum = 32767;
- var2.alignment = 0.5F;
- return var2;
- }
-
- public void insertUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- this.layoutPool.insertUpdate(var1, var2, var3);
- this.strategy.insertUpdate(this, var1, ((CompositeView)this).getInsideAllocation(var2));
- }
-
- public void removeUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- this.layoutPool.removeUpdate(var1, var2, var3);
- this.strategy.removeUpdate(this, var1, ((CompositeView)this).getInsideAllocation(var2));
- }
-
- public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- this.layoutPool.changedUpdate(var1, var2, var3);
- this.strategy.changedUpdate(this, var1, ((CompositeView)this).getInsideAllocation(var2));
- }
- }
-