001: /*
002: * ============================================================================
003: * GNU Lesser General Public License
004: * ============================================================================
005: *
006: * JasperReports - Free Java report-generating library.
007: * Copyright (C) 2001-2006 JasperSoft Corporation http://www.jaspersoft.com
008: *
009: * This library is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU Lesser General Public
011: * License as published by the Free Software Foundation; either
012: * version 2.1 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: * Lesser General Public License for more details.
018: *
019: * You should have received a copy of the GNU Lesser General Public
020: * License along with this library; if not, write to the Free Software
021: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
022: *
023: * JasperSoft Corporation
024: * 303 Second Street, Suite 450 North
025: * San Francisco, CA 94107
026: * http://www.jaspersoft.com
027: */
028: package net.sf.jasperreports.crosstabs;
029:
030: import java.awt.Color;
031:
032: import net.sf.jasperreports.engine.JRBox;
033: import net.sf.jasperreports.engine.JRElementGroup;
034: import net.sf.jasperreports.engine.JRStyleContainer;
035:
036: /**
037: * Crosstab cell contents interface.
038: * <p>
039: * This interface is used for both crosstab row/column headers and data cells.
040: * <p>
041: * There are some restrictions/rules regarding crosstab cells:
042: * <ul>
043: * <li>subreports, crosstabs and charts are not allowed</li>
044: * <li>delayed evaluation for text fields and images is not allowed</li>
045: * <li>cells cannot split on multiple pages</li>
046: * </ul>
047: *
048: * @author Lucian Chirita (lucianc@users.sourceforge.net)
049: * @version $Id: JRCellContents.java 1229 2006-04-19 10:27:35Z teodord $
050: */
051: public interface JRCellContents extends JRElementGroup,
052: JRStyleContainer {
053: /**
054: * Horizontal stretch position indicating that the contents will be rendered on the left side.
055: */
056: public static final byte POSITION_X_LEFT = 1;
057:
058: /**
059: * Horizontal stretch position indicating that the contents will be rendered on the center.
060: */
061: public static final byte POSITION_X_CENTER = 2;
062:
063: /**
064: * Horizontal stretch position indicating that the contents will be rendered on the right side.
065: */
066: public static final byte POSITION_X_RIGHT = 3;
067:
068: /**
069: * Horizontal stretch position indicating that the contents will be horizontally stretched.
070: */
071: public static final byte POSITION_X_STRETCH = 4;
072:
073: /**
074: * Vertical stretch position indicating that the contents will be rendered on the top.
075: */
076: public static final byte POSITION_Y_TOP = 1;
077:
078: /**
079: * Vertical stretch position indicating that the contents will be rendered on the middle.
080: */
081: public static final byte POSITION_Y_MIDDLE = 2;
082:
083: /**
084: * Vertical stretch position indicating that the contents will be rendered on the bottom.
085: */
086: public static final byte POSITION_Y_BOTTOM = 3;
087:
088: /**
089: * Vertical stretch position indicating that the contents will be rendered vertically stretched.
090: */
091: public static final byte POSITION_Y_STRETCH = 4;
092:
093: /**
094: * Width or height value indicating that the value has not been computed.
095: */
096: public static final int NOT_CALCULATED = Integer.MIN_VALUE;
097:
098: /**
099: * Returns the cell background color.
100: * <p>
101: * The cell is filled with the background color only if the cell has opaque mode.
102: *
103: * @return the cell backcolor
104: */
105: public Color getBackcolor();
106:
107: /**
108: * Returns the cell border.
109: *
110: * @return the cell border
111: */
112: public JRBox getBox();
113:
114: /**
115: * Returns the computed cell width.
116: *
117: * @return the computed cell width
118: * @see #NOT_CALCULATED
119: */
120: public int getWidth();
121:
122: /**
123: * Returns the computed cell height.
124: *
125: * @return the computed cell height
126: * @see #NOT_CALCULATED
127: */
128: public int getHeight();
129:
130: /**
131: * Returns the cell transparency mode.
132: *
133: * @return {@link net.sf.jasperreports.engine.JRElement#MODE_OPAQUE MODE_OPAQUE}
134: * or {@link net.sf.jasperreports.engine.JRElement#MODE_TRANSPARENT MODE_TRANSPARENT}
135: */
136: public Byte getMode();
137: }
|