package com.vistatec.ocelot; import javax.swing.ImageIcon; import com.vistatec.ocelot.its.model.ITSMetadata; import com.vistatec.ocelot.segment.model.SegmentVariant; public enum SegmentViewColumn { SegNum("#", "Segment Number", true, Integer.class, false, -1), // Freme("F", "Freme", false, ImageIcon.class, false, -1), Source("Source", "Source", true, SegmentVariant.class, false, -1), Target("Target", "Target", true, SegmentVariant.class, false, -1), Original("Original Target", "Original Target", true, SegmentVariant.class, false, -1), Notes("Notes", "Notes", false, String.class, false, -1), EditDistance("Δ", "Edit Distance (Δ)", false, Integer.class, false, -1), Flag1("", "Flag #1", true, ITSMetadata.class, true, 0), Flag2("", "Flag #2", true, ITSMetadata.class, true, 1), Flag3("", "Flag #3", true, ITSMetadata.class, true, 2), Flag4("", "Flag #4", true, ITSMetadata.class, true, 3), Flag5("", "Flag #5", true, ITSMetadata.class, true, 4); private String displayName, fullName; private boolean visibleByDefault, flagColumn; // XXX Hacky, this value is not applicable for non-flag columns private int flagIndex; private Class<?> datatype; SegmentViewColumn(String displayName, String fullName, boolean visibleByDefault, Class<?> datatype, boolean flagColumn, int flagIndex) { this.displayName = displayName; this.fullName = fullName; this.visibleByDefault = visibleByDefault; this.flagColumn = flagColumn; this.flagIndex = flagIndex; this.datatype = datatype; } public String getName() { return displayName; } public String getFullName() { return fullName; } public boolean isVisibleByDefaut() { return visibleByDefault; } public Class<?> getDatatype() { return datatype; } public boolean isFlagColumn() { return flagColumn; } public int getFlagIndex() { return flagIndex; } public static int getFlagColumnCount() { int count = 0; for (SegmentViewColumn col : values()) { if (col.isFlagColumn()) { count += 1; } } return count; } }