package org.openntf.domino.nsfdata.structs;
import java.util.EnumSet;
import java.util.Set;
/**
* This structure contains the view table format descriptor. All view notes contain a $VIEWFORMAT item (also known as a "View Table Format"
* item). A $VIEWFORMAT item is an item of TYPE_VIEW_FORMAT with item name VIEW_VIEW_FORMAT_ITEM. The item value of a $VIEWFORMAT item
* consists of a single VIEW_TABLE_FORMAT structure, followed by one VIEW_COLUMN_FORMAT structure for each column, followed by an item
* name/formula/column title set for each column, followed by a VIEW_TABLE_FORMAT2 structure, followed by one VIEW_COLUMN_FORMAT2 structure
* for each column, followed by a VIEW_TABLE_FORMAT3 structure. (viewfmt.h)
*
* @since forever
*
*/
public class VIEW_TABLE_FORMAT extends AbstractStruct {
/**
* VIEW_TABLE_xxx
*/
public static enum Flag {
COLLAPSED(0x0001), FLATINDEX(0x0002), DISP_ALLUNREAD(0x0004), CONFLICT(0x0008), DISP_UNREADDOCS(0x0010), GOTO_TOP_ON_OPEN(0x0020),
GOTO_BOTTOM_ON_OPEN(0x0040), ALTERNATE_ROW_COLORING(0x0080), HIDE_HEADINGS(0x0100), HIDE_LEFT_MARGIN(0x0200),
SIMPLE_HEADINGS(0x0400), VARIABLE_LINE_COUNT(0x0800), GOTO_TOP_ON_REFRESH(0x1000), GOTO_BOTTOM_ON_REFRESH(0x2000),
EXTEND_LAST_COLUMN(0x04000), RTLVIEW(0x8000);
private final short value_;
private Flag(final short value) {
value_ = value;
}
private Flag(final int value) {
value_ = (short) value;
}
public short getValue() {
return value_;
}
public static Set<Flag> valuesOf(final short flags) {
Set<Flag> result = EnumSet.noneOf(Flag.class);
for (Flag flag : values()) {
if ((flag.getValue() & flags) > 0) {
result.add(flag);
}
}
return result;
}
}
/**
* VIEW_TABLE_xxx
*/
public static enum Flag2 {
FLAT_HEADINGS(0x0001), COLORIZE_ICONS(0x0002), HIDE_SB(0x0004), HIDE_CAL_HEADER(0x0008), NOT_CUSTOMIZED(0x0010),
SHOW_PARTIAL_THREADS(0x0020), PARTIAL_FLATINDEX(0x0020);
private final short value_;
private Flag2(final short value) {
value_ = value;
}
private Flag2(final int value) {
value_ = (short) value;
}
public short getValue() {
return value_;
}
public static Set<Flag2> valuesOf(final short flags) {
Set<Flag2> result = EnumSet.noneOf(Flag2.class);
for (Flag2 flag : values()) {
if ((flag.getValue() & flags) > 0) {
result.add(flag);
}
}
return result;
}
}
public final VIEW_FORMAT_HEADER Header = inner(new VIEW_FORMAT_HEADER());
public final Unsigned16 Columns = new Unsigned16();
public final Unsigned16 ItemSequenceNumber = new Unsigned16();
/**
* Use getFlags() for access
*/
@Deprecated
public final Unsigned16 Flags = new Unsigned16();
/**
* Use getFlags2() for access
*/
@Deprecated
public final Unsigned16 Flags2 = new Unsigned16();
public Set<Flag> getFlags() {
return Flag.valuesOf((short) Flags.get());
}
public Set<Flag2> getFlags2() {
return Flag2.valuesOf((short) Flags2.get());
}
@Override
public String toString() {
return "[" + getClass().getSimpleName() + ": Header=" + Header + ", Columns=" + Columns.get() + ", ItemSequenceNumber="
+ ItemSequenceNumber.get() + ", Flags=" + getFlags() + ", Flags2=" + getFlags2() + "]";
}
}