package edu.ucsf.mousedatabase.objects;
import java.sql.Timestamp;
import java.util.ArrayList;
public class Setting {
public enum SettingCategory {
UNKNOWN(0,"unkown",false,true,false,false),
ADMIN_NOTES(1,"Admin notes",true,true,true,true),
HOME_PAGE_TEXTS(2,"Home page texts",false,false,true,true),
RECENT_SITE_UPDATES(3,"Recent site updates",true,false,true,true,"Custom style"),
ADMIN_DATA(4,"Admin information"),
GENERAL_SITE(5,"General settings"),
DATA_IMPORT(6,"Data upload settings"),
WED_LIKE_TO_HEAR_FROM_YOU(7,"Help keep the database up-to-date",true,false,true,true,"Custom style"),
DOWNLOAD_FILES(8,"Downloadable files",false,false,false,true),
DID_YOU_KNOW(9,"Did you know? items",true,false,true,true,"Custom style"),
FAQ_ITEMS(10, "FAQ items", true, false, true, true),
NEED_HELP_ITEMS(11, "Need help using the database items?", true, false, true, true, "Custom style"),
HOLDER_LIST_TEXTS( 12, "Holder list texts", true, false, true, true),
HOME_PAGE_CATEGORY_COLORS(13, "Home page category colors", false, false, false, false);
public final int Id;
public final String Name;
public final boolean CanAddOrRemove;
public final boolean Excluded;
public final boolean RichText;
public final boolean CanChangeLabel;
public final String SecondaryValueName;
private SettingCategory(int id, String name) {
this(id, name, false, false, false, false);
}
private SettingCategory(int id, String name, boolean canAddOrRemove, boolean excluded, boolean richText,
boolean canChangeLabel) {
this(id, name, canAddOrRemove, excluded, richText, canChangeLabel, null);
}
private SettingCategory(int id, String name, boolean canAddOrRemove, boolean excluded, boolean richText,
boolean canChangeLabel, String secondaryValueName) {
this.Id = id;
this.Name = name;
this.CanAddOrRemove = canAddOrRemove;
this.Excluded = excluded;
this.RichText = richText;
this.CanChangeLabel = canChangeLabel;
this.SecondaryValueName = secondaryValueName;
}
}
public static SettingCategory getSettingCategory(int id) {
switch (id) {
case 1:
return SettingCategory.ADMIN_NOTES;
case 2:
return SettingCategory.HOME_PAGE_TEXTS;
case 3:
return SettingCategory.RECENT_SITE_UPDATES;
case 4:
return SettingCategory.ADMIN_DATA;
case 5:
return SettingCategory.GENERAL_SITE;
case 6:
return SettingCategory.DATA_IMPORT;
case 7:
return SettingCategory.WED_LIKE_TO_HEAR_FROM_YOU;
case 8:
return SettingCategory.DOWNLOAD_FILES;
case 9:
return SettingCategory.DID_YOU_KNOW;
case 10:
return SettingCategory.FAQ_ITEMS;
case 11:
return SettingCategory.NEED_HELP_ITEMS;
case 12:
return SettingCategory.HOLDER_LIST_TEXTS;
case 13:
return SettingCategory.HOME_PAGE_CATEGORY_COLORS;
}
return SettingCategory.UNKNOWN;
}
public static ArrayList<SettingCategory> getCategories() {
ArrayList<SettingCategory> categories = new ArrayList<SettingCategory>();
for (SettingCategory category : SettingCategory.values()) {
if (category.Excluded) {
continue;
}
categories.add(category);
}
return categories;
}
public int id;
public int category_id;
public String name;
public String label;
public String value;
public String secondaryValue;
public Timestamp dateUpdated;
public int textAreaRows;
public int asInt() {
return Integer.parseInt(value);
}
public boolean asBoolean() {
return Boolean.parseBoolean(value);
}
public String asString() {
return value;
}
@Override
public String toString() {
return value;
}
}