001: /*
002: * This is free software, licensed under the Gnu Public License (GPL)
003: * get a copy from <http://www.gnu.org/licenses/gpl.html>
004: * $Id: ColumnMetaData.java,v 1.3 2004/06/07 08:31:56 hzeller Exp $
005: * author: Henner Zeller <H.Zeller@acm.org>
006: */
007: package henplus.view;
008:
009: /**
010: * own wrapper for the column meta data.
011: */
012: public final class ColumnMetaData {
013: public static final int ALIGN_LEFT = 1;
014: public static final int ALIGN_CENTER = 2;
015: public static final int ALIGN_RIGHT = 3;
016:
017: /** alignment; one of left, center, right */
018: private final int alignment;
019:
020: /** the header of this column */
021: private final String label;
022:
023: /** minimum width of this column; ususally set by the header width */
024: private final int initialWidth;
025:
026: /** wrap columns automatically at this column; -1 = disabled */
027: private int autoWrapCol;
028:
029: private int width;
030: private boolean display;
031:
032: public ColumnMetaData(String header, int align) {
033: this (header, align, -1);
034: }
035:
036: /**
037: * publically available constructor for the
038: * user.
039: */
040: public ColumnMetaData(String header, int align, int autoWrap) {
041: label = header;
042: initialWidth = header.length();
043: width = initialWidth;
044: alignment = align;
045: display = true;
046: autoWrapCol = autoWrap;
047: }
048:
049: public ColumnMetaData(String header) {
050: this (header, ALIGN_LEFT);
051: }
052:
053: public void resetWidth() {
054: width = initialWidth;
055: }
056:
057: /**
058: * set, whether a specific column should be displayed.
059: */
060: public void setDisplay(boolean val) {
061: display = val;
062: }
063:
064: public boolean doDisplay() {
065: return display;
066: }
067:
068: public void setAutoWrap(int col) {
069: autoWrapCol = col;
070: }
071:
072: public int getAutoWrap() {
073: return autoWrapCol;
074: }
075:
076: int getWidth() {
077: return width;
078: }
079:
080: String getLabel() {
081: return label;
082: }
083:
084: public int getAlignment() {
085: return alignment;
086: }
087:
088: void updateWidth(int w) {
089: if (w > width) {
090: width = w;
091: }
092: }
093: }
094:
095: /*
096: * Local variables:
097: * c-basic-offset: 4
098: * compile-command: "ant -emacs -find build.xml"
099: * End:
100: */
|