package pctelelog.ui; import java.io.Serializable; import pctelelog.events.EventType; import pctelelog.ui.notify.EventWindowEffect; import pctelelog.ui.notify.WindowLocation; public enum PreferenceKey { /** Event settings **/ SHOW_INCOMING("show_incoming", Boolean.class), SHOW_MISSED("show_missed", Boolean.class), SHOW_CONNECT("show_connect", Boolean.class), /** General Notify Effect settings **/ EFFECT_TYPE("notify_effect", EventWindowEffect.class), SHOW_TIME("notify_show_time", Integer.class), WINDOW_LOCATION("event_window_location", WindowLocation.class), /** Fade Settings Key **/ FADE_SPEED("fade_speed", Integer.class), /** Main Window Settings **/ WINDOW_X("window_x", Integer.class), WINDOW_Y("window_y", Integer.class); private String m_key = null; private Serializable m_class = null; private PreferenceKey(String k, Serializable clazz) { m_key = k; m_class = clazz; } public String getKey() { return m_key; } public Serializable getValueClass() { return m_class; } public static PreferenceKey getKeyFromString(String str) { PreferenceKey[] keys = PreferenceKey.values(); for(PreferenceKey key : keys) { if(key.getKey().contains(str)) { return key; } } return null; } public static PreferenceKey getKeyForEventType(EventType type) { switch(type) { case INCOMING_CALL: return PreferenceKey.SHOW_INCOMING; case MISSED_CALL: return PreferenceKey.SHOW_MISSED; case CLIENT_CONNECT: return PreferenceKey.SHOW_CONNECT; default: return null; } } }