package boxrenderer;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.util.List;
import java.util.Map;
import com.osbcp.cssparser.Rule;
public interface Box {
/**
* minimum content dimension
*/
public Dimension getContentDimension(Graphics2D g2) throws Exception;
/**
* total minimum dimension, including margin, border, padding and content
*/
public Dimension getDimension(Graphics2D g2) throws Exception;
/**
* render the box at position 0,0 (top left corner)
*/
public void render(Graphics2D g2) throws Exception;
public void setMargin(Margin margin);
public Margin getMargin();
public void setPadding(Padding padding);
public Padding getPadding();
public void setBorder(Border border);
public Border getBorder();
public void setWidth(int width);
public void setHeight(int height);
public void setParent(Box parent);
public Box getParent();
public void setId(String id);
public String getId();
public void addCssClass(String cssClass);
public boolean hasCssClass(String cssClass);
public void setTag(String tagname);
public String getTag();
public void setAttributes(Map<String, String> attributes);
public void setBackground(Paint background);
public Paint getBackground();
public void addRule(Rule cssrule);
public List<Rule> getCssRules();
public String getFontFamily();
public void setFontFamily(String fontFamily);
public int getFontSize();
public void setFontSize(int fontSize);
public Paint getColor();
public void setColor(Paint color);
public void setBold(boolean bold);
public boolean isBold();
public boolean isInline();
public double getRotate();
public void setRotate(double rotate);
public String getRotationPoint();
public void setRotationPoint(String rotationPoint);
public ImageRenderer getBackgroundImage();
public void setBackgroundImage(ImageRenderer backgroundImage);
public Paint getBackgroundTexture();
public void setBackgroundTexture(Paint backgroundTexture);
public void setLinearGradient(Color from, Color to);
public void setBackgroundPosition(Align backgroundPosition);
public void setBackgroundSize(Size backgroundSize);
}