package org.lobobrowser.html.renderer; import java.awt.Dimension; import org.eclipse.jdt.annotation.NonNull; import org.lobobrowser.html.HtmlRendererContext; import org.lobobrowser.html.domimpl.NodeImpl; import org.lobobrowser.html.style.RenderState; import org.lobobrowser.ua.UserAgentContext; public abstract class RAbstractCell extends RBlock { public RAbstractCell(NodeImpl modelNode, int listNesting, UserAgentContext pcontext, HtmlRendererContext rcontext, FrameContext frameContext, RenderableContainer parentContainer) { super(modelNode, listNesting, pcontext, rcontext, frameContext, parentContainer); } public abstract void setCellBounds(final TableMatrix.ColSizeInfo[] colSizes, final TableMatrix.RowSizeInfo[] rowSizes, final int hasBorder, final int cellSpacingX, final int cellSpacingY); public abstract String getWidthText(); public abstract String getHeightText(); public abstract void setRowSpan(final int rowSpan); public abstract int getRowSpan(); public abstract int getColSpan(); protected abstract Dimension doCellLayout(final int width, final int height, final boolean expandWidth, final boolean expandHeight, final boolean sizeOnly); abstract @NonNull RenderState getRenderState(); private VirtualCell topLeftVirtualCell; public void setTopLeftVirtualCell(final VirtualCell vc) { this.topLeftVirtualCell = vc; } public VirtualCell getTopLeftVirtualCell() { return this.topLeftVirtualCell; } /** * @return Returns the virtualColumn. */ public int getVirtualColumn() { final VirtualCell vc = this.topLeftVirtualCell; return vc == null ? 0 : vc.getColumn(); } /** * @return Returns the virtualRow. */ public int getVirtualRow() { final VirtualCell vc = this.topLeftVirtualCell; return vc == null ? 0 : vc.getRow(); } }