package org.openntf.domino.nsfdata.structs;
import java.util.EnumSet;
import java.util.Set;
/**
* This structure contains view format information for views saved in Notes 2.0 and later. (viewfmt.h)
*
* @since Lotus Notes 2.0
*
*/
public class VIEW_TABLE_FORMAT2 extends AbstractStruct {
public static enum SpacingType {
SINGLE_SPACE, ONE_POINT_25_SPACE, ONE_POINT_50_SPACE, ONE_POINT_75_SPACE, DOUBLE_SPACE
}
public static enum Flag1 {
HAS_LINK_COLUMN(0x01), HTML_PASSTHRU(0x02);
private final byte value_;
private Flag1(final int value) {
value_ = (byte) value;
}
public byte getValue() {
return value_;
}
public static Set<Flag1> valuesOf(final byte flags) {
Set<Flag1> result = EnumSet.noneOf(Flag1.class);
for (Flag1 flag : values()) {
if ((flag.getValue() & flags) > 0) {
result.add(flag);
}
}
return result;
}
}
public static final short VALID_VIEW_FORMAT_SIG = 0x2BAD;
public static final short VIEW_TABLE_MAX_LINE_COUNT = 10;
public final Unsigned16 Length = new Unsigned16();
public final Unsigned16 BackgroundColor = new Unsigned16();
public final Unsigned16 V2BorderColor = new Unsigned16();
public final FONTID TitleFont = inner(new FONTID());
public final FONTID UnreadFont = inner(new FONTID());
public final FONTID TotalsFont = inner(new FONTID());
public final Unsigned16 AutoUpdateSeconds = new Unsigned16();
public final Unsigned16 AlternateBackgroundColor = new Unsigned16();
public final Unsigned16 wSig = new Unsigned16();
public final Unsigned8 LineCount = new Unsigned8();
// TODO investigate why this doesn't work as an enum (observed values of 8 and 68 in Nifty 50)
// public final Enum8<SpacingType> Spacing = new Enum8<SpacingType>(SpacingType.values());
public final Unsigned8 Spacing = new Unsigned8();
public final Unsigned16 BackgroundColorExt = new Unsigned16();
public final Unsigned8 HeaderLineCount = new Unsigned8();
/**
* Use getFlags1() for access
*/
@Deprecated
public final Unsigned8 Flags1 = new Unsigned8();
public final Unsigned16[] Spare = array(new Unsigned16[4]);
public boolean isValid() {
return (short) wSig.get() == VALID_VIEW_FORMAT_SIG;
}
public Set<Flag1> getFlags1() {
return Flag1.valuesOf((byte) Flags1.get());
}
}