home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text;
-
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Graphics;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.Shape;
- import javax.swing.SwingConstants;
- import javax.swing.event.DocumentEvent;
- import javax.swing.event.DocumentEvent.EventType;
- import javax.swing.text.Position.Bias;
-
- public abstract class View implements SwingConstants {
- public static final int BadBreakWeight = 0;
- public static final int GoodBreakWeight = 1000;
- public static final int ExcellentBreakWeight = 2000;
- public static final int ForcedBreakWeight = 3000;
- public static final int X_AXIS = 0;
- public static final int Y_AXIS = 1;
- static final Position.Bias[] sharedBiasReturn = new Position.Bias[1];
- private View parent;
- private Element elem;
-
- public View(Element var1) {
- this.elem = var1;
- }
-
- public View getParent() {
- return this.parent;
- }
-
- public boolean isVisible() {
- return true;
- }
-
- public abstract float getPreferredSpan(int var1);
-
- public float getMinimumSpan(int var1) {
- int var2 = this.getResizeWeight(var1);
- return var2 == 0 ? this.getPreferredSpan(var1) : 0.0F;
- }
-
- public float getMaximumSpan(int var1) {
- int var2 = this.getResizeWeight(var1);
- return var2 == 0 ? this.getPreferredSpan(var1) : (float)Integer.MAX_VALUE;
- }
-
- public void preferenceChanged(View var1, boolean var2, boolean var3) {
- View var4 = this.getParent();
- if (var4 != null) {
- var4.preferenceChanged(this, var2, var3);
- }
-
- }
-
- public float getAlignment(int var1) {
- return 0.5F;
- }
-
- public abstract void paint(Graphics var1, Shape var2);
-
- public void setParent(View var1) {
- this.parent = var1;
- }
-
- public int getViewCount() {
- return 0;
- }
-
- public View getView(int var1) {
- return null;
- }
-
- public void removeAll() {
- this.replace(0, this.getViewCount(), (View[])null);
- }
-
- public void remove(int var1) {
- this.replace(var1, 1, (View[])null);
- }
-
- public void insert(int var1, View var2) {
- View[] var3 = new View[]{var2};
- this.replace(var1, 0, var3);
- }
-
- public void append(View var1) {
- View[] var2 = new View[]{var1};
- this.replace(this.getViewCount(), 0, var2);
- }
-
- public void replace(int var1, int var2, View[] var3) {
- }
-
- public int getViewIndex(int var1, Position.Bias var2) {
- return -1;
- }
-
- public Shape getChildAllocation(int var1, Shape var2) {
- return null;
- }
-
- public int getNextVisualPositionFrom(int var1, Position.Bias var2, Shape var3, int var4, Position.Bias[] var5) throws BadLocationException {
- var5[0] = Bias.Forward;
- switch (var4) {
- case 1:
- case 5:
- JTextComponent var6 = (JTextComponent)this.getContainer();
- Caret var7 = var6 != null ? var6.getCaret() : null;
- Point var8;
- if (var7 != null) {
- var8 = var7.getMagicCaretPosition();
- } else {
- var8 = null;
- }
-
- int var9;
- if (var8 == null) {
- Rectangle var10 = var6.modelToView(var1);
- var9 = var10 == null ? 0 : var10.x;
- } else {
- var9 = var8.x;
- }
-
- if (var4 == 1) {
- var1 = Utilities.getPositionAbove(var6, var1, var9);
- } else {
- var1 = Utilities.getPositionBelow(var6, var1, var9);
- }
- break;
- case 2:
- case 4:
- case 6:
- default:
- throw new IllegalArgumentException("Bad direction: " + var4);
- case 3:
- if (var1 == -1) {
- var1 = this.getStartOffset();
- } else {
- var1 = Math.min(var1 + 1, this.getDocument().getLength());
- }
- break;
- case 7:
- if (var1 == -1) {
- var1 = Math.max(0, this.getEndOffset() - 1);
- } else {
- var1 = Math.max(0, var1 - 1);
- }
- }
-
- return var1;
- }
-
- public abstract Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException;
-
- public Shape modelToView(int var1, Position.Bias var2, int var3, Position.Bias var4, Shape var5) throws BadLocationException {
- Shape var6 = this.modelToView(var1, var5, var2);
- Object var7;
- if (var3 == this.getEndOffset()) {
- try {
- var7 = this.modelToView(var3, var5, var4);
- } catch (BadLocationException var11) {
- var7 = null;
- }
-
- if (var7 == null) {
- Rectangle var8 = var5 instanceof Rectangle ? (Rectangle)var5 : var5.getBounds();
- var7 = new Rectangle(var8.x + var8.width - 1, var8.y, 1, var8.height);
- }
- } else {
- var7 = this.modelToView(var3, var5, var4);
- }
-
- Rectangle var12 = var6.getBounds();
- Rectangle var9 = var7 instanceof Rectangle ? (Rectangle)var7 : ((Shape)var7).getBounds();
- if (var12.y != var9.y) {
- Rectangle var10 = var5 instanceof Rectangle ? (Rectangle)var5 : var5.getBounds();
- var12.x = var10.x;
- var12.width = var10.width;
- }
-
- var12.add(var9);
- return var12;
- }
-
- public abstract int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4);
-
- public void insertUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- if (this.getViewCount() > 0) {
- Element var4 = this.getElement();
- DocumentEvent.ElementChange var5 = var1.getChange(var4);
- if (var5 != null && !this.updateChildren(var5, var1, var3)) {
- var5 = null;
- }
-
- this.forwardUpdate(var5, var1, var2, var3);
- this.updateLayout(var5, var1, var2);
- }
-
- }
-
- public void removeUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- if (this.getViewCount() > 0) {
- Element var4 = this.getElement();
- DocumentEvent.ElementChange var5 = var1.getChange(var4);
- if (var5 != null && !this.updateChildren(var5, var1, var3)) {
- var5 = null;
- }
-
- this.forwardUpdate(var5, var1, var2, var3);
- this.updateLayout(var5, var1, var2);
- }
-
- }
-
- public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- if (this.getViewCount() > 0) {
- Element var4 = this.getElement();
- DocumentEvent.ElementChange var5 = var1.getChange(var4);
- if (var5 != null && !this.updateChildren(var5, var1, var3)) {
- var5 = null;
- }
-
- this.forwardUpdate(var5, var1, var2, var3);
- this.updateLayout(var5, var1, var2);
- }
-
- }
-
- public Document getDocument() {
- return this.elem.getDocument();
- }
-
- public int getStartOffset() {
- return this.elem.getStartOffset();
- }
-
- public int getEndOffset() {
- return this.elem.getEndOffset();
- }
-
- public Element getElement() {
- return this.elem;
- }
-
- public Graphics getGraphics() {
- Container var1 = this.getContainer();
- return ((Component)var1).getGraphics();
- }
-
- public AttributeSet getAttributes() {
- return this.elem.getAttributes();
- }
-
- public View breakView(int var1, int var2, float var3, float var4) {
- return this;
- }
-
- public View createFragment(int var1, int var2) {
- return this;
- }
-
- public int getBreakWeight(int var1, float var2, float var3) {
- return var3 > this.getPreferredSpan(var1) ? 1000 : 0;
- }
-
- public int getResizeWeight(int var1) {
- return 0;
- }
-
- public void setSize(float var1, float var2) {
- }
-
- public Container getContainer() {
- View var1 = this.getParent();
- return var1 != null ? var1.getContainer() : null;
- }
-
- public ViewFactory getViewFactory() {
- View var1 = this.getParent();
- return var1 != null ? var1.getViewFactory() : null;
- }
-
- protected boolean updateChildren(DocumentEvent.ElementChange var1, DocumentEvent var2, ViewFactory var3) {
- Element[] var4 = var1.getChildrenRemoved();
- Element[] var5 = var1.getChildrenAdded();
- View[] var6 = null;
- if (var5 != null) {
- var6 = new View[var5.length];
-
- for(int var7 = 0; var7 < var5.length; ++var7) {
- var6[var7] = var3.create(var5[var7]);
- }
- }
-
- int var9 = 0;
- int var8 = var1.getIndex();
- if (var4 != null) {
- var9 = var4.length;
- }
-
- this.replace(var8, var9, var6);
- return true;
- }
-
- protected void forwardUpdate(DocumentEvent.ElementChange var1, DocumentEvent var2, Shape var3, ViewFactory var4) {
- Element var5 = this.getElement();
- int var6 = var2.getOffset();
- int var7 = this.getViewIndex(var6, Bias.Forward);
- if (var7 == -1 && var2.getType() == EventType.REMOVE && var6 >= this.getEndOffset()) {
- var7 = this.getViewCount() - 1;
- }
-
- int var8 = var7;
- View var9 = var7 >= 0 ? this.getView(var7) : null;
- if (var9 != null && var9.getStartOffset() == var6 && var6 > 0) {
- var7 = Math.max(var7 - 1, 0);
- }
-
- if (var2.getType() != EventType.REMOVE) {
- var8 = this.getViewIndex(var6 + var2.getLength(), Bias.Forward);
- if (var8 < 0) {
- var8 = this.getViewCount() - 1;
- }
- }
-
- int var10 = var8 + 1;
- int var11 = var10;
- Element[] var12 = var1 != null ? var1.getChildrenAdded() : null;
- if (var12 != null && var12.length > 0) {
- var10 = var1.getIndex();
- var11 = var10 + var12.length - 1;
- }
-
- var7 = Math.max(var7, 0);
-
- for(int var13 = var7; var13 <= var8; ++var13) {
- if (var13 < var10 || var13 > var11) {
- var9 = this.getView(var13);
- if (var9 != null) {
- Shape var14 = this.getChildAllocation(var13, var3);
- this.forwardUpdateToView(var9, var2, var14, var4);
- }
- }
- }
-
- }
-
- protected void forwardUpdateToView(View var1, DocumentEvent var2, Shape var3, ViewFactory var4) {
- DocumentEvent.EventType var5 = var2.getType();
- if (var5 == EventType.INSERT) {
- var1.insertUpdate(var2, var3, var4);
- } else if (var5 == EventType.REMOVE) {
- var1.removeUpdate(var2, var3, var4);
- } else {
- var1.changedUpdate(var2, var3, var4);
- }
-
- }
-
- protected void updateLayout(DocumentEvent.ElementChange var1, DocumentEvent var2, Shape var3) {
- if (var1 != null && var3 != null) {
- this.preferenceChanged((View)null, true, true);
- Container var4 = this.getContainer();
- if (var4 != null) {
- ((Component)var4).repaint();
- }
- }
-
- }
-
- public Shape modelToView(int var1, Shape var2) throws BadLocationException {
- return this.modelToView(var1, var2, Bias.Forward);
- }
-
- public int viewToModel(float var1, float var2, Shape var3) {
- sharedBiasReturn[0] = Bias.Forward;
- return this.viewToModel(var1, var2, var3, sharedBiasReturn);
- }
- }
-