package javax.swing.text;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Shape;
import java.util.Vector;
import javax.swing.SwingConstants;
public abstract class View implements SwingConstants
{
public static final int BadBreakWeight = 0;
public static final int ExcellentBreakWeight = 2000;
public static final int ForcedBreakWeight = 3000;
public static final int GoodBreakWeight = 1000;
public static final int X_AXIS = 0;
public static final int Y_AXIS = 1;
private float width, height;
private Element elt;
private View parent;
public View(Element elem)
{
elt = elem;
}
public abstract void paint(Graphics g, Shape s);
public void setParent(View a)
{
parent = a;
}
public View getParent()
{
return parent;
}
public void setSize(int w, int h)
{
width = w;
height = h;
}
public Container getContainer()
{
return parent != null ? parent.getContainer() : null;
}
public Document getDocument()
{
return getElement().getDocument();
}
public Element getElement()
{
return elt;
}
public abstract float getPreferredSpan(int axis);
public float getAlignment(int axis)
{
return 0.5f;
}
public AttributeSet getAttributes()
{
return elt.getAttributes();
}
public boolean isVisible()
{
return true;
}
public int getViewCount()
{
return 0;
}
public View getView(int index)
{
return null;
}
public ViewFactory getViewFactory()
{
return parent != null ? parent.getViewFactory() : null;
}
public void replace(int offset, int length, View[] views)
{
}
public void insert(int offset, View view)
{
View[] array = { view };
replace(offset, 1, array);
}
public void append(View view)
{
View[] array = { view };
replace(getViewCount(), 1, array);
}
public void removeAll()
{
replace(0, getViewCount(), null);
}
public void remove(int index)
{
replace(index, 1, null);
}
public View createFragment(int p0, int p1)
{
return this;
}
public int getStartOffset()
{
return elt.getStartOffset();
}
public int getEndOffset()
{
return elt.getEndOffset();
}
public Shape getChildAllocation(int index, Shape a)
{
return null;
}
public int getViewIndex(float x, float y, Shape allocation)
{
return -1;
}
public String getToolTipText(float x, float y, Shape allocation)
{
int index = getViewIndex(x, y, allocation);
if (index < -1)
return null;
Shape childAllocation = getChildAllocation(index, allocation);
if (childAllocation.getBounds().contains(x, y))
return getView(index).getToolTipText(x, y, childAllocation);
return null;
}
}